|
基於調製解調器與VB的PLC遠程通訊係統設計 2026-04-07 17:42:01 未知來源 供稿 基於調製解調器與VB的PLC遠程通訊係統設計
The design of the remote communication system for PLC based on Modem and VB
廈門永宏亞得機電科技有限公司 李清流 摘要:本文以一個典型的遠程通訊工程為例,介紹了基於電話線路的遠程通訊係統設計和軟硬件細節。 關鍵詞:遠程通訊 調製解調器 PLC VB6.0 Abstract::This paper takes a typical remote communication project as an example, and introduces the realization of the software and hardware in the remote communication system based on telephone line in detail, Key words: Remote communication Modem PLC VB6.0 1引言 隨著計算機和通訊技術的發展,在工業測量和控製中廣泛需要遠程通訊。遠端PLC等deng下xia位wei機ji做zuo生sheng產chan控kong製zhi,本ben地di計ji算suan機ji需xu要yao實shi時shi監jian測ce或huo參can與yu控kong製zhi生sheng產chan現xian場chang的de參can數shu。實shi現xian以yi上shang要yao求qiu的de一yi個ge簡jian便bian的de途tu徑jing是shi利li用yong覆fu蓋gai麵mian廣guang泛fan的de公gong用yong電dian話hua網wang,使shiPLC等下位機利用調製解調器(MODEM)和計算機的調製解調器連接通訊,即可完成硬件上的連接。如圖1suoshi。zairuanjianfangmian,youyuanduanxiaweijiruanjiankongzhiheyuanchengjiankongzhanruanjianliangbufenzucheng。kaolvdaobendijiankongzhanruanjianzhizuoshujujiancehuoshaoxukongzhiqiebianchengxiangduijiandan,suoyibendijiankongzhandebianchengruanjiankeyizhijieyonggaojiyuyan。 2係統概述 本文以一個實際的小水電站的瀉水閘門程控工程為例,著重敘述永宏PLC和PC做遠程通訊的實現細節。係統的下位機控製采用永宏公司的FBs係列PLC對水庫瀉水閘門進行開度檢測和開度控製,監控站的界麵編程采用VB6.0編寫。 硬件配置:遠端FBs-CB25+ FBs-10MAU+ECOM外置MODEM+PWS1711 本地PC(含普通內置MODEM) 該係統主要控製要求,通過FBs-10MA外接一個旋轉編碼器檢測閘門所在位置,然後跟據現場人機界麵或者PC端(下遊5Km處)的設定位置來控製牽引閘門的馬達正反轉,從而使閘門上升或下降到指定的位置。FBs-CB25所擴展得到的通訊口2(RS485)用於PWS1711的通訊,通訊口1(RS232)用於連接MODEM,另外,主機上的可USB口用於連接調試用的筆記本電腦。

圖1係統組成
3調製解調器工作方式和設定 3.1 調製解調器工作原理 調tiao製zhi解jie調tiao器qi分fen成cheng兩liang種zhong模mo式shi,命ming令ling模mo式shi和he聯lian機ji模mo式shi。當dang調tiao製zhi解jie調tiao器qi沒mei有you和he其qi它ta設she備bei連lian接jie時shi,其qi處chu於yu命ming令ling模mo式shi,這zhe時shi下xia達da給gei調tiao製zhi解jie調tiao器qi的de指zhi令ling時shi作zuo調tiao製zhi解jie調tiao器qi本ben身shen設she定ding或huo者zhe動dong作zuo用yong的de。當dang調tiao製zhi解jie調tiao器qi已yi經jing和he其qi它ta的de設she備bei連lian接jie上shang時shi,此ci時shi調tiao製zhi解jie調tiao就jiu是shi處chu於yu聯lian機ji模mo式shi,所suo有you在zai此ci時shi由you計ji算suan機ji送song到dao調tiao製zhi解jie調tiao器qi的de訊xun息xi都dou將jiang由you經jing電dian話hua線xian傳chuan送song到dao其qi它ta設she備bei上shang。 用於控製調製解調器的特定指令集被稱為“AT指令集”,通過該指令集,從最基本的音量控製到內建參數設置的改變,都可以由VB經過串行端口而對調製解調器下達控製指令。AT命令集是調製解調器通訊接口的工業標準。所有的AT命令都以字符AT開始,作為前綴。前綴AT用以引起調製解調器的注意(Attention)檢測計算機串行通訊口發送信號的速率,識別字符格式,包括字符長度和奇偶設定等。 調製解調器撥號之後,等待對方調製解調器送來的載波信號。如果在一給定時間內沒有檢測到載波, 調製解調器自動釋放線路並送回結果碼NOCARRIER,如果檢測到載波信號, 調製解調器即送結果碼CONNECT + 波特率,就進入聯機狀態,即可與遠方係統進行通訊。 3.2 PLC連接調製解調器原理及其設置 在該係統中, PC做為主站,必須控製調製解調器主動撥號,另外,在確認調製解調器和PLC的調製解調器聯機成功後控製它進入聯機模式,開始存取PLC數據。主站控製調製解調器撥號連接細節見下節,這裏詳述PLC端對調製解調器的設置方法。 PLC端PLC上電後必須初始化調製解調器,設置成自動應答來電狀態。在這裏把PLC初始化調製解調器的AT指令組合稱為“MODEM驅動程序”。永宏PLC通過Port1來控製調製解調器,並把這種軟件界麵稱為調製解調器專用界麵。如圖2設定或者設定特殊暫存器R4149的高八位為55H就可以把Port1設置為調製解調器專用界麵,在該界麵下PLC會啟用“MODEM驅動程序”,此時,雖CPU仍然使用永宏〝標準通訊驅動程序〞來管理Port1的通訊,但必須通過調製解調器來聯機,在通訊進行前,Por t1主控權是交由〝MODEM驅動程序〞管理,此時無法對PLC作任何存取動作。“MODEM驅動程序”即將調製解調器設為接收模式,並等待遠方調製解調器撥號進來,一旦收發雙方調製解調器聯機成功,則PLC立即脫離接收模式,而進入聯機狀態,Port1控製權交由永宏〝標準通訊驅動程序〞管理。此時遠方調製解調器便可任意存取或控製此PLC主機了。

