相關產品(pǐn)推(tuī)薦更多 >>
一(yī)種基於Modbus協議的乙烯流量計通訊(xùn)模塊設計
點擊次數:2117 發布時間:2021-01-08 07:19:02
摘要(yào):西門子 SITRANS FUS 超聲波流量的表頭支持 4-20mA 電流信號輸出和 RS232 文本日誌輸出(chū),都無(wú)法與水利部門采 用 Modbus 協議的取水監測設備進行通信。針對此問題,本文自主設計並實現了一種支(zhī)持Modbus 協議的通訊模塊,能夠實時解析 流量計(jì)表(biǎo)頭 232 端口輸出的文本信息,並將其轉換成 Modbus 協議報文(wén),與取水監測設備進行通信。該通(tōng)訊模塊具有(yǒu)結構簡單、可 拓展性強、成(chéng)本低的優點。
1 概述
西門子 SITRANS FUS 外夾式乙烯流量計的(de)標準表頭支 持 4- 20mA 電流(liú)信號輸出,而(ér)水利(lì)部門的取水監測設備(bèi)應用層 采(cǎi)用的是 Modbus 協議,物理層采用的是 RS485 標準,無法(fǎ)與SITRANS FUS 流量計(jì)的表(biǎo)頭通信(xìn)。針對這一問題,本文自主設 計並實現了一種支(zhī)持 Modbus 協議的通(tōng)信模塊,使得超(chāo)聲波流量計表頭與取水監測設備可以以 Modbus 協議進行通訊。
2 係統架構
圖(tú) 1 為本文設計的 Modbus 通訊模塊與取水流量監測設備、 乙烯流量計表頭(tóu)組成的係統架構示意圖。該模塊通過(guò)SITRANS FUS乙烯流量計表頭的 232 接口與(yǔ)流量(liàng)計表頭通信;通過 485 接口(kǒu),以 Modbus 協議與水利部(bù)門的取水(shuǐ)監測(cè)設(shè)備通信。通訊模塊將乙烯流量(liàng)計的信息解(jiě)析並封裝成 Modbus報文,提供給取水監測設備(bèi)讀(dú)取。硬件方麵,采(cǎi)用成(chéng)熟的STM32F407 開發板,帶有 232 接口和 485 接口,本文主要實現軟件部分的功能。

3 軟件設計(jì)
3.1 軟(ruǎn)件架構
Modbus 通訊模塊的軟件架構如圖 2 所示,分為硬件層、硬件抽(chōu)象層,中間層和應用層。中間層包括一個實時操作係統FreeRTOS 和一個針對嵌入式環境(jìng)開發的輕量級 Modbus 協議庫Freemodbus。在應用層,主要創建(jiàn)了三個任務(wù),232_Task 負責讀 取和解析流量計表(biǎo)頭輸出(chū)的文(wén)本信息,Modbus_Task 負責存儲 解析後的流量計數據到 Modbus 寄存器表,以及以 Modbus 協議與取水監(jiān)測設備通信,LED_Task 是一個輔助任務(wù),主要用來提示程序運行狀態。

3.2 軟件流程圖
圖 3 為 Modbus 通訊模塊的軟件流程圖,創建(jiàn)的三個(gè)任務都是以 FreeRTOS 係統的消息(Message)來驅動。

4 測試與通訊聯調
Modbus 通訊模塊如圖 4 所示。為保(bǎo)證供電(diàn)穩定,使用了電源切換裝置給主板供電,共有主副(fù)兩路 5V 電源。

在 PC 上使用權威工具測試軟件(jiàn) Modbus poll,作為 Modbus主機對通訊模塊進(jìn)行測(cè)試。通訊模塊作為 Modbus 從機響應Modbus Poll 軟件發出的請求。通訊(xùn)模塊內部使用Modbus 的輸入(rù)寄存器(Input Register)存儲(chǔ)流量計數據。Modbus Poll 發(fā)送的測試命令字節流為:01 04 00 00 0014 F0 05。其中 0x01 為 Modbus 從機地址,0x04 功能碼為讀取 輸(shū)入寄存器命令,0x0000 為(wéi)讀取寄存器的起始地(dì)址,0x0014(20)為讀取寄存器的個數,0xF0 0x05 為 CRC 校驗碼。

