Resolving MICROMASTER 4 F0070 Fault: PROFIBUS Control Word Setup

David Krause15 min read
SiemensTroubleshootingVFD / Drives
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: F0070 on a MICROMASTER 4 with PROFIBUS DP

A MICROMASTER 420 / 430 / 440 (MM4) drive configured as a PROFIBUS-DP slave stops responding to the PLC. The PLC is sending a control word of 0x1151 (word 1) and a frequency setpoint of 0x4000 (word 2) in the PZD output area, the bus is reported as OK, the parameter set has been validated (P0927), yet the drive trips on F0070 ("No setpoint via telegram") and refuses to run the motor in either direction.

The original parameter set reported in the field is:

Parameter Value Meaning
P0003 3 User access level (Expert)
P0010 0 Drive ready (no commissioning in progress)
P0004 0 All parameters visible
P0700 6 Command source = PROFIBUS
P1000 6 Setpoint source = PROFIBUS
P0918 3 (example) PROFIBUS node address
P2040 100 PROFIBUS monitoring time = 100 ms
P0927 15 Change parameter source / save configuration

The bus cabling, GSD file selection, and the I/O address mapping of the PLC are functional — the drive is exchanging cyclic PZD data, but it rejects the telegram because the control word does not contain the bit pattern the MM4 expects from a PROFIdrive-class master.

2. F0070 Fault Code Reference

F0070 is one of the most common PROFIBUS faults on MM4 inverters. Its definition in the MM420 / MM430 / MM440 parameter list is identical:

Fault number Text Cause Remedy
F0070 No setpoint via telegram (CI: PZD) The drive is configured to receive its setpoint from PROFIBUS (P1000 contains bit 6 set) but the cyclic PZD telegram does not enable the drive to run (control word bits 0, 3, 10 not set) or has been interrupted longer than the time in P2040. Connect PROFIBUS master, check telegram wiring, set control word bits 0, 3, 6, 10 = 1, raise P2040 if bus is jittery.
F0071 No setpoint via USS (CI: USS on COM link) USS telegram timeout Check USS master

The fault is latched. A rising edge on STW1 bit 7 (fault acknowledge) clears F0070, but if the underlying control word is still invalid the drive will trip again on the next PROFIBUS cycle.

3. Root Cause: Decoding the 0x1151 Control Word

The control word the user is transmitting to PZD word 1 is 0x1151. Bit-decoded against the PROFIdrive profile used by MM4 (profile 1, application class 1, "speed control"):

Bit Name 0x1151 Required to run
0 ON / OFF1 1 ✓ 1
1 OFF2 (coast stop) 0 ✓ 1 (no coast)
2 OFF3 (quick stop) 1 ✓ 1 (no quick stop)
3 Enable operation (pulse enable) 0 ✗ 1
4 Enable ramp generator (RFG) 1 ✓ 1
5 Unfreeze / start RFG 0 ✗ 1
6 Setpoint enable 0 ✗ 1
7 Fault acknowledge 0 0 (rising edge to ack)
8 JOG right 1 ✗ 0
9 JOG left 0 ✓ 0
10 Control by PLC (master sign of life) 0 ✗ 1
11 Reverse (setpoint inversion) 0 0 = forward, 1 = reverse
12 Motor potentiometer UP 1 ✗ 0
13 Motor potentiometer DOWN 0 0
14 Reserved 0 0
15 Reserved 0 0

Five bits are out of spec: bit 3 (no pulse enable), bit 5 (RFG held at zero), bit 6 (setpoint not enabled), bit 8 (JOG right pulled in), bit 10 (PLC is not signalling control), and bit 12 (MOP up). The MM4 state machine cannot transition past state S2 "Ready" into S3 "Operation enabled", and it raises F0070 because, from its perspective, no valid control word is being received — only a partial word with JOG and MOP commands.

Engineering rule: on the MM4, STW1 bit 10 is the unambiguous "I am the master and I take responsibility" bit. If bit 10 = 0 the drive will never enter the running state, regardless of how the other bits are set. This is the single most common cause of F0070 in field installations.

