铁路雨量监测系统中的远程通信
Dim i,j,ss,FsStr,ret
设置充许通信False
For i=0 T0 29 '工区数
If工区选中(i)Then
显示信息"拨号到"+工区名(i)+"..."
FsStr="ATDT"+电话号码(i)+vbCr
'拨号的AT命令
ret=发送AT命令(FsStr,"CONNECT",60000)
'发送拨号命令,限时60s
If ret="正常"Then
FsStr=Format(i,"00")+发送代码
'发送字符串组合
FsStr=FsStr+Format(Now,"yymmddhhmmss")
FsStr=FsStr+设定值
FsStr=FsStr+计算累加和(FsStr)
FsStr="@K"+FsStr+"@J"
ret=发送AT命令(FsStr,"@J",5000)
'发送数据,等待接收串结束符@J
If InStr(接收串,"@KCUO@J")Then
'收到下位机的返回是"错"
显示"返回有错."信息处理
Else
处理接收串 '下位机接收正确
End If
显示"挂机..."信息处理
ret=发送AT命令("+++","OK",3000)
'挂机,等待OK,限时3S
ret=发送AT命令("ATH0"+vbCrLf,"OK",3000)
End If
End If
Next i
End Sub
2.被动通信javascript:window.open(this.src);" style="cursor:pointer;"/>
当站点监测到雨量超过警戒值时,就主动拨号给主机,对主机而言就是被动通信。平时主机MODEM也处于自动应答状态,随时可以接收站点呼叫。主机程序接收到正确数据串后,将数据记录到相应文件中保存,点亮操作平台上该站点的报警指示灯提醒用户,同时向站点发送"接收正确"的信息。站点收到主机正确信息后向MODEM发送"+++ATH0"离线挂机命令,结束本次通信。站点发来的数据串里包括站点号、通信代码、各种雨量数据、报警数据及校验和等信息。用@K和@J作为开始和结束标志。
被动通信部分的主要源程序如下:
Private Sub MSComm1_OnComm()
Dim strSh,Shc
Shc=MSComm1.InBufferCount '取接收字符个数
If Shc>0 Then
strSh=MSComm1,Input '取本次接收串
接收串=接收串+strSh
If InStr(接收串,"RING")Then '若是电话铃响
显示"接收数据..."信息算是 '显示接收数据信息
接收串=""
End If
If InStr(接收串,"@J")Then '收到接收串结束答@J
处理接收串 '处理接收串
End If
End If
End Sub
结束语
本系统已成功应用于铁路部门。它具有实时性好、信息传送距离远、可靠性高、电路简单、投资少等优点。它可推广用于其他需要信息采集及远程通信的部门,如气象部门温度和风速收集、水文部门水位和雨量监测;电力部门电网监测等。