王勇軍,葉美玲,李 智,林榕彬
(1.桂林航天工業學院無人機遙測重點實驗室,廣西桂林 541004;2.桂林電子科技大學電子工程與自動化學院,廣西桂林 541004)
燃氣舵是導彈推力矢量控制裝置,通過改變推進裝置的燃氣噴流方向,產生改變導彈姿態的作用力或作用力矩。而該型導彈燃氣舵內部的一個重要控制部件即是“安全閥”。該安全閥的打開壓力在3.40~3.95 MPa之間,為保障導彈工作的有效性,使用前需要進行正向密封性、打開壓力、回座壓力、反向承壓和密封圈密封性等測試,通用的人工單項檢測方法不僅每次耗時三四十分鐘,而且還存在一定的誤檢率。
目前在氣動壓力控制閥檢測方面,有不少大學和研究所開發出各類控制閥門檢測系統,比如山東大學開發出高/微流量氣壓減壓閥測試系統[1]、寧波大學基于LabVIEW研制了減壓閥測試設備[2]、合肥通用環境控制技術有限責任公司針對安全閥低溫性能測試開發了自動測試系統[3]等,但這些都基于 LabVIEW平臺,人機界面不夠方便,而且也未見報道有類似功能安全閥的測試裝置。因此,研制開發一套檢測功能強、系統穩定、自動化程度高、操作簡便的安全閥測試系統軟件不僅可以提高測試效率,還可以保障安全閥質檢合格的有效性。本文主要介紹基于VC平臺的導彈燃氣舵安全閥測試系統上位機控制軟件的設計與實現。
整個測試系統主要由測試工件(安全閥)、氣路系統、電路系統和上位機軟件四大部分組成,主要利用計算機及自動檢測技術,實現安全閥各項性能指標的自動測試,如圖1所示。

圖1 系統總體方案框圖
氣路系統組成結構如圖2所示。整個氣路系統處于高壓環境,主要為不同測試項目輸出合適的測試氣壓。另外,由于安全閥打開壓力、回座壓力、密封性等多項性能測試中的流量指標差異非常大,輸出流量小至幾mL/min、大至幾十L/min,所以該氣路系統搭建的一個難點在于如何快速切換測試項目。為解決這個問題,設計時采用多路電磁閥并聯一起,分別與不同精度流量測試儀器連接,通過控制電路中電磁閥的開斷來實現測試氣路的切換[4-5]。電路系統負責壓力和流量信號的采集、轉換與傳輸,并發送到工控機。工控機還負責將控制信號傳送到測量與控制電路部分,進而控制執行機構(電磁閥、電動壓力調節閥)完成調節動作。

圖2 氣路組建結構示意圖
主控計算機是測試系統的控制管理中心,對整個測試過程進行管控和調度,完成規定的測試任務。系統基于VC開發平臺,分析該測試系統軟件的需求,運用多線程技術和模塊化設計原則[6],設計開發測試系統的上位機軟件,以期能提供操作簡單的人機管理界面。
通過分析安全閥性能測試項目的測試方法及工作流程,確定人機接口管理界面是否能夠完成控制響應、實時通信、數據分析和圖表顯示四大項任務,因此需要包含以下基本功能:
①響應界面操作按鈕,實現測試項目的選擇,以及人工分析處理的一些操作;
②通過串口完成與下位機的通信,上傳各傳感器數據至上位機界面,下達控制命令控制執行機構的調節狀態;
③對比傳感器測試數據與技術指標要求,進行測試項目的性能評估,顯示分析結果,并將關鍵數據信息以直觀圖形的方式標識出來;
④綜合壓力傳感器和流量計測試數據,繪制歷史數據曲線、打開壓力曲線、回座壓力曲線,實現曲線圖表的顯示。
測試規劃界面如圖3所示,測試項目功能區中的相應測試項目對應單個指標測試流程;各傳感器的最新測試數據會顯示在界面上,并在繪制區實時顯示數據曲線;各項目測試完成后,會在顯示區給出系統針對各個項目性能的分析結果;電磁閥區域顯示當前時刻各電磁閥開關狀態,以方便用戶觀察氣路狀態是否正常。

