很多线束厂的 MES 接了 PLC,看板上节拍、产量、稼动率都有,但数据不可信。问题通常出在采集层,不在展示层。
错误一:用 I/O 点位代替工位状态
从 PLC 里读一个输出点,认为有点位就是运行、没点位就是停机。实际现场大量的中间状态读不出来:换料、待料、调机、首件确认。结果是「运行」被高估,「停机」被漏记。
错误二:计数用上升沿,却没有防抖
PLC 里一个光电开关的信号可能因为物料反光抖几下,计数器多记几个。线束行业的产品小、速度快,这个误差累积很快。解决办法是在 PLC 侧做延时确认,或者用「上升沿 + 最小间隔」双重判定。
错误三:时间戳取在采集端而不是事件端
MES 每隔几秒轮询一次 PLC,把读到的值打上采集时刻的时间戳。这个时间戳和事件真正发生的时刻可能差几秒。算节拍时,这几秒的误差会被放大。应该尽量用 PLC 自带的时钟或在 PLC 里打时间戳。
错误四:没有和工单绑定
这是最致命的。产量数据不挂工单,就只能算总量,算不出单个工单的实际工时、良率、进度。排产系统拿不到真实进度,只能靠人工填报表,MES 就退化成电子看板。
做好采集的四步
第一步,和工艺一起定义工位状态机,把停机原因分类到可统计的粒度。第二步,在 PLC 侧做信号防抖和状态保持。第三步,所有事件带上工单号和时间戳。第四步,做数据校验:日产量和电测数量、入库数量要对得上,对不上就报警。
三菱 PLC 的具体做法
FX5U 和 Q 系列都支持 MC 协议,可以直接读 D 寄存器。关键是把状态编码进寄存器,而不是用一个位表示一切。比如用 D100 存状态码(0 停机、1 运行、2 待料、3 换型),D101 存当前工单序号,这样采集端一次读取就能拿到完整语义,不用猜。
本文由奇幻维度内容助手整理发布,欢迎在评论区交流你的看法。