SINAMICS S120 CU320-2 Fault Acknowledge via PLC: SINA_PARA_S

David Krause18 min read
S7-1200SiemensTroubleshooting
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: 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:

  1. Siemens telegram 39x (394 in this application) — control word 1, bit 7, positive edge (recommended for cyclic acknowledgement).
  2. SINA_PARA_S — acyclic parameter access to write p2103 on the Control Unit (DO 1).
  3. LAcycCom — acyclic parameter access via the technology object, alternative to SINA_PARA_S.
  4. Direct DPWR_DAT to the CU process data slot (write to receive word bit 7) — the legacy method, kept here for completeness.
Always check the SINAMICS S120 List Manual fault description for the specific fault you are clearing. Some faults (for example F01611, F08501 in certain safety configurations, and most faults with cause class "POWER ON required") can only be cleared by switching the CU off and back on. Trying to acknowledge a POWER ON-required fault through 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 name ZSW1_CU
  • Output direction (PLC writes): Q [slot] [QB] [byte offset].7, symbolic name STW1_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.

Bit 7 of telegram 39x STW1 acknowledges faults only on DO 1 (the Control Unit). It does not acknowledge faults on the Motor Module DOs (DO 3, 4, 5). For a global HMI "Acknowledge All" button, you must combine this signal with 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.

Do not use 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:

  1. 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.
  2. Connector re-plugged → F08501 is not cleared automatically; the SINAMICS waits for a manual or PLC acknowledgement.
  3. 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.
  4. 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_S instance targeting DO 1 with p2103 for 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

  1. 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.
  2. Confirm that the PLC reports the fault via telegram 394 ZSW1 bit 3 ("fault active") and bit 7 ("warning") in ZSW2.
  3. 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).
  4. Confirm that ZSW1 bit 3 clears within one PROFINET update cycle (typically 1 ms on S120 PROFINET, default scan 4 ms).
  5. Read the SINAMICS fault buffer via SINA_PARA_S read of r0945[0..7] to confirm the fault is in the "OUTGOING" history, not in the active buffer.
  6. Repeat for an axis fault: confirm that LAxisCtrl Reset clears the axis fault, and that telegram 105 ZSW1 bit 3 returns to 0 on the affected axis.
  7. 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, LAxisCtrl block 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.

Back to blog