Resolving S120 F07220 Fault with S7-1200 SINA_POS FB284

David Krause15 min read
SiemensTIA PortalTroubleshooting
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

1. Problem Overview

When integrating a SIMATIC S7-1200 CPU with a SINAMICS S120 drive via PROFINET and the SINA_POS (FB284) library block, the most common commissioning failure produces three coupled symptoms:

  1. The SINAMICS S120 reports F07220 in its fault buffer.
  2. The SINA_POS instance reports Error = 5 (drive fault), then Error = 6 (switching on inhibited), and finally FaultAct = 1C34 on each new attempt.
  3. Acknowledging with FN on the S120 only clears the drive-side fault momentarily; the next SINA_POS execution re-triggers it within one second.

The combination is almost always traceable to one of three configuration defects: a missing PROFINET partner-port assignment, an unassigned or incorrect telegram-111 hardware identifier (HWID), or a missing control-word enable in STW1. This reference walks through each layer, in the order that must be verified.

Field note: On the S7-1200, the SINA_POS block is delivered as part of the "SINAMICS blocks for SIMATIC S7-1200 / S7-1500" library. The block version must match the CPU firmware. CPU 1214C DC/DC/DC with firmware V1.0 is a very early controller — only the original (pre-V4) SINA_POS library is compatible. Mixing newer block versions with V1.0 firmware is a common cause of Error = 5 and should be ruled out before further debugging.

2. Required Hardware and Software Stack

Component Value used in the documented case Notes
Controller SIMATIC S7-1200 CPU 1214C DC/DC/DC FW V1.0 — end-of-life branch
Drive SINAMICS S120 (Control Unit + Line Module + Motor Module) Configured with STARTER / Startdrive offline
PROFINET telegram Standard telegram 111 HWID 279 on the S120 in this configuration
Library block SINA_POS (FB284) S7-1200 variant from Siemens library
Engineering tool TIA Portal V13 / V14 (compatible with FW 1.0 CPU) HW configuration & symbol mapping
Drive tool STARTER (or Startdrive) Drive topology and enable logic

The PROFINET telegram 111 is a Siemens-specific, position-control oriented standard telegram containing two 16-bit control words (STW1, STW2), two 16-bit status words (ZSW1, ZSW2), a 32-bit speed setpoint, a 32-bit actual speed, and a 32-bit position setpoint/actual pair. It is the default selection when using the SINA_POS library because the block expects that exact PZD layout.

3. F07220 — Fault Code Analysis

F07220 on the SINAMICS S120 family belongs to the controller-level fault group. In the S120/S150 List Manual (LH1), it indicates a configuration or enable-logic violation within the control sequence and is most often triggered when:

  • The drive receives a closed-loop enable (p0840, OFF1) without the corresponding pulse enable (p0850, drive enable / inverter enable).
  • The PROFINET partner port on the S120 side is configured but the S7-1200 port has not been assigned as the IO controller.
  • Smart Line Module (SLM) or Active Line Module (ALM) pre-charge and DC link readiness is incomplete when the drive enable arrives.
  • Word STW1 bits 0–3 are toggled in an order that violates the S120 state machine (e.g., ON/OFF1 = 1 before the drive has reached "Ready to switch on").

The fault is recoverable (Acknowledgeable), which matches the behavior reported: pressing FN on the S120 clears the buffer, but the fault re-appears on the next SINA_POS pulse because the underlying enable sequence is still wrong.

Always inspect the S120 fault buffer detail: In STARTER / Startdrive, open Diagnostics → Fault buffer on the Control Unit. The fault value alone (F07220) is not sufficient — the secondary fault value and the time stamp identify exactly which sub-condition fired. Do not rely on the panel-only display.

4. SINA_POS (FB284) Error State Machine

The Error and FaultAct outputs of SINA_POS form an internal state machine. The sequence reported in the source — Error 5, then Error 6, then Error 5 with FaultAct = 1C34 hex — maps as follows:

SINA_POS Error Meaning Typical trigger
0 No error / done Successful completion
5 Drive fault F07220 or any other active drive fault read via ZSW1
6 Switching-on inhibited active OFF1/OFF2/OFF3 present; STW1.0 and pulse enable not yet aligned
7 Drive not ready Line Module not ready, encoder not initialised, or DC link not charged

The FaultAct output carries the decoded fault/cause word from the SINA_POS internal buffer. 0x1C34 decomposes as:

  • High byte 0x1C = drive is in "Switching on inhibited" because the OFF1/OFF2 chain is open.
  • Low byte 0x34 = the SINA_POS has detected that ZSW1.0 / ZSW1.1 / ZSW1.2 do not match the requested enable sequence.

