孫揚智 肖世德 孟祥印 徐鑫凱
(西南交通大學機械工程學院,成都 610031)
在日常生活和生產過程中,對天然氣流量進行實時監控有利于了解天然氣在各個時段的使用量分布情況,并有助于天然氣管理部門對其整體調控和使用情況進行有效管理。傳統的天然氣流量監控以人工記錄流量表數據為主,輔以簡單的電氣控制,但面對天然氣使用量需求的日益增長,人工監控成本很高,且無法實現流量的遠程調控和生產數據的集中管理[1]。為了對天然氣進行實時監控和智能管理,可利用無線傳輸技術實現流量數據的實時收發,同時保障上位機與下位機的信息交流[2]。筆者設計了基于STM32 F103 RBT6、LabVIEW和Modbus通信協議的天然氣流量遠程監控系統。
筆者設計的天然氣流量遠程監控系統主要分為4個部分:STM32 F103 RBT6數據采集、宏電H7710數據發送、GPRS數據傳輸和LabVIEW數據顯示(圖1)。天然氣流量遠程監控系統由下位機和上位機組成。寫有Modbus從站程序的下位機STM32 F103 RBT6芯片通過Sonix2000超聲波流量計收集脈沖,將數據送到DTU串口,由GPRS公共無線通信網絡進行數據傳輸。作為上位機的LabVIEW顯示平臺基于Modbus協議函數從以太網讀取數據,實時顯示監控情況。上位機在實時監控天然氣流量和溫度的同時,也對歷史數據進行保存和整理,使監控系統更合理、完備、高效。

圖1 天然氣流量遠程監控系統
天然氣流量遠程監控系統硬件部分主要由Sonix2000超聲波流量計、STM32、宏電H7710、開關電源(備用)、宏電串口轉發工具及報警器等組成(圖2),可以實現天然氣流量脈沖數據的采集和收發。

圖2 遠程監控系統硬件結構
宏電H7710利用GPRS/CDMA 1x網絡平臺實現數據信息的透明傳輸,同時考慮到各應用部門組網的需要,在網絡結構上采用虛擬數據專用網,特別適用于中心對多點、點多分散的中小數據量傳輸。宏電H7710具備RS-232/422/485或TTL電平接口,高性能、工業級、外置式,適用于惡劣環境中的各種工業監控、交通管理及氣象預報等場合。
STM32系列是為基于高性能、低成本、低功耗的嵌入式應用專門設計的ARM Cortex-M3內核。在本設計中,芯片通過Modbus RTU通信協議從流量計中讀取脈沖數據,數據存儲在Holding Registers里,上位機只需從Holding Registers里有效地讀取數據。芯片的參數設置為:波特率57 600Bd,8個數據位,1個停止位,無校驗位。
LabVIEW是由美國NI 公司推出的一種通用虛擬儀器開發軟件,它包含了豐富的功能函數庫和完備的總線設備驅動程序,基于圖形(Graphics)的編程方式是其最大的特點。LabVIEW采用了框圖而非傳統文本方式的編程方法,它集成了GPIB、VXI、RS-232、RS-485 協議的硬件和數據采集卡通信的全部功能[3,4]。
LabVIEW由前面板和程序框圖兩個主要部分構成,前面板是面向用戶的顯示界面和應用平臺,便于用戶的直接操作和閱讀(圖3);而程序框圖是編寫程序的后臺,它保障了前面板功能的實現,其中,程序設計是程序框圖的主要構成,是實現上位機與下位機通信的核心。

圖3 LabVIEW的前面板顯示
NI Modbus函數庫是NI公司設計的專門針對Modbus協議進行數據傳輸的函數庫,它是LabVIEW平臺控制串口及其他儀器的標準I/O應用程序接口(API)[5]。其中,本系統中上位機程序主要運用到了Modbus串口初始化函數(MB Serial Init.vi)和Modbus串行主查詢讀取Holding Registers函數(MB Serial Master Query Read Holding Registers (poly).vi)。
MB Serial Init.vi函數如圖4所示,該函數初始化被VISA資源名所定義的串口,通過VISA資源名(VISA resource name)輸入通道連接串口獲取資源。Mode是用來選擇所使用的Modbus類型,在本系統中筆者采用RTU方式。

