摘要:渦輪流量計是采用超低功耗單片微機(jī)渦輪流量傳感器與顯示計算一體化的新型智能儀表。文章針對流量計控制的實際要求,基于MODBUS協(xié)議的計量數(shù)據(jù)的通信系統(tǒng)。渦輪流量計(下位機(jī))MSP430單片機(jī)實現(xiàn)數(shù)據(jù)的采集及存儲。上位機(jī)程序是通過VisualStudio2012利用C#語言編寫的基于MODBUS協(xié)議的Windows應(yīng)用程序。把,上位機(jī)程序移植到嵌入式系統(tǒng)中,上下位機(jī)通過無線射頻技術(shù)實現(xiàn)通信,完成了對流量計的遠(yuǎn)程控制以及計量數(shù)據(jù)的遠(yuǎn)程采集與顯示。
渦輪流量計屬于速度式流量計,也被稱為葉輪式流量計。渦輪流量計是利用置于流體中的葉輪的旋轉(zhuǎn)角速度與流體流速成比例的關(guān)系,通過測量葉輪的轉(zhuǎn)速來反映通過管道的流體體積流量的大小,是目前流量儀表中比較成熟的準(zhǔn)確度儀表。 隨著工業(yè)的發(fā)展以及計算機(jī)網(wǎng)絡(luò)的日趨完善,利用計算機(jī)作為上位機(jī)與渦輪流量計進(jìn)行通信已經(jīng)是企事業(yè)單位計量數(shù)據(jù)管理的大趨勢。渦輪流量計的通信系統(tǒng)是渦輪流量計的重要組成部分。雖然渦輪流量計已經(jīng)提供了瞬時流量、累積流量、溫度、壓力等信息的采集,但是目前這些數(shù)據(jù)的讀取需要靠人工進(jìn)行現(xiàn)場抄表。原始的人工抄表方式既耗費大量的人力物力,又無法避免手工抄寫和計算帶來的誤差,且對數(shù)據(jù)的分析處理也嚴(yán)重滯后,不利于及時發(fā)現(xiàn)問題、解決問題。因此,這種數(shù)據(jù)讀取方式具有易出錯、工作量大、正確率低等缺點。而且渦輪流量計大多安裝在一些危險的且無人看守的工作現(xiàn)場的密封管中,人工抄表難度大。
為了解決這些問題,本課題在Windows平臺下利用VisualStudio2012編寫監(jiān)控程序并移植到嵌入式系統(tǒng)下,通過射頻技術(shù)與下位機(jī)進(jìn)行無線通信,通過監(jiān)控程序的無線控制能夠?qū)崿F(xiàn)渦輪流量計的開關(guān)、各種流量計參數(shù)的設(shè)定以及將采集到的數(shù)據(jù)傳輸?shù)角度胧街靼暹M(jìn)行顯示。
1系統(tǒng)總體方案
基于MODBUS協(xié)議的渦輪流量計通信系統(tǒng)主要由上位機(jī)和渦輪流量計(下位機(jī))通信部分組成。本設(shè)計主要完成上位機(jī)部分;贛ODBUS協(xié)議編寫上位機(jī)程序并移植到嵌入式系統(tǒng)中,主要完成的任務(wù)有:上位機(jī)通過無線射頻技術(shù)完成了對渦輪流量計(下位機(jī))的參數(shù)配置并控制下位機(jī)完成對現(xiàn)場流量、溫度、壓力等數(shù)據(jù)的自動采集與顯示。
2MODBUS協(xié)議
2.1MODBUS協(xié)議簡介
MODBUS規(guī)約是MODICOM公司開發(fā)的一個為很多廠商支持的開放規(guī)約,MODBUS協(xié)議是應(yīng)用于電子控制器上的一種通用語言。通過此協(xié)議,控制器相互之間、控制器經(jīng)由網(wǎng)絡(luò)(例如以太網(wǎng))和其它設(shè)備之間可以通信。MODBUS協(xié)議已經(jīng)成為一個通用:工業(yè)標(biāo)準(zhǔn),有了它不同廠商生產(chǎn)的控制設(shè)備可以連成工業(yè)網(wǎng)絡(luò)進(jìn)行集中監(jiān)控。此協(xié)議定義了一個控制器能認(rèn)識使用的消息結(jié)構(gòu),而不管它們是經(jīng)過何種網(wǎng)絡(luò)進(jìn):行通信的。它描述了控制器請求訪問其它設(shè)備的過.程,如何回應(yīng)來自其它設(shè)備的請求,以及怎樣偵測錯誤并記錄。它制定了消息域格局和內(nèi)容的公共格式。
MODBUS協(xié)議包括RTU和ASCII等,并沒有規(guī)定物理層。此協(xié)議的數(shù)據(jù)通信采用了主/從方式,即主設(shè)備端發(fā)出信息請求,從設(shè)備端接收到正確的信息后就會返回數(shù)據(jù)到主設(shè)備端完成響應(yīng);同時主設(shè)備端也.可以發(fā)消息直接修改從設(shè)備端的數(shù)據(jù),實現(xiàn)了雙向的讀寫。
2.2MODBUS協(xié)議格式
MODBUS協(xié)議主要分為兩種傳輸模式:RTU模式和ASCII模式。根據(jù)需求可以自行選擇使用何種模式,包括串口通信的參數(shù)(端口號、波特率、校驗方式等)。在配置控制器的時候,同一個MODBUS網(wǎng)絡(luò)上的所有設(shè)備都必須選擇相同的協(xié)議格式和串口參數(shù)。當(dāng)控制器設(shè)在MODBUS網(wǎng)絡(luò)上并以ASCII模式通信時,字符發(fā)送時間間隔可達(dá)1s而不產(chǎn)生錯誤,而且由于ASCII格式擁有開始和結(jié)束標(biāo)志,因此ASCII協(xié)議的程序?qū)?shù)據(jù)包的處理能更加方便直觀,更加容易調(diào)試。這是流量計的通信系統(tǒng)選擇ASCII協(xié)議作為通信格式的原因。
2.3ASCII模式
當(dāng)控制器設(shè)為在MODBUS網(wǎng)絡(luò)上以ASCII(美國標(biāo)準(zhǔn)信息交換代碼)模式通信,消息中每8Bit的字節(jié)都作為兩個ASCII字符發(fā)送。這種方式的主要優(yōu)點是字符發(fā)送的時間間隔可達(dá)到1s而不產(chǎn)生錯誤。ASCII模式的消息幀的構(gòu)成如表1。
消息幀的地址域包含兩個字符(ASCII)或8Bit(RTU)?赡艿膹脑O(shè)備地址0...247(十進(jìn)制)。單個設(shè)備的地址范圍是1...247。主設(shè)備通過將要聯(lián)絡(luò)的從設(shè)備的地址放入消息中的地址域來選通從設(shè)備。當(dāng)從設(shè)備發(fā)送回應(yīng)消息時,它把自己的地址放入回應(yīng)的地址域中,以便主設(shè)備知道是哪一個設(shè)備作出回應(yīng)。地址0用作廣播地址,以使所有的從設(shè)備都能認(rèn)識。當(dāng)MODBUS協(xié)議用于水準(zhǔn)高的網(wǎng)絡(luò),廣播可能不允許或以其它方式代替。
3通信系統(tǒng)硬件設(shè)計
3.1通信系統(tǒng)硬件設(shè)計方案
通信系統(tǒng)的硬件設(shè)計方案如圖1所示。
上位機(jī)選用嵌入式開發(fā)板EM9280,它是一款面向工業(yè)自動化領(lǐng)域的嵌入式主板產(chǎn)品,其內(nèi)核CPU為工業(yè)級品質(zhì)的i.MX283,系統(tǒng)已預(yù)裝正版WindowCE6.0實時多任務(wù)操作系統(tǒng)。此外,EM9280體積小,易攜帶,可以方便地帶到工業(yè)控制現(xiàn)場,方便工作人員的操作。
EM9280的標(biāo)準(zhǔn)配置中有RS-485通信接口,而標(biāo).準(zhǔn)的MODBUS物理層就采用了RS-485串行通信標(biāo)準(zhǔn),通過485總線可以將通信數(shù)據(jù)發(fā)送給無線射頻模塊,并通過射頻信號將數(shù)據(jù)發(fā)送給下位機(jī)端射頻模塊,最后再通過485總線傳送給渦輪流量計,完成數(shù)據(jù)的傳輸。
無線射頻模塊采用PTR2000,無線收發(fā)一體數(shù)傳MODEM模塊PTR2000芯片性能優(yōu)異,在業(yè)界居領(lǐng)先水平,它的顯著特點是所需的外圍元件少,因而設(shè)計非常方便。該模塊在內(nèi)部集成了高頻發(fā)射、高頻接收、PLL合成、FSK調(diào)制/解調(diào)、參量放大、功率放大、頻道:切換等功能,因此是目前集成度較高的無線數(shù)傳產(chǎn)品。該器件采用了抗干擾能力較強(qiáng)的FSK調(diào)制/解調(diào)方式,其工作頻率穩(wěn)定可靠。它是目前低功率無線傳輸?shù)睦硐脒x擇。
3.2渦輪流量計系統(tǒng)設(shè)計
系統(tǒng)主要由數(shù)據(jù)采集模塊、電源模塊、鍵盤顯示模塊、頻率輸出模塊、通訊模塊等組成。如圖2所示,系統(tǒng)采集數(shù)據(jù)并經(jīng)過A/D轉(zhuǎn)換成數(shù)字量進(jìn)行存儲、顯示和傳輸。
考慮到實際應(yīng)用,在硬件選擇方面盡可能保證性能的情況”下多選擇低功耗芯片。微控單元選用MSP430F149單片機(jī),它具有良好的通.用性和可擴(kuò)展性.并且屬于超低功耗微處理器。
4通信系統(tǒng)軟件設(shè)計
4.1軟件編程思路
上位機(jī)軟件在計算機(jī)上進(jìn)行編寫,計算機(jī)的標(biāo)準(zhǔn)配置中通常只有RS-232通信接口,可以通過很多標(biāo)準(zhǔn)控件完成RS-232的數(shù)據(jù)通信。本次設(shè)計選用C#語言中的serialport控件在VS2012編程環(huán)境下完成基于MODBUS-ASCII協(xié)議的上位機(jī)通信軟件的設(shè)計。
serialport控件按照接收數(shù)據(jù)方式分為事件驅(qū)動方式和同步接收方式。由于該上位機(jī)軟件需要處理的接收.上來的數(shù)據(jù)非常多,考慮到事件驅(qū)動方式需要大量的代碼去分析接收.上來的數(shù)據(jù)屬于.上位機(jī)監(jiān)測的哪部分?jǐn)?shù)據(jù),因此,本設(shè)計采用同步接收方式去處理接收的數(shù)據(jù)。數(shù)據(jù)處理流程圖如圖3。
4.2軟件仿真
(1)仿真環(huán)境搭建
仿真在一臺電腦上面完成,需要兩條USB轉(zhuǎn)串口線,并把1號串口上的2針接2號串口上的3針,1號串口上的3針接2號串口,上的2針,然后兩個串口的5針(接地端)互相連接即可。
(2)仿真軟件
為了確保編程的MODBUS-ASCII協(xié)議標(biāo)準(zhǔn)(稍作改動便可供其他標(biāo)準(zhǔn)渦輪流量計使用)正確可行,選用MODBUSSlave軟件進(jìn)行仿真。MODBUSSlave是MODBUS子設(shè)備模擬工具,幫助MODBUS通訊設(shè)備開發(fā)人員進(jìn)行MODBUS通訊協(xié)議的模擬和測試,用于模擬、測試、調(diào)試MODBUS通訊設(shè)備。可以在32個窗口中模擬多達(dá)32個MODBUS子設(shè)備!與MODBUSPoll的用戶界面相同,支持功能碼:01,02,03,04,05,06,15,16,22和23,監(jiān)視串口數(shù)據(jù)。
(3).上位機(jī)功能
根據(jù)MODBUS--ASCII協(xié)議,本.上位機(jī)完成的功能有:
“01”---讀取連續(xù)的布爾參數(shù)值(0/1);
“03”---讀取保存的儀表各項參數(shù)值(Hex;)
“04”---讀取儀表瞬時測量輸出值(Hex);
“0F"---寫多個連續(xù)的布爾參數(shù)值(0/1);
“10”--寫多個連續(xù)的寄存器參數(shù)值(Hex)。
通過利用MODBUSSlave軟件進(jìn)行仿真測試上位機(jī)軟件。由于定時讀取下位保持機(jī)寄存器的數(shù)據(jù)是.MODBUS協(xié)議中代表性的功能,因此在這里只演示03功能仿真,仿真結(jié)果如下。
功能碼03為定時讀取下位機(jī)中已經(jīng)存儲數(shù)據(jù)的功能,每隔一定的時間將會從下位機(jī)讀取一次數(shù)據(jù),如果沒有讀到將會連續(xù)嘗試5次,如果5次讀取都沒有結(jié)果則認(rèn)定連接斷開,用戶可以再次點擊開始按鈕再次讀取下位機(jī)數(shù)據(jù)。
圖4為Wince系統(tǒng)的觸摸屏和電腦上MODBUS.Slave軟件仿真合照。圖5是在Wince系統(tǒng).上運行上位機(jī)軟件。單個寄存器只能存儲2個字節(jié)的數(shù)據(jù),因此對于大的數(shù)據(jù)來說需要多個寄存器來存儲。對于由單個寄存器存儲的數(shù)據(jù),如30002寄存器存儲的為瞬時流量的值,由于精度問題,當(dāng).上位機(jī)接收到瞬時流量的數(shù)據(jù)時將會除以10則會得到43.2。而對于大的數(shù)據(jù),如30004和30005存儲的是總累積流量的數(shù)據(jù),如圖4,轉(zhuǎn)換的順序是:當(dāng),上位機(jī)讀取30004和30005的數(shù)據(jù)時,數(shù)據(jù)存儲為002B0020(2B和20分別為43和32的16進(jìn)制表示),然后再將002B0020轉(zhuǎn)換成10進(jìn)制,最后除以10取得精度,最終得到281808。其他數(shù)據(jù)的計算方式可參照以.上兩種。
5結(jié)束語
本系統(tǒng)主要由上位機(jī)、渦輪流量計、無線收發(fā)模塊.等幾個部分組成。下位機(jī)采用C語言在MSP430F149上編程,上位機(jī)采用C#語言在VS2012環(huán)境下編程,上位機(jī)與下位機(jī)之間采用RS-485進(jìn)行通信,設(shè)計并編寫基于MODBUS-ASCII協(xié)議的通信應(yīng)用軟件。通過仿真實驗表明上位機(jī)完全按照MODBUSASCII協(xié)議編寫并能夠通信成功,下位機(jī)采集到的數(shù)據(jù)可以通過自身的顯示模塊以及上位機(jī)窗口同時顯示,并且可以保存到下位機(jī)外擴(kuò)ROM中。本系統(tǒng)具有良好的可擴(kuò)展性,通過簡單改寫最多可以拓展到32個子設(shè)備的流量等數(shù)據(jù)的監(jiān)測,對降低生產(chǎn)運營成本有重大意義。
本文來源于網(wǎng)絡(luò),如有侵權(quán)聯(lián)系即刪除!