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.
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
- 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. - Reset any active faults. Set STW1 to
0x0080(fault acknowledge only) for one bus cycle, then drop back to0x0000. Verify ZSW1 bit 3 (fault present) reads 0. - Stage the run enable. Set STW1 to
0x047Efor at least one bus cycle. The drive transitions from S1 "Switching on inhibited" to S2 "Ready for switching on". ZSW1 should read0x0E21(bits 0, 1, 6, 9 set). - Set the operation-enabled bit. Transition STW1 to
0x047F(forward) or0x0C7F(reverse). ZSW1 should now read0x0F31within the ramp time (P1120). The motor accelerates to the speed commanded by HSW. - Adjust the speed by writing HSW. For 50 Hz operation at half speed, write
0x2000. For full speed, write0x4000. For full reverse, write0xC000together with STW1 =0x0C7F. - To stop, write STW1 =
0x047E(OFF1 ramp stop). The drive ramps down via P1121. To coast, write0x047D(bit 1 cleared → OFF2). To quick-stop, write0x047B(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.
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.