Problem Overview: CU320-2 Faults Will Not Clear from PLC
When a SINAMICS S120 Control Unit CU320-2 PN (article number 6SL3040-1MA01-0AA0) running firmware V5.2 HF7 (5.20.29.24) reports a fault, the standard LAxisCtrl technology object reset on the connected SIMATIC S7-1500T (here 1516T-3 PN/DP) with TIA Portal V15.1 will not clear it. This is a deliberate, by-design limitation: LAxisCtrl Reset and Reset-with-Restart only act on the Drive Object (DO) of the SINAMICS axis, not on the Control Unit's own fault buffer. As a result, a DRIVE-CLiQ topology error (for example F08501 DRIVE-CLiQ: life sign missing, F08502 DRIVE-CLiQ: synchronization error, or F08565 DRIVE-CLiQ: consistency error), a CU power section fault, or any fault latched on DO 1 (the Control Unit object) cannot be acknowledged from the PLC, and the only practical workaround visible to the operator becomes a full POWER ON of the drive line-up.
This document collects every field-proven method for acknowledging a CU320-2 fault from a SIMATIC PLC, the parameters and process data words each method touches, and the conditions under which each method is legal. The methods covered are:
- Siemens telegram 39x (394 in this application) — control word 1, bit 7, positive edge (recommended for cyclic acknowledgement).
-
SINA_PARA_S— acyclic parameter access to writep2103on the Control Unit (DO 1). -
LAcycCom— acyclic parameter access via the technology object, alternative toSINA_PARA_S. - Direct
DPWR_DATto the CU process data slot (write to receive word bit 7) — the legacy method, kept here for completeness.
p2103 or STW1 bit 7 will appear to execute but the fault will re-appear immediately.Hardware and Software Stack Used in This Application
| Component | Article / Version | Notes |
|---|---|---|
| SINAMICS S120 Control Unit | 6SL3040-1MA01-0AA0 (CU320-2 PN) | PROFINET variant, supports telegram 39x |
| SINAMICS firmware | V5.2 HF7 (5.20.29.24) | Released branch for S120, supports SINA_PARA_S parameter channel |
| SIMATIC controller | 6ES7516-3TN00-0AB0 (CPU 1516T-3 PN) | Technology CPU, motion-capable |
| Engineering | TIA Portal V15.1 | SINAMICS Startdrive V15.1 / HSP 0184 |
| Axis telegrams | Siemens telegram 105 (3 axes) | Created automatically with TO configuration |
| CU telegram | Siemens telegram 394 | Configured on DO 1 (the Control Unit) |
| Encoders | DRIVE-CLiQ absolute encoders | Connected through DMC20 / DME20 hubs |
| PLC libraries | LAxisCtrl, LAcycCom, SINA_PARA_S (from DriveLib / PLCopen blocks) | Part of TIA Portal V15.1 DriveLib |
Why LAxisCtrl Reset Will Not Clear CU Faults
In a SINAMICS S120 multi-axis drive line-up, each physical component (the Control Unit, the Active Line Module, each Motor Module, each Terminal Module, each encoder) is represented internally as a Drive Object with a unique DO number. The DO numbering is fixed and conventional:
| DO Number | Drive Object | Acknowledged by LAxisCtrl Reset? |
|---|---|---|
| 1 | Control Unit (CU320-2) | No |
| 2 | Active Line Module (ALM) or Smart Line Module (SLM) | No (unless a TO is bound to it) |
| 3, 4, 5, ... | Motor Modules / drive axes | Yes, if a TO exists for that axis |
| Last DO numbers | TM / SMC / encoder DOs | No |
Because the TIA Portal technology object for the three axes is created with the axis number as DO 3, 4, 5 (conventionally, DO 2 is the supply), LAxisCtrl Reset writes to the fault buffer of DOs 3, 4, and 5 only. The fault buffer of DO 1 (the Control Unit) is untouched, and a CU-resident fault such as F08501 (DRIVE-CLiQ life sign missing after a hot-plug of a DRIVE-CLiQ connector) will remain latched until it is acknowledged at the CU level.
LAxisCtrl Reset-with-Restart additionally sets the parameter p0970 on the bound DO, which performs a parameter reset and re-initialisation of that DO. p0970 is intentionally not permitted to be written to DO 1 from an axis TO for safety reasons: a CU-level reset would cut the PROFINET connection and drop all axes simultaneously, which the standard axis safety state machine does not support.
Method 1 — Telegram 39x, Control Word 1, Bit 7 (Recommended for Cyclic Acknowledge)
Siemens telegram 394 (and the related 390, 391, 392, 393) is the standard cyclic PZD channel for the SINAMICS S120 Control Unit. Telegram 394 is mapped to Drive Object 1 by default and provides the following receive and send words in the CU direction:
| Word (CU receive, PLC → drive) | Name | Bit 7 Function |
|---|---|---|
| PZD1 (receive) | Control word 1, CU (STW1_CU) | 0→1 edge = acknowledge all faults on DO 1 (and following reset chain) |
| PZD2 (receive) | Control word 2, CU (STW2_CU) | Reserved / application-specific in this application |
| Word (CU send, drive → PLC) | Name | Bit 7 Function |
|---|---|---|
| PZD1 (send) | Status word 1, CU (ZSW1_CU) | 1 = fault active on DO 1 |
| PZD2 (send) | Status word 2, CU (ZSW2_CU) | Reserved / application-specific |
The acknowledgement trigger is a positive edge (0 → 1) on bit 7 of the CU's first control word. In the S7-1500 axis / device view this is the boolean tag at bit position 7 of the PZD1 output word addressed to the CU slot. The tag naming convention in TIA Portal V15.1 for telegram 394 on a CU320-2 PN is:
- Input direction (PLC reads):
I [slot] [IB] [byte offset].7, symbolic nameZSW1_CU - Output direction (PLC writes):
Q [slot] [QB] [byte offset].7, symbolic nameSTW1_CU
The original question noted that bits I262.0 and Q262.0 appear in the tag table even though telegram 394 was not explicitly added. This happens when Startdrive auto-extends the telegram 394 slot on the CU's PROFINET device. TIA Portal V15.1 creates the slot automatically when the SINAMICS S120 device version is set to a firmware ≥ V5.1. If you do not see the slot, open Devices & Networks, click the CU320-2 PN device, open Device view, and confirm that Telegram 394 is added to the CU's PROFINET submodule (slot 0). Once confirmed, recompile the PLC and the STW1_CU / ZSW1_CU tag group becomes accessible.
Code Pattern for Telegram 39x Edge-Triggered Acknowledge
The edge detection is critical: a static 1 on bit 7 will be re-evaluated by the SINAMICS as a continuous acknowledgement attempt and may be rejected by the CU's debounce filter. Use a one-shot rising-edge helper in the PLC.
// Rising-edge detection on HMI "Acknowledge all" button
IF "HMI_AckAll" AND NOT "AckAll_Old" THEN
"AckAll_Pulse" := TRUE; // 1-cycle pulse
END_IF;
"AckAll_Old" := "HMI_AckAll";
// Drive the bit 7 of CU STW1 (telegram 394 PZD1)
"STW1_CU".7 := "AckAll_Pulse";
// Auto-reset the pulse after one cycle
IF "AckAll_Pulse" THEN
"AckAll_Pulse" := FALSE;
END_IF;
For the S7-1500T, the same pattern can be written in Structured Text (SCL) and is portable to the S7-1200 (firmware V4.2 and above) for non-T applications. The SINAMICS S120 List Manual (LH1) documents the assignment of bit 7 in detail under the section "Control word 1 (STW1)" for telegram 39x; refer to the parameter list for the exact fault-reset chain behaviour on a per-fault basis.
LAxisCtrl Reset for each axis TO. A common pattern is to use a single global HMI button that pulses both the CU bit 7 and the LAxisCtrl "Execute" inputs of every axis TO in the same PLC cycle.Method 2 — SINA_PARA_S Acyclic Parameter Write to p2103
The parameter p2103 is the SINAMICS "bijection" parameter that triggers a fault acknowledgement when written with the value 0 followed by a non-zero value (typically 1). p2103 exists on every Drive Object; writing to p2103 on DO 1 acknowledges CU faults, and writing to p2103 on an axis DO acknowledges axis faults. SINA_PARA_S is the S7-1500 / S7-1200 FB (part of the DriveLib library supplied with TIA Portal) that performs acyclic parameter access over PROFINET using the PROFIdrive parameter channel (RPC / Record Data CR).
| Input of SINA_PARA_S | Value in this application | Comment |
|---|---|---|
| REQ | rising edge from HMI Ack button | One-shot, not level |
| ID | Hardware identifier of the CU320-2 PN PROFINET device | From the TIA device configuration |
| INDEX | 0 | Sub-index, not used for p2103 |
| DRIVE_OBJ | 1 | DO 1 = the Control Unit (this is the critical setting) |
| PARAM | 2103 (or 0x0837 hex) | p2103, the acknowledge parameter |
| VALUE | 1 | Non-zero value; the actual content is not interpreted, only the edge matters |
| EXECUTE | (not used in SINA_PARA_S V15.1) | REQ is the trigger |
Code Example (SCL for S7-1500T, TIA Portal V15.1)
// Global acknowledge: HMI button "Ack CU faults"
IF "HMI_AckCU" AND NOT "AckCU_Old" THEN
// Write p2103 = 1 on DO 1 (Control Unit)
"DB_AckCU".REQ := TRUE;
"DB_AckCU".ID := "HwId_CU320_2_PN"; // DWORD hardware identifier
"DB_AckCU".DRIVE_OBJ := 1; // CU is always DO 1
"DB_AckCU".PARAM := 2103; // p2103 = acknowledge
"DB_AckCU".VALUE := 1;
"DB_AckCU".EXECUTE := TRUE; // V15.1 compatibility
END_IF;
"AckCU_Old" := "HMI_AckCU";
// Reset REQ after the FB acknowledges the write
IF "DB_AckCU".DONE OR "DB_AckCU".ERROR THEN
"DB_AckCU".REQ := FALSE;
"DB_AckCU".EXECUTE := FALSE;
END_IF;
// Instantiate the FB (multi-instance in a global DB is recommended)
"DB_AckCU"(REQ := "DB_AckCU".REQ,
ID := "DB_AckCU".ID,
INDEX := "DB_AckCU".INDEX,
DRIVE_OBJ := "DB_AckCU".DRIVE_OBJ,
PARAM := "DB_AckCU".PARAM,
VALUE := "DB_AckCU".VALUE,
EXECUTE := "DB_AckCU".EXECUTE,
BUSY => "DB_AckCU".BUSY,
DONE => "DB_AckCU".DONE,
ERROR => "DB_AckCU".ERROR,
STATUS => "DB_AckCU".STATUS);
The SINA_PARA_S FB returns STATUS values in the W#16#... range. The most common non-zero statuses for a failed acknowledgement are:
| STATUS (hex) | Meaning | Field action |
|---|---|---|
| 0000 | No error | None |
| 7000 | No request active | None |
| 7001 | Request starting | None |
| 7002 | Request active | None |
| 80A1 | PROFINET connection error | Check cabling, IP, device name |
| 80B1 | Drive Object does not exist | Check DRIVE_OBJ = 1 |
| 80B2 | Parameter does not exist | Check parameter number, firmware |
| 80B4 | Parameter access denied by drive state | Drive is in commissioning mode; leave p0009 = 0 |
| 80B5 | Parameter value out of range | VALUE = 0 was written; use 1 |
The complete list of SINA_PARA_S error codes is published in the TIA Portal V15.1 online help under "SINA_PARA_S / STATUS".
Method 3 — LAcycCom Acyclic Parameter Access
LAcycCom is the technology-object-side acyclic parameter channel that the TIA Portal exposes for TO-bound Drive Objects. It is conceptually identical to SINA_PARA_S but the data is staged into the technology object first and then sent by the TO itself. The advantage is that the hardware identifier and PROFINET slot configuration are inherited from the TO configuration; the disadvantage is that LAcycCom can only access parameters of DOs that have a TO bound to them, which excludes DO 1 in a standard S120 multi-axis configuration. To reach DO 1 with LAcycCom the TO must be re-bound to DO 1, which loses axis functionality. For this reason SINA_PARA_S is preferred in practice, and the original poster reached the same conclusion.
LAcycCom Pattern (For Reference)
// Only valid if the TO is bound to DO 1; usually not used for CU ack
"DB_LAcycCom".REQ := "HMI_AckCU" AND NOT "AckCU_Old";
"DB_LAcycCom".SENDMODE := 1; // 1 = write request
"DB_LAcycCom".PARAMETER := 2103; // p2103
"DB_LAcycCom".DRIVE_OBJ := 1; // CU
"DB_LAcycCom".VALUE := 1;
Method 4 — Direct DPWR_DAT to the CU Receive Word
The original poster's first attempt used DPWR_DAT to set bit 7 of the CU's first receive word directly. This is the legacy method that works in PROFINET and PROFIBUS, and is the underlying mechanism that telegram 39x bit 7 already exposes at the application layer. Using both methods simultaneously is legal but redundant.
The downside of writing directly to the PZD is that the telegram 394 mapping is not visible in the application code (it lives in the device configuration), and a firmware upgrade that remaps the bits could break the application silently. For new applications, prefer the symbolic tag STW1_CU exposed by the TIA device configuration, which is the application-level alias for the same PZD word. The DPWR_DAT path should be reserved for legacy retrofits where TIA Portal device configuration cannot be changed without a full project re-commissioning.
DPWR_DAT to set bit 7 of an axis's PZD1 if the axis uses a Siemens standard telegram 1..6 — these telegrams have a strict PROFIdrive profile definition, and bit 7 has a different meaning ("disable voltage ramp" / "speed setpoint enable"). For axis acknowledgement use the standard LAxisCtrl Reset or MC_Reset from the PLCopen library. The bit 7 = acknowledge convention applies to Siemens-specific telegrams 39x and 19x only.Mapping Faults to Acknowledgement Method
Not every SINAMICS S120 fault can be cleared from the PLC. The List Manual assigns each fault a cause class that determines the legal acknowledgement method. The classes relevant to DO 1 (the CU) are summarised below.
| Fault Number Range | Typical Cause | Ack from PLC? | Recommended Method |
|---|---|---|---|
| F010xx | Firmware / parameterisation | No | POWER ON required; check p0009, p0970 |
| F01611 | CU: commissioning slot error | No | POWER ON |
| F08501 | DRIVE-CLiQ life sign missing | Yes | Telegram 39x bit 7 or p2103 on DO 1 |
| F08502 | DRIVE-CLiQ sync error | Yes | Telegram 39x bit 7 or p2103 on DO 1 |
| F08565 | DRIVE-CLiQ consistency error | Yes (if cause resolved) | Telegram 39x bit 7 or p2103 on DO 1 |
| F08700 | Communication fault PROFINET | No (PROFINET stack) | Restore PROFINET connection, then ack |
| F30001 | Power unit overcurrent | Yes (after cool-down) | p2103 on the relevant DO |
For each fault you intend to acknowledge from the HMI, open the SINAMICS S120 List Manual (function manual LH1) and search for the fault number. The "Acknowledgement" line in the "Cause/Remedy" table specifies whether IMMEDIATELY (POWER ON), IMMEDIATELY, or BLOCKED is permitted.
DRIVE-CLiQ Hot-Plug Faults: Special Considerations
The original scenario — unplug and re-plug a DRIVE-CLiQ connector — is one of the few cases where the CU fault buffer changes dynamically. The sequence in firmware V5.2 HF7 is:
- Connector unplugged → F08501 (life sign missing) raised on the affected DO; the CU also raises F08501 in its own buffer if the affected DO is critical to the CU.
- Connector re-plugged → F08501 is not cleared automatically; the SINAMICS waits for a manual or PLC acknowledgement.
- PLC sends positive edge on telegram 39x STW1 bit 7 (or writes p2103 = 1 on DO 1) → F08501 transitions to "not present" provided the DRIVE-CLiQ link has been re-established.
- If the link is not re-established, the CU raises F08501 again within the F08501 debounce time (typically 5 s in V5.2).
For DRIVE-CLiQ topology faults the acknowledgement is therefore conditional: the PLC must poll the CU's r0863 (DRIVE-CLiQ status word) and only fire the acknowledge edge when the link is healthy again. A simple debounced check of ZSW1_CU bit 10 ("control requested" / "ready to switch on") is sufficient for most applications.
// Conditional acknowledge of DRIVE-CLiQ fault
IF "HMI_AckCU" AND "ZSW1_CU".0 AND NOT "AckCU_Old" THEN // bit 0 = "ready to switch on"
"STW1_CU".7 := TRUE; // pulse
// self-reset pulse after one cycle, as shown in Method 1
END_IF;
HMI Integration: A Global Acknowledge Button
The practical use case is a single HMI button on a SINAMICS S120 / S7-1500T machine that acknowledges every fault that the PLC is allowed to clear. The recommended structure in TIA Portal WinCC V15.1 is a single HMI tag "HMI_AckAll" wired to a momentary push-button on the screen, with a tag limit of 1 cycle pulse generated in the PLC as shown above. The PLC then fans the pulse out to:
-
STW1_CU.7 (telegram 394 bit 7, CU faults) — Method 1. - Each axis
LAxisCtrl"Execute" input (axis faults) — Method via axis TO. - Optional:
SINA_PARA_Sinstance targeting DO 1 withp2103for redundant acknowledgement (Method 2).
The HMI should display the SINAMICS fault buffer (parameter r0945 / r0947 / r0949 / r2109 / r2120) cyclically read through SINA_PARA_S read requests, so the operator knows which faults will and will not be cleared. Faults in class POWER ON must be displayed in a separate colour and the HMI Ack button must explicitly refuse to clear them (or display a "POWER ON required" message), otherwise the operator will be confused when the same fault re-appears immediately after acknowledgement.
Verification Procedure
- Force a known CU fault. The cleanest way is to use the SINAMICS commissioning tool (Starter or Startdrive) to inject a fault via
p2100/p2101(set fault code and trigger) on DO 1. - Confirm that the PLC reports the fault via telegram 394 ZSW1 bit 3 ("fault active") and bit 7 ("warning") in ZSW2.
- From the HMI, press the Acknowledge button. The PLC should generate a 1-cycle pulse on
STW1_CU.7 (or fire the SINA_PARA_S write to p2103 on DO 1). - Confirm that ZSW1 bit 3 clears within one PROFINET update cycle (typically 1 ms on S120 PROFINET, default scan 4 ms).
- Read the SINAMICS fault buffer via
SINA_PARA_Sread ofr0945[0..7]to confirm the fault is in the "OUTGOING" history, not in the active buffer. - Repeat for an axis fault: confirm that
LAxisCtrlReset clears the axis fault, and that telegram 105 ZSW1 bit 3 returns to 0 on the affected axis. - Verify that the same global HMI button clears both CU and axis faults in one press (the fan-out described in the HMI section).
Troubleshooting Matrix
| Symptom | Likely Cause | Diagnostic | Remediation |
|---|---|---|---|
| CU fault remains after PLC pulse on bit 7 | Fault class POWER ON | Read fault cause in List Manual | Cycle power; re-route HMI message |
| SINA_PARA_S returns 80B1 | Wrong DO number | Check DRIVE_OBJ input | Set DRIVE_OBJ = 1 |
| SINA_PARA_S returns 80B4 | Drive in commissioning mode (p0009 ≠ 0) | Read p0009 via SINA_PARA_S | Set p0009 = 0, then ack |
| SINA_PARA_S returns 80A1 | PROFINET connection error | Check online diagnostics on the device | Restore PROFINET, then ack |
| Telegram 394 bit 7 has no effect | Telegram not actually mapped to DO 1 | Devices & Networks → Device view → CU slot | Add Telegram 394 to the CU submodule |
| ZSW1_CU tags not visible in the tag table | Telegram 394 not added in the device configuration | Open Device view of CU320-2 PN | Add Telegram 394, recompile |
| Fault clears but re-appears within 1 s | Cause still present (e.g. DRIVE-CLiQ link down) | Read r0863 (DRIVE-CLiQ status) | Restore link, then ack |
| Axis faults not cleared by global Ack | Only CU STW1.7 is pulsed; axis TOs not pulsed | Watch LAxisCtrl "Execute" tags | Add fan-out to all axis TOs in the same cycle |
| CPU goes to STOP on SINA_PARA_S call | Hardware identifier wrong | Cross-check the HwId in the system constants | Use the system constant for the CU PROFINET interface |
Reference Material
The official sources for the methods described in this article are the SINAMICS S120 Function Manuals and the TIA Portal online help. The following documents are the authoritative references; quote the section number / chapter in the project documentation when applying the methods.
- SINAMICS S120 Safety Integrated Function Manual — describes the legal acknowledgement methods (POWER ON, signal edge) for CU310-2 / CU320-2 faults.
- SINAMICS S120 List Manual (LH1) — fault and warning list, including the cause class (IMMEDIATELY / POWER ON) for every fault number.
- SINAMICS S120 Function Manual Communication — PROFIdrive telegram 39x structure and CU control word bit assignments.
- TIA Portal V15.1 online help —
SINA_PARA_S,LAcycCom,LAxisCtrlblock descriptions and STATUS code tables. - SIMATIC S7-1500T Motion Control Function Manual — interaction of technology objects with SINAMICS telegram 105 and 394.
Which method is recommended for acknowledging a CU320-2 fault from a S7-1500T — telegram 39x bit 7, SINA_PARA_S, or DPWR_DAT?
For new applications use telegram 39x (394 in this case) control word 1 bit 7 with a one-shot rising edge in the PLC. SINA_PARA_S writing p2103 on DO 1 is the equivalent acyclic method and is preferred when you do not want a permanent cyclic PZD to the CU. Direct DPWR_DAT is legacy; it works but is not symbolically named in the TIA tag table.
Why does LAxisCtrl Reset clear axis faults but not DRIVE-CLiQ faults on the Control Unit?
LAxisCtrl Reset writes to the fault buffer of the axis Drive Object (DO 3, 4, 5 in this S120 configuration). DRIVE-CLiQ faults that are latched on the Control Unit are on DO 1, which has no axis TO, so LAxisCtrl does not address them. Use a CU-targeted method (telegram 39x bit 7 or SINA_PARA_S with DRIVE_OBJ = 1 and PARAM = 2103).
Why is the SINA_PARA_S STATUS returning 80B1 ("Drive Object does not exist")?
The DRIVE_OBJ input is set to a value other than 1. For the Control Unit the Drive Object number is always 1. Correct the input to 1, recompile, and re-test. The 80B1 error can also occur if the SINAMICS project has been re-numbered (for example, a Smart Line Module is DO 2 and a CU is still DO 1, but some configurations assign DOs differently); confirm the DO number on the drive side via Startdrive device configuration.
How do I find the hardware identifier (HwId) for the CU320-2 PN PROFINET interface for SINA_PARA_S?
In TIA Portal V15.1, open the PLC's "System constants" (under the device, "Show system constants"), filter by the CU320-2 PN device, and copy the HwId of the PROFINET interface (not the device itself). Pass this DWORD to the ID input of SINA_PARA_S. Using the wrong HwId — for example, the HwId of the PROFINET subnet instead of the device — returns 80A1.
Some faults re-appear immediately after acknowledgement. How do I tell which faults are legal to clear from the PLC?
Open the SINAMICS S120 List Manual, look up the fault number, and read the "Acknowledgement" field. If the field shows "IMMEDIATELY (POWER ON)" or "BLOCKED", the fault cannot be cleared from the PLC. If it shows "IMMEDIATELY", telegram 39x bit 7 or SINA_PARA_S on p2103 will clear it. Common POWER ON-required faults on the CU include F010xx (firmware), F01611 (commissioning slot), and most safety-related faults.