唐曦文,崔希振
(1.同濟大學 電子與信息工程學院,上海 200092;2.上海飛機設計研究所,上海 200436)
在飛機飛控系統地面模擬試驗中,發現傳統的試驗儀器(如動態信號分析儀、示波器等)存在操作繁瑣、數據存儲不便等諸多弊病,影響試驗人員的工作效率;同時由于傳統的試驗儀器數據存儲限制(只能存儲在軟盤或無法存儲數據),導致試驗數據無法及時進行相關的數據處理,影響試驗進程。而在一個試驗項目中,往往需要多臺不同類型的儀器協同工作,這些儀器功能各異、相互獨立,要使多種儀器協同工作,一般串、并口難以滿足此要求。而GPIB (Generate Purpose Interface Bus,通用接口總線)可把各種可編程儀器與計算機緊密地聯系起來[1]。
傳統的試驗儀器一般都具有GPIB總線接口,能夠進行二次開發。GPIB總線具有以下優點:1)GPIB接口編程方便,可使用高級語言編程,能夠明顯減輕軟件設計負擔;2)提高了儀器設備的性能指標,通過上位機對帶有GPIB接口的儀器實現操作和控制,從而提高了測量精度;3)便于將多臺帶有GPIB接口的儀器組合起來,形成較大的測控系統,高效、靈活地完成各種不同的測控任務,而且組建和拆散靈活,使用方便;4)便于擴展傳統儀器的功能,可在上位機的控制下對測控數據進行更加靈活、方便的傳輸、處理、綜合、利用和顯示,使原來儀器采用硬件邏輯很難解決或無法解決的問題迎刃而解。
典型GPIB測控系統由PC、GPIB接口卡和若干臺(最多15臺)GPIB儀器通過標準GPIB電纜連接而成。本文描述的測控系統主要由Agilent公司生成的35670A(動態信號分析儀)、82357A(GPIB/USB)轉換線及上位機組成,在后續使用中可通過擴展上位機的USB接口擴展其它的測控儀器。如圖1所示:

圖1 測控系統硬件架構圖
Agilent公司將35670A面板上的所有鍵盤功能都以指令的形式向用戶開放,并根據指令的功能不同分成不同的指令模塊組,用戶可以根據二次開發的需要進行指令模塊選擇,在進行二次開發時常用的指令模塊如圖2所示:
在對35670A進行頻響功能開發時,主要利用圖2中各信號指令模塊,實現了對儀器信號的參數設置、試驗信號的發送和接收、數據存儲等儀器控制功能[4]。

圖2 35670A開放模塊示意圖
1)參數設置
參數設置中使用了圖2中的系統指令模塊、輸入通道指令模塊、信號源控制指令模塊、顯示指令模塊等。這些模塊提供了可供用戶自定義的各種標準信號和可編程信號,包括正弦、三角波、方波、掃頻等信號模式,和35670A相關的系統控制。例如通過指令"SENS:FREQ:STAR 0.1 Hz "來設置信號的起始頻率,通過指令"SENS:FREQ:STOP 10 Hz "來設置信號的截止頻率等等。
2)試驗信號的發送、接收
由于在試驗過程中,儀器不斷地產生新數據,那么就要求軟件實時地去訪問儀器的寄存器并且查看其狀態。該部分主要使用了圖2中的寄存器狀態控制指令模塊、計算指令模塊等。如可以利用"stat:device? "語句來查詢35670A的寄存器中是否已經采集到數據。
3)數據存儲
所有產生的試驗數據都存放在寄存器中,當軟件訪問完寄存器后可以利用計算指令模塊和數據類型定義模塊來實現保存功能。例如,使用"CALC1:X:DATA? ",獲得35670A的頻率值并保存等。
為了實現PC(上位機)對儀器的控制,必須在編寫代碼時調用Agilent公司向用戶開放的程序接口。這些接口符合VISA標準的函數集。VISA(Virtual Instrumentation Software Architecture,虛擬儀器軟件結構)是VPP系統聯盟制定的I/O接口軟件標準及其相關規范的總稱。VISA的目的是提供統一的設備資源管理、操作和使用機制,以幫助用戶簡化儀器I/O編程。VISA庫是實現計算機與儀器之間控制與數據傳輸的橋梁和紐帶。
根據需求分析,該系統主要具備如下功能,如圖3所示:
1)儀器控制管理功能。儀器的控制管理包括儀器檢測,儀器連接、斷開等。
2)信號的控制功能。信號控制包括信號類型選擇、信號參數設置、信號的啟動和停止等。
3)數據的管理功能。數據的管理包括數據的接收和存儲、數據的分析、歷史數據的管理和調用等。
4)輔助功能。輔助功能包括顯示控制、數據圖像預覽和打印功能等。

圖3 系統功能框圖
本文在LabWindows/CVI環境下編寫測控系統控制軟件。通過安裝Agilent IO Libraries Suite14.2軟件,建立支持在C/C++編程環境下的VISA庫函數。編寫程序時,在主程序中加入 <visa.h> 的頭文件聲明即可調用Agilent IO Libraries Suite14.2中支持的所有VISA庫函數。然后再調用上文模塊中的各指令模塊,結合VISA庫函數一起使用來實現對儀器的控制[2,3]。例如要通過控制軟件實現儀器對數掃頻模式的設置可以使用viPrintf (vi,"SENS:SWE: SPAC LOG ")函數。viPrintf即是一個典型的VISA函數,VISA函數都是以vi命名開頭,函數中的參數"SENS:SWE:SPAC LOG "便是設置儀器對數掃頻模式的指令。
按照圖3的系統功能框圖設計的系統軟件流程圖如圖4所示:
以35670A的頻響分析功能為例,其人機界面如圖5、圖6所示,圖5為對35670A進行掃頻參數設置及開始試驗界面,通過此界面一次就可以完成頻響試驗所需的全部設置;圖6為完成試驗后的數據顯示界面,可以通過該功能快速查看各次試驗的試驗數據。

圖4 測控系統軟件流程圖

圖5 35670A配置界面
測控系統完成后進行了試驗應用,以飛機頻響試驗為例,其試驗原理圖如圖7所示。35670A通過GPIB電纜和PC(上位機)相連,PC通過GPIB給35670A發出控制信號。儀器根據PC發出的指令給主控制單元發出掃頻信號,主控制單元根據掃頻信號驅動舵面。此時,舵面運動帶動安裝在舵面上的傳感器輸出電壓信號。電壓信號再反饋給35670A,35670A根據該信號和和本身發出的掃頻信號計算出幅頻和相頻的數據,再通過GPIB電纜傳回給PC。最后,控制軟件將這些數據顯示、保存和管理。

圖6 數據顯示界面

圖7 35670A測控系統原理框圖
本文開發了基于GPIB總線的測控系統,解決了使用傳統儀器的存在問題。在試驗過程中,該測控系統人機對話界面友好,操作簡單,極大的減輕了試驗人員的工作負擔;同時,在保存和處理試驗數據方面充分顯示了該測控系統的優勢,極大的提高了工作效率;并且廣泛應用于飛機飛控系統地面模擬試驗及機上地面試驗。
[1] 史君成,張淑偉,律淑珍.LabWindows虛擬儀器設計.北京:國防工業出版社,2007.
[2] 王建新,楊世風,等.LabWindows/CVI測控技術及工程應用.北京:化學工業出版社,2006.
[3] 譚浩強.C程序設計(第二版).北京:清華大學出版社, 1999.
[4] Agilent動態信號分析儀開發說明書.