This pattern is the SINA_POS equivalent of "the drive was commanded to run but never reached the run state", and it is the most common response when the partner port on one side of the PROFINET IO is missing.

5. Root Cause #1 — Missing PROFINET Partner Port

The user confirmed that the original error 5 / error 6 cycle was resolved by defining the partner port on both the CPU and the S120 in TIA Portal. This is the single most common first-time integration mistake on S7-1200 to S120 links.

CPU side (IO Controller)

  1. In the TIA Portal device view, open the S7-1200 CPU Properties → PROFINET interface.
  2. Assign the PROFINET device name of the S120 Control Unit (the name configured in STARTER / Startdrive) as the IO device in the topology editor.
  3. In Topology view, right-click the S120 port → Assign partner port → select the matching port on the CPU (port 1 in this case).

Drive side (IO Device)

  1. In the S120 STARTER project, the Control Unit's PROFINET interface must have the device name assigned exactly as set in the TIA Portal project (case-sensitive, including hyphens).
  2. If using an SLM/ALM in the same rack, the Line Module's PROFINET interface must also be assigned a partner port, even if no cyclic data is exchanged with it.
Verification check: After assigning the partner port, open Online & Diagnostics on the S120. The PROFINET status must read "Connected" with the controller device name visible. Until this is true, any SINA_POS call will produce FaultAct values in the 1Cxx range.

6. Root Cause #2 — Telegram 111 and HWID 279

The PROFINET slot carrying telegram 111 on the S120 is what SINA_POS writes STW/ZSW through. If the HWID in the FB284 call does not match the slot assigned by TIA Portal, SINA_POS reports drive faults even though the drive is healthy.

Confirming the HWID

  1. Open the device view in TIA Portal → S120 Control Unit → Properties → PROFINET IO → Module parameters.
  2. Locate slot 1 (or whichever slot carries telegram 111). The Hardware identifier field shows the HWID — 279 in the documented case.
  3. Pass this value to the FB284 inputs LaddrSP (setpoint) and LaddrAV (actual value). Both inputs must reference the same HWID for telegram 111 because send and receive PDUs share the slot.
// SINA_POS FB284 call wiring (illustrative)
#SINA_POS(LaddrSP  := 279,   // HWID for telegram 111 - setpoint
          LaddrAV  := 279,   // HWID for telegram 111 - actual value
          ModePos  := 1,     // 1 = relative positioning (test)
          Enable   := TRUE,  // FB284 enable
          Execute  := "Tag_Execute_Toggle",
          RejTrvTsk:= TRUE,
          IntMStop := TRUE,
          Pos     := 1,
          Neg     := FALSE,
          Jog1    := FALSE,
          Jog2    := FALSE,
          FlyRef  := FALSE,
          AckFault:= "Tag_Ack",
          Velocity:= 1000.0,
          OverVAD := 100.0);
Common misconfiguration: Using the HWID of the S120 Control Unit module itself (e.g., 256) instead of the HWID of the telegram-111 sub-module. The HWIDs of the host module and the telegram submodule are always different; only the submodule HWID is valid for SINA_POS.

7. Root Cause #3 — STW1 Enable Signal

Even when the PROFINET link and telegram 111 are correct, the drive will reject any positioning command if STW1 does not carry the expected enable pattern. The S120 expects the following sequence, applied in order:

Step STW1 bits Hex pattern Effect on drive state
1 Bit 10 = 1 (control by PLC) 0x0400 Drive accepts PROFINET control
2 Bit 0 = 1 (ON/OFF1) 0x0401 Drive transitions to "Ready to switch on"
3 Bit 1 = 1 (OFF2 clear) 0x0403 Drive transitions to "Switched on"
4 Bit 2 = 1 (OFF3 clear) 0x0407 Drive transitions to "Operation enabled" — pulse enable permitted
5 Bit 3 = 1 (inverter enable) 0x040F Drive reaches "Run" and accepts motion commands

SINA_POS internally drives these bits via STW1 when the Enable input is set; however, the block also depends on the application setting STW1.Bit15 if the configured drive profile uses it as "External pulse enable" or "Slave-to-slave enable". A common configuration in STARTER is to map STW1 bit 15 to the parameter p0850 via the bit-3-to-p0850 linkage; if the bit is not set in the SINA_POS internal image, the drive never reaches "Operation enabled", and F07220 is logged the next time the drive tries to close the pulse enable.

Diagnostic path

  1. In TIA Portal, place a watch table on the SINA_POS instance DB and inspect SinaPos.sxSendBuf.sxSTW1 at runtime.
  2. Confirm bits 0, 1, 2, 3 are all 1 before Execute is pulsed.
  3. If bit 3 is 0 even after Enable = TRUE, the drive has not signalled readiness in ZSW1 — this is typically a Line Module (SLM/ALM) readiness issue.

