周鵬飛+李國林+謝鑫
摘 要: 為解決某型裝備測試儀器分散、測試項目繁多、測試數(shù)據(jù)采集自動化程度較低的問題,依據(jù)崗位人員分工和操作規(guī)程要求,提出一種基于局域網(wǎng)的測試數(shù)據(jù)自動采集系統(tǒng)設計。針對系統(tǒng)中各種測試設備智能化程度差別較大的情況,將儀器分為三類,分別采用不同方法獲取測試數(shù)據(jù)。創(chuàng)造性地使用PDA手持設備和無線局域網(wǎng)技術(shù)進行協(xié)調(diào)控制,增強了系統(tǒng)的適應性和靈活性。在對測試設備進行本地操作基礎上,由遠端工控機實現(xiàn)對測試數(shù)據(jù)的自動采集及其在MySQL數(shù)據(jù)庫中的存儲管理。
關鍵詞: 局域網(wǎng); 自動采集; PDA; MySQL數(shù)據(jù)庫
中圖分類號: TN911?34 文獻標識碼: A 文章編號: 1004?373X(2015)20?0117?04
Research on automatic acquisition technology of test data for a certain type equipment
ZHOU Pengfei, LI Guolin, XIE Xin
(Navel Aeronautical Engineering Institute, Yantai 264001, China)
Abstract: To solve the problems of dispersion, various test items, and low automation level of test data acquisition for the test instrument for a certain type equipment, a test data automatic acquisition system based on local area network (LAN) is proposed according to the requirements of personnel division and operating rules for post. For the large difference of intelligence degree of various test equipments, the instruments are divided into three categories, and different methods are used to obtain test data respectively. The coordinated control was realized by using PDA handheld device and wireless LAN technology creatively, which enhanced the adaptability and flexibility of the system. On the basis of local operation for the test equipment, the automatic acquisition of test data and storage management in MySQL database were realized by remote industrial personal computer.
激光模擬射擊的一般原理是:在武器適當位置安裝激光器,發(fā)射激光代替彈丸指向彈丸理論落點。報靶系統(tǒng)對激光命中點位置信息進行采集,傳輸?shù)缴涫侄?,進而計算、顯示射擊成績,基本劃分為采集、傳輸、顯示3個流程。報靶系統(tǒng)一般在靶面設置光電傳感器陣列或拍攝圖像識別激光照射位置。基于圖像處理方式需要激光處于可見光頻段,并配備相機,處理數(shù)據(jù)量大,算法復雜;基于光電探測方式則系統(tǒng)組成簡單,使用方便,本文針對后者進行研究。通常,傳感器陣列分布為n×m矩陣形式,任一傳感器單元與周圍單元距離不完全相等,影響命中點指示精度。同時,為了提高精度需要增加傳感器數(shù)量,傳感器數(shù)量的增加與信號采集設備管腳數(shù)量沖突,使得采集困難、布線復雜[1?2]。針對此問題,對傳感器分布陣列和命中點坐標采集方式進行了優(yōu)化,使用LabVIEW編寫報靶系統(tǒng)程序。
1 命中點位置信息的采集
1.1 靶面?zhèn)鞲衅髡呅侮嚵蟹植?/p>
傳感器陣列采取n×m矩陣分布情況下,如圖1(a)所示,傳感器“0”與周圍“1~8”距離不完全相等。按照圖1(b)正六邊形分布情況下,傳感器“0”與周圍“1~6”距離完全相等。在此模式下擴展傳感器數(shù)量,形成如圖1(c)所示大型正六邊形陣列。陣列中每一個傳感器均與其周圍傳感器距離相同,所以這種分布比n×m矩陣更為均勻,對激光命中位置的反映更為準確。
圖1 傳感器正六邊形分布示意圖
1.2 坐標的定義及采集
如圖2(a)所示,正六邊形傳感器陣列[3]共有37個單元,分為7行,13列,對應縱坐標0~6,橫坐標0~12。根據(jù)正三角形幾何性質(zhì),縱坐標單位刻度是橫坐標的倍。為表示方便省略不寫,在計算程序中已引入。
如圖2(b)所示,每行傳感器并聯(lián)輸出,經(jīng)調(diào)理電路后被采集,每列傳感器也是如此。可見,對37個對象的采集簡化為7行,13列共20個對象的采集。任一傳感器被激光照射,其所處的行、列輸出高電平信號,以DI方式采集為布爾值“T”;某行或列所含單元均未被照射則采集為布爾值“F”。數(shù)據(jù)采集卡分別使用連續(xù)的通道采集7路行輸出,13路列輸出,采集為7位,13位的1D布爾數(shù)組,其中包含著對應的直角坐標信息。例如坐標為(0,3)的傳感器被照射,橫坐標布爾數(shù)組為(T,F(xiàn),F(xiàn),F(xiàn),F(xiàn),F(xiàn),F(xiàn),F(xiàn),F(xiàn),F(xiàn),F(xiàn),F(xiàn),F(xiàn)),縱坐標布爾數(shù)組為(F,F(xiàn),F(xiàn),T,F(xiàn),F(xiàn),F(xiàn))。
圖2 坐標定義及采集示意圖
為避免出現(xiàn)盲點,光斑直徑調(diào)節(jié)[4]為正三角形的外接圓直徑,如圖2(b)所示。被光斑覆蓋的傳感器數(shù)量有3種情況:只有1個傳感器、相鄰2個傳感器和組成正三角形的3個相鄰傳感器。命中多個傳感器時,需計算等效的平均中心坐標,計算方法是所有命中點的橫、縱坐標值取平均。
2 命中點位置信息的傳送
完成對激光命中位置信號采集后,采用LabVIEW串口通信將該信息由靶端無線傳送到射手端進行處理顯示。使用LabVIEW的VISA函數(shù)可方便地編寫串口通信程序[5]。通常,按照配置串口、設置發(fā)送/傳輸緩沖區(qū)、VISA寫入或VISA讀取、關閉串口的流程,再結(jié)合事件、循環(huán)、條件、順序等程序結(jié)構(gòu)和具體數(shù)據(jù)操作等即可編寫符合用戶意圖的串口通信程序[5?7]。
2.1 串口傳送
在“for”循環(huán)中依次索引行、列1D布爾數(shù)組各元素,執(zhí)行“布爾至0,1”轉(zhuǎn)換,循環(huán)次數(shù)等于數(shù)組元素個數(shù),由循環(huán)框架通道選擇帶索引輸出方式,即可得到轉(zhuǎn)換為0,1組成的數(shù)組。2個數(shù)組元素作和之后再作和,與0比較,作為條件結(jié)構(gòu)的判斷依據(jù)。當有傳感器被激光命中時,行或列有輸出,和值大于0,則執(zhí)行串口發(fā)送程序;和值等于0,不執(zhí)行串口發(fā)送程序。
配置串口時,要將發(fā)送方和接收方的比特率、數(shù)據(jù)位數(shù)、奇偶校驗等設置為相同值,即將雙方傳輸速率和幀格式設置一致。一般,串口傳送的是字符串型數(shù)據(jù)[6]。串口發(fā)送前,將1D布爾數(shù)組轉(zhuǎn)換為數(shù)值,再將數(shù)值轉(zhuǎn)化為字符串格式,最后將行、列字符串連接為一個字符串進行串口發(fā)送。
使用電臺完成無線傳輸:靶端微機串口與發(fā)送電臺采用三線接法,TxD,RxD,S?GND對應連接。射手端微機串口和接收電臺也采用三線接法,但與前者不同,S?GND直接連接,TxD,RxD交叉連接。串口送程序如圖3所示。
圖3 串口發(fā)送程序圖
2.2 串口接收
當靶面?zhèn)鞲衅鞅患す饷袝r,串口發(fā)送程序以字符串的形式發(fā)送命中位置信息,此時串口接收端“串口字節(jié)數(shù)”大于0。在“while”循環(huán)中判斷“串口字節(jié)數(shù)”是否大于“0”,作為開始串口讀取靶端信息、執(zhí)行后續(xù)處理、計算、顯示程序的觸發(fā)條件,實現(xiàn)命中后自動報靶。串口讀取后,將行、列字符串分離,還原為行、列布爾數(shù)組,進一步處理得到坐標并進行顯示。這部分程序均放在條件結(jié)構(gòu)“真”分支中,為示意方便,只顯示串口讀取程序,其余在下文中?!按谧止?jié)數(shù)”小于“0”時,在“假”分支中以字符串常量形式顯示“脫靶”。
由于串口是底層硬件,數(shù)據(jù)從軟件到串口,及從串口到軟件需要一個時間。數(shù)據(jù)還沒有全部傳送到接收緩沖區(qū)時,讀取程序就把部分已接收的數(shù)據(jù)讀出,從而出現(xiàn)接收數(shù)據(jù)不完整的現(xiàn)象[6]。調(diào)試中,在“VISA讀取”之前設置若干ms的延時,使數(shù)據(jù)傳輸完全,從而讀取完整。將“串口字節(jié)數(shù)”輸出連接“串口讀取”的字節(jié)總數(shù)接線端,即按照接收字節(jié)數(shù)量進行讀取。具體程序如圖4所示。
圖4 串口接收程序圖
3 計算處理顯示
采用極坐標方式可以直觀顯示命中點與靶心的距離和方位偏差[8?10]。需要將數(shù)字采集得到的1D布爾數(shù)組還原為具體的直角坐標,再將直角坐標轉(zhuǎn)換為極坐標。行或列布爾數(shù)組的轉(zhuǎn)換流程框圖如圖5所示。
圖5 坐標轉(zhuǎn)換流程圖
3.1 1D布爾數(shù)組轉(zhuǎn)換為直角坐標
在“for”循環(huán)中依次索引1D布爾數(shù)組各元素,執(zhí)行“布爾至0,1”轉(zhuǎn)換,循環(huán)次數(shù)等于數(shù)組元素個數(shù),由循環(huán)框架通道選擇帶索引輸出方式,即可得到轉(zhuǎn)換為0,1組成的數(shù)組。1D布爾數(shù)組至直角坐標轉(zhuǎn)換程序見圖6。將新得到的0,1組成的數(shù)組放入“for”循環(huán),依次索引數(shù)組各元素,與“for”循環(huán)“i”變量相乘,由循環(huán)框架通道選擇帶索引輸出方式,即可得到0,1組成的數(shù)組與0~N-1坐標值組成的數(shù)組相與運算之后的結(jié)果。此結(jié)果是數(shù)組結(jié)構(gòu),顯示被命中的坐標數(shù)值,其他元素均為0。
圖6 1D布爾數(shù)組至直角坐標轉(zhuǎn)換程序
由于光斑會覆蓋1~3個傳感器單元,所以需要計算命中位置的中心坐標。計算方法是取所有命中點坐標的平均值。采取 “數(shù)組元素作和”除以命中點個數(shù)的方法求平均值。命中點個數(shù)等于相應的0,1組成的數(shù)組的數(shù)組元素作和。圖2中正六邊形傳感器陣列中心坐標為(6,3),以此為坐標原點,分別計算命中位置中心的橫坐標和縱坐標。
3.2 直角坐標轉(zhuǎn)換為極坐標
利用“程序→數(shù)值→復數(shù)→實部、虛部至r,θ”函數(shù),將命中位置中心坐標的橫坐標和縱坐標直接轉(zhuǎn)換為極坐標r,θ參數(shù)。極坐標顯示需要幅值和角度兩個參數(shù),其中角度以度為單位,θ為弧度,需要轉(zhuǎn)換為度。在圖2所示的正六邊形陣列中,幅值最大為6。命中成績設計為5~10環(huán),根據(jù)比例關系,環(huán)數(shù)計算公式為:[n=10-5r6]。由于極坐標顯示的點較小,根據(jù)極坐標中該點的位置計算其對應的像素點坐標,再在此像素點坐標處進行“繪制點”操作,可以對點的直徑、顏色進行設置,得到較好的顯示效果。
程序前面板的極坐標繪圖區(qū)域設置為600×600像素,極坐標原點像素坐標為(293,300),最大幅值為6,對應像素點數(shù)為272,據(jù)此可計算命中點的像素坐標,提供給“繪制點”函數(shù)進行顯示,具體程序框圖如圖7所示,程序前面板如圖8所示。
圖7 直角坐標轉(zhuǎn)換為極坐標、顯示程序
圖8 成績顯示頁面
圖7所示為位于正六邊形陣列第4行、第3列和第5行、第4列的兩個相鄰傳感器被激光命中時,數(shù)字采集行、列布爾數(shù)組,轉(zhuǎn)換為(0,1)數(shù)組,轉(zhuǎn)換為坐標值數(shù)組,命中位置中心直角坐標值,極坐標值及環(huán)數(shù)值,紅色圓點為命中點在極坐標中的位置。
4 結(jié) 語
報靶系統(tǒng)在傳感器陣列按照正六邊形分布基礎上,將各行、列傳感器組并聯(lián)輸出,采取DI采集行與列布爾數(shù)組的方式確定命中點坐標,使得坐標采集簡便易行。以極坐標顯示命中點與中心的距離和方位偏差,效果直觀明確。使用圖形化編程語言LabVIEW開發(fā)程序,簡單高效。試驗表明,該系統(tǒng)工作穩(wěn)定、測試準確,達到了設計要求。
參考文獻
[1] 曹勇,何凱平,邵思杰,等.基于陣列式多路信號采集的射擊訓練激光模擬系統(tǒng)[J].激光技術(shù),2012(3):367?370.
[2] 劉穎.觸覺傳感器陣列信息獲取與分析處理[D].重慶:重慶大學,2007.
[3] 謝勇.無線激光打靶器的設計和研制[D].南京:南京師范大學,2004.
[4] 曹勇,何凱平,邵思杰,等.基于激光調(diào)制技術(shù)的射擊訓練模擬系統(tǒng)[J].激光技術(shù),2012(5):693?695.
[5] 李江全,劉恩博,胡蓉,等.LabVIEW虛擬儀器數(shù)據(jù)采集與串口通信測控應用實戰(zhàn)[M].北京:人民郵電出版社,2010.
[6] 呂向鋒,高洪林,馬亮,等.基于LabVIEW串口通信的研究[J].國外電子測量技術(shù),2009,28(12):27?30.
[7] 孫麗芹,王海龍,張景順,等.一種基于LabVIEW的串口數(shù)據(jù)傳輸方法[J].通信技術(shù),2013,46(4):139?141.
[8] 彭勇,潘曉燁,謝龍漢.LabVIEW虛擬儀器設計及分析[M].北京:清華大學出版社,2011.
[9] 李楠.打靶自動識別的的設計與實現(xiàn)[D].天津:天津大學,2012.
[10] 洪小康.一種自動報靶系統(tǒng)的設計與實現(xiàn)[D].南昌:南昌航空大學,2013.
[11] 蔡勇智.基于圖像識別的無彈射擊自動報靶研究[J].科技信息,2013(20):127?128.