离散制造产线设备数据同步:踩过十几次坑才摸透的设计要点

汽配厂新上的冲压线联网,明明所有设备都能连上,数据就是对不上,废品率莫名涨了快一个点。高速包装线的赋码系统,三分之一的产品扫不出溯源信息,查来查去最后问题出在数据同步上。这不是什么小众问题,我见过至少一半的中小产线联网项目,最后都卡在这里。

为什么很多产线的设备数据同步,做着做着就废了?

我见过最离谱的一个项目,甲方花了近百万上MES,结果跑了三个月,产量统计和实际出库差了7%,追了半个月才发现,四台冲压机的系统时钟,最大差了1.2秒。刚好每台压机每秒出一件,批次切割的时候直接切错了,把上一批的算到下一批,你说离谱不离谱。

很多人做同步,第一反应就是找个好的同步算法,什么复杂的一致性算法往上面堆,其实工业场景下,90%的同步问题根本和上层算法没关系。大部分出在没人在意的物理层。

离散冲压产线设备数据同步延迟问题排查图
离散冲压产线设备数据同步延迟问题排查图

按照IEEE 1588v2工业对时标准,工业级PTP交换机的对时精度可以做到微秒级,足够满足绝大多数产线的同步需求。但很多项目为了省那几万块的设备成本,直接用民用千兆交换机接产线,民用交换机不对PTP报文做优先级处理,时钟抖动直接拉到两百毫秒以上,碰上高节拍产线,可不就出问题吗。

说实话,这点钱真的省不得。我之前那个项目,最后换了四台工业PTP交换机,花了不到八万,时钟误差直接降到10微秒以内,数据对不上的问题直接消失,废品率也掉回原来的合格水平。

工程落地的核心权衡:选拉式还是推式同步?

现在圈子里好像有种风气,说推式同步比拉式先进,上来就堆MQTT、Kafka那一套,我就想问,适合你的场景吗?

去年有个朋友找我擦屁股,他们给一个食品厂做50台封口设备的联网,上来全用MQTT推式同步,结果早班开工的时候,50台设备同时上电,同时往网关发数据,网关的128KB缓存直接爆了,一下丢了快40分钟的数据,那批原材料全废了,赔了三万多。

工业设备拉推式数据同步架构对比图
工业设备拉推式数据同步架构对比图

其实没有绝对的好坏,只有合适不合适。如果你做的是十几台到几十台的低节拍机加工产线,单台设备每秒的数据量不超过50KB,拉式同步真的比推式香太多。开发量小,稳定性高,出问题也好排查,轮询间隔设100ms,足够用了。

但是如果你做的是节拍超过10件每秒的高速包装线、焊接线,每个工件都要关联多设备的工艺数据,那推式就是必须的,不然轮询根本赶不上节拍,丢数据是必然的。不过话说回来,就算用推式,也得加网关流量削峰,把突发的流量摊开1-2秒发,别让网关直接扛峰值,这点小事,省了就是坑。我自己做项目的经验,单台设备单秒数据量超过100KB,必须用推式加削峰,没错的。

容差设计:没做异常回补的同步都是裸奔

容差设计:没做异常回补的同步都是裸奔
容差设计:没做异常回补的同步都是裸奔

工业现场的网络,能一直稳?怎么可能。车间里行车一走,信号就晃两下,运营商的专线也会断,断网十几分钟太正常了。很多项目的设备数据同步,断网的时候设备本地不存数据,网络一恢复,丢的数据就没了,最后MES里的产量、工艺数据全对不上,盘点的时候差出十万八千里。

按照GB/T 39116-2020《智能制造 生产设备联网数据采集交换规范》,联网设备必须具备离线缓存和断点续传能力,离线缓存容量至少满足24小时的生产数据存储。很多项目根本不做这一条,为了省个几十块的SD卡钱,最后出问题擦屁股的成本几十万都打不住。太亏了。

我现在做任何项目,都会给每个设备的控制单元加一块8GB的工业级SD卡,按每个数据点16字节算,存一个月的生产数据都够,网络恢复之后,设备按照时间戳排序做增量同步,冲突处理也有讲究,永远以设备本地的时间戳为准,平台侧只做去重,不要随便覆盖数据。

之前有个项目,程序员图省事,用平台侧的时间覆盖设备本地时间,结果对时不准,把新采集的数据覆盖成了旧数据,后来出了质量事故,要查原始工艺参数,根本找不到,差点赔了大几十万,这个坑我记一辈子。

还有多设备同步的冲突,同一个工件,上料工位和焊接工位的数据时间戳差在500ms以内,直接合并入库,超过这个阈值就标记成异常,推给人工复核,千万不要自动合并,自动合并十次有八次错,别给自己找事。

做工业级的设备数据同步,从来不是比谁用的算法先进,比谁的架构新潮。把底层的时钟对时、同步方式选型、异常容差这三件基础事做扎实,九成以上的项目都能稳定跑起来。那些花里胡哨的东西,不如多去现场蹲两天,摸摸实际的网络情况,数数设备的数据量,比啥都强。

免责声明:市场有风险,选择需谨慎!此文仅供参考,不作买卖依据。如有侵权请联系删除。
文章名称:离散制造产线设备数据同步:踩过十几次坑才摸透的设计要点
文章链接:https://m.yqhljx.com/list_9/2265.html