8. Step-by-Step Commissioning Procedure

The following sequence, executed in order, resolves the F07220 / FaultAct 1C34 combination in the vast majority of S7-1200 + S120 integrations.

  1. Verify CPU firmware / library compatibility. CPU 1214C FW V1.0 only supports the legacy SINA_POS block (FB284 with V1.x to V2.x internals). Upgrade the CPU firmware or downgrade the SINA_POS library version if TIA Portal installed a newer block.
  2. Assign PROFINET partner port on both sides. Topology view in TIA Portal + PROFINET device name in STARTER / Startdrive must match.
  3. Configure telegram 111 with HWID 279 (or whatever value your slot configuration yields). Pass it to LaddrSP and LaddrAV.
  4. Validate enable logic in STARTER:
    • p0840 (OFF1) must be sourced from r889.0 (PROFINET STW1 bit 0).
    • p0852 (OFF3) must be sourced from r889.2 (STW1 bit 2 inverted).
    • p0850 (pulse enable) must be sourced from r889.3 (STW1 bit 3) AND the inverter enable bit configured in the expert list.
  5. Check the Line Module: If using a Smart Line Module, confirm r863.0 (Line Module ready) is fed into the drive enable chain. The drive will refuse to close the pulse enable until the DC link is charged.
  6. Place SINA_POS in test mode first. Use ModePos = 0 (speed control) with Execute as a toggle bit to confirm that the basic enable sequence closes. If Error = 0 and the motor responds, the PROFINET and enable wiring is correct.
  7. Move to relative positioning (ModePos = 1), then absolute (ModePos = 2), then homing (ModePos = 4). Only progress when the previous mode is stable.
  8. Monitor FaultAct continuously in a watch table. Any non-zero FaultAct points to the block's internal cause buffer — decode via the SINA_POS documentation table.

9. Speed Control Test Mode (Recommended First Validation)

The discussion recommended the following wiring for the initial test before any position-mode operation. This is the recommended pattern because it bypasses encoder and reference-point dependencies and verifies only the enable + PROFINET chain:

SINA_POS input Test value Reason
ModePos 0 Speed control, no encoder dependency
RejTrvTsk 1 Reject traverse task on rising edge of Execute
IntMStop 1 Intermediate stop — drive stops but stays in operation
Pos / Neg 1 / 0 Direction selection for jog/test run
Jog1 / Jog2 0 / 0 No jog mode in this test
FlyRef 0 No flying reference
AckFault Tag reset Fault acknowledge on rising edge
Execute Toggle bit Avoid continuous re-triggering
Positioning 0 Speed mode
Velocity Variable (e.g. 500 rpm) Safe initial speed
OverVAD 100.0 100% override of velocity / accel / decel
LaddrSP / LaddrAV 279 Telegram 111 HWID

If the drive accelerates to the requested speed under this wiring without raising F07220, the PROFINET partner port, telegram HWID, and STW1 enable chain are all confirmed correct. Subsequent steps can then build position control on top of a known-good foundation.

10. Position Modes

ModePos value Mode Prerequisite Notes
0 Speed control (jog) None Used for commissioning
1 Relative positioning Encoder configured, units consistent Position values are incremental
2 Absolute positioning Reference point set (homed) Position values refer to machine zero
3 Setup / setup mode None Manual travel for commissioning
4 Homing / reference point setting Reference cam / zero mark wired Run once before absolute positioning
5 Flying referencing Master value telegram or equivalent Used for synchronised axes

The documented case confirms ModePos = 4 must run before ModePos = 2. Attempting absolute positioning without a successful reference will produce a ZSW1 "referenced" bit of 0, which SINA_POS interprets as a fault and re-arms F07220 on the next cycle.

11. Fault / Symptom Reference Matrix

Symptom Likely root cause First check
Error 5 immediately on first call PROFINET link not established / partner port missing Online & Diagnostics on S120
Error 6 after Error 5 Switching-on inhibited state held by drive ZSW1 bits 0, 1, 2, 5, 6
FaultAct = 1C34 hex Enable pattern in STW1 does not match drive readiness STW1 Bit 3 and p0850 linkage
F07220 only on first Execute STW1 pulse enable arrives before OFF1 Re-order Enable inputs in SINA_POS
F07220 recurring every 1 second Line Module not ready / DC link undervoltage SLM/ALM status and p0860
Drive runs in test mode but fails in position mode Encoder not referenced or HW limit hit ZSW1 bit 13 (referenced) and p0410
FB284 Error 1 PROFINET bus error or telegram mismatch HWID and slot consistency
Drive acknowledges but Error 5 returns AckFault rising-edge timing or fault persistence in drive Inspect drive fault buffer detail