圖2 本地調製解調器設置
調製解調器設置如圖2所示,在PLC聯機狀態下,選取菜單中的“PLC”→“設定”→“Port1設定”來到圖2,選擇單選框的第二項“透過MODEM作遠程CPU_Link”,該PLC一上電就通過自帶的“MODEM驅動程序”把Port1設置為調製解調器專用界麵。另外,通訊格式設置為同調製解調器相同的N,8,1,為提高通訊效率可以把通訊速率設置為38400bps,或者更高(最高為115200bps)。 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。。 二.讀數寫數 本係統操作PLC的關鍵數據主要是水位的設定值PV=R0和當前值CV=R1,即要對暫存器R0進行寫操作,R1進行讀操作; 依照協議VB設計的通訊程序必須指定一個命令碼,向PLC請求數據讀取,查的該命令碼為“46”,解釋為:連續多個緩存器之數據讀取。讀取R1的PC命令的ASCII碼寫法為: “STX+ 01(站號)+46(命令碼)+01(連續數據個數)+R00001(數據開始地址)+LRC(偵誤值)+ETX” 依照協議VB設計的通訊程序必須指定一個命令碼,對PLC緩存器數據寫入,查的該命令碼為“47”,解釋為:連續多個緩存器之數據寫入。寫入R0的PC命令的ASCII碼寫法為: “STX+ 01(站號)+47(命令碼)+01(連續數據個數)+R00000(數據開始地址)+XXXX(寫入的數據資料,16進製)+LRC(偵誤值)+ETX” 讀取當前值CV=R1,程序如下 Private Sub Timer1_Timer() MSComm1.Output= Chr(2)+ “014601R00001”+ Lrc(“014601R00001”)+Chr(3) Delay (10) '延時 CV = Val("&H" + Mid(MSComm1.Input, 7, 4)) '數據處理,R0放於CV CV.Text = CV End Sub 寫入設定值PV=R0,程序如下 Private Sub Command1_Click() If Len(Hex(PV.Text)) = 4 Then PV = Hex(PV.Text) If Len(Hex(PV.Text)) = 3 Then PV = "0" + Hex(PV.Text If Len(Hex(PV.Text)) = 2 Then PV = "00" + Hex(PV.Text) If Len(Hex(PV.Text)) = 1 Then PV = "000" + Hex(PV.Text) '10進製轉換16進製 MSComm1.Output=Chr(2)+ “014701R00000”+ PV + +Lrc(“014701R00000” & PV)+Chr(3) End Sub 三.偵誤值(CHECKSUM)計算 為VB的編程方便,把該計算做成單獨一個子程序,依所有數據累加,舍棄進位的規則VB的LRC編程如下: Private Function Lrc(Dats) As String Dim i Dim Sum Sum =2 For i = 1 To Len(Dats) Sum = Sum + Asc(Mid(Dats, i, 1)) Next i Lrc = Right("0" + Hex(Sum + 2), 2) End Function 5結束語 采用基於MODEMtongxundeshejijifangbiandishixiangaixiaodianzhanshengchangtiaodu,zaizhezhongzhixuduanshijianlianjiekongzhidexitongyingyongshangkeyidafududijianxiaotongxunchengben,juyouyidingdetuiguangjiazhi。lingwai,tongguoMODEM的連接,利用永宏編程軟件可以實現該設備的遠程程序調試修改,通過兩個MODEM還可以實現兩台遠程PLC的CPU連接通訊等。
參考文獻 1. 中文Visuail Basic 6.0程序設計教程.北京:冶金工業出版社,2000 2. FBs-PLC使用手冊Ⅱ【高級應用篇】.永宏電機股份有限公司,2004 3. 永宏PLC通訊協議.永宏電機股份有限公司,2004 4. 龍維AT指令集.深圳市龍維電子科技有限公司,2003
作者簡介 李清流(1978-) 男 從事自動化係統和應用工作。
類別:現場總線與網絡技術
|