圖4 Modbus串口初始化函數
為了與下位機保持一致,便于成功收發數據,MB Serial Init.vi參數設置如下:
波特率(Baud Rate) 57 600Bd
奇偶檢驗(Parity) None
流量控制(Flow Control) None
超時(Timeout) 10 000
MB Serial Master Query Read Holding Registers(poly).vi函數如圖5所示。主站使用MB Serial Master Query Read Holding Registers函數來讀取從站Holding Register里的資源和數據。串口參數(Serial Parameters)設置成RTU mode;Quantity是指從從站中讀取的Holding Register數目,這里設置成8;起始地址(Starting Address)為0,其余參數都是默認值。

圖5 Modbus串行主查詢讀取 Holding Registers函數
3.3.1收集與顯示數據
基于Modbus通信協議的LabVIEW上位機實現數據收集和顯示的過程如下(圖6):
a. 運用MB Serial Init.vi函數初始化串口,通過VISA資源名節點設置并連接用戶需要設定的串口,再按照下位機的要求設置串口初始化函數的各項參數;
b. 連接MB Serial Master Query Read Holding Registers (poly).vi函數,從Holding Registers里讀取數據;
c. 把讀取的數據以浮點數的形式顯示出來,并繪制成波形圖表呈現于前面板,用while循環不斷讀取數據,實時動態顯示;
d. 增加復位的條件語句,當用戶需要復位時,系統程序可以實現復位清零;
e. 用VISA關閉函數來關閉VISA資源,清空內存,結束程序,退出系統。

圖6 LabVIEW實現數據收集和顯示的程序流程
3.3.2保存和記錄數據
TDMS(Technical Data Management Streaming)文件是NI主推的一種二進制記錄文件,它兼顧了高速、易存取及方便等多種優勢,能夠在NI的各種數據分析或挖掘軟件之間進行無縫交互,也能夠提供一系列API函數供其他應用程序調用。TDMS文件的邏輯結構分為文件(File)、通道組(Channel Groups)和通道(Channels),每一個層次都可以附加特定的屬性[6],它是保存實驗數據時經常使用的函數。歷史記錄可以更方便地對天然氣流量數據進行分析和整理。實現數據保存和記錄的過程為:
a. 用TDMS Open函數打開或新建保存文件,在程序中設置文件路徑和操作方式(open or create);
b. 連接TDMS Write函數,向文件中寫入數據,設置組名輸入和通道名輸入,保存實驗時間和測得的數據,加上while循環可以實現連續寫入操作;
c. 用TDMS關閉函數關閉資源,完成數據的保存和記錄;
d. 當用戶需查看歷史記錄時,點擊前面板歷史記錄按鈕,TDMS查看器即可查看已保存的歷史記錄。
3.3.3登錄界面
登錄界面實現用戶登錄、系統退出及系統注銷等功能。只有正確登錄后才能進入系統,而且不同的用戶組(如管理員組和用戶組)進入系統后擁有不同的操作權限。登錄界面的程序框圖如圖7所示。

圖7 登錄界面程序框圖
天然氣流量遠程監控系統在LabVIEW上位機平臺上成功監測到了遠程地區的天然氣流量分布情況。利用先進的NI虛擬儀器技術、GPRS無線傳輸方式和 Modbus 通信協議,提高了遠程監控系統的自動化程度,避免了操作人員現場檢測帶來的問題。在實際運行中,LabVIEW人機界面交互性能良好,系統操作簡單方便,運行可靠,進一步提高了天然氣流量遠程監控的高效性。
[1] 唐波,孟祥印,唐磊. 基于PLC與WinCC的天然氣調壓站監控系統[J]. 化工自動化及儀表,2013,40(10):1281~1284.
[2] 杜向黨,鞏靜靜,趙喜鋒,等. 基于GPRS 和LabVIEW 的山區水廠遠程監控系統設計[J]. 測控技術,2012,31(2):64~67.
[3] 朱偉偉,李菊芳,梁美玉,等. 基于 LabVIEW 與 Modbus 通信協議的煤礦通風機性能監測系統[J]. 礦山機械,2010,38(15):37~39.
[4] 郭會軍,張建豐,王志林,等.基于 LabVIEW 和ARM 處理器的大型稱重式蒸滲儀測控系統[J]. 農業工程學報,2013,29(16):134~141.
[5] 謝啟,顧啟民,涂水林,等.基于LabVIEW的Modbus RTU 通信協議的實現[J]. 煤礦機械,2006,27(12):95~97.
[6] 沈文軒,黃新輝,黃志堅. 基于Modbus 協議的LabVIEW 在溢流閥測試中的應用[J]. 機床與液壓,2013,41(19):93~96.