吴静然 崔冉
摘要:针对煤矿洗煤厂项目中组态软件WinCC归档数据的存储和复杂查询的问题,探讨了通过在WinCC编写VBS程序对winCC自带数据库SQL进行数据存储、查询和删除的方法。结果表明:WinCC报警记录功能可以实现消息的采集和归档;在SQL中自建用户归档,通过SELECT、INSERT INTO、DELETE三条语句可以实现对用户归档的查询、插入和删除数据集。最后利用这两种方法实现了归档数据的存储和复杂查询,完善了WinCC项目数据归档的功能,提高了洗煤厂日常管理的自动化水平。
关键词:WinCC VBS SQL 数据归档
中图分类号:TP273 文献标识码:A 文章编号:1007-9416(2016)08-0111-01
在实际生产中需要操作员控制记录功能,实现查看操作员操作日志,并且在出现事故时查询是否是操作员误操作导致事故发生,有利于找到事故原因、分清责任,避免相同事故的再次发生。本文采用VBS编程,利用报警控件记录和用户自建数据库实现实现操作员控制记录功能,解决了WinCC一项实际工程问题。
1 系统概述
本文以洗煤厂中三条每条50米搭接皮带为例,采用西门子PLC控制,上位机监控软件为WinCC 7.0。WinCC主要完成对系统的设备运行状态的远程集控和监视、报警、数据归档及报表打印。
WinCC画面由2个LISTTABLE、一个复选框、7个DTPicker控件、一个I/O域、3个按钮和若干静态文本组成。
2 归档数据的存储和查询
本文利用VBS编程实现WinCC与Microsoft SQL Server 2005的数据链接,通过动作调用过程将操作信息存储于数据库,并组态VBS触发事件来实现数据的访问、查询和删除。
2.1 利用报警记录实现数据归档和查询
报警记录分组态系统和运行系统两个组件,其组态系统为报警记录编辑器。本文利用报警记录实现带式输送机运行记录的查询。利用报警记录实现数据归档和查询,首先要在报警记录编辑器中组态报警的消息块,报警消息块分系统块、过程值块和用户文本块。本系统不对过程值进行归档,所以只需要将报警记录中用户文本块和系统块的内容从SQL中读出即可。新建3个报警记录,编号分为1、2、3,组态对应消息变量,本文分为belt1.run、belt2.run、belt3.run三个二进制变量。
其次,需要在皮带运行记录查询中的开始查询按钮设置VBS脚本动作,使用触发事件中的按下左键触发事件。
将写好的按钮VBS脚本程序写入按钮触发事件中,即完成了利用报警记录实现带式输送机运行时间查询的功能,运行总时间显示在I/O域内。按钮VBS运行记录查询脚本程序流程图如图1(a)所示。
2.2 通过自建数据库实现数据归档和查询
自建数据库实现数据归档和查询较灵活,但需要对数据库有一定的了解。本文通过自建数据库实现对操作员操作记录的存储、查询和删除。首先,需要在Microsoft SQL Server 2005中建立名为uesrlist的数据库,设计数据库包含user、date和event三列,定义数据类型和是否允许空;其次,在项目中创建向uesrlist数据库存入数据集的save过程,为每个操作按钮设置触发动作,在触发动作中调用save动作,来记录操作员的每个操作;最后在操作记录查询中的开始查询按钮中创建VBS脚本动作,查询uesrlist数据库并将查询数据集写入对应LISTTABLE控件,删除记录按钮同样创建脚本动作,删除设定日期前的操作记录并清空对应LISTTABLE控件。在VBS中通过insert into、select、update和delete命令对自建数据库的进行插入、读取、写入和删除数据集操作的格式与报警记录数据库的操作命令格式类似。Save过程流程图如图1(b)所示。
3 结语
本文利用了报警记录和自建数据库,通过VBS编程,用2种方法实现了操作员控制记录功能,使WinCC系统可以自动记录3条皮带的各自启停时间、总运行时间以及某位操作员何时在WinCC监控系统中进行了何种操作,方便了洗煤厂的日常工作管理,提高了煤矿自动化监控的水平。
参考文献
[1]西门子(中国)有限公司自动化与驱动集团.深入浅出西门子WinCC V6[M].北京:北京航空航天大学出版社,2003.
[2]高守传.精通SQL结构化查询语言详解[M].北京:人民邮电出版社,2007.
[3]高春艳,李艳,谷伟东.Visual Basic 数据库关键技术与实例应用[M].人民邮电出版社,2004.
[4]李晓品,张晓辉,李祥胜.SQL Server 2000管理及应用系统开发[M].北京人民邮电出版社,2002.
[5]四维科技,赵斯思.Visual Basic数据库编程技术与实例[M].北京人民邮电出版社,2004.