Resolving UR3e PROFINET Communication with S7-1200 CPU 1214C

David Krause13 min read
ProfibusSiemensTroubleshooting
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

Problem Overview

When integrating a Universal Robots UR3e collaborative robot as a PROFINET IO device on a Siemens SIMATIC S7-1200 PLC (specifically the CPU 1214C), the most common commissioning failure is the UR3e Head module and its sub-modules (Standard I/O, Tool I/O, etc.) failing to appear in the TIA Portal device view or returning a "module not reachable" diagnostic status. The PLC establishes a PROFINET AR (Application Relationship) to the robot controller, but the slot-level I/O data exchange never completes, leaving the robot unable to read cycle-start, digital inputs, or write digital outputs from/to the PLC.

This failure is rarely caused by a single misconfiguration. It is typically the sum of three or more issues: an unresolved GSDML import, a sub-net mask that splits the robot and PLC into different broadcast domains, and I/O slot indices that collide with the PLC's own internal slot assignment. The sections that follow dissect each layer, provide the correct parameter values, and walk through the verification steps that prove the link is healthy.

Prerequisites and Required Files

Before opening TIA Portal, confirm the following items are available on the engineering station:

  • TIA Portal V16 or newer (V17/V18 recommended). The PROFINET device description for the UR3e requires TIA V14 SP1 minimum, but the newer the TIA version the more complete the slot/module catalog.
  • SIMATIC S7-1200 CPU 1214C firmware V4.4 or newer. Firmware V4.2 has known issues with multi-slice PROFINET devices; V4.4 or later resolves those and supports the UR3e GSDML revision 2.x.
  • Universal Robots GSDML file for the UR3e. The file is delivered as UR-Universal Robots-XXXXX.xml and is shipped with PolyScope 5.x (typically 5.6 or newer) or downloaded from the Universal Robots support site. Do not attempt to use the GSD from a UR5/UR10e that has not been re-issued for the e-Series controller.
  • PolyScope 5.x runtime on the UR3e teach pendant. For S7-1200 integration the PolyScope version should be at or above the GSDML revision it exports. Mismatches between PolyScope and the GSDML are a leading cause of "device reachable but modules red."
  • Hardwired Ethernet connection between the CPU 1214C PROFINET port (X1) and the UR3e controller's PROFINET port. The PROFINET discovery mechanism uses LLDP and DCP, both of which do not traverse Wi-Fi, VPN, or unmanaged Layer-3 boundaries.
Critical: Wireless bridges, VPN tunnels, and consumer-grade routers that perform NAT block the DCP multicast frames used by PROFINET for device discovery and name assignment. Connect the engineering PG/PC and the UR3e to the same physical switch as the CPU 1214C during commissioning. Once the AR is established, you may move the HMI panel back to wireless if your network design requires it.

Network and Subnet Configuration

PROFINET IO requires the IO controller (CPU 1214C) and the IO device (UR3e) to share a single Layer-2 broadcast domain. The IP addressing scheme must satisfy two constraints:

  1. Same subnet mask on every PROFINET node. The recommended mask for a single-cell robot cell is 255.255.255.0 (/24) for small cells or 255.255.0.0 (/16) for cells that include remote I/O (ET200SP) on a wider plant network. A mask of 255.255.255.0 with the PLC at 192.168.1.1 and the UR3e at 192.168.1.10 is the most reliable starting point.
  2. No translation between the two devices. If a router sits between the PLC and the robot, every PROFINET frame must be inspectable by the switch infrastructure. Disable the router, or use it only as a managed switch in unmanaged mode for the cell.

Recommended address plan:

Node IP Address Subnet Mask PROFINET Device Name
CPU 1214C (PROFINET X1) 192.168.1.1 255.255.255.0 plc1214c
UR3e controller 192.168.1.10 255.255.255.0 ur3e
Engineering PG/PC 192.168.1.100 255.255.255.0 pg-pc

