利用VBA实现FactoryTalk View SE报表功能
2011-06-20辛亚军刘志远王圣齐
康 英,辛亚军,刘志远,王圣齐
(1.西安利雅得电气股份有限公司,陕西西安710075;2.青海桥头铝电股份有限公司,青海大通810100;3.新疆独山子石化公司热电厂,新疆克拉玛依833600)
1 引言
FactoryTalk View SE是组态软件,是与公司自动化产品结合最佳的可视化软件产品,提供了强大的数据监控能力,方便用户进行上位机的画面组态。FactoryTalk View SE内嵌VBA,它为自定义及扩展FactoryTalk View SE功能提供了完整的开发环境。
FactoryTalk View SE和其他组态软件一样,自身的报表生成、处理能力比较弱。为了实现数据报表功能,本文使用FactoryTalk View SE内嵌的VBA,与Excel及Access相结合,利用Excel强大制表功能,实现FactoryTalk View SE数据报表功能。
2 实现原理
通过日志模型设置,FactoryTalk View SE从PLC采集实时数据,通过ODBC接口存储到Access数据库中,利用FactoryTalk View SE内嵌的VBA开发,访问Access数据库读取历史数据并根据需求进行各种计算,再调用Excel,根据需要生成的报表格式要求进行处理后,形成报表。系统解决方案框图如图1所示。
图1 报表解决方案框图
3 Excel对象模型
Excel对象封装了Microsoft Excel的全部元素,利用Excel对象提供的属性、方法和事件,就可以在应用程序中生成Excel报表[1]。
Excel对象模型描述了Excel对象之间的结构关系,如图2所示。
图2 Excel对象之间的结构关系
(1)Application对象
Application对象表示Excel应用程序,在Excel读象模型中该对象处于模型的顶端,通过使用Application对象可以访问模型中其他对象,从而控制Excel应用程序的外观和功能。
(2)Workbook对象
Workbook对象表示Excel中的工作簿,即对应一个Excel文件,通过使用Workbook对象就可以实现对Excel工作簿的各种控制。
(3)Worksheet对象
Worksheet对象表示Excel中的工作表,通过使用Worksheet对象就可以实现对Excel工作表中的各种控制。
4 应用实例
先把从FactoryTalk View SE采集的实时数据存储在Access数据中,然后从数据库中读取数据,在Excel中进行处理并生成报表显示出来。下面将具体介绍如何实现该功能。
(1)将Excel、Access对象库加载到当前 VBA程序中
为了能够在FactoryTalk View SE中调用Access数据库以及Excel对象,为Access与Excel连接、互相嵌入使用做准备,必须在VBA程序中加载Excel、Access对象库。在VBA编程环境下,单击“Tools”菜单中的“Reference”命令,在弹出的对话框汇中选中Microsoft Access 11.0 Object Library和Microsoft Excel 11.0 Object Library 两项,点击“确定”后退出,这样就完成了Excel、Access对象库在VBA程序中的加载。
(2)创建 Excel模板
首先做好Excel报表模板,用以存储从Access数据库中读取并经过处理的数据。使用Excel对象的属性和方法完成报表的设计,从而形成所需要的报表。
(3)创建ADO对象存数据到数据库
使用ActiveX Data Object(ADO)链接到Access数据库的方法。首先必须设置对微软ActiveX数据对象2.7库或者更高版本的引用,与加载Excel、Access对象库一样,将Microsoft ActiveX Data Objects 2.7 Library或更高版本加载到VBA程序中来,编写下列程序创建ADO的Connection对象建立与数据库的链接和数据查询功能。
①装载标签
②连接数据库
(4)读取Access数据并显示到Excel中
下面VBA程序实现了从Access获取历史数据的功能。根据报表格式的要求将数据在Excel中进行处理后,形成报表。
这样实现了从Access数据库读取数据到Excel中的功能。
5 结论
与大部分组态软件相似,FactoryTalk View SE在数据监控、画面组态功能较强,但在报表生成、处理能力较弱。此方法可生成各种复杂的生产数据报表,开发周期短,可操作性强,完全满足工业的生产要求。在此基础上,完全可实现班报、周报、月报、年报等的查询与打印。
[1]俞旭明等.VISUAL BASIC6.0网络开发技术[M].北京.人民邮电出版社.1999.
{2]RSView Supervisory Edition User’S Guide.美国 AB 公司.