OPC UA · MES · ERP integráció magyar gyártóüzemekben 2026
OPC UA a gyártó rétegben szabvány, az ERP réteg felé legacy bridges van. A magyar üzemek hibrid valóságához egy konkrét stack.
OPC UA a gyártó rétegben szabvány, az ERP réteg felé legacy bridges van. A magyar üzemek hibrid valóságához egy konkrét stack.
Magyar autóipari beszállító, élelmiszer üzem, gépgyártó · mindegyikben ugyanaz a kép. A shop floor on egy Siemens S7 1500 vezérlő, mellette egy B&R rendszer, egy harmadik gépen Beckhoff TwinCAT. Ezek a vezérlők OPC UA t beszélnek (vagy legalábbis tudnák, ha valaki bekonfigurálná). A felső rétegben egy SAP, Microsoft Dynamics 365 vagy esetleg egy egyedi ERP, és középen vagy van MES (Manufacturing Execution System), vagy nincs · de kellene. Ez a poszt arról szól, hogyan kötjük ezt össze 2026 ban.
Az OPC UA nem új. 2008 ban szabványosították, 2017 ben jött a 'pub sub' kiegészítés, és 2023 ban a TSN (Time Sensitive Networking) támogatás. A magyar üzemekben ennek ellenére sok helyen még mindig OPC DA (Classic) vagy custom Modbus van. Ez 2026 ban nem fenntartható.
Az MQTT könnyű, modern, sokkal egyszerűbb tanulni. De egy gyártó vezérlőtől kapott információ típusos · nem byte stream. Az OPC UA 'information model' koncepciója (NodeSet ek, type definíciók, browse name ek) azt jelenti, hogy a vezérlő nem 'temperature: 24.5' t ad ki, hanem 'Boiler.Section3.OutletTemperature: 24.5 °C, source = sensor TC4, last_calibrated = 2025 11 03, status = good'. Ez a metaadat az MES réteg számára kritikus.
REST t azért nem használsz, mert a gyártó vezérlő nem szervezi az időt body szinten · az OPC UA subscription model lel push tudja kapni, hogy 'ha ez a változó változott 0.5 fokot, szólj'. Ezt REST en nem oldod meg ésszerűen.
A három fő gyártó OPC UA implementációja apró, de operatíve fájó pontokon különbözik.
A magyar gyártóknál ritkán van meg egy 'enterprise' MES (Siemens Opcenter, AVEVA MES, Wonderware), és ahol van, ott is gyakran az 'első réteg' integrációja az ERP felé hiányos. Egy egyedi MES réteget Node.js / Python / .NET ben építeni 2026 ban reális (3-6 hónap), és a karbantartás könnyebb, mint egy enterprise MES customization. Az OPC UA klienskönyvtárak közül az `node-opcua` (Node.js), `asyncua` (Python), `OPCFoundation.NetStandard.Opc.Ua` (.NET) megérdemlik a választást.
import { OPCUAClient, MessageSecurityMode, SecurityPolicy, AttributeIds } from "node-opcua";
const client = OPCUAClient.create({
applicationName: "MagyarMES",
connectionStrategy: { initialDelay: 1000, maxRetry: 10 },
securityMode: MessageSecurityMode.SignAndEncrypt,
securityPolicy: SecurityPolicy.Basic256Sha256,
endpointMustExist: false,
});
async function readBoilerTemp() {
await client.connect("opc.tcp://192.168.10.50:4840");
const session = await client.createSession({
type: "UserName",
userName: process.env.OPC_USER!,
password: process.env.OPC_PASS!,
});
// A nodeId a vezérlőtől függ · Siemens S7 1500 példa:
const nodeId = "ns=3;s=\"Boiler\".\"Section3\".\"OutletTemp\"";
const dv = await session.read({ nodeId, attributeId: AttributeIds.Value });
console.log({
value: dv.value.value,
statusCode: dv.statusCode.toString(),
sourceTimestamp: dv.sourceTimestamp,
});
await session.close();
await client.disconnect();
}A leggyakoribb antimintázat: az MES 1 másodpercenként polloz minden tag et. 200 tag, 1 másodperc, üzem 24 / 7 · 17 millió olvasás naponta. Az OPC UA subscription model ben azt mondod a vezérlőnek, hogy 'értesíts ha változott', és csak akkor kapsz adatot. A reális adatforgalom 5-10 százalékára esik.
import { ClientSubscription, AttributeIds, TimestampsToReturn } from "node-opcua";
const subscription = ClientSubscription.create(session, {
requestedPublishingInterval: 500, // ms
requestedLifetimeCount: 60,
requestedMaxKeepAliveCount: 10,
maxNotificationsPerPublish: 1000,
publishingEnabled: true,
priority: 10,
});
const monitoredItem = await subscription.monitor(
{ nodeId: "ns=3;s=\"Boiler\".\"Section3\".\"OutletTemp\"", attributeId: AttributeIds.Value },
{
samplingInterval: 250,
discardOldest: true,
queueSize: 10,
},
TimestampsToReturn.Both
);
monitoredItem.on("changed", (dv) => {
publishToMes({
tag: "boiler.s3.outlet_temp",
value: dv.value.value,
quality: dv.statusCode.name,
ts: dv.sourceTimestamp,
});
});A felfelé integráció szabvány bridge ekkel kezelhető. SAP esetén az SAP PI / PO vagy a CPI (Cloud Platform Integration) az általános, és a 'Manufacturing Integration and Intelligence' (MII) modul támogatja az OPC UA t direkt módon. A magyar valóság: sok közepes méretű üzemnek nincs MII modulja, és egyedi RFC vagy OData hidat építünk. Microsoft Dynamics esetén a Power Platform és a Logic Apps a sztenderd híd.
Az OPC UA security model TLS alapú, x509 tanúsítvánnyal. A magyar üzemekben minden harmadik OPC UA bevezetésnél azt látjuk, hogy a security mode 'None' on van, mert 'a gyári hálózat zárt'. Ez nem érv. A gyári hálózatra a karbantartó laptopja is rákapcsolódik, és a karbantartó laptopja az autópályán előbb kapott egy phishing emailt. Mindig SignAndEncrypt + Basic256Sha256 (Basic128Rsa15 már deprecated 2026 ban).
A vezérlő tanúsítványa magától nem érvényes · neked kell aláíratnod (vagy legalább trust list re tenned az MES kliens oldalon). A 'untrusted certificate' a leggyakoribb ok, amiért az OPC UA kapcsolat nem épül fel első alkalommal. A node opcua és a többi kliens automatikusan menti a saját tanúsítványait egy `pki` mappába · ide kell tenni a vezérlő tanúsítványát is.
Egy magyar középvállalati gyártóüzem OPC UA bevezetése (2-3 vezérlő, 1 MES, 1 ERP felé bridge) reális idő 4-6 hónap, költség 15-30 millió Ft (saját erővel és szakértőkkel kombinálva). Ennek 60 százaléka nem a kód, hanem a tag mapping és a NodeSet model definíció. A 'Industry 4.0' marketing dia 2 perces, a tag mapping két ember kéthónapos munkája. Ez ettől még megéri, mert utána a real time OEE pontossága 1.5x az Excel alapúéhoz képest.

Alapító, DField Solutions
Pénzügyi cégeknél és kreátor-eszközöknél is építettem már olyan rendszereket, amik nap mint nap élesben futnak. Budapesttől San Franciscóig · startupoknak és nagyobb vállalatoknak egyaránt.
Beszéljünk a projektedről. 30 perc, nincs kötelezettség.