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