圖3 系統主界面示意圖
要保證傳感器測試數據既能進行連續、長時間數據采集,又能實時解算并動態顯示,這對數據采集、計算處理、數據實時顯示等功能的設計提出了很高的要求。單線程、順序執行的程序結構已經不能滿足測試系統的需求,而利用多線程技術,把數據采集、數據計算處理、數據實時動態顯示等任務分配給多個線程同步處理,實現不同功能的并發執行,可有效提高系統的效率,從而優化系統整體性能[7]。
上位機軟件作為整個測試系統的神經中樞,為了提高其工作效率,設計時運用多線程技術,將執行代碼劃分主次,主線程負責響應主界面操作,優先級最高,次線程負責完成其他任務。根據安全閥測試需求分析可知,上位機軟件主體任務包含界面操作、串口通信、數據分析處理和數據庫操作,因此可把界面操作設為主線程,其他任務設為次線程。由于串口通信涉及測試數據的上傳與控制命令的下達,是上位機線程聯系的樞紐,因此將它的優先級設為次線程隊列中最高的。軟件運行過程中,當主線程響應用戶界面操作時,次線程會暫時掛起,完成響應后,掛起的次線程被喚醒。
在人機交互的過程中,通過多線程技術解決了系統并發任務的調度、線程間的通信和同步問題,提高了系統的實時響應能力。本系統采用全局變量進行線程間通信,結合自定義消息變量進行輔助通信[8]。同時使用臨界區對象實現對數據的保護,只有線程獲得該對象才能訪問被保護的公共資源,直到該線程釋放該對象,才允許其他線程訪問,為線程之間數據的共享和傳遞提供了良好的數據保護機制。
該安全閥測試系統的例行測試有:密封圈密封性測試、正向密封性測試、打開壓力測試、閥門動作測試、反向壓力測試、回座壓力測試,軟件基本工作流程如圖4所示。當進行各個項目測試時,軟件根據采集到的氣壓和流量值對電動壓力調節閥及電磁閥進行自動控制,不斷反饋控制直至獲取滿足測試要求的氣壓。為防止誤操作,當前測試任務執行過程中會與其他測試項目互鎖,只有結束當前測試才能進行下一項測試。
此模塊設置了保護權限,需要驗證測試人員的合法性以及管理用戶的使用權限,只有教師規定的同學具有權限進入該系統。登錄功能需要根據教師在后臺建立的賬號和密碼庫來驗證,每次登錄不成功系統明確提示賬號或者密碼重輸入,連續提示次數超過3次,系統強制退出軟件。
對測試控制單元的功能、通道配置情況及可用性進行檢測,并對系統做相應初始化,確保安全閥測試結果的有效性和可信性。該模塊實際上是一個特殊的數據采集與信號控制的過程,是針對各測試裝置的自測試與數據采集方案[9]。

圖4 基本測試流程圖
上位機通信是基于串行通信實現的,采用Modbus-RTU協議的主從方式通信。串口初始化過程中,要完成對串口號、波特率、數據位、停止位、校驗方式等串口參數的配置,保證數據能正確傳輸。上位機通過唯一的地址號來區別從機,然后按照協議格式發送命令,相應的下位機按相同格式做出響應。該協議定義的03功能碼是讀取指定地址寄存器的模擬量,可以獲得傳感器的測試數據;06功能碼是寫入單個模擬量到寄存器,寫入值可以是-32768~32767之間的任意值,作為設置電動調節閥開度信號以及電磁閥開關狀態的模擬量。通過解析接收到的數據,具體的操作響應會在功能號對應的函數中執行,從而實現主控計算機與下位機之間的通信。Modbus報文模型如圖5所示,其報文協議主要由地址域、功能碼、數據碼和校驗碼組成。

圖5 Modbus報文模型
軟件的核心部分是實現安全閥全部性能指標的測試。整個測試分為全項目性能測試和單項性能測試兩種,按照不同的項目選項進入相應測試項目流程。全項目測試包含6個子任務測試,每個子任務對應測試要求不同,會構建不同的測試鏈路,但這些都是通過控制氣路系統電磁閥的打開與關閉來實現不同氣路選擇的。通過對比相應傳感器測試數據與對應測試項目技術指標,進行測試系統的效能評估。全項目程序流程如圖6所示。其中,密封圈密封性、正向密封性和反向壓力三項測試涉及到不同小流量檢測,考慮到測試的靈活性,可以通過界面來選擇設定不同的流量評估標準。

圖6 全項目測試程序流程圖
數據管理模塊主要用于對上位機收到數據的解析、實時數值的顯示、數據曲線的繪制、性能評估結果的顯示、數據庫存儲和歷史數據的查閱。數據曲線的顯示功能可以利用曲線圖表控件TeeChart8.0實現[10-11],數值形式的顯示則可依靠VC平臺自帶的列表控件來實現。上位機將接收到的數據按照指定的規則解析為傳感器的實時數據,如根據壓強和流量可以在界面上實時顯示出這兩個數據構成的打開壓力曲線和回座壓力曲線。
對于數據的存儲既能以曲線圖表形式導出存儲,也能連接數據庫存儲,以方便后期查閱數據,為故障分析提供真實可靠的數據支持。相關歷史數據查閱功能主要是按照ADO方式遍歷數據庫[12],對已測試傳感器的數據及處理后的數據進行分析,方便后期完成實測報告時對出現的問題追蹤溯源。
根據安全閥測試控制工作流程,要求設計友好的人機交互界面,完成后的軟件主界面如圖7所示。整個自動測試交互界面主要包括項目流程控制及數據實時監測區、性能評估結果顯示區、數據曲線顯示區、串行通信參數設置區、數據存儲及事后人工分析處理區、電磁閥測試狀態顯示區。

圖7 測試系統功能主界面
針對導彈安全閥的測試需求,研制一種安全閥自動測試系統,利用多線程技術設計具有用戶登錄管理、串口通信、性能測試和數據管理等功能的用戶控制界面,人機交互方便,不僅能快速測試安全閥的全項目性能指標,還能通過上位機界面控制各單項測試,輸出測試系統各部件工作狀態,為企業生產提供良好的輔助工具,大大提高了質檢任務的執行效率。