4. MM4 PROFIBUS PZD Telegram Structure

The MM4 PROFIBUS option module (order number 6SE6400-1PB00-0AA0) defaults to the standard telegram 1 with 4 PZD words (2 OUT / 2 IN). The default PPO type is PPO1 (4 PKW + 2 PZD). Selecting a different PPO type in HW Config does not change the bit semantics of the PZD words; it only adds or removes the parameter channel (PKW).

Word Direction Name Function
PZD1 OUT PLC → drive STW1 Control word 1 (16 bits, run / stop / direction / ack)
PZD2 OUT PLC → drive HSW Main setpoint, frequency reference (normalized, 0x4000 = f_max)
PZD1 IN drive → PLC ZSW1 Status word 1 (16 bits, drive state, faults, direction)
PZD2 IN drive → PLC HIW Main actual value, frequency feedback (normalized, 0x4000 = f_max)

The data sequence STW, HSW, ZSW, HIW is the only sequence the MM4 accepts. Swapping the order of the setpoint and control word will be silently accepted by the bus, but the drive will not run and will likely raise F0070 or F0072. See the official SINAMICS G / MICROMASTER 4: Essentials for PROFIBUS manual for the canonical mapping.

5. Control Word (STW 1) Reference for MM4

The complete, ready-to-use control word table for the MM4 in PROFIdrive profile:

Word (hex) Bits 15..0 Effect
0x0000 0000 0000 0000 0000 OFF1 (controlled ramp stop)
0x0001 0000 0000 0000 0001 ON, OFF2 = coast, OFF3 = coast (drive stays ready)
0x0002 0000 0000 0000 0010 Coast stop (OFF2 active)
0x0004 0000 0000 0000 0100 Quick stop (OFF3 active)
0x047E 0000 0100 0111 1110 RFG held at zero, no run enable (used during commissioning)
0x047F 0000 0100 0111 1111 RUN forward (fwd) at last setpoint
0x0C7F 0000 1100 0111 1111 RUN reverse (rev)
0x05FF 0000 0101 1111 1111 RUN forward + fault acknowledge simultaneously
0x0DFF 0000 1101 1111 1111 RUN reverse + fault acknowledge simultaneously
0x0080 0000 0000 1000 0000 Fault acknowledge only (pulse-edge triggered)

The minimum run word is 0x047F (forward) or 0x0C7F (reverse). Anything that does not have bit 10 = 1 is treated as "no PLC control" by the MM4 state machine and will not start the drive.

6. Status Word (ZSW 1) Reference for MM4

Once the drive is running correctly, the PLC should read ZSW1 and confirm the following pattern before driving the process forward:

Bit Name Expected when running
0 Ready to switch on 1
1 Ready to operate (no OFF2, no OFF3) 1
2 Operation enabled 1
3 Fault present 0
4 OFF2 active 0
5 OFF3 active 0
6 Switch-on inhibit 0
7 Alarm present 0 (1 only if A-code active)
8 Speed setpoint / actual deviation within tolerance 1 when at speed
9 Control from PLC requested 1 (echo of STW1 bit 10)
10 f ≥ f_min reached 1
11 f ≥ f_max reached 1 at setpoint
12 Motor overloaded (I²t) 0
13 Motor direction (0 = fwd, 1 = rev) 0 or 1 per STW1 bit 11
14 Power section OK (Mains OK) 1
15 Inverter overload warning 0

A healthy running MM4 should report ZSW1 = 0x0F31 at setpoint speed. The PLC should mask on bits 0, 1, 2, 9, 10, 11 to confirm the drive has reached the run state.

7. Frequency Setpoint (HSW) Scaling

The main setpoint word HSW is normalized to a 16-bit signed integer:

  • 0x4000 (16384 decimal) = +100 % of P2000 (reference frequency)
  • 0xC000 (-16384 decimal) = -100 % of P2000 (reverse direction)
  • 0x0000 = 0 Hz

