PLC数据通过HTTP推送给MES,JSON格式适配MES接口

WebApi在工业制造中的应用 Web API在MES系统中的应用具有广泛的前景和重要的价值,帮助开发人员更加高效地构建和管理Web服务,实现数据的实时交互和共享,提高系统的安全性和稳定性,以及优化系统的性能和可扩展性。 阅读详情

冯工聊数采NodeSCADA · 工控老兵手记 · PLC数据推送MES HTTP JSON对接 数据格式映射


上一篇聊了几种对接方式的选型思路,这篇来说HTTP推送的具体操作。

大多数情况下,拦住人的不是"推不推得出去",而是"格式对不上"。本篇就围绕这一个问题说清楚。
在这里插入图片描述


先说说这个项目的背景

去年做了一个注塑车间的数采项目,现场十几台海天注塑机,原来靠人工抄表,老板想上MES做产量统计和异常预警。

MES是他们之前招人搭建的,预留了一个HTTP接口,要求每分钟推一次数据,格式是这样的:

{
  "factoryCode": "HT",
  "reportTime": "2025-05-20T08:30:00+08:00",
  "devices": [
    {
      "deviceCode": "INJ-01",
      "cycleTime": 28.5,
      "shotCount": 128,
      "status": 1
    }
  ]
}

字段都是他们系统里定义好的,改不了。

采集这边从注塑机读出来的原始数据长这样——点位名是按我自己的命名规范来的,值是直接从寄存器读出来的:

INJ01_cycle_time  = 28.5
INJ01_shot_count  = 128
INJ01_run_status  = 1

字段名对不上,结构也不一样,这就是每次做HTTP对接基本上都会遇到的问题。


为什么不能直接推

很多人遇到这个问题的第一反应是:在采集软件里把点位名改成MES要的字段名不就行了?

改是能改,但有几个麻烦:
网关不支持。 你可以调研一下,市面上网关对于数据格式的自定义支持非常有限,比如有人网关是基于字符串替换做的,不支持数组,除非你没一个都手动编辑进去。可替换的数据也十分有限,不支持时间格式的自定义

命名规范冲突。 采集点位通常有自己的命名规范,方便在采集层做监控、报警、历史存储。如果为了迁就MES把命名改掉,采集这边的逻辑全乱了,其他用到这些点位的地方都得跟着改。

一份数据可能要给多个系统用。 这个项目里,同样的数据还要推给老板的看板大屏,那边要的格式又是另一套。你没法让采集点位同时满足两边的命名要求。

MES接口会变。 IT部门偶尔升级系统,接口字段名调整了,你不可能跑去改一遍所有点位名。

正确的做法是:采集层保持自己的命名规范不动,在推送这个环节做一次格式转换,把数据按对方要求的结构"重新组装"一遍再推出去。


自定义推送模板是怎么解决这个问题的

我现在用类似于NodeSCADA做这类项目,它的HTTP推送支持自定义模板,用的是art-template语法,模板里可以跑完整的JavaScript逻辑。说白了不只是"把点位值填进去",而是可以在推出去之前对数据做任意处理。

先说最基本的用法。对应上面那个注塑机的例子,模板大概是这么写的:

{
  "factoryCode": "HT",
  "reportTime": "{{ date(new Date(), 'yyyy-MM-ddTHH:mm:ss+08:00') }}",
  "devices": [
    {
      "deviceCode": "INJ-01",
      "cycleTime": {{ INJ01_cycle_time }},
      "shotCount": {{ INJ01_shot_count }},
      "status": {{ INJ01_run_status }}
    }
  ]
}

模板里写MES要的字段名,花括号里填采集侧的点位名,推送时自动把当前值填进去。采集点位命名不用动,MES字段改了只改模板,要给第二个系统推就再配一套模板,互不影响。

但这只是入门用法。真正让我觉得好用的,是模板里能跑JavaScript这件事。

数据筛选。 比如MES只想收采集数据中部分数据。模板里直接加判断:
在这里插入图片描述
上面逻辑中筛选了名称中带 _推送 的数据点, 当然也可以灵活地 设置 推送A 推送B 给不同的系统推送不同的数据

