Siemens 840D OPC UA Data Access: FOCAS Alternative Setup

David Krause18 min read
Data AcquisitionSiemensTechnical Reference
Licensed PE Working through this on a live machine? A Maine-licensed engineer can take it from here — included with IMD hardware, by the hour for everything else. Book an engineer

Overview: Replacing FANUC FOCAS Functionality on Sinumerik 840D

Engineers integrating shop-floor data acquisition on mixed CNC fleets routinely ask how to obtain FOCAS-equivalent access to Siemens Sinumerik 840D controllers. FANUC FOCAS (FANUC Open CNC API Specifications) exposes a DLL-based Ethernet interface to Series 30i/31i/32i-MB, 0i-MF, and 0i-TF CNCs, giving clients a standardized handle to macro variables, axis positions, spindle load, alarm history, modal codes, and program lists. Siemens does not publish a literal FOCAS-equivalent DLL. The 840D family instead exposes data through OPC UA (via the SINUMERIK Integrate Access MyMachine /OPC UA option, MLFB 6FC5800-0AP67-0YB0), legacy HMI-Advanced RPC, MTConnect adapters, PROFINET diagnostics, and the DNC/PLC interface. The correct path depends on the controller variant (840D classic vs. 840D SL), HMI software (HMI-Advanced on PCU 50.3 vs. SINUMERIK Operate on PCU/TCU), and the option license installed on the CF card.

This reference compares the available data interfaces, walks through the OPC UA commissioning path on an 840D SL running SINUMERIK Operate 4.5 or 4.7, and documents the network, certificate, and address-mapping requirements for clients written in C#, LabVIEW, and Python. The companion HMI-Advanced RPC path for older 840D V6.5.45 / HMI V6.4.32 / PCU50.3 installations is covered in a dedicated section for plants that have not yet migrated to Operate.

FANUC FOCAS Architecture (Reference Baseline)

FOCAS is delivered as a 32-bit Windows DLL pair (Fwlib32.dll / Fwlibe1.dll) and ships with C/C++ headers plus a LabVIEW VIs palette for the most common reads. Communication uses a dedicated TCP port (default 8193) on a 10/100 Ethernet port of the CNC, with a configurable keep-alive timeout and a separate maintenance port. The DLL exposes handles to logical groups: axis data, spindle data, tool data, program list, NC program download, modal M/G-codes, PMC data, alarm history, and operation history. Each function takes a handle (FW_HANDLE) returned from cnc_allclibhndl3 or cnc_rdhndl2 and a structured parameter block; the return value is an integer error code where 0 = EW_OK and negative values indicate a controller-side fault.