P2000 is the reference frequency, typically the motor nameplate frequency (50 Hz or 60 Hz). P2000 should match the motor rated frequency; the setpoint 0x4000 in the original report will command exactly P2000 Hz on the output, regardless of the actual motor rating.

For a 50 Hz motor, sending HSW = 0x2000 commands 25 Hz. For a 60 Hz motor, sending HSW = 0x4000 commands 60 Hz. Always set P2000 explicitly so that the HSW scaling is unambiguous across the fleet.

8. Required Drive Parameters for PROFIBUS Control

Beyond the user's reported set, several additional parameters must be set to make PROFIBUS control functional on MM420 / MM440. The complete list:

Parameter Value Why it is required
P0700 6 Command source = PROFIBUS (digital inputs 1-6 are then ignored)
P1000 6 Setpoint source = PROFIBUS (analog input 1 is then ignored)
P0918 3 (example) PROFIBUS node address (must match HW Config)
P0927 15 Save parameters to drive (15 = save and activate)
P2000 50.00 (or 60.00) Reference frequency for HSW = 0x4000
P2002 50.00 (or 60.00) Reference frequency for HIW feedback
P2040 100 PROFIBUS monitoring time in ms; the drive faults F0070 if no valid PZD arrives in this window
P2041[0] 0 PROFIBUS fault reaction: 0 = current limit / freeze last value, 1 = fault, 2 = OFF2 coast, 3 = OFF3 quick stop
P2051[0] 52 STW1 source connector (default PROFIBUS word 1)
P2051[1] 21 HSW source connector (default PROFIBUS word 2)
P2080[0] 53 ZSW1 output connector (default status word 1)
P2080[1] 22 HIW output connector (default actual frequency)
P1080 0.00 Minimum frequency, in Hz
P1082 50.00 (or 60.00) Maximum frequency, in Hz
P1120 10.00 Ramp-up time, in seconds
P1121 10.00 Ramp-down time, in seconds

After writing these values the parameter set must be saved with P0927 = 15 followed by P0009 = 0 (drive ready) and a power cycle, otherwise the drive will revert to the previous values on the next power-up and F0070 will return.

9. Step-by-Step: Building the Correct Run Word

  1. Verify PROFIBUS communication by reading the bus state on the PLC (e.g., Siemens S7: SFC 13 / SFB 53 "DPNRM_DG" or use the diagnostic buffer in STEP 7). The MM4 must report DP-Slave OK and the LED on the PROFIBUS option module must be solid green.
  2. Reset any active faults. Set STW1 to 0x0080 (fault acknowledge only) for one bus cycle, then drop back to 0x0000. Verify ZSW1 bit 3 (fault present) reads 0.
  3. Stage the run enable. Set STW1 to 0x047E for at least one bus cycle. The drive transitions from S1 "Switching on inhibited" to S2 "Ready for switching on". ZSW1 should read 0x0E21 (bits 0, 1, 6, 9 set).
  4. Set the operation-enabled bit. Transition STW1 to 0x047F (forward) or 0x0C7F (reverse). ZSW1 should now read 0x0F31 within the ramp time (P1120). The motor accelerates to the speed commanded by HSW.
  5. Adjust the speed by writing HSW. For 50 Hz operation at half speed, write 0x2000. For full speed, write 0x4000. For full reverse, write 0xC000 together with STW1 = 0x0C7F.
  6. To stop, write STW1 = 0x047E (OFF1 ramp stop). The drive ramps down via P1121. To coast, write 0x047D (bit 1 cleared → OFF2). To quick-stop, write 0x047B (bit 2 cleared → OFF3).

10. PLC Programming: S7 Sample Using SFC14 / SFC15

The Siemens function block FC14 documented in the official MICROMASTER 4 PROFIBUS example wraps the read and write system functions. The same job can be done with SFC 14 "DPRD_DAT" (read consistent PZD) and SFC 15 "DPWR_DAT" (write consistent PZD) on the configured I/O addresses. A complete STL segment in STEP 7 V5.5:

