摘要:隨著通信技術(shù)、集成電路技術(shù)的發(fā)展,傳統(tǒng)的現(xiàn)場(chǎng)檢測(cè)儀器的智能化和數(shù)字化程度在逐漸提升。現(xiàn)場(chǎng)總線作為開放化、數(shù)字化、多點(diǎn)通訊的底層控制網(wǎng)絡(luò),成為了近代工業(yè)控制系統(tǒng)的熱門研究項(xiàng)目。將Modbus 通訊協(xié)議移植到金屬管浮子流量計(jì),使得檢測(cè)儀表更具智能化和網(wǎng)絡(luò)化,同時(shí)為實(shí)現(xiàn)數(shù)字化組網(wǎng)提供了可行接口。經(jīng)過調(diào)試表明移植后的Modbus通訊協(xié)議可以實(shí)現(xiàn)基本功能,取得了預(yù)期的效果。
浮子流量計(jì)是一種經(jīng)典的變面積式流量計(jì),具有結(jié)構(gòu)簡(jiǎn)單、直觀、壓損小、測(cè)量范圍大、運(yùn)行可靠、可測(cè)中小流量及低雷諾數(shù)流量、維護(hù)方便、壽命長(zhǎng),對(duì)儀表前后直管段長(zhǎng)度要求不高等優(yōu)點(diǎn)。金屬管浮子流量計(jì)可以適應(yīng)高溫、高壓、強(qiáng)腐蝕、劇毒等多種苛刻環(huán)境,較少的可動(dòng)部件、便于維護(hù),解決了生產(chǎn)中的許多難題。基于Modbus 協(xié)議的金屬管浮子流量計(jì),通過選擇低功耗的微處理器和通訊芯片,將具有開放協(xié)議的Modbus 協(xié)議移植到傳統(tǒng)的金屬管浮子流量計(jì)中,使得儀表具有現(xiàn)場(chǎng)總線組網(wǎng)功能。
1 金屬管浮子流量計(jì)整體結(jié)構(gòu)設(shè)計(jì)
圖1 是三暢金屬管浮子流量計(jì)整體結(jié)構(gòu)圖。流量測(cè)量過程可概括為: 磁阻傳感器將浮子位移信號(hào)轉(zhuǎn)化為電信號(hào)送給信號(hào)處理電路, 經(jīng)過信號(hào)處理電路進(jìn)行放大濾波后再經(jīng)由AD 采樣模塊采樣,非常后送給微處理器處理,微處理器經(jīng)過一系列處理后得到當(dāng)前流量信息, 送給液晶模塊顯示或者通過Modbus 模塊將信號(hào)遠(yuǎn)傳給其他設(shè)備使用。
2 Modbus 模塊硬件電路設(shè)計(jì)
Modbus 通信協(xié)議有兩種串行傳輸模式:ASCII 模式和RTU(遠(yuǎn)程終端單元)模式,與這兩種模式對(duì)應(yīng)的幀格式是ASCII 幀格式和RTU 幀格式。本文采用RTU 幀格式,其數(shù)據(jù)幀格式為如表1 所示。
一次發(fā)送的數(shù)據(jù)幀必須是作為一個(gè)連續(xù)的數(shù)據(jù)流進(jìn)行傳輸。Modbus 的RTU 模式規(guī)定不同數(shù)據(jù)幀之間的間隔是3.5 個(gè)字節(jié)通信時(shí)間以上(即起始位和結(jié)束符T1-T2-T3-T4)。
CRC 校驗(yàn)是為了防止傳送過程中傳輸錯(cuò)誤,將自己計(jì)算的校驗(yàn)碼與接收的校驗(yàn)碼進(jìn)行對(duì)比, 相同則確認(rèn)接收正確繼續(xù)解析報(bào)文,否則接收到的是誤碼并停止解析報(bào)文。
Modbus 通訊模塊硬件電路比較簡(jiǎn)單,采用MAXIM(美信)公司的Max3072 芯片將數(shù)字信號(hào)轉(zhuǎn)換為差壓信號(hào)傳輸,圖2 為Modbus 通訊模塊硬件設(shè)計(jì)圖, 通過USART 與CPU 進(jìn)行數(shù)據(jù)交互。
Modbus 模塊通過兩根串口線RX_485 和TX_485 與CPU相連,經(jīng)過MAX3072 后轉(zhuǎn)化為差壓信號(hào)在485 總線上傳輸,差壓信號(hào)幅值在200mV 左右。
3 Modbus 模塊軟件設(shè)計(jì)
Modbus 通訊模塊功能是實(shí)現(xiàn)流量?jī)x表與主機(jī)或其他設(shè)備的數(shù)據(jù)交互,三暢儀表Modbus 模塊的信號(hào)是通過RS485 總線進(jìn)行傳輸,其狀態(tài)轉(zhuǎn)換圖如圖3 所示。程序初始化結(jié)束后, 首先進(jìn)入初始狀態(tài)。由于Modbus 協(xié)議規(guī)定兩次幀數(shù)據(jù)傳輸?shù)臅r(shí)間間隔不能小于30μs,因此在進(jìn)入初始狀態(tài)后會(huì)開啟定時(shí)器,30μs 以后進(jìn)入就緒狀態(tài)。有數(shù)據(jù)傳輸時(shí),進(jìn)入接收狀態(tài),幀數(shù)據(jù)接收完成后進(jìn)入幀解析封裝狀態(tài),若接收數(shù)據(jù)出錯(cuò)則進(jìn)入錯(cuò)誤狀態(tài),封裝后再進(jìn)入發(fā)送狀態(tài), 若數(shù)據(jù)正確則直接完成封裝進(jìn)入發(fā)送狀態(tài),數(shù)據(jù)發(fā)送完成后則再次進(jìn)入初始狀態(tài)。Modbus 模塊軟件設(shè)計(jì)流程圖如圖4 所示。
4 系統(tǒng)調(diào)試
Modbus 通訊模塊驗(yàn)證實(shí)驗(yàn)的目的是驗(yàn)證流量?jī)x表能否通過485 總線實(shí)現(xiàn)流量信息與控制臺(tái)的信息交互。本文應(yīng)用Modbus 調(diào)試助手軟件模擬控制臺(tái)與Modbus 模塊進(jìn)行通信,驗(yàn)證三暢儀表Modbus 模塊能否實(shí)現(xiàn)正常通訊。圖5 是Modbus 模塊與控制臺(tái)通信的電路連接圖。
為驗(yàn)證Modbus 模塊通訊的正確性, 本文通過Modbus 調(diào)試助手往Modbus 模塊下發(fā)數(shù)據(jù),若能返回正確數(shù)據(jù),則證明通訊成功。圖6 為通過Modbus 調(diào)試助手與Modbus 模塊通訊圖。以03(0x03)命令為例進(jìn)行調(diào)試的測(cè)試結(jié)果圖,03 命令的功能是讀取特定寄存器的值。串口調(diào)試助手下發(fā)的數(shù)據(jù)為“0103 00 00 00 01 84 0A”, 其中01 為設(shè)備地址,03 為命令碼,00 00 為起始地址,00 01 為寄存器數(shù)量,84 0A 為CRC 校驗(yàn)碼。Modbus 回發(fā)數(shù)據(jù)為“01 03 02 08 10 BE 48”,其中01為設(shè)備地址,03 為命令碼,02 為字節(jié)數(shù),08 10 為寄存的值,BE48 為CRC 校驗(yàn)碼。測(cè)試結(jié)果表明,Modbus 模塊能正常工作。
5 結(jié)束語
選擇低功耗的微處理器和通訊芯片, 將具有開放協(xié)議的Modbus 協(xié)議移植到傳統(tǒng)的三暢金屬管浮子流量計(jì)中,實(shí)現(xiàn)了硬件平臺(tái)設(shè)計(jì)和軟件平臺(tái)設(shè)計(jì),調(diào)試結(jié)果表明,移植后的Modbus 協(xié)議能夠與控制臺(tái)實(shí)現(xiàn)實(shí)時(shí)通信,使得儀表具有現(xiàn)場(chǎng)總線組網(wǎng)功能。
注明:淮安三暢儀表文章均為原創(chuàng),轉(zhuǎn)載請(qǐng)標(biāo)明本文地址http://www.58490.cn/