基于调制解调器与vb的plc远程通讯系统设计
4 pc端程序设计
4.1 拨号程序设计
pc端将以vb6.0所带的通信控件mscomm进行通信软件的开发,利用该控件控制串口实现对modem的控制。控制步骤如下:
一.通信参数设置
设置串口端口号,波特率,数据位,停止位,奇偶校验位及设置硬件握手协议,然后向modem发出dtr(已准备好)信号一便接管modem,程序如下:
if mscomm1.portopen then
mscomm1.dtrenable = true
else
mscomm1.dtrenable = false
end if
二.对modem初始化
发出一些命令来设置参数,其中s0=n(n》=1)自动应答.n为响铃次数;e0/e1关闭/打开命令字符回应;q0/q1设置modem返回/不返回结果码;m0/m1关闭/打开modem扬声器;ln(n》=0)设置modem扬声器音量;p/t设置modem脉冲/音频拨号;程序如下:
if mscomm1.portopen then
do while not mscomm1.ctsholding: loop
txd= “ats0=1e1q0m1l2t” + chr(13)
mscomm1.output = txd
end if
三.进行拨号
向modem发出atd命令,程序如下:
mscomm1.output=“atd” & “05925998499”+chr(13)
当发送“atd”+ 电话号码 + chr(13)时,modem就开始拨号,拨号需要一定的时间,在拨号的过程中可以不断读取modem的cd指示灯的状态,当电话拨通后cd指示灯会点亮。并返回“connect + 波特率”的信息。如果modem向pc的回应字符串中含有“connect”或cdholding属性值变为true(检测出载波),则表示已与远方modem连机了,此时可以传输数据。
当电话拨通后,modem不再接收at指令,要使其回到命令状态,则必须发送“+++”信息,使modem回到命令状态,然后发送“ath”+ chr(13)则可以挂断电话,程序如下:
mscomm1.output=“ath” +chr(13)
4.2 通讯程序设计
一.永宏plc通讯协议
永宏plc 通讯讯息格式可概分为6个数据域位, 如下图3所示,具体解释如下:
图 3 永宏plc通讯协议讯息格式
⑴.开头字符(stx):asci i码之开始字符stx。
⑵.从站号码:为两位数之16进制数值。
⑶.命令号码:为两位数之16 进制数值,为由主系统要求从系统所执行之动作类别。
⑷.本文资料:本文数据可为0(无本文数据)~500个ascii字符。
⑸.侦误值(checksum): 侦误值系将前述~将各ascii字符之16进制数码值(8位长度)从头至尾依序相加,但不考虑进位,因此 终结果为侦误值。
⑹.结尾字符(etx):asci i码之结尾字符etx之16进制数码为03h。