// Inputs / outputs in the PLC's process image
// PIB 256..263   : 2 PZD words received from MM4 (ZSW1, HIW)
// PQB 256..263   : 2 PZD words sent to MM4 (STW1, HSW)
// DB10.DBX0.0    : User command "Run forward"
// DB10.DBX0.1    : User command "Run reverse"
// DB10.DBX0.2    : User command "Fault acknowledge"
// DB10.DBD4      : User speed setpoint, REAL Hz

// --- Build the control word ---
L 0
T DB10.DBW 12       // STW1 placeholder

// Bit 0  ON/OFF1
A DB10.DBX 0.0
= DB10.DBX 12.0
A DB10.DBX 0.1
= DB10.DBX 12.0

// Bit 1  OFF2 (1 = no coast)
SET
= DB10.DBX 12.1

// Bit 2  OFF3 (1 = no quick stop)
SET
= DB10.DBX 12.2

// Bit 3  Enable operation
A DB10.DBX 0.0
O DB10.DBX 0.1
= DB10.DBX 12.3

// Bit 4  Enable ramp generator
A DB10.DBX 0.0
O DB10.DBX 0.1
= DB10.DBX 12.4

// Bit 5  Unfreeze ramp generator
A DB10.DBX 0.0
O DB10.DBX 0.1
= DB10.DBX 12.5

// Bit 6  Setpoint enable
A DB10.DBX 0.0
O DB10.DBX 0.1
= DB10.DBX 12.6

// Bit 10 Control by PLC (mandatory)
SET
= DB10.DBX 13.2     // DB10.DBW12 bit 10 = byte 13 bit 2

// Bit 11 Reverse
A DB10.DBX 0.1
= DB10.DBX 13.3

// Bit 7  Fault acknowledge (rising edge)
A DB10.DBX 0.2
FP DB10.DBX 14.0
= DB10.DBX 12.7

// --- Scale the speed setpoint to 0x4000 = P2000 ---
L DB10.DBD 4        // speed in Hz, REAL
L 1.638400e+4       // 0x4000
*R
L 5.0e+1            // P2000 (or use P2000 from parameter)
/R
RND
T DB10.DBW 14       // HSW

// --- Write 4 bytes to drive via SFC 15 ---
CALL SFC 15
  LADDR   := W#16#100     // configured I/O start address
  RECORD  := P#DB10.DBX 12.0 BYTE 4
  RET_VAL := MW 20

// --- Read 4 bytes from drive via SFC 14 ---
CALL SFC 14
  LADDR   := W#16#100
  RET_VAL := MW 22
  RECORD  := P#DB10.DBX 16.0 BYTE 4

For a TIA Portal equivalent using the DPRD_DAT / DPWR_DAT instruction blocks, the same address pair is used and the DB layout is unchanged. The fully developed Siemens Industry Online Support example for FC14 is downloadable under entry ID 8894584.

11. Verification and Commissioning Checklist

Run through this matrix in the order given. Every check must pass before the drive is handed over to production.

# Check Pass criterion Diagnostic
1 PROFIBUS slave online Green LED on option module solid; S7 "DP slave diagnostics" = OK STEP 7 → PLC → Diagnostics/Setting → PROFIBUS
2 Bus cycle time < P2040 Typical 5 ms, P2040 = 100 ms Step 7 → HW Config → DP slave → properties
3 F0070 cleared STW1 bit 7 rising edge → ZSW1 bit 3 = 0 Drive display or P2051[0] readout
4 Stage 0x047E ZSW1 = 0x0E21 (ready, no fault, no inhibit) PLC watch table on PIB 256
5 Stage 0x047F ZSW1 = 0x0F31 (operation enabled, at speed) PLC watch table on PIB 256
6 Direction reversal STW1 = 0x0C7F → ZSW1 bit 13 = 1, motor reverses smoothly Visual + current probe
7 Speed range HSW = 0x4000 → HIW = 0x4000 ± tolerance, motor at P2000 Hz Drive keypad r0021 / r0024
8 OFF1 stop STW1 = 0x047E → drive ramps to 0 via P1121 Drive keypad r0021
9 OFF2 coast STW1 bit 1 = 0 → drive removes pulses, motor free-wheels Drive keypad r0021
10 OFF3 quick stop STW1 bit 2 = 0 → drive ramps to 0 via P1135 Drive keypad r0021
11 PROFIBUS timeout Pull PROFIBUS connector → drive trips F0070 after P2040 = 100 ms Drive fault log r0947[0]
12 Persisted parameters Power cycle the drive → P0700 = 6, P1000 = 6, P2000 = 50.00 Drive keypad or STARTER

