徐志杰
(国电南自新能源科技有限公司,江苏南京210032)
WINCC(WindowsControlCenter)作为西门子公司开发的上位机组态软件,功能强大、应用灵活,为现场控制提供了一个高可靠性的监控平台,它广泛应用于工控领域,尤其在电力系统的辅机控制方面,有许多采用WINCC+S7300(或400)方案来实现稳定可靠控制的成功案例。随着WINCC多年应用经验的积累,该版本进行了多次升级,WINCCV6.2 SP3由于具有智能新选件、可扩展菜单(工具栏)、报警可隐藏,自定义数据库等诸多新特征,使其应用越来越广泛。WINCCV6.2的归档方式与以前的版本有所不同,它的运行数据存放在数据片段当中。当控制系统数据采集比较多时,需要对数据关系进行二次梳理,而WINCC自带的报表编辑器有其局限性,用户要实现复杂报表存在很大难度。针对上述情况,结合数据片段无法直接用高级编程语言VB(VisualBasic)读取的问题,采用自定义数据库来存放过程运行数据,然后采用VB技巧通过字符串访问方式读取数据,可实现分析处理及复杂报表的查询打印等功能。
WINCC软件几乎集成了微软所有开放性技术,大量采用了标准化技术(OPC,DDE,ODBC,OLEDB,ActiveX等),可方便地与其他应用程序交换数据。
WINCC6.2软件还提供C脚本和VBScript脚本语言支持,可通过连接字符串的方式实现数据库的连接和操作。以某电厂减排控制系统的上位机监控系统为例,实时数据直接采用WINCC归档数据通过WINCC控件进行调阅查询。而过程运行特殊设置数据和历史数据通过字符串连接方式访问自定义数据库来实现。
打开SQLServerManagementStudio,以Sa用户登录SQLServer数据库,如图1所示。在SQLServer数据库中建立名为“userdata”数据库和“process_value”数据表,如图2所示。
图1 自定义数据库连接
在WINCC软件全局脚本建立一动作周期触发执行实现与自定义数据库连接后把过程值写入到自定义数据库中,详细情况见参考文献[1]。具体实现代码如下:
图2 自定义数据库表
通过以上代码,每隔1min执行一次写入操作,将过程值写入到自定义数据库,便于下一步用VB编写的程序进行读取。
由于WINCC软件提供了开放的标准数据访问接口,VB可通过多种方式进行数据库连接。
方法1。建立ODBC数据源,通过ODBC数据源进行连接,该方法简单易用,但需要在上位机上手动建立ODBC数据源。
方法2。采用连接字符串方式进行连接,直接调用OLE-DB驱动,以字符串方式进行连接,该方法不需要手动建立连接数据源,便于在不同工程间进行程序的移植。
本文考虑到程序的通用性和可移植性,采用了字符串连接方式实现VB与数据库之间的连接,具体实现代码如下:
上面介绍了用VB和VBScript脚本分别操作SQL数据库的方法,通过执行SQL语言的insertinto或者update等命令(更多命令参见参考文献[2])即可实现对数据库的插入、更新等操作。
通过上面介绍的VB连接SQL数据库的方法,从数据库获取数据后,可利用广泛使用的第3方Active控件来实现灵活的报表查询、打印、输出。查询数据源与控件的绑定方法如下:
pri_title=Left(Now(),10)&"12月份运行记录"
sbStatusBar.Panels.Item(1).text=″当前显示的数据是:″&pri_title
通过以上代码就可实现控件与数据源的绑定,图3为应用于某电厂的烟尘减排控制系统数据管理界面。
图3 应用实例
将VB编写的数据管理程序编译成完整的EXE文件,然后在WINCC下通过以下C脚本来调用。
通过以上介绍的方法和步骤即可实现WINCC下复杂报表管理功能。
本文在应用WINCC作为上位机监控软件开发平台的工程中,由于WINCC系统自带的报表功能所限,而过程数据又需要二次分析且要求实现复杂报表管理,通过本文描述的方法即可简单方便地实现对WINCC软件过程数据和需要特殊处理的数据的存取操作和数据管理。该方法充分利用了WINCC软件的优点,大大降低了操作人员使用监控软件的复杂性和难度。此外,在WINCC软件中将过程数据存入自定义数据库,为以B/S方式获取数据预留了方便的接口,该方法具有较好的扩展性和可移植性。
[1]苏昆哲.深入浅出西门子WINCCV6[M].北京:北京航空航天大学出版社,2008.
[2]“653”工程编委会.SQLServer2005实例教程M].北京:中国电力出版社,2008.