Assign the PROFINET device name via TIA Portal (Devices & Networks > UR3e > Properties > PROFINET interface > PROFINET device name) and then push it to the robot using Online > Accessible nodes > Assign PROFINET device name. A device that retains a stale PROFINET name (e.g. ur3e-old from a previous project) will appear in the accessible nodes list but will never establish a cyclic AR.

Installing the UR3e GSDML in TIA Portal

The GSDML is the XML-based device description that TIA Portal uses to render the UR3e slots, modules, and diagnostic data. Installation steps:

  1. Close all open TIA Portal projects.
  2. Open Options > Manage general station description files (GSD).
  3. Browse to the directory containing GSDML-Vx.x-UR-UniversalRobots-YYYYMMDD.xml.
  4. Select the file and click Install. TIA Portal will parse the file and register the device family "UR-Universal Robots".
  5. Restart TIA Portal. This forces the device catalog to refresh; the UR3e will appear under PROFINET IO > Additional field devices > Robotics > Universal Robots.
Warning: Do not install the GSDML while a project that references an older GSD revision is open. TIA Portal caches the old catalog and the new slots will not appear until the project is closed and reopened.

Configuring the UR3e Slots in the Device View

The UR3e exposes a multi-slot PROFINET interface. The default slot map for a UR3e controller is:

When the Head module is reported as missing in TIA Portal, the cause is almost always one of the following:

  1. Slot 0 was not inserted. In the TIA Portal device view the UR3e must be placed in the PROFINET subnet. Slot 0 (the device head) is inserted automatically when the device is dropped onto the network, but it can be removed accidentally. Verify that slot 0 is present and named UR3e.
  2. I/O start addresses collide with the PLC's own slot mapping. The S7-1200 reserves input/output addresses starting at I/O 0 for the CPU's onboard I/O. A common mistake is to leave the UR3e modules at their default I/O addresses (0, 1, 2, ...) which collide with the CPU's local I/O. Re-map the UR3e modules to a free address range such as starting at IB 100 / QB 100. This convention also leaves a 100-byte address gap for any future expansion modules on the S7-1200 rack.
  3. The slot order is non-sequential. PROFINET requires that sub-module slots use unique, monotonically increasing slot numbers. If the user has dragged modules into the device view and they ended up at slots 1, 3, 5 (with gaps), some TIA Portal versions flag the configuration as invalid. The recommended practice is to keep slots tight: 1, 2, 3, 4, 5.

TIA Portal Device Configuration Step-by-Step

  1. Open the project and navigate to Devices & Networks.
  2. Add the CPU 1214C from the hardware catalog if not already present.
  3. From the catalog, expand PROFINET IO > Additional field devices > Robotics > Universal Robots > UR3e and drag the UR3e device onto the PROFINET subnet. The Head module appears at slot 0.
  4. Drag the desired I/O modules from the catalog into the device view's slot table. Recommended: Standard I/O at slot 1, Tool I/O at slot 2, Register access at slot 4.
  5. For each module, open Properties > I/O addresses and re-map the start addresses to a free range. Example: Standard I/O inputs to IB 100, outputs to QB 100. Register access to IB 200 / QB 200.
  6. Open the UR3e PROFINET interface properties. Under PROFINET interface > Ethernet addresses, set the IP address (192.168.1.10) and the PROFINET device name (ur3e).
  7. On the CPU 1214C, open Properties > PROFINET interface > Operating mode and confirm that the CPU is set as IO controller.
  8. Compile and download the hardware configuration to the CPU.
  9. Use Online > Accessible nodes to verify the UR3e is reachable. The MAC address and configured device name must match the values programmed into the robot.
Tip: If Accessible nodes shows the UR3e MAC but the device name field is empty, the device has not yet received its PROFINET name. Use Assign PROFINET device name to push the name. A missing name is one of the most frequent root causes of "Head module red" diagnostics.

Firmware and Software Compatibility Matrix

