錢平 于寶成 杜玉立
摘 要:隨動(dòng)電子部件是光電雷達(dá)中一個(gè)核心部件,需進(jìn)行定期故障檢查,檢測(cè)信號(hào)種類多、數(shù)量大,且不能進(jìn)行破壞性檢測(cè)。為方便檢測(cè),考慮到實(shí)際應(yīng)用中的檢測(cè)要求,利用LabVIEW語(yǔ)言設(shè)計(jì)一個(gè)在工控機(jī)端運(yùn)行的檢測(cè)儀軟件。結(jié)果表明,結(jié)合數(shù)據(jù)采集卡,采用狀態(tài)機(jī)模型與生產(chǎn)者消費(fèi)者設(shè)計(jì)模式,能有效構(gòu)建模塊,對(duì)部件的各項(xiàng)參數(shù)進(jìn)行檢測(cè)。使用檢測(cè)儀軟件,能方便、快捷地對(duì)各項(xiàng)數(shù)據(jù)進(jìn)行檢測(cè),避免大量數(shù)據(jù)的人工檢測(cè),提高效率。
關(guān)鍵詞:光電雷達(dá);LabVIEW;狀態(tài)機(jī);生產(chǎn)者消費(fèi)者循環(huán)
DOI:10.11907/rjdk.171504
中圖分類號(hào):TP319 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-7800(2017)009-0117-03
Abstract:Electronic following component is one of the core components of the Photoelectric Radar, which needs the regular fault detection, it has large number and kinds of signals, and it can not be destructively detected. In order to detect and take the actual application requirements into account, we design a test software using LabVIEW in a industrial computer . The results show that, combining with the data acquisition card, using the state machine model and the producing consumer design model, it can effectively build modules and detect the parameters of the components. With the detector software, the data can be detected conveniently and quickly,avoiding large amounts of data detected by manual and improving the efficiency.
Key Words:photoelectric radar; LabVIEW; state machine; producer consumer cycle
0 引言
隨動(dòng)電子部件在飛機(jī)上主要用于探索、發(fā)現(xiàn)、截獲和跟蹤目標(biāo),且能測(cè)量目標(biāo)距離[1],為攻擊目標(biāo)提供參考信息。隨著對(duì)光電雷達(dá)安全可靠性要求提高,隨動(dòng)電子部件需要進(jìn)行性能調(diào)試與測(cè)試。通過(guò)對(duì)電子部件響應(yīng)結(jié)果進(jìn)行測(cè)試與分析,以獲得滿足技術(shù)指標(biāo)的隨動(dòng)電子部件。
檢測(cè)儀中的工控機(jī)端通過(guò)ARINC通信板卡發(fā)送工作指令到隨動(dòng)系統(tǒng),電子部件收到命令后,自身發(fā)出占空比可調(diào)的PWM信號(hào)控制模擬負(fù)載運(yùn)動(dòng),而負(fù)載上對(duì)應(yīng)的光電編碼器將運(yùn)動(dòng)的角度信息以16位二進(jìn)制形式發(fā)送回工控機(jī)。通過(guò)對(duì)反饋的角度信息進(jìn)行處理和分析,對(duì)隨動(dòng)電子部件進(jìn)行性能判斷。此外,電子部件自身的信號(hào)參數(shù)通過(guò)NI采集卡獲取,同樣也是性能檢測(cè)的一部分。
1 軟件總體結(jié)構(gòu)
隨動(dòng)電子部件檢測(cè)儀軟件流程見(jiàn)圖1,主要有系統(tǒng)自檢、角度數(shù)據(jù)發(fā)送、負(fù)載控制顯示、數(shù)據(jù)采集等模塊。
2 軟件系統(tǒng)結(jié)構(gòu)
2.1 消息隊(duì)列狀態(tài)機(jī)
電子部件需要在自檢后進(jìn)入以下7種工作狀態(tài):大區(qū)搜索、小區(qū)搜索、帶掃描、不帶掃描、場(chǎng)截獲、場(chǎng)跟蹤、垂直。以往采用順序狀態(tài)機(jī)中加入事件結(jié)構(gòu)的形式,從初始化到用戶操作再到關(guān)閉程序,很容易用順序結(jié)構(gòu)描述整個(gè)過(guò)程。但這種設(shè)計(jì)的缺陷是,一旦運(yùn)行后,無(wú)法改變順序結(jié)構(gòu)的運(yùn)行次序。比如在自檢過(guò)程中,可以設(shè)置自檢次數(shù)超過(guò)規(guī)定次數(shù)后終止程序,采用順序狀態(tài),需要在每一幀中檢測(cè),降低了程序的執(zhí)行速度。
多種狀態(tài)可以用隊(duì)列保存,如圖2所示,使用消息隊(duì)列處理器設(shè)計(jì)模型,連續(xù)運(yùn)行多種狀態(tài)。初始化狀態(tài)消息入隊(duì)列,通常只運(yùn)行一次,進(jìn)行軟硬件的自檢等,在消息出列時(shí),將下一狀態(tài)入隊(duì)列。電子部件的7種工作狀態(tài)對(duì)應(yīng)7個(gè)按鈕控件,每個(gè)按鈕事件響應(yīng)時(shí)將對(duì)應(yīng)的狀態(tài)入隊(duì)列,執(zhí)行完相應(yīng)的子VI后,將消息出隊(duì)列,繼續(xù)等待用戶事件。退出狀態(tài)用于結(jié)束消息隊(duì)列狀態(tài)機(jī),通常執(zhí)行一些清理工作[2]。采用消息隊(duì)列狀態(tài)機(jī),可以由用戶選擇不同的狀態(tài),保證了程序的健壯性。
2.2 生產(chǎn)者消費(fèi)者設(shè)計(jì)模式
在單個(gè)工作狀態(tài)中,APINC通信板卡接收回發(fā)數(shù)據(jù)、APINC429板卡發(fā)送角度數(shù)據(jù)、對(duì)數(shù)據(jù)進(jìn)行分析繪圖、對(duì)數(shù)據(jù)進(jìn)行處理顯示分別為一個(gè)線程。
對(duì)多線程進(jìn)行處理,考慮到并發(fā)性,采用生產(chǎn)者消費(fèi)者設(shè)計(jì)模式。從數(shù)據(jù)角度分類,生產(chǎn)者為數(shù)據(jù)的提供方,消費(fèi)者為數(shù)據(jù)的消費(fèi)方[3],對(duì)數(shù)據(jù)的處理繪圖等線程都屬于消費(fèi)者,接受隨動(dòng)電子部件角度數(shù)據(jù)的線程為生產(chǎn)者。處理人機(jī)交互,在消費(fèi)者線程中采用事件結(jié)構(gòu),將數(shù)據(jù)繪圖線程響應(yīng)時(shí)觸發(fā)事件與數(shù)據(jù)處理顯示時(shí)觸發(fā)事件區(qū)分開(kāi),保證線程安全。
3 軟件詳細(xì)設(shè)計(jì)
3.1 系統(tǒng)自檢
系統(tǒng)自檢主要為軟件的正常工作作準(zhǔn)備,為對(duì)光電雷達(dá)進(jìn)行全方面檢測(cè),使用APINC通信板卡、NI6259、NI6509數(shù)據(jù)采集卡。程序初始運(yùn)行時(shí),對(duì)硬件進(jìn)行自檢,避免由于硬件損壞導(dǎo)致程序錯(cuò)誤。首先,對(duì)工控機(jī)中的APINC通信板卡進(jìn)行檢驗(yàn),通過(guò)自發(fā)自收的方式,發(fā)送一段數(shù)據(jù),檢測(cè)接收的數(shù)據(jù)是否與發(fā)送的數(shù)據(jù)相同,從而驗(yàn)證429通訊的發(fā)送端與接收端能否正常工作。其次,對(duì)NI6259與NI6509進(jìn)行自檢,通過(guò)DAQmx自檢函數(shù)調(diào)用,查看返回值(見(jiàn)圖3),驗(yàn)證數(shù)據(jù)采集卡能否正常工作。endprint
3.2 角度數(shù)據(jù)發(fā)送
發(fā)送角度信息前,板卡進(jìn)行復(fù)位操作,BOOL_stdcall ResetCard (HANDLE hCardHandle),清空發(fā)送FIFO隊(duì)列。設(shè)置完波特率與配置字后,讀取發(fā)送FIFO的狀態(tài),調(diào)用函數(shù)ReadFIFOStatus_S,當(dāng)發(fā)送緩沖FIFO不為滿時(shí),APINC通信板卡以32位二進(jìn)制的形式發(fā)送數(shù)據(jù)。發(fā)送角度信息時(shí),方位俯仰角度信息先組合成一個(gè)簇,根據(jù)通信協(xié)議轉(zhuǎn)化為二進(jìn)制的形式發(fā)送[4]。
3.3 角度數(shù)據(jù)接收
由于隨動(dòng)部件回傳角度數(shù)據(jù)速度較快,采用觸發(fā)接收的方式處理數(shù)據(jù)。對(duì)板卡進(jìn)行復(fù)位操作,調(diào)用Enable_Rev,使數(shù)據(jù)能接收。判斷接收FIFO是否觸發(fā),調(diào)用IsFIFOTriggered_R,如果接收FIFO觸發(fā),調(diào)用EnableRead FIFO使FIFO緩沖中的數(shù)據(jù)可讀,循環(huán)調(diào)用ReceiveData,連續(xù)讀取數(shù)據(jù)。禁止讀FIFO數(shù)據(jù),調(diào)用DisableReadFIFO,進(jìn)行下一次觸發(fā)判定。
3.4 角度數(shù)據(jù)顯示
接收16位二進(jìn)制角度數(shù)據(jù),解除通信板卡傳輸時(shí)產(chǎn)生的校驗(yàn),逆向得到14位原數(shù)據(jù)。360度14位表示:α=360214×AD,數(shù)據(jù)是以度的形式表示的,為更精確表示角度,可通過(guò)取余得到分,同理再取余得到秒(見(jiàn)圖4)。
3.5 角度數(shù)據(jù)分析處理繪圖
每一個(gè)工作狀態(tài)中存在運(yùn)行的區(qū)間值,通過(guò)比較接收的角度大小可模擬工作區(qū)域范圍,但其中存在過(guò)零問(wèn)題。在工作區(qū)域經(jīng)過(guò)零位時(shí),由于回傳的角度數(shù)據(jù)是14位二進(jìn)制數(shù),表示為0°-360°,而實(shí)際顯示角度超過(guò)180°時(shí)需要轉(zhuǎn)負(fù),比較大小時(shí),359°實(shí)際上相當(dāng)于-1°,比358°(-2°)小,可能造成程序執(zhí)行錯(cuò)誤。需對(duì)角度進(jìn)行標(biāo)記,超過(guò)180°與180°以內(nèi)的角度統(tǒng)一比較大小,方便程序執(zhí)行。
小于180°的角度統(tǒng)一加上360°,所有角度在[180°,540°]之間比較大小,找到區(qū)間中的最大值與最小值,再進(jìn)行角度數(shù)據(jù)復(fù)原,復(fù)原后的最小值與最大值之間的區(qū)域則為工作區(qū)間。
得到實(shí)時(shí)角度數(shù)據(jù),在坐標(biāo)中連續(xù)繪制,獲得每種工作狀態(tài)的實(shí)時(shí)軌跡。實(shí)際測(cè)試中,單點(diǎn)繪制軌跡時(shí),由于運(yùn)動(dòng)速度過(guò)快,軌跡模糊不清,應(yīng)采用多點(diǎn)組合繪制,即得到n個(gè)點(diǎn)的數(shù)據(jù)后再進(jìn)行繪制,得到的軌跡比單點(diǎn)圖更清晰。
3.6 數(shù)據(jù)采集
隨動(dòng)電子部件工作時(shí)的電壓電流需要達(dá)到標(biāo)準(zhǔn)狀態(tài),其自身帶有傳感器,對(duì)應(yīng)的物理量通過(guò)傳感器以模擬信號(hào)的形式傳遞,接入對(duì)應(yīng)的信號(hào)航插后,經(jīng)過(guò)信號(hào)調(diào)理板處理,利用DAQmx與采集卡可以進(jìn)行信號(hào)采集。工控機(jī)中插有NI6259、NI6509數(shù)據(jù)采集卡,NI6509可對(duì)數(shù)字信號(hào)進(jìn)行處理,NI6259對(duì)數(shù)字信號(hào)與模擬信號(hào)均可采集。①數(shù)字信號(hào)測(cè)量時(shí),打開(kāi)DAQmx虛擬通道,創(chuàng)建一個(gè)數(shù)字輸入通道,啟動(dòng)DAQmx開(kāi)始任務(wù),調(diào)用DAQmx讀取函數(shù)[5],采用一通道N采樣,讀取通道中的采樣,使用數(shù)字波形圖控件顯示;②模擬信號(hào)測(cè)量時(shí),打開(kāi)DAQmx虛擬通道,創(chuàng)建AI電壓采集通道,設(shè)置采樣時(shí)鐘,啟動(dòng)DAQmx開(kāi)始任務(wù),調(diào)用DAQmx讀取函數(shù)[6],采用一通道N采樣,讀取通道中的采樣,使用波形圖控件顯示;③模擬信號(hào)采集時(shí),不同于數(shù)字信號(hào)有高、低電平兩種狀態(tài)及自身獨(dú)特的幅值和波形,為使采集到的信號(hào)能更接近原始信號(hào),提高采樣精度,需選擇合適的采樣頻率。采樣頻率過(guò)低,可能造成信號(hào)混疊,采樣頻率過(guò)高,可能造成過(guò)采樣[7]。根據(jù)采樣定理與奈奎斯特定律,采樣頻率取原始信號(hào)最高頻率的2.56~4倍[8],基本能保持原始信號(hào)的形狀。隨動(dòng)電子部件中信號(hào)之間的頻率并不相同,有些甚至在達(dá)幾個(gè)數(shù)量級(jí)的差別,采集程序設(shè)計(jì)時(shí),先使用示波器對(duì)每一個(gè)原始信號(hào)的頻率進(jìn)行測(cè)量,再將測(cè)得頻率的4倍作為采樣頻率,利用條件結(jié)構(gòu)輸入采樣時(shí)鐘中。
4 結(jié)語(yǔ)
由于LabVIEW[9]圖形化界面[10]的方式,可以實(shí)現(xiàn)更加直觀地發(fā)出激勵(lì)信號(hào)、采集數(shù)據(jù)、對(duì)數(shù)據(jù)進(jìn)行處理、實(shí)時(shí)返回實(shí)驗(yàn)參數(shù)等功能,在不使用破壞性檢測(cè)的情況下,使隨動(dòng)電子部件檢測(cè)變得更簡(jiǎn)單有效。采用生產(chǎn)者消費(fèi)者設(shè)計(jì)模式,使用狀態(tài)機(jī)消息隊(duì)列,使得程序變得精簡(jiǎn)健壯,同時(shí)保證了線程安全。通過(guò)NI6259、NI6509采集卡與LabVIEW 相結(jié)合使用,使得數(shù)據(jù)的采集與處理變得高效、穩(wěn)定。通過(guò)此次項(xiàng)目的開(kāi)發(fā),可以完成對(duì)光電雷達(dá)隨動(dòng)電子部件的全自動(dòng)性能測(cè)試,準(zhǔn)確度高、穩(wěn)定性強(qiáng)。
參考文獻(xiàn):
[1] 陳強(qiáng),周文哲,任鵬輝,等.某坦克炮長(zhǎng)鏡光學(xué)系統(tǒng)裝調(diào)技術(shù)[J].應(yīng)用光學(xué),2013(2):235-238.
[2] 徐立翔.LabVIWE狀態(tài)機(jī)的研究及在運(yùn)動(dòng)控制中的應(yīng)用[D].武漢:湖北工業(yè)大學(xué),2012.
[3] 陳樹(shù)學(xué),劉萱.LabVIEW寶典[M].北京:電子工業(yè)出版社,2014.
[4] 謝其德,張?jiān)圃?動(dòng)態(tài)鏈接庫(kù)在LabVIEW中的高級(jí)應(yīng)用[J].微計(jì)算機(jī)信息,2001(10):45-46.
[5] 趙驍.電磁監(jiān)測(cè)試驗(yàn)衛(wèi)星高精度磁強(qiáng)計(jì)校準(zhǔn)系統(tǒng)研究[D].南京:南京航空航天大學(xué),2014.
[6] 李鵬.某型舵機(jī)傳動(dòng)機(jī)構(gòu)性能測(cè)試臺(tái)數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[D].武漢:武漢工程大學(xué),2014.
[7] 張宇.修形弧齒錐齒輪的傳動(dòng)誤差與振動(dòng)分析[D].洛陽(yáng):河南科技大學(xué),2009.
[8] 徐君軍.基于虛擬儀器的靜電監(jiān)測(cè)系統(tǒng)研究[D].南京:南京航空航天大學(xué),2012.
[9] 黃燕梅,韓慶瑤,伊淑梅.LabVIEW的虛擬儀器技術(shù)在自動(dòng)化檢測(cè)中的應(yīng)用[J].中國(guó)測(cè)試技術(shù),2005(1):37-38.
[10] 劉紅娟,馬飛,武楠.基于LabVIEW的菜單設(shè)計(jì)及其響應(yīng)方法研究[J].儀器儀表用戶,2008(4):116-117.
(責(zé)任編輯:何 麗)endprint