摘 要: 針對上海世博會車載系留氣球監(jiān)測系統(tǒng)的應用要求,,設計了基于LabWindows的地面測控系統(tǒng),,該系統(tǒng)具有多串口數(shù)據(jù)采集、數(shù)據(jù)庫存儲數(shù)據(jù),、用SQL語句訪問數(shù)據(jù)庫等特點,,利用POS和GPS數(shù)據(jù)實現(xiàn)地面目標定位。
關(guān)鍵詞: 測控,;數(shù)據(jù)庫,;SQL,;目標定位;LabWindows
在浮空器領域,,地面測控系統(tǒng)的性能和可靠性對于浮空器載荷的工作性能尤為重要,。在上海世博會車載系留氣球監(jiān)測系統(tǒng)任務系統(tǒng)中,地面測控系統(tǒng)面向的對象是浮空平臺上裝載的光電載荷及其配套設備,,主要包括可見光高清攝像機,、紅外相機和高光譜相機、POS(位置與姿態(tài)測量)系統(tǒng)及球上測控系統(tǒng)等,,圖1所示是車載系留氣球監(jiān)測系統(tǒng)任務應用系統(tǒng)的組成框圖,。
車載系留氣球監(jiān)測系統(tǒng)任務系統(tǒng)地面測控系統(tǒng)軟件的目標是保證球上光電平臺上各個載荷與球下控制設備的正常工作,對球上載荷的狀態(tài)數(shù)據(jù)進行采集,、接收,、顯示與存儲,控制球上各個載荷的狀態(tài),。對球上載荷的某些參數(shù)具有報警功能,,保證控制命令和參數(shù)返回具有很好的實時性,同時測控系統(tǒng)還要對世博園地面目標進行定位,。
1 系統(tǒng)功能
車載系留氣球監(jiān)測系統(tǒng)任務系統(tǒng)地面測控系統(tǒng)軟件具體功能如下:
(1)數(shù)據(jù)采集功能。對可見光攝像機,、POS系統(tǒng),、紅外和高光譜相機、供配電等單元的工作數(shù)據(jù)與狀態(tài)數(shù)據(jù)進行實時采集,。
(2)坐標解算功能,。解算出氣球位置變化引起的可見光監(jiān)測系統(tǒng)吊艙的姿態(tài)變化。
(3)球下目標位置解算功能,。利用球載POS系統(tǒng)獲得的光電平臺姿態(tài)和位置以及可見光監(jiān)測吊艙獲得的轉(zhuǎn)角信息解算球下目標點的位置坐標,。
(4)遙控功能。對可見光攝像機,、POS系統(tǒng),、紅外和高光譜相機、供配電單元等進行指令控制,,包括通斷電,、可見光攝像機視軸指向控制、攝像機變焦,、任務應用各分系統(tǒng)的通斷電及保護等,。
(5)數(shù)據(jù)顯示與存儲功能。對球載設備的所有遙測數(shù)據(jù)在球下測控系統(tǒng)操控臺上均能實時顯示,,重要數(shù)據(jù)存儲到硬盤上以供分析,。
2 系統(tǒng)設計
2.1 設計工具的選擇
在應用程序開發(fā)軟件中,,VC和VB等工具開發(fā)周期普遍較長、難度也比較高,。美國NI公司推出的NI LabWindows/CVI是一類久經(jīng)驗證的ANSI C集成開發(fā)環(huán)境,,為用戶提供了用于創(chuàng)建測試和控制應用的全套編程工具[1]。NI LabWindows/CVI兼有ANSI C的耐用性,、復用性和特定的工程性能,,適用于儀器控制、數(shù)據(jù)采集,、分析和用戶界面開發(fā),。NI的數(shù)據(jù)庫連接工具包(Database Connectivity Toolkit)具有完整的SQL功能,與本地或遠程數(shù)據(jù)庫可直接交互式操作,,高級而易用的功能適用于常見的數(shù)據(jù)庫操作,,利用其豐富的按鈕和圖形等用戶界面庫函數(shù),可大大縮短軟件的開發(fā)周期,,滿足軟件開發(fā)的實際需要,。
根據(jù)地面測控系統(tǒng)上述功能要求,采用模塊化設計方法把系統(tǒng)分為四個功能模塊:串口采集模塊,、數(shù)據(jù)分析處理(包括定位)模塊,、數(shù)據(jù)顯示模塊和數(shù)據(jù)管理模塊。采用單線程定時器技術(shù)滿足各個載荷不同數(shù)據(jù)采集頻率的要求,;根據(jù)POS提供的數(shù)據(jù)和可見光監(jiān)測球艙(穩(wěn)定轉(zhuǎn)臺)輸出的的遙測數(shù)據(jù),,通過空間坐標變換計算球下目標位置;根據(jù)遙測下行數(shù)據(jù)流量大(傳輸速率6.2 Gb/s),、運行時間長(182天)的特點,,采用SQL Tookit工具包應用Access數(shù)據(jù)庫存儲數(shù)據(jù)。系統(tǒng)物理模塊框圖如圖2所示,,以下詳細介紹其中幾個重要的物理模塊的設計,。
2.2 遙測數(shù)據(jù)接收模塊
LabWindows/CVI編程語言提供了豐富的串口函數(shù),可以很容易實現(xiàn)串口通信功能,。利用豐富的RS-232庫函數(shù)可以方便地實現(xiàn)對載荷的數(shù)據(jù)/命令收發(fā)功能,,這些函數(shù)包括:OpenCom函數(shù)打開串口、OpenComConfig函數(shù)設置串口并用設置串口的返回值來判定串口的狀態(tài),、ComWrtByte函數(shù)對串口發(fā)送字節(jié),、ComReadByte函數(shù)由串口接收字節(jié)、CloseCom函數(shù)關(guān)閉串口等[2],。圖3所示為串口初始化流程圖,。
以下為串口初始化程序示例:
//打開并設置串號,波特率為9600,,沒有校驗,,8位數(shù)據(jù)位,,1位停止位,最大輸入和輸出隊列長度都為512
OpenComConfig(ComPort,,””,,9600,0,,8,,1,512,,512),;
FlushlnQ(ComPo~); //清空接收隊列
FlushOutQ(ComPo~),; //清空發(fā)送隊列
//裝載串回調(diào)函數(shù)
Installc0mcallback(ComPo,,eventMask,3,,eventChar,,ComCallback,0),;
CloseCom(ComPo),; //關(guān)閉串13
2.3 遙控指令發(fā)送模塊
在車載系留氣球監(jiān)測系統(tǒng)任務應用系統(tǒng)測控分系統(tǒng)中,要求實時監(jiān)測各載荷的工作狀態(tài),。根據(jù)要求本系統(tǒng)具有不同的數(shù)據(jù)/控制命令發(fā)送頻率,,最小周期是20 ms,最大周期是1 s,。考慮到本系統(tǒng)不要求精確定時,,可以采用Timer定時器,。
定時器的建立、刪除和設置可通過調(diào)用New Timer函數(shù),、Discard Timer函數(shù)和Set TimerAttribute函數(shù)來實現(xiàn),。定時響應函數(shù)的聲明為:
Int CVICALLBACK MyTimerCallback(int reserved,int theTimerId,,int event,,void *callbackData,int eventData1,,int eventData2),;
測試系統(tǒng)軟件啟動之后,建立一個定時器,;然后設置定時器的定時時間和響應函數(shù),;在軟件退出時,,刪除定時器;在定時響應函數(shù)中,,調(diào)用串口函數(shù)和面板響應函數(shù)讀取串口數(shù)據(jù)來實現(xiàn)實時狀態(tài)監(jiān)測的功能,,并定時發(fā)送控制指令。
2.4 地面目標位置定位模塊
世博會車載系留氣球監(jiān)測系統(tǒng)任務應用系統(tǒng)主要是監(jiān)控世博會園區(qū),,對地面目標進行定位,,所有圖像數(shù)據(jù)、定位數(shù)據(jù)和遙測數(shù)據(jù)通過地面光纜傳送至世博總控中心,,為世博園安全提供有力的保障,。
POS定位與姿態(tài)測量系統(tǒng)及可見光轉(zhuǎn)臺均固定于浮空器光電平臺安裝基面上,當可見光球艙瞄準地面靜態(tài)目標后,,可輸出視軸相對可見光轉(zhuǎn)臺自身的方位角和俯仰角,,利用可見光轉(zhuǎn)臺與POS系統(tǒng)(方位和姿態(tài)角)的相對位置數(shù)據(jù)(事先標定),同時采集POS系統(tǒng)輸出的定位數(shù)據(jù)和光電平臺的姿態(tài)數(shù)據(jù),,通過一系列的坐標轉(zhuǎn)換后,,可獲得視軸在以地面差分基站為原點建立的參考坐標系中的直線方程,進而可以得到目標點的定位數(shù)據(jù),。定位示意圖如圖4所示,。
2.5 數(shù)據(jù)存儲模塊
地面操作人員需要對載荷參數(shù)、設備狀態(tài)和設備操作等信息進行實時存儲,,如果用文本文件,、excel等格式存儲數(shù)據(jù),考慮到本系統(tǒng)數(shù)據(jù)量大和運行時間長等特點,,存儲文件將會很大,,這對后續(xù)文件運行、查詢等操作將產(chǎn)生影響,,本系統(tǒng)通過創(chuàng)建數(shù)據(jù)庫使數(shù)據(jù)存儲,、數(shù)據(jù)查詢等操作變得簡單方便。
2.5.1 數(shù)據(jù)庫建立
首先需要新建數(shù)據(jù)庫,,將獲取的數(shù)據(jù)寫入數(shù)據(jù)庫,,本文采用微軟公司的Access軟件。Access存儲方式單一,,管理對象包括表,、查詢、窗體,、報表,、頁、宏和模塊,, 數(shù)據(jù)存放在后綴(.mdb)的數(shù)據(jù)庫文件中,,便于用戶的操作和管理[3],。系統(tǒng)訪問數(shù)據(jù)庫時,首先必須用ODBC管理器注冊一個數(shù)據(jù)源,,管理器根據(jù)數(shù)據(jù)源提供的數(shù)據(jù)庫位置,、數(shù)據(jù)庫類型及ODBC驅(qū)動程序等信息,建立ODBC與具體數(shù)據(jù)庫的聯(lián)系,。步驟如下:
(1)打開控制面版→管理工具→數(shù)據(jù)源odbc,;
(2)點擊系統(tǒng)dsn,添加并選擇Microsoft Access driver(*.mdb),,在“數(shù)據(jù)源名稱”中輸入定義的名字,;
(3)安裝Office里面的Accees,安裝好以后打開Access,,新建一個數(shù)據(jù)庫,,命名為***.mdb;
(4)使用設計器創(chuàng)建新的表,,一個數(shù)據(jù)庫MDB文件里面可以建立多個表,。雙擊“使用設計器創(chuàng)建表”即可;
(5)填寫字段名字,,選擇字段類型,,一條記錄可以有很多字段,字段大小即表示是這個字段最多可容納的字符數(shù),。
該模塊部分代碼如下:
int hdbc,; //定義數(shù)據(jù)庫連接句柄
int hstmt; //定義SQL連接句柄
hdbc=DBConnect(”DSN=TestData”),; //連接數(shù)據(jù)源
hstmt=DBActivateSQL(hdbc,,”SELECT FROM發(fā)通道測試數(shù)據(jù)表”); //顯式激活一個SQL語句,,并通過字段索引的方法綁定各個字段到特定類型的變量
DBDeactivateSQL(hstmt),; //解除SQL檢索語言
DBDiseo~ect(hdbc); //斷開與數(shù)據(jù)庫的連接
2.5.2 數(shù)據(jù)庫寫入
建好數(shù)據(jù)庫之后,,收到串口發(fā)來的數(shù)據(jù),經(jīng)分析后,,需要將新的數(shù)據(jù)寫入數(shù)據(jù)庫,。寫入數(shù)據(jù)庫的信息包括載荷狀態(tài)、報警信息,、控制命令等,,它們對應不同的表或字段。ODBC本身提供了對SQL語言的支持,,所以用戶可以直接將SQL語句送給ODBC,,首先利用DBCreateRecord函數(shù)創(chuàng)建一個新的記錄,,將測試結(jié)果直接賦給新記錄的各字段的變量,然后調(diào)用DBPutRecord函數(shù)保存新的記錄[4],。
hstmt=DBActivateSQL(hdbc,,string);激活SQL語句,。
DBPutRecord(hstmt),;刷新數(shù)據(jù)庫。
2.5.3 數(shù)據(jù)庫查詢
系統(tǒng)在測試聯(lián)調(diào)時,,經(jīng)常需要對設備運行狀態(tài)中的數(shù)據(jù)進行比對分析,,即對數(shù)據(jù)庫已有信息進行分類檢索。Access提供對SQL語句的支持,,SQL是使用關(guān)系模型的數(shù)據(jù)庫應用語言,,可以用SELECT語句對信息進行檢索。
LabWindows/CVI工具包中,,用途廣泛的SQL命令為[5]:
(1)CREATE TABLE,;
(2)SELECT;
(3)INSERT,;
(4)UPDATA,;
(5)DELETE。
使用SELECT語句可以執(zhí)行對數(shù)據(jù)庫的下列操作:
(1)取回表中的記錄,;
(2)更新表中的記錄,;
(3)新建或刪除表中的記錄。
hdbc=DBConnect(“UserID=sa,;PWD=123,;DSN=xx”);//指明連接SQL Server服務器的口令,,DSN為連接到數(shù)據(jù)源的路徑
i(f hdbc≤0){ShowErro(r),;goto Error;}
MessagePopup(“Successful connect to the server”,,“OK”),;//判斷是否連接成功
hstmt=DBActivateSQL(hdbc,“SELECT * FROM表名WHERE查詢條件”),;
i(f hstmt≤0){ShowErro(r),;gotoError;}
//根據(jù)條件對表進行激活并查詢
//根據(jù)定義的緩存變量類型,,對要進行查詢的項目分別進行緩存分配,。
本文利用LabWindows豐富的函數(shù)VI、直觀的控件、可嵌入C程序等特點,,完成了上海世博會車載系留氣球地面測控系統(tǒng)的設計,,該系統(tǒng)可完成數(shù)據(jù)采集存儲、載荷控制,、目標定位等功能,,系統(tǒng)已經(jīng)過聯(lián)調(diào)、地面考機,、升空試驗,、穩(wěn)定運行所有階段性試驗,試驗表明本測控系統(tǒng)具有功能齊全,、穩(wěn)定可靠,、操作簡便、人機交互友好等特點,。
參考文獻
[1] 應秉斌,,賀世正.基于LabVIEW的微速差雙轉(zhuǎn)子動平衡測試系統(tǒng)的開發(fā)[J].流體機械,2006,,34(7):39-42.
[2] 史君成,,張淑偉,律淑珍.LabWindows虛擬儀器設計[M].北京:國防工業(yè)出版社,,2007.
[3] 劉方鑫,,羅昌隆,等.數(shù)據(jù)庫原理與技術(shù)[M].北京:電子工業(yè)出版社,,2002.
[4] 張桐,,陳國順,王正林.精通LabVIEW程序設計[M].北京:電子工業(yè)出版社,,2008.
[5] 白鳳山,,潘長勇,楊知行.用動態(tài)鏈接庫技術(shù)LabWindows/CVI與高速數(shù)據(jù)采集卡的通訊[J].電測與儀表,,2000(8):54-56.