数据换算。 采集出来的原始值有时候需要转换单位或者做量程换算。比如从寄存器读出来的压力值是原始整数,要换算成实际工程量:

"pressure": {{ $value * 0.1 }}

直接在模板里算好再推,MES收到的就是可以直接用的工程值。

联合计算。 这个项目里有个需求,MES要的是综合OEE里的"性能开动率",需要用理论节拍除以实际节拍计算出来,而理论节拍是固定值,实际节拍是采集值。这种跨点位的计算,在模板里同样能直接做:

"performanceRate": {{ (28.0 / $value* 100).toFixed(1) }}

推过去的就是百分比数值,MES不需要知道这个数是怎么算出来的。

这些能力加在一起,意味着大多数"数据格式对不上"的问题,都可以在推送模板这一层解决掉,不需要在采集侧和MES侧之间再搭一个专门做数据处理的中间服务。

const a1 = V('a1'); // 电流
const v1 = V('v1'); // 电压
const p1 = a1 * v1 // 功率

推送失败了怎么办

格式配好之后,第二个要考虑的是可靠性。

网络在工厂里不是百分之百稳定的,MES那边也有重启维护的时候。推送失败了,这段数据是就这么丢了,还是有机制补回来?

这个问题很多数采软件压根没考虑。我碰过一个案例,某品牌网关做HTTP推送,网络抖了两分钟,这两分钟的数据直接没了,MES那边产量数据出现缺口,报表对不上,搞了半天才查出原因。

NodeSCADA在这块把两种场景分开处理,我觉得设计得比较务实。

第一种:推送当前状态。 每次触发推送时,直接取最新的采集值组装发出去。网络断了会自动重连,恢复之后继续推。这种方式轻量,适合MES只关心"现在是什么值"的场景——比如设备运行状态、当前转速、实时温度,断线那段时间的历史数据本来也用不上。

第二种:从本地数据库推送。 采集数据先落库,推送任务维护一个时间指针,每次从上次推送的位置往后取数据发出去。推送失败了,指针不往前移,下次重试还是从失败那条开始,数据不会漏。这种适合对数据完整性要求高的场景——比如产量计数、能耗统计,每一条记录都不能丢。

这个注塑机项目用的是第二种,MES那边做产量报表,断线期间的数据必须完整,选历史库推送,网络恢复之后自动补上,MES这边完全感知不到中间断过。

两种方式按需选,看你MES那边对数据的要求。


推送频率设置好

还有一个细节经常被忽略——推送频率。

采集侧1秒刷新一次是正常的,但HTTP推送1秒一次,对大多数MES来说压力不小,尤其是自建系统,接收处理能力有限。我习惯在对接之前先问IT那边:你们接口能承受多少并发,每秒能处理多少条请求。

这个注塑机项目,最终定的是每分钟推一次,每次把这一分钟内的最新值打包推过去。产量统计用不着秒级数据,MES那边也稳定,皆大欢喜。

如果确实需要高频推送,就得考虑换MQTT,那是下一篇的内容了。


如果你在做类似的项目,可以去看看NodeSCADA(nodescada.cn),HTTP推送、自定义模板、两种数据源都支持,文档里有详细说明,省得自己从头搭。


冯工聊数采NodeSCADA · 持续更新工控数采实战经验

C#上位机对接MES系统,除了HTTP API,这几种工业协议(MQTT/OPC UA)怎么选? 本文探讨了C#上位机对接MES系统时,除HTTP API外的工业协议选型策略。重点分析了MQTT和OPC UA协议在实时性、数据吞吐量及网络稳定性等方面的优势,提供了C#实现代码示例和场景适配建议,帮助开发者在工业互联网环境中构建高效可靠的数据采集系统。 阅读详情

相关推荐

上位机与 MES 数据交互方案 深度选型指南

在智能制造落地过程中,上位机与 MES(Manufacturing Execution System,制造执行系统)的数据打通,是实现工单下发、生产报工、设备状态采集、品质追溯、产能统计全流程数字化的核心环节。方案不能一概而论,必须结合现场网络环境、数据实时性指标、整体系统架构、企业现有技术栈四大维度综合判定。大多数情况下都是MES提供数据接口,上位机按照MES的要求进行实施。本文梳理工业项目落地最多的 6 套成熟交互方案,拆解实现逻辑、优缺点与精准适用场景,并给出可直接落地的选型策略。

