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