<var id="dcm24"><object id="dcm24"></object></var>
  • <blockquote id="dcm24"></blockquote>
  • <legend id="dcm24"><address id="dcm24"></address></legend>
  • <legend id="dcm24"></legend>

    <del id="dcm24"></del>

    <mark id="dcm24"><pre id="dcm24"></pre></mark>
  • 基于調制解調器與VB的PLC遠程通訊系統設計

    2012-10-20 10:40:49 人評論 次瀏覽 分類(lèi):永宏應用案例


    The design of the remote communication system for PLC based on Modem and VB

    廈門(mén)永宏亞得機電科技有限公司 李清流
    摘要:本文以一個(gè)典型的遠程通訊工程為例,介紹了基于電話(huà)線(xiàn)路的遠程通訊系統設計和軟硬件細節。
    關(guān)鍵詞:遠程通訊 調制解調器 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引言
    隨著(zhù)計算機和通訊技術(shù)的發(fā)展,在工業(yè)測量和控制中廣泛需要遠程通訊。遠端PLC等下位機做生產(chǎn)控制,本地計算機需要實(shí)時(shí)監測或參與控制生產(chǎn)現場(chǎng)的參數。實(shí) 現以上要求的一個(gè)簡(jiǎn)便的途徑是利用覆蓋面廣泛的公用電話(huà)網(wǎng),使PLC等下位機利用調制解調器(MODEM)和計算機的調制解調器連接通訊,即可完成硬件上 的連接。如圖1所示。在軟件方面,由遠端下位機軟件控制和遠程監控站軟件兩部分組成??紤]到本地監控站軟件只做數據監測或少許控制且編程相對簡(jiǎn)單,所以本 地監控站的編程軟件可以直接用高級語(yǔ)言。
    2系統概述
    本文以一個(gè)實(shí)際的小水電站的瀉水閘門(mén)程控工程為例,著(zhù)重敘述永宏P(guān)LC和PC做遠程通訊的實(shí)現細節。系統的下位機控制采用永宏公司的FBs系列PLC對水庫瀉水閘門(mén)進(jìn)行開(kāi)度檢測和開(kāi)度控制,監控站的界面編程采用VB6.0編寫(xiě)。
    硬件配置:遠端FBs-CB25+ FBs-10MAU+ECOM外置MODEM+PWS1711
    本地PC(含普通內置MODEM)
    該系統主要控制要求,通過(guò)FBs-10MA外接一個(gè)旋轉編碼器檢測閘門(mén)所在位置,然后跟據現場(chǎng)人機界面或者PC端(下游5Km處)的設定位置來(lái)控制牽引閘 門(mén)的馬達正反轉,從而使閘門(mén)上升或下降到指定的位置。FBs-CB25所擴展得到的通訊口2(RS485)用于PWS1711的通訊,通訊口 1(RS232)用于連接MODEM,另外,主機上的可USB口用于連接調試用的筆記本電腦。



    圖1系統組成

    3調制解調器工作方式和設定
    3.1 調制解調器工作原理
    調制解調器分成兩種模式,命令模式和聯(lián)機模式。當調制解調器沒(méi)有和其它設備連接時(shí),其處于命令模式,這時(shí)下達給調制解調器的指令時(shí)作調制解調器本身設定或 者動(dòng)作用的。當調制解調器已經(jīng)和其它的設備連接上時(shí),此時(shí)調制解調就是處于聯(lián)機模式,所有在此時(shí)由計算機送到調制解調器的訊息都將由經(jīng)電話(huà)線(xiàn)傳送到其它設 備上。
    用于控制調制解調器的特定指令集被稱(chēng)為“AT指令集”,通過(guò)該指令集,從最基本的音量控制到內建參數設置的改變,都可以由VB經(jīng)過(guò)串行端口而對調制解調器 下達控制指令。AT命令集是調制解調器通訊接口的工業(yè)標準。所有的AT命令都以字符AT開(kāi)始,作為前綴。前綴AT用以引起調制解調器的注意 (Attention)檢測計算機串行通訊口發(fā)送信號的速率,識別字符格式,包括字符長(cháng)度和奇偶設定等。
    調制解調器撥號之后,等待對方調制解調器送來(lái)的載波信號。如果在一給定時(shí)間內沒(méi)有檢測到載波, 調制解調器自動(dòng)釋放線(xiàn)路并送回結果碼NOCARRIER,如果檢測到載波信號, 調制解調器即送結果碼CONNECT + 波特率,就進(jìn)入聯(lián)機狀態(tài),即可與遠方系統進(jìn)行通訊。
    3.2 PLC連接調制解調器原理及其設置
    在該系統中, PC做為主站,必須控制調制解調器主動(dòng)撥號,另外,在確認調制解調器和PLC的調制解調器聯(lián)機成功后控制它進(jìn)入聯(lián)機模式,開(kāi)始存取PLC數據。主站控制調制解調器撥號連接細節見(jiàn)下節,這里詳述PLC端對調制解調器的設置方法。
    PLC端PLC上電后必須初始化調制解調器,設置成自動(dòng)應答來(lái)電狀態(tài)。在這里把PLC初始化調制解調器的AT指令組合稱(chēng)為“MODEM驅動(dòng)程序”。永宏 PLC通過(guò)Port1來(lái)控制調制解調器,并把這種軟件界面稱(chēng)為調制解調器專(zhuān)用界面。如圖2設定或者設定特殊暫存器R4149的高八位為55H就可以把 Port1設置為調制解調器專(zhuān)用界面,在該界面下PLC會(huì )啟用“MODEM驅動(dòng)程序”,此時(shí),雖CPU仍然使用永宏〝標準通訊驅動(dòng)程序〞來(lái)管理Port1 的通訊,但必須通過(guò)調制解調器來(lái)聯(lián)機,在通訊進(jìn)行前,Por t1主控權是交由〝MODEM驅動(dòng)程序〞管理,此時(shí)無(wú)法對PLC作任何存取動(dòng)作?!癕ODEM驅動(dòng)程序”即將調制解調器設為接收模式,并等待遠方調制解調 器撥號進(jìn)來(lái),一旦收發(fā)雙方調制解調器聯(lián)機成功,則PLC立即脫離接收模式,而進(jìn)入聯(lián)機狀態(tài),Port1控制權交由永宏〝標準通訊驅動(dòng)程序〞管理。此時(shí)遠方 調制解調器便可任意存取或控制此PLC主機了。


    圖2 本地調制解調器設置
    調制解調器設置如圖2所示,在PLC聯(lián)機狀態(tài)下,選取菜單中的“PLC”→“設定”→“Port1設定”來(lái)到圖2,選擇單選框的第二項“透過(guò)MODEM作 遠程CPU_Link”,該PLC一上電就通過(guò)自帶的“MODEM驅動(dòng)程序”把Port1設置為調制解調器專(zhuān)用界面。另外,通訊格式設置為同調制解調器相 同的N,8,1,為提高通訊效率可以把通訊速率設置為38400bps,或者更高(最高為115200bps)。
    4 PC端程序設計
    4.1 撥號程序設計
    PC端將以VB6.0所帶的通信控件MSCOMM進(jìn)行通信軟件的開(kāi)發(fā),利用該控件控制串口實(shí)現對MODEM的控制??刂撇襟E如下:
    一.通信參數設置
    設置串口端口號,波特率,數據位,停止位,奇偶校驗位及設置硬件握手協(xié)議,然后向MODEM發(fā)出DTR(已準備好)信號一便接管MODEM,程序如下:
    If MSComm1.PortOpen Then
    MSComm1.DTREnable = True
    Else
    MSComm1.DTREnable = False
    End If
    二.對MODEM初始化
    發(fā)出一些命令來(lái)設置參數,其中S0=n(n>=1)自動(dòng)應答.n為響鈴次數;E0/E1關(guān)閉/打開(kāi)命令字符回應;Q0/Q1設置MODEM返回/不 返回結果碼;M0/M1關(guān)閉/打開(kāi)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
    三.進(jìn)行撥號
    向MODEM發(fā)出ATD命令,程序如下:
    MSComm1.Output="ATD" & "05925998499"+Chr(13)
    當發(fā)送“ATD”+ 電話(huà)號碼 + Chr(13)時(shí),MODEM就開(kāi)始撥號,撥號需要一定的時(shí)間,在撥號的過(guò)程中可以不斷讀取MODEM的CD指示燈的狀態(tài),當電話(huà)撥通后CD指示燈會(huì )點(diǎn) 亮。并返回“CONNECT + 波特率”的信息。如果MODEM向PC的回應字符串中含有"Connect"或CDHolding屬性值變?yōu)門(mén)rue(檢測出載波),則表示已與遠方 MODEM連機了,此時(shí)可以傳輸數據。
    當電話(huà)撥通后,MODEM不再接收AT指令,要使其回到命令狀態(tài),則必須發(fā)送“+++”信息,使MODEM回到命令狀態(tài),然后發(fā)送“ATH”+ Chr(13)則可以?huà)鞌嚯娫?huà),程序如下:
    MSComm1.Output="ATH" +Chr(13)
    4.2 通訊程序設計
    一.永宏P(guān)LC通訊協(xié)議
    永宏P(guān)LC 通訊訊息格式可概分為6個(gè)數據域位, 如下圖3所示,具體解釋如下:


    圖 3 永宏P(guān)LC通訊協(xié)議訊息格式
    ⑴.開(kāi)頭字符(STX):ASCI I碼之開(kāi)始字符STX。
    ⑵.從站號碼:為兩位數之16進(jìn)制數值。
    ⑶.命令號碼:為兩位數之16 進(jìn)制數值,為由主系統要求從系統所執行之動(dòng)作類(lèi)別。
    ⑷.本文資料:本文數據可為0(無(wú)本文數據)~500個(gè)ASCII字符。
    ⑸.偵誤值(CHECKSUM): 偵誤值系將前述~將各ASCII字符之16進(jìn)制數碼值(8位長(cháng)度)從頭至尾依序相加,但不考慮進(jìn)位,因此最終結果為偵誤值。
    ⑹.結尾字符(ETX):ASCI I碼之結尾字符ETX之16進(jìn)制數碼為03H。。
    二.讀數寫(xiě)數
    本系統操作PLC的關(guān)鍵數據主要是水位的設定值PV=R0和當前值CV=R1,即要對暫存器R0進(jìn)行寫(xiě)操作,R1進(jìn)行讀操作;
    依照協(xié)議VB設計的通訊程序必須指定一個(gè)命令碼,向PLC請求數據讀取,查的該命令碼為“46”,解釋為:連續多個(gè)緩存器之數據讀取。讀取R1的PC命令的ASCII碼寫(xiě)法為:
    “STX+ 01(站號)+46(命令碼)+01(連續數據個(gè)數)+R00001(數據開(kāi)始地址)+LRC(偵誤值)+ETX”
    依照協(xié)議VB設計的通訊程序必須指定一個(gè)命令碼,對PLC緩存器數據寫(xiě)入,查的該命令碼為“47”,解釋為:連續多個(gè)緩存器之數據寫(xiě)入。寫(xiě)入R0的PC命令的ASCII碼寫(xiě)法為:
    “STX+ 01(站號)+47(命令碼)+01(連續數據個(gè)數)+R00000(數據開(kāi)始地址)+XXXX(寫(xiě)入的數據資料,16進(jìn)制)+LRC(偵誤值)+ETX”
    讀取當前值CV=R1,程序如下
    Private Sub Timer1_Timer()
    MSComm1.Output= Chr(2)+ “014601R00001”+ Lrc(“014601R00001”)+Chr(3)
    Delay (10) '延時(shí)
    CV = Val("&H" + Mid(MSComm1.Input, 7, 4)) '數據處理,R0放于CV
    CV.Text = CV
    End Sub
    寫(xiě)入設定值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進(jìn)制轉換16進(jìn)制
    MSComm1.Output=Chr(2)+ “014701R00000”+ PV + +Lrc(“014701R00000” & PV)+Chr(3)
    End Sub
    三.偵誤值(CHECKSUM)計算
    為VB的編程方便,把該計算做成單獨一個(gè)子程序,依所有數據累加,舍棄進(jìn)位的規則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結束語(yǔ)
    采用基于MODEM通訊的設計極方便地實(shí)現該小電站生廠(chǎng)調度,在這種只需短時(shí)間連接控制的系統應用上可以大幅度地減小通訊成本,具有一定的推廣價(jià)值。另 外,通過(guò)MODEM的連接,利用永宏編程軟件可以實(shí)現該設備的遠程程序調試修改,通過(guò)兩個(gè)MODEM還可以實(shí)現兩臺遠程PLC的CPU連接通訊等。

    參考文獻
    1. 中文Visuail Basic 6.0程序設計教程.北京:冶金工業(yè)出版社,2000
    2. FBs-PLC使用手冊Ⅱ【高級應用篇】.永宏電機股份有限公司,2004
    3. 永宏P(guān)LC通訊協(xié)議.永宏電機股份有限公司,2004
    4. 龍維AT指令集.深圳市龍維電子科技有限公司,2003

    作者簡(jiǎn)介
    李清流(1978-) 男 從事自動(dòng)化系統和應用工作。
     




    无限动漫在线观看免费版,诱人的阿中文字幕,色戒未删版在线观看,来自北京电影
    <var id="dcm24"><object id="dcm24"></object></var>
  • <blockquote id="dcm24"></blockquote>
  • <legend id="dcm24"><address id="dcm24"></address></legend>
  • <legend id="dcm24"></legend>

    <del id="dcm24"></del>

    <mark id="dcm24"><pre id="dcm24"></pre></mark>