哈喽,你好啊,我是雷工!
在SCADA项目中有的现场系统比较多,每个调度员可能会一个人盯好多个系统,因此不会一直盯着一个系统,这时候就需要当有新的报警产生时,有报警声音提示,提示调度员查看报警,进行处理。
这里记录用KingSCADA做的SCADA系统中一种声音报警的实现方式。
以下为实 现的笔记。
01 效果演示02 实现步骤2.1、报警变量
KingSCADA系统提供有系统变量$NewAlarm;
$NewAlarm是一个离散型的变量,是新报警的意思,即当前系统中有新的报警信息产生时,该变量会自动置为1;
有些项目我们可以使用该变量触发,来实现语音报警。
注意事项:
$NewAlarm变量不能够自动清0,需要人为将其清0。
2.2、PlaySound函数
PlaySound函数的使用需要计算机系统安装有Windows wave音频设备驱动器,音频文件的格式为*.wav格式的。
①函数格式
PlaySound(string strWaveFileName,int nMode)
②参数说明
strWaveFileName:音频文件的名称。
nMode:播放模式;
③音频文件
音频文件名称前可以添加音频文件所在的目录,也可以不添加。
音频文件参数名称前列出目录时,则按列出的目录查找;
若参数中未列出,则在KingSCADA工程目录,系统目录中查找。
如果均找不到该音频文件,则不播放声音。
我个人觉得这里最好在名称参数前列数目录,节约查找时间。
④播放模式
播放模式说明见下表:
模式
说明
备注
0
停止播放
停止异步播放和重复播放
1
同步播放
按照调用PlaySound函数顺序,依次完整播放所有音频
2
异步播放
若当前正在异步播放一个音频,再调用PlaySound会中止当前音频的播放
3
重复播放
重复播放音频到下次调用PlaySound为止
4
蜂鸣器报警
5
停止同步播放
当前音频完整播放,停止的是当前音频之后的音频。
2.3、事件脚本
①:打开KingSCADA的脚本—>自定义脚本—>条件事件脚本,打开对话框。
②:新建,在条件框输入:\\local\$NewAlarm==1
③:在进入时,写下如下脚本:
PlaySound("E:\a.wav", 3);\\local\$NewAlarm =0;2.4、消音
①:在界面中添加一个按钮;
②:在按钮的左键抬起事件中添加如下代码:
PlaySound("E:\a.wav", 0);2.5、运行
通过创建测试界面,创建一个内存变量,内存变量,配置报警,界面按钮制造报警,测试效果。
03 后记以上为一最简单的报警提示的实现,实际中可能还会要求语音播报啥啥报警的声音,具体有时间再进行测试。
欢迎点赞留言,更多相关功能也可以在交流群探讨。