冯工聊数采NodeSCADA · 工控老兵手记 · 数采对接MES PLC数据上报 工厂数字化
做集成时间长了,有个场面见过太多次:
项目貌似一切顺利,PLC换了,网络布好了,数采这边数据跑得挺欢。然后MES那边的人来了,开了半天会,IT说"你们把数据给我",自动化这边说"你们来取啊",就这么僵着。
最后要么加钱找人搭个中间服务,要么拿数据库同步凑合,验收的时候大家心照不宣地绕开这一块。
项目拖了两个月,活没少干,钱没多挣,锅还不知道算谁的。

采到数据,和数据能被用上,不是一回事
这两件事经常被混在一起说,但本质完全不同。
采到数据,是指你跟PLC、仪表、变频器通信上了,把寄存器里的值读出来。Modbus也好,S7也好,这件事现在门槛不高,方案一堆。
但MES不会去跟你的PLC聊天。它不认Modbus,不认S7,它只吃它自己习惯的那套——HTTP接口、消息队列,或者OPC UA这类工业标准。你的数据停在采集层,它就是到不了MES。
中间那段,业内叫"北向对接",或者叫"数据上报"。这段路看着不长,但卡在这里的项目多了去了。
硬件网关这条路,没那么好走
常见的做法是上硬件网关——一个盒子,一边接PLC,一边出HTTP或者MQTT,数据就这么转出去了。这类产品我用过不少,硬件本身没什么大毛病。
但大问题不在采集这头,在数据出去那一侧。
格式是固定死的。网关给你吐出来的JSON,字段名、层级结构都是厂家定好的。但MES那边呢?每家的接口都不一样,有的要equipment_id,有的要device_code,时间戳带不带时区都得谈。你想改格式?网关不支持,只能在MES那边改接收逻辑,或者再搭一层服务做转换,成本全加在你身上。有的时候MES项目早就交付了,MES厂商不会再开发新接口了。甚至mes厂商都联系不上了,这个时候需要适配mes的接口和数据格式,网关这边格式基本是固定的,无法适配,卡在这里了。
还有个问题是管理。网关一台管一片或者只能管一台设备,厂里设备一多,就得买好几台。每台单独配置,出了问题逐台排查。我接过一个项目,现场十几个网关,配置散在各自机器里,根本没法统一管,换个人来维护直接抓瞎。时间久了,这些网关怎么登录配置页面,甚至在车间哪里装的都不知道了。
而且固件这块也是玄学。版本参差不齐,升级还怕配置丢,遇到厂家不维护的型号,有bug你也只能认了。
我不是说硬件网关没用——纯硬件环境、没有服务器的边缘场景,它是合理的。但要灵活对接上层系统,它的天花板确实很低。
软件这条路,大多数人没走通
说完硬件,软件采集这边其实也没好到哪去。
大多数数采软件,采集做得还凑合,但北向接口这块基本是个摆设。问他们怎么把数据给MES,回答要么是"导出CSV",要么是"写数据库,让MES自己去读",再好一点有个HTTP接口,但格式固定不能改,或者只能传对象,不能传列表;或者只能传列表,不支持传对象。
数据库直连这条路,我早年做项目用得多,后来越来越不想碰。
两个系统之间没有接口契约,MES直接读采集的库,采集这边表结构一动,MES分分钟挂掉。连接数一多,采集性能开始抖。出了问题,自动化和IT互相甩锅,集成商夹在中间两头挨骂,哑巴亏吃了一个又一个。
CSV就更不说了,能用,但真的没有尊严。大多数时候都搞不定客户。
说到底,这是个断层问题
做自动化的人擅长向下,跟设备打交道,但不太懂HTTP、消息队列那套;做信息化的人懂接口、懂系统集成,但Modbus和PLC对他们来说是黑盒子。这个断层一直就在,只是以前没人觉得是个大问题。
现在工厂数字化搞得越来越深,这个断层就越来越碍事。
真正能解决这件事的方案,得同时向下把数据采进来,向上用信息系统能接受的方式推出去,而且格式得能按对方的要求配,不是"我给什么你就用什么"。
这个要求说起来不高,但市面上真正把这两头都做顺的,说实话没几个。
下一篇具体聊聊HTTP、MQTT、OPC UA这几种上报方式,各自适合什么场景,选型的时候怎么判断。
冯工聊数采NodeSCADA · 持续更新工控数采实战经验

703

被折叠的 条评论
为什么被折叠?



