微信/APP推送WinCC报警消息
这期我们聊聊微信和APP推送。
微信推送
先展示一下我们测试视频,以证明我们紧跟时代潮流,没忽悠:)
在WinCC的WebUX客户端上(iPad)上操作触发了“压力低限”和“温度高限”报警
,时长00:08
在手机微信app的测试公众号里可以马上收到报警消息,并查询数据。
,时长00:20
大致步骤如下:
1. 需要注册一个微信公众号,微信没有开放第三方直接把消息把推送给个人这样的功能,只能通过公众号以“模板消息”的方式推送(这里我们用的是免费的个人订阅号做的测试,有些功能受限,如每天只能群发1条消息,其它服务号、企业号之类的公众号功能更强,但需作企业认证和付费)
2. 微信公众号的通讯机制:①用户通过微信app向公众号发送一条内容,实际是发送到了微信服务器上。②然后,微信服务器就会对内容进行封装,如xml格式,再转发到我们的公众号服务器(必须有能暴露给外界访问的一个公网地址);同样,⑤公众号若要把信息推送或回复给用户,也是要经由微信服务器,⑥再到用户。也就是说,我们自己需部署一个用来接收和响应微信消息和事件的公众号服务器,由这个公众号服务器作为中间商完成微信服务器与WinCC的交互。

3. 部署公众号服务器(我们把WinCC系统和测试用的公众号服务器部署在一台硬件服务器上了,此台服务器有公网固定IP)
在IIS中设定web站点。
(下面的C#代码均发布到此Web站点)

将此台服务器绑定域名http://wechat.wincc.com.cn
(已在公网域名管理服务器中将IP与此域名绑定)

应用池设定,接收WinCC本地应用交互。



完成IIS的基本设定
4. 将公众号服务器注册到微信服务器
在微信公众平台上,将公众号从“编辑模式”切换到“开发者模式”,并输入公众号服务器地址URL (http://wechat.wincc.com.cn)和token(可任意填写,用作生成签名)以及用作消息体加解密密钥EncodingAESKey(由开发者手动填写或随机生成),提交后,微信服务器会发送一个get请求到我们填写的URL上,公众号服务器收到这个消息后,回复内容即可通过微信服务器的验证。即建立关注此公众号的微信用户与公众号服务器之间的关联关系。
5. 在WinCC中封装报警消息并POST到公众号服务器
关于报警事件及报警文本的捕捉,参考前一篇:《短信、邮件推送WinCC报警消息》
在C全局脚本GMsgFunction函数中将报警编号、文本等信息写入WinCC内部变量,并置位Alarm_coming(也是WinCC内部变量)。
通过Alarm_coming这个变量触发下面的VBS全局动作,将报警消息封装成XML格式的字符串(这里我们把报警的MsgType消息类型定义为“alarm”,便于公众号服务器区分信息来源和类别),通过msxml2.xmlhttp对象将这个字符串POST到公众号服务器(wechat.wincc.com.cn)。

6. 公众号服务器识别第三方POST过来的信息,当解析后发现MsgType为“alarm”,即约定为是WinCC推送过来的报警消息。(下面均为C#代码,均需发布到公众号网站上)

然后利用微信提供的接口读取关注此公众号的用户,轮询客户并推送消息到用户端(目前微信规定,即使是采用模板方式推送,也只能到单个客户,不能一次性批量群发)

wxMessageService类展开如下,调用了微信的接口,按微信公众平台预定义的消息模板,向特定用户Post消息。其中access_token是公众号的全局唯一接口调用凭据,公众号调用各种微信接口时都需要(https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Get_access_token.html)

其实我个人并不推荐这种方式,因为要接入到互联网,如果信息安全措施不到位,可能会有隐患;另外,正式用的企业公众号还涉及到额外的费用。再另外,涉及太多非传统自动化的IT知识点,有时隔行如隔山。
腾讯官方的微信开发者文档:
https://developers.weixin.qq.com/doc/offiaccount/Getting_Started/Overview.html)
App推送
部署一个PC用作SIMATICNotifier报警信息服务器(需要购买SIMATIC Notifier软件及授权),它可以通过S7,OPC UA通信把WinCC和触摸屏等各种信息源的报警消息,推送到智能手表(支持安卓Android wear 2)或安卓手机的app客户端,效果如下面视频:
短信语音微信报警
方案概述
工业控制系统中,当有警报出现时由值班人员查看并通知相关人员处理。有时当有重要警报出现时,可能由于值班人员疏忽而延迟了处理时间从而对生产或安全造成影响。 随着移动互联网的普及,越来越多的用户希望通过智能手机监控工业现场的各种状态、报警等数据。针对这种情况,巨控科技推出通过短信,语音,微信报警方案。
巨控科技PLC短信报警方案简单成熟,多种报警方式可以保证紧急情况,通知到人,避免经济损失。多年来,巨控短信报警系统在电力系统,药厂,水务等行业稳定运行,获得了客户一致好评。

PLC短信报警系统架构
1.通过巨控模块485口采集PLC或者仪表、变频器,支持各种主流PLC。
2.通过巨控模块网口采集PLC或者仪表数据, 支持各种主流PLC。
3.可直接连接开关量信号,模拟量传感器,省去现场PLC采集。
4.可连接上位机SCADA、DCS数据,实现上位机系统报警。

PLC短信报警系统功能
1.使用微信关注公众号,可以在现场设备故障时,接受报警推送。
2.手机可以接受到短信报警,短信报警之前可以设置拨号提醒。
3.可以实现报警后,值班人员通过手机和电话,接受到语音播放报警。
4.可以在手机APP上单独禁用或者启用某个报警,防止误报警。
5.现场可选配声光报警器,实现远程和本地均有报警通知。
6.可以给客户定制微信界面,定制企业公众号,达到更好的宣传作用。

PLC短信报警优势
1.分组优先级发送,黑白班值守,定时发送设备信息多种灵活配置。
2.具备重复发送,报警拨号,短信恢复,短信确认报警等机制。
3.大容量缓存技术,多个报警并发产生,不会丢失。
4.配合APP可查看历史报警,历史数据,修改报警阀值,禁用报警。
5.内置语音合成,模块只需配置好短信文字内容,报警时会自动读出,播放语音。
6.模块具备通讯自诊断和自恢复功能,采用双重看门狗设计,稳定性高。
作者自我介绍:工控小周
人们中眼的天才之所以卓越非凡,并非天资超人一等,而是付出了持续不断的努力。1万小时的锤炼是任何人从平凡变成超凡的必要条件。按比例计算就是:如果每天工作八个小时,一周工作五天,那么成为一个领域的专家至少需要五年。我从信捷(干了五年)出来后,做过步科独立销售,做过北辰 自己单干过 ,可是我发现通用品越来越难做,生意越来越难做,但是生活还得继续下去,我就在想,白天想,夜里想 突然想到2011年认识的巨控的总经理,他有好的产品,无线远程监控模块GRM500,于是我从无锡硕放飞广州, 经培训成了巨控产品经理,在巨控负责销售和技术,并且一直努力专注下去!一直不忘初心,经常奔赴第一现场,进行项目评估,项目实施,数据采集,工业物联通讯,上位机,APP组态等。159618(工控小周)72327创建西门子WINCC社区