孫揚(yáng)智 肖世德 孟祥印 徐鑫凱
(西南交通大學(xué)機(jī)械工程學(xué)院,成都 610031)
在日常生活和生產(chǎn)過程中,對(duì)天然氣流量進(jìn)行實(shí)時(shí)監(jiān)控有利于了解天然氣在各個(gè)時(shí)段的使用量分布情況,并有助于天然氣管理部門對(duì)其整體調(diào)控和使用情況進(jìn)行有效管理。傳統(tǒng)的天然氣流量監(jiān)控以人工記錄流量表數(shù)據(jù)為主,輔以簡(jiǎn)單的電氣控制,但面對(duì)天然氣使用量需求的日益增長(zhǎng),人工監(jiān)控成本很高,且無法實(shí)現(xiàn)流量的遠(yuǎn)程調(diào)控和生產(chǎn)數(shù)據(jù)的集中管理[1]。為了對(duì)天然氣進(jìn)行實(shí)時(shí)監(jiān)控和智能管理,可利用無線傳輸技術(shù)實(shí)現(xiàn)流量數(shù)據(jù)的實(shí)時(shí)收發(fā),同時(shí)保障上位機(jī)與下位機(jī)的信息交流[2]。筆者設(shè)計(jì)了基于STM32 F103 RBT6、LabVIEW和Modbus通信協(xié)議的天然氣流量遠(yuǎn)程監(jiān)控系統(tǒng)。
筆者設(shè)計(jì)的天然氣流量遠(yuǎn)程監(jiān)控系統(tǒng)主要分為4個(gè)部分:STM32 F103 RBT6數(shù)據(jù)采集、宏電H7710數(shù)據(jù)發(fā)送、GPRS數(shù)據(jù)傳輸和LabVIEW數(shù)據(jù)顯示(圖1)。天然氣流量遠(yuǎn)程監(jiān)控系統(tǒng)由下位機(jī)和上位機(jī)組成。寫有Modbus從站程序的下位機(jī)STM32 F103 RBT6芯片通過Sonix2000超聲波流量計(jì)收集脈沖,將數(shù)據(jù)送到DTU串口,由GPRS公共無線通信網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)傳輸。作為上位機(jī)的LabVIEW顯示平臺(tái)基于Modbus協(xié)議函數(shù)從以太網(wǎng)讀取數(shù)據(jù),實(shí)時(shí)顯示監(jiān)控情況。上位機(jī)在實(shí)時(shí)監(jiān)控天然氣流量和溫度的同時(shí),也對(duì)歷史數(shù)據(jù)進(jìn)行保存和整理,使監(jiān)控系統(tǒng)更合理、完備、高效。
圖1 天然氣流量遠(yuǎn)程監(jiān)控系統(tǒng)
天然氣流量遠(yuǎn)程監(jiān)控系統(tǒng)硬件部分主要由Sonix2000超聲波流量計(jì)、STM32、宏電H7710、開關(guān)電源(備用)、宏電串口轉(zhuǎn)發(fā)工具及報(bào)警器等組成(圖2),可以實(shí)現(xiàn)天然氣流量脈沖數(shù)據(jù)的采集和收發(fā)。
圖2 遠(yuǎn)程監(jiān)控系統(tǒng)硬件結(jié)構(gòu)
宏電H7710利用GPRS/CDMA 1x網(wǎng)絡(luò)平臺(tái)實(shí)現(xiàn)數(shù)據(jù)信息的透明傳輸,同時(shí)考慮到各應(yīng)用部門組網(wǎng)的需要,在網(wǎng)絡(luò)結(jié)構(gòu)上采用虛擬數(shù)據(jù)專用網(wǎng),特別適用于中心對(duì)多點(diǎn)、點(diǎn)多分散的中小數(shù)據(jù)量傳輸。宏電H7710具備RS-232/422/485或TTL電平接口,高性能、工業(yè)級(jí)、外置式,適用于惡劣環(huán)境中的各種工業(yè)監(jiān)控、交通管理及氣象預(yù)報(bào)等場(chǎng)合。
STM32系列是為基于高性能、低成本、低功耗的嵌入式應(yīng)用專門設(shè)計(jì)的ARM Cortex-M3內(nèi)核。在本設(shè)計(jì)中,芯片通過Modbus RTU通信協(xié)議從流量計(jì)中讀取脈沖數(shù)據(jù),數(shù)據(jù)存儲(chǔ)在Holding Registers里,上位機(jī)只需從Holding Registers里有效地讀取數(shù)據(jù)。芯片的參數(shù)設(shè)置為:波特率57 600Bd,8個(gè)數(shù)據(jù)位,1個(gè)停止位,無校驗(yàn)位。
LabVIEW是由美國(guó)NI 公司推出的一種通用虛擬儀器開發(fā)軟件,它包含了豐富的功能函數(shù)庫和完備的總線設(shè)備驅(qū)動(dòng)程序,基于圖形(Graphics)的編程方式是其最大的特點(diǎn)。LabVIEW采用了框圖而非傳統(tǒng)文本方式的編程方法,它集成了GPIB、VXI、RS-232、RS-485 協(xié)議的硬件和數(shù)據(jù)采集卡通信的全部功能[3,4]。
LabVIEW由前面板和程序框圖兩個(gè)主要部分構(gòu)成,前面板是面向用戶的顯示界面和應(yīng)用平臺(tái),便于用戶的直接操作和閱讀(圖3);而程序框圖是編寫程序的后臺(tái),它保障了前面板功能的實(shí)現(xiàn),其中,程序設(shè)計(jì)是程序框圖的主要構(gòu)成,是實(shí)現(xiàn)上位機(jī)與下位機(jī)通信的核心。
圖3 LabVIEW的前面板顯示
NI Modbus函數(shù)庫是NI公司設(shè)計(jì)的專門針對(duì)Modbus協(xié)議進(jìn)行數(shù)據(jù)傳輸?shù)暮瘮?shù)庫,它是LabVIEW平臺(tái)控制串口及其他儀器的標(biāo)準(zhǔn)I/O應(yīng)用程序接口(API)[5]。其中,本系統(tǒng)中上位機(jī)程序主要運(yùn)用到了Modbus串口初始化函數(shù)(MB Serial Init.vi)和Modbus串行主查詢讀取Holding Registers函數(shù)(MB Serial Master Query Read Holding Registers (poly).vi)。
MB Serial Init.vi函數(shù)如圖4所示,該函數(shù)初始化被VISA資源名所定義的串口,通過VISA資源名(VISA resource name)輸入通道連接串口獲取資源。Mode是用來選擇所使用的Modbus類型,在本系統(tǒng)中筆者采用RTU方式。
圖4 Modbus串口初始化函數(shù)
為了與下位機(jī)保持一致,便于成功收發(fā)數(shù)據(jù),MB Serial Init.vi參數(shù)設(shè)置如下:
波特率(Baud Rate) 57 600Bd
奇偶檢驗(yàn)(Parity) None
流量控制(Flow Control) None
超時(shí)(Timeout) 10 000
MB Serial Master Query Read Holding Registers(poly).vi函數(shù)如圖5所示。主站使用MB Serial Master Query Read Holding Registers函數(shù)來讀取從站Holding Register里的資源和數(shù)據(jù)。串口參數(shù)(Serial Parameters)設(shè)置成RTU mode;Quantity是指從從站中讀取的Holding Register數(shù)目,這里設(shè)置成8;起始地址(Starting Address)為0,其余參數(shù)都是默認(rèn)值。
圖5 Modbus串行主查詢讀取 Holding Registers函數(shù)
3.3.1收集與顯示數(shù)據(jù)
基于Modbus通信協(xié)議的LabVIEW上位機(jī)實(shí)現(xiàn)數(shù)據(jù)收集和顯示的過程如下(圖6):
a. 運(yùn)用MB Serial Init.vi函數(shù)初始化串口,通過VISA資源名節(jié)點(diǎn)設(shè)置并連接用戶需要設(shè)定的串口,再按照下位機(jī)的要求設(shè)置串口初始化函數(shù)的各項(xiàng)參數(shù);
b. 連接MB Serial Master Query Read Holding Registers (poly).vi函數(shù),從Holding Registers里讀取數(shù)據(jù);
c. 把讀取的數(shù)據(jù)以浮點(diǎn)數(shù)的形式顯示出來,并繪制成波形圖表呈現(xiàn)于前面板,用while循環(huán)不斷讀取數(shù)據(jù),實(shí)時(shí)動(dòng)態(tài)顯示;
d. 增加復(fù)位的條件語句,當(dāng)用戶需要復(fù)位時(shí),系統(tǒng)程序可以實(shí)現(xiàn)復(fù)位清零;
e. 用VISA關(guān)閉函數(shù)來關(guān)閉VISA資源,清空內(nèi)存,結(jié)束程序,退出系統(tǒng)。
圖6 LabVIEW實(shí)現(xiàn)數(shù)據(jù)收集和顯示的程序流程
3.3.2保存和記錄數(shù)據(jù)
TDMS(Technical Data Management Streaming)文件是NI主推的一種二進(jìn)制記錄文件,它兼顧了高速、易存取及方便等多種優(yōu)勢(shì),能夠在NI的各種數(shù)據(jù)分析或挖掘軟件之間進(jìn)行無縫交互,也能夠提供一系列API函數(shù)供其他應(yīng)用程序調(diào)用。TDMS文件的邏輯結(jié)構(gòu)分為文件(File)、通道組(Channel Groups)和通道(Channels),每一個(gè)層次都可以附加特定的屬性[6],它是保存實(shí)驗(yàn)數(shù)據(jù)時(shí)經(jīng)常使用的函數(shù)。歷史記錄可以更方便地對(duì)天然氣流量數(shù)據(jù)進(jìn)行分析和整理。實(shí)現(xiàn)數(shù)據(jù)保存和記錄的過程為:
a. 用TDMS Open函數(shù)打開或新建保存文件,在程序中設(shè)置文件路徑和操作方式(open or create);
b. 連接TDMS Write函數(shù),向文件中寫入數(shù)據(jù),設(shè)置組名輸入和通道名輸入,保存實(shí)驗(yàn)時(shí)間和測(cè)得的數(shù)據(jù),加上while循環(huán)可以實(shí)現(xiàn)連續(xù)寫入操作;
c. 用TDMS關(guān)閉函數(shù)關(guān)閉資源,完成數(shù)據(jù)的保存和記錄;
d. 當(dāng)用戶需查看歷史記錄時(shí),點(diǎn)擊前面板歷史記錄按鈕,TDMS查看器即可查看已保存的歷史記錄。
3.3.3登錄界面
登錄界面實(shí)現(xiàn)用戶登錄、系統(tǒng)退出及系統(tǒng)注銷等功能。只有正確登錄后才能進(jìn)入系統(tǒng),而且不同的用戶組(如管理員組和用戶組)進(jìn)入系統(tǒng)后擁有不同的操作權(quán)限。登錄界面的程序框圖如圖7所示。
圖7 登錄界面程序框圖
天然氣流量遠(yuǎn)程監(jiān)控系統(tǒng)在LabVIEW上位機(jī)平臺(tái)上成功監(jiān)測(cè)到了遠(yuǎn)程地區(qū)的天然氣流量分布情況。利用先進(jìn)的NI虛擬儀器技術(shù)、GPRS無線傳輸方式和 Modbus 通信協(xié)議,提高了遠(yuǎn)程監(jiān)控系統(tǒng)的自動(dòng)化程度,避免了操作人員現(xiàn)場(chǎng)檢測(cè)帶來的問題。在實(shí)際運(yùn)行中,LabVIEW人機(jī)界面交互性能良好,系統(tǒng)操作簡(jiǎn)單方便,運(yùn)行可靠,進(jìn)一步提高了天然氣流量遠(yuǎn)程監(jiān)控的高效性。
[1] 唐波,孟祥印,唐磊. 基于PLC與WinCC的天然氣調(diào)壓站監(jiān)控系統(tǒng)[J]. 化工自動(dòng)化及儀表,2013,40(10):1281~1284.
[2] 杜向黨,鞏靜靜,趙喜鋒,等. 基于GPRS 和LabVIEW 的山區(qū)水廠遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計(jì)[J]. 測(cè)控技術(shù),2012,31(2):64~67.
[3] 朱偉偉,李菊芳,梁美玉,等. 基于 LabVIEW 與 Modbus 通信協(xié)議的煤礦通風(fēng)機(jī)性能監(jiān)測(cè)系統(tǒng)[J]. 礦山機(jī)械,2010,38(15):37~39.
[4] 郭會(huì)軍,張建豐,王志林,等.基于 LabVIEW 和ARM 處理器的大型稱重式蒸滲儀測(cè)控系統(tǒng)[J]. 農(nóng)業(yè)工程學(xué)報(bào),2013,29(16):134~141.
[5] 謝啟,顧啟民,涂水林,等.基于LabVIEW的Modbus RTU 通信協(xié)議的實(shí)現(xiàn)[J]. 煤礦機(jī)械,2006,27(12):95~97.
[6] 沈文軒,黃新輝,黃志堅(jiān). 基于Modbus 協(xié)議的LabVIEW 在溢流閥測(cè)試中的應(yīng)用[J]. 機(jī)床與液壓,2013,41(19):93~96.