<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于linux 的多功能網(wǎng)關(guān)的設計

基于linux 的多功能網(wǎng)關(guān)的設計

作者: 時(shí)間:2012-02-21 來(lái)源:網(wǎng)絡(luò ) 收藏

摘要:深入研究了MODBUS RTU協(xié)議和MODBUS TCP協(xié)議,以UC7402-LX為開(kāi)發(fā)平臺,了一款,用于解決工業(yè)以太網(wǎng)環(huán)境下串口通信設備的“信息孤島”問(wèn)題。

本文引用地址:http://dyxdggzs.com/article/149596.htm

1 引言

隨著(zhù)世界范圍內網(wǎng)絡(luò )和信息技術(shù)的日趨成熟,在工業(yè)通信和自動(dòng)化應用中日益采用以太 網(wǎng)和TCP/IP 協(xié)議作為最主要的通信接口和手段,向網(wǎng)絡(luò )化、標準化、開(kāi)放性方向發(fā)展將是 各種控制系統技術(shù)發(fā)展的主要潮流。然而,采用串口進(jìn)行通信的現場(chǎng)設備仍然大量存在,且 必將在相當長(cháng)的一段時(shí)間內存在。因此,在串口設備和工業(yè)以太網(wǎng)之間就需要有一個(gè)橋梁, 來(lái)消除工業(yè)現場(chǎng)中的“信息孤島”。

Modbus/TCP 是Modbus 的延伸,它以太網(wǎng)和標準TCP/IP 協(xié)議,直接應用第四層。 它定義了一個(gè)結構簡(jiǎn)單的、開(kāi)放和廣泛應用的傳輸協(xié)議,用于主從式通信。Modbus TCP/IP 基本上用簡(jiǎn)單方式將Modbus 幀嵌入TCP 幀,是一種面向連接的傳送,它需要響應。在TCP 幀中使用開(kāi)放的Modbus 提供了一種系統規??缮炜s的方案,由10 個(gè)節點(diǎn)到100 個(gè)網(wǎng)絡(luò )節 點(diǎn)。Modbus TCP/IP 在工業(yè)現場(chǎng)得到了廣泛的應用,是目前工業(yè)以太網(wǎng)通信的事實(shí)上的標準。

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

2 硬件平臺簡(jiǎn)介

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

3 MODBUS 協(xié)議

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

3.1 MODBUS RTU

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

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

3.2 MODBUS TCP

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

4 軟件設計

4.1 modbus tcp 與modbus rtu 協(xié)議轉換

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



4.2 modbus tcp 與自定義串口協(xié)議轉換

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

5 結束語(yǔ)

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

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


評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>