1. Problem Overview
An S7-314C-2 PN/DP controller cannot establish a productive PROFINET IO (PN-IO) connection to a KUKA KRC4 robot controller. The PLC sees the robot as a reachable node (DCP/ping succeed and the device name resolves in HW Config), but every configured slot is reported with the diagnostic text Conflict: RPC error message (16#1C010003). No cyclic IO is exchanged between the SIMATIC CPU and the robot, which is the typical symptom when the KRC4 still operates as a PROFINET controller for other remote IO stations and the SIMATIC engineer has also assigned the same KRC4 as a PN-IO device without enabling the device stack in the KUKA project.
The error is recoverable in the field without firmware changes on either side. The root cause is not a defective Ethernet interface, a wrong topology, or an IP collision. It is a role/configuration mismatch in the KUKA WorkVisual project: the KRC4 is online as a PROFINET IO controller (for its own distributed stations, e.g., valve manifolds or remote I/O on the robot cell) but has not been told that it must simultaneously present a PROFINET device interface toward the S7-300.
2. Affected Hardware and Firmware
| Component | Order Number / Designation | Firmware / Software | Role |
|---|---|---|---|
| SIMATIC CPU 314C-2 PN/DP | 6ES7314-6EH04-0AB0 (typical variant) | Firmware V3.3.x or later | PROFINET IO Controller |
| KUKA KRC4 robot controller | KR C4 (various robot families, e.g., KR 16, KR 60, KR 210) | KSS 8.x (KUKA System Software) | PROFINET IO Device (must be) |
| KUKA WorkVisual | Configuration / programming suite shipped on the KUKA documentation CD per robot | Version matching KSS release (typically 4.0 / 5.0 line) | Engineering tool for KRC4 PROFINET role |
| SIMATIC Manager / STEP 7 | V5.5 SPx with HSP for the KUKA GSD | STEP 7 V5.5 + HF7 or later | PLC engineering tool |
3. Root Cause: The PROFINET Role Conflict
PROFINET distinguishes three roles on a single physical network:
- IO Controller – the master that owns the AR (Application Relationship) and issues cyclic IOCR (IO CR).
- IO Device – the slave that exposes slots and subscribes to the controller's IOCR.
- IO Supervisor – a diagnostics / engineering station (e.g., a laptop running STEP 7 or TIA Portal).
A KRC4 can be loaded with a PROFINET stack in either role, or both (in newer KSS versions). The default for a freshly imported WorkVisual project is often PROFINET controller – the KUKA project is created with a virtual PROFIsafe/PROFINET subnet that controls the KRC4's own remote I/O (valve terminals, conveyor sensors, safety peripherals, etc.). When a separate SIMATIC S7-300 project is then built and the KRC4 is also placed in HW Config as a PN-IO device, the KRC4 firmware does not know it must answer the S7-300's DCP Identify & Set-Property requests, because the device stack has not been activated in the WorkVisual project.
The result at the controller side is that the AR cannot be established. Siemens' diagnostic buffer translates this into a standardized PROFINET alarm:
4. Error Code 16#1C010003 Decoded
The diagnostic block 16#1C010003 is a PROFINET channel diagnostic. Its structure under Siemens PROFINET diagnostics – entry ID 109758504 is:
| Byte/Bit | Meaning |
|---|---|
| ChannelErrorType = 0x1C01 | RPC error inside the PROFINET stack (PN-IO AR layer) |
| ErrorCode = 0x0003 | AR establishment rejected / AR Add failed (the device side did not return a valid Connect-Response in time) |
| ChannelNumber = 0x0000 | Slot 0 / device itself |
| Direction = 0x00 | Input direction (controller reading the device status) |
Reading the same alarm in STEP 7 under PLC → Diagnostics/Setting → Module Information → IO Device Diagnostics shows "Conflict: RPC error message (16#1C010003)". This is a generic AR-Add failure. The most common field causes, in order of frequency, are:
- Device stack not activated on the KRC4 (this article).
- Device name assigned in HW Config but not written to the KRC4 via DCP (the KRC4 keeps the empty/factory name; the AR is rejected because the station name does not match).
- Mismatch in the expected slot count / module configuration between the GSD and the KRC4 project (e.g., the KRC4 publishes 2 input / 2 output words but the SIMATIC project expects 8/8).
- Wrong AR properties – specifically the KRC4 firmware rejects the AR because of an
IOCRwith an unsupported send clock or a Watchdog factor of 0.
Items 2-4 should always be checked, but in the scenario this article documents, item 1 is the actual fault. Ping/ARP success and a successful DCP Identify (you can read the device name back in HW Config) rule out 2, while 3 and 4 produce a different error class (typically 16#1C020001 – "Invalid slot configuration"). The 0x1C01 family points cleanly at the AR handshake, which is where the missing device stack manifests.
5. Prerequisites for Resolution
- STEP 7 V5.5 with current Hardware Support Package (HSP) for the KUKA GSD, or TIA Portal V16+ with the GSD file installed under Options → Manage General Station Description Files (GSD).
- WorkVisual installation matching the KSS version on the KRC4 (the CD bundled with the controller has the correct pairing – do not use a newer or older WorkVisual than the KSS).
- Network connection to the KRC4 service Ethernet port (X66 on KRC4) or to the cell network. The KUKA service interface is typically 192.168.0.1 / 255.255.255.0; the cell PROFINET network must be reachable from the engineering PC.
- Administrator / "Expert" user rights on the KRC4 to deploy the WorkVisual project.
6. Step-by-Step Resolution
- Export the current KRC4 project to WorkVisual. Connect to the KRC4 with WorkVisual, log in as Expert, and pull the active project via File → Save Project As (from the robot). The project opens with the existing PROFINET configuration visible under the Bus Structure → PROFINET node.
- Open the PROFINET node properties. In the project tree, right-click the PROFINET subnet the KRC4 is using for its own distributed I/O and select Properties. Under the General tab there is a section PROFINET Stack (in older KSS releases it appears as Interface). Two radio buttons / checkboxes control the role: PROFINET Controller and Activate PROFINET device stack.
- Tick "Activate PROFINET device stack." This is the action that resolves the error. With this option enabled, the KRC4 builds a second PROFINET interface that presents the configured slots toward the S7-300 as a PN-IO device. The KRC4 retains its controller role for the existing remote I/O on the cell network.
- Configure the device-side slots. After activating the device stack, a new PROFINET Device element appears under the KRC4. Add input and output modules that match the SIMATIC HW Config. The most common mapping for simple bit-for-bit exchange is 1 byte of inputs + 1 byte of outputs (slot 1 = 1 Byte In, slot 2 = 1 Byte Out). For larger mappings, add multiple byte/word modules up to the KRC4's device-side limit (typically 256 bytes per direction on KSS 8.3).
-
Assign the PROFINET device name. The name entered here (e.g.,
krc4cell1) must match exactly the device name you enter in STEP 7 / TIA Portal under PROFINET IO → KRC4 → Properties → PROFINET device name. Case-sensitive, no spaces, ≤ 240 characters per PROFINET naming rules. -
Assign the IP address. The device stack is bound to a KUKA PROFINET port (typically the KRC4's X65 port on the customer-side PROFINET network). Set the IP/subnet consistently with the S7-300 subnet, e.g.,
192.168.1.50 / 255.255.255.0. - Compile and deploy. Project → Build (F5) until the orange errors disappear, then Online → Deploy to the KRC4. The robot will prompt for a cold restart – accept it. After reboot, the KRC4 holds the new project with the device stack active.
- Re-assign the name from STEP 7. In SIMATIC Manager, right-click the KRC4 IO device → PROFINET Device Name → Assign Name. Browse to the KRC4 MAC, select it, and assign the exact same name you typed in WorkVisual. This step is mandatory even if you typed the name in WorkVisual; the PLC project must own the DCP name assignment so the AR can be opened by the S7-300.
7. WorkVisual Configuration Deep Dive
The Activate PROFINET device stack option is documented in the KUKA PROFINET integration manual that ships with WorkVisual. The relevant parameters in the WorkVisual bus editor are:
| Parameter | Default | Required value for PN-IO device toward S7-300 |
|---|---|---|
| PROFINET controller | Enabled | Keep enabled (KRC4 still controls its own I/O) |
| PROFINET device stack | Disabled | Enabled – this is the fix |
| Device name (DCP) | Empty | Match the SIMATIC HW Config name |
| Device IP | Empty | Valid IP in the S7-300 PROFINET subnet |
| Vendor ID | 0x015A (KUKA) | Do not change |
| Device ID | Assigned by GSD | Do not change |
| Send clock | 1 ms | 1 ms is fine for S7-300 PN; do not exceed 4 ms |
| Watchdog | 3 × send clock | Default; do not set to 0 |
The PROFINET specification from PI (PROFIBUS & PROFINET International) requires that a device that exposes multiple slots must publish a real GSD file. KUKA does this; the GSD is installed with WorkVisual and appears in STEP 7 / TIA Portal as KUKA Roboter GmbH → KRC4 → KR C4 PROFINET Device. Always import the GSD from the WorkVisual install path, not a copy off a colleague's laptop – the GSD is versioned against KSS.
8. SIMATIC Manager HW Config Verification
After the KRC4 has been re-deployed with the device stack, the SIMATIC HW Config must show the KRC4 with green checkmarks in the online view. The verification sequence is:
- Compile the STEP 7 project (Station → Consistency Check).
- Download HW Config to the S7-314C-2 PN/DP (target system → PLC → Download).
- Open Online → Accessible Nodes and confirm the KRC4 appears as a PROFINET IO Device with a green status icon.
- In the diagnostic buffer, the previous RPC errors should be replaced by an informational entry: PROFINET IO: AR established.
- Force a bit on the KRC4 side (e.g., from a KRL program with
$OUT[1] = TRUE) and monitor it in VAT or in the HW Config IO view on the S7-300 side at input byte 0, bit 0.
9. Verification and Diagnostic Checks
Use the following layered verification to confirm the link is healthy before commissioning motion or safety logic over it:
| Layer | Tool | Expected result |
|---|---|---|
| Layer 2 (DCP) | STEP 7 → PLC → Ethernet → Browse | KRC4 visible with correct name and IP |
| Layer 3 (ICMP) | Ping from PG | Reply < 1 ms, 0% loss |
| PN-IO AR | STEP 7 → Module Information → IO Device Diagnostics | No errors, AR established, watchdog OK |
| Cyclic IO | Monitor/Modify → Inputs / Outputs | Values change in real time, status = OK |
| KRC4 side | WorkVisual → Online → Diagnosis | "PNIO Device Stack: Active", AR state = Connected |
| KUKA side (KRL) | $PROFIO_IN / $PROFIO_OUT from KRL | Bit patterns match what S7-300 writes/reads |
10. Extended Troubleshooting Matrix
| Observed symptom | Most likely cause | Fix |
|---|---|---|
16#1C010003, no AR |
Device stack not activated on KRC4 | Enable "Activate PROFINET device stack" in WorkVisual, redeploy |
Device visible in PG, AR fails with 16#1C020001
|
Slot/module mismatch between GSD and KRC4 project | Align module count and direction in both projects |
| Device visible, name shows unknown | DCP name not written from STEP 7 | Use "Assign PROFINET device name" with the PG's accessible nodes view |
| Ping works, AR fails immediately, log shows DCP timeout | KRC4 on a different VLAN / no DCP relay | Place both ports in the same PROFINET subnet or enable DCP relay (e.g., managed switch from Siemens SCALANCE family) |
| AR established, IO always zero | Watchdog factor = 0 in WorkVisual or wrong slot indexing | Set watchdog to 3 × send clock; verify slot 0/sub-slot mapping |
AR drops after a few minutes, 16#1C030001
|
PN-IO update time too aggressive for cable length | Increase send clock to 1 ms or 2 ms; check for EMI / cable length > 100 m |
| Robot fault: PROFINET stack watchdog | Conductor break or unplugged PROFINET cable on the KRC4 X65 port | Re-seat cable, check link LED on KRC4 and switch |
| PG can browse, PLC online view blank for KRC4 | Name conflict – another device on the network has the same DCP name | Rename KRC4 to a unique name and re-assign from STEP 7 |
11. Best Practices and Field Notes
- Always enable the device stack even if the S7-300 is the only controller in the cell. It costs nothing at runtime and avoids the "but it was the device stack again" call-out at the next integration.
- Keep the controller-side PROFINET on a separate subnet from the device-side PROFINET when possible. KRC4 supports two PROFINET interfaces in KSS 8.3+; use the second physical port to physically isolate the S7-300 link from the KRC4's own remote I/O.
- Match the device name in three places: the WorkVisual project (offline), the KRC4 runtime (after deploy), and the SIMATIC HW Config. A mismatch in any one of the three will produce AR errors.
-
Document the slot map (e.g., slot 1 = byte 0 inputs, slot 2 = byte 0 outputs) in the project header so the KRL programmer and the PLC programmer agree. KRL accesses the device stack via
$PROFIO_IN[n]and$PROFIO_OUT[n]indexed per byte/bit. - Do not name the PROFINET subnet the same on both sides. The PROFINET IO subnet name is purely administrative; only the DCP device name must match.
- For PROFIsafe over PROFINET, an additional PROFIsafe host (e.g., a SINUMERIK or F-CPU) is required. The KRC4 device stack is for non-safe signals only.
- Firmware pairing with STEP 7: STEP 7 V5.5 SPx can program the S7-314C-2 PN/DP down to firmware V3.3.x. If the CPU firmware is older (V2.x), upgrade with a SIMATIC Memory Card per SIMATIC S7-300 CPU 31xC firmware update – entry ID 21402108 before commissioning PROFINET.
12. Frequently Asked Questions
What does PROFINET error 16#1C010003 mean on a Siemens S7-300?
It is a channel diagnostic of type RPC error (ChannelErrorType 0x1C01) with error code 0x0003, indicating that the AR (Application Relationship) handshake between the IO controller and the IO device failed. The device did not return a valid AR-Add response, almost always because the device-side PROFINET stack is not active or the device name does not match.
Why does my KUKA KRC4 need "Activate PROFINET device stack" in WorkVisual?
By default, a fresh KRC4 WorkVisual project configures the robot as a PROFINET IO controller for its own distributed I/O. If you also want the robot to act as a PN-IO device toward a SIMATIC S7-300, you must enable the device stack. Without it, the KRC4 has no PROFINET device interface for the S7-300 to talk to, and the AR will be rejected with 0x1C010003.
Can a KUKA KRC4 be both a PROFINET controller and device on the same cell?
Yes, on KSS 8.2 and later (KSS 8.3 adds the most complete concurrent operation). Enable both the controller and the device stack in WorkVisual and connect the KRC4's two PROFINET ports to the appropriate subnets. The KRC4 will then run its own remote I/O as a controller and accept ARs from a SIMATIC S7-300 as a device.
Do I still need to assign the PROFINET device name from STEP 7 if I typed it in WorkVisual?
Yes. The KRC4 holds the configured name after deploy, but the S7-300 owns the DCP name assignment – without an explicit Assign PROFINET device name from STEP 7 / TIA Portal, the AR will fail. Always confirm the assignment in Online → Accessible Nodes.
Which WorkVisual version matches which KSS release for PROFINET device support?
WorkVisual 4.0 pairs with KSS 8.2; WorkVisual 5.0 pairs with KSS 8.3 and adds the concurrent controller + device feature set. Mismatched pairs will deploy but the device stack option will be greyed out or behave erratically. Always take the WorkVisual CD that shipped with the controller.