《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 測試測量 > 設(shè)計(jì)應(yīng)用 > 基于LabWindows的系留氣球地面測控系統(tǒng)研制
基于LabWindows的系留氣球地面測控系統(tǒng)研制
來源:微型機(jī)與應(yīng)用2010年第15期
田松野1,,3,,胡柳燕2,,周維虎1,,韓曉泉1
1.中國科學(xué)院光電研究院,,北京 100085,;2.合肥工業(yè)大學(xué),,安徽 合肥 230009,;3.中國科
摘要: 針對上海世博會車載系留氣球監(jiān)測系統(tǒng)的應(yīng)用要求,設(shè)計(jì)了基于LabWindows的地面測控系統(tǒng),,該系統(tǒng)具有多串口數(shù)據(jù)采集,、數(shù)據(jù)庫存儲數(shù)據(jù)、用SQL語句訪問數(shù)據(jù)庫等特點(diǎn),,利用POS和GPS數(shù)據(jù)實(shí)現(xiàn)地面目標(biāo)定位,。
Abstract:
Key words :

摘  要: 針對上海世博會車載系留氣球監(jiān)測系統(tǒng)的應(yīng)用要求,設(shè)計(jì)了基于LabWindows的地面測控系統(tǒng),,該系統(tǒng)具有多串口數(shù)據(jù)采集,、數(shù)據(jù)庫存儲數(shù)據(jù)、用SQL語句訪問數(shù)據(jù)庫等特點(diǎn),,利用POS和GPS數(shù)據(jù)實(shí)現(xiàn)地面目標(biāo)定位,。
關(guān)鍵詞: 測控;數(shù)據(jù)庫,;SQL,;目標(biāo)定位;LabWindows

    在浮空器領(lǐng)域,,地面測控系統(tǒng)的性能和可靠性對于浮空器載荷的工作性能尤為重要,。在上海世博會車載系留氣球監(jiān)測系統(tǒng)任務(wù)系統(tǒng)中,地面測控系統(tǒng)面向的對象是浮空平臺上裝載的光電載荷及其配套設(shè)備,,主要包括可見光高清攝像機(jī),、紅外相機(jī)和高光譜相機(jī)、POS(位置與姿態(tài)測量)系統(tǒng)及球上測控系統(tǒng)等,,圖1所示是車載系留氣球監(jiān)測系統(tǒng)任務(wù)應(yīng)用系統(tǒng)的組成框圖,。

    車載系留氣球監(jiān)測系統(tǒng)任務(wù)系統(tǒng)地面測控系統(tǒng)軟件的目標(biāo)是保證球上光電平臺上各個載荷與球下控制設(shè)備的正常工作,對球上載荷的狀態(tài)數(shù)據(jù)進(jìn)行采集,、接收,、顯示與存儲,控制球上各個載荷的狀態(tài),。對球上載荷的某些參數(shù)具有報(bào)警功能,,保證控制命令和參數(shù)返回具有很好的實(shí)時性,同時測控系統(tǒng)還要對世博園地面目標(biāo)進(jìn)行定位,。
1 系統(tǒng)功能
    車載系留氣球監(jiān)測系統(tǒng)任務(wù)系統(tǒng)地面測控系統(tǒng)軟件具體功能如下:
    (1)數(shù)據(jù)采集功能,。對可見光攝像機(jī),、POS系統(tǒng)、紅外和高光譜相機(jī),、供配電等單元的工作數(shù)據(jù)與狀態(tài)數(shù)據(jù)進(jìn)行實(shí)時采集,。
    (2)坐標(biāo)解算功能。解算出氣球位置變化引起的可見光監(jiān)測系統(tǒng)吊艙的姿態(tài)變化,。
    (3)球下目標(biāo)位置解算功能,。利用球載POS系統(tǒng)獲得的光電平臺姿態(tài)和位置以及可見光監(jiān)測吊艙獲得的轉(zhuǎn)角信息解算球下目標(biāo)點(diǎn)的位置坐標(biāo)。
    (4)遙控功能,。對可見光攝像機(jī),、POS系統(tǒng)、紅外和高光譜相機(jī),、供配電單元等進(jìn)行指令控制,,包括通斷電、可見光攝像機(jī)視軸指向控制,、攝像機(jī)變焦,、任務(wù)應(yīng)用各分系統(tǒng)的通斷電及保護(hù)等。
    (5)數(shù)據(jù)顯示與存儲功能,。對球載設(shè)備的所有遙測數(shù)據(jù)在球下測控系統(tǒng)操控臺上均能實(shí)時顯示,,重要數(shù)據(jù)存儲到硬盤上以供分析。