Common FOCAS function IDs in use on shop-floor deployments include:

  • cnc_rdposition (FUN 14) - absolute, relative, machine, and remaining axis positions
  • cnc_rdspeed (FUN 33) - actual and commanded spindle speed, feedrate override
  • cnc_rdspload (FUN 36) - spindle load percent and motor current
  • cnc_rdmacro (FUN 17) - read common and system macro variables (#1 to #33, #1000+)
  • cnc_rdpmcrng (FUN 63) - read macro variable range
  • cnc_rdtooldata (FUN 72) - tool offset and life data
  • cnc_rdprogdir (FUN 35) - enumerate NC programs
  • cnc_rdalarm (FUN 10) and cnc_rdhisslib (FUN 12) - active and historical alarms
  • cnc_rdpmc / cnc_wrpmc - PMC R/D area read/write

Performance is acceptable for SCADA polling at 250 to 500 ms cadence over a single TCP session. Multiplexing to a single CNC from multiple FOCAS clients requires the FOCAS2 (cnc_*_ex) handle set with exclusive/semi-exclusive flags, or an in-process broker. The FOCAS brochure documents FASBacCNC and FASConnect as canonical deployment patterns for backup and runtime data collection. Reference: FOCAS Automation Solutions brochure (FANUC America).

Sinumerik 840D Data Interface Options

Siemens publishes five distinct data paths to an 840D NCU. They are not all available on every controller version, and several require an option license on the CF card. The selection matrix below summarizes availability and the supporting HMI/Operate version required.

Interface 840D classic (PCU50.3, HMI-Advanced) 840D SL (Operate 4.5) 840D SL (Operate 4.7) License / Option
OPC UA server (Access MyMachine /OPC UA) Not supported Yes (select 4.5 SPx) Yes (4.7 SPx) 6FC5800-0AP67-0YB0
MCIS RPC (DNC, MDA, variable read) Yes Limited (RPC server on Operate) Limited MCIS RPC option
MTConnect adapter (third-party / NIST) Indirect via OPC Classic bridge Indirect via OPC UA Indirect via OPC UA None (free adapter)
PROFINET diagnostics (Web server on NCU) Yes (read-only) Yes Yes None
PLC S7 fetch/put (DB read) Yes (PLC side only) Yes (PLC side only) Yes (PLC side only) None

For a project that today uses FOCAS, the most direct FOCAS-equivalent on a modern 840D SL is the OPC UA server. For a 2008-era 840D V6.5.45 with PCU50.3 and HMI-Advanced, OPC UA is not available; the standard path is MCIS RPC or an OPC Classic bridge from HMI-Advanced to the SCADA host.

Option 1: Access MyMachine /OPC UA on 840D SL

The SINUMERIK Integrate Access MyMachine /OPC UA option delivers an OPC UA server embedded in the SINUMERIK Operate runtime. It exposes the OPC UA companion specifications for machine tools (VDMA 40000-1 and the umati initiative profile) plus the Siemens-specific Sinumerik namespace, giving clients read access to:

  • NCK variables (axis positions, axis-specific machine data MD36xxx, setting data SD41xxx, R-parameters R0..R99, GUD/Global User Data, frames $P_UIFR)
  • PLC variables via the S7 mapping (DB1200..DB1299 are pre-mapped to OPC UA nodes)
  • Tool data (magazine list, tool list, tool life, tool wear)
  • Channel state (active program, current block, modal G-codes, active tool)
  • Spindle and drive data (actual speed, setpoint, power, current, torque)
  • Alarms (active NC/PLC/HMI alarms with cleartext message, acknowledgment state)
  • Program list (NC directory contents, file metadata)

The server endpoint is reachable on TCP port 4840 at the CF card's IP address (default 192.168.214.1 on the plant network side, separate from the HMI service port). The security profiles are negotiated: by default, the server accepts None (no encryption, no auth) for commissioning, and switches to Basic128Rsa15 / Basic256Sha256 with a Siemens-issued X.509 certificate once a real client certificate is installed. The certificate is generated during commissioning and exported via the Operate diagnostics screen.

Commissioning Steps

  1. Confirm the option is licensed: Operate menu Commissioning > Licenses must list MMO - OPC UA Server with status Valid. If the entry is missing, request the license file from Siemens and load it into the CF card /oem/sinumerik/license directory.
  2. Assign the NCU a static IP on the plant network (avoid DHCP for production data acquisition). On NCU 710.3 / NCU 720.3 / NCU 730.3 this is configured at the TCU boot screen, on newer NCU 1740 via the service menu.
  3. Enable the OPC UA server under Commissioning > Network > OPC UA. Set the discovery port to 4840 and the endpoint URL to opc.tcp://<NCU-IP>:4840.
  4. Select the security policy. For test cells, leave None on. For production, generate a self-signed certificate (Operate handles this) and export the DER file for the client.
  5. Define user accounts under Commissioning > Users. Each client application should have a dedicated user; do not use auduser or operator for the SCADA connection.
  6. Reboot the NCU to apply the license and the new IP configuration.

Address Mapping Cheat Sheet

The OPC UA namespace mirrors the NCK and PLC variable trees. The most common mappings engineers need for a FOCAS-style dashboard are listed below. Node IDs follow the OPC UA string identifier format ns=X;s=<path>.

Logical item (FOCAS equivalent) OPC UA node path (Operate 4.7) Data type Read/Write
Axis 1 machine position (FUN 14 absolute) /Channel/Channel[1]/AxisContainer/Axes/Axis[1]/Position/Actual Double R
Axis 1 following error /Channel/Channel[1]/AxisContainer/Axes/Axis[1]/Position/FollowingError Double R
Spindle speed actual /Spindle/Spindle[1]/Speed/Actual Double R
Spindle load % /Spindle/Spindle[1]/Load/Percent Double R
R-parameter R10 /Channel/Channel[1]/RVariable/R10 Double R/W
GUD MY_VAR from DEF NCK INT _MY_VAR /Nck/UserData/GUD/MY_VAR Int32 R/W
Active program /Channel/Channel[1]/Program/Name String R
Active tool (T-number, D-number) /Channel/Channel[1]/Tool/Active/TNumber + DNumber Int32 R
Active alarms (list) /Alarms/Active/Alarm[] Structure[] R
PLC DB1200.DBD0 /Plc/DataBlock[1200]/Data[0] Float R/W
Node paths are version-specific. Operate 4.5 SP4 and 4.7 SP2 reorganized the namespace; confirm against the commissioning manual shipped with the option before committing to a path. The Inventcom documentation referenced at the end of this article is a useful secondary mapping reference for both versions.

Option 2: MTConnect Adapter Path

For shops that standardize on MTConnect for analytics, the cleanest path to an 840D is an MTConnect adapter that bridges to the OPC UA server described above. The adapter runs on a Windows or Linux host on the same network as the NCU and presents an MTConnect HTTP endpoint (default TCP 5000) with probe and current data. The original MTConnect-for-Siemens adapters used OPC Classic against HMI-Advanced, but a modern adapter against the OPC UA server of Operate 4.5/4.7 is the recommended approach and is what is shipped by NIST and several independent tool vendors.

Architecture:

+-------------------+        +--------------------+        +------------------+
| Sinumerik 840D SL |  OPC UA|  MTConnect Adapter |  HTTP  |  SCADA / MQTT    |
| (Operate 4.5/4.7) |<------>|  (Linux/Windows)   |<------->|  / broker client |
+-------------------+  :4840 +--------------------+  :5000 +------------------+

Adapter parameters typically include the NCU OPC UA endpoint, the adapter's listening port, scan interval (default 100 ms is the MTConnect recommended floor for sub-second items), and an asset list. The adapter populates a Devices.xml describing each linear axis, rotary axis, spindle, controller, and tool group, with references to DataItem IDs. Engineers can then subscribe to /current and /sample for streaming data with near-FOCAS latency.

Use the MTConnect path when the downstream consumer is an analytics platform (Predix, Sight Machine, Memex, MTConnect Institute reference tools) rather than a tight FOCAS-style read/write loop. The OPC UA path is preferred when the client is custom code that needs R-parameter read/write, program download, or NCK machine data access.

Option 3: MCIS RPC on 840D Classic (HMI-Advanced, PCU50.3)

For the controller configuration listed in the original question - 840D V6.5.45, HMI V6.4.32, PCU50.3 - the OPC UA option is not available. The legacy path is SINUMERIK Integrate MCIS RPC (Machine Communication and Identification System Remote Procedure Call). The RPC server runs on the PCU and exposes a Windows API plus a TCP socket interface on a configurable port. The MCIS RPC option requires its own license loaded on the CF card.

MCIS RPC functions map to FOCAS at a one-to-one level for the most common shop-floor reads. The relevant function categories are:

  • nc_read_axis_position - equivalent to cnc_rdposition
  • nc_read_spindle - equivalent to cnc_rdspeed / cnc_rdspload
  • nc_read_r_parameter - equivalent to cnc_rdmacro for R0..R99
  • nc_read_tool_data - equivalent to cnc_rdtooldata
  • nc_read_alarm - equivalent to cnc_rdalarm
  • nc_program_list / nc_program_download - equivalent to cnc_rdprogdir / cnc_down
  • plc_read / plc_write - equivalent to cnc_rdpmc / cnc_wrpmc for the S7 DB area

The RPC server uses Windows RPC over named pipes and TCP port 135 plus an ephemeral high port assigned by the Windows RPC endpoint mapper. From LabVIEW or .NET, the recommended client is the C# wrapper shipped with MCIS RPC, which exposes a managed API. From a Linux host, the connection requires a DCOM/RPC bridge such as winexe over SMB, which is operationally fragile and is the main reason most plants move to OPC UA as soon as the hardware is upgraded.

Network Configuration and Firewall Rules

Default ports for each interface must be open in the plant firewall and any VLAN ACL. Confirm with the network team before commissioning.

Port Protocol Service Direction
4840 TCP OPC UA server (Access MyMachine /OPC UA) Client -> NCU
4841 TCP OPC UA discovery (LDSS/LDS) Client -> NCU
5000 TCP MTConnect HTTP adapter (default) Client -> Adapter host
135 + 49152-65535 TCP MCIS RPC (dynamic high ports) Client -> PCU
8193 TCP FOCAS (FANUC, for parity reference) Client -> CNC
102 TCP PROFINET IO / S7comm (read-only diagnostics) Client -> NCU

Recommendation: place the NCU and the SCADA host on a dedicated VLAN with a /24 subnet, pin the NCU's IP in DHCP, and restrict inbound traffic to the client host's MAC and IP. Avoid routing the OPC UA port across a WAN, as the server certificate's hostname validation will fail unless a proper DNS record is in place for the NCU's FQDN.

Security, Certificates, and Authentication

The OPC UA server on Operate 4.5/4.7 supports three authentication modes: Anonymous, Username/Password, and Certificate (X.509). The combination of Basic256Sha256 security policy with certificate-based client authentication is the production minimum. Steps:

  1. On the client machine, generate a 2048-bit RSA key pair and CSR using OpenSSL or a tool such as UA Expert from Unified Automation.
  2. Sign the CSR with a CA trusted by the NCU. The NCU's trust list is at Commissioning > Security > Trusted Clients.
  3. Load the signed DER-encoded certificate onto the NCU via the Operate UI or by placing *.der in /oem/sinumerik/opcua/pki/trusted/certs/ on the CF card.
  4. Configure the OPC UA endpoint security policy to Basic256Sha256, sign + encrypt, and disable None.
  5. On the client, open a session, call CreateSession, then ActivateSession with the certificate. Use the Read and Subscription services for live data, with a PublishingInterval of 100 to 500 ms and a SamplingInterval of 100 ms.
The default self-signed certificate generated by Operate uses a 10-year validity window and CN= Sinumerik-<NCU-Serial>. Reusing it for multiple client machines is supported but not recommended; deploy a per-client certificate for clean revocation.

Client Implementation Patterns

The OPC UA path maps cleanly into three client environments commonly used alongside FOCAS. Skeleton code is shown for each.

C# (.NET 6+) using OPC Foundation NuGet

using Opc.Ua;
using Opc.Ua.Client;

var endpointUrl = "opc.tcp://192.168.214.1:4840";
var config = new ApplicationConfiguration {
    ApplicationName = "ShopFloorClient",
    ApplicationUri  = "urn:shopfloor:client",
    ApplicationType = ApplicationType.Client,
    SecurityConfiguration = new SecurityConfiguration {
        ApplicationCertificate = new CertificateIdentifier { StoreType = "X509Store" },
        TrustedPeerCertificates = new CertificateTrustList { StoreType = "Directory", StorePath = "./pki/trusted" },
        RejectSHA1SignedCertificates = true,
        AutoAcceptUntrustedCertificates = false
    },
    ClientConfiguration = new ClientConfiguration { DefaultSessionTimeout = 60000 }
};
await config.Validate(ApplicationType.Client);

var endpoint = CoreClientUtils.SelectEndpoint(config, endpointUrl, 15000);
var session = await Session.Create(config, new ConfiguredEndpoint(null, endpoint, true), false, "ShopFloorClient", 60000, null, null);

// Read axis 1 actual position
var positionNode = new NodeId("/Channel/Channel[1]/AxisContainer/Axes/Axis[1]/Position/Actual", 4);
var value = await session.ReadValueAsync(positionNode);
Console.WriteLine($"Axis1 pos = {value.Value}");

// Subscribe to spindle load at 200 ms
var loadNode = new NodeId("/Spindle/Spindle[1]/Load/Percent", 4);
var sub = new Subscription(session.DefaultSubscription) { PublishingInterval = 200 };
var item = new MonitoredItem { StartNodeId = loadNode, SamplingInterval = 200, AttributeId = Attributes.Value };
item.Notification += (s, e) => { if (e.NotificationValue is MonitoredItemNotification n) Console.WriteLine($"Load = {n.Value.Value}"); };
sub.AddItem(item);
session.AddSubscription(sub);
sub.Create();

LabVIEW using NI OPC UA Toolkit

NI's LabVIEW Datalogging and Supervisory Control (DSC) module ships with an OPC UA client palette that mirrors the FOCAS VIs in spirit. The minimum working block diagram:

  1. Place Open OPC UA Connection.vi and feed the endpoint URL opc.tcp://192.168.214.1:4840 plus a credential set configured for Basic256Sha256.
  2. Use Browse OPC UA Server.vi to navigate to /Channel/Channel[1]/AxisContainer/Axes and add the desired nodes to a subscription list.
  3. Use Read OPC UA Value.vi for one-shot reads, or Subscribe to OPC UA Items.vi for streaming data into a Shared Variable.
  4. Convert the variant output to the engineering units; for axis position, the OPC UA value is already in mm and a double.

Performance on a 1 Hz polling loop against 16 nodes is comfortably under 30 ms per cycle on a 4-core Win 10 IoT host, comparable to FOCAS on a Series 30i-MB over the same network.

Python using python-opcua / asyncua

import asyncio
from asyncua import Client, ua

async def main():
    url = "opc.tcp://192.168.214.1:4840"
    async with Client(url=url, user="scada", password="<pw>", security_policy=ua.SecurityPolicyBasic256Sha256) as client:
        # One-shot read
        node = client.get_node("ns=4;s=/Channel/Channel[1]/AxisContainer/Axes/Axis[1]/Position/Actual")
        pos = await node.read_value()
        print(f"Axis1 actual = {pos}")

        # Subscription
        handler = SubHandler()
        sub = await client.create_subscription(period=200, handler=handler)
        load = client.get_node("ns=4;s=/Spindle/Spindle[1]/Load/Percent")
        await sub.subscribe_data_change(load)
        await asyncio.sleep(30)
        await sub.delete()

class SubHandler:
    def datachange_notification(self, node, val, data):
        print(f"Node {node} -> {val}")
    def event_notification(self, event):
        print(f"Event: {event}")

asyncio.run(main())

Subscription Tuning and Performance

The OPC UA server on an 840D SL NCU 730.3 handles roughly 800 to 1200 monitored items at 100 ms sampling before CPU utilization on the NCU climbs above 60%. For a typical dashboard (32 axis variables, 8 spindle, 16 tool data, 64 PLC, plus alarm state), plan for 200 to 250 monitored items per NCU. If the project requires more, segment the data across multiple servers (Operate permits up to 4 OPC UA server instances on the same NCU with different namespaces) or use the PROFINET diagnostics interface for bulk axis data and reserve OPC UA for slow-changing items (alarms, program list, tool life).

For Subscription tuning, start with the default 500 ms PublishingInterval and 250 ms SamplingInterval. Decrease SamplingInterval in 50 ms steps while monitoring NCU CPU via top on the Linux service shell (Commissioning > Service Shell). Stop tuning when the NCU load exceeds 70% steady-state. The keep-alive count is typically 10, the lifetime count 100, and the queue size 1 for live data; for alarms raise the queue to 5 to absorb bursts during alarm storms.

Verification Procedure

  1. From a Windows client, run UA Expert and connect to the endpoint. Confirm that the security policy negotiated matches the planned Basic256Sha256 and that the server certificate is trusted.
  2. Browse to /Channel/Channel[1]/AxisContainer and drag Axis[1]..Axis[5] onto a watch window. Move each axis in JOG and verify the actual position updates at the configured rate.
  3. Subscribe to /Alarms/Active/Alarm[], trigger a known alarm (e.g., 2001 axis not referenced), and confirm the alarm appears in the subscription stream with the correct cleartext.
  4. Run a 5-minute soak test with the read loop at production cadence. Confirm no BadCommunicationError or ServiceResultException events are logged on the client.
  5. On the NCU, check Diagnostics > OPC UA Statistics for the session count, subscription count, and total monitored items. Numbers should match the client configuration within +/- 1 item.

Troubleshooting Matrix

Symptom Likely cause Action
Connection refused on 4840 OPC UA not licensed or NCU firewall Verify option in Licenses; check NCU iptables-equivalent
BadCertificateUntrusted Client cert not in trust list Export client cert as DER, copy to /oem/sinumerik/opcua/pki/trusted/certs/
BadSecurityChecksFailed Endpoint policy mismatch Confirm Basic256Sha256 on both sides; disable None on server
Reads return BadNodeIdUnknown Namespace path changed in 4.7 Browse server with UA Expert; update path string
Spindle load stuck at last value SamplingInterval below NCU capability Raise to 250 ms; check NCU CPU
MCIS RPC session drops every 60 s Windows session timeout on PCU50.3 Increase session timeout in RPCServer.ini on the PCU
MTConnect adapter shows 0 for axis pos OPC UA path wrong on 4.7 namespace Re-browse with adapter's diagnostic tool; remap items
Alarms cleartext in German only Operate language pack Install English alarm text add-on or map in client
Slow first read after NCU boot License not yet activated at first connection Retry after 30 s; do not hardcode a single attempt at startup

FOCAS vs. OPC UA vs. MCIS RPC vs. MTConnect: Side-by-Side

Feature FANUC FOCAS Siemens OPC UA (AMM/OPC UA) Siemens MCIS RPC MTConnect adapter
Transport TCP 8193, proprietary TCP 4840, OPC UA binary RPC over named pipes + TCP 135 HTTP TCP 5000
Auth None / FANUC ID Cert / Username Windows domain None (default)
Encryption None Basic256Sha256 None (RPC) None (HTTP) / TLS optional
Read/Write NC variables Yes (macro, PMC) Yes (R, GUD, MD, SD, DB) Yes (R, DB) Adapter-defined
Program download Yes Yes (TransferFile service) Yes No (read-only)
Latency 200 ms poll ~25 ms ~30 ms ~40 ms ~80 ms (HTTP overhead)
License required No Yes (6FC5800-0AP67-0YB0) Yes (MCIS RPC) No
Modern SCADA support Limited driver set Universal (OPC UA) Limited (Win only) Universal (HTTP)
OS support Windows Windows / Linux / macOS Windows (DCOM painful cross-OS) Any
Best fit FANUC fleets Mixed fleet, modern 840D SL Legacy 840D classic Analytics-first deployments

Practical Migration Notes from FOCAS to OPC UA

Engineers porting a FOCAS-based C# project to an 840D SL should plan for the following deltas:

  • Connection model: FOCAS uses a flat handle; OPC UA uses a session, an endpoint, and a publish-subscribe model. Refactor the polling loop into a Subscription with monitored items rather than a periodic cnc_rdposition equivalent.
  • Variable typing: FOCAS returns mixed C structs; OPC UA returns DataValue with a Variant. Cast explicitly and use TypeInfo rather than fixed struct layouts.
  • Error semantics: FOCAS returns negative integers; OPC UA returns StatusCode. Map BadCommunicationError to your retry layer, BadNodeIdUnknown to a configuration error, and BadUserAccessDenied to a permission issue.
  • Concurrency: FOCAS requires exclusive/semi-exclusive handle flags for multi-client access; OPC UA is concurrent by design. One client subscription can be read by multiple SCADA nodes via the OPC UA broker.
  • Variable ranges: Axis position in FOCAS is the machine coordinate; in OPC UA it can be machine, workpiece, or relative depending on the path under /Channel/Channel[1]/AxisContainer/Axes/Axis[1]/Position/*. Verify before reporting to the dashboard.

Reference: Official Documentation Pointers

  • Siemens Industry Online Support - search for MLFB 6FC5800-0AP67-0YB0 to retrieve the Access MyMachine /OPC UA commissioning manual and the release notes for Operate 4.5 SP and 4.7 SP.
  • Siemens Industry Online Support - search for SINUMERIK Integrate MCIS RPC for the legacy RPC programming manual and the function reference.
  • Siemens Industry Online Support - search for the SINUMERIK Operate Commissioning Manual matching the controller's NCU software version for the OPC UA node tree and security policy settings.
  • FANUC FOCAS automation solutions overview (reference baseline): FOCAS Automation Solutions brochure (FANUC America).

Does the Siemens 840D offer a direct FOCAS-equivalent DLL?

No. Siemens does not publish a literal FOCAS-equivalent DLL. The closest functional match on a Sinumerik 840D SL is the OPC UA server delivered with the SINUMERIK Integrate Access MyMachine /OPC UA option (MLFB 6FC5800-0AP67-0YB0), which provides read/write access to NCK variables, PLC data blocks, alarms, tools, and programs over TCP port 4840.

Can OPC UA be enabled on a 2008-era 840D classic (PCU50.3, HMI-Advanced)?

No. OPC UA is supported on 840D SL controllers running SINUMERIK Operate (4.5 SPx or later). For 840D classic with HMI-Advanced on PCU50.3, the supported data path is the MCIS RPC option, which uses Windows RPC on TCP port 135 plus a dynamic high port. Plan an Operate migration if OPC UA is required.

What is the default TCP port and endpoint URL for the OPC UA server?

The default port is 4840 for the OPC UA TCP endpoint and 4841 for the local discovery server. The endpoint URL follows the form opc.tcp://<NCU-IP>:4840. Confirm the security policy on the server side; production should be Basic256Sha256 with sign and encrypt, certificate-based authentication, and the None policy disabled.

How do I read an R-parameter or GUD from a client application?

Use the OPC UA Read service against ns=4;s=/Channel/Channel[1]/RVariable/R10 for an R-parameter, or ns=4;s=/Nck/UserData/GUD/MY_VAR for a GUD. Confirm the namespace index (commonly 4 on Operate 4.7) by browsing the server with a tool such as UA Expert before hardcoding the path in production code.

Which path is best for a 5-axis milling cell replacing a FOCAS-based FMS host?

For a single-cell retrofit where the SCADA host is Windows and code is custom .NET, choose OPC UA over Access MyMachine /OPC UA. For a multi-cell, vendor-neutral analytics deployment, choose the MTConnect adapter against the same OPC UA server. For a legacy 840D classic line, choose MCIS RPC only if the SCADA host is Windows; otherwise plan an Operate upgrade before commissioning a new data path.

Back to blog