12. F0070 and Related PROFIBUS Fault Matrix

When an MM4 reports an F-code over PROFIBUS, the fault is also written into drive parameter r0947 and the corresponding STW1 / ZSW1 bit pattern in the cyclic PZD data:

Fault Description Typical cause Bit to set in STW1 to clear
F0070 No setpoint via telegram PROFIBUS gap, STW1 bit 10 = 0, telegram not consistent Bit 7 rising edge
F0071 No setpoint via USS USS timeout on COM link Bit 7 rising edge
F0072 No setpoint via USS on COM link Same as F0071 but COM link is set as the active source Bit 7 rising edge
F0080 Analog input signal lost (P0757 / P0758) Broken wire, P1000 includes analog input 1 / 2 and value < 2 V Bit 7 rising edge
F0085 External fault External trip terminal triggered Bit 7 rising edge

F0070 is the only one in this group that is purely a PROFIBUS control issue. If the drive is in F0071 / F0072, P1000 must be revisited to remove the USS source bit.

Safety reminder: all F-codes on the MM4 are latched faults. Before re-energising the drive, confirm the STW1 control word is in a known safe state (e.g. 0x0000) and that the controlled motor will not start unexpectedly. On machines where reverse rotation can damage the process, hardware interlock the line contactor and verify with a local E-stop button before returning to remote control.

13. Frequently Asked Questions

What is the correct control word to run a MICROMASTER 4 forward over PROFIBUS?

Send STW1 = 0x047F to PZD word 1. This sets bits 0, 1, 2, 3, 4, 5, 6, 10 to 1 (ON, no OFF2, no OFF3, pulse enable, RFG enable, RFG start, setpoint enable, PLC control). For reverse, set bit 11 too, giving 0x0C7F. Anything with bit 10 = 0 will not run.

Why does the drive keep tripping F0070 even though the bus is OK?

F0070 is raised when the drive has PROFIBUS as the setpoint source (P1000 contains bit 6) and either no valid control word is received or the time in P2040 elapses without a valid PZD telegram. Check that STW1 bit 10 = 1, that the PLC is writing to the correct I/O address, and that bus cycle time is well below P2040 (default 100 ms).

What is the scaling of the frequency setpoint word (HSW)?

HSW is a signed 16-bit word where 0x4000 (16384 decimal) equals +100 % of parameter P2000 (reference frequency). For a 50 Hz motor with P2000 = 50.00, HSW = 0x2000 commands 25 Hz. Reverse speed is commanded with negative values, e.g. 0xC000 for full reverse.

What does status word 0x0F31 indicate?

ZSW1 = 0x0F31 means the drive is in the running state, at setpoint speed, with no faults or warnings. Bit fields 0, 1, 2, 9, 10, 11 are set (ready, ready-to-operate, operation-enabled, PLC control, f ≥ f_min, f reached setpoint) and bit 3 (fault) is clear.

How do I switch direction (forward / reverse) over PROFIBUS?

With the drive running (STW1 = 0x047F for forward), set bit 11 of the control word to 1, i.e. STW1 = 0x0C7F. The drive reverses without stopping if the setpoint is bipolar and P1110 (setpoint negation inhibit) is set to 0. The status word bit 13 (ZSW1) echoes the actual direction: 0 = forward, 1 = reverse.

Back to blog