数采项目实施总结
- 设备数据分类:
产量计数,设备状态,工艺参数,设备报警 - MQTT Topic 设计:
车间 / 工序 / 设备名 / 设备编号 / 数据类型 - 使用KepServerEX6.9数采规划要点:
数据分两种采集策略:
触发采集发送: 适合于报警,数据变化较少的数据,计数类数据,这样既保证了数据的准确性,也减小了数据发送数量。
周期定时采集发送:适合于设备状态及数据变化频繁的数据,优点是数据质量可靠因为前后一笔数据的间隔时间,是固定的,所以可以通过数据间隔时间来确定数据是否中断过,从什么时候中断的,什么时候恢复的;对于数据变化频繁的数据,通过固定频率来采集数据,降低了数据采集量。缺点就是数据量很大,对数采网络带宽需求大。
我们项目实际有300台设备,分布在3个车间,数采使用的5秒的固定频率采集数据,数据合计3万点,服务器这边是使用3台数采服务器采集3个车间数据,3台EMQX服务器,3台dolphindb时序数据库来接收数采上来的数据。
实际运行中出现了很多问题,主要是数据量太大,出现各种异常,数采一个OPC UA通道下,接入了5千个数据,每次刷新数据下来不能保证5秒的数据发送要求;EMQX服务器也是很多问题,阻塞,延迟及崩溃等也时常发生,dolphindb时序数据库更是各种问题。
最后因为数据量太大,造成数据严重不稳定,无法保证5秒频率数据的要求。所以又另外订阅全部数据,造成数据流量翻倍,占用大量网络带宽,造成网络丢包30%。
最终更换主干光纤才算正常下来了。
因此,本项目中最大的失误是没有整体规划,设备数据没有分类,MQTT Topic没有设计,数据采集发送没有优化,全部采用固定频率,造成大量无用数据,占用大量资源。
数据接入原则:
每个设备一个通道,每个通道下不超过500个数据点位。
尽量使用OPC UA 数据连接稳定,网络断线可以自动重连。
尽量不用OPC DA 断线无法自动从连,配置麻烦,依赖DCOM。
博图的WINCC OPC DA(可自动重连,稳定)优于 WINCC OPC DA(不自动重连,容易崩溃) 。
对实时性要求高的数据,单独配置一个通道。
连续地址,可以直接读取数组,减小读取PLC次数。
-
设备标签命名规则:
标签名字尽量使用英文,短小,因为发送数据时,会把数据封装成json格式,会多出很多数据来,把标签备注栏标记点位信息,维护起来比较明了。 -
Mqtt 网关配置:
单独的PLC设备最好每个设备分开配置,这样配置麻烦,但维护方便。
OPC UA DA 总线数据也要分类别发送,这样后期增删都方便。 -
数据分两种类型,基础型,与扩展型,基础必须要保证质量,稳定性与准确性,如:产量,状态,报警,参数,这类数据是核心数据,全力确保其质量,其他的扩展数据,与核心数据分开处理。