发布于 2007-01-19 09:43:07
0楼
万斑竹说得对,我就是一心想着要从程序里写相应触发控制,忽略了控件本身的属性,想破了头也没想出个所以然来。
要完成此项有3点需要注意:
1、控件注册,现场工控机不可能装VB之类的开发工具,所以需要单独注册Mscomm控件,我在网上找了好几个Mscomm注册的,都能注册成功,但只有最后找到的一个才真正注册上,不需要每次开机都重新注册一次。等我想法再把这个注册Mscomm控件放到这里吧。
2、COM端口的数据收发,Mscomm的属性很多,但基本的如下:
CommPort 设置并返回通讯端口号。
Settings 以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位。
InputMode 设置并返回接收类型 0字符/1二进制
SThreshold 设置并返回发送时产生ONComm事件的字符数
RThreshold 设置并返回接收时产生ONComm事件的字符数
PortOpen 设置并返回通讯端口的状态。也可以打开和关闭端口。
Input 从接收缓冲区返回和删除字符。
Output 向传输缓冲区写一个字符串。
Set objMScomm=ScreenItems("MSComm1") '每一个Com端口对应一个Mscomm控件
objMScomm.CommPort = 1 '...使用Com1口
objMScomm.Settings = "9600,n,8,1" '...设置通讯参数
objMScomm.PortOpen = True '...打开串口
接收或发送数据之前,首先要设置好数据的接受或发送方式,再打开端口PortOpen,一旦满足条件就会触发Oncomm事件,希望数据按事先约定的方式处理就写到Oncomm事件里了。
3、Oncomm事件,最基本的如下:
if objMScomm.CommEvent=2 then '...有接受事件发生
data1 = objMScomm.Input '...接收数据
end if
数据处理这一点请参考上面有谁共鸣提到的http://www.ad.siemens.com.cn/club/bbs/post.asp?b_id=5&a_id=284783&s_id=0&num=8#anch 和szy868 的示例
入行探路,未知深浅。