PLC | 西门子 Siemens S7 ISO-on-TCP 通讯协议探究——提高数据采集效率故障分析(使用边缘计算网关)
目录
众所周知,我们软件读取 PLC 数据时按照 Bool/Byte/Word/Real 等类型进行通讯,有时候,需要频繁读取 PLC 多个数据字段偏移量时,就会造成传输效率低下的问题。
需求/故障现场
- PLC 上有 100 个 word 需要读取,偏移量顺序排列,比如:从 0 - 200;
- 需要 1 秒读取 1 次数据;
- 转换后,数据转发到第三方系统:MQTT,SQL等;
- 逐个读取每个 word,两个字节,需要在一个 TCP 会话中执行 100 次请求;
- 每次请求,三个 TCP 数据传输,每次需要
15ms
(423行-421行:3.614448-3.598902=0.015546s);
- 这样的话,100次请求需要1.5546s,算上网络延迟和处理性能问题,整个过程需要2秒以上;
- 结果就是:完全达不到
1秒1次
采集的需求。
分析过程
winCC 数据采集抓包
分析过程1:采集20个 real 数据字段
- winCC 将数据包分解成 3个 item
分析过程2:采集10个 word 数据字段
- 同样原理,winCC 将数据包按照每个 item 32 个字节
自有软件数据采集抓包
每次只是读取了1个 word 数据字段
解决方案构思
- 每次按照要求,获取所有需要的数据偏移量;
- 取回来后,按照测点要求,自己根据数据类型分解出来;
- 循环读取下一次数据;
验证
读取1000个字节
- 可以看到分了5次数据,222+222+222+222+112=1000
下一步是继续验证分多个 item 进行数据采集
winCC 数据格式
- 效率高,每次只需要 <2ms,分析原因:每次读取都是连续的地址空间,不需要PLC进行分段读取;
自己代码
- 效率低,每次需要20-50ms,分析原因:每个 item 里面只有一个测点(word类型),需要分段读取;
开发过程
大概过程描述
- 由于每次请求的数据量(按测点)叠加在一起,通过 S7DataItem 来组合,最多20个 item,打包一起发送到 PLC;
- 收到每次的返回数据,再解析成对象插入二维表,等待处理;
- 全部处理完成,统一根据请求数量,返回相应的结果集;
总结
- PLC 针对于每个测点的处理时间在 1-3秒,数量越多,时间越长,是累加的;
- 100个测点,算上 TCP 包头和包尾,大概来回数据时间是 220ms左右,200个测点是 400ms左右;
- 通过这种方式,一个 PLC 建议采集点不超过 500个,虽然对 PLC 性能影响不大,但是处理时间较长,不适用1秒一次采集需求;
- 每个型号 PLC 的处理性能不一样,支持的 TCP 连接数也不一定一样,所以,要根据具体需求来决定。
效果展示
-
存入 SQL 数据库,完全控制在1秒一次采集
-
4 个 TCP 连接非常稳定
-
网关性能稳定
-
与 PLC 交互的网卡网络流量很少
改进?
- 类似 winCC 的模式,一次性读取一段偏移量,节省 TCP 开销,也节省 PLC 处理每个测点;
- 针对一次读取来的一段偏移量内容进行解析,需要对字节码流处理非常熟悉;
- 对于新建项目,比较适合用改进的方法,毕竟 PLC 可以根据需求改动测点偏移量;
解决方案
关于 亿琪软件
上海亿琪软件有限公司成立于2016年,专注于 5G 通信、AI 人工智能、边缘计算和大数据网络安全多项技术领域,致力于物联网领域前沿技术的创新,为用户提供全方位、智能化和安全的物联网解决方案。
2023年,公司发布“YiFUSION|工业边缘智能融合一体机”产品,为工业客户提供一整套的边缘计算+AI能力:高性能数据采集、多类型数据融合、AI算法集成、云端业务对接。在边缘网关的基础上,集成了 IoT 平台的边缘协同能力、本地Web SCADA 和 HMI 功能、本地数据存储、边缘 AI 视频分析、行业应用集成等。
2022年公司推出 “YiCLOUD|亿琪云”一站式物联网应用解决方案。公司的业务涵盖了智慧城市、智慧农业、智能工厂和智慧园区等多个领域,公司软硬件产品和解决方案获得华为技术认证,得到中国移动OCP认证,公司还是边缘计算产业联盟ECC成员。
感知物联,畅快无限。
联系我们
网站:http://yiqisoft.cn
邮件:support@yiqisoft.cn
电话:021-68863086
手机:186-1666-9123