相關(guān)產(chǎn)品推薦更多 >>
一種基于Modbus協(xié)議的水煤氣流量計(jì)通訊模塊設(shè)計(jì)
點(diǎn)擊次數(shù):1798 發(fā)布時(shí)間:2021-01-08 06:03:45
摘要:西門(mén)子 SITRANS FUS 超聲波流量的表頭支持 4-20mA 電流信號(hào)輸出和 RS232 文本日志輸出,都無(wú)法與水利部門(mén)采 用 Modbus 協(xié)議的取水監(jiān)測(cè)設(shè)備進(jìn)行通信。針對(duì)此問(wèn)題,本文自主設(shè)計(jì)并實(shí)現(xiàn)了一種支持Modbus 協(xié)議的通訊模塊,能夠?qū)崟r(shí)解析 流量計(jì)表頭 232 端口輸出的文本信息,并將其轉(zhuǎn)換成 Modbus 協(xié)議報(bào)文,與取水監(jiān)測(cè)設(shè)備進(jìn)行通信。該通訊模塊具有結(jié)構(gòu)簡(jiǎn)單、可 拓展性強(qiáng)、成本低的優(yōu)點(diǎn)。
1 概述
西門(mén)子 SITRANS FUS 外夾式水煤氣流量計(jì)的標(biāo)準(zhǔn)表頭支 持 4- 20mA 電流信號(hào)輸出,而水利部門(mén)的取水監(jiān)測(cè)設(shè)備應(yīng)用層 采用的是 Modbus 協(xié)議,物理層采用的是 RS485 標(biāo)準(zhǔn),無(wú)法與SITRANS FUS 流量計(jì)的表頭通信。針對(duì)這一問(wèn)題,本文自主設(shè) 計(jì)并實(shí)現(xiàn)了一種支持 Modbus 協(xié)議的通信模塊,使得超聲波流量計(jì)表頭與取水監(jiān)測(cè)設(shè)備可以以 Modbus 協(xié)議進(jìn)行通訊。
2 系統(tǒng)架構(gòu)
圖 1 為本文設(shè)計(jì)的 Modbus 通訊模塊與取水流量監(jiān)測(cè)設(shè)備、 水煤氣流量計(jì)表頭組成的系統(tǒng)架構(gòu)示意圖。該模塊通過(guò)SITRANS FUS水煤氣流量計(jì)表頭的 232 接口與流量計(jì)表頭通信;通過(guò) 485 接口,以 Modbus 協(xié)議與水利部門(mén)的取水監(jiān)測(cè)設(shè)備通信。通訊模塊將水煤氣流量計(jì)的信息解析并封裝成 Modbus報(bào)文,提供給取水監(jiān)測(cè)設(shè)備讀取。硬件方面,采用成熟的STM32F407 開(kāi)發(fā)板,帶有 232 接口和 485 接口,本文主要實(shí)現(xiàn)軟件部分的功能。
3 軟件設(shè)計(jì)
3.1 軟件架構(gòu)
Modbus 通訊模塊的軟件架構(gòu)如圖 2 所示,分為硬件層、硬件抽象層,中間層和應(yīng)用層。中間層包括一個(gè)實(shí)時(shí)操作系統(tǒng)FreeRTOS 和一個(gè)針對(duì)嵌入式環(huán)境開(kāi)發(fā)的輕量級(jí) Modbus 協(xié)議庫(kù)Freemodbus。在應(yīng)用層,主要?jiǎng)?chuàng)建了三個(gè)任務(wù),232_Task 負(fù)責(zé)讀 取和解析流量計(jì)表頭輸出的文本信息,Modbus_Task 負(fù)責(zé)存儲(chǔ) 解析后的流量計(jì)數(shù)據(jù)到 Modbus 寄存器表,以及以 Modbus 協(xié)議與取水監(jiān)測(cè)設(shè)備通信,LED_Task 是一個(gè)輔助任務(wù),主要用來(lái)提示程序運(yùn)行狀態(tài)。
3.2 軟件流程圖
圖 3 為 Modbus 通訊模塊的軟件流程圖,創(chuàng)建的三個(gè)任務(wù)都是以 FreeRTOS 系統(tǒng)的消息(Message)來(lái)驅(qū)動(dòng)。
4 測(cè)試與通訊聯(lián)調(diào)
Modbus 通訊模塊如圖 4 所示。為保證供電穩(wěn)定,使用了電源切換裝置給主板供電,共有主副兩路 5V 電源。
在 PC 上使用權(quán)威工具測(cè)試軟件 Modbus poll,作為 Modbus主機(jī)對(duì)通訊模塊進(jìn)行測(cè)試。通訊模塊作為 Modbus 從機(jī)響應(yīng)Modbus Poll 軟件發(fā)出的請(qǐng)求。通訊模塊內(nèi)部使用Modbus 的輸入寄存器(Input Register)存儲(chǔ)流量計(jì)數(shù)據(jù)。Modbus Poll 發(fā)送的測(cè)試命令字節(jié)流為:01 04 00 00 0014 F0 05。其中 0x01 為 Modbus 從機(jī)地址,0x04 功能碼為讀取 輸入寄存器命令,0x0000 為讀取寄存器的起始地址,0x0014(20)為讀取寄存器的個(gè)數(shù),0xF0 0x05 為 CRC 校驗(yàn)碼。
Modbus Poll 通訊測(cè)試結(jié)果如圖 5 所示:Tx = 24140,Err =0,ID = 1,F(xiàn) = 04,SR = 1000ms,Log = on。 其中 ,Tx 為Modbus Poll 發(fā)送命令次數(shù),也就是說(shuō)在測(cè)試期間 Modbus Poll軟件共發(fā)送讀輸入寄存器命令 24140 次(發(fā)送間隔為 1s,測(cè)試時(shí)間為 6.7 小時(shí));Err 為通訊錯(cuò)誤數(shù),Err = 0 表明 Modbus 通訊模塊正確響應(yīng)次數(shù)為 24140 次(錯(cuò)誤數(shù)為 0)。
5 結(jié)論
本文針對(duì) FUS 水煤氣流量計(jì)無(wú) Modbus 通訊接口,無(wú)法與取 水監(jiān)測(cè)設(shè)備通訊的問(wèn)題,自主設(shè)計(jì)并實(shí)現(xiàn)了一種基于微處理器STM32F407 的低成本 Modbus 通訊模塊。在通訊模塊的主控芯 片 上 移 植 了 開(kāi) 源 代 碼 庫(kù) FreeModbus 和 開(kāi) 源 操 作 系 統(tǒng)FreeRTOS,實(shí)現(xiàn)了對(duì)流量計(jì)表頭輸出文本的解析,以及與Modbus 主機(jī)的通訊,從而實(shí)現(xiàn)了給 FUS 水煤氣流量計(jì)表頭增加Modbus 通訊的功能。測(cè)試結(jié)果表明,該通訊模塊工作穩(wěn)定可靠,具備了在較高通訊頻率下正確響應(yīng) Modbus 主機(jī)請(qǐng)求的能力,達(dá)到了實(shí)用要求。該通訊模塊也具備一定的可拓展性,可應(yīng)用 在公司其它 FUS 水煤氣流量計(jì)上,并且很容易通過(guò) 485 總線與DCS 系統(tǒng)或 PLC 進(jìn)行通訊。
煤氣流量計(jì)如何調(diào)整
煤氣流量計(jì)選型
高爐煤氣流量計(jì)
焦?fàn)t煤氣流量計(jì)廠家
水煤氣流量計(jì),發(fā)生爐煤氣流量計(jì)
高爐煤氣流量計(jì)價(jià)格
焦?fàn)t煤氣流量計(jì)價(jià)格
高爐煤氣流量計(jì)廠家
焦?fàn)t煤氣流量計(jì),渦輪煤氣流量計(jì)
轉(zhuǎn)爐煤氣流量計(jì),煤氣管道計(jì)量表
發(fā)生爐煤氣流量計(jì)
焦化廠煤氣流量計(jì),水煤氣流量計(jì)
轉(zhuǎn)爐煤氣流量計(jì),混合煤氣流量計(jì)
防爆焦?fàn)t煤氣流量計(jì),靶式煤氣流量計(jì)
焦?fàn)t煤氣流量計(jì),防爆焦?fàn)t煤氣流量計(jì)
大口徑測(cè)量高爐煤氣流量計(jì),高爐煤氣流量計(jì)價(jià)格
高爐煤氣流量計(jì)選型
防爆焦?fàn)t煤氣流量計(jì),管道煤氣流量計(jì)
水煤氣流量計(jì)廠家
高爐煤氣流量計(jì)價(jià)格,高溫煤氣流量計(jì)
焦?fàn)t煤氣流量計(jì)價(jià)格,焦化廠煤氣流量計(jì)
水煤氣流量計(jì),高爐煤氣流量計(jì)價(jià)格
發(fā)生爐煤氣流量計(jì)廠家
轉(zhuǎn)爐煤氣流量計(jì)
高爐煤氣流量計(jì),渦輪煤氣流量計(jì)
高爐煤氣流量計(jì),測(cè)量煤氣流量的流量計(jì)
焦?fàn)t煤氣流量計(jì),混合煤氣流量計(jì)
防爆焦?fàn)t煤氣流量計(jì)
焦?fàn)t煤氣流量計(jì),管道煤氣流量計(jì)
焦?fàn)t煤氣流量計(jì),靶式煤氣流量計(jì)
1 概述
西門(mén)子 SITRANS FUS 外夾式水煤氣流量計(jì)的標(biāo)準(zhǔn)表頭支 持 4- 20mA 電流信號(hào)輸出,而水利部門(mén)的取水監(jiān)測(cè)設(shè)備應(yīng)用層 采用的是 Modbus 協(xié)議,物理層采用的是 RS485 標(biāo)準(zhǔn),無(wú)法與SITRANS FUS 流量計(jì)的表頭通信。針對(duì)這一問(wèn)題,本文自主設(shè) 計(jì)并實(shí)現(xiàn)了一種支持 Modbus 協(xié)議的通信模塊,使得超聲波流量計(jì)表頭與取水監(jiān)測(cè)設(shè)備可以以 Modbus 協(xié)議進(jìn)行通訊。
2 系統(tǒng)架構(gòu)
圖 1 為本文設(shè)計(jì)的 Modbus 通訊模塊與取水流量監(jiān)測(cè)設(shè)備、 水煤氣流量計(jì)表頭組成的系統(tǒng)架構(gòu)示意圖。該模塊通過(guò)SITRANS FUS水煤氣流量計(jì)表頭的 232 接口與流量計(jì)表頭通信;通過(guò) 485 接口,以 Modbus 協(xié)議與水利部門(mén)的取水監(jiān)測(cè)設(shè)備通信。通訊模塊將水煤氣流量計(jì)的信息解析并封裝成 Modbus報(bào)文,提供給取水監(jiān)測(cè)設(shè)備讀取。硬件方面,采用成熟的STM32F407 開(kāi)發(fā)板,帶有 232 接口和 485 接口,本文主要實(shí)現(xiàn)軟件部分的功能。
3 軟件設(shè)計(jì)
3.1 軟件架構(gòu)
Modbus 通訊模塊的軟件架構(gòu)如圖 2 所示,分為硬件層、硬件抽象層,中間層和應(yīng)用層。中間層包括一個(gè)實(shí)時(shí)操作系統(tǒng)FreeRTOS 和一個(gè)針對(duì)嵌入式環(huán)境開(kāi)發(fā)的輕量級(jí) Modbus 協(xié)議庫(kù)Freemodbus。在應(yīng)用層,主要?jiǎng)?chuàng)建了三個(gè)任務(wù),232_Task 負(fù)責(zé)讀 取和解析流量計(jì)表頭輸出的文本信息,Modbus_Task 負(fù)責(zé)存儲(chǔ) 解析后的流量計(jì)數(shù)據(jù)到 Modbus 寄存器表,以及以 Modbus 協(xié)議與取水監(jiān)測(cè)設(shè)備通信,LED_Task 是一個(gè)輔助任務(wù),主要用來(lái)提示程序運(yùn)行狀態(tài)。
3.2 軟件流程圖
圖 3 為 Modbus 通訊模塊的軟件流程圖,創(chuàng)建的三個(gè)任務(wù)都是以 FreeRTOS 系統(tǒng)的消息(Message)來(lái)驅(qū)動(dòng)。
4 測(cè)試與通訊聯(lián)調(diào)
Modbus 通訊模塊如圖 4 所示。為保證供電穩(wěn)定,使用了電源切換裝置給主板供電,共有主副兩路 5V 電源。
在 PC 上使用權(quán)威工具測(cè)試軟件 Modbus poll,作為 Modbus主機(jī)對(duì)通訊模塊進(jìn)行測(cè)試。通訊模塊作為 Modbus 從機(jī)響應(yīng)Modbus Poll 軟件發(fā)出的請(qǐng)求。通訊模塊內(nèi)部使用Modbus 的輸入寄存器(Input Register)存儲(chǔ)流量計(jì)數(shù)據(jù)。Modbus Poll 發(fā)送的測(cè)試命令字節(jié)流為:01 04 00 00 0014 F0 05。其中 0x01 為 Modbus 從機(jī)地址,0x04 功能碼為讀取 輸入寄存器命令,0x0000 為讀取寄存器的起始地址,0x0014(20)為讀取寄存器的個(gè)數(shù),0xF0 0x05 為 CRC 校驗(yàn)碼。
Modbus Poll 通訊測(cè)試結(jié)果如圖 5 所示:Tx = 24140,Err =0,ID = 1,F(xiàn) = 04,SR = 1000ms,Log = on。 其中 ,Tx 為Modbus Poll 發(fā)送命令次數(shù),也就是說(shuō)在測(cè)試期間 Modbus Poll軟件共發(fā)送讀輸入寄存器命令 24140 次(發(fā)送間隔為 1s,測(cè)試時(shí)間為 6.7 小時(shí));Err 為通訊錯(cuò)誤數(shù),Err = 0 表明 Modbus 通訊模塊正確響應(yīng)次數(shù)為 24140 次(錯(cuò)誤數(shù)為 0)。
5 結(jié)論
本文針對(duì) FUS 水煤氣流量計(jì)無(wú) Modbus 通訊接口,無(wú)法與取 水監(jiān)測(cè)設(shè)備通訊的問(wèn)題,自主設(shè)計(jì)并實(shí)現(xiàn)了一種基于微處理器STM32F407 的低成本 Modbus 通訊模塊。在通訊模塊的主控芯 片 上 移 植 了 開(kāi) 源 代 碼 庫(kù) FreeModbus 和 開(kāi) 源 操 作 系 統(tǒng)FreeRTOS,實(shí)現(xiàn)了對(duì)流量計(jì)表頭輸出文本的解析,以及與Modbus 主機(jī)的通訊,從而實(shí)現(xiàn)了給 FUS 水煤氣流量計(jì)表頭增加Modbus 通訊的功能。測(cè)試結(jié)果表明,該通訊模塊工作穩(wěn)定可靠,具備了在較高通訊頻率下正確響應(yīng) Modbus 主機(jī)請(qǐng)求的能力,達(dá)到了實(shí)用要求。該通訊模塊也具備一定的可拓展性,可應(yīng)用 在公司其它 FUS 水煤氣流量計(jì)上,并且很容易通過(guò) 485 總線與DCS 系統(tǒng)或 PLC 進(jìn)行通訊。
上一篇:關(guān)于建立焦?fàn)t煤氣流量計(jì)標(biāo)準(zhǔn)裝置中常見(jiàn)問(wèn)題的分析
下一篇:對(duì)煙氣流量計(jì)制造過(guò)程進(jìn)行優(yōu)化設(shè)計(jì)