新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于linux 的多功能網關的設計

        基于linux 的多功能網關的設計

        作者: 時間:2012-02-21 來源:網絡 收藏

        摘要:深入研究了MODBUS RTU協議和MODBUS TCP協議,以UC7402-LX為開發平臺,了一款,用于解決工業以太網環境下串口通信設備的“信息孤島”問題。

        本文引用地址:http://www.104case.com/article/149596.htm

        1 引言

        隨著世界范圍內網絡和信息技術的日趨成熟,在工業通信和自動化應用中日益采用以太 網和TCP/IP 協議作為最主要的通信接口和手段,向網絡化、標準化、開放性方向發展將是 各種控制系統技術發展的主要潮流。然而,采用串口進行通信的現場設備仍然大量存在,且 必將在相當長的一段時間內存在。因此,在串口設備和工業以太網之間就需要有一個橋梁, 來消除工業現場中的“信息孤島”。

        Modbus/TCP 是Modbus 的延伸,它以太網和標準TCP/IP 協議,直接應用第四層。 它定義了一個結構簡單的、開放和廣泛應用的傳輸協議,用于主從式通信。Modbus TCP/IP 基本上用簡單方式將Modbus 幀嵌入TCP 幀,是一種面向連接的傳送,它需要響應。在TCP 幀中使用開放的Modbus 提供了一種系統規模可伸縮的方案,由10 個節點到100 個網絡節 點。Modbus TCP/IP 在工業現場得到了廣泛的應用,是目前工業以太網通信的事實上的標準。

        本文以 MOXA 的嵌入式工控機UC7402-LX 為平臺,在深入研究MODBUS 通信協議的 基礎上,了一款,既可以實現MODBUS/TCP 與MODBUS/RTU 的雙向轉換, 同時也可以實現MODBUS/TCP 與自定義串口通信協議的雙向轉換。

        2 硬件平臺簡介

        MOXA UC7402-LX 采用Intel Xscale IXP-422 266Mhz 處理器,內嵌Apache 網頁服務器 支持PHP 和XML,低功耗和無風扇的使其結構緊湊,非常適合在工業環境當中使用。 MOXA UC7402-LX 配備有2 個10/100 Mbps 網口和8 個可通過軟件設置的RS-232/485/422 串口,并預裝有 系統。

        3 MODBUS 協議

        MODBUS是 MODICNO公司最先倡導的一種通信協議,經過許多公司的實際應用,逐漸被認 可,成為一種應用于工業控制器上的標準通信協議,由于其功能比較完善而且協議開放,因此,被廣泛應用于工業現場,在微機化測量設備之間實現雙向串行多節點數字通信。它連接 單個分散的測量控制設備,使之可以相互溝通信息、共同完成自控任務的網絡系統與控制系 統,具有分散控制、使用簡單、簡化系統結構、數據易于處理、節約硬件設備、易于安裝和 維護等優點。

        3.1 MODBUS RTU

        MODBUS有兩種串行傳輸模式,即RTU模式和ASCII模式。RTU模式以十六進制傳送數據, 每個8bit字節包含兩個4bit的十六進制字符。而ASCII模式是將一個字節分為兩個ASCII字符 發送。因而在同樣的波特率下,RTU模式比ASCII模式具有更高的吞吐率。大多數工業控制器 采用RTU模式。

        MODBUS RTU的報文幀和字節長度如表1所示,報文總是由起始位、設備地址、功能碼、 數據域、校驗域和結束位組成。

        3.2 MODBUS TCP

        Modbus TCP 只是在 TCP/IP 協議的基礎上進一步進行了modbus 報文的封裝,其數據幀 如圖1 所示,包含了報文頭,功能代碼和數據三部分,其中MBAP 報文頭各域及所占字節長 度如表2 所示。

        4 軟件設計

        4.1 modbus tcp 與modbus rtu 協議轉換

        由上可知,modbus tcp 與modbus rtu 的協議轉換的核心即為數據幀的解封裝與封裝。 Modbus 最初在串行鏈路上的實現(最大RS485ADU=256 字節)限制了Modbus PDU 的長度。 因此,對串行鏈路通信來說,Modbus PDU=256-服務器地址(1 字節)-CRC(2 字節)=253字節。從而:RS232 / RS485 ADU = 253 字節+服務器地址(1 字節) + CRC (2 字節)= 256 字節。 TCP Modbus ADU = 253 字節+ MBAP (7 字節) = 260 字節。如圖3 所示為modbus RTU 為 master 時的軟件流程圖,部分代碼摘錄如下:



        4.2 modbus tcp 與自定義串口協議轉換

        自定義串口協議與 modbus rtu 類似,但由于其協議為自定義的,導致ADU 的格式并不 固定,這就需要定制該函數。本文目前只針對單一設備的情況,因此采取將串口數據幀直接 作為modbus tcp 的PDU,而MBAP 采用固定格式處理,完成了對單一串口單臺設備連接的 透明處理。

        5 結束語

        Frenic-Mini 為富士的一款變頻器,支持簡易的modbus 的協議。本設計利用Frenic-mini 連接三相異步電機,采用modbus rtu 與moxa 7402-LX 通信,成功地實現了遠程變頻器停啟 及頻率讀取。如下圖4 所示,為測試連接圖。

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 阳泉市| 扎鲁特旗| 万源市| 五家渠市| 岑巩县| 金华市| 昂仁县| 阳信县| 星座| 南康市| 大新县| 德保县| 罗平县| 鹤庆县| 象州县| 浦县| 临桂县| 商城县| 龙游县| 忻州市| 乌鲁木齐市| 林西县| 西畴县| 翁源县| 吉林市| 延川县| 漳州市| 大连市| 琼结县| 丰县| 酉阳| 三门县| 隆回县| 共和县| 洮南市| 武宁县| 黄冈市| 仁化县| 广汉市| 江川县| 田东县|