OPC Unified Architecture
OPC Unified Architecture (OPC UA) is a platform-independent, service-oriented architecture standard designed for secure, reliable, and interoperable data exchange in industrial automation and control systems.[1][2] Developed by the OPC Foundation and released in 2008, it unifies and extends the functionalities of prior OPC Classic specifications into a single, extensible framework that supports communication from sensors and devices to enterprise and cloud applications.[1][2] Standardized internationally as IEC 62541, OPC UA ensures manufacturer- and platform-neutral interoperability across operating systems like Windows, Linux, and embedded environments, as well as hardware from PLCs to microcontrollers.[2] At its core, OPC UA employs a multi-layered architecture that includes transport, session, and application layers to facilitate client-server and publish-subscribe (PubSub) communication models.[1] This design enables robust features such as automatic discovery of servers, real-time data subscriptions, event notifications, and remote method invocations, all while maintaining backward compatibility with legacy OPC systems through wrappers.[1] Security is a foundational element, incorporating X.509 certificate-based authentication, message signing, encryption, and auditing to protect against unauthorized access and tampering in industrial networks.[1] The information model uses an object-oriented approach to represent complex data as nodes in an address space, allowing for semantic modeling that supports advanced analytics and integration with technologies like Industry 4.0 and the Industrial Internet of Things (IIoT).[1][2] OPC UA's extensibility is enhanced by over 150 Companion Specifications, which tailor the core standard to specific industries such as manufacturing, energy, building automation, and pharmaceuticals, ensuring domain-specific interoperability.[1] Adopted globally, it powers machine-to-machine communication in diverse applications, from process control and predictive maintenance to cloud-based data aggregation, with certification programs verifying compliance to promote widespread ecosystem reliability.[1][2] Ongoing developments, including updates to the IEC 62541 series, continue to address emerging needs like enhanced PubSub for real-time systems and integration with edge computing.History and Development
Origins and Evolution
The OPC Classic specifications emerged in the mid-1990s as a set of standards for interoperability in industrial automation, primarily relying on Microsoft's Component Object Model (COM) and Distributed Component Object Model (DCOM) for data exchange between devices and software applications.[3] This architecture, while effective for early Windows-based systems, imposed significant limitations, including tight coupling to the Windows operating system, which restricted deployment on other platforms; scalability challenges in distributed environments due to DCOM's difficulties with network firewalls and remote connections; and the absence of built-in security mechanisms, leaving communications vulnerable to interception and unauthorized access.[1][4][5] In response to these constraints and the evolving demands of industrial systems, the OPC Foundation was formed in 1996 as a non-profit organization dedicated to developing and maintaining open, multi-vendor standards for process control and manufacturing automation.[3] Initially comprising leading automation companies such as Fisher-Rosemount, Rockwell Software, and others, the Foundation focused on unifying disparate protocols under a common framework, releasing the first OPC Classic Data Access (DA) specification in August 1996 to enable seamless data sharing across heterogeneous systems.[3] Over the subsequent years, it expanded the Classic suite to include specifications for alarms, events, historical data, and batch processes, solidifying OPC's role in standardizing industrial communications.[3] By the early 2000s, the limitations of OPC Classic became increasingly apparent amid the push for more interconnected, secure, and platform-agnostic industrial networks, prompting the OPC Foundation to initiate the OPC Unified Architecture (UA) project.[6] The first OPC UA working group convened in November 2003, with development accelerating to address multi-platform compatibility, security deficiencies, and the need for reliable performance in real-time industrial applications.[3] The project's core aim was to create a successor that unified the functionalities of OPC Classic while overcoming its technological dependencies, culminating in the release of OPC UA version 1.0 in July 2006.[3][7] Central to OPC UA's early design were principles of service-oriented architecture (SOA), which facilitated modular, request-response interactions between clients and servers; platform independence, enabling operation across diverse hardware like PCs, embedded controllers, and operating systems including Windows, Linux, and real-time kernels; and extensibility, allowing customization for specific industrial sectors through layered information models without disrupting core compatibility.[1] These foundations positioned OPC UA as a forward-looking standard for secure, scalable data exchange in modern automation environments.[1]Key Milestones and Versions
The development of OPC Unified Architecture (OPC UA) began in 2003 when the OPC Foundation formed a working group to create a platform-independent successor to OPC Classic, addressing the need for broader interoperability across devices and systems.[3] The initial specification parts were released on July 28, 2006, as version 1.00, introducing core features such as client-server architecture, a security model, data access services, event handling, alarms, historical data access, and support for both XML and binary encoding, which laid the foundation for secure, service-oriented communication in industrial automation.[3] In February 2009, version 1.01 was released, providing clarifications and enhancements to the initial specification while completing the first phase of development; this version also saw the debut of the first companion specification for analyzer devices, marking early industry-specific adoption.[3] Around the same time, in 2009, the OPC Foundation initiated collaboration with the International Electrotechnical Commission (IEC) to standardize OPC UA internationally, culminating in its adoption as the IEC 62541 series, with initial parts published between 2010 and 2011.[3] Version 1.02 followed in 2012, enhancing security through support for 256-bit encryption and HTTPS transport, alongside the introduction of a discovery server for improved service location, thereby boosting interoperability in distributed environments.[3] Version 1.03, released in 2015, advanced certificate management and introduced the Global Discovery Server (GDS) concept for scalable device registration and trust establishment; this aligned closely with the IEC 62541:2015 publication, solidifying OPC UA's status as an international standard and expanding its use in sectors like machinery and process control through companion specifications such as those for IEC 61131-3 (2010) and ISA-95 (2013).[3] In 2017, version 1.04 was issued on November 22, formalizing the publish-subscribe (PubSub) mechanism with UDP-based messaging for real-time data distribution, along with JSON encoding and MQTT transport support, which significantly improved scalability and integration with IoT ecosystems while enhancing cross-vendor interoperability.[8] Subsequent amendments in 2019 to version 1.04 added features like elliptic curve cryptography (ECC) for stronger security policies. The progression to the 1.05 series began in 2021 with version 1.05.00, incorporating support for method arguments in data modeling; this was followed by 1.05.01 and 1.05.02 in 2022, which refined JSON encoding, introduced network message models, and added scheduling capabilities for PubSub. In 2023, version 1.05.03 brought enhancements for redundancy and MQTT 5.0 compatibility, further supporting resilient, cloud-integrated applications. Companion specifications continued to proliferate, with over 150 developed as of 2025 for industries including automotive (e.g., OPC 40400-1 Powertrain) and machinery (e.g., OPC 40001-1), demonstrating OPC UA's expanding role in sector-specific standardization.[3][9] The latest release, version 1.05.06 on October 31, 2025, includes refinements to the overview and concepts (Part 1), security model (Part 2), and core services across multiple parts, ensuring ongoing alignment with evolving industrial needs for secure and efficient data exchange.[8]Specifications and Standards
Core Specifications
The OPC UA specification is a modular, multi-part standard developed by the OPC Foundation, consisting of core parts numbered OPC 10000-1 through OPC 10000-18 and beyond, which collectively define the foundational elements for secure, platform-independent industrial communication.[10] These parts interrelate to form a cohesive framework, where foundational models in earlier parts support advanced features in later ones, enabling scalable implementations across devices and systems.[8] Part 1 (Overview and Concepts) introduces the high-level architecture of OPC UA, including its service-oriented design, integrated models for data, alarms, events, history, and programs, as well as key principles like discoverability and extensibility. Part 2 (Security Model) outlines the conceptual framework for authentication, authorization, and encryption to ensure secure information exchange, without specifying implementation details. Part 3 (Address Space Model) defines the structure for organizing information as a network of nodes connected by references, supporting browsing, querying, and metadata description. Part 4 (Services) specifies the abstract service set, such as Read, Write, Browse, and Subscribe, that clients use to interact with servers in a request-response manner. Part 5 (Information Model) establishes base types like ObjectTypes, VariableTypes, and ReferenceTypes, providing a foundation for modeling real-world entities and their relationships. Subsequent parts build on these foundations for specialized functionality. Part 6 (Mappings) describes how OPC UA integrates with classic OPC specifications, enabling backward compatibility by mapping legacy data models to the UA address space. Part 13 (Aggregates) introduces concepts for computing aggregate values, such as averages or totals, over time-series data to support analytical processing. Part 14 (PubSub) extends the core services with publish-subscribe paradigms for multicast messaging, facilitating efficient data distribution in distributed systems.[11] The specifications enable extensibility by allowing companion specifications to define industry-specific information models that extend the core address space with domain-relevant types and namespaces. For instance, the Device Integration (DI) companion specification models device identification, parameters, and functionality, while the PLCopen companion specification addresses motion control and automation tasks based on IEC 61131-3.[9] These companions ensure interoperability across vertical markets by reusing core types and validating against standardized nodesets.[9] The OPC Foundation provides all core specifications, companion specifications, XML schemas for data types and serialization, and nodeset XML files for information model validation as freely downloadable resources under the MIT license, supporting development and conformance testing.[12] These specifications are also formalized as the international standard IEC 62541 series.IEC 62541 Integration
The adoption of OPC Unified Architecture (OPC UA) into the International Electrotechnical Commission (IEC) standards began with the publication of the first technical report, IEC TR 62541-1, in 2010, which provided an overview and concepts of the specification developed by the OPC Foundation.[13] Subsequent core parts followed in 2011, including IEC 62541-4 on services and IEC 62541-5 on the information model, marking the initial formalization of OPC UA as an international standard.[14] By 2015, an updated edition aligned with OPC UA version 1.03 was released, incorporating enhancements such as certificate management and incorporating new parts for historical access and aggregates.[15] The full series of IEC 62541 parts, spanning Parts 1 through 18 and mirroring the OPC Foundation's OPC 10000 specifications, continues to be updated, with Part 18 (Role-Based Security) published in August 2025 to reflect OPC UA version 1.05 features including publish-subscribe mechanisms.[16] Updates continued to align with OPC UA 1.05, released in 2021 and further refined to sub-version 1.05.06 as of October 2025, ensuring synchronization between the OPC Foundation documents and IEC standards.[8][3] Specific IEC 62541 parts directly correspond to key OPC UA functionalities, facilitating standardized implementation. For instance, IEC TR 62541-2 defines the security model, addressing threats in physical, hardware, and software environments, and aligns with OPC UA's security policies and certificate handling.[17] IEC 62541-10 specifies the information model for Programs, enabling the modeling and execution of executable code within OPC UA servers, including NodeClasses and Attributes for program state management.[18] Recent updates post-2023, such as those in IEC 62541-14 for publish-subscribe extensions, support cloud-based deployments by enhancing scalability for distributed systems and integration with protocols like MQTT for edge-to-cloud communication.[19] These parts maintain a one-to-one mapping with OPC UA core specifications, such as Part 4 Services, but adapt terminology and structure to IEC formatting requirements.[14] Certification and compliance ensure interoperability under the IEC framework, with the OPC Foundation's program playing a central role. Established in 2011, the program includes rigorous testing at accredited labs for compliance with IEC 62541 profiles, covering aspects like security, data modeling, and communication stacks to verify robustness and platform independence.[20][21] Interoperability testing involves automated and manual validation against the standard's conformance units, ensuring products adhere to specified behaviors without proprietary extensions.[22] The IEC's endorsement as an international standard amplifies global adoption, particularly in industries requiring certified equipment for regulatory compliance, such as manufacturing and energy sectors, by promoting widespread use in multinational projects.[23] The IEC 62541 versions exhibit minimal differences from the original OPC UA specifications, primarily consisting of editorial adjustments for international normative alignment, such as revised forewords, terminology harmonization with IEC conventions, and minor clarifications in annexes without altering technical content.[15] These changes ensure the standards meet global publication requirements while preserving functional equivalence, allowing seamless transition between OPC Foundation and IEC documents for developers and implementers.[24]Architecture and Components
Communication Stack
The OPC UA communication stack is organized as a multi-layered architecture that facilitates secure and reliable data exchange between clients and servers, or among peers in publish-subscribe scenarios. This design separates concerns across distinct layers, enabling flexibility in implementation and transport choices while maintaining interoperability. The stack supports both request-response interactions typical of client-server models and one-to-many messaging for real-time applications, ensuring scalability across industrial environments.[25] At the core of the stack is the application layer, which defines the OPC UA services such as Read, Write, and Subscribe that allow clients to interact with server resources like nodes and variables. These services are specified in OPC 10000-4 and operate independently of underlying transport details, using a standardized API to abstract application logic from the communication mechanics. Below this lies the encoding layer, responsible for serializing and deserializing messages into formats that ensure consistent data representation across heterogeneous systems; it supports three primary encodings—OPC UA Binary for efficiency, OPC UA XML for readability, and OPC UA JSON for web-friendly integration—as detailed in OPC 10000-6 Clause 5. The transport layer then handles message delivery, offering multiple protocols including OPC UA TCP for low-latency local networks, HTTPS for secure web-based access, WebSockets for bidirectional persistent connections, and UDP for lightweight, multicast-enabled publish-subscribe over local area networks, as outlined in OPC 10000-6 Clause 7. Client-server interactions rely on sessions to establish context for service calls, where a client creates a session over a secure channel to authenticate and maintain stateful communication with the server. Subscriptions within this model allow clients to register for notifications on data changes or events, reducing polling overhead by enabling the server to push updates at configurable intervals, independent of the underlying connection. For real-time data distribution, the publish-subscribe (PubSub) model—introduced in OPC UA version 1.04—extends this capability to a brokerless or brokered paradigm, using UDP multicast for deterministic, high-throughput scenarios in distributed systems. This PubSub approach, defined in OPC 10000-14, supports scalability by decoupling publishers from multiple subscribers, facilitating efficient data flow in large-scale industrial networks without session dependencies.[11] The stack's protocol independence is a key design principle, allowing applications to select transports based on network constraints, such as using HTTPS or WebSockets to traverse firewalls in enterprise settings while preserving end-to-end integrity through integrated secure channels. This modularity enhances scalability in distributed systems, where server-to-server chaining or PubSub topologies can aggregate data across hierarchies without proprietary bindings. Recent enhancements in version 1.05 include mappings for MQTT and AMQP in the PubSub layer, enabling seamless integration with IIoT ecosystems by leveraging these lightweight brokers for cloud connectivity and edge-to-cloud data routing. Security mechanisms, such as encrypted channels, are layered atop these transports to ensure confidentiality during transmission.[1][26]Security Model
The OPC UA security model provides a layered framework to ensure authentication, authorization, integrity, and confidentiality in industrial communications, operating across the application and communication layers. At the application layer, it handles user authentication and authorization through session services, while the communication layer establishes secure channels using digital certificates to protect data exchange. This architecture supports flexible security configurations tailored to operational needs, from unsecured testing environments to highly protected production systems. Core security policies define the levels of protection applied to messages within secure channels, including SignAndEncrypt, which mandates both message signing for integrity and encryption for confidentiality; Sign, which applies only signing to verify integrity without encryption; and None, which disables security features entirely for non-sensitive scenarios. Authentication and authorization rely on X.509 v3 certificates, where applications present these certificates during secure channel establishment to prove identity, and servers maintain trust lists to validate peer certificates, enabling mutual authentication in high-security setups. User identity tokens, such as X.509 certificates, usernames/passwords, or issued tokens, further authenticate operators within sessions, with authorization enforced via access control lists on the server side.[27] Key mechanisms include WS-SecureConversation for establishing and maintaining secure sessions, which derives session keys from initial channel keys to protect ongoing communications against key compromise. Application instance certificates ensure server and client identities are verifiable, while user tokens allow granular access control without exposing credentials. Audit events log security-relevant actions, such as authentication attempts and policy violations, to support compliance and forensic analysis in industrial environments. In version 1.05, the security model introduces support for Elliptic Curve Cryptography (ECC) policies, such as Basic256Sha256_ECC and Basic256Sha256_ECC_X962, which use elliptic curves like secp256r1 for asymmetric operations, offering equivalent security to RSA-based policies with smaller key sizes and improved performance on resource-constrained devices. Features such as integration with Global Discovery Servers (GDS) for certificate lifecycle automation and OAuth 2.0-based token issuance (introduced in version 1.04) facilitate secure deployments in cloud environments by centralizing trust anchors and enabling dynamic key rotation without manual intervention.[28][29][30] The model mitigates common threats in industrial settings through sequence numbers and timestamps in secure channels to prevent replay attacks, mutual certificate-based authentication to thwart man-in-the-middle interceptions, and configurable limits on connection attempts coupled with resource quotas to counter denial-of-service attempts. These protections ensure robust operation even in distributed systems, with secure channels integrating over transports like TCP to maintain end-to-end security.[31]Data Modeling and Built-in Types
The address space in OPC UA serves as a hierarchical and networked model for representing industrial data and processes, consisting of interconnected nodes that encapsulate information about real-world entities. Nodes are the basic building blocks, classified into nine standard NodeClasses, including the abstract Base NodeClass, Object, Variable, Method, ObjectType, VariableType, ReferenceType, DataType, and View. The Base NodeClass serves as the foundation for all others and defines common attributes, though it cannot be directly instanced. Objects model components or systems and can contain child nodes such as Variables or Methods; Variables store data values, which may represent properties or dynamic content; Methods define executable functions associated with objects. Type nodes—ObjectType, VariableType, ReferenceType, and DataType—act as blueprints for creating instances, ensuring consistency in structure and behavior across the model.[32][33] References establish relationships between nodes, with each reference specifying a direction from a source node to a target node and typed by a ReferenceType to convey semantic meaning, such as hierarchical containment (e.g., HasComponent) or aggregation (e.g., HasProperty). This network of references allows for flexible modeling, including trees, graphs, and cycles where appropriate. Views provide filtered subsets of the address space, enabling clients to browse specific perspectives, such as operational data only, without exposing the entire model; each View node defines which references are included or excluded for navigation. The Browse service can be used to query these views, retrieving node attributes and forward/backward references to traverse the model.[34] OPC UA's built-in types define the primitive and composite data elements used in Variables and structures, ensuring platform-independent representation. Simple types include Boolean for true/false values, and a range of integers such as SByte (8-bit signed), Int16 (16-bit signed), UInt32 (32-bit unsigned), and Int64 (64-bit signed), along with floating-point types like Float (32-bit IEEE) and Double (64-bit IEEE). Complex structures build on these, with Arrays supporting multi-dimensional sequences of any built-in type (e.g., a 2D array of Doubles for sensor matrices), Structures as ordered fields of mixed types (e.g., a timestamped measurement with DateTime and Float), and Unions allowing selection of one variant from defined options for variant payloads. Enumerations map named constants to integer values (e.g., a status enum with values for "OK", "Warning", "Error" encoded as 0, 1, 2), providing readable discrete options.[35][36] These built-in types support extension through custom DataTypes defined in the address space, where users create subtypes of existing types (e.g., inheriting from Structure to add industry-specific fields like engineering units) or new enumerations for application domains, all registered as DataType nodes with subtypes via HasSubtype references. The Variant type acts as a universal container, encapsulating any built-in type, array, structure, or extension object, with up to 100 levels of nesting to handle deeply composed data without loss of type information. Nodesets formalize these models as XML files defining the standard and extended nodes for interoperability. The core Standard Nodeset version 1.05.06, released on October 31, 2025, specifies the foundational nodes in the OPC UA namespace (http://opcfoundation.org/UA/), including all built-in types, base ObjectTypes like BaseObject and BaseVariable, and essential references. As of October 2025, minor updates in version 1.05.06 include bug fixes and improved compliance testing. Companion specifications extend this base with domain-specific nodesets; for instance, the Device Integration (DI) companion specification (OPC 10001-100) defines models for industrial devices, including the AnalogItemType for representing analog signals with attributes such as Value (a Variable of type AnalogItemType), EngineeringUnits, ValuePrecision, and Range (Min/Max/EURange) to standardize sensor and actuator data across vendors.[37] Semantic encoding in OPC UA relies on namespaces and identifiers to ensure unambiguous, machine-readable data exchange. NodeIds uniquely identify nodes using a structure of NamespaceIndex (a numeric reference to a URI-defined namespace), IdType (Numeric, String, Guid, or Opaque), and the Identifier itself, allowing global uniqueness even across multiple servers (e.g., i=85 for Boolean in the core namespace). Namespaces, listed in the server's NamespaceArray, use URIs like http://opcfoundation.org/[UA](/page/UA)/ for core types or vendor-specific ones (e.g., http://example.com/MyTypes/) to avoid collisions, enabling clients to resolve and interpret identifiers consistently for semantic interoperability. QualifiedNames similarly qualify BrowseNames with namespaces for human-readable yet unique labeling in the model.[38]Implementations and APIs
Programming Language Support
OPC Unified Architecture (OPC UA) provides robust support for development across multiple programming languages through standardized stacks and libraries, enabling the creation of interoperable clients and servers. These implementations adhere to the IEC 62541 specifications, facilitating secure and efficient industrial communication. For .NET developers, the UA-.NETStandard library from the OPC Foundation serves as the primary stack, targeting .NET Standard 2.0 for cross-platform compatibility across Windows, Linux, macOS, Android, and iOS. The latest release, version 1.05.377.21 as of November 14, 2025, includes asynchronous operations via AsyncNodeManagers in the server library, allowing non-blocking I/O for high-performance applications, and integrated certificate stores supporting both folder-based and OS-level X.509 stores with features like Global Discovery Server integration and server push capabilities. This stack is certified for compliance with OPC UA specifications up to version 1.05 and is available via NuGet for seamless integration into .NET applications.[39][40] In Java, the Eclipse Milo library offers a modern, open-source implementation of the OPC UA stack, with version 1.0.8 released on November 3, 2025 targeting specification 1.05. It provides high-performance channels, serialization, and data structures for both client and server development, and extends support to mobile platforms including Android through Java compatibility, while iOS integration is possible via cross-compilation tools like Gluon Mobile. The OPC Foundation's legacy Java SDK remains available but receives no further updates, positioning Eclipse Milo as the recommended choice for new projects due to its active maintenance and comprehensive feature set.[41] Support extends to other languages, including C/C++ via Unified Automation's SDK, which consists of portable C++ libraries for building OPC UA clients and servers with services for connection management, session handling, and PubSub extensions. An open-source alternative is open62541, a C-based implementation compliant with OPC UA 1.05, suitable for embedded systems. In Python, the opcua package (version 0.98.13, released 2021) delivers a pure-Python client and server implementation, autogenerated from XML specifications for near-complete protocol coverage and tested against diverse stacks, offering both low-level access to UA structures and high-level classes for simplified development; however, it is deprecated, and the successor asyncua (latest version as of September 5, 2025) is recommended for new projects. For Node.js, the node-opcua library (version 2.158.0) enables asynchronous OPC UA applications leveraging TypeScript and Node.js, with modules for client, server, and types, particularly suited for web-based integrations through its event-driven architecture and planned WebSocket transport support.[42][43][44][45][46][47] Common API patterns in these libraries revolve around OPC UA service calls, which follow a request-response model for core operations. Connection establishment typically involves CreateSession to initiate a session and ActivateSession for authentication, ensuring secure channel setup. Data access uses the Read service to retrieve node attributes by ID, returning values or status codes. For real-time monitoring, the Subscribe pattern employs CreateSubscription to define publishing intervals and CreateMonitoredItems to track specific nodes, with notifications delivered asynchronously. Error handling is standardized via status codes, such as 0x00 for success or 0x80130000 for BadNodeIdUnknown, allowing applications to manage faults like invalid sessions (BadSessionIdInvalid) or access denials (BadUserAccessDenied) uniformly across implementations.[48][49][50]Open-Source and Commercial Stacks
OPC Unified Architecture (OPC UA) implementations are available in both open-source and commercial forms, providing developers with flexible options for building client and server applications. Open-source stacks, maintained by industry consortia, offer reference implementations that ensure compliance with the standard and facilitate community-driven enhancements. The OPC Foundation provides the UA-.NETStandard reference stack, a cross-platform library targeting .NET Standard, which supports core OPC UA functionalities such as client-server communication, PubSub messaging, and security features. Its latest release, version 1.05.377.21, was issued on November 14, 2025, via GitHub, including updates for improved serialization and data model handling.[51] Another prominent open-source option is Eclipse Milo's implementation for Java, a high-performance stack compliant with OPC UA 1.05, featuring modules for stack operations, client SDK, and server SDK. The most recent version, 1.0.8, was released on November 3, 2025, with enhancements for attribute support and code generation aligned to the latest specification.[41][52] Commercial stacks extend these foundations with proprietary optimizations, comprehensive support, and integration tools tailored for industrial deployments. Prosys OPC offers the UA Browser tool, version 5.2.0 released on October 8, 2025, which serves as a versatile client for browsing, monitoring, and simulating OPC UA servers, including support for data history and events.[53] Unified Automation's C++ Based OPC UA Client/Server SDK, updated to version 2.0.1 on August 29, 2025, provides a modular framework for embedded and high-performance applications, with separate bundles for server, client, and PubSub capabilities.[54] Softing's OPC UA .NET Standard SDK, version 3.90.0 from July 23, 2025, builds on the OPC Foundation's stack to enable seamless integration of OPC UA into .NET applications, supporting both client and server roles with NuGet packaging for easy deployment.[55] Key features across these stacks emphasize certification compliance, performance tuning, and ancillary tooling to ensure robust interoperability. All referenced implementations undergo OPC Foundation certification testing, which validates adherence to profiles for security, robustness, and efficiency, as outlined in the compliance guidelines.[56] Performance optimizations include real-time support in stacks like Unified Automation's High Performance SDK, which employs a single-threaded asynchronous architecture to prevent blocking in deterministic environments.[57] Tooling such as simulators is integral; for instance, Prosys OPC UA Simulation Server (version 5.6.0, October 8, 2025) allows data model simulation and historical playback for testing, while open-source options like MatrikonOPC Simulation Server provide free DA, HDA, and A&E data emulation.[53][58] These stacks contribute significantly to the OPC UA ecosystem through nodeset extensions and interoperability enhancements. Open-source efforts, such as those from the OPC Foundation and Eclipse, include companion nodesets for standard information models, promoting standardized data modeling across devices.[59] Commercial vendors like Softing and Unified Automation provide interoperability plugins that facilitate seamless connections with SCADA systems; for example, Softing's SDK integrates with Kepware for device-level data bridging, while Unified Automation supports Ignition's OPC UA module for edge-to-cloud data flow.[60][61]| Stack | Type | Latest Version (2025) | Key Features | Certification |
|---|---|---|---|---|
| UA-.NETStandard | Open-Source (.NET) | 1.05.377.21 (Nov) | Cross-platform client/server, PubSub | OPC Foundation Compliant |
| Eclipse Milo | Open-Source (Java) | 1.0.8 (Nov) | High-performance stack, SDK modules | OPC UA 1.05 Compliant |
| Prosys OPC UA Browser | Commercial Tool | 5.2.0 (Oct) | Browsing, simulation, event monitoring | Profile Validated |
| Unified Automation C++ SDK | Commercial (C++) | 2.0.1 (Aug) | Embedded support, asynchronous API | OPC Foundation Certified |
| Softing .NET SDK | Commercial (.NET) | 3.90.0 (Jul) | NuGet integration, client/server | Stack-Based Compliant |