PC机程序设计流程图如下示
数据正确
NO
YES
校验数据
校验正确
NO
清标志位
YES
返回信息
3.3.2 VB6.0的通信控件及通信方式
MSComm通讯控件简介
MSComm是VB6.0提供的ActiveX控件,使用前需将该控件添加到VB工具 栏。MSComm控件串口具有完善的串口数据的发送和接收功能。通过此控件,PC机可以利用串行口与其它设备实现轻松连接,简单高效地实现设备之间的通讯。此控件的事件响应有两种处理方式,事件驱动方式:由MSComm控件的OnComm事件捕获并处理通讯错误及事件;查询方式:通过检查CommEvent属性的值来判断事件和错误。
1)MSComm控件的主要属性和方法
a. CommPort:设置或返回串行端口号,其取值范围为1—99,缺省为1
b. Setting: 设置或返回串行端口的波特率、奇偶校验位、数据位数、停位。如:MSComm.Setting="9600, n, 8, 1”。
c. PortOpen:打开或关闭串行端口。
d. RThreshold:该属性为一阀值,它确定当接收缓冲区内字节个数达到或超过该值后就产生MSComml--OnComm事件。
e. Input:从接收缓冲区移走一串字符。
f. Output:向发送缓冲区传送一字符串。
2)CommEvent属性 :
如果在通讯过程中发生错误或事件,就会引发OnComm事件并由CommEvent 属性代码反映错误类型,可根据该属性值来执行不同的程序操作或数据处理。以下是部分属性常数值及其含义:
a. ComEvSend:其值为1,发送缓冲区的内容少于SThreshold指定的值。
b. ComEvReceive:其值为2,接收缓冲区内字符数达到RThreshold值,该事件在缓冲区中数据被移走前将持续产生。
c. ComEventRxParity:其值为1009,奇偶校验。
d. ComEvEOF:其值为7,接收数据中出现文件结束字符。
本系统采用事件驱动方式进行串口通信设计,下图2为上位机通信界面,设计了2个命令按扭,分别为发送、清空数据;两个文本框,Text1用于输入需从下位机读取的数,Text2用于显示下位机发送来的数据;3个Frame控件,一个Label控件,当然还需要一个MSComm控件。
MSComm控件属性设置如图1示:
(图2)