逆流而上的技术学习,真诚携手共进之陪伴的博客 246

SCADA数据如何传输到MES

SCADA与MES的数据交互,本质是OT(运营技术)与IT(信息技术)的深度融合,WEB SCADA是企业数字化转型与升级的关键,也是企业为构建“透明工厂”,“灯塔工厂”,“新质生产力”奠定数据底座,服务国家“制造强国”战略。随着《数据要素×三年行动计划》实施,此类跨系统数据流动的价值将进一步释放。

专注一款Web技术的SCADA平台的研发、应用与推广 2407

C#上位机与MES系统数据对接:从协议选型到安全传输的实战解析

本文详细解析了C#上位机与MES系统数据对接的全过程,从协议选型到安全传输的实战技巧。针对工业互联网场景下的数据对接挑战,提供了RESTful API、MQTT和OPC UA等协议的选型建议,并分享了健壮性设计、异常处理和安全传输的实用代码示例,帮助开发者高效实现数据上传与系统集成。

weixin_30566063的博客 105

PLC检测数据同步MES一体化解决方案

在信息化ERP软件广泛应用的时间里,我们做了很多软件与软件的接口,ERP/SRM/CRM/WMS/PDM/HR等等很多,这些软件与软件之间的接口是打破软件与软件之间的孤岛,在不同的软件发挥各自己长处的时候,还能实现软件与软件的数据交互。在第1种方式的前提下,我已经把PLC的数据都准备好了,都有规范的接口,如果客户没有开发能力来取你的数据或者说客户要求你把数据传给他,那么我们需要根据客户的要求,把自己已准备好的数据分发推给客户即可。取PLC的数据时,我们可以配置取PLC地址的信息或者取自定义的值。

yanyulong0的专栏 318

工业自动化核心:上位机与PLC/SCADA/MES无缝对接实战

工业自动化中,上位机与PLC/SCADA/MES的无缝对接,本质不是技术的堆砌,而是数据的标准化流转和系统的分层解耦——没有万能的协议,只有分层的标准化;没有完美的架构,只有适配场景的解耦设计。设备层用做工业通信,集控层与管理层用做跨系统通信,是工业现场最兼容、最稳定的组合;全系统统一数据格式、统一时间戳、统一命名规范,是解决数据杂乱的核心;本地缓存、断点续传、数据校验,是保证工业现场7×24h无缝对接的必备机制;联调的核心不是解决技术问题,而是团队协作和规范落地。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 679

车间数据孤岛终于破了!C#上位机+MQTT打通产线与MES,数据延迟从小时级降到秒级

本文针对工业上位机开发中常见的车间数据与企业管理系统(MES)割裂问题,提出基于C#和MQTT协议的完整解决方案。通过EMQX MQTT Broker实现数据实时双向传输,将质量追溯时间从2小时缩短至10秒,生产计划自动下发,实现秒级数据延迟。方案采用分层解耦架构,支持设备更换和系统升级,核心优势包括低延迟、高可靠性和易扩展性。文章详细介绍了MQTT协议选型理由、整体架构设计、技术选型(EMQX Broker和MqttNet客户端),并提供了C#实现代码和部署流程。该方案已在实际产线验证,可有效解决&quo

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 480

DAMO-YOLO工业落地:与PLC联动触发报警的API接口调用示例

本文介绍了如何在星图GPU平台上自动化部署DAMO-YOLO智能视觉探测系统镜像,并实现其与工业PLC的联动。通过调用该镜像提供的API接口,可快速构建如安全帽佩戴检测等工业安全监控场景,实现从AI视觉识别到自动化报警触发的闭环应用。

weixin_28721743的博客 517

Windows一键运行的MES-PLC通信模拟器(Python打包版)

