摘 要: 為了提高氣囊內壓監測效率,替代機械壓力表監測方法,提出并設計了一款基于無線網絡的船用氣囊安全監測系統。系統分為下位機和上位機兩個部分,下位機是基于ZigBee無線網絡的氣壓采集系統,上位機是PC機上基于LabVIEW的安全監測系統軟件。實現了氣壓數據的無線傳輸,下位機與上位機的串口通信,氣壓值的實時顯示,以及數據庫數據的管理。
關鍵詞: LabVIEW; 船用氣囊; VISA; LabSQL; 數據庫
中圖分類號: TN911.7?34; TP319 文獻標識碼: A 文章編號: 1004?373X(2013)11?0100?03
0 引 言
船舶氣囊下水技術是我國獨創的,擁有自主知識產權的下水工藝[1]。相較于以往的下水工藝,氣囊下水是一種更為簡單、經濟的方式。從20世紀80年代開始,氣囊下水工藝已經在各種中小型船廠得到廣泛應用[2],并且下水船舶的重量也逐年增大。隨著應用的推廣,以及下水船舶重量的不斷增大,船用氣囊的壓力監測顯得尤為重要[3?4]。
目前船用氣囊的壓力監測仍然采用傳統的機械式壓力表,而下水操作需要同時使用數十個甚至上百個氣囊,壓力監測工作的效率較低。為了提高氣囊內壓監測效率,設計開發了一套基于LabVIEW的船用氣囊安全監測系統,通過ZigBee無線網絡完成氣壓采集,并通過PC機上LabVIEW的安全監測系統軟件對監測數據進行管理。本文介紹的系統能夠實現氣囊內壓的實時監測、報警、數據管理等,大大提高了氣囊內壓監測的效率和操作安全性。
1 系統概述
該安全監測系統分為上位機和下位機兩大部分。下位機是基于ZigBee無線技術的氣囊內壓采集系統。將裝有壓力傳感器的采集節點裝在各個氣囊上,通過無線技術與采集器通信,將采集到的內壓傳輸到采集器中。上位機是基于LabVIEW的安全監測系統軟件,將內壓實時顯示出來,并對過載壓力報警。同時,LabVIEW與數據庫連通,將采集到的壓力等數據存儲到數據庫。
2 下位機部分的設計
ZigBee是一種短距離無線通信技術,具有低成本,低功耗,自組網等特點[5]。該系統的下位機部分是基于ZigBee的無線網絡,包括采集節點、中繼器和采集器三個部分。采集節點以CC2530芯片為微處理器,以MPX5700為氣體壓力傳感器的硬件設備,是該無線網絡中的終端,安裝在氣囊的氣嘴位置。采集節點將采集到的傳感器地址、編號、氣壓值等數據通過無線網絡發送給采集器。中繼器負責數據轉發,由采集節點的硬件設備通過軟件編程來實現[6]。采集節點距離較遠時,無法與采集器直接通信,采集節點的數據會通過相鄰的中繼器(采集節點)中轉給采集器。采集器是該網絡中的協調器,對接收的數據進行處理后,傳送給上位機。
3 上位機部分的設計
LabVIEW是一種圖形化編程語言,具有界面友好、操作簡便、開發周期短等特點[7],廣泛應用于各個行業的仿真、數據采集、儀器控制、測量分析和數據顯示等方面。上位機是在該安全監測系統的操作界面,是現場操作人員遠程監測時使用的。因此,該系統的上位機部分是在PC機Windows操作系統下基于LabVIEW的安全監測系統軟件,包括串口調試、內壓的實時顯示、波形顯示、過載報警、數據庫存取等模塊。
3.1 串口通信模塊
VISA實質上就是一組標準的I/O函數庫及相關規范的總稱。它駐留于計算機系統之中執行儀器總線的特殊功能,起著連接計算機與儀器的作用[8]。VISA適用于VXI、GPIB、串口等多種接口。上位機軟件與下位機的采集器通過RS 232接口連接。該模塊就是以VISA庫函數為基礎的。
串口通信模塊是整個系統軟件的基礎。如圖2所示,VISA Configure Serial Port.vi首先運行,波特率、數據位數、奇偶校驗等根據下位機參數進行配置。之后調用VISA open,打開相應的串口VISA資源的會話。VISA read從串口讀入數據,待讀取的數據長度由屬性節點返回。讀取緩沖區的數據就是下位機發送過來,包含有傳感器地址、編號、氣壓值等數據的字符串。最后調用VISA Close關閉串口會話,釋放資源[7?8]。
3.2 實時顯示模塊
實時顯示模塊包含數據顯示、波形顯示、過載報警,是建立在串口通信模塊上的數據處理模塊,是整個系統軟件的重要部分。
該模塊是以串口通信模塊為基礎的,以VISA read的讀取緩存區為起點。從串口每隔10 s會有一個包含有傳感器地址、編號、氣壓值等數據的字符串發送過來。經過字符串截取等操作,能從字符串中分離出表示氣囊編號和壓力傳感器電壓值的子字符串。對這些子字符串做一系列的數值處理,將電壓值轉化為氣壓值,然后顯示在前面板上。對氣壓值和安全閾值進行比較得到報警結果。最后,將各個氣壓值與氣囊擺放位置對應顯示在波形圖上。
3.3 數據庫存取模塊
由于氣囊數量較多,數據量大,需要一個成熟的數據管理平臺來處理。因此,選用SQL Server數據庫軟件,實現大量數據的存儲、查詢等功能[9]。
LabVIEW本身沒有訪問數據庫的功能,目前常用的方法有:
(1)利用NI公司提供的附加工具包SQLToolkit進行訪問;
(2)利用LabVIEW中的ActiveX功能,調用Microsoft ADO控件,通過SQL語言實現數據庫訪問;
(3)利用其他語言(如Visual C++)編寫DLL程序訪問數據庫;
(4)利用第三方提供的LabSQL工具包實現訪問[10]。
第一種方法中的工具包需要購買,第二種方法中要求精通SQL語言,第三種方法的工作量較大,而第四種方法中的LabSQL是一個免費工具包,使用方便。本系統采用的就是第四種方法。
LabSQL是一個基于Microsoft ADO和SQL的LabVIEW數據庫訪問工具包,支持Windows操作系統中任何基于OBDC的數據庫,如Access、SQL server或Oracle等。它將復雜的底層ADO與SQL操作封裝成一個個子VI,因此對開發者的SQL語言熟練程度要求不高[11]。
首先安裝LabSQL,將LabSQL壓縮包解壓到LabVIEW安裝目錄下的user.lib文件中。在LabVIEW中安裝完LabSQL工具包之后,還需要對LabSQL進行配置,即在Windows操作系統的ODBC數據源中創建一個DSN,命名為mydb。LabVIEW與數據庫的連接就是建立在ODBC基礎之上的[12]。
數據庫存取模塊包括兩個部分,數據寫入和數據查詢。數據庫數據寫入是該模塊的基礎。首先要在數據庫中新建一個名為mydb數據庫,在該數據庫下創建一個名為Table_1的表。
數據庫寫入程序框圖如圖3所示,其中ADO Connection Creat.vi用于創建一個connection對象,ADO Connection Open.vi用于建立與數據庫的連接,字符串“DSN=mydb”用于指定數據源。ADO SQL Execute.vi用于執行數據寫入命令,最后用ADO Connection Close.vi 關閉與數據庫之間的連接[13]。圖示程序可以實現時間、氣囊編號、氣壓值和報警情況的存儲。
4 結 語
本文介紹了一個氣囊內壓安全監測系統的設計。該設計通過ZigBee技術實現內壓數據的無線傳輸,通過RS 232實現上位機和下位機之間的通信。硬件系統以CC2530芯片為微處理器,以MPX5700為氣體壓力傳感器,實現了具有低功耗、低成本、自組網等特點的無線傳輸網絡。軟件系統基于LabVIEW,并與數據庫連接,實現數據寫入與查詢、實時顯示、過載報警等功能。經實驗表明,該系統運行穩定,界面友好,很好地替代了機械壓力表的測量系統,提高了測量效率,值得推廣。
參考文獻
[1] 孫菊香.船舶氣囊下水技術綜述[J].中國修船,2010,23(6):42?46.
[2] 孫菊香,朱珉虎.大型船舶采用氣囊上下水工藝安全對策研究[J].中國修船,2007,20(5):31?35.
[3] 錢少明,程國標,胡夏夏.船舶氣囊下水過程中氣囊動態壓力測試與研究[J].液壓與氣動,2009(1):38?40.
[4] 任慧龍,李陳峰,陳占陽.船舶氣囊下水安全性評估方法研究[J].中國造船,2009,50(4):53?60.
[5]高守瑋,吳燦陽.ZigBee技術實踐教程:基于CC2430/31的無線傳感器[M].北京:北京航空航天大學出版社,2009.
[6] 李文仲,段朝玉.ZigBee 2006無線網絡與無線定位實戰[M].北京:北京航空航天大學出版社,2008.
[7] 陳錫輝,張銀鴻.LabVIEW 8.20程序設計從入門到精通[M].北京:清華大學出版社,2007.
[8] 張桐,陳國順,王正林.精通LabVIEW程序設計[M].北京:電子工業出版社,2008.
[9] 衛琳.SQL Server 2008數據庫應用與開發教程[M].2版.北京:清華大學出版社,2011.
[10] 姜昊,張方,姜金輝.利用LabSQL實現對數據庫的訪問[J].電子測量技術,2008,31(12):70?73.
[11] 劉翔宇,陳曾漢.利用LabSQL實現對遠程數據庫的訪問[J].測控技術,2008,27(6):68?72.
[12] 文皓,南金瑞,董小瑞.動態網站連接數據庫方法應用于LabVIEW的研究[J].化工自動化及儀表,2010,37(8):98?100.
[13] 吉順祥,劉旺鎖,宋曉婷.基于LabVIEW的數據庫訪問技術[J].航海工程,2007,36(3):125?128.