前阵子我去一家做汽配的小厂帮忙,老板一句话把我逗笑了。他说:“我们车间不是没有数据,我们是有人天天拿本子抄数据。”这话听着像段子,其实太真实了。设备跑得好好的,产量、节拍、报警、温度、电流明明都在PLC里,最后还得班长每小时抄一次,再拿Excel录进去。人累不说,错一位数,后面整张报表都偏了。
这次项目不大,主控就是一台S7-1200,带几台变频器和一块称重模块。老板的要求也不高,不上MES,不搞大屏,先把关键数据稳定送出来,能给质检、计划和设备部共用就行。很多人碰到这种活,第一反应是“直接上组态软件”。我没这么干。因为他们最缺的不是画面,而是一条靠谱的数据通路。
我最后选的是OPC UA网关。原因很简单,S7-1200本身数据结构清楚,现场要接的系统又不止一个。今天你接报表,明天可能要接安灯,后天还想把能耗拉出来。要还是每来一个需求就单独开一条通讯,后面肯定越接越乱。OPC UA这玩意儿,别被名字吓到,你就把它理解成“给PLC数据开一个统一窗口”,谁要看数据,按规矩从这个窗口拿。
现场真正花时间的,不是接线,也不是网关上电,而是前面的点位整理。我最近做这类项目都有个习惯,先不急着连,先拉着工艺、设备、质量三边的人开个小会,问清楚他们到底要什么。比如设备部想看停机原因和电机电流,质量部更关心压装位移和合格计数,计划那边其实只想知道当前班产和每小时节拍。你不先问明白,最后很容易把一堆没人看的数据搬上去,真正该拿的反而漏了。
那次我一共整理了68个点位,最后真正上线长期使用的只有27个。是不是听着有点打脸?但现场就是这样。不是点越多越高级,而是拿出来的数据要真有人用。比如某个气缸的到位信号,调试时我们天天盯,真到正式运行,根本没人关心;反倒是“换型后首件合格时间”和“单班微停次数”这种指标,现场主管天天追着问。
接OPC UA网关的时候还有个坑,很多新手容易忽略,就是变量命名。PLC里原来为了编程顺手,大家常写M100.0、DB12.DBD4、Temp1、Run_Flag这种名字。程序员自己看得懂,别人一接系统就抓瞎。我那次硬是花了半天,把要开放的点位重新做了映射,按“产线-工位-变量含义-单位”统一命名。比如“Line1_Press_Force_kN”“Line1_Shift_Output_Pcs”。这一步特别土,但特别值。后面无论谁接系统,一看名字就知道是什么。
数据通了以后,最直接的效果是省人。以前班长每班要抄4次表,一次十几分钟,三班倒一天差不多光抄数据就快两小时。现在系统自动抓,班长只需要核对异常值。按他们自己的统计,单是日报录入这块,每天就省了1.5小时左右。更关键的是,以前数据总有“补填”和“回忆填写”,现在时间戳都是实时的,哪台机几点停、停了多久,谁也赖不掉。
还有个变化,是我一开始没想到的。以前设备部和生产部老吵,设备说“你们乱操作导致停机”,生产说“机器本来就不稳定”。数据拉出来以后,很多扯皮自然就少了。比如一段时间里,2号压机每天上午9点左右都有两三次微停,最后顺着时间一查,发现不是机械问题,是换班后第一批料尺寸波动大,导致压装判断窗口老是卡边。这个问题以前全靠感觉,谁声音大谁有理;现在有数据,事情就好谈了。
当然,OPC UA网关也不是一接就天下太平。我踩过一个坑:采集点太快,什么都想抓,结果网关和上位数据库都挺累,现场网络也跟着抽风。后来我把点位按用途分层,像运行状态、报警这类需要及时看的,采快一点;像班产累计、配方编号这类变化慢的,采样周期就放宽。别一上来所有点都100毫秒,真没必要。工厂不是实验室,稳比快重要。
如果你现在也在考虑给S7-1200往外送数据,我建议先把事情想简单一点。第一步不是买软件,也不是买服务器,而是先列清楚三张表:必须实时看的点、需要留历史的点、只在追故障时才会用到的点。三张表一分开,项目难度能掉一半。
我一直觉得,PLC数据最可惜的地方,不是采不到,而是采到了没变成行动。你把数据从控制柜里抠出来,不是为了好看,是为了少抄表、少扯皮、少凭感觉拍脑袋。真能把这三件事解决掉,项目就算没白做。
你们现在车间的数据还是靠人抄,还是已经开始自动采了?中间踩过什么坑,欢迎在评论区说说。