第 6 页 共 11 页
图5 报警窗口属性配置
4)在报警窗口上方加上“实时报警”的文本,加粗显示,同时在报警窗口下方添加三个按钮,分别为“报警确认”、“声音开启”和“声音关闭”,如图5所示。
图6 功能按钮制作 3. 新建变量
1)在工程浏览器左侧的树型视图中选择\数据词典\,在右侧视图中双击\新建\,弹出定义变量的对话框,见图7所示。
图7 建立新变量
第 7 页 共 11 页
2)建立两个变量类型为内存整数的变量,变量名分别为ALARM和Beep_close,见图8所示。
图8 两个新变量
4. 新建动画连接 1)为报警确认按钮建立动画连接,选择“弹起时”动画连接,命令脚本为ALARM=0;
第 8 页 共 11 页
2)为声音开启按钮建立动画连接,选择“弹起时”动画连接,命令脚本为Beep_close=1;
为声音关闭按钮建立动画连接,选择“弹起时”动画连接,命令脚本为Beep_close=0; 5. 报警自定义函数
在组态王自定义函数中,有三个系统预置的报警自定义函数。分别为实型变量报警事件($System_RealAlarm)、整型变量报警事件($System_LongAlarm)和离散型变量报警事件($System_DiscAlarm)预置自定义函数。
自定义函数的调用执行有两种方式:
1)系统产生报警事件后会自动调用相应数据类型的函数,如整型变量产生报警时,系统自动调用整型预置自定义函数;
2)如果在配置报警窗的“操作属性”时,选择了“允许双击报警条”,则系统运行时双击报警事件报警条,也会自动调用相应数据类型的函数。
第 9 页 共 11 页
三种预置自定义函数如下:
1.)实型:void $System_RealAlarm(RealTag rTag, long time, long nEvent, long nAction) { }
2.)整型:void $System_LongAlarm(LongTag lTag, long time, long nEvent, long nAction) { }
3.)离散型:void $System_DiscAlarm(DiscTag dTag, long time, long nEvent, long nAction) { }
各个预置自定义函数中的参数的含义为(以实型为例,其它都相同): Void $System_RealAlarm(RealTag rTag, long nTime, long nEvent, long nAction) rTag:表示变量,即普通变量,和组态王系统变量一样具有值和变量所有的域,这些值都是只读的。
nTime:表示自从格林威治时间1970年1月1日0起到报警事件产生时的秒数,表征报警事件产生的时间;
nEvent:表示当前产生或双击报警窗时的报警类型。报警类型的返回值如下: 0—— 报警 1—— 恢复 2—— 确认 nAction:表示当nAction==1时表示是双击报警条,当nAction==0时表示产生报警事件。 预置自定义函数函数体初始内容为空,需要用户在里面添加命令语言。利用报警预置自定义函数,可以实现用户自己想在报警产生后做的一些处理。
我们在各个预置自定义函数中均写入如下脚本: if(nEvent==0) {ALARM=1;}
第 10 页 共 11 页
6. 事件命令语言
在事件命令语言中新建一个事件命令,事件描述为ALARM==1,在事件存在时每隔3秒执行一次,事件脚本如下图所示。该脚本的意思为执行本项目工程文件夹内beep.exe的程序,beep.exe程序是用VB写的一个播放报警音的程序。运行程序测试前要把beep.exe程序拷到项目工程文件夹内。