一、架構背景:典型ISA-95 IT/OT項目場景
|
層級
|
主要職責
|
當前演進形態
|
|
L4 企業層(ERP / Legacy / APS / PLM / CRM 等) |
計劃、調度、訂單、供應鏈
|
仍有大量 Legacy 系統(HTTP、SOAP、文件接口)
|
|
L3 製造運營管理層(MOM / MES / 執行智能層) |
執行、協調、追溯、數據整合、事件驅動調度
|
不完全等同於 MES,而是一個事件驅動的分佈式調度總線(MOM 層) |
|
L2-L1 |
控制與過程設備層
|
通過 MQTT / OPC UA / Edge Data Hub 連接上送數據
|
二、問題和對策
傳統上,L4→L3 的通信是 同步的(SOAP、REST、DB接口),而 L3→L2 則是 實時的。
這兩種通信範式在現代智能工廠裏產生“節拍不匹配”問題。Apache Camel + MQTT 的組合恰好可以起到一個“語義橋接 + 協議轉譯 + 異步解耦”的作用。
三、系統角色劃分
1️⃣ Apache Camel —— 企業集成層(EAI/ESB 模塊)
- 用作 L4 Legacy 系統的集成中間件;
- 提供超過 300 種組件(HTTP、SOAP、JDBC、FTP、File、JMS、SAP 等);
- 能夠通過路由 DSL定義複雜的業務流程、過濾規則、映射邏輯;
- 支持 內容路由(Content-Based Routing) 與 消息變換(Transformation);
- 可內嵌運行於 Spring Boot、Quarkus、Kubernetes 中。
2️⃣ MQTT Broker —— L3 事件總線 / UNS 主幹
- 作為 製造執行語義事件總線(Manufacturing Event Bus);
- 每個主題(Topic)代表一個 業務對象或事件域(如 Order、Batch、Resource、Event);
- 與 UNS(統一命名空間)結合使用,可實現 主題級語義一致性;
- 與 L2-L1 的 Edge Node 協同,實現實時狀態上傳與下發。
四、集成模式(核心)
模式:Apache Camel ↔ MQTT Broker ↔ L3 語義層
① Camel 路由邏輯(L4 → L3)
ERP (SOAP/XML)
↓
Camel Route
↓ 轉換為 JSON + MQTT Topic
MQTT Broker (Topic: /uns/order/new)
↓
L3 MOM (訂閲Topic並觸發流程)
Camel DSL 示例(非代碼實例):
from("sap:erp:orders?operation=GetNewOrders")
.process(exchange -> {
Map order = transformToUNSFormat(exchange.getIn().getBody());
exchange.getIn().setBody(order);
})
.to("paho-mqtt5:uns/order/new?brokerUrl=tcp://mqtt-broker:1883");
② L3 → L4 回執路徑
L3 MOM 完成 → MQTT 發佈 /uns/order/ack
↓
Camel Route 監聽該主題
↓
寫入 ERP (JDBC / SOAP / HTTP)
Camel DSL 示例(非代碼實例):
from("paho-mqtt5:uns/order/ack?brokerUrl=tcp://mqtt-broker:1883")
.to("jdbc:legacyERPDataSource");
五、主題設計與 UNS 對齊
|
主題(Topic)
|
説明
|
對應 UNS 實體
|
|
|
新訂單發佈
|
Order
|
|
|
訂單回執
|
Event
|
|
|
設備狀態上報
|
Resource
|
|
|
批次開始事件
|
Batch
|
|
|
批次結束事件
|
Batch/Event
|
每個主題的元數據(Schema、QoS、語義標籤)應註冊在 UNS Registry 中,
Camel 路由在啓動時可自動加載這些定義以動態綁定。
六、與 S95 模型對齊的語義層邏輯
|
S95 對象層級
|
在本架構中的體現
|
通信模式
|
|
Enterprise / Site
|
ERP / APS / PLM(通過 Camel)
|
HTTP/SOAP → MQTT
|
|
Area / WorkCenter / WorkUnit
|
MOM / Dispatch / Recipe Service
|
MQTT 內部訂閲
|
|
Equipment / Control Module
|
Edge Node / PLC / Agent
|
MQTT / OPC UA PubSub
|
七、系統優點總結
|
類別
|
優點
|
|
架構解耦 |
L4 與 L3 通過 MQTT 異步通信,Legacy 系統無需改造
|
|
協議多樣性兼容 |
Camel 支持 SAP、HTTP、File、DB 等任意接口
|
|
語義統一 |
藉助 UNS 命名體系保持跨系統的 Topic 與對象一致
|
|
事件驅動 |
L3 層的製造執行由事件觸發,天然支持擴展與分析
|
|
易於雲化 |
Camel、MQTT 均支持容器化與雲原生部署
|
八、典型部署形態(簡圖)
┌────────────┐
│ Legacy ERP │
└─────┬──────┘
│ SOAP/HTTP/JDBC
┌─────▼──────┐
│ Apache Camel│
│ (EAI Bridge)│
└─────┬──────┘
│ MQTT Publish/Subscribe
┌─────▼──────┐
│ MQTT Broker │ ←→ UNS Registry
└─────┬──────┘
│
┌─────▼────────────┐
│ L3 MOM / EventBus│
│ (Dispatch, Trace,│
│ Analytics, eBR) │
└─────┬──────┬────┘
│ │
┌─────▼──┐ ┌─▼───────┐
│ Edge GW│ │ OPC UA │
│/Agent │ │PubSub L2 │
└────────┘ └──────────┘