跳到主要内容

AI 驱动文档

您想了解什么?

MES 与 PLC 集成模式

本页是控制工程师参考手册,描述相机在实际工厂中的集成方式。它与 Integration Builder(用于生成 Node-RED 流)以及 IO Helper(用于生成接线+ API 调用序列)配套。

标准架构

在 90% 的安装场景中,路径为 MES → PLC → Camera,而不是直接从 MES → Camera。

                        Per-part decisions (ms)        Aggregate decisions (sec)
------------------------ --------------------------
Barcode scan ----+
Operator HMI ----+--> PLC --recipe ID--> Camera
MES work order --+ ^ |
| <--pass/fail-- |
| <--defect class--+
Reads result,
fires reject gate
in 10-50ms PLC packages event
{WO, lot, serial, recipe,
+----------------------------> result, defect, timestamp}
|
v
MES
(OEE, quality, traceability,
hold-the-order decisions)
|
v
ERP

关键要点:

  • PLC 做出每件的拒绝判定。它必须在毫秒级做出响应。MES 做不到这一点(太慢、不可确定)。
  • 相机 将通过/失败的结果报告给 PLC,而不是直接报告给 MES。
  • Recipe selection 通过 PLC 流转。MES 可能决定 which recipe 应该运行,但 PLC 将 recipe ID 写入相机(通过 EtherNet/IP O.Data[4-5] 或等效的 PROFINET 字)。
  • MES 从 PLC 接收上下文化事件(work order、lot、serial、station、recipe、pass/fail、defect class),并做出聚合决策(当 scrap rate 超过阈值时暂停工单、通知质量工程师、更新 OEE)。
  • PLC shift register 将检验结果与下游拒绝门位置同步,时间以编码器脉冲为索引。

三种模式

A. PLC 向 MES 汇报(标准模式)

默认模式。PLC 处理实时拒绝。PLC 将带有工单上下文的结果打包并通过 OPC UA 或 MQTT 转发至 MES。

适用场景: 任何带 PLC 的生产线。在汽车、包装、食品/饮料、制药等行业常见。

端点序列(在调试/投产时仅设置一次):

步骤方法路径目的
1GET/edge/download/industrial_ethernet/ethernet_ip_eds下载 EDS 文件(固件匹配)。交给 PLC 程序员。
2POST/edge/recipe/change_plc_recipe_id将 camera 的 recipe 映射到 PLC 友好 ID(1、2、3…),以匹配 MES SKU 代码。
3POST/edge/environmental_variables将 plant context(产线代码、MES URL)持久化,用于 Node-RED flow。
4GET/edge/nodered/flow读取活动的 Node-RED flow。
5POST/edge/nodered/flow部署更新后的 flow,搭载 OPC UA / MQTT 发布器。

B. 相机与 PLC 并行发布(现代并行架构)

PLC 仍然处理不合格件的判定。相机也直接向 MQTT 或 OPC UA 发布更丰富的有效载荷(image_ref、defect class、confidence),用于历史数据库、仪表板和 AI 训练。与 PLC 路径并行运行,而非取代它。

使用场景: 实施 Unified Namespace 的工厂(HiveMQ + Ignition + Grafana、Litmus Edge、HighByte)。新建的工业4.0 站点。

端点序列:

StepMethodPathPurpose
1GET/edge/nodered/flow读取当前活动流程。
2POST/edge/nodered/flow部署一个 flow,使用 mqtt-out(或 sparkplug-out),指向你的代理服务器。
3GET/edge/capture_result可选:在初始同步期间回填历史结果。
4GET/edge/capture_result/{capture_id}/heatmapOV80i:获取失败检查的缺陷热图 PNG。

相机内置 MQTT 代理服务器,地址为 ws://{camera_ip}:9001/mqtt,因此小型部署无需外部代理服务器。

C. 独立模式(无 PLC)

没有生产 PLC。操作员应用程序或云 MES 通过 REST 直接与相机通信:拉取工单、切换配方、触发检查、获取结果。操作员即执行器。

使用场景: 返工工位、实验室检查、来料检验、带平板的 Tulip 风格云 MES,以及退货/反向物流。

不推荐用于: 高速传送线(无法实现实时拒绝)、需要具备认证 PLC 安全逻辑的受监管环境。

端点序列(每次检查):

StepMethodPathPurpose
1POST/edge/api/recipes/{plc_recipe_id}/activate切换到与扫描条码/工单匹配的配方。
2POST/edge/camera/capture通过 REST 触发一次检查。
3GET/edge/capture_result轮询获取最新结果(或订阅 MQTT 以实现推送交付)。
4POST/edge/v2/capture/{capture_id}/notesOV80i:将工单上下文附加到捕获以实现可追溯性。
5POST/edge/camera/do可选:由 MES 应用触发一个堆栈灯段。

规范的检查结果结构

无论模式或传输方式如何,这都是通用有效载荷。请将其作为相机与 MES 之间的契约。

字段类型必填示例
timestampISO 86012026-04-13T14:23:51.234Z
part_idstringSN-A7841
lot_idstringL-2026-04-13-A
work_orderstringWO-78451
station_idstringSTA-INSP-3
recipe_namestringBottle 330ml v3
resultenum (PASS / FAIL / INCONCLUSIVE)PASS
defect_classstring[]["scratch", "dent"]
confidencefloat (0.0 to 1.0)0.987
image_refURIs3://acme-vision/2026/04/13/cap-12345.jpg
operator_idstringop.jane.doe
cycle_time_msinteger187

常见误解

"MES 告诉相机应该使用哪一个配方。" 在标准 PLC 架构中,这是错误的。MES 告诉 PLC。PLC 告诉相机。唯一的例外是 Pattern C(没有 PLC)。

"MES 做出拒绝决定。" 错误。是 PLC 做的。MES 只做聚合决策,例如“如果废品率超过 2% 则暂停工单。”

"相机直接向 MES 汇报。" 在标准架构中这是错误的。相机汇报给 PLC。PLC 将数据打包并带上上下文后转发给 MES。唯一的例外是 Pattern B 的并行路径,其中相机 也向 MQTT/UNS 发布更丰富的有效载荷用于分析,但这条路径与 PLC 路径并行运行。

下一步

  • 使用 IO Helper 将相机 + PLC + 传感器连线并生成 EDS 文件、位映射,以及 MES 集成脚手架。
  • 使用 Integration Builder 基于自然语言描述生成实际的 Node-RED 流(MQTT 发布器、OPC UA 写入器、向 MES 发送 REST POST 请求 等)。