S7-1500 OPC UA Error 16#B080_C400 (Simatic_ClientNotEnabled): Activating the Client Interface
An S7-1500 acting as an OPC UA client returns STATUS = 16#8601 with sub-status 16#B080_C400 on SFB "OPC_UA_Connect" when the OPC UA client runtime has not been enabled in the CPU configuration. The same symptom appears when an S7-1500 tries to reach an S7-1200 OPC UA server, even though third-party OPC UA clients (UaExpert, etc.) and the TIA Portal OPC UA client wizard can still reach the server. This reference isolates the failure to a single configuration bit in TIA Portal, lays out the hardware and firmware prerequisites, and documents every related sub-status value the OPC_UA_ConnectStatus output can deliver.
1. Problem Statement
Symptom reported on an S7-1500 user block calling SFB OPC_UA_Connect:
-
STATUS =
16#8601— "Error during connect (SFB 'OPC_UA_Connect')" -
OPC_UA_ConnectStatus =
16#B080_C400— Simatic_ClientNotEnabled - ERROR = TRUE, DONE = FALSE, BUSY = FALSE
The OPC UA server (an S7-1200 in the typical reference topology) is reachable from a generic OPC UA client and from the TIA Portal client wizard, so the network path, server certificate, and TCP/4840 endpoint are known to be valid. The failure is on the S7-1500 client side, not on the server.
OPC_UA_* family includes a status/sub-status code map. The error string Simatic_ClientNotEnabled in the sub-status identifies the client-side configuration problem before any TCP packet leaves the CPU.2. OPC UA Status Code Architecture
The OPC UA client runtime on S7-1500 reports failures through two parallel outputs on every SFB in the OPC_UA family:
| Output | Width | Encoding | Purpose |
|---|---|---|---|
STATUS |
WORD | S7-style status word (16#0001, 16#8601, 16#8602, …) | Coarse result: success / connect error / runtime error / read error / write error. |
OPC_UA_ConnectStatus / OPC_UA_NamespaceStatus / … |
DWORD | Two 16-bit halves: SpaceId (high word) + SubCode (low word) | Detailed OPC UA standard or Siemens-specific reason code. |
When the high word is 16#B080, the sub-code is a Siemens (SIMATIC) extension rather than an OPC UA standard code. The convention B080_xxxx identifies a vendor-specific namespace; OPC Foundation standard codes use values defined in OPC 10000-6 Part 6: Mappings — OPC UA Connection Protocol.
Common high-level STATUS values
| STATUS (hex) | Meaning | Typical next step |
|---|---|---|
16#0001 |
Job completed without error | None |
16#7000 |
No job active (idle) | None |
16#8601 |
Error during OPC_UA_Connect
|
Inspect OPC_UA_ConnectStatus
|
16#8602 |
Error during OPC_UA_NamespaceGetIndexList
|
Inspect OPC_UA_NamespaceStatus
|
16#8603 |
Error during OPC_UA_ReadList
|
Inspect OPC_UA_ReadListStatus
|
16#8604 |
Error during OPC_UA_WriteList
|
Inspect OPC_UA_WriteListStatus
|
16#8605 |
Error during OPC_UA_MethodCall
|
Inspect OPC_UA_MethodCallStatus
|
16#80C4 |
Cryptographic / certificate error | Check trust list and CPU time |
3. Hardware, Firmware and Software Prerequisites
Before attempting to enable the client interface, confirm the S7-1500 and S7-1200 involved are capable of running OPC UA and that the project is on a TIA Portal version that exposes the configuration UI.
3.1 S7-1500 client-side prerequisites
| CPU family | Minimum firmware | OPC UA role | Required license |
|---|---|---|---|
| S7-1500 (standard) | V2.0 / V2.1 | OPC UA client + server | None for client; runtime "SIMATIC OPC UA S7-1500" for server |
| S7-1500 (ET 200SP CPU) | V2.5 | OPC UA client + server | Same as above |
| S7-1500 Software Controller | V21.9 (WinCC / S7-1500 SWC) | OPC UA client + server | Same as above |
| S7-1500R/H (redundant) | V2.6+ | OPC UA client | Server license per redundant CPU |
3.2 S7-1200 server-side prerequisites
| CPU | Minimum firmware | OPC UA server | Notes |
|---|---|---|---|
| S7-1200 V4 (6ES721x-1xxx-xxx4) | V4.2 | Yes | Basic server with optimization of data blocks required. |
| S7-1200 V4 | V4.4 | Yes (extended) | Method calls, alarm conditions, full security. |
| S7-1200 G2 | V1.0 | Yes | Built-in, no extra runtime license. |
3.3 TIA Portal version
The OPC UA client configuration UI under CPU properties > OPC UA > Client requires TIA Portal V14 SP1 Update 4 or higher. Use the version that matches the S7-1500 firmware generation: V15.1 / V16 / V17 / V18 are appropriate depending on the latest firmware installed on the controller. Mixing TIA Portal versions across project, controller firmware, and HMI can suppress the OPC UA pages on the client CPU even though the firmware supports OPC UA.
4. Root Cause: Client Interface Disabled in CPU Configuration
By default, the S7-1500 ships with the OPC UA client runtime disabled. The TIA Portal project that compiles the CPU configuration contains an OPC UA property group with a single, decisive check-box: "Activate OPC UA client" (German: OPC-UA-Client aktivieren). When the box is unchecked, the OPC UA client engine is not loaded into the CPU firmware image. The SFB call still compiles, the SFB still returns a structured status — but every OPC_UA_Connect request is rejected before the first TCP SYN is sent, because the OPC UA client stack is simply not present at runtime.
This is by design: OPC UA carries licensing terms that Siemens makes explicit through runtime licenses on the server side and through project-side configuration on the client side. Leaving the client disabled by default also keeps the attack surface minimal when an automation cell does not actually require OPC UA client services.
The two parallel diagnostics — a successful UaExpert connection and a successful TIA Portal client-wizard connection — confirm the server is healthy. The S7-1500 connection failure is therefore purely a configuration issue on the client side.
5. Solution: Activating the OPC UA Client in TIA Portal
Activate the OPC UA client interface and recompile the CPU configuration. The procedure is the same for every S7-1500 project that contains an OPC UA client block.
- In the TIA Portal project tree, expand Devices & networks and select the S7-1500 CPU that hosts the
SFB OPC_UA_Connectinstance. - Open Properties > OPC UA > Client. (Older TIA Portal versions place the page under Properties > OPC UA > Client server interface; the V17/V18 wording is OPC UA > General > Client.)
- Check "Activate OPC UA client". If the checkbox is greyed out, the firmware loaded in the device configuration does not support OPC UA — update the firmware version in the device configuration first.
- Under Security policy select the policy the server requires. Use None only for lab commissioning; production deployments must select Basic128Rsa15, Basic256, Basic256Sha256, or Aes128_Sha256_RsaOaep depending on the S7-1200 firmware.
- Under Authentication set Anonymous (lab only) or Username and password and provide the credentials configured on the S7-1200 server.
- Compile the project (Project tree > CPU > right-click > Compile > Software (only)) and download the configuration to the CPU. A reload of the program blocks is not sufficient; the OPC UA client engine is part of the system data and must be recompiled and downloaded.
- Cold-restart the S7-1500 if the firmware prompts a restart after the configuration change.
After the configuration is downloaded, retest SFB OPC_UA_Connect. STATUS should return 16#0001 on success and OPC_UA_ConnectStatus should be 16#0000_0000.
STATUS = 16#0001 in Done mode (one-shot) or 16#7000 in idle mode. If the SFB is still busy, wait at least one TIME timeout period before evaluating OPC_UA_ConnectStatus — the output is only valid when ERROR = TRUE or DONE = TRUE.6. Activating the OPC UA Server on the S7-1200
Although the reported error is on the S7-1500 client, the matching S7-1200 server configuration is worth verifying so a follow-up error does not surface after the client side is fixed.
- Select the S7-1200 CPU in the project tree and open Properties > OPC UA > Server.
- Enable "Activate OPC UA server".
- Set the port (default
4840). Verify the S7-1500 PROFINET interface can route to that port on the S7-1200 IP — corporate firewalls or VLAN ACLs frequently drop port 4840. - Choose the security policy: None for lab work, Basic256Sha256 for production.
- Compile, download and cold-restart the S7-1200.
- Once the server is up, the endpoint URL passed to
OPC_UA_Connectfollows the OPC Foundation convention:
opc.tcp://<S7-1200 IP>:4840
The URL is transmitted inside the SFB call as a STRING parameter. Maximum accepted length is 4096 characters per the OPC UA binary protocol definition; in practice, 30–60 characters is the typical form. Anything longer triggers Bad_TcpEndpointUrlInvalid on the client side.
7. Endpoint URL Parsing and Transport Layer
The first packet an OPC UA client transmits is a HEL (Hello) message carrying the endpoint URL. The receiving server parses the URL, validates the host portion (DNS or IP), and either accepts the connection or replies with Bad_TcpEndpointUrlInvalid as defined in OPC UA Part 6 — 7.1 OPC UA Connection Protocol. The full set of pre-session error codes that can surface in OPC_UA_ConnectStatus on S7-1500 includes:
| OPC_UA_ConnectStatus (hex) | Symbolic name | Likely root cause |
|---|---|---|
0000_0000 |
Good | Connection established. |
B080_C400 |
Simatic_ClientNotEnabled | Client checkbox disabled (this article). |
8005_0000 |
Bad_TcpEndpointUrlInvalid | URL malformed, length > 4096, or host not resolvable. |
8006_0000 |
Bad_ConnectionClosed | Server unreachable / firewall / TCP RST. |
8014_0000 |
Bad_Timeout | Server reachable but does not reply within TIME timeout. |
8020_0000 |
Bad_SecurityModeRejected | Server refused the requested SecurityMode (e.g. None when SignAndEncrypt required). |
8021_0000 |
Bad_SecurityPolicyRejected | Server refused the requested SecurityPolicy URI. |
801A_0000 |
Bad_ServerUriInvalid | ApplicationDescription server URI does not match the certificate. |
802F_0000 |
Bad_CertificateUntrusted | Client certificate is not in the server's trust list. |
8031_0000 |
Bad_CertificateHostNameInvalid | URL host does not match the certificate CN / SAN. |
8032_0000 |
Bad_CertificateIssuerTimeInvalid | CA certificate out of validity window — check CPU clock. |
8033_0000 |
Bad_CertificateRevoked | Server has revoked the client certificate. |
8036_0000 |
Bad_UserAccessDenied | Username / password rejected or anonymous disabled on the server. |
8025_0000 |
Bad_NoValidCertificates | Server certificate missing from the client's trust list. |
8026_0000 |
Bad_IdentityTokenRejected | Token type unsupported by the server. |
0x80xx means Bad_ per OPC UA standard. High word 0xB080 means SIMATIC-namespace extension. Always read both halves when triaging.8. Security Certificate Exchange
Once the client interface is enabled, the next failure mode that commonly surfaces is a certificate trust error, because OPC UA mandates mutual authentication above SecurityPolicy = None. The S7-1500 generates its own OPC UA client certificate on first connection attempt; the S7-1200 generates its server certificate likewise.
8.1 Trusting the S7-1200 server certificate on the S7-1500
- Open the S7-1200 online diagnostics in TIA Portal (Online & Diagnostics > Certificate manager) and export the OPC UA server certificate.
- On the S7-1500 project, open CPU properties > OPC UA > Client > Trusted certificates and import the S7-1200 server certificate.
- Alternatively, copy the certificate to the S7-1500's
/opcua/certsfolder via the Web server's "File browser" page or via S7 file functions.
8.2 Trusting the S7-1500 client certificate on the S7-1200
- The S7-1500 auto-generates a self-signed client certificate. Export it from CPU properties > OPC UA > Client > Own certificates or from
/opcua/certs. - Import the certificate into the S7-1200 OPC UA > Server > Trusted certificates list.
Bad_CertificateIssuerTimeInvalid even though the certificates are valid. Synchronize via NTP or set the CPU time manually before commissioning.9. SFB OPC_UA_Connect Reference
The SFB is the entry point of every OPC UA call sequence on the S7-1500. Its input / output interface (LAD / FBD / SCL):
| Port | Direction | Type | Description |
|---|---|---|---|
REQ |
IN | BOOL | Rising edge starts the connect job. |
ID |
IN | WORD | Connection identifier (16#1 … 16#F for OPC UA; 0 = local). |
ServerEndpointUrl |
IN | STRING | Endpoint URL, e.g. opc.tcp://192.168.0.10:4840. |
SecurityPolicy |
IN | BYTE | 0 = None, 1 = Sign, 2 = SignAndEncrypt (server overrides). |
Timeout |
IN | TIME | Max time for the connect job; typical T#10s … T#30s. |
DONE |
OUT | BOOL | TRUE for one cycle on successful completion. |
BUSY |
OUT | BOOL | TRUE while the job is in progress. |
ERROR |
OUT | BOOL | TRUE on failure; STATUS is valid. |
STATUS |
OUT | WORD | S7 status code (16#8601 in this scenario). |
OPC_UA_ConnectStatus |
OUT | DWORD | Detailed OPC UA / SIMATIC sub-status (16#B080_C400). |
Recommended SCL call skeleton:
// Rising edge of REQ starts the job
IF i_StartConnect AND NOT i_ConnectBusy THEN
"db_OpcUa".OPC_UA_Connect(REQ := TRUE,
ID := 16#0001,
ServerEndpointUrl := 'opc.tcp://192.168.0.10:4840',
SecurityPolicy := 0,
Timeout := T#20s);
END_IF;
// Status evaluation
IF "db_OpcUa".OPC_UA_Connect.DONE THEN
// Connected
END_IF;
IF "db_OpcUa".OPC_UA_Connect.ERROR THEN
i_Status := "db_OpcUa".OPC_UA_Connect.STATUS;
dw_SubStatus := "db_OpcUa".OPC_UA_Connect.OPC_UA_ConnectStatus;
END_IF;
10. Verification Procedure
After the client checkbox is set and the configuration is downloaded, verify the connection without leaving TIA Portal.
- Go online with the S7-1500. Online & Diagnostics > OPC UA > Client connections lists active sessions.
- Open a watch table that includes the OPC UA instance DB. Trigger
REQand observeBUSY,DONE,ERROR,STATUSandOPC_UA_ConnectStatus. - Confirm
STATUS = 16#0001andOPC_UA_ConnectStatus = 16#0000_0000after a few seconds. - If a status trace is required, record the instance DB over 30 seconds with the S7-1500 Trace function and mark the rising edge of
DONE. - From an external client (UaExpert), connect to
opc.tcp://<S7-1500 IP>:4840to verify the S7-1500 server (if it is also acting as a server).
Diagnostic flow chart
11. Common Edge Cases and Field Pitfalls
| Symptom | Likely cause | Remedy |
|---|---|---|
| Client checkbox greyed out | Firmware on the device configuration does not support OPC UA. | Update the firmware version under Device configuration > Module parameters and re-load. |
STATUS = 16#8601 persists after enabling |
Configuration downloaded without cold restart, or another SFB instance still holds the connection ID. | Cold-restart the CPU and use unique connection IDs per parallel connection. |
Bad_TcpEndpointUrlInvalid |
URL string contains a typo, length > 4096, or uses a DNS name the CPU cannot resolve. | Use the IP literal; keep the URL under 80 characters. |
Bad_SecurityModeRejected |
S7-1200 server set to SignAndEncrypt, S7-1500 client set to None. | Match the security policy on both sides. |
Bad_CertificateUntrusted |
Server certificate missing from client trust list, or vice versa. | Exchange certificates per Section 8. |
| Connection succeeds in TIA Portal wizard, fails from S7-1500 | Wizard uses a temporary certificate; runtime needs a permanent trust. | Import the wizard's certificate into the project for a permanent trust chain. |
| Status 16#8601 only after PLC restart | Client interface deactivates if the license check fails at boot. | Verify the OPC UA runtime license is correctly assigned (only required for server role on S7-1500). |
| No traffic on port 4840 | OPC UA server on S7-1200 not enabled, or VLAN / firewall blocks 4840. | Enable server, open the port on managed switches. |
Connection works, but OPC_UA_ReadList returns 16#8603 |
Namespace index mismatch — different S7-1200 firmware exposes a different namespace layout. | Re-run namespace get-index-list on every reconnect; do not hard-code indices. |
Sub-status oscillates between B080_C400 and Good
|
Configuration change in TIA Portal not yet downloaded. | Compile and download; clear online/offline diff. |
12. FAQ
What does S7-1500 OPC UA error 16#B080_C400 (Simatic_ClientNotEnabled) mean?
The OPC UA client runtime on the S7-1500 CPU has not been activated. Open CPU properties > OPC UA > Client in TIA Portal, enable "Activate OPC UA client", recompile the project and download the configuration. The CPU must be cold-restarted if TIA Portal requests it.
Can I keep the OPC UA client disabled by default for security and enable it per project?
Yes. Siemens ships the OPC UA client runtime disabled so projects do not pay for an unused feature. The client interface is enabled at compile time through the CPU property page; there is no per-instance on/off switch at runtime.
Why does UaExpert connect to the S7-1200 but the S7-1500 does not?
UaExpert is a generic client with its own certificate and trust handling. The S7-1500 is a controller without an active OPC UA client stack when Activate OPC UA client is unchecked, so it cannot negotiate a session regardless of server health. Enabling the client in TIA Portal restores parity.
Is a runtime license required on the S7-1500 for the OPC UA client?
No. The OPC UA client on S7-1500 is included in the firmware. The SIMATIC OPC UA runtime license applies to the OPC UA server on S7-1500 only. The S7-1200 OPC UA server does not require an additional license on firmware V4.4+.
How do I look up an unknown OPC UA sub-status code?
Select the SFB instance in TIA Portal and press F1. The information system lists every STATUS and sub-status code returned by the block, including the SIMATIC namespace (0xB080) and the OPC UA standard codes (0x80xx). For OPC Foundation standard codes, also refer to OPC UA Part 6 — 7.1 OPC UA Connection Protocol.
What is the maximum endpoint URL length accepted by the S7-1500 OPC UA client?
The URL is transmitted inside the OPC UA binary HEL message and is limited to 4096 bytes per the OPC UA connection protocol specification. Strings exceeding the limit cause Bad_TcpEndpointUrlInvalid. In practice, keep URLs under 80 characters to stay clear of the boundary.
Do I need to cold-restart the S7-1500 after enabling OPC UA?
Yes, in most cases. The OPC UA client engine is part of the system data and is loaded during the next startup. A warm restart usually does not reload system data blocks, so the client remains disabled until the CPU is power-cycled or a cold restart is executed through TIA Portal.