2 系統(tǒng)設(shè)計(jì)
2.1 設(shè)計(jì)工具的選擇

    在應(yīng)用程序開發(fā)軟件中,,VC和VB等工具開發(fā)周期普遍較長,、難度也比較高。美國NI公司推出的NI LabWindows/CVI是一類久經(jīng)驗(yàn)證的ANSI C集成開發(fā)環(huán)境,,為用戶提供了用于創(chuàng)建測試和控制應(yīng)用的全套編程工具[1],。NI LabWindows/CVI兼有ANSI C的耐用性、復(fù)用性和特定的工程性能,,適用于儀器控制,、數(shù)據(jù)采集、分析和用戶界面開發(fā),。NI的數(shù)據(jù)庫連接工具包(Database Connectivity Toolkit)具有完整的SQL功能,,與本地或遠(yuǎn)程數(shù)據(jù)庫可直接交互式操作,高級而易用的功能適用于常見的數(shù)據(jù)庫操作,,利用其豐富的按鈕和圖形等用戶界面庫函數(shù),,可大大縮短軟件的開發(fā)周期,滿足軟件開發(fā)的實(shí)際需要,。
    根據(jù)地面測控系統(tǒng)上述功能要求,,采用模塊化設(shè)計(jì)方法把系統(tǒng)分為四個功能模塊:串口采集模塊、數(shù)據(jù)分析處理(包括定位)模塊、數(shù)據(jù)顯示模塊和數(shù)據(jù)管理模塊,。采用單線程定時器技術(shù)滿足各個載荷不同數(shù)據(jù)采集頻率的要求,;根據(jù)POS提供的數(shù)據(jù)和可見光監(jiān)測球艙(穩(wěn)定轉(zhuǎn)臺)輸出的的遙測數(shù)據(jù),通過空間坐標(biāo)變換計(jì)算球下目標(biāo)位置,;根據(jù)遙測下行數(shù)據(jù)流量大(傳輸速率6.2 Gb/s),、運(yùn)行時間長(182天)的特點(diǎn),采用SQL Tookit工具包應(yīng)用Access數(shù)據(jù)庫存儲數(shù)據(jù),。系統(tǒng)物理模塊框圖如圖2所示,,以下詳細(xì)介紹其中幾個重要的物理模塊的設(shè)計(jì)。

2.2 遙測數(shù)據(jù)接收模塊
    LabWindows/CVI編程語言提供了豐富的串口函數(shù),,可以很容易實(shí)現(xiàn)串口通信功能。利用豐富的RS-232庫函數(shù)可以方便地實(shí)現(xiàn)對載荷的數(shù)據(jù)/命令收發(fā)功能,,這些函數(shù)包括:OpenCom函數(shù)打開串口,、OpenComConfig函數(shù)設(shè)置串口并用設(shè)置串口的返回值來判定串口的狀態(tài)、ComWrtByte函數(shù)對串口發(fā)送字節(jié),、ComReadByte函數(shù)由串口接收字節(jié),、CloseCom函數(shù)關(guān)閉串口等[2]。圖3所示為串口初始化流程圖,。
    以下為串口初始化程序示例:

    //打開并設(shè)置串號,,波特率為9600,沒有校驗(yàn),,8位數(shù)據(jù)位,,1位停止位,最大輸入和輸出隊(duì)列長度都為512
    OpenComConfig(ComPort,,””,,9600,0,,8,,1,512,,512),;
    FlushlnQ(ComPo~);  //清空接收隊(duì)列
    FlushOutQ(ComPo~),; //清空發(fā)送隊(duì)列
    //裝載串回調(diào)函數(shù)
    Installc0mcallback(ComPo,,eventMask,3,,eventChar,,ComCallback,0);
    CloseCom(ComPo),;  //關(guān)閉串13
2.3 遙控指令發(fā)送模塊
    在車載系留氣球監(jiān)測系統(tǒng)任務(wù)應(yīng)用系統(tǒng)測控分系統(tǒng)中,,要求實(shí)時監(jiān)測各載荷的工作狀態(tài)。根據(jù)要求本系統(tǒng)具有不同的數(shù)據(jù)/控制命令發(fā)送頻率,,最小周期是20 ms,,最大周期是1 s??紤]到本系統(tǒng)不要求精確定時,,可以采用Timer定時器。
    定時器的建立,、刪除和設(shè)置可通過調(diào)用New Timer函數(shù),、Discard Timer函數(shù)和Set TimerAttribute函數(shù)來實(shí)現(xiàn)。定時響應(yīng)函數(shù)的聲明為:
    Int CVICALLBACK MyTimerCallback(int reserved,,int theTimerId,,int event,void *callbackData,,int eventData1,,int eventData2);
    測試系統(tǒng)軟件啟動之后,,建立一個定時器,;然后設(shè)置定時器的定時時間和響應(yīng)函數(shù);在軟件退出時,,刪除定時器,;在定時響應(yīng)函數(shù)中,調(diào)用串口函數(shù)和面板響應(yīng)函數(shù)讀取串口數(shù)據(jù)來實(shí)現(xiàn)實(shí)時狀態(tài)監(jiān)測的功能,,并定時發(fā)送控制指令,。
