本文跟大家分享,以WINCC组态软件为例结合IFTTT使用Vbscript脚本,实现发送Email邮件的方法
主要内容:
1、IFTTT是什么
2、XMLHTTP
3、配置IFTTT
4、Vbscript脚本
WINCC版本:V7.5 ASIA
IFTTT,是一个新生的网络服务平台,通过其他不同平台的条件来决定是否执行下一条命令。即对网络服务通过其他网络服务作出反应。IFTTT得名为其口号“if this then that”。
不了解的可看下知乎上的Q&A:https://www.zhihu.com/topic/19607376/top-answers
1.MSXML
MSXML(微软XML核心服务,Microsoft XML Core Services),它提供了一组服务,让用户可以使用JScript、VBScript等微软的开发工具来执行或开发基于XML的本机应用程序。
如这篇文档提到的XMLDOM对象(MSXML以COM接口(Interface)的形式提供的一套XML的分析器(parser),从而实现了DOM)。 目前MSXML 6.0是最新版本,系统中通常还包含MSXML 3.0版本。再低的版本已经过时,尽量不要使用。
2.XMLHTTP对象
XMLHTTP 对象提供了对 HTTP协议的访问,包括 POST 和 HEAD 请求以及普通的 GET 请求的功能。XMLHTTP 可以同步或异步地返回 Web 服务器的响应,并且能够以文本或者一个 DOM 文档的形式返回内容。
尽管它名为 XMLHTTP,但并不限于和 XML 文档一起使用:它可以接收任何形式的文本。
关于XMLHTTP更多的信息:
http://www.w3school.com.cn/xmldom/dom_http.asp
3.创建XMLHTTP对象
通常有3种创建方法:
Microsoft.XMLHTTP
MSXML2.XMLHTTP
MSXML2.XMLHTTP.6.0
与所有COM组件一样,每个版本的MSXML都会公开自己的一组CLSID和ProgID。
Microsoft.XMLHTTP是低本,一般是msxml2.6以下版本使用,ProgID首先在MSXML 1.0中引入,通常映射到MSXML 3.0对象和msxml3.dll
MSXML2.XMLHTTP是高版本,通常映射到MSXML 3.0对象和msxml3.dll
MSXML2.XMLHTTP.6.0,可以指定版本,映射到MSXML 6.0对象和msxml6.dll
1.this配置
登录IFTTT,选择新建Applet
选择this
搜索”Webhooks“,打开进行配置
配置一个web request
输入一个事件名称,然后点击“Create trigger”完成this配置。
2.that配置
选择that
选择“Email“应用
配置一个Email,用来接收IFTTT发送的邮件
设置subject(邮件的主题)和body(邮件的内容),可以使用默认内容,然后点击“Create trigger”
接收邮件的地址默认为注册IFTTT账号邮箱,启用“Receive notifications when this Applet runs”,然后点击“Finish”完成that配置。
IFTTT配置就完成了,方式是不是比较简单!当收到WINCC的Web request后将会触发推送邮件到指定邮箱。 VBscript通过MSXML2.XMLHTTP .6.0对象,向IFTTT发送带data的HTTPS请求:
https://maker.ifttt.com/trigger/{Event}/with/key/{Your key}
Dim objHttp
Dim URL
Dim Request_JSON_Data
'data包括value1、value2、value3
Request_JSON_Data = "{""value1"": ""123"",""value2"": """",""value3"": """"}"
URL="https://maker.ifttt.com/trigger/winccdata/with/key/bZRPVrtEiyhH481Reft5Dx"
'引用MSXML6.0创建XMLHTTP
Set objHttp = CreateObject("MSXML2.XMLHTTP.6.0")
On Error Resume Next
'设置false,启用同步请求
objHttp.open "POST",URL,False
objHttp.setRequestHeader "Content-Type", "application/json"
objHttp.send Request_JSON_Data
'输出文本形式的响应
HMIRuntime.Trace objHttp.responseText & vbCrLf
Set objHttp = Nothing
正确发送请求后,IFTTT Webhooks将Response如下内容:
Congratulations! You've fired the winccdata event
IFTTT也可以把信息推送到其他应用程序,总之玩法多多,自行研究。
若觉得文章对你有帮助,随手点好看、分享,也是支持和鼓励。
扫描下面二维码、关注后,在底部菜单中可查看更多内容!
微信公众号:scadaclub
长按识别图中二维码关注