直接双击就能启动的MES与PLC双向数据交互模拟工具,专为工业自动化场景设计。不依赖真实PLC硬件或MES服务器,所有通信过程通过内存变量实时模拟:MES端可下发工单号、工艺版本、启停指令等控制参数;PLC端能回传设备运行状态、当前产量、报警代码等反馈信息。核心逻辑由main.py驱动,全局变量结构统一定义在GVL.py中,确保数据格式与真实产线一致。已打包为独立可执行文件MES虚拟测试系统 V1.0.exe,Windows系统下免安装即用,无需配置Python环境。源码完整包含venv虚拟环境、PyIns

ww90123的博客 296

利用JavaScript实现跨品牌PLC(欧姆龙、三菱、施耐德)的高效数据采集与控制

本文详细介绍了如何利用JavaScript结合开源工具LECPServer,实现跨品牌PLC(欧姆龙、三菱、施耐德)的高效数据采集与Web控制。通过将工业协议转换为RESTful API,开发者可使用熟悉的Web技术栈构建实时监控看板,降低工业自动化系统开发与部署成本,并提供了从环境配置到实战代码的完整指南。

m9n0o的博客 193

C#上位机与MES传输中间层方案:PLC数据采集与补偿机制详解

在工业数字化转型中,设备与管理系统之间的数据孤岛是常见瓶颈。上位机作为车间控制层与信息化系统的桥梁,承担着协议转换、数据缓存与可靠传输的关键职责。本文基于C#技术栈,系统介绍如何构建PLC到MES的传输中间层,涵盖设备通信模块、点位配置、增量上报及异常补偿等工程要点。通过本地SQLite缓存与幂等上报设计,确保网络抖动或MES短暂不可用时数据不丢失。该方案适用于智能制造、产线监控等场景,为上位机开发与系统集成提供一套可落地、可验收的参考架构,帮助工程师高效完成数据采集与对接任务。

weixin_32466193的博客 59

C#工业上位机与MES系统高可靠对接框架设计

工业上位机是连接PLC与MES系统的数据枢纽,其核心在于稳定通信、协议适配与数据闭环。基于.NET原生实现的C#上位机框架,需兼顾OPC UA/自定义JSON-RPC双通道、断网缓存、序列号防重放与字段级CRC校验等关键技术点,以支撑产线每秒数百次实时上报。该方案不依赖第三方中间件,适用于西门子S7-1500、三菱Q系列等主流PLC直连场景,并满足GB/T 20985-2022数据封装规范。面向智能工厂改造中的自动化工程师与MES集成人员,解决‘通了之后不停机、不丢数、可追溯’这一工程落地本质问题。

weixin_29210727的博客 283

AOI检测反哺MES实现工艺闭环的实战路径

工业视觉检测(AOI)正从孤立质检工具演进为制造系统的工艺神经末梢。其核心原理在于打破设备协议、系统语义与业务逻辑三重壁垒,将缺陷数据升维为带毫米级坐标、毫秒级时间戳、工艺参数快照和可执行指令的‘工艺指令基因’。这种能力赋予检测环节实时反哺工艺优化的技术价值——如锡膏厚度缺陷驱动印刷机刮刀压力自适应调整,桥连缺陷触发回流炉温区PID微调。典型应用场景覆盖PCB、SMT、光伏电池片等高精度电子制造产线,尤其适用于良率瓶颈明显、亟需数据驱动工艺迭代的制造企业。本文聚焦AOI与MES全链路集成中协议适配、语义对齐

weixin_32770423的博客 146

MES与ERP、SCM、WMS等系统集成方案:接口清单、数据流向与落地实践

在制造企业数字化转型中,系统集成是打通计划、执行与供应链数据链路的关键环节。ERP、MES、WMS、APS等系统各自承担不同职能,但数据孤岛往往导致库存账实不符、生产进度失真。企业服务总线与接口技术通过规范的数据映射和消息队列机制,实现跨系统实时协同。接口清单与字段级映射表是落地的核心工具,数据集成平台则提供标准化连接能力。针对MES与ERP、SCM、WMS、APS、SCADA、PLM、QMS的集成优先级评估,涵盖主数据同步、实时数据流、消息队列选型等工程实践,帮助制造企业信息团队规避常见集成陷阱。

weixin_34392435的博客 501