12. Verification Checklist After Repair

  1. S120 fault buffer is empty after a 60-second idle period.
  2. SINA_POS Error = 0 and FaultAct = 0 for at least one minute in speed control mode.
  3. The drive accelerates, holds, and decelerates without raising F07220.
  4. Relative positioning (ModePos = 1) completes with Done = TRUE.
  5. Homing (ModePos = 4) sets ZSW1.13 to 1 and writes a non-zero value to r2521.
  6. Absolute positioning (ModePos = 2) executes to the requested setpoint and stops within tolerance.
Documentation pointers: For the SINAMICS S120 parameter list (LH1) and fault code definitions, refer to the official Siemens List Manual on the Siemens Industry Online Support. For the SINA_POS block state diagram and cause-code mapping, use the application example for "Positioning with SINAMICS S/G with SIMATIC S7-1200 via PROFINET" on the same portal. The TIA Portal help includes a chapter on configuring the SINAMICS S120 as a PROFINET IO device in the device configuration of an S7-1200 / S7-1500 controller; this is the same configuration path that defines the partner port.

What does F07220 mean on a SINAMICS S120 drive?

F07220 belongs to the S120 controller-level fault group. It is logged when the S120 receives a closed-loop enable (OFF1) without the corresponding pulse enable, when the PROFINET partner port is not configured, when the Line Module DC link is not yet ready, or when STW1 bits 0–3 are toggled in a sequence that violates the S120 state machine. The fault is acknowledgeable, so pressing FN clears the buffer — but it will reappear on the next motion command until the underlying cause is corrected.

Why does SINA_POS report Error 5 first and then Error 6?

SINA_POS reads the S120 fault word at the start of each call. If a drive fault is active (e.g., F07220), it reports Error 5 (drive fault). After acknowledgement the drive enters the "Switching-on inhibited" state, which SINA_POS reports as Error 6. Once the SINA_POS Enable input is held TRUE and Execute is toggled again, the drive will either close the enable chain cleanly (Error = 0) or fail again with the same FaultAct value.

What does SINA_POS FaultAct = 1C34 hex mean?

FaultAct 1C34 decomposes into high byte 0x1C (drive in "Switching on inhibited" because the OFF1/OFF2 chain is open) and low byte 0x34 (ZSW1 status bits do not match the requested STW1 enable pattern). It is the SINA_POS internal label for "the drive was commanded to run but never reached the run state" and is typically the result of a missing PROFINET partner port or a missing STW1 bit 3 (inverter enable).

Which telegram should I use with SINA_POS and what is the HWID?

Use standard telegram 111 for the SINA_POS library block on S7-1200 / S7-1500 controllers. In the documented configuration the HWID of the telegram-111 submodule was 279; pass that value to both the LaddrSP (setpoint) and LaddrAV (actual value) inputs of FB284. The HWID is found in TIA Portal under the S120 Control Unit → PROFINET IO → Module parameters, on the slot that carries telegram 111.

Why does S7-1200 FW V1.0 cause SINA_POS problems?

The S7-1200 CPU 1214C with firmware V1.0 is from the early S7-1200 generation. It only supports the original (legacy) SINA_POS library block. If TIA Portal installs a newer version of SINA_POS into the project, the block may produce Error 5 because its internal interface or state machine differs from what FW V1.0 of the CPU supports. Either upgrade the CPU firmware to a current S7-1200 version or install the legacy SINA_POS library that matches V1.0.

How do I configure the PROFINET partner port between S7-1200 and S120?

In TIA Portal, open the device view and the topology editor. Select the S120 PROFINET port, right-click → Assign partner port, and choose the matching port on the S7-1200 CPU (typically port 1). Then assign the PROFINET device name of the S120 Control Unit from the TIA Portal project to the physical Control Unit using STARTER / Startdrive or the S120 web server. Both sides must agree, and the device name is case-sensitive.

What is the recommended first test before using SINA_POS for positioning?

Use ModePos = 0 (speed control) with Execute as a toggle bit, RejTrvTsk = 1, IntMStop = 1, Pos = 1, Neg = 0, Jog1 = Jog2 = 0, FlyRef = 0, AckFault driven by a separate reset tag, Velocity = a safe rpm value, and OverVAD = 100.0. If the drive runs without raising F07220, the PROFINET partner port, telegram HWID, and STW1 enable chain are all confirmed. Then move to ModePos = 1 (relative), ModePos = 4 (homing), and finally ModePos = 2 (absolute).

Back to blog