基于LabVIEW DSC的监控软件的应用研究
扫描二维码
随时随地手机看文章
1 引言
目前用于监测功能的装置大部分是通过商业组态软件(如Fix、组态王等)来实现,其在功能上存在一定的缺陷:商业组态软件尽管能设计出友好的人机界面,但它是按照安装的节点及I/O的点数来计费,所以对于中小型系统而言,性价比就会比较低。相对的,LabVIEW具有人机界面友好,功能强大,维护简便等优点。鉴于上述原因,本文提出了在上位机中采用LabVIEW作为控制系统的测控软件,实现过程控制的监控功能,以取代上位监控组态软件。下面做一下简单的介绍。
LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是实验室虚拟仪器集成开发平台的简称,它是目前国际上应用最广泛的虚拟仪器开发环境之一。LabVIEW的最大特色是采用编译型图形化编程语言-G语言(Graph Programming),它与C、Pascal、Basic等传统语言有着相似之处,如:相似的数据类型、数据流控制结构、程序调试工具,以及模块化的编程特点。但二者最大的区别在于:传统编程语言用文本语言编程,程序的执行依赖于文本所描述的指令;而LabVIEW使用图形语言(即各种图标、图形、符号、连线等)以框图的形式编写程序。用LabVIEW编程无需具备太多编程经验,因为LabVIEW使用的都是测试工程师们熟悉的术语和图标,如各种按钮、开关、波形图等,界面非常直观形象 [1]。然而,用LabVIEW
2
监控软件一般应实现的基本监控功能包括:数据采集与数据处理功能、系统故障诊断和事故报警功能、图形组态功能、实时与历史数据曲线显示功能、报表打印功能和友好的人机界面[4]。
2.1数据采集及存储
在现场总线控制系统中,对于过程控制来说,很重要的内容就是对实时采集的数据进行显示和查询以及报表分析,这就涉及到数据采集及存储的问题。“数据采集”是指将温度、压力、流量等模拟量采集、转换成数字量以后,再由计算机进行存储、处理、显示或者打印的过程。所以用LabVIEW实现实时的数据采集功能是设计研究的关键部分。运用“LabVIEW+DSC”相结合的设计方法,软件体系结构图如图1所示:
图1 “LabVIEW+DSC”的软件体系结构图
2.1.1
为提高系统的开放性,选用了“LabVIEW+OPC”的设计方法。就是用LabVIEW作为上位机监控软件,采用先进的网络通信技术——DataSocket技术,通过OPC服务器接口来实现现场数据共享。这里采用的OPC服务器是Matrikon公司研发的,它作为一中间桥梁,实现了监控软件LabVIEW和现场智能组件之间的数据通信,通过OPC配置项建立与底层设备的数据采集点的一一对应关系。如下图所示:
图2
其中项名Name是用户自己定义的对应于现场的数据采集点,Item Path必须符合OPC服务器与MODBUS协议的语法要求,即“[port].Device.0~4:”,同时设置该项是读数据还是写数据以及数据的类型、更新时间等等[5]。
2.1.2 实时数据库
LabVIEW访问OPC的方法有很多种,本文采用的是通过DSC模块中Tag Configuration Editor引擎,建立LabVIEW和OPC服务器的连接。DSC模块使用Tag连接OPC数据项,通过Tag Configuration Editor ,可以将DSC的Tag与OPC数据项对应起来,生成.scf文件,相当于LabVIEW的实时数据库,如图3所示。
图3 .scf文件
在Analog Tag Configuration 的Connect目录下的Item与OPC服务器的项名进行匹配,并对Tag进行了详细的描述,如OPC服务器,工程量的范围,报警的上下限,更新的死区等等[3]。在运行时,标签引擎Tag Engine 会根据.scf文件的配置建立与OPC服务器的连接。当OPC服务器与.scf文件配置好以后,可以在LabVIEW的前面板上通过Numeric Control,Numeric Indicator控件读写现场采集的数据,Numeric Control,Numeric Indicator控件通过人机向导HMI Wizard for Analog Control与.scf文件Tag进行匹配,并自动默认控件的Lable为与之对应的OPC配置所对应的项名。
DSC模块的成功运用,使得界面之间的切换更加友好化;并成功解决了数据更新速度慢、界面之间切换慢的问题,保证了控制的实时性和可靠性等要求。
2.1.3 报表生成
现场采集来的数据可以以报表的形式输出到Execl表格中,以供存储与浏览。然而,LabVIEW本身没有强大的实时数据库,只有通过DSC模块生成的.scf文件来记录数据并存入历史数据库,但是它是根据记录死区log Deadband所定义的偏差来记录数据的,而不是根据时间记录的,只有当数据的变化超出偏差时才记录,因此,会导致在生成报表时数据和时间不对应。鉴于上述原因,一般通过编程来实现会比较好。
编程如下:先将要求记录的标签Tag的值按照时间间隔(如1小时)写入一个表(如控件Table),然后再根据要求记录的数据个数(如24个)将Table的记录数据写入Excel中,并将Table清空。这种方法只要求用户定义报表输出周期和数据输出的周期即可。例如:要求每小时记录一个数据,每天生成一个报表,就可以只设定数据输出的周期1小时,数据的个数24个即可。到目前为止,此种方法在现场控制中应用效果非常好。尤其在编程过程中,调用了LabVIEW中的两个子VI:Generate Unique Filename.vi(用来指示报表的路径及时间)和Array to HTML Table.vi(用于生成报表的格式),使得流程图的编译更简单、简洁,并增加了软件的可复用性。
图4 数据存储及报表生成
2.2实时与历史曲线显示
趋势曲线能够形象清楚地描绘出现场数据在一段时间内的分布趋势,通过趋势图,操作员可以根据各个现场数据采集点的数据的变化趋势看出各个量的变化情况,而且能查看任何历史时刻的数据,供现场操作人员作出适当的处理。
在实现实时曲线时,调用了DSC模块提供的Trend Tags.vi,该子VI的输入为标签(Tag)和时间长度,可以通过编程来实现X轴、Y轴显示的数据范围的大小;实现历史曲线时,调用DSC模块提供的Read Treace.vi,通过Historical Trend控件可以查看任意历史时刻的现场采集的数据,通过选择不同的现场采集点,X轴、Y轴的量程范围也随之变化。值得注意的是,历史曲线只有在数据变化超过所设定的偏差时,才显示曲线的趋势图。
2.3报警显示与故障处理
监控软件一般都提供了报警系统,报警系统可用于生成、显示、存储报警信息,并将报警信息发送到网络上的任意节点,或监控主机相连的打印机、磁盘文件、报警概要显示、报警历史窗口以及多媒体报警系统,按故障发生时间任意排序、登记在数据库中,并在计算机上显示出来。
本文是采用DSC模块提供了报警事件显示Alarm Event Display控件,实现有关的现场报警及各种应用报警的显示。它可以用来对现场的事件报警信息进行显示,包括产生报警现场测量点,报警的时间,报警的优先级及报警的原因等等,产生报警以后需要对此信息进行确认,确认后在报警信息栏会显示报警确认的时间和确认者;未响应的故障持续发出声光报警,并用红色进行闪烁指示。
2.4人机交互与用户安全权限
LabVIEW提供了丰富的前面板控件,如数据连接,按钮、表格、曲线等,甚至还有专门的装饰控件,并且DSC模块的Image Navigator也包含了各种各样的图标(Symbols),可以满足用户的各种要求,同时也可以在前面板上粘贴.Bmp和.JPEG格式的图片,完全能够实现监控软件的流程画面设计,使人机界面更友好[6]。
再者,为了保证正常生产监控的需要,防止误操作造成生产停顿和大的经济损失,要明确操作人员的职责范围,防止操作人员的越权操作。因此,可以通过设置以安全级别为基础的各种用户,在应用程序层面对操作员的操作权限进行控制,禁止越权操作。
DSC模块提供了NI User Account Manager,可编辑各个安全级别不同的用户。在运行DSC Run-Time System时,调用Invoke Login Dialog.vi让用户注册,前面板可控制的控件提供安全属性设置,定义某些用户可以控制及其具有的操作权限。这样,每个控件仅允许预先定义的用户进行操作,用户要实现对控件的控制,则需要先用相应的权限进行注册。本监控软件设定了三个用户级别:
(1)工程师级:能修改系统组态的各种参数,能清除记录文件的内容。
(2)操作员级:能修改部分参数和进行远程标定。
(3)一般级:仅能查看画面和数据,不能做任何修改和远程操作。
3 结束语
该监控软件经实际运行证明,LabVIEW的图形化编程环境,可以使用户设计出使用灵活、画面质量和表现形式丰富多样的监控系统。再者,采用DSC(数据记录监控)模块所提供的诸如图库、VIs以及实时数据库等功能可以使用户组态系统所需的时间缩短,同时使系统功能得到加强。此监控软件已成功运用于某药业的FQA工程,它不仅能满足现场监控的各种需要,且画面生动逼真,贴近现场、操作简便安全、报表打印灵活方便、安全性可靠等诸多优点得到了用户的高度好评,再次验证了基于LabVIEW的监控软件在过程控制中可行性。