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

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

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

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

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

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

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

2.5 數(shù)據(jù)存儲(chǔ)模塊
    地面操作人員需要對(duì)載荷參數(shù)、設(shè)備狀態(tài)和設(shè)備操作等信息進(jìn)行實(shí)時(shí)存儲(chǔ),如果用文本文件、excel等格式存儲(chǔ)數(shù)據(jù),考慮到本系統(tǒng)數(shù)據(jù)量大和運(yùn)行時(shí)間長(zhǎng)等特點(diǎn),存儲(chǔ)文件將會(huì)很大,這對(duì)后續(xù)文件運(yùn)行、查詢等操作將產(chǎn)生影響,本系統(tǒng)通過(guò)創(chuàng)建數(shù)據(jù)庫(kù)使數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)查詢等操作變得簡(jiǎn)單方便。
2.5.1 數(shù)據(jù)庫(kù)建立
    首先需要新建數(shù)據(jù)庫(kù),將獲取的數(shù)據(jù)寫入數(shù)據(jù)庫(kù),本文采用微軟公司的Access軟件。Access存儲(chǔ)方式單一,管理對(duì)象包括表、查詢、窗體、報(bào)表、頁(yè)、宏和模塊, 數(shù)據(jù)存放在后綴(.mdb)的數(shù)據(jù)庫(kù)文件中,便于用戶的操作和管理[3]。系統(tǒng)訪問(wèn)數(shù)據(jù)庫(kù)時(shí),首先必須用ODBC管理器注冊(cè)一個(gè)數(shù)據(jù)源,管理器根據(jù)數(shù)據(jù)源提供的數(shù)據(jù)庫(kù)位置、數(shù)據(jù)庫(kù)類型及ODBC驅(qū)動(dòng)程序等信息,建立ODBC與具體數(shù)據(jù)庫(kù)的聯(lián)系。步驟如下:
    (1)打開控制面版→管理工具→數(shù)據(jù)源odbc;
    (2)點(diǎn)擊系統(tǒng)dsn,添加并選擇Microsoft Access driver(*.mdb),在“數(shù)據(jù)源名稱”中輸入定義的名字;
    (3)安裝Office里面的Accees,安裝好以后打開Access,新建一個(gè)數(shù)據(jù)庫(kù),命名為***.mdb;
    (4)使用設(shè)計(jì)器創(chuàng)建新的表,一個(gè)數(shù)據(jù)庫(kù)MDB文件里面可以建立多個(gè)表。雙擊“使用設(shè)計(jì)器創(chuàng)建表”即可;
    (5)填寫字段名字,選擇字段類型,一條記錄可以有很多字段,字段大小即表示是這個(gè)字段最多可容納的字符數(shù)。
    該模塊部分代碼如下:
    int hdbc;  //定義數(shù)據(jù)庫(kù)連接句柄
    int hstmt;  //定義SQL連接句柄
    hdbc=DBConnect(”DSN=TestData”);  //連接數(shù)據(jù)源
    hstmt=DBActivateSQL(hdbc,”SELECT FROM發(fā)通道測(cè)試數(shù)據(jù)表”);  //顯式激活一個(gè)SQL語(yǔ)句,并通過(guò)字段索引的方法綁定各個(gè)字段到特定類型的變量
    DBDeactivateSQL(hstmt);  //解除SQL檢索語(yǔ)言
    DBDiseo~ect(hdbc);  //斷開與數(shù)據(jù)庫(kù)的連接
2.5.2 數(shù)據(jù)庫(kù)寫入
    建好數(shù)據(jù)庫(kù)之后,收到串口發(fā)來(lái)的數(shù)據(jù),經(jīng)分析后,需要將新的數(shù)據(jù)寫入數(shù)據(jù)庫(kù)。寫入數(shù)據(jù)庫(kù)的信息包括載荷狀態(tài)、報(bào)警信息、控制命令等,它們對(duì)應(yīng)不同的表或字段。ODBC本身提供了對(duì)SQL語(yǔ)言的支持,所以用戶可以直接將SQL語(yǔ)句送給ODBC,首先利用DBCreateRecord函數(shù)創(chuàng)建一個(gè)新的記錄,將測(cè)試結(jié)果直接賦給新記錄的各字段的變量,然后調(diào)用DBPutRecord函數(shù)保存新的記錄[4]。
    hstmt=DBActivateSQL(hdbc,string);激活SQL語(yǔ)句。
    DBPutRecord(hstmt);刷新數(shù)據(jù)庫(kù)。
2.5.3 數(shù)據(jù)庫(kù)查詢
    系統(tǒng)在測(cè)試聯(lián)調(diào)時(shí),經(jīng)常需要對(duì)設(shè)備運(yùn)行狀態(tài)中的數(shù)據(jù)進(jìn)行比對(duì)分析,即對(duì)數(shù)據(jù)庫(kù)已有信息進(jìn)行分類檢索。Access提供對(duì)SQL語(yǔ)句的支持,SQL是使用關(guān)系模型的數(shù)據(jù)庫(kù)應(yīng)用語(yǔ)言,可以用SELECT語(yǔ)句對(duì)信息進(jìn)行檢索。
    LabWindows/CVI工具包中,用途廣泛的SQL命令為[5]:
    (1)CREATE TABLE;
    (2)SELECT;
    (3)INSERT;
    (4)UPDATA;
    (5)DELETE。
    使用SELECT語(yǔ)句可以執(zhí)行對(duì)數(shù)據(jù)庫(kù)的下列操作:
    (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ù)條件對(duì)表進(jìn)行激活并查詢
    //根據(jù)定義的緩存變量類型,對(duì)要進(jìn)行查詢的項(xiàng)目分別進(jìn)行緩存分配。
    本文利用LabWindows豐富的函數(shù)VI、直觀的控件、可嵌入C程序等特點(diǎn),完成了上海世博會(huì)車載系留氣球地面測(cè)控系統(tǒng)的設(shè)計(jì),該系統(tǒng)可完成數(shù)據(jù)采集存儲(chǔ)、載荷控制、目標(biāo)定位等功能,系統(tǒng)已經(jīng)過(guò)聯(lián)調(diào)、地面考機(jī)、升空試驗(yàn)、穩(wěn)定運(yùn)行所有階段性試驗(yàn),試驗(yàn)表明本測(cè)控系統(tǒng)具有功能齊全、穩(wěn)定可靠、操作簡(jiǎn)便、人機(jī)交互友好等特點(diǎn)。
參考文獻(xiàn)
[1] 應(yīng)秉斌,賀世正.基于LabVIEW的微速差雙轉(zhuǎn)子動(dòng)平衡測(cè)試系統(tǒng)的開發(fā)[J].流體機(jī)械,2006,34(7):39-42.
[2] 史君成,張淑偉,律淑珍.LabWindows虛擬儀器設(shè)計(jì)[M].北京:國(guó)防工業(yè)出版社,2007.
[3] 劉方鑫,羅昌隆,等.?dāng)?shù)據(jù)庫(kù)原理與技術(shù)[M].北京:電子工業(yè)出版社,2002.
[4] 張桐,陳國(guó)順,王正林.精通LabVIEW程序設(shè)計(jì)[M].北京:電子工業(yè)出版社,2008.
[5] 白鳳山,潘長(zhǎng)勇,楊知行.用動(dòng)態(tài)鏈接庫(kù)技術(shù)LabWindows/CVI與高速數(shù)據(jù)采集卡的通訊[J].電測(cè)與儀表,2000(8):54-56.

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