技術頻道

      利用Modbus協議實現無線通信

      摘 要:本文介紹了Modbus的控制網絡及協議特點,著重分析Modbus ACSII模式的消息幀組成、校驗碼的計算及主要的功能。并對利用Modbus協議實現遠程無線通信的有關要點作了說明。

      關鍵詞:Modbus網絡;Modbus協議;LRC校驗碼;無線數傳modem;半雙工

      1 引言

        利用數傳無線電臺進行遠程通信可以通過多種編程方法來實現。但是如果在通信可靠性、兼容性和組網的靈活性方面有要求,那么就不是一般通信程序能實現的。最好是能利用一個現成的、應用最廣泛的、可靠性較高的、通信效率較好的、實現較容易的、經過充分實踐證明的通用通信協議來完成。Modbus協議正是完全符合上述要求的諸多通信協議中的一種。

        Modbus協議是由美國可編程控制器制造商莫迪康(Modicon Inc.)公司出品的一種應用于工業通信和分布式控制系統的協議。現已被眾多的硬件廠商所支持,已經成為一通用工業標準。通過此協議,控制器之間、控制器經由網絡(例如以太網)和其它設備之間可以通信。由于Modbus協議完全公開、實現簡單、硬件要求低、可靠性好等特點,已成為構建低速網絡(數據采集、儀表等)通信的最佳選擇。

      2 Modbus協議

        2.1 協議簡介

        Modbus協議通信使用主—從技術,即僅有一臺設備(主設備)能初始化傳輸(查詢)。其它設備(從設備)根據主設備查詢提供的數據作出相應回應。圖1是Modbus協議的詢問應答環路。典型的主設備:主機和可編程儀表。典型的從設備:可編程控制器。


      圖1 主從查詢——回應周期表

        主設備發送的一個含有指定編址的請求報文到通訊線路上;從設備則從通訊線路上檢測報文是否含有自身編址。如果報文編址與自身編址相同則接收此報文進行處理。從機報文處理的過程是,如果報文正確,則按報文要求執行任務,然后再將正確的回應報文返回給發送者;否則只返回一個錯誤信息報文給發送者。

        Modbus協議上允許1臺主機和至多247臺從機。只有主機才能啟動事務處理程序。事務處理可以是應答式(只對一臺從機尋址),亦可是廣播式(無應答,對所有從機尋址)。事務處理程序由詢問和應答幀組成,或由一個廣播幀組成。

        Modbus協議提供兩種傳輸模式供用戶選擇。一種模式是ASCII(美國標準信息交換代碼),另一種模式是RTU(遠程終端設備)。這兩種模式從實現通信的功能上看是完全一樣的。ASCII模式主要優點是字符發送的時間間隔可達到1秒而不產生錯誤,較為適用于長距離、低速率的通信應用(如無線電臺通信等)。RTU模式則較為適用于短距離、高速率的通信應用。在控制系統中應用較多。

        由于本文主要是利用Modbus協議的ASCII模式來實現無線通信。因此著重介紹Modbus協議的ASCII模式。

        2.2 ASCII模式格式

        使用ASCII模式,消息以冒號(:)字符(ASCII碼 3AH)開始,以回車換行符結束(ASCII碼 0DH,0AH)。

        其它域可以使用的傳輸字符是十六進制的0...9,A...F。網絡上的設備不斷偵測“:”字符,當有一個冒號接收到時,每個設備都解碼下個域(地址域)來判斷是否發給自己的。

        一個典型消息幀如下所示:


      圖2 ASCII消息幀

        起始位字段表示一幀報文的開始。
        地址碼字段表示接收主機報文的從機地址。用戶必須設置每臺從機的地址。
        功能碼字段通知從站應執行何種功能。
        數據字段含有從機執行某項具體功能的信息,或含有從機應答詢問的信息,這些信息可以是數值、地址參數或范圍。
        校驗碼字段是用來檢查通訊報文有無錯誤。

        2.3 LRC校驗

        ASCII模式采用LRC方法進行錯誤校驗。具體為:

        A、LRC域檢測了消息域中除開始的冒號及結束的回車換行號外的內容。

        B、LRC域是一個包含一個8位二進制值的字節。LRC值由傳輸設備來計算并放到消息幀中,接收設備在接收消息的過程中計算LRC,并將它和接收到消息中LRC域中的值比較,如果兩值不等,說明有錯誤。

        C、LRC方法是將消息中的8Bit的字節連續累加,丟棄了進位。

        LRC簡單函數如下:

        static unsigned char LRC(auchMsg,usDataLen)

        unsigned char *auchMsg ; /* 要進行計算的消息 */

        unsigned short usDataLen ; /* LRC 要處理的字節的數量*/

        { unsigned char uchLRC = 0 ; /* LRC 字節初始化 */

        while (usDataLen——) /* 傳送消息 */

        uchLRC += *auchMsg++ ; /* 累加*/

        return ((unsigned char)(-((char_uchLRC))) ;

        }

      3 功能描述

        3.1功能概述

        Modbus協議總共有24種功能。其中主要的有8種,分別如圖3所示:


      圖3 Modbus協議主要功能

        Modbus協議原意是為了實現可編程控制器的高效聯網通信。在此8種功能中其通信功能有所重復。有考慮到實現的簡易性,在無線通信應用中,其實只需功能04及功能16即可。

        3.2 讀輸入寄存器組(功能碼04)

        例如:讀8號從機的寄存器組。起始地址是30123,寄存器個數是2個的報文格式如圖4所示:

        讀輸入寄存器組詢問報文:

        讀輸入寄存器組應答報文:


      圖4 讀輸入寄存器組報文格式

        3.3 寫多個寄存器(功能碼16)

        本功能可以修改控制器內多個寄存器的內容,不用的高位必須置0。本功能碼支持廣播模式(即從機地址為0)。例如:將08從機的40210、40211寄存器置成0835h和0312h的報文如圖5所示。

        寫多個寄存器詢問報文:

        寫多個寄存器應答報文:


      圖5寫多個寄存器報文格式

      4 Modbus協議在無線通信中的實現

        4.1 Modbus口與無線數傳modem口的連接

        Modbus口及無線數傳modem口均采用標準9芯串行口方式,使用其中部分引腳。如圖6所示


      圖6 Modbus口與無線數傳modem口的連接

        4.2 通信方式的全雙工轉半雙工

        Modbus本身屬于半雙工的通信協議,而無線數傳modem一般只能工作于半雙工方式。無線數傳modem工作時,當RTS控制線為低電平,modem處于發送狀態,將TXD的信號以載波的方式發送出去;當RTS控制線為高電平時,則modem處于接收狀態,將接到的載波信號經檢波后送回Modbus口。

        如果所有的主從設備均采用半雙工方式通信時則用Modbus協議實現無線通信較為容易。然而如果在整個通信網絡中有部分從機采用全雙工方式工作時,則必須將此部分從機的通信機制改為半雙工。

        例如一個遠程主機與一個以Modicon TSX SCP 111通信卡為從機的PLC進

        行 Modbus無線通信時,就必須在Modicon TSX SCP 111側增加一塊全雙工轉半雙工卡。原因,Modicon TSX 111無論RXD是否存在有用信號均在每個通信周期均使CTS出現一次低電平(使電臺發射),擾亂了正常的通信。

      5 結論

        湛江市自來水公司寸金加壓站無人值守控制系統就是利用上述方法成功地實現了遠程無線遙控加壓站的機泵操作。實踐證明:運用Modbus協議來實現無線通信,使得通信可靠,系統結構簡單,擴展性好,能滿足多數工程的實際需要。

      參考文獻:

        [1] MODICON, Inc., Industrial Automation Systems 《Modicon Modbus Protocol Reference Guide》,June 1996

        [2] 陳柏金,通過串行口訪問Modbus現場控制網絡,微計算機信息2003.1.

      文章版權歸西部工控xbgk所有,未經許可不得轉載。

      主站蜘蛛池模板: 高清一区二区三区日本久| 精品女同一区二区三区在线| 日本一区二区三区在线视频观看免费| 大屁股熟女一区二区三区| 精品日韩亚洲AV无码一区二区三区| 日本一区视频在线播放| 精品一区二区久久久久久久网精| 国产伦精品一区二区三区女| 中文字幕精品一区二区精品| 午夜福利国产一区二区| 日韩精品一区二区三区国语自制 | 国产主播在线一区| 国产美女精品一区二区三区| 久久AAAA片一区二区| 天码av无码一区二区三区四区| 国产丝袜一区二区三区在线观看| 四虎在线观看一区二区 | 日韩精品人妻一区二区中文八零| 一区二区三区www| 免费国产在线精品一区| 国产凸凹视频一区二区| 日本一区二区三区在线网| 一区二区3区免费视频| 国产一区二区三区高清在线观看| 国产免费伦精品一区二区三区| 国产在线aaa片一区二区99| 亚洲AV无码一区东京热久久 | 人妻无码第一区二区三区 | 无码精品久久一区二区三区 | 农村人乱弄一区二区| 一区二区三区国产| 亚洲区精品久久一区二区三区| 精品女同一区二区三区免费站| 中文字幕精品一区二区2021年| 无码人妻精一区二区三区| 日本一区二区高清不卡| 亚洲一区AV无码少妇电影☆| 一区二区三区国产精品| 中文字幕日韩一区二区不卡| 精品乱码一区内射人妻无码| 日韩精品无码视频一区二区蜜桃|