摘要:本文介紹的噴霧閥控制裝置采用工業控制計算機作主控制器,PLC作輔控制器,并輔以數據采集、模擬量輸出以及數字輸入/輸出DAS卡。在程序設計中采用了多種應用程序無縫連接技術和多線程編程技術,加以多種硬件和軟件抗干擾措施,有效保證了裝置的可靠性和實用性。
關鍵詞:噴霧閥;系統設計;控制;多線程;抗干擾
前言
在船舶動力工程設計中,有一個重要的裝置,即油的噴霧閥,其性能的好壞直接影響著柴油發電機的發電效率和性能。本文在廣泛分析噴霧閥噴吹過程的基礎上,設計了噴霧閥性能監測裝置。該裝置借助壓力變送器、加速度變送器等,通過計算機采集噴霧閥出口的壓力、氣包壓力、標靶加速度信號,能實時在線評估噴霧閥的性能品質,適應各種不同結構與尺寸的噴霧閥監測需求。
監測的狀態量主要有:
噴霧閥出口的壓力波形及其上升速率();噴吹令標靶產生的加速度波形 ;穩壓氣包內壓力變化波形;噴吹氣量(△Q);電噴霧時間(te)。
監測原理及監測過程的實現
空壓機為穩壓氣包提供壓縮空氣,通過調壓閥調節至需要壓力,由計算機向噴霧閥發出開啟指令噴霧噴吹(延時設定時間關閉,電噴霧時間可調),在計算機向噴霧閥發送開啟指令的同時啟動采樣程序,采集氣包壓力、噴霧閥出口的壓力(全壓)、標靶加速度信號,并將采樣數據存入計算機,對采樣數據進行處理分析,實時在線繪制噴霧閥出口壓力、穩壓氣包內壓力變化及標靶加速度波形圖。通過分析以上圖形,可評估噴霧閥性能品質的優劣。裝置的主要功能如下:
1)信號采集功能:主要完成包括噴霧閥出口的壓力、氣包壓力、標靶加速度信號等在內的實時采集,且采樣頻率可調;
2)屏幕顯示功能:以曲線和數字方式分別顯示各通道數據趨勢曲線以及分析后的數據和譜線數據;
3)存儲和回放功能:完成采集數據和分析數據的存儲、回放分析、信號分離并進行數據的時域和頻域分析;
4)噴霧閥性能評定功能:通過對輸入標定數據的分段擬合進行數據修正。
系統配置
為滿足檢測裝置對控制系統的設計要求,我們選用了Advantech的IPC-610P型工業控制計算機(PCA6180主板、256MSDRAM、PIII 1GH CPU)作為主控制器,完成人機交互、實時數據采集、分析、存貯、圖形繪制與打印等任務;WP系列的一體化(傳感器和變送器合二為一)壓力變送器、CA-GT系列的一體化加速度變送器分別變送氣包壓力、噴霧閥出口壓力和標靶加速度電信號;高性能、高采集速率的數據采集板卡PCL-818HD用來采集三個變送器的標準電信號,同時,由于要在電磁閥開啟的同時啟動采樣線程,選用三菱PCL協助主控制器來控制電磁閥的開啟、延時、關閉等動作,其驅動由繼電器輸出板卡PCL-725來完成。
PCL-818HD 能保證在所有增益(x 1, 2, 4 或 8, 可編程)和輸入范圍內都有 100kHz 采樣速率和轉換速度。它有一個 1 K 的 FIFO(先進先出)緩沖器以獲得更快的數據傳輸和 Windows 下更好的性能。這正是本系統選用該板卡的重要依據。同時為提高信號的抗共模干擾的能力,本系統采用差分模擬量輸入方式。
為了提高整個控制系統的抗干擾能力,選用繼電器隔離的數字輸入輸出板卡PCL-725,其板上的八個 SPDT 繼電器非常適合本系統電磁閥的開/關控制。每個繼電器旁邊的紅色 LED 用來顯示繼電器的開/關狀態。
模擬量輸出板卡PCL-728,能輸出-10V~+10V的模擬信號,實時控制變頻器的反、正轉,PCL-728采用光隔離措施,提高系統的抗干擾能力。
為保證噴霧閥動作的可靠性及獲得噴霧閥不同開啟時間,噴霧閥的開啟延時采用日本三菱公司的FX2N系列的可編程控制器(PLC)進行控制。噴霧閥電磁閥的開啟延時由PLC內部定時器自動延時,延時時段為20ms、30ms、50ms,延時時段的選擇通過改變PLC的外部輸入點的地址來實現。系統框圖見圖1所示。
圖1 系統框圖
監測系統中幾項關鍵技術
A/D觸發方式的選擇
因為控制程序運行于Windows平臺,而Windows是一多任務、多用戶的而非實時操作系統,在高速數據采集時有可能會丟失數據,數據的丟失意味著測試數據不完整。為滿足控制系統的高速數據采集的需要,保證采集數據的連續性、完整性,采用了定時器同步觸發A/D與FIFO數據傳輸方式相結合的方法,大大提高了系統的采樣頻率和數據的可靠性,改善了在Windows環境下數據傳輸的性能。
多種應用程序的無縫連接技術
Visual C++是Windows平臺下強大的應用程序開發環境,MATLAB是一個功能強大的數值計算和結果可視化的軟件。假如將MATLAB和Visual C++結合起來,取長補短無疑是一個有效的途徑。本設計利用MATLAB Compile (編譯器),將MATLAB函數編譯成可以脫離MATLAB環境使用的C函數,在Visual C++中將此C函數編譯成動態連接庫,在Visual C++中加載這個動態連接庫,這種方法能實現兩者之間的無縫連接,僅需利用相關的MATLAB應用程序接口(API)函數編寫一個C語言的接口函數即可。
多線程的數據采集軟件設計
由于整個應用程序需要在較短的時間內完成數據采集、去噪聲、數據整理與分析、壓力數據實時圖表顯示、數據分析計算以及數據存儲與管理等任務,如果僅使用單線程模型來設計系統,就不能很好地完成數據采集和分析的任務,因此考慮采用多線程模型,利用多個線程分別完成各項任務。
本系統通過并行設計充分利用Win32 操作系統的多任務特點將不同的任務分布到各個線程中,使各個任務同步進行而互不影響。系統中的主線程負責創建用戶界面、接收消息等工作。另外,由于Win32 系統是搶先式系統,為了保證數據的采集不被其他線程中斷就要開辟一個優先級較高的線程來采集數據。同時,為保證系統硬件相關部分和硬件不相關部分的相互獨立,將采集模塊做成動態鏈接庫,采集到的數據存入內存池中,然后調用動態鏈接庫中的相應函數定時獲取內存池中的數據。由于數據的分析、存儲和性能在線評估耗時較多,且各個任務所占用的時間段不同,故將其分別置于不同的線程中,在數據采集的同時進行數據的分析存儲和各通道的巡回監視,各個線程(數據采集線程、數據分析與處理線程以及數據動態顯示線程)中所要完成的工作并行進行,線程間的通信可以通過消息響應函數PostMessage 來實現。
由于本系統是一個工業化的連續運行的實用系統,系統的可靠性非常重要,必須協調以下工作: