MSComm控件的使用方法(232通讯用)WWW_PLCJS@_COM%-PLC-技.术_网
MSComm控件WWcW_PLCJS_COM-PLC-技.术_网
MSComm 控件为应用程序提供了串口通信功能,该应用程序允许通过串口发送和接收数据。WW.W_PLCJS_COM-PLC-技.术_网
WWW_P※LCJS_COM-PLC-)技.术_网
语法WWcW_PLCJS_COM-PLC-技.术_网
MSCommWW.W_PLCJS_COM-PLC-技.术_网
说明WWW_PLCJS@_COM%-PLC-技.术_网
MSComm控件提供了两种处理通信的方法:WWW_PLCJS_COM-PLC-技.术_网
· 事件驱动通信,是一种功能很强的处理串口活动的方法。在大多数情况下,用户需要获知事件发生的时间,WWW_PL※CJS_COM-PLC-技.术_网
WWW_PL※CJS_COM-PLC-技.术_网
例如,在CD(Carrier Detect)线或RTS(Request To Send)线上有字符到达或发生了改变等。在这种情况下——可——编——程——控-制-器-技——术——门——户
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
,使用MSComm 控件的OnComm 事件捕获和处理这些通信事件。OnComm也可以捕获和处理通信中的错误。要获取WWW_PL※CJS_COM-PLC-技.术_网
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
所有事件和通信错误的完整清单,请参阅CommEvent属性。plcjs.技.术_网
· 用户也可以在每个重要的程序功能之后检查CommEvent 属性的值来检测事件和通信错误。这对小的自含程序WWW_PLC※JS_COM-PmLC-技.术_网
P.L.C.技.术.网——可编程控制器技术门户
可能比较常用。例如,如果编写一个简单的电话拨号程序,那么在接收了每个字符后都产生一个事件并没有WWW_PLC※JS_COM-PmLC-技.术_网
意义,因为你只打算从调制解调器中接收OK响应信息。P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
使用的每个MSComm 控件都与一个串口对应。如果在应用程序中需要访问多个串口,必须使用多个MSComm 控件——可——编——程——控-制-器-技——术——门——户
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
。可以在Windows 控制面板中修改串口地址的中断地址。WWW_PL※CJS_COM-PLC-技.术_网
虽然MSComm控件有许多很重要的属性,但应先熟悉下面几个属性:WWW_PLC※JS_COM-PmLC-技.术_网
属性描述WW.W_PLCJS_COM-PLC-技.术_网
CommPort 设置或返回通信端口号WWW_P※LCJS_COM-PLC-)技.术_网
Settings 以字符串的形式设置或返回波特率、奇偶校验、数据位和停止位WWW_PLCJS@_COM%-PLC-技.术_网
PortOpen 设置或返回通信端口的状态。也可以打开和关闭端口WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
Input 返回和删除接收缓冲区中的字符WWW_PL※CJS_COM-PLC-技.术_网
Output 将字符串写入发送缓冲区WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
P.L.C.技.术.网——可编程控制器技术门户
示例WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
下面的例子演示了使用调制解调器进行基本的通信。——可——编——程——控-制-器-技——术——门——户
Private Sub Form_Load ()WWW.PLCJS.COM——可编程控制器技术门户
' Buffer to hold input stringWWcW_PLCJS_COM-PLC-技.术_网
Dim Instring As StringWWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
' Use COM1.WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
MSComm1.CommPort = 1plcjs.技.术_网
' 9600 baud, no parity, 8 data, and 1 stop bit.WW.W_PLC※JS_C,OM-PL,C-技.术_网
MSComm1.Settings = "9600,N,8,1"WWW.PLCJS.COM——可编程控制器技术门户
' Tell the control to read entire buffer when InputWWW_PLCJS_COM-PLC-技.术_网
' is used.P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
MSComm1.InputLen = 0WWW_PL※CJS_COM-PLC-技.术_网
' Open the port.WWW_P※LCJS_CO※M-PLC-技-.术_网
MSComm1.PortOpen = True——可——编——程——控-制-器-技——术——门——户
' Send the attention command to the modem.P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
MSComm1.Output = "ATVtQ0"& + Chr$(13) 'Ensure thatWWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
' the modem responds with “OK”WWcW_PLCJS_COM-PLC-技.术_网
' Wait for data to come back to the serial port.WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
DoWWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
DoEventsWWW_P※LCJS_COM-PLC-)技.术_网
Buffer$ = Buffer$ MSComm1.InputWWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
Loop Until InStr (Buffer$, “OK” & vbCRLF)WWcW_PLCJS_COM-PLC-技.术_网
' Read the "OK" response data in the serial port.WW.W_PLC※JS_C,OM-PL,C-技.术_网
' Close the serial port.WWcW_PLCJS_COM-PLC-技.术_网
MSComm1.PortOpen = FalseP.L.C.技.术.网——可编程控制器技术门户
End SubWW.W_PLCJS_COM-PLC-技.术_网
注意:MSComm 控件可以使用查询或事件驱动的方法从串口接收数据。本例使用了查询的方法。对于事件驱动方WW.W_PLCJS_COM-PLC-技.术_网
WWW_PLCJS@_COM%-PLC-技.术_网
法的例子,请参阅OnComm 事件的帮助。WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
Break属性WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
设置或清除断开信号状态。在设计时该属性不可用。W1WW_P4LCJS_COM-PLC-技.术_网
语法P.L.C.技.术.网——可编程控制器技术门户
object.Break [=value]WW.W_PLC※JS_C,OM-PL,C-技.术_网
Break属性的语法有如下几个部分:——可——编——程——控-制-器-技——术——门——户
部分描述WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
object 对象表达式,其值是“应用于”列表中的一个对象W1WW_P4LCJS_COM-PLC-技.术_网
value 一个布尔表达式,指明是否设置断开信号状态,如“设置”中所示WWW_PLCJS@_COM%-PLC-技.术_网
设置WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
vlaue 值的设置如下:W1WW_P4LCJS_COM-PLC-技.术_网
设置描述WWW_P※LCJS_COM-PLC-)技.术_网
True 设置断开信号状态WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
False 清除断开信号状态P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
说明WWcW_PLCJS_COM-PLC-技.术_网
当设置为True 时,Break 属性就发送一个断开信号。断开信号将停止字符发送,将发送线置为断开状态,直到WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)