基于調制解調器與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。