基于linux 的多功能網(wǎng)關(guān)的設
4 多功能網(wǎng)關(guān)軟件設計
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不再難懂)tcp/ip相關(guān)文章:tcp/ip是什么
評論