Slot Module Direction Length
0 Head module (UR3e PROFINET) 0 bytes
1 Standard digital I/O (8 DI / 8 DO) in/out 2 / 2 bytes
2 Tool digital I/O (2 DI / 2 DO) in/out 1 / 1 byte
3 Analog I/O (2 AI / 2 AO) in/out 4 / 4 bytes
4 Register access (URScript variables) in/out 64 / 64 bytes
5 Cylinder/mass payload data out 16 bytes
CPU 1214C Firmware TIA Portal UR3e PolyScope Status
V4.2 V14 SP1 / V15 3.x / 5.0 Limited; multi-slot issues
V4.4 V16 / V17 5.5 / 5.6 Recommended baseline
V4.5 V17 / V18 5.7 / 5.10 Recommended for new deployments
V4.6 V18 5.12 / 5.14 Latest tested, full module catalog

Reference the official Siemens Industry Online Support for the CPU 1214C firmware update packages and the Universal Robots fieldbus documentation for the latest PROFINET installation guides. Also refer to the Siemens TIA Portal S7-1200 PROFINET configuration manual for the canonical device-configuration procedure.

Head Module Diagnostic Interpretation

When the Head module is reported as missing, the TIA Portal diagnostics buffer and the online device view display a fault code. The most common codes for the UR3e on a S7-1200 are:

Diagnostic Code Meaning Likely Cause Fix
0x001E (Station failure) AR lost or never established Device name not assigned, MAC mismatch Re-assign PROFINET name; verify MAC in TIA matches robot teach pendant
0x002B (Module diff) Configured module set differs from actual GSDML revision mismatch with PolyScope Reinstall matching GSDML; restart TIA Portal
0x001F (PROFINET watchdog) Cyclic I/O timeout Update time too aggressive, network latency Increase watchdog to 3 ms, reduce send clock to 1 ms
0x0040 (Sub-module mismatch) Slot order invalid Gaps in slot numbers Re-order slots sequentially starting at 1
0x001C (Parameter fault) Record set rejected by device I/O length exceeds UR3e capability Reduce module count; check GSDML slot limits

Open the diagnostics by selecting the UR3e in the online device view, then Online > Diagnostics > PROFINET diagnostics. The buffer lists the exact slot that failed, the record index, and the error specifier byte. Cross-reference the specifier with the PROFINET specification IEC 61158-6 to pinpoint the failing record.

Firewall, Port, and PCAP Considerations

Although PROFINET uses Ethernet, the IO controller-to-device traffic is not TCP/UDP in the traditional sense. It runs over real-time (RT) and isochronous real-time (IRT) channels mapped onto Ethernet type 0x8892 (PROFINET RT) and 0x88CC (LLDP). The following steps are essential when the engineering PC cannot see the UR3e:

  1. Disable the Windows Firewall on the PROFINET interface of the engineering PC, or add a rule that allows the PROFINET real-time multicast group (01-0E-CF-00-00-00 for PROFINET class B/C).
  2. Disable any anti-virus or endpoint-protection package that performs deep packet inspection on industrial protocols (Kaspersky, Trend Micro, Symantec). These packages frequently corrupt PROFINET discovery frames.
  3. Confirm that the network adapter driver is set to High Performance and that energy-saving features (Green Ethernet, Energy Efficient Ethernet) are disabled. These features add variable latency and break real-time determinism.
  4. Verify the switch port is configured for auto-negotiation or, better, hard-set to 100 Mbit/s full-duplex. Auto-negotiation on industrial switches can produce 10 Mbit/s half-duplex fallback that breaks PROFINET.
Security reminder: The firewall relaxation above is a commissioning step, not a permanent production configuration. Once commissioning is complete, lock the firewall to allow only the PROFINET multicast group and the engineering HTTPS (TCP/443) connection to the UR3e teach pendant.

I/O Address Planning for the UR3e

A common contributor to "Head module missing" is the implicit collision between the S7-1200 CPU's local I/O and the UR3e PROFINET slots. The CPU 1214C reserves the following ranges by default:

Address Range Owner
IB 0 .. IB 7 / QB 0 .. QB 7 CPU 1214C onboard digital I/O
IW 64 .. IW 126 / QW 64 .. QW 126 CPU 1214C onboard analog I/O
IB 100 .. IB 199 (recommended) UR3e PROFINET Standard + Tool I/O
IB 200 .. IB 263 (recommended) UR3e Register access (64 bytes)

