{"id":1364,"date":"2026-01-04T07:54:27","date_gmt":"2026-01-04T07:54:27","guid":{"rendered":"https:\/\/integrationobjects.com\/blog\/?p=1364"},"modified":"2026-04-21T15:47:37","modified_gmt":"2026-04-21T15:47:37","slug":"migrating-opc-classic-opc-ua-seamlessly","status":"publish","type":"post","link":"https:\/\/integrationobjects.com\/blog\/migrating-opc-classic-opc-ua-seamlessly\/","title":{"rendered":"OPC UA Migration: The Complete Guide for Industrial Organisations"},"content":{"rendered":"<h2 class=\"text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold\">1. Why OPC UA migration has become urgent in 2026<\/h2>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">For most of the past decade, migrating from OPC Classic to OPC UA was sensible but deferrable. If legacy systems were working, the case for disrupting them was difficult to make in a capital planning meeting.<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">That has changed, and it has changed on three fronts simultaneously.<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\"><strong>The cybersecurity front.<\/strong> OPC Classic&#8217;s dependence on <a href=\"https:\/\/learn.microsoft.com\/en-us\/openspecs\/windows_protocols\/ms-dcom\/86b9cf84-df2e-4f0b-ac22-1b957627e1ca\">Microsoft COM\/DCOM<\/a> is now a documented, actively managed vulnerability. CVE-2021-26414, a critical DCOM authentication bypass, forced Microsoft to issue the mandatory KB5004442 hardening patch &#8211; enforced by default on all supported Windows systems from June 2023 onward. This patch broke OPC Classic connections in many industrial environments, leaving operators choosing between running a known vulnerability unpatched or accepting integration failures. CISA, ENISA, and the German BSI all identify DCOM-based OT communication as an active risk factor. This is a structural problem with no fix that does not involve leaving OPC Classic.<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\"><strong>The regulatory front.<\/strong> The NIS2 Directive (EU, effective October 2024) requires operators of essential services including manufacturing, energy, water, and transport to implement encrypted communications and proper access controls for industrial systems, or face significant penalties. NERC CIP (North America) demands Electronic Security Perimeters that DCOM&#8217;s dynamic port ranges make extremely difficult to configure cleanly. FDA 21 CFR Part 11 (pharmaceuticals) requires audit trails that unauthenticated OPC Classic communications cannot credibly provide.<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\"><strong>The operational front.<\/strong> Every modern industrial architecture &#8211; cloud data pipelines, digital twins, AI-driven predictive maintenance, IIoT platforms, is built around OPC UA, not OPC Classic. Each new integration with a cloud historian, an analytics platform, or a MES application now requires either a bespoke OPC Classic connector (expensive, fragile, non-standard) or OPC UA. The longer OPC Classic remains in place, the more expensive every adjacent modernisation project becomes.<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">The question for most industrial organisations in 2026 is not <em>whether<\/em> to migrate, but <em>which approach fits their environment<\/em>, and how to do it without disrupting production.<\/p>\n<h2 class=\"text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold\">2. What you are migrating from: OPC Classic (DA, HDA, AE) explained<\/h2>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">OPC Classic is not a single protocol. It is a family of three distinct specifications, each serving a different data function. Understanding this is essential because each one has its own migration path and challenges.<\/p>\n<ul>\n<li class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\"><strong>OPC DA (Data Access)<\/strong> is the most widely deployed. It provides real-time read\/write access to process values from PLCs, DCSs, RTUs, and other automation devices. OPC DA servers expose a tag-based address space &#8211; a flat or hierarchical list of data items, each identified by an ItemID string. Most SCADA systems, historians, and MES platforms were built to connect to OPC DA.<\/li>\n<li class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\"><strong>OPC HDA (Historical Data Access)<\/strong> provides access to time-stamped historical data stored in process historians. It allows clients to query past values, perform interpolation, and retrieve trend data over time windows. The OPC HDA query model differs structurally from OPC UA Historical Access making HDA one of the technically more demanding aspects of migration.<\/li>\n<li class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\"><strong>OPC AE (Alarms and Events)<\/strong> handles alarm notifications and event subscriptions. OPC AE servers send notifications when process conditions change, alarms activate or clear, or operator actions occur. Mapping OPC AE to OPC UA Alarms and Conditions (A&amp;C) requires careful attention, as the underlying data models are structured differently.<\/li>\n<\/ul>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">All three share the same fundamental constraint: they rely entirely on Windows COM\/DCOM for both local and network communication. This means OPC Classic systems require Windows on both ends, consume large dynamic port ranges (49152\u201365535) that defeat precise firewall rules, carry no built-in message encryption, and offer no cryptographic identity verification for connecting applications.<\/p>\n<h2 class=\"text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold\">3. What you are migrating to: what OPC UA delivers<\/h2>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">OPC UA (Open Platform Communications Unified Architecture) is an IEC international standard (IEC 62541) that was designed from the ground up to be everything OPC Classic is not.<\/p>\n<ul>\n<li class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\"><strong>Platform independence.<\/strong> OPC UA runs on Windows, Linux, macOS, embedded systems (including 8-bit microcontrollers), cloud infrastructure, and edge devices. PLCs and RTUs from vendors including Siemens, Beckhoff, Rockwell, and many others now ship with native OPC UA interfaces.<\/li>\n<li class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\"><strong>Unified data model.<\/strong> Where OPC Classic separates real-time data (DA), historical data (HDA), and alarms (AE) into three incompatible specifications, OPC UA unifies them in a single object-oriented information model. Process values, historical records, alarms, events, and diagnostic data all live in the same address space, accessible through the same OPC UA interface.<\/li>\n<li class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\"><strong>Built-in security.<\/strong> OPC UA includes mandatory AES-128 or AES-256 encryption, X.509 certificate-based mutual authentication for both applications and users, message signing to detect tampering, and role-based access control (RBAC) at the data node level. These are not optional add-ons, they are core parts of the specification.<\/li>\n<li class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\"><strong>Firewall-friendly architecture.<\/strong> OPC UA uses a single, configurable TCP port (default: 4840). This makes precise firewall rules straightforward and Electronic Security Perimeter configurations achievable: a significant advantage over DCOM&#8217;s unpredictable port ranges.<\/li>\n<li class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\"><strong>Cloud and IIoT readiness.<\/strong> OPC UA&#8217;s PubSub communication model supports MQTT, AMQP, and UDP multicast transport, making it natively compatible with cloud IoT platforms (Azure IoT Hub, AWS IoT Greengrass), industrial message brokers, and large-scale IIoT data pipelines.<\/li>\n<li class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\"><strong>Active development and ecosystem.<\/strong> Unlike OPC Classic &#8211; which is in maintenance-only status &#8211; OPC UA continues to evolve. OPC UA FX (Field eXchange, 2023) extended OPC UA to controller-to-controller communication at the field level. Over 160 companion specifications define interoperable information models for specific industries and machine types, from machine tools (umati) to offshore oil and gas (MDIS) to pharmaceutical manufacturing.<\/li>\n<\/ul>\n<h2>4. OPC Classic vs OPC UA: The full comparison<\/h2>\n<table class=\"min-w-full border-collapse text-sm leading-[1.7] whitespace-normal\">\n<thead class=\"text-left\">\n<tr>\n<th class=\"text-text-100 border-b-0.5 border-border-300\/60 py-2 pr-4 align-top font-bold\" scope=\"col\">Dimension<\/th>\n<th class=\"text-text-100 border-b-0.5 border-border-300\/60 py-2 pr-4 align-top font-bold\" scope=\"col\">OPC Classic (DA \/ HDA \/ AE)<\/th>\n<th class=\"text-text-100 border-b-0.5 border-border-300\/60 py-2 pr-4 align-top font-bold\" scope=\"col\">OPC UA<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">Platform<\/td>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">Windows only (COM\/DCOM)<\/td>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">Windows, Linux, macOS, embedded, cloud<\/td>\n<\/tr>\n<tr>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">Security<\/td>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">No native encryption; relies on Windows DCOM security<\/td>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">AES-256 encryption, X.509 certificates, RBAC &#8211; built in<\/td>\n<\/tr>\n<tr>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">Data model<\/td>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">Three separate, incompatible specs (DA, HDA, AE)<\/td>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">Single unified information model covering all data types<\/td>\n<\/tr>\n<tr>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">Network ports<\/td>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">Dynamic DCOM port range (49152\u201365535)<\/td>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">Single configurable port (default 4840)<\/td>\n<\/tr>\n<tr>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">Firewall compatibility<\/td>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">Very difficult<\/td>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">Straightforward<\/td>\n<\/tr>\n<tr>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">Cloud \/ IIoT support<\/td>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">Not designed for it<\/td>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">Native (PubSub, MQTT, AMQP, REST)<\/td>\n<\/tr>\n<tr>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">Authentication<\/td>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">Windows user accounts \/ DCOM security<\/td>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">X.509 certificates, username\/password, tokens<\/td>\n<\/tr>\n<tr>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">Active development<\/td>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">Maintenance only<\/td>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">Actively developed &#8211; FX, companion specs, cloud initiative<\/td>\n<\/tr>\n<tr>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">IEC standard<\/td>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">No<\/td>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">IEC 62541<\/td>\n<\/tr>\n<tr>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">Regulatory alignment<\/td>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">Poor (NIS2, NERC CIP, FDA)<\/td>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">Strong alignment with all major OT compliance frameworks<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 class=\"text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold\">5. Three OPC UA migration approaches<\/h2>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">There is no single right way to migrate from OPC Classic to OPC UA. The correct approach depends on the size of your installed base, your operational risk tolerance, your available budget, and your compliance timeline. Three proven approaches exist, and they are not mutually exclusive.<\/p>\n<h2 class=\"text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold\">6. Approach 1: Wrapper-based migration (recommended for brownfield)<\/h2>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\"><strong>Best for:<\/strong> Organisations with significant OPC Classic installed bases, high-availability requirements, and limited tolerance for downtime during migration.<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">The <a href=\"https:\/\/integrationobjects.com\/sioth-opc\/sioth-opc-unified-architecture\/opc-ua-wrapper\/\">OPC UA Wrapper<\/a> is a software bridge that inserts itself between existing OPC Classic infrastructure and the rest of your architecture. It requires no changes to existing OPC Classic servers, no PLC modifications, and no process downtime.<\/p>\n<h3 class=\"text-text-100 mt-2 -mb-1 text-base font-bold\">How the Wrapper component works (OPC Classic servers \u2192 OPC UA clients)<\/h3>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">The Wrapper connects to your existing OPC Classic DA, HDA, or AE servers using the standard DCOM interface exactly as any OPC Classic client does. It then re-exposes the data from those servers as a fully compliant OPC UA server. Any OPC UA client &#8211; a cloud platform, a modern historian, an MES application, an AI analytics tool &#8211; connects to the Wrapper using OPC UA with full encryption, certificate authentication, and RBAC. That client never touches DCOM.<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">The security result is immediate and significant: DCOM communication is contained to the local machine or a tightly controlled local segment. Every external connection operates on OPC UA. The DCOM attack surface including vulnerabilities like CVE-2021-26414 is isolated rather than network-wide.<\/p>\n<h3 class=\"text-text-100 mt-2 -mb-1 text-base font-bold\">How the Proxy component works (OPC UA servers \u2192 OPC Classic clients)<\/h3>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">The reverse direction is equally supported. Where legacy OPC Classic client applications, older SCADA systems, HMI platforms, reporting tools need to access modern OPC UA servers, the Proxy component presents the OPC UA server as if it were an OPC Classic server. The legacy client connects via its familiar OPC Classic interface; the Proxy handles the OPC UA side transparently.<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">This bidirectional capability is what makes <a href=\"https:\/\/integrationobjects.com\/opc-demo\/opc-ua-demo-videos\/\">the Wrapper<\/a> suitable as a long-term migration platform, not just a temporary patch. Both old and new clients can coexist in the same architecture, each seeing the interface they expect.<\/p>\n<h3 class=\"text-text-100 mt-2 -mb-1 text-base font-bold\">OPC UA Wrapper: full feature set<\/h3>\n<table class=\"min-w-full border-collapse text-sm leading-[1.7] whitespace-normal\">\n<thead class=\"text-left\">\n<tr>\n<th class=\"text-text-100 border-b-0.5 border-border-300\/60 py-2 pr-4 align-top font-bold\" scope=\"col\">Feature<\/th>\n<th class=\"text-text-100 border-b-0.5 border-border-300\/60 py-2 pr-4 align-top font-bold\" scope=\"col\">Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">OPC Classic DA \u2192 OPC UA<\/td>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">Exposes OPC Classic DA servers as OPC UA servers &#8211; real-time data with full address space mapping<\/td>\n<\/tr>\n<tr>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">OPC Classic HDA \u2192 OPC UA HA<\/td>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">Exposes OPC Classic HDA servers with historical data read capability through OPC UA Historical Access<\/td>\n<\/tr>\n<tr>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">OPC Classic AE \u2192 OPC UA A&amp;C<\/td>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">Maps OPC Classic Alarms and Events to the OPC UA Alarms and Conditions information model<\/td>\n<\/tr>\n<tr>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">OPC UA \u2192 OPC Classic (Proxy)<\/td>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">Presents OPC UA servers as OPC Classic servers for legacy clients<\/td>\n<\/tr>\n<tr>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">Automatic address space mapping<\/td>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">Intelligently maps OPC Classic tag structures to OPC UA node hierarchies without manual configuration<\/td>\n<\/tr>\n<tr>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">OPC UA security<\/td>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">Full OPC UA security: encrypted channels, certificate management, security mode selection (None \/ Sign \/ Sign &amp; Encrypt), user identity configuration<\/td>\n<\/tr>\n<tr>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">Windows Service deployment<\/td>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">Wrappers run as Windows background services &#8211; no user session required, survives reboots<\/td>\n<\/tr>\n<tr>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">Read\/write capability<\/td>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">Full read and write of OPC DA item values in real time<\/td>\n<\/tr>\n<tr>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">Logging and diagnostics<\/td>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">Configurable log levels for all connection events, errors, and data operations supports audit requirements<\/td>\n<\/tr>\n<tr>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">Intuitive configuration UI<\/td>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">GUI-based configuration tool &#8211; no scripting or SDK knowledge required<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><a id=\"download\" class=\"btn_product_download\" href=\"https:\/\/integrationobjects.com\/sioth-opc\/sioth-opc-unified-architecture\/opc-ua-wrapper\/\" target=\"_blank\" rel=\"noopener\">Download OPC UA Wrapper<\/a><\/p>\n<h2 class=\"text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold\">7. Approach 2: Phased protocol replacement<\/h2>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\"><strong>Best for:<\/strong> Organisations with medium-sized installed bases who want to progressively eliminate OPC Classic entirely over a 2\u20135 year horizon aligned with system refresh cycles.<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Phased replacement treats OPC UA migration as an ongoing programme rather than a single project. Each time an OPC Classic server reaches end-of-life, undergoes a scheduled upgrade, or is part of a broader system replacement, it is replaced with a native OPC UA interface. The OPC UA Wrapper handles the transition period bridging old clients that have not yet been updated alongside new OPC UA clients.<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">A practical phased roadmap looks like this:<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\"><strong>Phase 1: Immediate risk reduction (months 1\u20133).<\/strong> Deploy the OPC UA Wrapper in front of all OPC Classic servers that are accessible from the wider OT or IT network. All new client connections use OPC UA. DCOM is contained. Compliance posture improves immediately without touching any existing servers.<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\"><strong>Phase 2: New client migration (months 3\u201312).<\/strong> All new integration projects &#8211; cloud connections, MES upgrades, analytics platforms &#8211; connect via OPC UA only. No new OPC Classic clients are introduced. The OPC Classic installed base stops growing.<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\"><strong>Phase 3: Server-by-server replacement (12\u201336 months).<\/strong> As OPC Classic servers reach planned refresh cycles, replace them with native OPC UA servers , either through vendor firmware\/software upgrades where available, or through new hardware deployments. The Wrapper bridges the remaining OPC Classic servers throughout this phase.<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\"><strong>Phase 4:OPC Classic retirement (36\u201360 months).<\/strong> Once all servers are native OPC UA, the Wrapper layer can be decommissioned. The full <a href=\"https:\/\/integrationobjects.com\/blog\/blog-opc-ua-security\/\">OPC UA security<\/a> model operates end-to-end.<\/p>\n<h2 class=\"text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold\">8. Approach 3: Greenfield OPC UA development<\/h2>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\"><strong>Best for:<\/strong> New system deployments, major brownfield overhauls where existing systems are being replaced anyway, and software vendors building OPC UA interfaces into their products.<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">For organisations building new OPC UA interfaces from scratch, whether device manufacturers embedding OPC UA into PLCs and RTUs, or software vendors adding OPC UA connectivity to their platforms. The correct approach is native OPC UA development using an SDK toolkit.<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Integration Objects provides both an <a class=\"underline underline underline-offset-2 decoration-1 decoration-current\/40 hover:decoration-current focus:decoration-current\" href=\"https:\/\/integrationobjects.com\/sioth-opc\/sioth-opc-unified-architecture\/opc-ua-client-toolkit\/\">OPC UA Client Toolkit<\/a> and an <a class=\"underline underline underline-offset-2 decoration-1 decoration-current\/40 hover:decoration-current focus:decoration-current\" href=\"https:\/\/integrationobjects.com\/sioth-opc\/sioth-opc-unified-architecture\/opc-ua-server-toolkit\/\">OPC UA Server Toolkit<\/a> for .NET development environments. These toolkits provide a fully certified OPC UA implementation &#8211; handling the protocol stack, security layer, address space management, and session handling, so development teams can focus on their application logic rather than the specification complexity.<\/p>\n<h2 class=\"text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold\">9. OPC UA migration challenges and how to solve them<\/h2>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Every OPC UA migration encounters a predictable set of technical challenges. Here is how each one is addressed in practice.<\/p>\n<table class=\"min-w-full border-collapse text-sm leading-[1.7] whitespace-normal\">\n<thead class=\"text-left\">\n<tr>\n<th class=\"text-text-100 border-b-0.5 border-border-300\/60 py-2 pr-4 align-top font-bold\" scope=\"col\">Challenge<\/th>\n<th class=\"text-text-100 border-b-0.5 border-border-300\/60 py-2 pr-4 align-top font-bold\" scope=\"col\">What makes it difficult<\/th>\n<th class=\"text-text-100 border-b-0.5 border-border-300\/60 py-2 pr-4 align-top font-bold\" scope=\"col\">Recommended solution<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">Address space mapping<\/td>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">OPC Classic uses flat or semi-hierarchical tag-based addressing (e.g., &#8220;Plant1.Reactor2.Temperature&#8221;). OPC UA uses an object-oriented node hierarchy with typed references. The structures do not map 1:1<\/td>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">Use the OPC UA Wrapper&#8217;s automatic address space mapping, which preserves the OPC Classic tag hierarchy as a browseable OPC UA node tree &#8211; no manual mapping required<\/td>\n<\/tr>\n<tr>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">Security certificate management<\/td>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">OPC UA requires X.509 certificates for each client-server connection. In large deployments, managing certificates manually across dozens of applications is impractical<\/td>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">Implement an OPC UA Global Discovery Server (GDS) as a central Certificate Authority. It issues, distributes, and renews certificates automatically across all OPC UA applications<\/td>\n<\/tr>\n<tr>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">OPC AE to OPC UA A&amp;C migration<\/td>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">OPC Classic Alarms and Events and OPC UA Alarms and Conditions use different data models. Alarm conditions, sub-conditions, and event types do not map directly<\/td>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">Use the Wrapper&#8217;s AE-to-A&amp;C mapping layer, which translates OPC AE alarm structures to their OPC UA equivalents. Verify all alarm mappings in a test environment before production deployment<\/td>\n<\/tr>\n<tr>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">OPC HDA to OPC UA Historical Access<\/td>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">The HDA query model (raw, processed, at time) differs from OPC UA HA in both API structure and query capabilities<\/td>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">Use the Wrapper&#8217;s HDA bridging capability, then validate historical query results against known reference data from the original historian<\/td>\n<\/tr>\n<tr>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">Firewall and network reconfiguration<\/td>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">Moving from DCOM dynamic ports to a single OPC UA port requires firewall rule changes which need IT security team involvement and change management processes<\/td>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">This is actually a security improvement: work with your network security team to define precise rules for the OPC UA port (default 4840 \/ 4843 for HTTPS). Document the change as part of your IEC 62443 or NIS2 compliance evidence<\/td>\n<\/tr>\n<tr>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">Legacy client compatibility<\/td>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">Older OPC Classic client applications (SCADA, HMI, reporting tools) cannot be replaced immediately and must continue working during migration<\/td>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">Deploy the OPC UA Proxy component: legacy OPC Classic clients connect to the Proxy, which presents OPC UA servers as OPC Classic servers. No changes to legacy client applications are required<\/td>\n<\/tr>\n<tr>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">OPC UA security modes \u2014 choosing the right policy<\/td>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">OPC UA supports multiple security policies (None, Sign, Sign &amp; Encrypt) and algorithms (Basic256Sha256, Aes128_Sha256_RsaOaep, Aes256_Sha256_RsaPss). Choosing incorrectly creates either security gaps or unnecessary performance overhead<\/td>\n<td class=\"border-b-0.5 border-border-300\/30 py-2 pr-4 align-top\">For all production connections: use Sign &amp; Encrypt with Aes256_Sha256_RsaPss or Aes128_Sha256_RsaOaep. Reserve Security Mode: None for isolated test environments only<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 class=\"text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold\">10. OPC UA migration and regulatory compliance<\/h2>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">OPC UA migration is not just a technical upgrade, in many jurisdictions and sectors it is becoming a compliance requirement. Here is how migration maps to the frameworks most relevant to industrial operators.<\/p>\n<h3 class=\"text-text-100 mt-2 -mb-1 text-base font-bold\">NIS2 Directive (European Union)<\/h3>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Applicable to medium and large operators of essential services across manufacturing, energy, water, transport, and healthcare sectors in the EU. NIS2 (effective October 2024) requires appropriate technical cybersecurity measures including encrypted communications and access controls for OT systems. Migrating to OPC UA &#8211; with its AES-256 encryption and certificate-based authentication &#8211; directly addresses the encrypted communications requirement. The OPC UA Wrapper allows EU operators to demonstrate compliance progress on existing infrastructure without a full replacement programme.<\/p>\n<h3 class=\"text-text-100 mt-2 -mb-1 text-base font-bold\">NERC CIP (North America: energy sector)<\/h3>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">NERC CIP standards require bulk electric system operators to maintain Electronic Security Perimeters with precise, auditable communication controls. DCOM&#8217;s dynamic port requirements make this technically challenging to achieve cleanly. Replacing DCOM-exposed OPC Classic connections with OPC UA Wrapper-mediated connections reduces the Electronic Security Perimeter to a single, configurable port significantly simplifying NERC CIP compliance for OT network boundaries.<\/p>\n<h3 class=\"text-text-100 mt-2 -mb-1 text-base font-bold\">IEC 62443 (global: industrial cybersecurity)<\/h3>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">IEC 62443 Zone and Conduit models require defined, controlled communication paths between security zones. OPC UA provides the encryption, authentication, and access control primitives that IEC 62443-compliant conduit design requires. The Wrapper approach &#8211; containing DCOM to a local zone and exposing only OPC UA at the conduit boundary &#8211; is a practical implementation of IEC 62443 conduit security for brownfield environments.<\/p>\n<h3 class=\"text-text-100 mt-2 -mb-1 text-base font-bold\">FDA 21 CFR Part 11 \/ EU Annex 11 (pharmaceuticals)<\/h3>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Both regulations require electronic records to be trustworthy and traceable, with audit trails for all significant system operations. OPC UA&#8217;s session-level audit logging, recording connection events, data access, and write operations, supports the audit trail requirements. User authentication via OPC UA certificates or username\/password over an encrypted channel supports the individual user accountability requirements of both regulations.<\/p>\n<h2 class=\"text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold\">11. Migration by industry<\/h2>\n<h3 class=\"text-text-100 mt-2 -mb-1 text-base font-bold\">Manufacturing (EU and North America)<\/h3>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Manufacturing organisations face a dual pressure: NIS2 compliance timelines (EU) and the growing expectation from Tier 1 customers that supply chain OT networks meet minimum cybersecurity standards. The OPC UA Wrapper provides an immediate, demonstrable improvement in security posture without the capital expenditure of a full system replacement, making it straightforward to present to management as a compliance investment with defined ROI.<\/p>\n<h3 class=\"text-text-100 mt-2 -mb-1 text-base font-bold\">Oil and gas (global: North America, Middle East, North Sea)<\/h3>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Wellsite and refinery environments combine decades-old process control infrastructure with modern requirements to stream data to cloud historians, AI analytics platforms, and corporate data warehouses. OPC Classic servers are common in these environments &#8211; as are strict uptime requirements that make any migration involving process downtime very difficult to justify. The Wrapper-based approach, which requires no changes to existing servers, is the appropriate migration path for most upstream and downstream oil and gas deployments.<\/p>\n<h3 class=\"text-text-100 mt-2 -mb-1 text-base font-bold\">Energy and utilities (North America &#8211; NERC CIP)<\/h3>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">NERC CIP Electronic Security Perimeter requirements directly motivate migration away from DCOM. Utilities that have historically run OPC Classic across their OT network for SCADA-to-historian communication can use the OPC UA Wrapper to replace those wide-area DCOM connections with single-port OPC UA connections improving both security posture and NERC CIP auditability simultaneously.<\/p>\n<h3 class=\"text-text-100 mt-2 -mb-1 text-base font-bold\">Pharmaceuticals (US &#8211; FDA 21 CFR Part 11; EU &#8211; Annex 11)<\/h3>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Batch manufacturing systems using OPC Classic for process data collection face increasing scrutiny in regulatory audits over the adequacy of their audit trails. Deploying the OPC UA Wrapper adds encryption and session-level logging to existing OPC Classic data flows, providing the traceability evidence that 21 CFR Part 11 and Annex 11 auditors require.<\/p>\n<h2 class=\"text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold\">12. How to get started<\/h2>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">OPC UA migration does not need to start with a full programme plan. The most effective approach is to begin with a contained deployment that delivers immediate security benefit and builds organisational confidence in the migration path.<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\"><strong>Step 1: Identify your highest-exposure OPC Classic connections.<\/strong> Start with OPC Classic servers that are accessible from the IT network, from cloud platforms, or from remote access VPNs. These carry the most DCOM exposure risk and will deliver the most immediate security improvement.<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\"><strong>Step 2: Deploy the OPC UA Wrapper on those connections.<\/strong> The Wrapper is a plug-and-play deployment &#8211; no changes to existing OPC Classic servers, no PLC modifications. <a href=\"https:\/\/integrationobjects.com\/blog\/configure-opc-ua-tags-wrapper-address-space\/\">Configure the OPC UA<\/a> side with Sign &amp; Encrypt security. New client connections to those servers now use OPC UA.<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\"><strong>Step 3: Configure address space and verify data integrity.<\/strong> Use the Wrapper&#8217;s configuration tool to review the automatically mapped address space. Validate that data values, historical records (if using HDA), and alarms (if using AE) are being correctly bridged. Integration Objects provides <a class=\"underline underline underline-offset-2 decoration-1 decoration-current\/40 hover:decoration-current focus:decoration-current\" href=\"https:\/\/integrationobjects.com\/blog\/configure-opc-ua-tags-wrapper-address-space\/\">step-by-step configuration documentation<\/a> and <a class=\"underline underline underline-offset-2 decoration-1 decoration-current\/40 hover:decoration-current focus:decoration-current\" href=\"https:\/\/integrationobjects.com\/opc-demo\/opc-ua-demo-videos\/\">video tutorials<\/a> for this process.<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\"><strong>Step 4: Establish your certificate management process.<\/strong> Even for a small initial deployment, putting a certificate management process in place from the start saves significant operational overhead later. For larger deployments, implement a Global Discovery Server.<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\"><strong>Step 5: Plan the broader migration roadmap.<\/strong> With the Wrapper in place and working, plan the phased replacement of remaining OPC Classic servers aligned with system refresh cycles and budget planning.<\/p>\n<h2 class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">13. Frequently asked questions<\/h2>\n<style>#sp-ea-1837 .spcollapsing { height: 0; overflow: hidden; transition-property: height;transition-duration: 300ms;}#sp-ea-1837.sp-easy-accordion>.sp-ea-single {margin-bottom: 10px; border: 1px solid #e2e2e2; }#sp-ea-1837.sp-easy-accordion>.sp-ea-single>.ea-header a {color: #444;}#sp-ea-1837.sp-easy-accordion>.sp-ea-single>.sp-collapse>.ea-body {background: #fff; color: #444;}#sp-ea-1837.sp-easy-accordion>.sp-ea-single {background: #eee;}#sp-ea-1837.sp-easy-accordion>.sp-ea-single>.ea-header a .ea-expand-icon { float: left; color: #444;font-size: 16px;}.sp-easy-accordion .sp-ea-single .ea-header a{\r\n  display: block;\r\n    text-decoration: none;\r\n    cursor: pointer;\r\n    font-weight: 600;\r\n    color: #444;\r\n    font-size: 16px;\r\n    line-height: 1;\r\n  box-shadow: none;}<\/style><div id=\"sp_easy_accordion-1776782406\"><div id=\"sp-ea-1837\" class=\"sp-ea-one sp-easy-accordion\" data-ea-active=\"ea-click\" data-ea-mode=\"vertical\" data-preloader=\"\" data-scroll-active-item=\"\" data-offset-to-scroll=\"0\"><div class=\"ea-card ea-expand sp-ea-single\"><h3 class=\"ea-header\"><a class=\"collapsed\" id=\"ea-header-18370\" role=\"button\" data-sptoggle=\"spcollapse\" data-sptarget=\"#collapse18370\" aria-controls=\"collapse18370\" href=\"#\" aria-expanded=\"true\" tabindex=\"0\"><i aria-hidden=\"true\" role=\"presentation\" class=\"ea-expand-icon eap-icon-ea-expand-minus\"><\/i> What is OPC UA migration?<\/a><\/h3><div class=\"sp-collapse spcollapse collapsed show\" id=\"collapse18370\" data-parent=\"#sp-ea-1837\" role=\"region\" aria-labelledby=\"ea-header-18370\"> <div class=\"ea-body\"><p>OPC UA migration is the process of transitioning industrial automation systems from OPC Classic protocols (OPC DA, OPC HDA, OPC AE) which rely on Windows-only COM\/DCOM technology to OPC UA (Open Platform Communications Unified Architecture), the modern, platform-independent IEC 62541 standard. Migration addresses security, compliance, and interoperability limitations that OPC Classic cannot overcome without replacing the protocol.<\/p><\/div><\/div><\/div><div class=\"ea-card sp-ea-single\"><h3 class=\"ea-header\"><a class=\"collapsed\" id=\"ea-header-18371\" role=\"button\" data-sptoggle=\"spcollapse\" data-sptarget=\"#collapse18371\" aria-controls=\"collapse18371\" href=\"#\" aria-expanded=\"false\" tabindex=\"0\"><i aria-hidden=\"true\" role=\"presentation\" class=\"ea-expand-icon eap-icon-ea-expand-plus\"><\/i> How long does an OPC UA migration take?<\/a><\/h3><div class=\"sp-collapse spcollapse \" id=\"collapse18371\" data-parent=\"#sp-ea-1837\" role=\"region\" aria-labelledby=\"ea-header-18371\"> <div class=\"ea-body\"><p>It depends entirely on the scope. A single OPC Classic server can be bridged to OPC UA in under an hour using the OPC UA Wrapper with no downtime. A full programme migrating a large industrial site with hundreds of OPC Classic connections typically runs 2\u20135 years when planned as a phased replacement aligned with system refresh cycles. The Wrapper approach allows organisations to start delivering security and compliance benefits on day one while the longer-term replacement programme proceeds.<\/p><\/div><\/div><\/div><div class=\"ea-card sp-ea-single\"><h3 class=\"ea-header\"><a class=\"collapsed\" id=\"ea-header-18372\" role=\"button\" data-sptoggle=\"spcollapse\" data-sptarget=\"#collapse18372\" aria-controls=\"collapse18372\" href=\"#\" aria-expanded=\"false\" tabindex=\"0\"><i aria-hidden=\"true\" role=\"presentation\" class=\"ea-expand-icon eap-icon-ea-expand-plus\"><\/i> Can I migrate from OPC Classic to OPC UA without replacing existing servers?<\/a><\/h3><div class=\"sp-collapse spcollapse \" id=\"collapse18372\" data-parent=\"#sp-ea-1837\" role=\"region\" aria-labelledby=\"ea-header-18372\"> <div class=\"ea-body\"><p>Yes. The OPC UA Wrapper connects to existing OPC Classic DA, HDA, and AE servers using their existing DCOM interface and re-exposes their data as a fully compliant OPC UA server. No changes are required to the OPC Classic server, its configuration, or the underlying PLC or device. This is the recommended approach for brownfield environments.<\/p><\/div><\/div><\/div><div class=\"ea-card sp-ea-single\"><h3 class=\"ea-header\"><a class=\"collapsed\" id=\"ea-header-18373\" role=\"button\" data-sptoggle=\"spcollapse\" data-sptarget=\"#collapse18373\" aria-controls=\"collapse18373\" href=\"#\" aria-expanded=\"false\" tabindex=\"0\"><i aria-hidden=\"true\" role=\"presentation\" class=\"ea-expand-icon eap-icon-ea-expand-plus\"><\/i> What is the difference between the OPC UA Wrapper and the OPC UA Proxy?<\/a><\/h3><div class=\"sp-collapse spcollapse \" id=\"collapse18373\" data-parent=\"#sp-ea-1837\" role=\"region\" aria-labelledby=\"ea-header-18373\"> <div class=\"ea-body\"><p>The OPC UA Wrapper component bridges OPC Classic <em>servers<\/em> to OPC UA <em>clients<\/em> - legacy servers become accessible via OPC UA. The OPC UA Proxy component bridges OPC UA <em>servers<\/em> to OPC Classic <em>clients<\/em> - modern OPC UA servers become accessible to legacy OPC Classic client applications. Both components are included in the OPC UA Wrapper product, supporting migration in both directions simultaneously.<\/p><\/div><\/div><\/div><div class=\"ea-card sp-ea-single\"><h3 class=\"ea-header\"><a class=\"collapsed\" id=\"ea-header-18374\" role=\"button\" data-sptoggle=\"spcollapse\" data-sptarget=\"#collapse18374\" aria-controls=\"collapse18374\" href=\"#\" aria-expanded=\"false\" tabindex=\"0\"><i aria-hidden=\"true\" role=\"presentation\" class=\"ea-expand-icon eap-icon-ea-expand-plus\"><\/i> Does migrating to OPC UA help with NIS2 compliance?<\/a><\/h3><div class=\"sp-collapse spcollapse \" id=\"collapse18374\" data-parent=\"#sp-ea-1837\" role=\"region\" aria-labelledby=\"ea-header-18374\"> <div class=\"ea-body\"><p>Yes, directly. NIS2 requires encrypted communications and access controls for OT systems in scope. OPC UA's AES-256 encryption and X.509 certificate-based authentication satisfy the encrypted communications requirement. The OPC UA Wrapper enables EU operators to apply these controls to existing OPC Classic infrastructure without a full system replacement, making NIS2 compliance progress achievable on practical timescales.<\/p><\/div><\/div><\/div><div class=\"ea-card sp-ea-single\"><h3 class=\"ea-header\"><a class=\"collapsed\" id=\"ea-header-18375\" role=\"button\" data-sptoggle=\"spcollapse\" data-sptarget=\"#collapse18375\" aria-controls=\"collapse18375\" href=\"#\" aria-expanded=\"false\" tabindex=\"0\"><i aria-hidden=\"true\" role=\"presentation\" class=\"ea-expand-icon eap-icon-ea-expand-plus\"><\/i> What happens to OPC Classic DA, HDA, and AE data during migration?<\/a><\/h3><div class=\"sp-collapse spcollapse \" id=\"collapse18375\" data-parent=\"#sp-ea-1837\" role=\"region\" aria-labelledby=\"ea-header-18375\"> <div class=\"ea-body\"><p>All three data types are supported by the OPC UA Wrapper. OPC DA (real-time) data is bridged through the Wrapper's OPC UA DA interface. OPC HDA (historical) data is accessible through OPC UA Historical Access. OPC AE (alarms and events) are mapped to the OPC UA Alarms and Conditions model. Data continuity is preserved throughout - no historical data loss occurs during the transition.<\/p><\/div><\/div><\/div><div class=\"ea-card sp-ea-single\"><h3 class=\"ea-header\"><a class=\"collapsed\" id=\"ea-header-18376\" role=\"button\" data-sptoggle=\"spcollapse\" data-sptarget=\"#collapse18376\" aria-controls=\"collapse18376\" href=\"#\" aria-expanded=\"false\" tabindex=\"0\"><i aria-hidden=\"true\" role=\"presentation\" class=\"ea-expand-icon eap-icon-ea-expand-plus\"><\/i> Do I need to change my PLCs to migrate to OPC UA?<\/a><\/h3><div class=\"sp-collapse spcollapse \" id=\"collapse18376\" data-parent=\"#sp-ea-1837\" role=\"region\" aria-labelledby=\"ea-header-18376\"> <div class=\"ea-body\"><p>No. When using the OPC UA Wrapper approach, PLCs and field devices remain completely unchanged. The Wrapper operates at the software layer between OPC Classic servers and OPC UA clients - neither the PLC nor the OPC Classic server needs modification. PLC changes are only required if you are implementing native OPC UA interfaces at the device level, which is an option for greenfield projects or major hardware refresh programmes.<\/p><\/div><\/div><\/div><div class=\"ea-card sp-ea-single\"><h3 class=\"ea-header\"><a class=\"collapsed\" id=\"ea-header-18377\" role=\"button\" data-sptoggle=\"spcollapse\" data-sptarget=\"#collapse18377\" aria-controls=\"collapse18377\" href=\"#\" aria-expanded=\"false\" tabindex=\"0\"><i aria-hidden=\"true\" role=\"presentation\" class=\"ea-expand-icon eap-icon-ea-expand-plus\"><\/i> What OPC UA security settings should I use for production migration?<\/a><\/h3><div class=\"sp-collapse spcollapse \" id=\"collapse18377\" data-parent=\"#sp-ea-1837\" role=\"region\" aria-labelledby=\"ea-header-18377\"> <div class=\"ea-body\"><p>Use Security Mode: Sign &amp; Encrypt with either the Aes256_Sha256_RsaPss or Aes128_Sha256_RsaOaep security policy for all production OPC UA connections. Use X.509 certificate-based authentication for application identity. Use Security Mode: None only in isolated test environments never in production. Refer to the <a class=\"underline underline underline-offset-2 decoration-1 decoration-current\/40 hover:decoration-current focus:decoration-current\" href=\"https:\/\/integrationobjects.com\/blog\/blog-opc-ua-security\/\">OPC UA Security guide<\/a> for a full explanation of the security policy options.<\/p><\/div><\/div><\/div><script type=\"application\/ld+json\">{ \"@context\": \"https:\/\/schema.org\", \"@type\": \"FAQPage\", \"@id\": \"sp-ea-schema-1837-69f2e1bfb03ab\", \"mainEntity\": [{ \"@type\": \"Question\", \"name\": \"What is OPC UA migration?\", \"acceptedAnswer\": { \"@type\": \"Answer\", \"text\": \"OPC UA migration is the process of transitioning industrial automation systems from OPC Classic protocols (OPC DA, OPC HDA, OPC AE) which rely on Windows-only COM\/DCOM technology to OPC UA (Open Platform Communications Unified Architecture), the modern, platform-independent IEC 62541 standard. Migration addresses security, compliance, and interoperability limitations that OPC Classic cannot overcome without replacing the protocol.\" } },{ \"@type\": \"Question\", \"name\": \"How long does an OPC UA migration take?\", \"acceptedAnswer\": { \"@type\": \"Answer\", \"text\": \"It depends entirely on the scope. A single OPC Classic server can be bridged to OPC UA in under an hour using the OPC UA Wrapper with no downtime. A full programme migrating a large industrial site with hundreds of OPC Classic connections typically runs 2\u20135 years when planned as a phased replacement aligned with system refresh cycles. The Wrapper approach allows organisations to start delivering security and compliance benefits on day one while the longer-term replacement programme proceeds.\" } },{ \"@type\": \"Question\", \"name\": \"Can I migrate from OPC Classic to OPC UA without replacing existing servers?\", \"acceptedAnswer\": { \"@type\": \"Answer\", \"text\": \"Yes. The OPC UA Wrapper connects to existing OPC Classic DA, HDA, and AE servers using their existing DCOM interface and re-exposes their data as a fully compliant OPC UA server. No changes are required to the OPC Classic server, its configuration, or the underlying PLC or device. This is the recommended approach for brownfield environments.\" } },{ \"@type\": \"Question\", \"name\": \"What is the difference between the OPC UA Wrapper and the OPC UA Proxy?\", \"acceptedAnswer\": { \"@type\": \"Answer\", \"text\": \"The OPC UA Wrapper component bridges OPC Classic<em>servers<\/em>to OPC UA<em>clients<\/em>- legacy servers become accessible via OPC UA. The OPC UA Proxy component bridges OPC UA<em>servers<\/em>to OPC Classic<em>clients<\/em>- modern OPC UA servers become accessible to legacy OPC Classic client applications. Both components are included in the OPC UA Wrapper product, supporting migration in both directions simultaneously.\" } },{ \"@type\": \"Question\", \"name\": \"Does migrating to OPC UA help with NIS2 compliance?\", \"acceptedAnswer\": { \"@type\": \"Answer\", \"text\": \"Yes, directly. NIS2 requires encrypted communications and access controls for OT systems in scope. OPC UA's AES-256 encryption and X.509 certificate-based authentication satisfy the encrypted communications requirement. The OPC UA Wrapper enables EU operators to apply these controls to existing OPC Classic infrastructure without a full system replacement, making NIS2 compliance progress achievable on practical timescales.\" } },{ \"@type\": \"Question\", \"name\": \"What happens to OPC Classic DA, HDA, and AE data during migration?\", \"acceptedAnswer\": { \"@type\": \"Answer\", \"text\": \"All three data types are supported by the OPC UA Wrapper. OPC DA (real-time) data is bridged through the Wrapper's OPC UA DA interface. OPC HDA (historical) data is accessible through OPC UA Historical Access. OPC AE (alarms and events) are mapped to the OPC UA Alarms and Conditions model. Data continuity is preserved throughout - no historical data loss occurs during the transition.\" } },{ \"@type\": \"Question\", \"name\": \"Do I need to change my PLCs to migrate to OPC UA?\", \"acceptedAnswer\": { \"@type\": \"Answer\", \"text\": \"No. When using the OPC UA Wrapper approach, PLCs and field devices remain completely unchanged. The Wrapper operates at the software layer between OPC Classic servers and OPC UA clients - neither the PLC nor the OPC Classic server needs modification. PLC changes are only required if you are implementing native OPC UA interfaces at the device level, which is an option for greenfield projects or major hardware refresh programmes.\" } },{ \"@type\": \"Question\", \"name\": \"What OPC UA security settings should I use for production migration?\", \"acceptedAnswer\": { \"@type\": \"Answer\", \"text\": \"Use Security Mode: Sign &amp; Encrypt with either the Aes256_Sha256_RsaPss or Aes128_Sha256_RsaOaep security policy for all production OPC UA connections. Use X.509 certificate-based authentication for application identity. Use Security Mode: None only in isolated test environments never in production. Refer to the OPC UA Security guide for a full explanation of the security policy options.\" } }] }<\/script><\/div><\/div>\n<h2 class=\"text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold\">Related reading: OPC UA Migration cluster<\/h2>\n<ul class=\"[li_&amp;]:mb-0 [li_&amp;]:mt-1 [li_&amp;]:gap-1 [&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc flex flex-col gap-1 pl-8 mb-3\">\n<li class=\"whitespace-normal break-words pl-2\"><a class=\"underline underline underline-offset-2 decoration-1 decoration-current\/40 hover:decoration-current focus:decoration-current\" href=\"https:\/\/integrationobjects.com\/blog\/blog-opc-ua-security\/\">OPC UA Security: The Complete Guide<\/a> :understanding what you are migrating to<\/li>\n<li class=\"whitespace-normal break-words pl-2\"><a class=\"underline underline underline-offset-2 decoration-1 decoration-current\/40 hover:decoration-current focus:decoration-current\" href=\"https:\/\/integrationobjects.com\/blog\/blog-opc-classic-security-risks-opc-ua-wrapper\/\">OPC Classic Security Risks: How the OPC UA Wrapper Eliminates DCOM Vulnerabilities<\/a>: the security case for migration<\/li>\n<li class=\"whitespace-normal break-words pl-2\"><a class=\"underline underline underline-offset-2 decoration-1 decoration-current\/40 hover:decoration-current focus:decoration-current\" href=\"https:\/\/integrationobjects.com\/blog\/configure-opc-ua-tags-wrapper-address-space\/\">How to Configure OPC UA Wrapper Address Space<\/a>: step-by-step configuration guide<\/li>\n<li class=\"whitespace-normal break-words pl-2\"><a class=\"underline underline underline-offset-2 decoration-1 decoration-current\/40 hover:decoration-current focus:decoration-current\" href=\"https:\/\/integrationobjects.com\/blog\/how-opc-ua-wrapper-unifies-cost-control-and-compliance\/\">OPC UA Wrapper: Cost, Control, and Compliance<\/a>: the business case<\/li>\n<li class=\"whitespace-normal break-words pl-2\"><a class=\"underline underline underline-offset-2 decoration-1 decoration-current\/40 hover:decoration-current focus:decoration-current\" href=\"https:\/\/integrationobjects.com\/blog\/step-by-step-setting-up-opcnet-broker-in-15-minutes\/\">OPC Tunnelling with OPCNet Broker &#8211; No DCOM<\/a>: alternative for remote OPC Classic access without DCOM<\/li>\n<li class=\"whitespace-normal break-words pl-2\"><a class=\"underline underline underline-offset-2 decoration-1 decoration-current\/40 hover:decoration-current focus:decoration-current\" href=\"https:\/\/integrationobjects.com\/blog\/what-is-opc-ua\/\">What is OPC UA?:<\/a>\u00a0foundational guide to the OPC UA standard<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>1. Why OPC UA migration has become urgent in 2026 For most of the past decade, migrating from OPC Classic to OPC UA was sensible<\/p>\n","protected":false},"author":1,"featured_media":1646,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[184,183],"tags":[195,50],"class_list":["post-1364","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-opc-classic","category-opc-ua","tag-opc-ua-migration","tag-opc-ua-wrapper"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>OPC UA Migration: The Complete Guide for Industrial Organisations<\/title>\n<meta name=\"description\" content=\"Planning an OPC UA migration? This complete guide covers every approach - wrapper-based, phased, and SDK-based with migration challenges, compliance implications, and a step-by-step roadmap\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/integrationobjects.com\/blog\/migrating-opc-classic-opc-ua-seamlessly\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"OPC UA Migration: The Complete Guide for Industrial Organisations\" \/>\n<meta property=\"og:description\" content=\"Planning an OPC UA migration? This complete guide covers every approach - wrapper-based, phased, and SDK-based with migration challenges, compliance implications, and a step-by-step roadmap\" \/>\n<meta property=\"og:url\" content=\"https:\/\/integrationobjects.com\/blog\/migrating-opc-classic-opc-ua-seamlessly\/\" \/>\n<meta property=\"og:site_name\" content=\"OPC Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Integration.Objects.OPC\/\" \/>\n<meta property=\"article:published_time\" content=\"2026-01-04T07:54:27+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-21T15:47:37+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/integrationobjects.com\/blog\/wp-content\/uploads\/2024\/01\/Integration-Objects-40-1024x576.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"576\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"OPCBlogAdmin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@IntegObjects\" \/>\n<meta name=\"twitter:site\" content=\"@IntegObjects\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"OPCBlogAdmin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"15 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"OPC UA Migration: The Complete Guide for Industrial Organisations","description":"Planning an OPC UA migration? This complete guide covers every approach - wrapper-based, phased, and SDK-based with migration challenges, compliance implications, and a step-by-step roadmap","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/integrationobjects.com\/blog\/migrating-opc-classic-opc-ua-seamlessly\/","og_locale":"en_US","og_type":"article","og_title":"OPC UA Migration: The Complete Guide for Industrial Organisations","og_description":"Planning an OPC UA migration? This complete guide covers every approach - wrapper-based, phased, and SDK-based with migration challenges, compliance implications, and a step-by-step roadmap","og_url":"https:\/\/integrationobjects.com\/blog\/migrating-opc-classic-opc-ua-seamlessly\/","og_site_name":"OPC Blog","article_publisher":"https:\/\/www.facebook.com\/Integration.Objects.OPC\/","article_published_time":"2026-01-04T07:54:27+00:00","article_modified_time":"2026-04-21T15:47:37+00:00","og_image":[{"width":1024,"height":576,"url":"https:\/\/integrationobjects.com\/blog\/wp-content\/uploads\/2024\/01\/Integration-Objects-40-1024x576.png","type":"image\/png"}],"author":"OPCBlogAdmin","twitter_card":"summary_large_image","twitter_creator":"@IntegObjects","twitter_site":"@IntegObjects","twitter_misc":{"Written by":"OPCBlogAdmin","Est. reading time":"15 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/integrationobjects.com\/blog\/migrating-opc-classic-opc-ua-seamlessly\/","url":"https:\/\/integrationobjects.com\/blog\/migrating-opc-classic-opc-ua-seamlessly\/","name":"OPC UA Migration: The Complete Guide for Industrial Organisations","isPartOf":{"@id":"https:\/\/integrationobjects.com\/blog-\/#website"},"primaryImageOfPage":{"@id":"https:\/\/integrationobjects.com\/blog\/migrating-opc-classic-opc-ua-seamlessly\/#primaryimage"},"image":{"@id":"https:\/\/integrationobjects.com\/blog\/migrating-opc-classic-opc-ua-seamlessly\/#primaryimage"},"thumbnailUrl":"https:\/\/integrationobjects.com\/blog\/wp-content\/uploads\/2024\/01\/Integration-Objects-40.png","datePublished":"2026-01-04T07:54:27+00:00","dateModified":"2026-04-21T15:47:37+00:00","author":{"@id":"https:\/\/integrationobjects.com\/blog-\/#\/schema\/person\/6efbaf488a07e418b93ff77f00af386b"},"description":"Planning an OPC UA migration? This complete guide covers every approach - wrapper-based, phased, and SDK-based with migration challenges, compliance implications, and a step-by-step roadmap","breadcrumb":{"@id":"https:\/\/integrationobjects.com\/blog\/migrating-opc-classic-opc-ua-seamlessly\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/integrationobjects.com\/blog\/migrating-opc-classic-opc-ua-seamlessly\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/integrationobjects.com\/blog\/migrating-opc-classic-opc-ua-seamlessly\/#primaryimage","url":"https:\/\/integrationobjects.com\/blog\/wp-content\/uploads\/2024\/01\/Integration-Objects-40.png","contentUrl":"https:\/\/integrationobjects.com\/blog\/wp-content\/uploads\/2024\/01\/Integration-Objects-40.png","width":1920,"height":1080,"caption":"OPC UA Migration"},{"@type":"BreadcrumbList","@id":"https:\/\/integrationobjects.com\/blog\/migrating-opc-classic-opc-ua-seamlessly\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/integrationobjects.com\/blog-\/"},{"@type":"ListItem","position":2,"name":"OPC UA Migration: The Complete Guide for Industrial Organisations"}]},{"@type":"WebSite","@id":"https:\/\/integrationobjects.com\/blog-\/#website","url":"https:\/\/integrationobjects.com\/blog-\/","name":"OPC Blog","description":"OPC and related technologies news from Integration Objects","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/integrationobjects.com\/blog-\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/integrationobjects.com\/blog-\/#\/schema\/person\/6efbaf488a07e418b93ff77f00af386b","name":"OPCBlogAdmin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/integrationobjects.com\/blog-\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/f2d787c3c48eb147d5b4d0c9d05c6f35a5946c7dc40af2eedbe64030e99ea299?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f2d787c3c48eb147d5b4d0c9d05c6f35a5946c7dc40af2eedbe64030e99ea299?s=96&d=mm&r=g","caption":"OPCBlogAdmin"}}]}},"_links":{"self":[{"href":"https:\/\/integrationobjects.com\/blog\/wp-json\/wp\/v2\/posts\/1364","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/integrationobjects.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/integrationobjects.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/integrationobjects.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/integrationobjects.com\/blog\/wp-json\/wp\/v2\/comments?post=1364"}],"version-history":[{"count":5,"href":"https:\/\/integrationobjects.com\/blog\/wp-json\/wp\/v2\/posts\/1364\/revisions"}],"predecessor-version":[{"id":1840,"href":"https:\/\/integrationobjects.com\/blog\/wp-json\/wp\/v2\/posts\/1364\/revisions\/1840"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/integrationobjects.com\/blog\/wp-json\/wp\/v2\/media\/1646"}],"wp:attachment":[{"href":"https:\/\/integrationobjects.com\/blog\/wp-json\/wp\/v2\/media?parent=1364"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/integrationobjects.com\/blog\/wp-json\/wp\/v2\/categories?post=1364"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/integrationobjects.com\/blog\/wp-json\/wp\/v2\/tags?post=1364"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}