自动语音播报WinCC报警消息

文章转载至微信公众号:人机常情 WinCC
自动语音播报WinCC报警消息
原创 He havefun 人机常情 WinCC 3月3日
作者:胡世川 - 西门子数字化工业集团自动化部

实现思路:

实时捕捉WinCC的报警文本

调用windows自带的SAPI语音技术接口,播报文本

开发步骤

windows键+R,输入services.msc,打开windows服务界面
在这里插入图片描述
启动Windows的音频服务
图片
在WinCC的“报警记录”中,对需要语音播报的消息变量,勾选“触发动作”,此报警消息触发后,会执行GMsgFunction函数。
在这里插入图片描述
在全局C脚本处的GMsgFunction函数里添加自定义的脚本(如下蓝颜色框),捕捉报警消息文本,传递给内部变量(如下红颜色框)。修改完后,此函数会自动从左侧目录树的“Alarm”进入“alarm”下:
图片

  MSG_RTDATA_STRUCT mRT;
  MSG_CSDATA_STRUCT sM; // holds alarm info 
  MSG_TEXT_STRUCT tMeld; // holds message text info
  CMN_ERROR pError;  
  memset( &mRT, 0, sizeof( MSG_RTDATA_STRUCT ) );
  .......
 if(mRT.dwMsgState == MSG_STATE_COME) 
{
MSRTGetMsgCSData(mRT.dwMsgNr, &sM, &pError);  
MSRTGetMsgText(0, sM.dwTextID[0], &tMeld, &pError);
SetTagBit("alarmComing",TRUE); //置位VBS脚本触发器
SetTagChar("alarmText",tMeld.szText); //报警消息文本
}

VBS全局脚本中调用SAPI接口播报消息文本,此脚本采用变量触发(内部变量alarmComing)。
图片

Dim speaker, alarmText
Dim alarmComing
alarmComing=HMIRuntime.Tags("alarmComing").Read
alarmText=HMIRuntime.Tags("alarmText").Read
If alarmComing = 1 Then
      Set speaker = CreateObject("SAPI.SpVoice")
      speaker.rate = 0  '语速
      speaker.volume = 100 ‘音量
      speaker.Speak alarmText
      HMIRuntime.Tags("alarmComing").write 0
End If
End Function

完成组态过程

  • 0
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WinCC报警语音助手是一款 报警语音助手是一款 WinCC的辅助软件,它可以将报警消息语音方式通知 的辅助软件,它可以将报警消息语音方式通知 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 以获取 WinCC报警控件中的当前消息文本,并判断它应答状态如果已被 报警控件中的当前消息文本,并判断它应答状态如果已被 应答则不再发出语音。 该软件已在下列平台测试通过: Win7 + WinCC V7.3 Win10 + TIA WinCC V14 SP1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值