陳友文 唐波
摘要:通過(guò)分析供電設(shè)備的組成和控制流程,利用LabWindows作為仿真工具,對(duì)該設(shè)備的電源啟動(dòng)與調(diào)整、給分設(shè)備供電、設(shè)備與電源斷電等工作過(guò)程進(jìn)行仿真。完成了供電設(shè)備顯示界面和控制邏輯的設(shè)計(jì),實(shí)現(xiàn)了電源啟動(dòng)、設(shè)備供電、斷電等控制環(huán)節(jié)的仿真。論文結(jié)合實(shí)際的工作流程和相關(guān)參數(shù),對(duì)供電設(shè)備的不同功能進(jìn)行了動(dòng)態(tài)仿真,該虛擬系統(tǒng)能真實(shí)地反映供電設(shè)備的實(shí)際工作過(guò)程,結(jié)果與實(shí)際狀況很吻合,效果良好。
關(guān)鍵詞: LabWindows;虛擬操作;供電設(shè)備
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2018)13-0204-04
Implementation of Virtual Operation of Power Supply Equipment Based on LabWindows
CHEN You-wen,TANG Bo
(College of Electronic Science, National University of Defense Technology, Changsha 410073, China)
Abstract: By analyzing the composition and control flow of the power supply equipment, LabWindows is used as a simulation tool to simulate the work process of starting and adjusting the power supply of the equipment, supplying power to the sub-equipment and power-off of the equipment. The display interface and the control logic of the power supply equipment were designed and the simulations of the power control, power supply, power off units were realized. The dynamic simulation of different functions of the power supply equipment were carried out by combining the actual work flow and related parameters. The virtual system can truly reflect the actual working process of the power supply equipment. The results are in good agreement with the actual conditions.
Key words:LabWindows; virtual operation; power supply equipment
1 引言
在傳統(tǒng)的設(shè)備操作訓(xùn)練中,操作員直接在實(shí)際設(shè)備上進(jìn)行操作,往往存在場(chǎng)地受限、訓(xùn)練成本高、設(shè)備磨損老化嚴(yán)重、安全風(fēng)險(xiǎn)高等一系列弊端。近年來(lái),計(jì)算機(jī)仿真技術(shù)高速發(fā)展,虛擬設(shè)備操作訓(xùn)練系統(tǒng)解決了傳統(tǒng)訓(xùn)練手段的缺點(diǎn),成為設(shè)備操作訓(xùn)練的首選。虛擬設(shè)備操作訓(xùn)練是指以培訓(xùn)設(shè)備使用者掌握設(shè)備操作流程為目的的虛擬操作,虛擬操作是實(shí)際操作過(guò)程在虛擬環(huán)境下的再現(xiàn)或預(yù)演[1],具有安全性高、訓(xùn)練質(zhì)量高、不受時(shí)空限制、節(jié)省實(shí)際開(kāi)支等優(yōu)點(diǎn)[2]。
目前,常用的虛擬儀器軟件平臺(tái)有NI公司的LabView和LabWindows。LabWindows作為一個(gè)優(yōu)秀的軟件開(kāi)發(fā)平臺(tái),采用C語(yǔ)言編寫(xiě)代碼實(shí)現(xiàn)其對(duì)虛擬儀器的控制,與LabView相比,具有交互式程序開(kāi)發(fā)、功能強(qiáng)大的函數(shù)庫(kù)和開(kāi)放式框架結(jié)構(gòu)等特點(diǎn)[3],能夠靈活設(shè)置工作流程和故障現(xiàn)象,更適合以操作訓(xùn)練為目的的虛擬儀器應(yīng)用。因此,本文選用LabWindows來(lái)實(shí)現(xiàn)對(duì)供電設(shè)備的虛擬操作訓(xùn)練。
2 供電設(shè)備的控制流程介紹
設(shè)備的使用操作都有嚴(yán)格的先后順序,錯(cuò)誤操作有可能導(dǎo)致裝備損壞。因此,要進(jìn)行供電設(shè)備的虛擬操作,必須先掌握其控制流程,即操作流程。
2.1 供電設(shè)備的組成
本文研究的供電設(shè)備由底板、儀表、按鈕、旋鈕、開(kāi)關(guān)和指示燈組成,是大型系統(tǒng)的電源供給模塊,承擔(dān)著為四個(gè)分設(shè)備供電的任務(wù)。供電設(shè)備主要實(shí)現(xiàn)控制和指示功能,如圖1所示。
2.2 供電設(shè)備的控制流程
供電設(shè)備的控制流程包括電源啟動(dòng)與調(diào)整、給分設(shè)備供電和設(shè)備與電源斷電三個(gè)子流程。
2.2.1 電源啟動(dòng)與調(diào)整控制流程
電源啟動(dòng)與調(diào)整控制流程:
Step1:按下“電源啟動(dòng)”按鈕?!半娫磫?dòng)”按鈕自帶指示燈亮,同時(shí)“電源電壓”表顯示此時(shí)電源電壓;
Step2:判斷電源電壓是否滿足要求(30V)。如果滿足要求,說(shuō)明電源啟動(dòng)好,如果不滿足要求,進(jìn)行下一步;
Step3:旋轉(zhuǎn)“電壓調(diào)節(jié)旋鈕”。順時(shí)針旋轉(zhuǎn)為增大電壓,逆時(shí)針旋轉(zhuǎn)為減小電壓,同時(shí)電源電壓表實(shí)時(shí)顯示電壓值,轉(zhuǎn)到Step2,直到電壓滿足要求。
其流程圖如圖2所示。
2.2.2 給分設(shè)備供電控制流程
給分設(shè)備供電控制流程:
Step1:接通“供設(shè)備A”開(kāi)關(guān)。“A燈”指示燈亮,同時(shí)“消耗電流”表顯示設(shè)備A的消耗電流(5A);
Step2:接通“供設(shè)備B”開(kāi)關(guān)?!癇燈”指示燈亮,同時(shí)消耗電流表顯示設(shè)備A和設(shè)備B的總消耗電流(10A);
Step3:接通“供設(shè)備C”開(kāi)關(guān)?!癈燈”指示燈亮,同時(shí)消耗電流表顯示設(shè)備A、B、C的總消耗電流(設(shè)備C在啟動(dòng)瞬間消耗電流較大,總消耗電流18A,隨著設(shè)備C運(yùn)轉(zhuǎn)趨于穩(wěn)定,消耗電流也逐漸減小,最后穩(wěn)定在14A);
Step4:接通“供設(shè)備D”開(kāi)關(guān)?!癉燈”和“設(shè)備供電好”指示燈亮,同時(shí)消耗電流表顯示四臺(tái)設(shè)備總的消耗電流(20A)。
其流程圖如圖3所示。
從給分設(shè)備供電控制流程圖可以看出,給設(shè)備供電是有先后順序的,在實(shí)際的操作過(guò)程中,如果不按正常順序供電,有可能損壞裝備甚至造成人員傷亡。
2.2.3 設(shè)備與電源斷電控制流程
設(shè)備與電源斷電控制流程是給設(shè)備供電和電源啟動(dòng)控制流程的逆過(guò)程,按照設(shè)備D、C、B、A和電源停止的順序進(jìn)行斷電操作。
3 供電設(shè)備虛擬操作界面構(gòu)造
面板和控件是虛擬儀器的重要組成部分。在LabWindows 系統(tǒng)具有可視化的用戶界面(GUI),且控件類型、型號(hào)齊備,可以可視化創(chuàng)建并編輯用戶界面[3]。
下面以面板的構(gòu)造為例,說(shuō)明利用LabWindows 構(gòu)造虛擬操作界面過(guò)程。
打開(kāi)軟件LabWindows 新建工程窗口后,在工程窗口中創(chuàng)建一個(gè)用戶界面文件,系統(tǒng)會(huì)自動(dòng)建立一個(gè)儀器面板,雙擊儀器面板可以打開(kāi)儀器面板屬性設(shè)置窗口,如圖4所示。
其中Constant Name完成面板名稱的設(shè)置,字母必須大寫(xiě),該名稱是源程序訪問(wèn)該面板的標(biāo)志,也可以稱之為該面板的ID;Callback Function完成回調(diào)函數(shù)名稱的設(shè)置,添加回調(diào)函數(shù)名稱后,在生成代碼時(shí)會(huì)自動(dòng)產(chǎn)生回調(diào)函數(shù)框架,操作響應(yīng)都是通過(guò)在回調(diào)函數(shù)中添加程序代碼實(shí)現(xiàn);Panel Title完成面板標(biāo)題的設(shè)置,在這設(shè)置為“供電設(shè)備”。
儀表、按鈕、指示燈等控件可以直接利用LabWindows 系統(tǒng)中控件創(chuàng)建。最后構(gòu)造的供電設(shè)備虛擬操作界面如圖5所示。
4 供電設(shè)備控制邏輯的實(shí)現(xiàn)
與供電設(shè)備控制流程相對(duì)應(yīng),下面分三個(gè)子流程介紹控制邏輯的實(shí)現(xiàn)。
4.1 電源啟動(dòng)與調(diào)整控制邏輯實(shí)現(xiàn)
電源啟動(dòng)與調(diào)整控制邏輯參見(jiàn)2.2.1節(jié)電源啟動(dòng)與調(diào)整控制流程。
4.1.1 電源啟動(dòng)控制邏輯的實(shí)現(xiàn)
電源啟動(dòng)控制邏輯是通過(guò)向 “電源啟動(dòng)”按鈕的回調(diào)函數(shù)CVICALLBACK DYQD中添加如下代碼實(shí)現(xiàn):GetCtrlVal(panelHandle,PANEL_DYQDAN,&value;);if(value==1) SetCtrlVal(panelHandle,PANEL_DYDYB,30.0);if(value==0) SetCtrlVal(panelHandle,PANEL_DYQDAN,1);
通過(guò)GetCtrlVal(panelHandle,PANEL_DYQDAN,&value;)語(yǔ)句得到控件“電源啟動(dòng)”按鈕的值,并把值賦給變量value。value值為1,通過(guò)SetCtrlVal(panelHandle,PANEL_DYDYB,30.0)語(yǔ)句給控件“電源電壓”表賦值30.0;value值為0,說(shuō)明“電源啟動(dòng)”按鈕之前已經(jīng)按下,通過(guò)SetCtrlVal(panelHandle,PANEL_DYQDAN,1) 語(yǔ)句將“電源啟動(dòng)”按鈕值賦1,用來(lái)仿真實(shí)際按鈕自保狀態(tài)。
4.1.2 電源電壓調(diào)整控制邏輯的實(shí)現(xiàn)
電源電壓調(diào)整控制邏輯是通過(guò)向回調(diào)函數(shù)CVICALLBACK DYTZXN中添加如下代碼實(shí)現(xiàn):GetCtrlVal(panelHandle,PANEL_DYQDAN,&value;); if(value==1)
{ GetCtrlVal(panelHandle,PANEL_DYDYB,&i;);
GetCtrlVal(panelHandle,PANEL_DYTZXN,&j;); SetCtrlVal(panelHandle,PANEL_DYDYB,i +j); }
當(dāng)旋轉(zhuǎn)“電壓調(diào)整旋鈕”時(shí),通過(guò)GetCtrlVal子函數(shù)將“電源啟動(dòng)”按鈕的值賦給變量value。當(dāng)value值為1(只有當(dāng)value的值為1時(shí),“電源電壓”表才有指示,“電壓調(diào)整旋鈕”才起作用,這與真實(shí)設(shè)備操作邏輯相符),通過(guò)GetCtrlVal函數(shù)將“電源電壓”表和“電壓調(diào)節(jié)旋鈕”的值分別賦給i和j,再通過(guò)SetCtrlVal函數(shù)更新“電源電壓”表的值為i+j。
4.2 電源啟動(dòng)與調(diào)整控制邏輯實(shí)現(xiàn)
供電控制邏輯參見(jiàn)2.2.2節(jié)給設(shè)備供電控制流程。
設(shè)備A是第一個(gè)供電,而設(shè)備C有一個(gè)穩(wěn)定過(guò)程,消耗電流實(shí)時(shí)變化,所以就以設(shè)備A和設(shè)備C供電為例,說(shuō)明供電控制邏輯的實(shí)現(xiàn)。
4.2.1 給設(shè)備A供電控制邏輯的實(shí)現(xiàn)
給設(shè)備A供電控制邏輯是通過(guò) 向回調(diào)函數(shù)CVICALLBACK JTA中添加如下代碼實(shí)現(xiàn):GetCtrlVal(panelHandle,PANEL_DYQDAN,&value;); if(value==1)
{ GetCtrlVal(panelHandle,PANEL_GSBA,&x;); if(x==1) { SetCtrlVal(panelHandle,PANEL_XHDLB,5.0); SetCtrlVal(panelHandle,PANEL_LED_A,1); } if(x==0) { SetCtrlVal(panelHandle,PANEL_XHDLB,0.0); SetCtrlVal(panelHandle,PANEL_LED_A,0); }} if(value==0) MessagePopup("警告","請(qǐng)先啟動(dòng)電源");
當(dāng)操作“供設(shè)備A”開(kāi)關(guān)時(shí),先通過(guò)GetCtrlVal子函數(shù)將“電源啟動(dòng)”按鈕的值賦給value。如果value值為1(即電源已經(jīng)啟動(dòng),這時(shí)操作“供設(shè)備A”開(kāi)關(guān)才有響應(yīng)),通過(guò)GetCtrlVal子函數(shù)將“供設(shè)備A”開(kāi)關(guān)的值賦給x。x值為1時(shí),通過(guò)SetCtrlVal子函數(shù)將“消耗電流”表和“A燈”的值分別設(shè)置為5.0和1;x值為0時(shí),通過(guò)SetCtrlVal子函數(shù)將 “消耗電流”表和“A燈”的值分別設(shè)置為0.0和0。
若value值為0(即電源沒(méi)有啟動(dòng)),可以通過(guò)MessagePopup函數(shù)彈出一個(gè)消息對(duì)話框,提示給設(shè)備A 供電前應(yīng)該先啟動(dòng)電源,體現(xiàn)虛擬設(shè)備仿真操作的優(yōu)點(diǎn)。
4.2.2 給設(shè)備C供電控制邏輯的實(shí)現(xiàn)
給設(shè)備C供電控制邏輯是通過(guò) 向回調(diào)函數(shù)CVICALLBACK JTC中添加如下代碼實(shí)現(xiàn):GetCtrlVal(panelHandle,PANEL_GSBB,&x;); if(x==1) { GetCtrlVal(panelHandle,PANEL_GSBC,&y;); if(y==1) { SetCtrlVal(panelHandle,PANEL_XHDLB,18.0); SetCtrlVal(panelHandle,PANEL_LED_C,1); for(i=1;i<=100;i++){SetCtrlVal(panelHandle,PANEL_XHDLB,18.0-i/25); Delay(0.1); } } if(y==0) { SetCtrlVal(panelHandle,PANEL_XHDLB,10.0); SetCtrlVal(panelHandle,PANEL_LED_C,0); } }
當(dāng)操作“供設(shè)備C”開(kāi)關(guān)時(shí),先通過(guò)GetCtrlVal子函數(shù)將“供設(shè)備B”開(kāi)關(guān)的值賦給x。x值為1(即“供設(shè)備B”開(kāi)關(guān)已經(jīng)接通)時(shí),通過(guò)GetCtrlVal子函數(shù)將“供設(shè)備C”開(kāi)關(guān)的值賦給y。y值為1時(shí),通過(guò)SetCtrlVal子函數(shù)將“消耗電流”表和“C燈”的值分別設(shè)置為18.0和1,同時(shí),通過(guò)一個(gè)for循環(huán)模擬“消耗電流”逐漸減小的過(guò)程;y值為0時(shí),通過(guò)SetCtrlVal子函數(shù)將 “消耗電流”表和“C燈”的值分別設(shè)置為10.0和0。
4.3 設(shè)備與電源斷電控制邏輯的實(shí)現(xiàn)
設(shè)備與電源斷電控制邏輯參見(jiàn)1.2.3節(jié)設(shè)備與電源斷電控制流程。設(shè)備斷電是設(shè)備供電的逆過(guò)程,其控制邏輯的在設(shè)備供電的回調(diào)函數(shù)中已經(jīng)實(shí)現(xiàn)。電源斷電是通過(guò)按下“電源停止”按鈕實(shí)現(xiàn),其控制邏輯是通過(guò)“電源停止”按鈕的回調(diào)函數(shù)CVICALLBACK DYTZ,直接設(shè)置“電源啟動(dòng)”按鈕、“電源電壓”表和“電源停止”按鈕的值為0。
為了防止在設(shè)備沒(méi)有斷電的情況下直接按下“電源停止”按鈕,利用ConfirmPopup函數(shù)可以彈出一個(gè)即時(shí)的消息對(duì)話框,詢問(wèn)操作者是否已經(jīng)給所有設(shè)備斷電。
4.4 仿真結(jié)果
完成所有回調(diào)函數(shù)代碼編寫(xiě)之后,運(yùn)行程序,在彈出的虛擬操作界面上,按照操作流程進(jìn)行操作,操作響應(yīng)邏輯與真實(shí)響應(yīng)一致,達(dá)到預(yù)期目的。接通“供設(shè)備A”開(kāi)關(guān)和按下“電源停止”按鈕時(shí)的操作響應(yīng)如圖6所示。
5 結(jié)論
文中結(jié)合實(shí)際裝備的工作流程和相關(guān)參數(shù),運(yùn)用LabWindows 軟件對(duì)某供電設(shè)備進(jìn)行了操作面板的構(gòu)造和操作流程的虛擬仿真,仿真結(jié)果表明,該仿真設(shè)備能比較真實(shí)的反映供電設(shè)備的實(shí)際工作過(guò)程,同時(shí)還能加入提示信息,方便進(jìn)行故障設(shè)置,提高訓(xùn)練效果。
參考文獻(xiàn):
[1] 賈晨星,朱元昌,邸彥強(qiáng).裝備虛擬操作訓(xùn)練的過(guò)程建模方法研究[J].計(jì)算機(jī)測(cè)量與控制,2011(12):3102-3104.
[2] 吳西貴.虛擬設(shè)備操作訓(xùn)練系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].武漢:華中科技大學(xué),2015.
[3] 孫曉云,孫會(huì)琴,郭立偉,等.基于LabWindows的虛擬儀器設(shè)計(jì)與應(yīng)用[M].2版.北京:電子工業(yè)出版社,2010:4-5,26.