浙江中控2.5SP6使用语音报警
Posted 来自金沙江的小鱼
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浙江中控2.5SP6使用语音报警相关的知识,希望对你有一定的参考价值。
这一篇博客本来是写在新浪的,不过高深莫测的敏感词系统折腾的我没了脾气。我不知道一个学习笔记会有怎么样的不合时宜,没有任何明示和提示,反正就是有敏感词。
最近需要在现场的计算机上使用浙江中控2.5SP6制作语音报警的功能,于是先在家里计算机的虚拟机上模拟测试一下。这一篇博客就是把这个测试过程记录下来,以便今后有需要的时候复习一遍。
虚拟机使用了windows XP。昨晚被windows2000的虚拟机折腾没有脾气了,以为睡一觉脑子清醒一点就能够解决了。实际证明我高估了睡觉的作用,也高估了自己的能力。
虚拟机的安装我就不在这里记录了,浙江中控2.5SP6的安装我也不记录了。
运行浙江中控2.5SP6,输入用户名和密码,刚刚安装完成,只有一个超级用户,名字是SUPER_PRIVILEGE_001,密码默认是SUPER_PASSWORD_001
新建一个项目,添加基本硬件和操作站,配置一个AI模板,添加两个AI变量
配置一下每个AI变量的参数和报警值。
接下来制作语音文件
打开浏览器,到下面的网站
输入文字,转换成语音文件,默认设置即可,文件是MP3,不符合中控对语音文件格式要求,需要转换成WAV。打开下面的网站,将语音文件转换成WAV文件
将转换后的WAV文件保存在本地硬盘项目程序的CusMediaInfo文件夹下,这里是放置用户自定义声音文件的。
回到中控2.5SP6软件,点击工具栏上的语音报警按钮,打开对话框,点击基础设置-语音清单信息设置按钮.
弹出对话框,在右边单选框选择自定义语音,可以看到默认情况下是空白的
通过选择语音文件路径,找到刚才放到项目程序的CusMediaInfo文件夹下的wav文件,诸葛添加到列表中去。注意语音文件长度要通过播放提前了解。可以试音。虚拟机需要先把主机声卡转到虚拟机里面才有声音效果。
回到两个AI变量设置,设置它们的报警语音
新建一个工艺流程图放置新建的两个AI变量显示
保存、编译,使用仿真运行项目程序
运行后发现没有按照需要进行声音报警,于是对其进行改进。将4个语音文件拷贝到中控安装路径的MEDIA文件夹下,注意文件名不要过长,我把名字缩短成10个字符左右。先备份一下 SysMediaCfg.mcfg文件,使用记事本打开这个文件,编辑修改一下
ID = 1; FILE_PATH = "\\PHNBUSY.WAV"; MEDIA_DESC = "电话忙音"; MEDIA_PLAY_TIME = 2;
ID = 2; FILE_PATH = "\\Bell.wav"; MEDIA_DESC = "钟表报时"; MEDIA_PLAY_TIME = 2;
ID = 3; FILE_PATH = "\\Blip.wav"; MEDIA_DESC = "叮..."; MEDIA_PLAY_TIME = 2;
ID = 4; FILE_PATH = "\\Ahoo.wav"; MEDIA_DESC = "啊.哦."; MEDIA_PLAY_TIME = 2;
ID = 5; FILE_PATH = "\\Doorbell.wav"; MEDIA_DESC = "敲门声"; MEDIA_PLAY_TIME = 2;
ID = 6; FILE_PATH = "\\Drumrol.wav"; MEDIA_DESC = "架子鼓"; MEDIA_PLAY_TIME = 2;
ID = 7; FILE_PATH = "\\Foghorn.wav"; MEDIA_DESC = "汽笛声"; MEDIA_PLAY_TIME = 2;
ID = 8; FILE_PATH = "\\Glide.wav"; MEDIA_DESC = "太空之声"; MEDIA_PLAY_TIME = 2;
ID = 9; FILE_PATH = "\\Laser.wav"; MEDIA_DESC = "激光"; MEDIA_PLAY_TIME = 2;
ID = 10; FILE_PATH = "\\RESOLVE.WAV"; MEDIA_DESC = "拨号音"; MEDIA_PLAY_TIME = 2;
ID = 11; FILE_PATH = "\\Rooster.wav"; MEDIA_DESC = "公鸡啼鸣"; MEDIA_PLAY_TIME = 2;
ID = 12; FILE_PATH = "\\SIREN.WAV"; MEDIA_DESC = "警笛声"; MEDIA_PLAY_TIME = 2;
ID = 13; FILE_PATH = "\\Charge.wav"; MEDIA_DESC = "冲锋号"; MEDIA_PLAY_TIME = 2;
ID = 14; FILE_PATH = "\\Spkgliss.wav"; MEDIA_DESC = "滑过的琴声"; MEDIA_PLAY_TIME = 2;
ID = 15; FILE_PATH = "\\3号焦炉Warning.wav"; MEDIA_DESC = "3#焦炉Warning"; MEDIA_PLAY_TIME = 7;
ID = 16; FILE_PATH = "\\4号焦炉Warning.wav"; MEDIA_DESC = "4#焦炉Warning"; MEDIA_PLAY_TIME = 7;
ID = 17; FILE_PATH = "\\3号焦炉Alarm.wav"; MEDIA_DESC = "3#焦炉Alarm"; MEDIA_PLAY_TIME = 8;
ID = 18; FILE_PATH = "\\4号焦炉Alarm.wav"; MEDIA_DESC = "4#焦炉Alarm"; MEDIA_PLAY_TIME = 8;
最后四行就是刚才复制粘贴进去的文件的配置
打开中控软件,点击语音报警按钮,弹出对话框点击基础设置-语音清单信息设置按钮,可以看到刚才的四个文件加入了列表。
再次对AI变量进行配置,使用刚才加入的这4个系统的报警声音。保存、编译、模拟运行。这一次可以听到报警语音了。由于报警的等级一样,同时触发的话,听不清楚,就像是在菜市场一样嘈杂。可以考虑将相似的报警语音合并,比如两座焦炉共同使用"请注意,请注意,焦炉参数异常,谨防交换机迪亚关门"和“请注意,请注意,焦炉低压关门条件满足,请密切关注交换机状态”。
后面的修改我就没有做了,解决问题的思路有了。我把这个练习的项目程序上传到了我的百度网盘,地址是
链接:https://pan.baidu.com/s/1mqF9tBwMmTz2UwfP2eQQVA
提取码:1234
WinCC语音报警实现方法
概述
在WinCC中实现语音报警有好几种方式,用的比较多的就是使用WINCC自带的报警器进行组态,它可以在报警进入时播放预先选择的语音。还有就是使用脚本调用API函数PlaySoundA来播放语音,不过它也只能播放固定的语音,这两种方式都不够灵活。
TTS
Windows操作系统提供了一个TTS(Text-To-Speech)引擎,我们可以使用VBS或者C脚本在WinCC里面调用。不过这种方式实用价值不大,因为脚本在调用TTS发音时对线程是阻塞的,这时候后面的脚本都只能排队,无法正常执行。大家都知道WINCC的全局脚本一共只有两个线程(VBS和C各一个),因此这种方式只能用于很小很小的单机版项目。
CC_Alarm_Helper
CC_Alarm_Helper是我们早期开发的一款免费的语音报警助手(可以通过下面地址获取:https://pan.baidu.com/s/1t-5BPQmeUbWRVH9FJ-tjPg 提取码:63rt)。 它的原理是获取WINCC报警视图里面的消息进行播报。由于是一个在后台单独运行的进程,因此对WINCC没有影响。不过它在使用前需要做一些设置,比如正确的配置根画面名称和报警控件名称,使用上稍微麻烦一些。
图1 CC_Alarm_Helper
CCAlarmSound
CCAlarmSound是新开发的一款收费控件。它在实现语音播报的同时又解决了CC_Alarm_Helper使用麻烦的缺点。我们只要将CCAlarmSound.dll导入到WINCC的根画面即可,无需 任何设置就可以自动对新进入的报警进行播放。
图2 CCAlarmSound
为了便于大家试用和及时收取反馈,我们创建了一个控件使用群,有兴趣的同学可以扫码加入(控件下载地址:https://pan.baidu.com/s/1t-5BPQmeUbWRVH9FJ-tjPg 提取码:63rt )。不过目前群人数已超过100人,需要邀请才能加入。有兴趣的同学请先扫码添加下面微信拉你入测试群。
HwLib(慧兰博)技术团队专注于高端自动化技术,如果您对我们的技术教程感兴趣的话,可以X宝上搜索店铺“hwlib”或者“慧兰博”
关于HwLib(慧兰博)技术团队的更多信息:www.hwlib.com.cn
HwLib(慧兰博)技术团队技术资料:
提取码:63rt
以上是关于浙江中控2.5SP6使用语音报警的主要内容,如果未能解决你的问题,请参考以下文章
智能家居 ——智能家居项目整合(网络控制线程语音控制线程,火灾报警线程)