產(chǎn)品目錄
蒸汽流量計
渦街流量計
孔板流量計
壓縮空氣流量計
氣體流量計
熱式氣體質(zhì)量流量計
旋進旋渦流量計
金屬管浮子流量計
靶式流量計
電磁流量計
渦輪流量計
橢圓齒輪流量計
水流量計
液體流量計
超聲波流量計
磁翻板液位計
浮子液位計
浮球液位計
玻璃管液位計
雷達液位計
超聲波液位計
投入式液位計
壓力變送器
差壓變送器
液位變送器
溫度變送器
熱電偶
熱電阻
雙金屬溫度計
相關(guān)產(chǎn)品
聯(lián)系我們
聯(lián)系電話:15195518515
服務(wù)熱線:0517-86801009
公司傳真:0517-86801007
公司郵箱:[email protected]
公司地址:江蘇省金湖縣理士大道61號
一種基于Modbus協(xié)議的壓縮氣體流量表通訊模塊設(shè)計
摘要:西門子 SITRANS FUS 超聲波流量的表頭支持 4-20mA 電流信號輸出和 RS232 文本日志輸出,都無法與水利部門采 用 Modbus 協(xié)議的取水監(jiān)測設(shè)備進行通信。針對此問題,本文自主設(shè)計并實現(xiàn)了一種支持Modbus 協(xié)議的通訊模塊,能夠?qū)崟r解析 流量計表頭 232 端口輸出的文本信息,并將其轉(zhuǎn)換成 Modbus 協(xié)議報文,與取水監(jiān)測設(shè)備進行通信。該通訊模塊具有結(jié)構(gòu)簡單、可 拓展性強、成本低的優(yōu)點。
1 概述
西門子 SITRANS FUS 外夾式壓縮氣體流量表的標準表頭支 持 4- 20mA 電流信號輸出,而水利部門的取水監(jiān)測設(shè)備應(yīng)用層 采用的是 Modbus 協(xié)議,物理層采用的是 RS485 標準,無法與SITRANS FUS 流量計的表頭通信。針對這一問題,本文自主設(shè) 計并實現(xiàn)了一種支持 Modbus 協(xié)議的通信模塊,使得超聲波流量計表頭與取水監(jiān)測設(shè)備可以以 Modbus 協(xié)議進行通訊。
2 系統(tǒng)架構(gòu)
圖 1 為本文設(shè)計的 Modbus 通訊模塊與取水流量監(jiān)測設(shè)備、 壓縮氣體流量表表頭組成的系統(tǒng)架構(gòu)示意圖。該模塊通過SITRANS FUS壓縮氣體流量表表頭的 232 接口與流量計表頭通信;通過 485 接口,以 Modbus 協(xié)議與水利部門的取水監(jiān)測設(shè)備通信。通訊模塊將壓縮氣體流量表的信息解析并封裝成 Modbus報文,提供給取水監(jiān)測設(shè)備讀取。硬件方面,采用成熟的STM32F407 開發(fā)板,帶有 232 接口和 485 接口,本文主要實現(xiàn)軟件部分的功能。
3 軟件設(shè)計
3.1 軟件架構(gòu)
Modbus 通訊模塊的軟件架構(gòu)如圖 2 所示,分為硬件層、硬件抽象層,中間層和應(yīng)用層。中間層包括一個實時操作系統(tǒng)FreeRTOS 和一個針對嵌入式環(huán)境開發(fā)的輕量級 Modbus 協(xié)議庫Freemodbus。在應(yīng)用層,主要創(chuàng)建了三個任務(wù),232_Task 負責讀 取和解析流量計表頭輸出的文本信息,Modbus_Task 負責存儲 解析后的流量計數(shù)據(jù)到 Modbus 寄存器表,以及以 Modbus 協(xié)議與取水監(jiān)測設(shè)備通信,LED_Task 是一個輔助任務(wù),主要用來提示程序運行狀態(tài)。
3.2 軟件流程圖
圖 3 為 Modbus 通訊模塊的軟件流程圖,創(chuàng)建的三個任務(wù)都是以 FreeRTOS 系統(tǒng)的消息(Message)來驅(qū)動。
4 測試與通訊聯(lián)調(diào)
Modbus 通訊模塊如圖 4 所示。為保證供電穩(wěn)定,使用了電源切換裝置給主板供電,共有主副兩路 5V 電源。
在 PC 上使用權(quán)威工具測試軟件 Modbus poll,作為 Modbus主機對通訊模塊進行測試。通訊模塊作為 Modbus 從機響應(yīng)Modbus Poll 軟件發(fā)出的請求。通訊模塊內(nèi)部使用Modbus 的輸入寄存器(Input Register)存儲流量計數(shù)據(jù)。Modbus Poll 發(fā)送的測試命令字節(jié)流為:01 04 00 00 0014 F0 05。其中 0x01 為 Modbus 從機地址,0x04 功能碼為讀取 輸入寄存器命令,0x0000 為讀取寄存器的起始地址,0x0014(20)為讀取寄存器的個數(shù),0xF0 0x05 為 CRC 校驗碼。
Modbus Poll 通訊測試結(jié)果如圖 5 所示:Tx = 24140,Err =0,ID = 1,F(xiàn) = 04,SR = 1000ms,Log = on。 其中 ,Tx 為Modbus Poll 發(fā)送命令次數(shù),也就是說在測試期間 Modbus Poll軟件共發(fā)送讀輸入寄存器命令 24140 次(發(fā)送間隔為 1s,測試時間為 6.7 小時);Err 為通訊錯誤數(shù),Err = 0 表明 Modbus 通訊模塊正確響應(yīng)次數(shù)為 24140 次(錯誤數(shù)為 0)。
5 結(jié)論
本文針對 FUS 壓縮氣體流量表無 Modbus 通訊接口,無法與取 水監(jiān)測設(shè)備通訊的問題,自主設(shè)計并實現(xiàn)了一種基于微處理器STM32F407 的低成本 Modbus 通訊模塊。在通訊模塊的主控芯 片 上 移 植 了 開 源 代 碼 庫 FreeModbus 和 開 源 操 作 系 統(tǒng)FreeRTOS,實現(xiàn)了對流量計表頭輸出文本的解析,以及與Modbus 主機的通訊,從而實現(xiàn)了給 FUS 壓縮氣體流量表表頭增加Modbus 通訊的功能。測試結(jié)果表明,該通訊模塊工作穩(wěn)定可靠,具備了在較高通訊頻率下正確響應(yīng) Modbus 主機請求的能力,達到了實用要求。該通訊模塊也具備一定的可拓展性,可應(yīng)用 在公司其它 FUS 壓縮氣體流量表上,并且很容易通過 485 總線與DCS 系統(tǒng)或 PLC 進行通訊。
1 概述
西門子 SITRANS FUS 外夾式壓縮氣體流量表的標準表頭支 持 4- 20mA 電流信號輸出,而水利部門的取水監(jiān)測設(shè)備應(yīng)用層 采用的是 Modbus 協(xié)議,物理層采用的是 RS485 標準,無法與SITRANS FUS 流量計的表頭通信。針對這一問題,本文自主設(shè) 計并實現(xiàn)了一種支持 Modbus 協(xié)議的通信模塊,使得超聲波流量計表頭與取水監(jiān)測設(shè)備可以以 Modbus 協(xié)議進行通訊。
2 系統(tǒng)架構(gòu)
圖 1 為本文設(shè)計的 Modbus 通訊模塊與取水流量監(jiān)測設(shè)備、 壓縮氣體流量表表頭組成的系統(tǒng)架構(gòu)示意圖。該模塊通過SITRANS FUS壓縮氣體流量表表頭的 232 接口與流量計表頭通信;通過 485 接口,以 Modbus 協(xié)議與水利部門的取水監(jiān)測設(shè)備通信。通訊模塊將壓縮氣體流量表的信息解析并封裝成 Modbus報文,提供給取水監(jiān)測設(shè)備讀取。硬件方面,采用成熟的STM32F407 開發(fā)板,帶有 232 接口和 485 接口,本文主要實現(xiàn)軟件部分的功能。
3 軟件設(shè)計
3.1 軟件架構(gòu)
Modbus 通訊模塊的軟件架構(gòu)如圖 2 所示,分為硬件層、硬件抽象層,中間層和應(yīng)用層。中間層包括一個實時操作系統(tǒng)FreeRTOS 和一個針對嵌入式環(huán)境開發(fā)的輕量級 Modbus 協(xié)議庫Freemodbus。在應(yīng)用層,主要創(chuàng)建了三個任務(wù),232_Task 負責讀 取和解析流量計表頭輸出的文本信息,Modbus_Task 負責存儲 解析后的流量計數(shù)據(jù)到 Modbus 寄存器表,以及以 Modbus 協(xié)議與取水監(jiān)測設(shè)備通信,LED_Task 是一個輔助任務(wù),主要用來提示程序運行狀態(tài)。
3.2 軟件流程圖
圖 3 為 Modbus 通訊模塊的軟件流程圖,創(chuàng)建的三個任務(wù)都是以 FreeRTOS 系統(tǒng)的消息(Message)來驅(qū)動。
4 測試與通訊聯(lián)調(diào)
Modbus 通訊模塊如圖 4 所示。為保證供電穩(wěn)定,使用了電源切換裝置給主板供電,共有主副兩路 5V 電源。
在 PC 上使用權(quán)威工具測試軟件 Modbus poll,作為 Modbus主機對通訊模塊進行測試。通訊模塊作為 Modbus 從機響應(yīng)Modbus Poll 軟件發(fā)出的請求。通訊模塊內(nèi)部使用Modbus 的輸入寄存器(Input Register)存儲流量計數(shù)據(jù)。Modbus Poll 發(fā)送的測試命令字節(jié)流為:01 04 00 00 0014 F0 05。其中 0x01 為 Modbus 從機地址,0x04 功能碼為讀取 輸入寄存器命令,0x0000 為讀取寄存器的起始地址,0x0014(20)為讀取寄存器的個數(shù),0xF0 0x05 為 CRC 校驗碼。
Modbus Poll 通訊測試結(jié)果如圖 5 所示:Tx = 24140,Err =0,ID = 1,F(xiàn) = 04,SR = 1000ms,Log = on。 其中 ,Tx 為Modbus Poll 發(fā)送命令次數(shù),也就是說在測試期間 Modbus Poll軟件共發(fā)送讀輸入寄存器命令 24140 次(發(fā)送間隔為 1s,測試時間為 6.7 小時);Err 為通訊錯誤數(shù),Err = 0 表明 Modbus 通訊模塊正確響應(yīng)次數(shù)為 24140 次(錯誤數(shù)為 0)。
5 結(jié)論
本文針對 FUS 壓縮氣體流量表無 Modbus 通訊接口,無法與取 水監(jiān)測設(shè)備通訊的問題,自主設(shè)計并實現(xiàn)了一種基于微處理器STM32F407 的低成本 Modbus 通訊模塊。在通訊模塊的主控芯 片 上 移 植 了 開 源 代 碼 庫 FreeModbus 和 開 源 操 作 系 統(tǒng)FreeRTOS,實現(xiàn)了對流量計表頭輸出文本的解析,以及與Modbus 主機的通訊,從而實現(xiàn)了給 FUS 壓縮氣體流量表表頭增加Modbus 通訊的功能。測試結(jié)果表明,該通訊模塊工作穩(wěn)定可靠,具備了在較高通訊頻率下正確響應(yīng) Modbus 主機請求的能力,達到了實用要求。該通訊模塊也具備一定的可拓展性,可應(yīng)用 在公司其它 FUS 壓縮氣體流量表上,并且很容易通過 485 總線與DCS 系統(tǒng)或 PLC 進行通訊。