2.4 地面目標(biāo)位置定位模塊
    世博會車載系留氣球監(jiān)測系統(tǒng)任務(wù)應(yīng)用系統(tǒng)主要是監(jiān)控世博會園區(qū),對地面目標(biāo)進(jìn)行定位,,所有圖像數(shù)據(jù),、定位數(shù)據(jù)和遙測數(shù)據(jù)通過地面光纜傳送至世博總控中心,為世博園安全提供有力的保障,。
    POS定位與姿態(tài)測量系統(tǒng)及可見光轉(zhuǎn)臺均固定于浮空器光電平臺安裝基面上,,當(dāng)可見光球艙瞄準(zhǔn)地面靜態(tài)目標(biāo)后,可輸出視軸相對可見光轉(zhuǎn)臺自身的方位角和俯仰角,,利用可見光轉(zhuǎn)臺與POS系統(tǒng)(方位和姿態(tài)角)的相對位置數(shù)據(jù)(事先標(biāo)定),,同時采集POS系統(tǒng)輸出的定位數(shù)據(jù)和光電平臺的姿態(tài)數(shù)據(jù),通過一系列的坐標(biāo)轉(zhuǎn)換后,,可獲得視軸在以地面差分基站為原點(diǎn)建立的參考坐標(biāo)系中的直線方程,,進(jìn)而可以得到目標(biāo)點(diǎn)的定位數(shù)據(jù),。定位示意圖如圖4所示。

2.5 數(shù)據(jù)存儲模塊
    地面操作人員需要對載荷參數(shù),、設(shè)備狀態(tài)和設(shè)備操作等信息進(jìn)行實(shí)時存儲,,如果用文本文件、excel等格式存儲數(shù)據(jù),,考慮到本系統(tǒng)數(shù)據(jù)量大和運(yùn)行時間長等特點(diǎn),,存儲文件將會很大,這對后續(xù)文件運(yùn)行,、查詢等操作將產(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存儲方式單一,,管理對象包括表、查詢,、窗體,、報(bào)表,、頁,、宏和模塊, 數(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)點(diǎn)擊系統(tǒng)dsn,添加并選擇Microsoft Access driver(*.mdb),,在“數(shù)據(jù)源名稱”中輸入定義的名字,;
    (3)安裝Office里面的Accees,安裝好以后打開Access,,新建一個數(shù)據(jù)庫,,命名為***.mdb;
    (4)使用設(shè)計(jì)器創(chuàng)建新的表,,一個數(shù)據(jù)庫MDB文件里面可以建立多個表,。雙擊“使用設(shè)計(jì)器創(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),、報(bào)警信息,、控制命令等,它們對應(yīng)不同的表或字段,。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)常需要對設(shè)備運(yùn)行狀態(tài)中的數(shù)據(jù)進(jìn)行比對分析,,即對數(shù)據(jù)庫已有信息進(jìn)行分類檢索,。Access提供對SQL語句的支持,SQL是使用關(guān)系模型的數(shù)據(jù)庫應(yīng)用語言,,可以用SELECT語句對信息進(jìn)行檢索,。
    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服務(wù)器的口令,,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ìn)行激活并查詢
    //根據(jù)定義的緩存變量類型,,對要進(jìn)行查詢的項(xiàng)目分別進(jìn)行緩存分配。
    本文利用LabWindows豐富的函數(shù)VI,、直觀的控件,、可嵌入C程序等特點(diǎn),完成了上海世博會車載系留氣球地面測控系統(tǒng)的設(shè)計(jì),,該系統(tǒng)可完成數(shù)據(jù)采集存儲,、載荷控制,、目標(biāo)定位等功能,,系統(tǒng)已經(jīng)過聯(lián)調(diào)、地面考機(jī),、升空試驗(yàn),、穩(wěn)定運(yùn)行所有階段性試驗(yàn),試驗(yàn)表明本測控系統(tǒng)具有功能齊全,、穩(wěn)定可靠,、操作簡便、人機(jī)交互友好等特點(diǎn),。
參考文獻(xiàn)
[1] 應(yīng)秉斌,,賀世正.基于LabVIEW的微速差雙轉(zhuǎn)子動平衡測試系統(tǒng)的開發(fā)[J].流體機(jī)械,2006,,34(7):39-42.
[2] 史君成,,張淑偉,,律淑珍.LabWindows虛擬儀器設(shè)計(jì)[M].北京:國防工業(yè)出版社,2007.
[3] 劉方鑫,,羅昌隆,,等.?dāng)?shù)據(jù)庫原理與技術(shù)[M].北京:電子工業(yè)出版社,2002.
[4] 張桐,,陳國順,,王正林.精通LabVIEW程序設(shè)計(jì)[M].北京:電子工業(yè)出版社,2008.
[5] 白鳳山,,潘長勇,,楊知行.用動態(tài)鏈接庫技術(shù)LabWindows/CVI與高速數(shù)據(jù)采集卡的通訊[J].電測與儀表,2000(8):54-56.

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。