指南AI
指南AI

语音播报 :西门子自动语音播报WinCC报警消息

幕言助手 2024-04-28 04:14:14 幕言直播助手 348 ℃ 阿比整蛊源头|厂商微信:gogoh6
正文

实验环境:

WinCC 7.5 SP2

Windows10 及 Windows Server 2016/2019

实现思路:

实时捕捉WinCC的语音服务报警文本

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

开发步骤

windows键+R语音播报 ,输入services.msc,打开播报windows服务界面

语音播报
:西门子自动语音播报WinCC报警消息

启动售后语音Windows的音频服务

语音播报
:西门子自动语音播报WinCC报警消息

在WinCC的“报警记录”中,对需要语音播报的消息变量,勾选“触发动作”,此报警消息触发后,会执行GMsgFunction函数语音播报

语音播报
:西门子自动语音播报WinCC报警消息

在全局C脚本处的GMsgFunction函数功能里添加自定义的脚本(如下蓝翻译颜色框),捕捉报警消息文本,传递给内部变量(如下红颜色框)语音播报 。修改完播报后,此函数会自动从左侧目录树的“Alarm”进入“alarm”下控制:

语音播报
:西门子自动语音播报WinCC报警消息

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); //报警消息消息文本plc

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

语音播报
:西门子自动语音播报WinCC报警消息

Dim speaker, alarmText

Dim alarmComing

alarmComing=HMIRuntime.触摸屏设plc售后Tags("alarmComing").Read

alarmText=HMIRuntime.消息Tags("alarmText").Read

If alarmComing = 1 Then

Set speaker = CreateObject("SAPI.翻译自助WinCCWinCCSpVoice")

speaker.以做语音服务播报rate = 0 '语速

speaker.功能volume = 100 ‘音量

speaker.Speak alarmText

HMIRuntime.自助Tags("alarmComing").write 0

End If

End Function

完成组态过程

TIA-WinCC 社区

本文TAG:

指南AI

幕言互游在线咨询

上班时间:9:00-22:00
周六、周日:14:00-22:00
wechat
打开微信扫一扫,加我好友!

无限流量卡免费领取

点击预约
免费领取 先到先得