基于LabWindows的供电设备虚拟操作实现

2018-07-20 01:40陈友文唐波
电脑知识与技术 2018年13期

陈友文 唐波

摘要:通过分析供电设备的组成和控制流程,利用LabWindows作为仿真工具,对该设备的电源启动与调整、给分设备供电、设备与电源断电等工作过程进行仿真。完成了供电设备显示界面和控制逻辑的设计,实现了电源启动、设备供电、断电等控制环节的仿真。论文结合实际的工作流程和相关参数,对供电设备的不同功能进行了动态仿真,该虚拟系统能真实地反映供电设备的实际工作过程,结果与实际状况很吻合,效果良好。

关键词: LabWindows;虚拟操作;供电设备

中图分类号:TP311 文献标识码: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 引言

在傳统的设备操作训练中,操作员直接在实际设备上进行操作,往往存在场地受限、训练成本高、设备磨损老化严重、安全风险高等一系列弊端。近年来,计算机仿真技术高速发展,虚拟设备操作训练系统解决了传统训练手段的缺点,成为设备操作训练的首选。虚拟设备操作训练是指以培训设备使用者掌握设备操作流程为目的的虚拟操作,虚拟操作是实际操作过程在虚拟环境下的再现或预演[1],具有安全性高、训练质量高、不受时空限制、节省实际开支等优点[2]。

目前,常用的虚拟仪器软件平台有NI公司的LabView和LabWindows。LabWindows作为一个优秀的软件开发平台,采用C语言编写代码实现其对虚拟仪器的控制,与LabView相比,具有交互式程序开发、功能强大的函数库和开放式框架结构等特点[3],能够灵活设置工作流程和故障现象,更适合以操作训练为目的的虚拟仪器应用。因此,本文选用LabWindows来实现对供电设备的虚拟操作训练。

2 供电设备的控制流程介绍

设备的使用操作都有严格的先后顺序,错误操作有可能导致装备损坏。因此,要进行供电设备的虚拟操作,必须先掌握其控制流程,即操作流程。

2.1 供电设备的组成

本文研究的供电设备由底板、仪表、按钮、旋钮、开关和指示灯组成,是大型系统的电源供给模块,承担着为四个分设备供电的任务。供电设备主要实现控制和指示功能,如图1所示。

2.2 供电设备的控制流程

供电设备的控制流程包括电源启动与调整、给分设备供电和设备与电源断电三个子流程。

2.2.1 电源启动与调整控制流程

电源启动与调整控制流程:

Step1:按下“电源启动”按钮。“电源启动”按钮自带指示灯亮,同时“电源电压”表显示此时电源电压;

Step2:判断电源电压是否满足要求(30V)。如果满足要求,说明电源启动好,如果不满足要求,进行下一步;

Step3:旋转“电压调节旋钮”。顺时针旋转为增大电压,逆时针旋转为减小电压,同时电源电压表实时显示电压值,转到Step2,直到电压满足要求。

其流程图如图2所示。

2.2.2 给分设备供电控制流程

给分设备供电控制流程:

Step1:接通“供设备A”开关。“A灯”指示灯亮,同时“消耗电流”表显示设备A的消耗电流(5A);

Step2:接通“供设备B”开关。“B灯”指示灯亮,同时消耗电流表显示设备A和设备B的总消耗电流(10A);

Step3:接通“供设备C”开关。“C灯”指示灯亮,同时消耗电流表显示设备A、B、C的总消耗电流(设备C在启动瞬间消耗电流较大,总消耗电流18A,随着设备C运转趋于稳定,消耗电流也逐渐减小,最后稳定在14A);

Step4:接通“供设备D”开关。“D灯”和“设备供电好”指示灯亮,同时消耗电流表显示四台设备总的消耗电流(20A)。

其流程图如图3所示。

从给分设备供电控制流程图可以看出,给设备供电是有先后顺序的,在实际的操作过程中,如果不按正常顺序供电,有可能损坏装备甚至造成人员伤亡。

2.2.3 设备与电源断电控制流程

设备与电源断电控制流程是给设备供电和电源启动控制流程的逆过程,按照设备D、C、B、A和电源停止的顺序进行断电操作。

3 供电设备虚拟操作界面构造

面板和控件是虚拟仪器的重要组成部分。在LabWindows 系统具有可视化的用户界面(GUI),且控件类型、型号齐备,可以可视化创建并编辑用户界面[3]。

下面以面板的构造为例,说明利用LabWindows 构造虚拟操作界面过程。

打开软件LabWindows 新建工程窗口后,在工程窗口中创建一个用户界面文件,系统会自动建立一个仪器面板,雙击仪器面板可以打开仪器面板属性设置窗口,如图4所示。

其中Constant Name完成面板名称的设置,字母必须大写,该名称是源程序访问该面板的标志,也可以称之为该面板的ID;Callback Function完成回调函数名称的设置,添加回调函数名称后,在生成代码时会自动产生回调函数框架,操作响应都是通过在回调函数中添加程序代码实现;Panel Title完成面板标题的设置,在这设置为“供电设备”。

仪表、按钮、指示灯等控件可以直接利用LabWindows 系统中控件创建。最后构造的供电设备虚拟操作界面如图5所示。