Re-mapping the UR3e modules to start at address 100 prevents silent overlap. The pattern also leaves a 100-byte address gap that accommodates future PLC expansion (signal modules, communication modules) without forcing a re-map of the UR3e.

Verification Procedure

  1. In TIA Portal, select the CPU 1214C and click Go online. The status icon should turn green for both the PLC and the UR3e.
  2. Open Online > Diagnostics > Device diagnostics for the UR3e. All configured slots must report OK with no fault code.
  3. In the watch table, force a known value into QB 100 (e.g. 16#0001) and verify that the corresponding Standard DO bit on the UR3e is set. Use the PolyScope I/O tab to confirm.
  4. Read IB 100 from the UR3e Standard DI input and confirm the cycle status bit is reported correctly.
  5. Trigger a URScript program in the UR3e that writes a register, and read the same register from the PLC to confirm register access is bidirectional.
  6. Disconnect the PROFINET cable while the robot is running. The PLC should report Station failure within the configured watchdog time (typically 3 ms) and the safety logic should take the robot to a safe stop.

Troubleshooting Matrix

Symptom Most Likely Cause Resolution
UR3e not visible in Accessible nodes Wi-Fi or VPN between PC and robot Hardwire PC to robot subnet
Device name empty PROFINET name never assigned Use TIA Portal "Assign PROFINET device name"
Head module red, slots empty GSDML not installed or wrong revision Reinstall GSDML matching PolyScope version
Head module OK, I/O modules red I/O start address collision Re-map modules to IB 100+ / QB 100+
Diagnostics buffer 0x001E Watchdog too short or network jitter Increase watchdog to 3 ms, set send clock 1 ms
Diagnostics buffer 0x002B Module catalog differs from physical device Match PolyScope and GSDML; verify slot order
PCAP capture shows no PROFINET traffic Firewall or EDR blocking frames Disable firewall on PROFINET adapter, allow multicast
Intermittent connection drops Green Ethernet / EEE enabled Disable energy-saving on NIC and switch port
Robot does not start program on PLC trigger Register access not configured Insert Register access module at slot 4, write to input register

Frequently Asked Questions

Why is the UR3e Head module reported as missing in TIA Portal?

The Head module is missing because either the GSDML is not installed, the PROFINET device name was never assigned to the robot controller, or the configured I/O start addresses collide with the S7-1200 CPU's local I/O. Install the matching GSDML, push the PROFINET name via Online > Assign PROFINET device name, and re-map the UR3e slots to start at IB 100 / QB 100.

What subnet mask should I use between a CPU 1214C and a UR3e?

Use 255.255.255.0 (/24) for a single robot cell, or 255.255.0.0 (/16) if the cell is part of a wider plant network with remote I/O. Both devices must share the same mask and be on the same Layer-2 broadcast domain; routers, NAT, and Wi-Fi bridges are not supported for PROFINET discovery.

Which TIA Portal and CPU 1214C firmware versions support the UR3e?

TIA Portal V16 or newer is required, and the CPU 1214C must be on firmware V4.4 or later. The recommended baseline is TIA V17/V18 with CPU firmware V4.5 and PolyScope 5.7 or newer. Mismatches between TIA, CPU firmware, and PolyScope are a common source of slot-level diagnostics errors.

Can I commission the UR3e PROFINET link over Wi-Fi?

No. PROFINET uses LLDP and DCP for device discovery, both of which require Layer-2 connectivity and are blocked by most Wi-Fi access points and VPN concentrators. Connect the engineering PC, the CPU 1214C, and the UR3e to the same managed switch with cables during commissioning. Wireless operation is permitted only for the HMI panel after the AR is established.

How do I exchange URScript variables with the PLC?

Insert the Register access module at slot 4 of the UR3e. The module exposes 64 input bytes and 64 output bytes that map directly to integer and float registers readable from URScript via the read_input_float_register() / write_output_float_register() calls. In the PLC, place a DB at IB 200 and use MOVE or DPRD_DAT / DPWR_DAT to exchange the values.

Back to blog