|
嵌(qian)入MODBUS協議(yi)的渦輪(lun)流量計(ji)通信系(xi)統設計(ji)
|
摘要:渦(wo)輪流量(liang)計
是采(cai)用超低(di)功耗單(dan)片微機(ji)渦輪流(liu)量傳感(gan)器與顯(xian)示計算(suan)一體化(hua)的新型(xing)智能儀(yi)表。文章(zhang)針對流(liu)量計☎️控(kong)制的實(shi)⁉️際要求(qiu),基于MODBUS協(xie)🍓議的計(ji)量數據(ju)的通信(xin)系統。渦(wo)輪流量(liang)計(下位(wei)機)MSP430單片(pian)機實現(xian)數據的(de)采集及(ji)存儲。上(shang)位機程(cheng)序是通(tong)過VisualStudio2012利用(yong)⛱️C#語言編(bian)寫的基(ji)于MODBUS協議(yi)的Windows應用(yong)程序。把(ba),上位機(ji)程序移(yi)植到嵌(qian)入式系(xi)統💞中,上(shang)下位機(ji)通過無(wu)線射頻(pin)技術實(shi)現通信(xin),完成了(le)💋對流量(liang)計的遠(yuan)程控制(zhi)以及計(ji)量數據(ju)的遠程(cheng)采集與(yu)顯示。
渦(wo)輪流量(liang)計屬于(yu)速度式(shi)流量計(ji),也被稱(cheng)爲葉輪(lun)式流量(liang)計。渦輪(lun)流量計(ji)是利用(yong)置于流(liu)體中的(de)葉輪的(de)🆚旋轉角(jiao)速度與(yu)🏃流體流(liu)速💞成比(bi)例的關(guan)系,通過(guo)測量葉(ye)輪的轉(zhuan)速來反(fan)映通過(guo)管道的(de)流體📞體(ti)積流量(liang)的大小(xiao),是目前(qian)流量儀(yi)表中比(bi)較成熟(shu)的準确(que)度儀表(biao)😄。 随着工(gong)業的發(fa)展以及(ji)計算機(ji)網絡的(de)日趨完(wan)善,利🔱用(yong)計算機(ji)作爲上(shang)位機與(yu)渦輪流(liu)量計進(jin)行通信(xin)已經是(shi)企事業(ye)單位計(ji)量數據(ju)管理的(de)大趨勢(shi)。渦輪流(liu)量計的(de)通信系(xi)統是渦(wo)輪流量(liang)計的重(zhong)要組成(cheng)部分。雖(sui)然渦輪(lun)流量計(ji)已經🌍提(ti)供了🔅瞬(shun)時流量(liang)、累積流(liu)量、溫度(du)、壓力等(deng)信息的(de)采集㊙️,但(dan)是目前(qian)這些數(shu)據的讀(du)取需要(yao)靠人工(gong)進行現(xian)場✍️抄表(biao)。原始的(de)人工抄(chao)表方式(shi)既耗費(fei)大量的(de)人力物(wu)力,又無(wu)❓法避免(mian)手工抄(chao)寫和計(ji)算帶🐆來(lai)的誤差(cha),且對數(shu)據的分(fen)析處⛷️理(li)也嚴重(zhong)滞後,不(bu)利于及(ji)時發現(xian)問題、解(jie)決問題(ti)。因此,這(zhe)種數據(ju)讀取方(fang)式具有(you)易出錯(cuo)、工作量(liang)大、正确(que)率低等(deng)缺點。而(er)且渦輪(lun)流量計(ji)大多🚶♀️安(an)裝在一(yi)些危險(xian)的且無(wu)人看守(shou)的工作(zuo)現場的(de)密封管(guan)中,人工(gong)抄表難(nan)度大🆚。
爲(wei)了解決(jue)這些問(wen)題,本課(ke)題在Windows平(ping)台下利(li)用VisualStudio2012編寫(xie)監控程(cheng)☀️序并移(yi)植到嵌(qian)入式系(xi)統下,通(tong)過射頻(pin)技術與(yu)💞下位機(ji)進👌行無(wu)線通信(xin),通🎯過監(jian)控程序(xu)的無線(xian)控制能(neng)夠實現(xian)渦輪流(liu)量計的(de)開關、各(ge)種流🏒量(liang)計參數(shu)的設定(ding)以及将(jiang)采集到(dao)⭐的數據(ju)傳輸到(dao)嵌入式(shi)主闆進(jin)行顯示(shi)。
1系統總(zong)體方案(an)
基于MODBUS協(xie)議的渦(wo)輪流量(liang)計通信(xin)系統主(zhu)要由上(shang)位機♍和(he)🥵渦輪㊙️流(liu)量計(下(xia)位機)通(tong)信部分(fen)組成。本(ben)設計主(zhu)要完成(cheng)上位機(ji)部分。基(ji)🌈于MODBUS協💯議(yi)編寫上(shang)位機程(cheng)序并移(yi)植到嵌(qian)入式系(xi)🈲統中,主(zhu)♋要完成(cheng)的任務(wu)有:上位(wei)機通過(guo)無線射(she)頻技術(shu)完成了(le)對渦🏃♀️輪(lun)流量計(ji)(下位機(ji))的🔞參數(shu)配置并(bing)控制下(xia)位機🐆完(wan)成對現(xian)場流量(liang)、溫度、壓(ya)力等數(shu)據的自(zi)🍉動采集(ji)與顯示(shi)。
2MODBUS協議
2.1MODBUS協(xie)議簡介(jie)
MODBUS規約是(shi)MODICOM公司開(kai)發的一(yi)個爲很(hen)多廠商(shang)支持的(de)開放📧規(gui)👉約,MODBUS協💛議(yi)是應用(yong)于電子(zi)控制器(qi)上的一(yi)種通用(yong)語言。通(tong)過此協(xie)議,控制(zhi)器相互(hu)之間、控(kong)制器經(jing)由網絡(luo)(例如以(yi)太網)和(he)其它設(she)備之間(jian)🔴可以通(tong)🐉信。MODBUS協議(yi)已經成(cheng)爲一個(ge)通用:工(gong)業标準(zhun),有了它(ta)不同廠(chang)商生産(chan)的♍控制(zhi)設備可(ke)以連成(cheng)工業網(wang)絡進行(hang)集中監(jian)控。此協(xie)議定義(yi)了一個(ge)控制器(qi)能認識(shi)使用的(de)消息結(jie)構,而⁉️不(bu)管它們(men)是經過(guo)何種網(wang)絡進:行(hang)通信的(de)。它描述(shu)了控制(zhi)器請求(qiu)訪問其(qi)它設備(bei)的過.程(cheng),如何回(hui)應來自(zi)其它設(she)備的請(qing)求,以及(ji)怎樣偵(zhen)測錯誤(wu)并記錄(lu)。它制定(ding)了消息(xi)域格局(ju)和内容(rong)的公共(gong)格式。
MODBUS協(xie)議包括(kuo)RTU和ASCII等,并(bing)沒有規(gui)定物理(li)層。此協(xie)議的數(shu)據通信(xin)🙇♀️采用了(le)主/從方(fang)式,即主(zhu)設備端(duan)發出信(xin)息請求(qiu),從設♈備(bei)端接收(shou)🌈到正⛱️确(que)的🤩信息(xi)後就會(hui)返回數(shu)據到主(zhu)設備端(duan)完成響(xiang)應;同時(shi)主設備(bei)端也.可(ke)以發消(xiao)息直接(jie)修改🎯從(cong)設備端(duan)的數據(ju),實☎️現了(le)雙向✊的(de)讀寫。
2.2MODBUS協(xie)議格式(shi)
MODBUS協議主(zhu)要分爲(wei)兩種傳(chuan)輸模式(shi):RTU模式和(he)ASCII模式。根(gen)據需求(qiu)☎️可以自(zi)行選擇(ze)使用何(he)種模式(shi),包括串(chuan)口通信(xin)的參數(shu)(端口号(hao)、波🔞特率(lü)、校驗方(fang)式等)。在(zai)配置控(kong)制器的(de)時候,同(tong)一個MODBUS網(wang)絡上的(de)所有設(she)備都必(bi)須選擇(ze)相同💜的(de)協議格(ge)式和串(chuan)口❌參數(shu)。當控制(zhi)器設在(zai)MODBUS網絡上(shang)并以ASCII模(mo)式通信(xin)時,字符(fu)發送時(shi)間間隔(ge)可達1s而(er)不産生(sheng)💛錯誤,而(er)且由😍于(yu)ASCII格式擁(yong)有開始(shi)🔅和結束(shu)标志,因(yin)此ASCII協議(yi)的程序(xu)對數據(ju)包的處(chu)理能更(geng)加方便(bian)直觀,更(geng)加容♍易(yi)調試。這(zhe)是流量(liang)計的通(tong)信系統(tong)選擇㊙️ASCII協(xie)議作爲(wei)💛通信格(ge)式的原(yuan)因。
2.3ASCII模式(shi)
當控制(zhi)器設爲(wei)在MODBUS網絡(luo)上以ASCII(美(mei)國标準(zhun)信息交(jiao)換代📞碼(ma))模式通(tong)信,消息(xi)中每8Bit的(de)字節都(dou)作爲兩(liang)個ASCII字符(fu)發送。這(zhe)🏃🏻♂️種方式(shi)的主要(yao)優點是(shi)字符發(fa)送的時(shi)間間隔(ge)🔱可達到(dao)1s而不産(chan)生錯誤(wu)。ASCII模式的(de)☎️消息幀(zhen)的構成(cheng)如表⛹🏻♀️1。
消(xiao)息幀的(de)地址域(yu)包含兩(liang)個字符(fu)(ASCII)或8Bit(RTU)。可能(neng)的從設(she)備🐇地址(zhi)0...247(十進制(zhi))。單個設(she)備的地(di)址範圍(wei)是1...247。主設(she)備通過(guo)将要☂️聯(lian)絡🈲的從(cong)設備的(de)地址放(fang)入消息(xi)中的地(di)址域來(lai)選通從(cong)設備🧡。當(dang)從設備(bei)發送回(hui)應消息(xi)時,它把(ba)自己的(de)地址放(fang)入回應(ying)的地址(zhi)域中,以(yi)便主設(she)備知道(dao)是哪一(yi)個設備(bei)作出回(hui)應。地址(zhi)0用作廣(guang)播地址(zhi),以使㊙️所(suo)有的從(cong)設備都(dou)能認識(shi)。當MODBUS協議(yi)用于水(shui)準高的(de)網絡,廣(guang)播可能(neng)不允許(xu)或以其(qi)它方式(shi)代替。
3通(tong)信系統(tong)硬件設(she)計
3.1通信(xin)系統硬(ying)件設計(ji)方案
通(tong)信系統(tong)的硬件(jian)設計方(fang)案如圖(tu)1所示。
上(shang)位機選(xuan)用嵌入(ru)式開發(fa)闆EM9280,它是(shi)一款面(mian)向工業(ye)自動化(hua)領域的(de)嵌入式(shi)主闆産(chan)品,其内(nei)核CPU爲工(gong)業級品(pin)質的i.MX283,系(xi)統已預(yu)裝正🐆版(ban)WindowCE6.0實📐時多(duo)任務操(cao)作系統(tong)。此外,EM9280體(ti)積小,易(yi)攜帶,可(ke)以方便(bian)地帶到(dao)工業控(kong)制現場(chang),方便工(gong)作人🌈員(yuan)的操作(zuo)。
EM9280的标準(zhun)配置中(zhong)有RS-485通信(xin)接口,而(er)标.準的(de)MODBUS物理層(ceng)就采用(yong)了RS-485串行(hang)通信标(biao)準,通過(guo)485總線可(ke)以将通(tong)信數據(ju)發送給(gei)💯無線射(she)頻模塊(kuai),并通過(guo)射頻信(xin)号将數(shu)據發送(song)給下位(wei)機端射(she)頻模塊(kuai)🍉,最後再(zai)通過485總(zong)🚶♀️線傳送(song)給渦輪(lun)流量計(ji),完成數(shu)據的傳(chuan)輸。
無線(xian)射頻模(mo)塊采用(yong)PTR2000,無線收(shou)發一體(ti)數傳MODEM模(mo)塊PTR2000芯片(pian)性能優(you)異,在業(ye)界居領(ling)先水平(ping),它的顯(xian)著特點(dian)是所需(xu)的外圍(wei)元件少(shao),因而設(she)計非常(chang)方便。該(gai)模塊在(zai)内部集(ji)成了高(gao)頻發射(she)、高頻接(jie)收、PLL合成(cheng)、FSK調制/解(jie)調、參量(liang)放大、功(gong)率放大(da)、頻道:切(qie)換等功(gong)能,因此(ci)是🐇目前(qian)集成📐度(du)較高的(de)無🍓線數(shu)傳産品(pin)。該器件(jian)采用了(le)抗幹擾(rao)能力較(jiao)強的FSK調(diao)制/解調(diao)方式,其(qi)工作頻(pin)率穩定(ding)可靠。它(ta)是目前(qian)低功率(lü)無線傳(chuan)輸的理(li)想選擇(ze)。
3.2渦輪流(liu)量計系(xi)統設計(ji)
系統主(zhu)要由數(shu)據采集(ji)模塊、電(dian)源模塊(kuai)、鍵盤顯(xian)示模塊(kuai)、頻🏒率輸(shu)出🏃♀️模塊(kuai)、通訊模(mo)塊等組(zu)成。如圖(tu)2所示,系(xi)統采集(ji)數據🔅并(bing)經過A/D轉(zhuan)換成💚數(shu)字量進(jin)行存儲(chu)、顯示和(he)傳輸。
考(kao)慮到實(shi)際應用(yong),在硬件(jian)選擇方(fang)面盡可(ke)能保證(zheng)性能的(de)情👌況”下(xia)多選擇(ze)低功耗(hao)芯片。微(wei)控單元(yuan)選用MSP430F149單(dan)片機,它(ta)具有良(liang)✉️好的通(tong).用性和(he)可擴展(zhan)性.并且(qie)屬于超(chao)低功耗(hao)微處理(li)器。
4通信(xin)系統軟(ruan)件設計(ji)
4.1軟件編(bian)程思路(lu)
上位機(ji)軟件在(zai)計算機(ji)上進行(hang)編寫,計(ji)算機的(de)标準配(pei)置中通(tong)常隻有(you)RS-232通信接(jie)口,可以(yi)通過很(hen)多标準(zhun)控件完(wan)成RS-232的數(shu)據通信(xin)。本次設(she)計選用(yong)C#語言中(zhong)的serialport控件(jian)在VS2012編程(cheng)環境下(xia)完成基(ji)于MODBUS-ASCII協議(yi)☀️的上位(wei)機通信(xin)軟件的(de)設計。
serialport控(kong)件按照(zhao)接收數(shu)據方式(shi)分爲事(shi)件驅動(dong)方式和(he)同步接(jie)㊙️收方🔞式(shi)。由于該(gai)上位機(ji)軟件需(xu)要處理(li)的接收(shou).上來的(de)數據非(fei)常多,考(kao)慮到事(shi)件驅動(dong)方式需(xu)要大量(liang)的代碼(ma)去分🌈析(xi)接收🐕.上(shang)來的❓數(shu)據屬于(yu).上位機(ji)監測的(de)哪部分(fen)數據,因(yin)此,本設(she)計🔆采用(yong)同步接(jie)收方式(shi)去處理(li)接收的(de)數據。數(shu)據處理(li)流程圖(tu)如圖3。
4.2軟(ruan)件仿真(zhen)
(1)仿真環(huan)境搭建(jian)
仿真在(zai)一台電(dian)腦上面(mian)完成,需(xu)要兩條(tiao)USB轉串口(kou)線,并把(ba)1号串口(kou)🏃♂️上的2針(zhen)接2号串(chuan)口上的(de)3針,1号串(chuan)口上的(de)3針接2号(hao)串口,上(shang)的2針,然(ran)♋後兩個(ge)串口的(de)5針(接地(di)端)互相(xiang)連接即(ji)可。
(2)仿真(zhen)軟件
爲(wei)了确保(bao)編程的(de)MODBUS-ASCII協議标(biao)準(稍作(zuo)改動便(bian)可供其(qi)他标準(zhun)渦輪流(liu)量計使(shi)用)正确(que)可行,選(xuan)用MODBUSSlave軟件(jian)進行仿(pang)真。MODBUSSlave是MODBUS子(zi)設備模(mo)拟工🌈具(ju),幫助MODBUS通(tong)訊設備(bei)開發人(ren)員進行(hang)MODBUS通訊協(xie)議的模(mo)拟和測(ce)試,用于(yu)模拟、測(ce)試、調試(shi)MODBUS通訊設(she)備。可以(yi)在32個窗(chuang)口中模(mo)拟㊙️多達(da)32個MODBUS子設(she)備!與MODBUSPoll的(de)用戶界(jie)面相同(tong),支持功(gong)能碼:01,02,03,04,05,06,15,16,22和(he)23,監視串(chuan)口數據(ju)。
(3).上位機(ji)功能
根(gen)據MODBUS--ASCII協議(yi),本.上位(wei)機完成(cheng)的功能(neng)有:
“01”---讀取(qu)連續的(de)布爾參(can)數值(0/1);
“03”---讀(du)取保存(cun)的儀表(biao)各項參(can)數值(Hex;)
“04”---讀(du)取儀表(biao)瞬時測(ce)量輸出(chu)值(Hex);
“0F"---寫多(duo)個連續(xu)的布爾(er)參數值(zhi)(0/1);
“10”--寫多個(ge)連續的(de)寄存器(qi)參數值(zhi)(Hex)。
通過利(li)用MODBUSSlave軟件(jian)進行仿(pang)真測試(shi)上位機(ji)軟件。由(you)于定💯時(shi)🈲讀取😄下(xia)🈲位保持(chi)機寄存(cun)器的數(shu)據是.MODBUS協(xie)議中代(dai)表♍性的(de)功能,因(yin)此在這(zhe)裏隻演(yan)示03功能(neng)仿真,仿(pang)真結果(guo)如下。
功(gong)能碼03爲(wei)定時讀(du)取下位(wei)機中已(yi)經存儲(chu)數據的(de)功能📐,每(mei)隔🥵一定(ding)的時間(jian)将會從(cong)下位機(ji)讀取一(yi)次數據(ju),如果❌沒(mei)有讀到(dao)将會連(lian)續嘗試(shi)5次,如果(guo)5次讀取(qu)都沒🈲有(you)結果則(ze)認定連(lian)接斷😄開(kai),用戶可(ke)以再次(ci)點擊開(kai)始按鈕(niu)再次讀(du)取下位(wei)機數據(ju)。
圖4爲Wince系(xi)統的觸(chu)摸屏和(he)電腦上(shang)MODBUS.Slave軟件仿(pang)真合照(zhao)。圖5是在(zai)Wince系🧑🏾🤝🧑🏼統.上(shang)運行上(shang)位機軟(ruan)件。單個(ge)寄存器(qi)隻能存(cun)儲2個字(zi)節的數(shu)據🌂,因此(ci)對于大(da)的數據(ju)來說需(xu)要多個(ge)😘寄存器(qi)來存儲(chu)。對于由(you)單個寄(ji)存器存(cun)儲的數(shu)據,如30002寄(ji)存器存(cun)儲的爲(wei)瞬時流(liu)量的值(zhi),由于精(jing)度問題(ti),當🆚.上位(wei)機接收(shou)到瞬時(shi)流量的(de)數據時(shi)将會除(chu)以10則會(hui)🧡得到43.2。而(er)對于大(da)的數據(ju),如30004和30005存(cun)儲的是(shi)總累積(ji)流量的(de)數據,如(ru)🔆圖4,轉換(huan)的順序(xu)是:當,上(shang)位機讀(du)取30004和30005的(de)數據時(shi),數據存(cun)儲爲002B0020(2B和(he)20分别爲(wei)43和32的16進(jin)制表示(shi)),然後再(zai)将002B0020轉換(huan)成🏃♂️10進制(zhi),最後除(chu)以10取得(de)精度,最(zui)終得到(dao)281808。其他數(shu)據的計(ji)算方式(shi)可參照(zhao)♈以.上兩(liang)種。
5結束(shu)語
本系(xi)統主要(yao)由上位(wei)機、渦輪(lun)流量計(ji)、無線收(shou)發模塊(kuai).等幾🆚個(ge)部🈲分組(zu)成。下位(wei)機采用(yong)C語言在(zai)MSP430F149上編程(cheng),上位機(ji)采用C#語(yu)言在VS2012環(huan)境下編(bian)程,上位(wei)機與下(xia)位機之(zhi)間📧采用(yong)RS-485進♈行通(tong)信,設計(ji)并編寫(xie)基🤟于MODBUS-ASCII協(xie)議的通(tong)信應用(yong)軟件。通(tong)過仿真(zhen)實驗🏒表(biao)明上位(wei)機完全(quan)按照MODBUSASCII協(xie)議編寫(xie)并能夠(gou)通信成(cheng)功,下位(wei)👌機采集(ji)到的數(shu)據可以(yi)通過自(zi)身的顯(xian)示模塊(kuai)以及上(shang)位機窗(chuang)口同時(shi)顯示,并(bing)且可以(yi)保存到(dao)下位機(ji)外👌擴ROM中(zhong)。本系統(tong)具有良(liang)好的可(ke)擴展性(xing),通過簡(jian)單改寫(xie)最多可(ke)以拓㊙️展(zhan)到32個子(zi)設備的(de)流量等(deng)數據的(de)監測,對(dui)降低生(sheng)産運營(ying)成本有(you)㊙️重大意(yi)義。
本文(wen)來源于(yu)網絡,如(ru)有侵權(quan)聯系即(ji)删除!
|