新闻中心
PRESS CENTER本章节主要实现一个需求:EG8200采集西门子S7-200 Smart的数据,拼装成Json格式,通过HTTP上报应用平台。
PLC数据采集此处不做过多赘述,可参考其他案例介绍。
要实现此功能,需提前准备好以下材料。
1. PLC的IP/端口/点位表
PLC | S7-200 Smart | ||
IP | 192.168.0.30/102 | ||
点表(DB1) | |||
地址 | 数据类型 | 属性 | 名称 |
VD100 | Float | 只读 | 电机1温度 |
VD104 | Float | 只读 | 电机2温度 |
VD108 | Float | 只读 | 电机3温度 |
VD112 | Float | 只读 | 风机1温度 |
VD116 | Float | 只读 | 风机2温度 |
VD120 | Float | 只读 | 风机3温度 |
2. HTTP通信相关参数
##数据推送
url:192.168.0.34:1880/api/device/reportData
method:POST
JSON格式:
{
"devid":"123456",
"data":{
"Temperature1": 20.5,
"Temperature2": 19.96,
"Temperature3": 19.77,
"Temperature4": 21,
"Temperature5": 33.8,
"Temperature6": 26.98,
}
}
在制作流程时,基础的逻辑是根据数据走向来制作流程。其中主要工作分为三步:
第一步:通过S7协议采集PLC数据
第二步:将数据按照JSON格式进行格式化
第三步:配置HTTP请求
1. 采集PLC数据
从节点库拖入一个西门子S7节点,以及一个调试节点,调试节点用于打印读到的PLC数据,方便定位问题:
双击西门子S7节点,根据需求概述的内容填写对应的设置参数,如下图所示:
IP:PLC的IP
端口:102(S7协议通信默认端口102)
连接超时:1000ms(默认2000ms,可自定义)
通讯超时:2000ms(默认2000ms,可自定义)
数据点配置(根据帮助文档可以找到对应关系)
VD100
VD104
VD108
VD112
VD116
VD120
有的时候PLC数据点比较多,手动依次录入比较繁琐。节点支持数据点批量导入导出:
此处为语雀视频卡片,点击链接查看:plc导入.mp4
2. 数据格式化
在调试窗口可以看到读到的PLC数据如下:
HTTP通信要求payload内容符合Json格式,因此需将PLC节点输出的Json格式转换成HTTP通信需要的Json格式:
PLC节点输出Json格式 | 描述 | HTTP上报要求Json格式 |
{ "Temperature1": 23.5, "Temperature2": 22.5, "Temperature3": 32.11, "Temperature4": 16.5, "Temperature5": 56, "Temperature6": 77.3 } | 需将左侧Json格式 转换为右侧Json格式 | { "devid": "123456", "data": { "Temperature1": 23.5, "Temperature2": 22.5, "Temperature3": 32.11, "Temperature4": 16.5, "Temperature5": 56, "Temperature6": 77.3 } } |
如上所示,我们已成功利用函数计算节点将PLC读取的数据格式转换为HTTP上报所需的Json格式。这只是函数计算节点强大功能的一小部分展示,由于支持JavaScript编程,几乎任何你能想象的功能都能在此实现。
3. 通过HTTP上报
拖入一个HTTP节点,根据提示进行配置地址和请求方式,即可实现数据上报:
此处为语雀视频卡片,点击链接查看:HTTP上报.mp4
服务端返回成功,至此,数据上报已经完成,很简单几步即可实现:采集PLC数据HTTP上报。
所有的流程支持以json格式导入导出,方便与其他人分享做好的流程。本章节的流程json文件如下,复制后在菜单栏右上角选择导入粘贴即可,导出同理。