天堂网www中文天堂在线/色操在线/成人精品视频一区二区三区/欧美特黄一片aa大片免费看

  • Modbus協(xié)議在澀寧蘭SCADA系統(tǒng)中的應(yīng)用
    趙國輝

    摘要:
      工業(yè)控制已進入網(wǎng)絡(luò)時代,在如今工控技術(shù)和工控產(chǎn)品百家爭鳴的時代,各種不同設(shè)備之間的通訊已成為一個系統(tǒng)的關(guān)鍵所在。Modbus工業(yè)網(wǎng)絡(luò)協(xié)議就是解決這一問題的一種利器。本文簡單闡述了Modbus協(xié)議的基本原理,并結(jié)合澀寧蘭輸氣管線SCADA系統(tǒng)中Modbus協(xié)議的實際應(yīng)用,介紹了Modbus應(yīng)用的一般方法和注意事項。

    主題詞:
    Modbus 幀 ASCII模式 RTU模式 SCADA RS-485

      Modbus 協(xié)議是Modicon 公司開發(fā)的一種數(shù)據(jù)通訊協(xié)議,通過這個協(xié)議,各種不同的設(shè)備和網(wǎng)絡(luò)可相互進行通訊,由于其具有高度的可操作性和開放性,Modbus 協(xié)議已經(jīng)成為一種通用性很強的工業(yè)控制網(wǎng)絡(luò)通訊協(xié)議。許多不同品牌、不同廠家的設(shè)備之間都可通過該協(xié)議交換數(shù)據(jù)。澀寧蘭輸氣管線SCADA系統(tǒng)應(yīng)用了多種通訊和網(wǎng)絡(luò)協(xié)議,使各種設(shè)備有機的結(jié)合在一起,成為一個完整的三級集散控制系統(tǒng),Modbus 協(xié)議是其中一種重要的協(xié)議。

    Modbus 協(xié)議簡介
    一、 Modbus的通訊過程
      Modbus協(xié)議定義了一種信息結(jié)構(gòu),這種信息結(jié)構(gòu)可以被所有支持該協(xié)議的各種設(shè)備在通訊時認可和使用。它描述了控制器向其他設(shè)備發(fā)出查詢的過程以及其他設(shè)備如何進行應(yīng)答,以及錯誤的檢測和報告。
      Modbus協(xié)議采用master-slave(主-從)的技術(shù)。在一個Modbus總線上,只能有一個master,而slave最多可有247個,地址為1——247。進行通訊時,只有master才可以發(fā)起一個“查詢”,充當slave的設(shè)備不斷的檢測,當檢測到有自己地址的“查詢”時,就會向master發(fā)出一個“回應(yīng)”,或者根據(jù)master的命令采取相應(yīng)的動作。當master發(fā)出的“查詢”是一個“廣播”(地址碼為0)時,所有的slave都執(zhí)行master的命令,但不向master發(fā)出回應(yīng)信息。

    二、 Modbus的幀
      在網(wǎng)絡(luò)通信中,數(shù)據(jù)都是以“包”(Packet)或 “幀”(Frame)的形式進行傳輸,“包”和“幀”含義基本相同,均指通信中的一個數(shù)據(jù)塊。對于某種具體通信網(wǎng)絡(luò),一般使用術(shù)語“幀”。在Modbus協(xié)議中,引用了“幀”(Frame)作為通訊過程中的數(shù)據(jù)單位,Modbus中的“幀”由以下幾部分組成:
    1、標志位:表示一個“幀”的開始。
    2、地址位:表示該“幀”的信息是發(fā)給哪一個slave的,或是由哪個slave發(fā)出的信息。
    3、功能代碼:表示指令,在Modbus協(xié)議中,有一系列代碼表示不同的指令,例如:代碼“3”表示讀數(shù)據(jù)。
    4、數(shù)據(jù)位:是對功能代碼的進一步補充與說明,說明指令的具體內(nèi)容。
    5、校驗位:CRC或LRC校驗。
    6、停止位:表示該“幀”的結(jié)束。
    每部分的位數(shù)和表示方法依采取的模式不同而略有區(qū)別,下文將詳細論述。

    三、 Modbus的兩種通訊模式
      在Modbus協(xié)議中,依數(shù)據(jù)在傳輸?shù)倪^程中的具體形式不同,分為兩種模式:ASCII 和 RTU,采用哪種模式由用戶自己根據(jù)需要進行選擇。在選擇時,同一Modbus網(wǎng)絡(luò)中的所有設(shè)備的模式選擇必須一致。

    1、 ASCII模式
      ASCII(American Standard Code for Information Interchange),即美國信息交換標準代碼。在這種模式中,每個8比特的字節(jié)被轉(zhuǎn)換兩個ASCII字符進行傳送。這種模式的主要優(yōu)點是傳送的每相鄰的兩字節(jié)之間允許最大的時間間隔是1秒。


    表一:ASCII模式的幀格式


    在此幀中:
     幀是以一個冒號(:)來做為開始的標志;以CRLF(carriage return-line feed即“回車-換行”)為結(jié)束標志;
     代碼系統(tǒng)采用十六進制,ASCII字符0...9,A...F
     每個ASCII字符由一個16進制的字符組成;
     每個字節(jié)中包括:1個開始位;7個數(shù)據(jù)位(低位先傳送);1個奇偶校驗位(無奇偶校驗時為0位);1個(有奇偶校驗時)或2位(無奇偶校驗時)停止位;
     ASCII模式采用LRC(縱向冗余校驗)檢錯方法。

    2、 RTU模式
      RTU(Remote Terminal Unit),即遠程終端單元,這種模式的特點是信息中每個8比特的字節(jié)被轉(zhuǎn)換為兩個4比特的十六進制字符來傳輸。它的優(yōu)點是更大的數(shù)據(jù)密度使它在相同的波特率下比ASCII模式有更強的數(shù)據(jù)吞吐能力。

    表二:RTU模式的幀格式


    在此幀中:
      該幀是以一個相當于至少3.5個字節(jié)傳輸時間的空閑做為開始和結(jié)束的標志;整個幀的所有數(shù)據(jù)必須連續(xù)傳送,如果中間間隔超過1.5個字符傳輸時間,接收設(shè)備會認為下一個字符為一個新幀的開始,即為一個地址碼;
     代碼系統(tǒng)采用8位二進制,十六進制數(shù)0...9,A...F;
     信息的每個8比特字符由兩個16進制的字符組成;
     每個字節(jié)中包括:一個開始位;8個數(shù)據(jù)位(低位先傳送);1個奇偶校驗位(無奇偶校驗時為0);1個(有奇偶校驗時)或2位(無奇偶校驗時)停止位;
     ASCII模式采用CRC(循環(huán)冗余校驗)檢錯方法。

    四、 Modbus與其他網(wǎng)絡(luò)的通訊
      Modbus網(wǎng)絡(luò)可以通過設(shè)備內(nèi)置的部件或網(wǎng)絡(luò)適配器與其他兼容Modbus的網(wǎng)絡(luò)進行通訊。在其他網(wǎng)絡(luò)上,Modbus協(xié)議的有關(guān)信息將被植入該網(wǎng)絡(luò)的幀或數(shù)據(jù)包結(jié)構(gòu)中,以完成信息的轉(zhuǎn)換,這種轉(zhuǎn)換還可以解譯節(jié)點的地址、路徑和檢錯方法等。
      在其它網(wǎng)絡(luò)上,控制器使用對等(peer-to-peer)技術(shù)通信,故任何控制器都能發(fā)起一個和其它控制器的通信。這樣在單獨的通信過程中,控制器既可作為主設(shè)備(master)也可作為從設(shè)備(slave)。多個內(nèi)部通道可允許多個傳輸進程同時進行。
      在傳送消息時,盡管網(wǎng)絡(luò)通信方法是“對等”的方式,但Modbus協(xié)議仍然遵循“主—從”原則。當一個控制器發(fā)送一個消息,并期望從其他設(shè)備得到回應(yīng)時,它是做為“主”設(shè)備,。同樣,當該控制器接收到一消息,它將建立一個“回應(yīng)”格式的信息返回給發(fā)送的控制器。這時,他充當?shù)氖恰皬摹痹O(shè)備

    Modbus 協(xié)議在澀寧蘭SCADA系統(tǒng)中的應(yīng)用

    應(yīng)用原理
      在澀寧蘭SCADA系統(tǒng)中,Modbus充當?shù)氖沁B接流量計算機和PLC的數(shù)據(jù)橋梁。流量計算機從現(xiàn)場儀表采集相應(yīng)的數(shù)據(jù),計算出瞬時流量、累計流量等流量參數(shù),再通過Modbus將必要的數(shù)據(jù)傳至PLC中,經(jīng)PLC進行必要的處理后,顯示在上位機上供生產(chǎn)運行之用。流程如下圖:

    圖1:流量參數(shù)的數(shù)據(jù)流向示意圖

    調(diào)試過程

    一、 接線
      澀寧蘭SCADA系統(tǒng)的PLC采用的是A-B公司的contrologix,其遠程I/O機架上有一塊通訊模板,叫做MCM(Modbus Conmminication Model),即Modbus通訊模板。MCM模板在Modbus和PLC的背板之間充當一個網(wǎng)橋,同時也是Modbus總線的Master。若干臺流量計算機與MCM模板按照RS-485接口標準,通過DB9串口連接器連接成一個Modbus網(wǎng)絡(luò),接線圖如下(以兩臺流量計算機為例,多臺可順次并聯(lián)):

    圖2:MCM模板與流量計算機通訊接線圖


    注意事項:
    1、 MCM模板提供的是RJ45的接口,可利用廠家提供的RJ45-- DB9轉(zhuǎn)接線,也可以直接用RJ45接線,方法為:RJ45玻璃體從前直視,自左向右依次為1-8,與DB9接頭1-8端一一對應(yīng)。本工程采用后者,好處是減少接線次數(shù),提高通訊的穩(wěn)定性。
    2、 通訊介質(zhì)采用超五類屏蔽雙絞線,主要是考慮RJ45接頭的連接。我們在實驗時曾用過一般導(dǎo)線,對通訊效果并無影響??梢奙odbus對通訊介質(zhì)并無特殊要求。
    3、 連線應(yīng)盡量短,夠用即可,不僅看起來整齊,而且對于不同設(shè)備間的通訊,盡量短的線總是穩(wěn)定性要好的多。
    4、 導(dǎo)線一定要保證完好無損,接頭一定連接緊固,要反復(fù)測試確認。因為在調(diào)試過程中,任何一點的虛接都可能造成通訊的失敗,而且極難查找原因。一個可靠的硬件連接可省去調(diào)試過程中很多不必要的故障和故障查找的步驟。
    5、 RS-485總線通訊在連線時只需遵循一個原則,那就是收對發(fā),發(fā)對收。確認此連接無誤,若其他沒有問題,一定會成功。

    二、 設(shè)備組態(tài)
      在此網(wǎng)絡(luò)中,MCM模板充當Master,流量計算機為slave。對所用的MCM模板的端口設(shè)置如表三,流量計算機相應(yīng)端口設(shè)置如表四:

    表三:MCM模板的端口設(shè)置


    表四:流量計算機的端口設(shè)置

      其他相關(guān)設(shè)置項根據(jù)實際需要進行設(shè)置。
      設(shè)備設(shè)置時一定要注意根據(jù)不同設(shè)備的不同要求,兩端的設(shè)置相對應(yīng)的項一定要相同。

    三、 調(diào)試中出現(xiàn)的問題及解決方法:
    1、 在利用Modbus通訊的過程中,遇到這樣一個問題,即浮點數(shù)的傳輸問題。因為一般浮點數(shù)都是32位,而Modbus總線中只能傳輸最多16位的數(shù)據(jù)。
      解決方法:可以利用兩個整形數(shù)傳送一個浮點數(shù)(即將一個32位的二進制數(shù)分割成兩個16位的二進制數(shù)),傳送完以后,再將兩個整形數(shù)整合為一個浮點數(shù)。

    2、 在調(diào)試過程中,當數(shù)據(jù)傳輸至PLC中后,最初發(fā)現(xiàn)數(shù)據(jù)并不是原來的數(shù)值,而是一些莫名其妙的數(shù)據(jù),要么大的離譜,要么是負的多位數(shù)。

      經(jīng)過反復(fù)的嘗試,終于發(fā)現(xiàn)問題所在,原來,在Modbus總線中,數(shù)據(jù)傳輸時是低位字節(jié)先傳送,傳送過來后如果不進行交換,二進制的數(shù)值排列是反向的,即原來的低字節(jié)在高位,高字節(jié)在低位,所以得到的數(shù)據(jù)和原數(shù)據(jù)相差甚遠。只要將數(shù)據(jù)的高低位字節(jié)進行交換(swap位置1<

     
     
    網(wǎng)站首頁  |  關(guān)于我們  |  聯(lián)系我們  |  廣告服務(wù)  |  版權(quán)隱私  |  友情鏈接  |  站點導(dǎo)航