相關(guān)產(chǎn)品推薦更多 >>
一種基于Modbus協(xié)議的乙烯流量計(jì)通訊模塊設(shè)計(jì)
點(diǎn)擊次數(shù):1991 發(fā)布時(shí)間:2021-01-08 07:19:02
摘要:西門子 SITRANS FUS 超聲波流量的表頭支持 4-20mA 電流信號(hào)輸出和 RS232 文本日志輸出,都無(wú)法與水利部門采 用 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 概述
西門子 SITRANS FUS 外夾式乙烯流量計(jì)的標(biāo)準(zhǔn)表頭支 持 4- 20mA 電流信號(hào)輸出,而水利部門的取水監(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é)議與水利部門的取水監(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ì)與超聲波流量計(jì)的區(qū)別與優(yōu)勢(shì)
關(guān)于乙烯流量計(jì)在含氣液體介質(zhì)測(cè)量中的試驗(yàn)研究
乙烯氣體流量計(jì)在測(cè)量蒸汽流量時(shí)正確的安裝方式
一種基于Modbus協(xié)議的乙烯流量計(jì)通訊模塊設(shè)計(jì)
導(dǎo)致聚四氟乙烯流量計(jì)測(cè)量結(jié)果產(chǎn)生誤差的因素有哪些
影響四氟乙烯流量計(jì)測(cè)量的因素及解決此類問(wèn)題的途徑
乙烯氣體流量計(jì),低溫乙烯孔板流量計(jì)
低溫乙烯流量計(jì),聚四氟乙烯流量計(jì)
1 概述
西門子 SITRANS FUS 外夾式乙烯流量計(jì)的標(biāo)準(zhǔn)表頭支 持 4- 20mA 電流信號(hào)輸出,而水利部門的取水監(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é)議與水利部門的取水監(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)于建立甲烷流量計(jì)標(biāo)準(zhǔn)裝置中常見(jiàn)問(wèn)題的分析
下一篇:對(duì)乙烷流量計(jì)制造過(guò)程進(jìn)行優(yōu)化設(shè)計(jì)