Modbus Poll 通訊(xùn)測試結果如圖 5 所(suǒ)示:Tx = 24140,Err =0,ID = 1,F = 04,SR = 1000ms,Log = on。 其中(zhōng) ,Tx 為Modbus Poll 發(fā)送命令次數,也就是說在測試期間(jiān) Modbus Poll軟件共(gòng)發送讀輸入寄存器命令 24140 次(發送(sòng)間隔為(wéi) 1s,測試時間為 6.7 小時);Err 為通訊(xùn)錯誤數,Err = 0 表明 Modbus 通訊模(mó)塊(kuài)正確響應次數為 24140 次(錯誤數為 0)。
5 結論
本文(wén)針對(duì) FUS 乙烯(xī)流量計無 Modbus 通訊接口,無法與取 水監測設備(bèi)通訊的問題,自主設計並實(shí)現了一種基於微(wēi)處(chù)理器STM32F407 的低成本(běn) Modbus 通訊模塊。在通訊模塊的主控芯 片 上 移 植 了 開 源 代 碼 庫 FreeModbus 和 開 源 操 作 係 統(tǒng)FreeRTOS,實現了對流量計表頭輸出文本的解析,以及(jí)與Modbus 主機的(de)通訊,從而實現了給 FUS 乙烯流量計表頭增加Modbus 通訊的(de)功能。測試結(jié)果表明,該通訊模塊工作穩(wěn)定可靠,具備(bèi)了在較高通訊頻率下正確響(xiǎng)應 Modbus 主機請求的能力,達到了實用要求。該通訊模塊(kuài)也具備一(yī)定的可(kě)拓展(zhǎn)性,可應用 在(zài)公司其它 FUS 乙烯流量計上,並且很容易(yì)通過(guò) 485 總(zǒng)線與DCS 係統或 PLC 進行通訊。
1 概述
西門子 SITRANS FUS 外夾式乙烯流量計的(de)標準表頭支 持 4- 20mA 電流(liú)信號輸出,而(ér)水利(lì)部門的取水監測設備(bèi)應用層 采(cǎi)用的是 Modbus 協議,物理層采用的是 RS485 標準,無法(fǎ)與SITRANS FUS 流量計(jì)的表(biǎo)頭通信(xìn)。針對這一問題,本文自主設 計並實現了一種支(zhī)持 Modbus 協議的通(tōng)信模塊,使得超(chāo)聲波流量計表頭與取水監測設備可以以 Modbus 協議進行通訊。
2 係統架構
圖(tú) 1 為本文設計的 Modbus 通訊模塊與取水流量監測設備、 乙烯流量計表頭(tóu)組成的係統架構示意圖。該模塊通過(guò)SITRANS FUS乙烯流量計表頭的 232 接口與(yǔ)流量(liàng)計表頭通信;通過 485 接口(kǒu),以 Modbus 協議與水利部(bù)門的取水(shuǐ)監測(cè)設(shè)備通信。通訊模塊將乙烯流量(liàng)計的信息解(jiě)析並封裝成 Modbus報文,提供給取水監測設備(bèi)讀(dú)取。硬件方麵,采(cǎi)用成(chéng)熟的STM32F407 開發板,帶有 232 接口和 485 接口,本文主要實現軟件部分的功能。

3 軟件設計(jì)
3.1 軟(ruǎn)件架構
Modbus 通訊模塊的軟件架構如圖 2 所示,分為硬件層、硬件抽(chōu)象層,中間層和應用層。中間層包括一個實時操作係統FreeRTOS 和一個針對嵌入式環境(jìng)開發的輕量級 Modbus 協議庫Freemodbus。在應用層,主要創建(jiàn)了三個任務(wù),232_Task 負責讀 取和解析流量計表(biǎo)頭輸出(chū)的文(wén)本信息,Modbus_Task 負責存儲 解析後的流量計數據到 Modbus 寄存器表,以及以 Modbus 協議與取水監(jiān)測設備通信,LED_Task 是一個輔助任務(wù),主要用來提示程序運行狀態。

3.2 軟件流程圖
圖 3 為 Modbus 通訊模塊的軟件流程圖,創建(jiàn)的三個(gè)任務都是以 FreeRTOS 係統的消息(Message)來驅動。

4 測試與通訊聯調
Modbus 通訊模塊如圖 4 所示。為保(bǎo)證供電(diàn)穩定,使用了電源切換裝置給主板供電,共有主副(fù)兩路 5V 電源。

在 PC 上使用權威工具測試軟件(jiàn) Modbus poll,作為 Modbus主機對通訊模塊進(jìn)行測(cè)試。通訊模塊作為 Modbus 從機響應Modbus Poll 軟件發出的請求。通訊(xùn)模塊內部使用Modbus 的輸入(rù)寄存器(Input Register)存儲(chǔ)流量計數據。Modbus Poll 發(fā)送的測試命令字節流為:01 04 00 00 0014 F0 05。其中 0x01 為 Modbus 從機地址,0x04 功能碼為讀取 輸(shū)入寄存器命令,0x0000 為(wéi)讀取寄存器的起始地(dì)址,0x0014(20)為讀取寄存器的個數,0xF0 0x05 為 CRC 校驗碼。

Modbus Poll 通訊(xùn)測試結果如圖 5 所(suǒ)示:Tx = 24140,Err =0,ID = 1,F = 04,SR = 1000ms,Log = on。 其中(zhōng) ,Tx 為Modbus Poll 發(fā)送命令次數,也就是說在測試期間(jiān) Modbus Poll軟件共(gòng)發送讀輸入寄存器命令 24140 次(發送(sòng)間隔為(wéi) 1s,測試時間為 6.7 小時);Err 為通訊(xùn)錯誤數,Err = 0 表明 Modbus 通訊模(mó)塊(kuài)正確響應次數為 24140 次(錯誤數為 0)。
5 結論
本文(wén)針對(duì) FUS 乙烯(xī)流量計無 Modbus 通訊接口,無法與取 水監測設備(bèi)通訊的問題,自主設計並實(shí)現了一種基於微(wēi)處(chù)理器STM32F407 的低成本(běn) Modbus 通訊模塊。在通訊模塊的主控芯 片 上 移 植 了 開 源 代 碼 庫 FreeModbus 和 開 源 操 作 係 統(tǒng)FreeRTOS,實現了對流量計表頭輸出文本的解析,以及(jí)與Modbus 主機的(de)通訊,從而實現了給 FUS 乙烯流量計表頭增加Modbus 通訊的(de)功能。測試結(jié)果表明,該通訊模塊工作穩(wěn)定可靠,具備(bèi)了在較高通訊頻率下正確響(xiǎng)應 Modbus 主機請求的能力,達到了實用要求。該通訊模塊(kuài)也具備一(yī)定的可(kě)拓展(zhǎn)性,可應用 在(zài)公司其它 FUS 乙烯流量計上,並且很容易(yì)通過(guò) 485 總(zǒng)線與DCS 係統或 PLC 進行通訊。