朱圆圆 高燕丽 李焕
摘要:在工业控制领域,生产或管理数据的处理往往以各类报表的形式提供给生产技术人员或管理人员。报表数据可对系统运行状况、产品品质及管理状态提供分析支持。本文介绍了一种报表的实现方案,利用OPC通用数据接口对接各类控制系统,生成本地的基于报表查询的历史数据库,利用Excel的强大可视化报表功能进行报表的组态,可满足各种类型的报表需求。
关键词:OPC 可视化 报表
中图分类号:TP311.52 文献标识码:A 文章编号:1007-9416(2016)08-0162-01
1 引言
目前国内外各系统厂商所提供的控制系统均以不同方式提供其过程数据的报表功能。但用户对于报表内容、格式以及数据处理要求各不相同,各系统所提供的报表功不能满足用户的不同需求。另外,由于各控制系统厂商访问现场设备的数据接口也各不一样,往往缺乏通用的数据存取标准,给用户带来的很大的不便。OPC技术的出现给工业控制领域数据的存取访问带来了新的方法。本文使用OPC接口作为各控制系统的统一数据接口,采用可视化方法提供灵活多样的运行报表的模板设计,简化了用户报表组态过程,具有使用灵活、接口简单、通用性强的特点。
2 总体设计方案
提供通用的数据接口,使用户可以方便地配置报表类型和记录测点,同时提供功能丰富的、可满足大部分用户对于报表格式、内容多样性的需求的可视化的报表定义系统。用户将焦点集中在报表功能需求的定义方面,可以使用户从应用角度来设计和使用报表。
设计分三个部分:第一部分为基于OPC接口的数据库。目前绝大多数控制系统厂商均提供OPC接口的数据存取方案,为报表系统的统一数据接口提供了支持;第二部分为历史数据的记录。数据以Access数据库表的形式记录在存储器中,方便其它模块对数据的访问。虽然OPC规范中提供了对于历史数据访问(Historical Data Access)的方法,但在实际应用中发现,各控制系统厂商实现历史数据访问是采用的标示方法不同,无法做到统一的访问,因此本方案中仍采用OPC数据存取(Data Access)规范来完成数据的获取;第三部分为报表定义与生成系统。通过报表定义系统,可以完成报表的基本配置,如报表格式、报表类型等。本方案中采用Excel文件作为报表的模板,因其具有灵活的格式、方便的统计计算等特点。报表生成系统根据报表的配置,定期自动生成格式化报表文件,供运行管理人员进行分析处理。系统整体构架如图1所示。
3 各功能的设计与实现
3.1 OPC数据接口模块
OPC接口模块功能如图2所示。OPC通过三个接口来实现数据存取。一个OPC的数据存取服务器中包括几类对象:服务器(OPCServer)、组(OPCGroup)和项(OPCItem)。OPC服务器对象维护有关服务器的信息并作为OPC组对象的包容器, OPC组对象维护有关其自身的信息,提供包容OPC项的机制,并管理OPC项。
OPC数据的获取可以采用三种方式:同步读写、异步读写和通知方式。本方案中为了简化应用,采取同步读写方式。读操作完成后返回的数据中包含三个有用的域,其中Value域中是读出的数据, TimeStamp域是数据的时间戳, Quality属性是返回数据的质量码。需要注意的是数据的时间戳返回的是格林尼治时间,在处理的时候要进行本地化。
3.2 历史数据记录模块
历史数据记录模块的主要功能是定时将内存数据库中的数据存入历史数据库中以便报表生成模块调用。主要流程如图3所示。本方案通过DAO(Data Access Object)接口来操作Access数据库。主要涉及的操作有建立数据库、建立数据表、添加表记录。
建立数据库及数据表的代码如下:
Set myDB = DAO.CreateDatabase(strDBFileName, dbLangChineseSimplified)
Set myTbl = myDB.CreateTableDef(“表名”)
myTbl.Fields.Append .CreateField(“Time”, dbDate)
myTbl.Fields.Append .CreateField(“Value”, dbSingle)
myDB.TableDefs.Append myTbl
向数据表中添加记录:
Set myRcdSet = myDB.OpenRecordset(“表名”, dbOpenDynaset)
myRcdSet.AddNew
myRcdSet.Fields(0) = GetLastUpdate(i)‘时间戳
myRcdSet.Fields(1) = Val(GetValue(i))‘数据
myRcdSet.Update
3.3 报表定义及生成模块
报表定义主要完整报表格式、报表类型的定义。业务系统的报表主要要日报表、班报表、月报表等,报表的格式需要根据用户的需求设置报表的布局、标题、时间、测点。本系统利用Microsoft Office Excel报表处理的强大功能,方便用户进行报表的排版、格式的定义以及数据的各类统计。报表定义模块主要设置的参数有报表类型、排版方式、报表记录测点等内容。报表生成系统依据报表的定义,定时生成报表文件。该模块的流程如图4所示。
报表生成系统要对Excel文件进行读写操作。部分操作代码如下:
Set xlApp = CreateObject(“Excel.Application”) ‘建立Excel对象
Set xlBook = xlApp.Workbooks.Open(strTempFileName) ‘打开Excel模板文件
xlBook.ActiveSheet.Cells(row, col) = value ‘写入数据
xlBook.SaveAs strTagFileName ‘保存报表文件
xlApp.Quit ‘关闭Excel
4 结语
报表数据可对业务系统的运行管理状态提供分析支持。 本方案提出的可视化报表系统提供了从报表设计到报表生成的一整套解决方法,具有配置方便、使用简单、接口通用等特点,具有很好的实用价值。
参考文献
[1]陆会明,等.控制装置标准化通信—OPC服务器开发设计与应用[M].机械工业出版社,2010.
[2]于宏强.EXCEL+VBA及OPC技术在工厂报表系统中的应用[J].水泥工程,2012(1).
[3]陈岩.归档数据的Excel自动报表生成在宣钢的应用[J].通讯世界,2015(12).