【技术研发】 i{襄 利用VB脚本实现WIN C C设备信息报表 王兆远陈战王山东勇 莱芜271104) (莱钢集团有限公司自动化部摘要: 简述一例在WlNCC%制作设备信息报表的实例,在WINCC中利用VB脚本的强大功能,结合EXCEL等第三方软件,充分利用EXCEL的数据分析功能,实现 较为复杂的日报表月报表功能,为牛产调度提供参考。 关键词:报表: ̄ISCC 中图分类号:TP3文献标识码:A文章编号:1 671—7597(2010)0710077--01 1概述 WinCC是一款市场上的主流HMI软件,是西门子公司专门开发的西门子 系 ̄lJPLC的配套上位机监控组态软件。WINCC简便易用,功能比较全面,实 时过程监控功能强大,但其自带报表系统只提供常用的简易报表功能。本 where子旬只对用户归档有效,对过程值归档无效.变量名要和WINCC下的变 量管理器的过程值归档名要一致。其格式为:归档名/变量名.起始时间和 终止时间可以用相对时间和绝对时间.如‘2006—3一i2 12:20:20’ 2006—3一 l3 12:20:20’.相对时间格式就是目前时间的相对值,如: ‘0000一O0一O0 文根据某污水处理项目和生产中的实例,简要介绍了如何在WINCC系统中结 合VBA脚本制作生成较复杂的设备信息报表。 O0:10:O0’ ‘0000 O0一O0 O0:O0:O0 需要注意的是,记录到sqL数据库的时 问都是格林威治时间,和中国的东8区有8个小时的时间差,需要编写语句进 行转换。 3.3连接WINCO数据库 1)定义连接字符串。2)创建ADODB的CONNECTION对象,在VB或VBA中 直接用CREATEOBJECT(ADODB.CONNEcT10N)函数。3)打开到数据库的连接, 使用CONNECTION的OPEN函数。4)创建cOM ND对象,并定义COMMAND对象采 用用CMDTEXT方法,表明将要使用命令文本的方式来获取数据记录。5)创建 RECORDSET对象,并用COMMAND对象的返回记录集填充这个记录集。6)将 2设备信息报衰的制作思路 设备信息报表的制作可以分为3个流程:数据采集:数据分析记录; 数据显示和生成报表。 2.1数据采集。对于现场的各种模拟量,可以直接在WINCC中直接采 集当前值并归档。对于现场各种设备的数字量状态,例如设备日运行时 间,则需要利用PLC内编程或者WINCC内编程实现。模拟量根据各个工艺的 不同需要采集不同的变量。在本例中需要采集的模拟量主要为污水处理流 程中的日进水量,出水量,进水水水质和生物处理池水质参数。数字量状 态则主要是分析和统计各设备投入自控的时间比例,日运行时间,和日故 障时间。 RECORDSET对象的数据填充到预先做好的EXCEL模板中,并保存为固定格式 的EXCEL文件。7)退出连接.部分代码如下: ’2.1连接数据库sCon为连接字符串 setconn=Create0b ject( ADODB.Connection ) conn.ConnectionString sCOn ’2.2 2数据记录。对WINCC系统采集到的数据进行记录归档,存入数据 库当中去,以用来生成报表 数据记录一般采用WINCC自带的变量归档功 能。设备日运行时间需要在变量记录中做如下设置:在定时器内设置1天的 定时器的起始时间为0时0分5秒,采集周期设为1分钟,归档时间为1次,在 参数里面设置归档的值为最大值,这样每日的O0:。O:05就会归档一次昨 天的设备日运行时问。 2使用定义好的命令查询数据库sSql为定义好的SQL命令 Set0Rs=CreateOb iect( ADODH.Recordset ) SetoCom=Create0bject( ADODB.Command ) oCom.CommandType:l SetoCom.ActiveConnectioR=eolRn 2 3生成报表。WINCC报表需要先编辑报表布局,然后再建立打印作 业。在编辑报表布局时,可以直接在报表编辑器中利用变量运行记录系统 oCom.CommandText=sSql ’2.的变量表格制作出需要的报表内容,数据源采用WINCC的归档记录。 3利用VBS访问WlNCC历史数据库生成EXCEL报表 WlNCC采用SQL2000作为其数据库,专门进行了二次开发,利用SOL管 理器和高级语言不能用常规的SQL访问方法得到数据。WINCC的SQL库有其专 门自定义的SOL语句。WINCC的历史数据均保存在运行数据库内,其名称一 3将数据填入recordset对象 SetoRs=OCOm.Execute m=oRs Fie1ds.Count ’4.O断开数据库连接,.释放对象 SetoRs=NOthing Setconn=Nothing 般为“cc工程名年月日时分秒R”,在内部系统变量@DatasourceNa MeRT中存储的即为该数据库名。在该数据片断下,有三个比较重要的表分 别是:1)ARCHIVE(用户归档);2)TAGPRESSED(TAGUKPRESSED)(压缩/非压 利用该方法可以充分发挥excel的强大数据分析功能,预先制作好固 定格式的excel模板,在其中做好数据分析表格,只要利用WINCC的VB脚本 填入相应得数据,就可以得出一张详细的统计表格。 参考文献: 缩变量归档记录);3)MSARCLONG(报警记录)TAGPRESSED的数据对应WINC的 变量归档.我们访问WINCC历史数据库,实际上是访问这里的变量记录。 3 1查询过程值归档和消息归档的连接字符串 SETCON=createob ject( adodb.connection ) u【J·op I1 [1]陈建、周煜申、苏少钰等,ActiveX在WinCC归档数据复杂查询中的研 究与实现[J].工业控制计算机,2005,18(5):1—2. [2]郭建明、邢晨、刘清,WinCC组态软件中自定义复杂报表的实现[J].工 Provider=winccoledhprovider.1;catalog=cc工程名一年月日时 分秒R,datasoarce-.\wirlCC,userid=DBA,password=SQL 业控制计算机,2007,2O(2):1—2. [3]WINCC6.OSP3版本演示项目. 说明:需要修改Catalog的值为系统变量@DatasourceNameRT的值,这 个值根据不同的工程和创建的时间不同。 作者简介: 王兆远(1984一),男,山东莱芜人,2006年毕业于西安工程大学仪器仪表 3 2查询过程值归档和用户归档的SOL语句 TAG:R, 变量名1’,‘起始时间’,‘终止时间’where条件,其中 专业,主要从事冶金自动化方面工作。