OPC UA
OPC UA (Unified Architecture, IEC 62541) is the modern, platform-independent successor to classic OPC. It is the de-facto standard for vendor-neutral industrial data exchange.
Overview
- Cross-platform — Windows, Linux, embedded; not tied to DCOM.
- Service-oriented architecture; binary or HTTPS / JSON encoding.
- Both transport (client/server & pub/sub) and information modeling.
- Maintained by the OPC Foundation.
Information Model
- Address space made of Nodes: Objects, Variables, Methods, ObjectTypes, References.
- Strong typing via TypeDefinitions; subtype inheritance.
- Browsable namespace — drill from server root to any tag.
- Companion Specifications standardize models per industry: PackML, MTConnect, AutoID, EUROMAP, VDMA Robotics, IEC 61850-OPC UA, Pump & Vacuum, etc.
Services & Communication
- Sessions over Secure Channels.
- Read, Write, Browse, Call (methods).
- Subscriptions with MonitoredItems for change notifications.
- Historical access (HA) for time-series data.
- Alarms & Conditions (A&C) for event/alarm models.
- Default ports: 4840 (opc.tcp), 443 (opc.https).
Security
- Three security modes: None, Sign, SignAndEncrypt.
- X.509 certificates for client & server identity; trust lists must be exchanged.
- User authentication: anonymous, username/password, certificate, JWT (OAuth2).
- Always disable Security = None on production.
- GDS (Global Discovery Server) automates certificate management.
PubSub & TSN
- OPC UA PubSub adds publish/subscribe over UDP multicast or MQTT/AMQP brokers.
- Suited for one-to-many distribution, e.g. line-to-cloud.
- OPC UA over TSN (Time-Sensitive Networking, IEEE 802.1) targets deterministic field-level control.
Tools
- Clients: UaExpert (Unified Automation), Prosys OPC UA Browser, Ignition.
- SDKs: open62541 (C), Eclipse Milo (Java), node-opcua, FreeOpcUa (Python), Unified Automation SDKs.
- Servers: Kepware, Matrikon, Cogent DataHub, Siemens Simatic, Ignition, Codesys.
- Testing: OPC Foundation Compliance Test Tool (CTT).