手把手教你基于C#开发WinCC语音报警插件「附源代码」

写在前面

众所周知,WinCC本身是可以利用C脚本或者VBS脚本来做语音报警,但是这种方式的本质是调用已存在的音频文件,想要实现实时播报报警信息是不行的,灵活性还不够,本文主要介绍基于C#/.NET开发报警插件,集成到WinCC中,实现更加灵活的语音报警功能。

公众号dotNet工控上位机:thinger_swj】

        对于WinCC,我相信很多人都比较熟悉,WinCC自带报警控件,可以实现报警的监测及显示。在之前做的一个比较大的项目中,项目已经使用WinCC开发并调试完毕,但是客户提出系统有报警时,需要语音播报的需求,因为当时没做过这样的,所以便查找资料,找了很多也无法通过WinCC实现,最后决定通过C#开发一个语音播报控件,集成到WinCC中,经过2天的研究测试(当时刚开始学习C#),终于实现了所有的功能,并且也得到了客户的认可。

        现在有时候想起这个事,仍然心有余悸,如果当初没有提前学习C#,也许这个项目就没法完美交差,客户也会不满意,后续也不会有更多的业务合作,所以我始终坚信一句话:凡事预则立,不预则废。转型学习上位机也是一样,从今天开始,也许明天就会不一样。之所以会提及这个事情,最近有位学员一直在研究这个,所以我就稍微做了一下整理,把这个案例分享给大家。

1  开发思路

如果想实现C#开发语音报警控件,植入到WinCC中,需要解决以下几个技术要求:WinCC支持.NET控件、C#可以实现语音播报功能、报警逻辑要清晰。

    • 3
      点赞
    • 10
      收藏
      觉得还不错? 一键收藏
    • 打赏
      打赏
    • 0
      评论
    WinCC报警语音助手是一款 报警语音助手是一款 WinCC的辅助软件,它可以将报警消息语音方式通知 的辅助软件,它可以将报警消息语音方式通知 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 操作员。该报警语音并未使用预先录制的频文件,而是自动朗读当前消息本它可 以获取 WinCC报警控件中的当前消息文本,并判断它应答状态如果已被 报警控件中的当前消息文本,并判断它应答状态如果已被 应答则不再发出语音。 该软件已在下列平台测试通过: Win7 + WinCC V7.3 Win10 + TIA WinCC V14 SP1
    #基于WinCC语音报警的应用及C#的封装实现 WinCC是西门子(Siemens)公司的一款人机界面(HMI)软件,提供了丰富的功能和API接口,可为生产工厂的自动化管理提供良好的支持。而语音报警则是一种实时、快速、直观、高效的报警方式,能够大大提高操作者的警觉性、响应速度和精准程度。本文将介绍如何基于WinCC语音报警C#语言封装实现一个简单的报警示例。 ##一、WinCC语音报警的实现 WinCC软件内置了语音报警功能,其实现方式如下: 1.在WinCC中添加一项声音文件(.wav),或者使用Windows自带的声音文件。 2.通过脚本语言VBScript或CScript编写脚本将声音文件播放出来。 VBScript脚本示例: PlaySound("D:\Voice\alarm.wav") CScript脚本示例: ThisScreen.SndPlayFile "D:\Voice\alarm.wav" 3.通过WinCC的事件机制将脚本与报警事件绑定在一起,当相应的事件发生时,调用脚本播放报警声音。 示例代码: Sub Alarm_ON PlaySound("D:\Voice\alarm.wav") Call Station_Alarm_On End Sub Sub Alarm_OFF Call Station_Alarm_Off End Sub ##二、C#语言封装实现 在WinCC的基础上,为了方便开发和使用,我们可以将语音报警功能封装在C#类库中。具体实现步骤如下: 1.创建一个C#类库项目,添加一个名为“VoiceHelper”的类用于实现报警功能。 2.在“VoiceHelper”类中添加两个方法PlayAlarmSound()和StopAlarmSound(),分别用于播放报警声音和停止报警声音播放。其中,使用System.Media命名空间提供的类SoundPlayer实现声音文件播放功能。 示例代码: public class VoiceHelper { private SoundPlayer player = new SoundPlayer(); //播放报警声音 public void PlayAlarmSounds() { player.SoundLocation = @"D:\Voice\alarm.wav"; player.Load(); player.PlayLooping(); } //停止报警声音播放 public void StopAlarmSounds() { player.Stop(); } } 3.在WinCC中引用C#类库,调用VoiceHelper类中的PlayAlarmSounds()方法,实现语音报警功能。 示例代码: using System; using System.Windows.Forms; public partial class Form1 : Form { private VoiceHelper voice = new VoiceHelper(); //报警事件处理函数 private void Alarm_ON() { voice.PlayAlarmSounds(); StationAlarmON(); } //清除报警事件处理函数 private void Alarm_OFF() { StationAlarmOFF(); voice.StopAlarmSounds(); } } 这样,我们就可以使用简洁、灵活、可复用的C#代码来实现WinCC语音报警功能,并将该功能以类库的形式进行封装和扩展,使得其应用更加广泛和方便。

    “相关推荐”对你有帮助么?

    • 非常没帮助
    • 没帮助
    • 一般
    • 有帮助
    • 非常有帮助
    提交
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包

    打赏作者

    常哥说编程

    你的鼓励将是我创作的最大动力

    ¥1 ¥2 ¥4 ¥6 ¥10 ¥20
    扫码支付:¥1
    获取中
    扫码支付

    您的余额不足,请更换扫码支付或充值

    打赏作者

    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

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

    余额充值