文章转载至微信公众号:人机常情 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 infoCMN_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 ThenSet speaker = CreateObject("SAPI.SpVoice")speaker.rate = 0  '语速speaker.volume = 100 ‘音量speaker.Speak alarmTextHMIRuntime.Tags("alarmComing").write 0
End If
End Function

完成组态过程

自动语音播报WinCC报警消息相关推荐

  1. 火车站信号自动语音播报系统的设计

    在现代工业控制过程中,广泛应用了工作状态和故障状态报警装置,通常它以声.光形式提醒操作者及时处理出现的问题.随着新技术的发展,人们又开始将语音技术应用到这一领域.它以更直观.易懂.更方便.准确的形式向 ...

  2. java语音播报天气_Home Assistant系列 -- 自动语音播报天气

    在树莓派上要让 Home Assistant  发声朗读 ,从硬件上我们需要 3.5mm插口音箱(耳机)或usb口音箱(耳机).软件方面 我们需要一个媒体播放器以及 tts ( 将文字转化为语音的服务 ...

  3. 来电语音播报软件下载apk_消息语音播报app下载-消息语音播报安卓版 v1.0.1 - 安下载...

    消息语音播报app是一款语音播报工具,它可以将微信.QQ.短信等消息进行语音播报,让你能够第一时间知晓消息内容,无需进入界面也能知晓发来的消息:它支持多个场就下使用,开启语音播报后无需你手动打开手机查 ...

  4. Python脚本实现Mac开机自动语音播报天气

    简介 最近专注于捣腾mac系统,发现了系统语音朗读的功能,于是萌生了从一些天气服务的API获得并解析天气,在本地调用语音朗读指令,使得电脑上的"天气预报"也实现播报功能. 代码我已 ...

  5. vue实现自动语音播报功能,未解决。(已用js解决20220210)

    这个放不出来 <template><div><i @click="reader" class="el-icon-microphone&quo ...

  6. Wincc7.5SP1 按钮操作记录(二次确认及语音播报)

    Wincc 7.5 SP1 按钮操作记录生成(含二次确认及语音播报) 前面一篇文章已经介绍了"语音播报WINCC报警",本文是之前功能的延伸,记录按钮操作记录并实现播报. 操作记录 ...

  7. Vue中使用speak-tts插件实现点击按钮后进行语音播报(TTS/文字转语音)

    场景 speak-tts插件 speak-tts - npm 实现点击按钮触发语音播报,播报指定的文字内容. 为什么不能实现自动语音播报. chrome浏览器在18年4月起,就在桌面浏览器全面禁止了音 ...

  8. SpeechSynthesisUtterance文字转语音播报

    一.介绍 SpeechSynthesisUtterance是HTML5中新增的API,用于将指定文字合成为对应的语音.也包含一些配置项,指定如何去阅读(语言,音量,音调)等 二.基本属性 var sp ...

  9. 如何用WinCC发送报警消息至钉钉

    HwDingTalk是HwLib(慧兰博)技术团队开发的一款用于WinCC或者.Net的钉钉消息控件.它可以嵌入到WinCC画面中,通过简单的设置即可将重要报警信号发送到手机端或者PC端的钉钉上.Hw ...

最新文章

  1. Java线程池使用与原理
  2. 一文了解PL610-01-O96TC-R
  3. 计算机网络网关作用,默认网关的作用
  4. CentOS 7配置Let’s Encrypt支持免费泛域名证书
  5. 题解P3745期末考试
  6. server.mappath php,Server.MapPath( ) 方法的主要功能是获取文件的绝对路径。
  7. 一片关于Bootstarp4的文章
  8. (转载)JavaScript中的原型和对象机制
  9. cocos2d 屏幕適配_cocos2dx 3.2 屏幕适配的理解
  10. C# 固高运动控制卡插补
  11. 如何在微软的下载商店找到下载的图片?
  12. 阅读笔记4:基于运动想象的脑机接口系统模式识别算法研究
  13. python均线斜率_一根20日均线闯天下——量化回测“压箱底指标”,值得散户认真研读...
  14. 微信小程序红包 php,微信小程序实现红包功能(后端PHP实现逻辑)
  15. Java8 jvm参数
  16. html,css和js
  17. stm32 驱动 TFT LCD
  18. 苹果Mac电脑系统优化清理工具CleanMyMac X
  19. firewall-cmd --permanent --get-zone-of-interface=ens33显示no zone
  20. MySQL可重复读级别会不会造成幻读

热门文章

  1. Java程序员面试需要注意什么?
  2. 【计算机基础】多媒体技术、网页制作、计算机网络
  3. 如何注册表里修改计算机用户名,更改电脑用户名(可更改C:\Users\用户名)
  4. Altium Designer Pcb 快捷键
  5. collect2.exe: error: ld returned 1 exit status分析与解决
  6. 手持弹幕android制作,手持弹幕神器
  7. position属性详解
  8. 网站限制某些ip访问,仅允许某些ip…
  9. C++实战案例之通讯录管理系统
  10. 更改MAMP的mysql密码