摘要:渦輪流(liu)量計
是采用超低(di)功耗單片微機渦(wō)輪流量傳感器與(yu)顯🆚示💔計算🥰一體化(hua)的新型智能儀表(biǎo)。文章針對流量計(jì)控制的實際要求(qiú),基于MODBUS協議的計量(liàng)數據的通信系⭐統(tong)。渦輪流量計(下位(wèi)機🏃)MSP430單片機實現數(shù)據的采集及存儲(chǔ)。上位💋機程序是🆚通(tong)過VisualStudio2012利用C#語言編寫(xie)的基于MODBUS協議的Windows應(ying)用程序。把,上位機(ji)程序移植到嵌入(rù)式系統🧑🏾🤝🧑🏼中,上下位(wei)機通⛹🏻♀️過無線射頻(pin)技術實現通信,完(wan)成了💯對流量計的(de)遠程控制以及計(jì)量數據的遠程采(cǎi)集與顯示。
渦輪流(liu)量計屬于速度式(shi)流量計,也被稱爲(wèi)葉輪式流量🛀計。渦(wo)輪流量計是利用(yòng)置于流體中的葉(ye)輪的旋轉角速度(dù)與流體流速🐕成比(bǐ)例的關系,通過測(ce)量葉輪的轉速來(lai)反映通過管道的(de)流體體積流量的(de)大小,是目🏃♂️前流量(liàng)儀表中比較成熟(shu)的準确度儀表。 随(sui)着工業的發展以(yǐ)及計算機網絡的(de)日趨完善,利用計(ji)算機作爲上位機(jī)與渦輪流量計進(jin)行通信已經是企(qi)事業單位計量數(shù)⁉️據管理的大趨勢(shi)。渦輪流量💛計的通(tong)信系統是🧑🏾🤝🧑🏼渦輪流(liú)量計的重要組成(chéng)部分。雖然渦輪流(liú)量計已經👄提供了(le)瞬時流量、累積流(liu)量、溫度、壓力等信(xìn)息的采集,但是目(mù)前這些數據的讀(du)取需要靠人工進(jin)行現場抄表。原始(shǐ)的人工抄表方式(shi)既耗費大量的人(rén)力物力,又無法避(bi)免手工抄寫和計(jì)算帶來的誤差,且(qie)對數據的分析處(chu)理也嚴重🥵滞後,不(bú)利于及⛹🏻♀️時發現問(wèn)題、解決問題。因此(cǐ),這種數據讀取方(fāng)式具有易出錯、工(gong)作☔量大、正☀️确率低(di)等缺點。而且渦輪(lún)流量計大多安裝(zhuang)在一些危🔞險的且(qie)無✨人看守的工作(zuo)現場的密封管中(zhōng),人工抄表難度大(da)。
爲了解決這些問(wèn)題,本課題在Windows平台(tai)下利用VisualStudio2012編寫監控(kòng)程序并移💯植到嵌(qiàn)入式系統下,通過(guo)射頻技術與下位(wèi)機進🌈行無線通信(xìn),通過監控程序的(de)無線控制能夠實(shí)✔️現渦輪流量計的(de)開關、各種流量計(ji)參數的設定以及(ji)将采集到的數據(ju)傳輸到嵌入🥰式主(zhǔ)闆進行顯示。
1系統(tong)總體方案
基于MODBUS協(xié)議的渦輪流量計(ji)通信系統主要由(yóu)上位機和🌈渦輪流(liú)量計(下位機)通信(xìn)部分組成。本設計(ji)主要完成上位機(ji)部分。基于MODBUS協議編(bian)寫上位機程序并(bing)移植到嵌入式系(xì)🐅統中,主要完成💁的(de)任務✨有:上位機通(tong)過無線射🌈頻技術(shu)完成了對渦輪流(liu)量計(下位機)的參(cān)數配置并控制下(xia)位機完成對現場(chǎng)流量、溫度、壓力等(deng)數據的自動采集(ji)與顯示⭐。
2MODBUS協議
2.1MODBUS協議(yì)簡介
MODBUS規約是MODICOM公司(si)開發的一個爲很(hěn)多廠商支持的開(kai)放規約💘,MODBUS協議是應(ying)用于電子控制器(qì)上的一種通用語(yǔ)言。通過此協議,控(kong)制‼️器相互之間、控(kong)制器經由網絡👉(例(li)如以太網)和其它(ta)設備之間可以通(tong)信。MODBUS協議已經成爲(wei)一個通用:工業标(biao)準,有了它不同廠(chang)商生産的控制設(shè)備可以連成工業(yè)🌈網絡進行集中監(jian)控。此協議定義了(le)一個控制器能認(rèn)識使用的消息結(jié)構,而不管它們是(shi)經過何種網絡進(jìn):行通🐕信的。它描述(shu)了控制器請求訪(fǎng)問其它設備的過(guo).程,如何回應來自(zi)其它設備的請求(qiú),以及怎樣偵測錯(cuo)誤并記錄。它制👉定(dìng)了消息域格局和(he)内容的公共格式(shì)。
MODBUS協議包括RTU和ASCII等,并(bing)沒有規定物理層(céng)。此協議的數據通(tōng)信采用了主/從方(fang)式,即主設備端發(fa)出信息請求,從設(she)備端接收到正🛀确(què)的信息後就會返(fǎn)回數據到主設備(bei)端完成🈲響應;同時(shí)主設備端也🧡.可以(yǐ)發消息直接修改(gǎi)🙇♀️從設備端🏃♀️的數據(ju),實現了雙向的讀(dú)寫。
2.2MODBUS協議格式
MODBUS協議(yi)主要分爲兩種傳(chuan)輸模式:RTU模式和ASCII模(mó)式。根據需求可以(yǐ)自行⛷️選擇使用何(hé)種模式,包括串口(kǒu)通信的參數(端口(kǒu)号、波特率、校驗方(fang)式等)。在配置控制(zhi)器的時候,同一個(gè)MODBUS網絡上的所有設(she)備都必須選擇相(xiàng)同的協議格式和(he)串口參數。當控制(zhì)器設在💘MODBUS網絡上并(bing)⛱️以ASCII模式通信時,字(zì)符發送時間間隔(ge)可達1s而不産生錯(cuò)誤,而且由于🔅ASCII格式(shì)擁有開始💜和結束(shù)标志,因此ASCII協議的(de)程序🌐對數據🧡包的(de)處理能更加方便(bian)直觀,更加㊙️容易調(diào)試。這是流量計的(de)通信系統選擇ASCII協(xie)議作爲通信格式(shì)的原因。
2.3ASCII模式
當控(kong)制器設爲在MODBUS網絡(luò)上以ASCII(美國标準信(xìn)息交換代碼)模式(shì)通😄信,消息中每8Bit的(de)字節都作爲兩個(ge)ASCII字符發送。這種方(fāng)☀️式的主要優點✏️是(shì)字符發送的時間(jiān)間隔可達到1s而不(bú)産生錯誤🐉。ASCII模式的(de)消息幀的構成如(ru)表1。
消息幀的地址(zhi)域包含兩個字符(fu)(ASCII)或8Bit(RTU)。可能的從設備(bei)地址❄️0...247(十進制)。單個(ge)設備的地址範圍(wei)是1...247。主設備通過将(jiang)要聯絡的從設備(bèi)的地址放入消息(xī)中的地址域來選(xuǎn)通從設備。當從設(shè)備發送回應消息(xī)時,它把自己的地(di)址💃🏻放入回應的地(di)址域🚶中,以便主設(shè)備知道🛀是哪一個(gè)設備作出回應。地(dì)址0用作廣播地址(zhǐ),以使所有的從設(shè)備💰都能認識。當MODBUS協(xie)🌍議用于水準高⛷️的(de)網絡,廣播可能不(bu)允❗許或以其它方(fang)式代替。
3通信系統(tǒng)硬件設計
3.1通信系(xi)統硬件設計方案(an)
通信系統的硬件(jian)設計方案如圖1所(suǒ)示。
上位機選用嵌(qiàn)入式開發闆EM9280,它是(shì)一款面向工業自(zi)動化領✍️域的嵌入(rù)式主闆産品,其内(nei)核CPU爲工業級品質(zhi)的i.MX283,系統🚶已預✍️裝正(zhèng)版WindowCE6.0實時多任務操(cāo)作系統。此外,EM9280體積(ji)小🌈,易攜帶,可以方(fāng)便地帶到工業控(kòng)制現場,方便工作(zuo)人員的操作。
EM9280的标(biao)準配置中有RS-485通信(xìn)接口,而标.準的MODBUS物(wu)理層就采用了RS-485串(chuàn)行通🔆信标準,通過(guo)485總線可以将通信(xìn)數據發送給無線(xian)🔴射頻🔞模塊,并通過(guo)射頻信号将數據(ju)發送♉給下位機端(duan)射頻模塊,最後再(zài)通過485總線傳送給(gei)渦輪流量計,完成(cheng)數據的傳輸。
無線(xiàn)射頻模塊采用PTR2000,無(wú)線收發一體數傳(chuán)MODEM模塊PTR2000芯片性能優(you)異,在業界居領先(xiān)水平,它的顯著特(tè)點是所🐆需的㊙️外圍(wéi)🤞元件少,因而設計(ji)非常方便。該模塊(kuai)在内🌈部集成了高(gao)頻發射、高頻接收(shou)、PLL合成、FSK調制/解調、參(cān)量放大、功率放大(da)、頻道:切換等功能(néng),因此是目前集成(chéng)💔度較高的無線數(shù)傳産品。該器件采(cai)用了抗幹擾能力(lì)較強的FSK調制/解調(diào)方式,其工作頻率(lü)穩定可靠。它是目(mu)前低功率無線傳(chuán)輸的理想選擇。
3.2渦(wō)輪流量計系統設(she)計
系統主要由數(shù)據采集模塊、電源(yuan)模塊、鍵盤顯示模(mo)🌍塊、頻🐇率♈輸出模塊(kuai)、通訊模塊等組成(chéng)。如圖2所示,系統采(cai)集數據㊙️并經過A/D轉(zhuǎn)換成數字量進行(hang)存儲、顯示和傳輸(shū)。
考慮到實際應用(yong),在硬件選擇方面(miàn)盡可能保證性能(neng)的情況”下多選擇(zé)低功耗芯片。微控(kòng)單元選用MSP430F149單片機(jī),它具✔️有良好的🈲通(tong).用🌍性和可擴展性(xìng).并且屬于超低功(gōng)耗微處理器。
4通信(xin)系統軟件設計
4.1軟(ruan)件編程思路
上位(wèi)機軟件在計算機(ji)上進行編寫,計算(suan)機的标準配置中(zhōng)🤩通常隻有RS-232通信接(jiē)口,可以通過很多(duō)标準控件完成RS-232的(de)數據通信。本次🙇♀️設(she)計選用C#語言中的(de)serialport控件在VS2012編程環境(jìng)下完成基📱于MODBUS-ASCII協議(yi)的上位機通信軟(ruǎn)件的設計。
serialport控件按(an)照接收數據方式(shì)分爲事件驅動方(fāng)式和同🏃🏻步🌍接收方(fang)式。由于該上位機(jī)軟件需要處理的(de)接收.上來的數據(ju)非常多,考慮到事(shì)件驅動方式需要(yao)大量的代☂️碼去分(fèn)析接收📞.上來的數(shù)據屬于.上位機監(jiān)測的哪部分數據(ju),因此,本設計采用(yong)同步⭕接收方式㊙️去(qù)處理接收的數據(jù)。數據處理流程圖(tú)如圖3。
4.2軟件仿真
(1)仿(pang)真環境搭建
仿真(zhēn)在一台電腦上面(miàn)完成,需要兩條USB轉(zhuǎn)串口線,并把1号串(chuan)♌口上的2針接2号串(chuàn)口上的3針,1号串口(kou)上的3針接2号串口(kou),上的2針,然後兩個(ge)串口的5針(接地端(duān))互相連接即可。
(2)仿(páng)真軟件
爲了确保(bǎo)編程的MODBUS-ASCII協議标準(zhǔn)(稍作改動便可供(gong)其他🔴标準🚩渦輪流(liu)🔴量計使用)正确可(ke)行,選用MODBUSSlave軟件進行(hang)仿✂️真。MODBUSSlave是㊙️MODBUS子設備模(mo)拟工具,幫助MODBUS通訊(xun)設備開發人員進(jìn)行MODBUS通訊協議的模(mó)拟和測試,用于模(mo)拟、測試、調試MODBUS通🐪訊(xun)設備。可以在32個窗(chuang)口中模拟多達32個(ge)MODBUS子🧑🏾🤝🧑🏼設備!與MODBUSPoll的用戶(hù)界面相同,支持功(gōng)能碼:01,02,03,04,05,06,15,16,22和23,監視串口(kǒu)數據。
(3).上位機功能(neng)
根據MODBUS--ASCII協議,本.上位(wèi)機完成的功能有(yǒu):
“01”---讀取連續的布爾(er)參數值(0/1);
“03”---讀取保存(cun)的儀表各項參數(shu)值(Hex;)
“04”---讀取儀表瞬時(shí)測量輸出值(Hex);
“0F"---寫多(duo)個連續的布爾參(cān)數值(0/1);
“10”--寫多個連續(xù)的寄存器參數值(zhi)(Hex)。
通過利用MODBUSSlave軟件進(jìn)行仿真測試上位(wèi)機軟件。由于定時(shi)🏃♂️讀✊取下位保持機(jī)寄存器的數據是(shi).MODBUS協議中代表性的(de)功能,因此在這裏(li)隻演示03功能仿真(zhen),仿真結果🔞如下。
功(gong)能碼03爲定時讀取(qu)下位機中已經存(cún)儲數據的功能,每(měi)隔一定的時間将(jiang)會從下位機讀取(qu)一次數據,如果沒(méi)有讀到将會連續(xu)☔嘗試5次,如果5次讀(dú)取都沒有結果則(ze)認定連接斷開,用(yong)戶可以再次點擊(ji)開始按鈕再次讀(du)取下位機數據。
圖(tú)4爲Wince系統的觸摸屏(píng)和電腦上MODBUS.Slave軟件仿(pang)真合照。圖5是在Wince系(xi)統👉.上📐運行上位機(ji)軟件。單個寄存器(qi)隻能存儲🌂2個字節(jie)的數據,因此對于(yu)大的數據來說需(xū)要多個🥰寄存器來(lái)存儲🤩。對于由單個(ge)寄存器存儲的數(shù)據,如30002寄存器存儲(chu)的爲瞬🚩時流量的(de)值,由于精度問題(ti),當.上位機接收到(dao)瞬時流量的數據(ju)時将會除以10則會(huì)得到43.2。而對于大的(de)數據,如30004和30005存儲的(de)是總累積流量的(de)數據,如圖4,轉換的(de)順序🔞是:當,上位機(jī)讀取30004和30005的數據時(shi),數據存儲爲002B0020(2B和20分(fèn)别爲43和32的16進制表(biao)示),然後再将002B0020轉換(huàn)成10進制,最後除🐇以(yi)10取得⭐精度,最終得(dé)到281808。其他數據的計(jì)算方式💜可參照以(yǐ).上兩種。
5結束語
本(běn)系統主要由上位(wèi)機、渦輪流量計、無(wu)線收發模塊.等幾(jǐ)個部🐅分組成。下位(wei)機采用C語言在MSP430F149上(shang)編程,上位🐇機采用(yòng)C#語💰言在VS2012環境下編(bian)🧑🏾🤝🧑🏼程,上位機與下位(wei)機之間采用RS-485進行(háng)通信,設計并⭐編寫(xie)基于MODBUS-ASCII協議的通信(xìn)應用軟件。通過仿(páng)真實驗🧑🏽🤝🧑🏻表明上位(wei)🈚機完全按照MODBUSASCII協議(yi)編☀️寫并能夠通信(xìn)成功,下位💃機采集(ji)到的數據可以通(tong)過自身的顯示⛷️模(mo)塊以及上位機窗(chuāng)口同時顯示,并且(qie)可以保存到下位(wei)機外擴ROM中。本系🙇🏻統(tǒng)具有良好的可擴(kuo)展性,通過簡單改(gai)寫最多可以拓展(zhǎn)到32個子設備的流(liu)量等數據的監測(ce),對降低生産運營(ying)成本有重大意義(yì)。
本文來源于網絡(luò),如有侵權聯系即(jí)删除!