4 供电设备控制逻辑的实现

与供电设备控制流程相对应,下面分三个子流程介绍控制逻辑的实现。

4.1 电源启动与调整控制逻辑实现

电源启动与调整控制逻辑参见2.2.1节电源启动与调整控制流程。

4.1.1 电源启动控制逻辑的实现

电源启动控制逻辑是通过向 “电源启动”按钮的回调函数CVICALLBACK DYQD中添加如下代码实现: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,说明“电源启动”按钮之前已经按下,通过SetCtrlVal(panelHandle,PANEL_DYQDAN,1) 语句将“电源启动”按钮值赋1,用来仿真实际按钮自保状态。

4.1.2 电源电压调整控制逻辑的实现

电源电压调整控制逻辑是通过向回调函数CVICALLBACK DYTZXN中添加如下代码实现:GetCtrlVal(panelHandle,PANEL_DYQDAN,&value;); if(value==1)

{ GetCtrlVal(panelHandle,PANEL_DYDYB,&i;);

GetCtrlVal(panelHandle,PANEL_DYTZXN,&j;); SetCtrlVal(panelHandle,PANEL_DYDYB,i +j); }

当旋转“电压调整旋钮”时,通过GetCtrlVal子函数将“电源启动”按钮的值赋给变量value。当value值为1(只有当value的值为1时,“电源电压”表才有指示,“电压调整旋钮”才起作用,这与真实设备操作逻辑相符),通过GetCtrlVal函数将“电源电压”表和“电压调节旋钮”的值分别赋给i和j,再通过SetCtrlVal函数更新“电源电压”表的值为i+j。

4.2 电源启动与调整控制逻辑实现

供电控制逻辑参见2.2.2节给设备供电控制流程。

设备A是第一个供电,而设备C有一个稳定过程,消耗电流实时变化,所以就以设备A和设备C供电为例,说明供电控制逻辑的实现。

4.2.1 给设备A供电控制逻辑的实现

给设备A供电控制逻辑是通过 向回调函数CVICALLBACK JTA中添加如下代码实现: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("警告","请先启动电源");

当操作“供设备A”开关时,先通过GetCtrlVal子函数将“电源启动”按钮的值赋给value。如果value值为1(即电源已经启动,这时操作“供设备A”开关才有响应),通过GetCtrlVal子函数将“供设备A”开关的值赋给x。x值为1时,通过SetCtrlVal子函数将“消耗电流”表和“A灯”的值分别设置为5.0和1;x值为0时,通过SetCtrlVal子函数将 “消耗电流”表和“A灯”的值分别设置为0.0和0。

若value值为0(即电源没有启动),可以通过MessagePopup函数弹出一个消息对话框,提示给设备A 供电前应该先启动电源,体现虚拟设备仿真操作的优点。

4.2.2 给设备C供电控制逻辑的实现

给设备C供电控制逻辑是通过 向回调函数CVICALLBACK JTC中添加如下代码实现: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); } }

当操作“供设备C”开关时,先通过GetCtrlVal子函数将“供设备B”开关的值赋给x。x值为1(即“供设备B”开关已经接通)时,通过GetCtrlVal子函数将“供设备C”开关的值赋给y。y值为1时,通过SetCtrlVal子函数将“消耗电流”表和“C灯”的值分别设置为18.0和1,同时,通过一个for循环模拟“消耗电流”逐渐减小的过程;y值为0时,通过SetCtrlVal子函数将 “消耗电流”表和“C灯”的值分别设置为10.0和0。

4.3 设备与电源断电控制逻辑的实现

设备与电源断电控制逻辑参见1.2.3节设备与电源断电控制流程。设备断电是设备供电的逆过程,其控制逻辑的在设备供电的回调函数中已经实现。电源断电是通过按下“电源停止”按鈕实现,其控制逻辑是通过“电源停止”按钮的回调函数CVICALLBACK DYTZ,直接设置“电源启动”按钮、“电源电压”表和“电源停止”按钮的值为0。

为了防止在设备没有断电的情况下直接按下“电源停止”按钮,利用ConfirmPopup函数可以弹出一个即时的消息对话框,询问操作者是否已经给所有设备断电。

4.4 仿真结果

完成所有回调函数代码编写之后,运行程序,在弹出的虚拟操作界面上,按照操作流程进行操作,操作响应逻辑与真实响应一致,达到预期目的。接通“供设备A”开关和按下“电源停止”按钮时的操作响应如图6所示。

5 结论

文中结合实际装备的工作流程和相关参数,运用LabWindows 软件对某供电设备进行了操作面板的构造和操作流程的虚拟仿真,仿真结果表明,该仿真设备能比较真实的反映供电设备的实际工作过程,同时还能加入提示信息,方便进行故障设置,提高训练效果。

参考文献:

[1] 贾晨星,朱元昌,邸彦强.装备虚拟操作训练的过程建模方法研究[J].计算机测量与控制,2011(12):3102-3104.

[2] 吴西贵.虚拟设备操作训练系统的设计与实现[D].武汉:华中科技大学,2015.

[3] 孙晓云,孙会琴,郭立伟,等.基于LabWindows的虚拟仪器设计与应用[M].2版.北京:电子工业出版社,2010:4-5,26.