凯恩帝CNC REST API接入指南:机床数据采集与MES集成实战

REST API作为现代设备互联的标准接口,正逐步渗透到工业现场。它通过HTTP协议将设备内部状态映射为可访问的资源,使数据采集不再依赖私有协议或人工抄录。理解资源映射、令牌认证与统一响应模型,是稳定对接的基础。在实际车间场景中,利用REST API读取轴坐标、下发NC程序、查询报警,能构建出高效的设备数据通道,为MES、看板及DNC系统提供实时数据支撑。本文以凯恩帝CNC系统为例,从接口设计原理出发,逐步演示核心调用代码,并总结令牌失效、字段单位差异、轮询频率等常见故障排查方法,为设备联网与数据采集项目提

weixin_31423955的博客 165

MES与七大系统集成:边界划分、数据流设计与接口落地指南

制造执行系统(MES)是连接计划层与设备层的关键枢纽,常需与ERP、SCM、WMS、APS、SCADA、PLM、QMS等系统协同,形成完整的生产管理闭环。集成的核心并非功能对比,而是数据边界的划分与流向设计:ERP管理计划与结果,MES负责执行与过程;WMS管控实物移动,MES只发出请求。通过API、消息队列或中间库实现接口对接,辅以工单跨系统状态机、幂等键和定期对账SQL,可有效解决数据不一致、批次追溯断链等工程难题。这套方法论广泛应用于数字化车间建设,对提升生产追溯能力与系统稳定性具有直接价值。

weixin_34232744的博客 326

云MES落地四大硬核关卡:协议穿透、报工闭环、云边容错与数据验真

制造执行系统(MES)是连接计划层与设备层的核心枢纽,其本质是工艺逻辑、设备交互与人机协同的工程化实现。云MES并非开箱即用的SaaS服务,而需攻克设备协议兼容性、现场操作闭环性、云边协同可靠性及数据源头可信度四大技术基座问题。尤其在工业现场,PLC原生协议直连、扫码报工物理锁止、边缘规则引擎自治、本地SQLite断网缓存等实践,直接决定系统能否真实驱动产线运转。本文聚焦冲压、装配、涂装等典型产线场景,提供基于开源工具链的可验证方案,覆盖西门子S7、三菱MC、欧姆龙FINS等主流协议,并强调数据偏差<0.5

weixin_33834137的博客 287

MES模块验收:从纸面指标到产线证据链

制造执行系统(MES)是连接企业计划层与车间控制层的核心枢纽,其模块验收本质不是功能点确认,而是对‘设备-人-料-法-环’实时耦合行为的可测量、可追溯验证。理解MES数据采集、业务执行与分析决策三类模块的技术原理,关键在于绑定真实PLC寄存器、扫码日志、数据库事务等物理证据源。这种基于产线场景的验证方法,显著提升系统上线后的可用性与问题定位效率,广泛应用于汽车零部件、电子装配等离散制造场景。本文聚焦MES模块验收实践,深入拆解设备断连重连、扫码缓存溢出等高频致命路径的验证逻辑与自动化证据采集方案。

weixin_34353714的博客 282

锂膜产线MES+ERP双系统协同设计与实时控制边界划分

锂电池隔离膜(锂膜)作为高精度连续化薄膜制造代表,其生产依赖毫秒级工艺闭环与跨系统数据穿透。理解‘流式制造’本质是掌握MES与ERP分工前提:MES需承载张力PID反馈、烘箱温区动态映射、缺陷图谱实时标注等实时控制逻辑;ERP则聚焦BOM动态替代、设备OEE归因、VMI库存联动等资源统筹决策。二者交界非简单API对接,而是PLC字节级硬接、工单状态原子更新与版本语义校验的深度咬合。技术价值在于避免‘系统在跑、产线在等’的逻辑断层,支撑涂布-干燥-分切全链路良率管控与OEE提升。本文以锂膜真实工况为锚点,解析

weixin_33841503的博客 256
上一篇: PLC数据对接MES,有哪几种方式?HTTP、MQTT、OPC UA怎么选
下一篇: 设备数据怎么通过MQTT推送到MES或IoT平台?
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值