王昕鑫 彭 节 秦 冰
陆军工程大学军械士官学校 湖北 武汉 430075
随着电力工业的快速发展,电力市场的改革要求电厂不断提高设备可利用率、安全运行性,提高监控自动化程度,减少运行和维护费用。计算机监控系统在水电站的应用,为机组的安全、可靠、经济运行提供了保障,同时保证了电能质量,而水电站监控系统上位机软件的开发是实现水电站综合自动化的重要保障。
组态王软件是一种通用的工业监控软件,它融过程控制设计、现场操作及工厂管理于一体,将一个企业内部的各种生产系统及应用和信息交流汇集在一起,实现最优管理。
组态王软件作为一个开放型的通用工业监控软件,支持与国内外常见的PLC、智能模块、智能仪表、变频器、数据采集板卡等通过常规通讯接口进行数据通讯。
组态王软件与IO 设备进行通讯一般是通过调用*.dll动态库来实现的,不同的设备、协议对应不同的动态库。工程开发人员无须关心复杂的动态库代码及设备通讯协议,只须使用组态王提供的设备定义向导,即可定义工程中使用的I/O 设备,并通过变量的定义实现与I/O 设备的关联,对用户来说既简单又方便。
2.1 创建工程
2.1.1 定义外部设备 组态王把那些需要与之交换数据的硬件设备或软件程序都作为外部设备使用。外部硬件设备通常包括PLC、仪表、模块、变频器、板卡等;外部软件程序通常指包括DDE、OPC 等服务程序。按照计算机和外部设备的通讯连接方式,则分为:串行通信(232/422/485)、以太网、专用通信卡(如CP5611)等。
在计算机和外部设备硬件连接好后,为了实现组态王和外部设备的实时数据通讯,必须在组态王的开发环境中对外部设备和相关变量加以定义。
2.1.2 定义变量 数据库是“组态王软件”最核心的部分,是联系上位机和下位机的桥梁。数据库中存放的是应用工程中定义的变量以及系统变量。变量可以分为基本类型和特殊类型两大类,基本类型的变量又分为内存变量和I/O 变量两种。
“I/O 变量”指的是组态王与外部设备或其它应用程序交换的变量。这种数据交换是双向的、动态的,就是说在组态王系统运行过程中,每当I/O 变量的值改变时,该值就会自动写入外部设备或远程应用程序;每当外部设备或远程应用程序中的值改变时,组态王系统中的变量值也会自动改变。所以,那些从下位机采集来的数据、发送给下位机的指令,比如集水井水位、开关等变量,都需要设置成“I/O 变量”。那些不需要和外部设备或其它应用程序交换,只在组态王内使用的变量,比如计算过程的中间变量,就可以设置成“内存变量”。
2.2 制作画面 在本系统中,结合现场工艺流程,利用组态王丰富的绘图工具主要设计了如下画面:水电站主接线图、主控系统图、集水井图、空压机图、主变风机图、发点机组图、报警查询图等。
在组态王工程管理器中“画面”选项中,新建画面,进入到开发系统。利用组态王提供的图库和工具箱绘制各个模块的物理连接图,然后建立图素的动画连接,实现动态效果,如图1所示。
图1 集水井水位图
“动画连接”是建立画面的图素与数据库变量的对应关系。在画面中,将表示集水井的蓝色矩形的缩放连接与数据库变量“集水井水位1#”相关联,蓝色矩形就会随着该变量的变化而缩放,实现了水位的动态变化效果。
为了方便对系统的操作和管理,建立一个系统菜单,对用户进行管理,它包括:用户登录、修改口令、退出登录、退出系统等菜单项。实现此菜单项,用到了系统函数voidOnMenuClick(LONG MenuIndex,LONGChildMenuIndex),命令语言如下:
if(MenuIndex==0){LogOn();}//用户登录
if(MenuIndex==1){changepassword();logoff();}//修改口令
if(MenuIndex==2){logoff();}//用户注销
if(MenuIndex==3){exit(0);}//退出系统
2.3 数据库连接 组态王SQL访问功能实现组态王和其他外部数据库(通过ODBC 访问接口)之间的数据传输。它包括组态王的SQL 访问管理器和相关的SQL函数。
SQL访问管理器用来建立数据库字段和组态王变量之间的联系,包括“表格模板”和“记录体”两部分。通过表格模板在数据库表中建立相应的表格;通过记录体建立数据库字段和组态王之间的联系。记录体中定义了Access数据库表格字段与组态王变量之间的对应关系,对应关系如下表1所示
表1 数据库字段与变量的对应关系
该监控系统具有形象生动的监控画面,简便易学的操作方法,适合在电站及仓库等需要实现自动化监控的场景中推广运用。