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










