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