Resolving F0070 on Siemens MM420 PROFIBUS: Migration Guide

David Krause17 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

Problem Overview: F0070 After MICROMASTER Vector to MM420 PROFIBUS Migration

Replacing a damaged Siemens MICROMASTER Vector drive (catalog 6SE3290-0XX87-8PB0 module) with a MICROMASTER 420 (MM420) on an existing SIMATIC S7-316-2DP PROFIBUS network is a common retrofit scenario in brownfield plants. The replacement unit communicates through a PROFIBUS option board catalog 6SE6400-1PB00-0AA0. After commissioning the new drive, the most frequent failure mode is a hard F0070 fault that prevents the MM420 from being controlled by the PLC, even though the PROFIBUS LED on the option board may report a green, healthy bus link.

The fault cascades in two phases:

  1. Initial F0070 trip on every start attempt, caused by telegram monitoring timeout (parameter P2040 too aggressive versus the STEP 7 PROFIBUS OB cycle).
  2. Once P2040 is relaxed, F0070 clears but the drive still does not run. The PLC diagnostic buffer flags an I/O access error at PEB/PAB address 256, and the drive's r0052 status word shows bit 0 (Drive ready) toggling while r0054 control word never asserts bit 0 (ON/OFF1).

This article resolves both phases with a complete parameter, control-word, and hardware configuration reference, including the migration deltas between MICROMASTER Vector (MM V) and MM420 control interfaces.

F0070 Fault Code Technical Definition

F0070 on MM420, MM430, MM440, and SINAMICS G120 (CU240x-DP) means Communication Board (CB) telegram failure. The internal CB watchdog, configured by P2040, expires because the expected cyclic PZD telegram was not refreshed within the configured interval. The drive responds by coast-stop (OFF2) and latches F0070. A fault acknowledge (rising edge on control word bit 7, or digital input on P2103...P2106) is required to clear the latch.

Attribute Value
Fault number F0070
Fault class Class 4 (drive coasts to stop, latch)
Default reaction OFF2 (coast stop) via BICO r2090.15
Acknowledge via CW bit 7 rising edge, terminal, or P2103P2106
Trigger parameter P2040 (CB telegram failure time, ms)
Related parameter P2041 (CB parameter assignment / PPO selection on legacy MM4)

Additional related faults on the same family include F0071 (USS/Modbus link failure on COM link) and F0072 (SLT/USS timeout on the OP/USS interface). On a PROFIBUS migration, F0070 is the dominant signature.

Root Cause: PROFIBUS Communication Board (CB) Configuration

Five contributing causes must be cleared in sequence before the drive will accept a start command from the PLC:

  1. P2040 set below PROFIBUS cycle time. The default P2040 = 20 ms is below the typical STEP 7 DP cycle (often 50–100 ms) when the bus runs at 1.5 Mbit/s and contains multiple slaves. The CB watchdog trips on the first minor bus jitter.
  2. Mismatch between the new MM420 GSD file and the existing HW Config slot. The MM V (6SE3290-0XX87-8PB0) and MM420 (6SE6400-1PB00-0AA0) use different GSD/GSX files. Continuing to use the old GSD after hardware swap leaves the slot in module error state; the PLC raises I/O access fault at PEB/PAB 256.
  3. DIP switch versus P918 priority. On 6SE6400-1PB00-0AA0, the rotary/DIP switches define the slave address, and P918 is read-only when the switches are non-zero. With all DIPs OFF, the PROFIBUS address is taken from P918 only. Mismatch between HMI/STARTER value and the HW Config slave address will cause the PLC to communicate with a non-existent device and trigger I/O access errors.
  4. Wrong PPO type selected. MM V can be configured for PPO1 (4 PKW + 2 PZD) or PPO3 (0 PKW + 2 PZD). The MM420 default mapping expects PPO1. Selecting PPO3 in HW Config breaks the assumed PKW channel offset and corrupts PZD decode.
  5. Command source (P0700) and setpoint source (P1000) not set to CB. The MM420 ships with command source set to terminal default (P0700 = 2). The PROFIBUS CW1 cannot start the drive until P0700 = 6 (CB on COM link) and P1000 = 6 (CB setpoint) are active.

Prerequisites Before Parameter Configuration

  • Starter / DriveMonitor (or STARTER V5.x) installed on engineering PC and online with the MM420 via RS485 or PROFIBUS.
  • STEP 7 V5.5 (or TIA Portal with GSD import) project containing the new MM420 GSD file SIEM8044.GSD for MM420 PPO1.
  • PLC in STOP, with the program consistency check pre-validated against the new HW Config.
  • DIP switches on the 6SE6400-1PB00-0AA0 module physically set to OFF (0) so P918 is the active address source.
  • Bus termination verified (resistor ON at both physical ends only).
Safety: Isolate the motor mechanically, ensure P0003 = 3 (expert access) and P0010 = 0 (drive parameter set active) before editing. Lock-out/tag-out the line contactor. F0070 latches OFF2; verify the drive is at zero speed before re-energising.

Step-by-Step Parameter Configuration

Apply the following values using Starter/DriveMonitor. After each change, the drive must be saved via P0971 = 1 for volatile parameters, or a full P0010 = 30, P0970 = 1 factory reset followed by a re-commissioning if migrating from a project that contained an MM V.

  1. Set the PROFIBUS slave address: P0918 = 10 (matches the STEP 7 HW Config slot 10).
  2. Set the CB telegram monitoring time: P2040 = 1000 ms (1 s). Recommended range for non-safety PP1 cycles: 500–2000 ms. Do not exceed 5000 ms; safety-related monitoring requires a separate SIL path.
  3. Set command source to PROFIBUS CB: P0700 = 6 (CB on COM link).
  4. Set setpoint source to PROFIBUS CB: P1000 = 6.
  5. Select the PPO type on the CB (legacy MM4): P2041 = 0 for PPO1 (4 PKW + 2 PZD), or P2041 = 1 for PPO3 (0 PKW + 2 PZD). Use PPO1 unless the existing PLC program exclusively uses process data and never reads parameters.
  6. Configure BICO command routing (P840–P852) per the table below.
  7. Set ramp times: P1120 = 10 s (ramp-up), P1121 = 10 s (ramp-down) for a conservative first run.
  8. Set motor data: P0304 (rated voltage), P0305 (rated current), P0307 (rated power), P0310 (rated frequency), P0311 (rated speed). Perform auto-tune: P1910 = 1, then issue an OFF1/ON1 cycle.
  9. Save: P0971 = 1.

PROFIdrive Control Word and Status Word Decoding

MM420 implements the PROFIdrive Standard Telegram 1 (formerly PPO1) on the first two PZD words of the PZD2 channel:

Direction Word Content MM420 parameter
PLC → Drive PZD1 (receive word 1) STW1 (Control Word 1) r2050[0] = CW1
PLC → Drive PZD2 (receive word 2) NSOLL (Speed setpoint, normalized 0x4000 = 100 %) r2050[1] = main setpoint
Drive → PLC PZD1 (send word 1) ZSW1 (Status Word 1) r2051[0] = SW1
Drive → PLC PZD2 (send word 2) NIST (Speed actual, normalized) r2051[1] = actual value

STW1 (Control Word 1) — Bits per PROFIdrive Profile 1

Bit Symbol Function
0 ON/OFF1 0 = OFF1 (ramp-down, then pulse inhibit); 1 = ON, run enable
1 OFF2 0 = coast stop (highest priority); 1 = no coast stop
2 OFF3 0 = quick stop (ramp P1135); 1 = no quick stop
3 Enable Operation 1 = enable inverter pulse (logical AND with bit 0)
4 Enable Ramp Generator 1 = ramp output enabled
5 Unfreeze Ramp Generator 1 = ramp resumes; 0 = ramp output frozen
6 Enable Setpoint 1 = main setpoint accepted at ramp input
7 Fault Acknowledge 0→1 rising edge acknowledges pending faults
8 JOG 1 Jog bit 1 (also wired via P1058)
9 JOG 2 Jog bit 2 (wired via P1059)
10 Control by PLC 1 = PLC owns control; 0 = no control (fieldbus disengaged)
11 Reverse 1 = negative rotation
12…15 Reserved / vendor Use per profile; MM420 ignores vendor bits by default

For a forward run, the PLC must issue the two-step sequence described in the MICROMASTER PROFIBUS optional board manual:

  1. Send STW1 = 0x047E (binary 0000 0100 0111 1110) — bits 1–6 set, bit 0 = 0. This transitions the drive from Switching On Inhibited to Ready For Switch On.
  2. Send STW1 = 0x047F (binary 0000 0100 0111 1111) — bit 0 transitions 0→1, which the drive interprets as the rising edge required to enter Operation Enabled.

For forward run at 12.5 Hz (setpoint scaling 0x4000 = 50 Hz), send PZD2 = 0x1000; for 50 Hz, send PZD2 = 0x4000. The full PZD2 frame for a 12.5 Hz forward run is therefore 0x047F 0x1000 (PZD1 first, PZD2 second on the wire, little-endian per word). The standard "run at nominal" frame is 0x047F 0x4000.

ZSW1 (Status Word 1) — Bits per PROFIdrive Profile 1

Bit Symbol Function
0 Ready To Switch On 1 = mains present, electronics initialised, no fault
1 Ready To Operate 1 = STW1 bit 0 = 0 received (awaiting ON command)
2 Operation Enabled 1 = output stage pulsing, drive following setpoint
3 Fault Present 1 = active latched fault (Fxxxx)
4 OFF2 Active 0 = coast command active (blocked)
5 OFF3 Active 0 = quick stop active
6 Switch On Inhibited 1 = requires STW1 bit 0 transition to leave inhibit
7 Alarm Present 1 = non-latching warning active (Axxxx)
8 Speed Setpoint-Actual Deviation 1 = deviation within tolerance (P2165 window)
9 Control Requested 1 = drive requests PLC to assume control
10 f ≥ Comparison Value 1 = |n_act| ≥ P2167
11 I, M, P Limit 1 = current/torque/power at limit
12 Motor Holding Brake 1 = brake released
13 Motor Overload 1 = thermal warning
14 Motor CW Rotation 1 = positive speed (clockwise)
15 Reserved / Energy Saving Vendor-specific

The status value reported in the source — r0052 = 111110100011001 (binary, read LSB right) — decodes as:

  • Bit 0 = 1 (Ready to switch on)
  • Bit 3 = 0 (No active fault — F0070 cleared)
  • Bit 6 = 0 (Switch-on inhibit cleared)
  • Bit 14 = 1 (Motor rotation direction detected)

Combined with the control word r0054 = 0100010001111110, bit 0 = 0 (OFF1 asserted). The PLC is sending 0x044E rather than the required 0x047E/0x047F sequence, so the drive accepts only the OFF2/OFF3=OK, Enable Operation, Enable Ramp, Unfreeze, Enable Setpoint pattern, but never receives the ON command. This is the second-phase symptom — F0070 is gone, but the drive stays in Ready For Switch On state and never transitions to Operation Enabled.

BICO Parameter Mapping: P840 to P852

With P0700 = 6 and P1000 = 6, the MM420 routes PROFIBUS STW1 bits to digital control functions via the BICO parameter set P840…P852. The default values are already PROFIdrive-correct on a stock MM420 firmware ≥ 1.31, but a migration reset wipes them. Validate each one.

Parameter Function Required Value Comment
P0840 Source for ON/OFF1 (CW bit 0) 722.0 (PZD receive word 1, bit 0) Drives r0054.0 to STW1 bit 0
P0842 Source for ON/OFF1 reverse (CW bit 11) 722.11 Optional, only if reverse via CW bit 11
P0844 Source for OFF2 (CW bit 1 inverted) 722.1 0 = coast; 1 = no coast
P0845 Source for OFF2 second 1 (always true) Disable secondary OFF2 input
P0848 Source for OFF3 (CW bit 2 inverted) 722.2 0 = quick stop; 1 = no quick stop
P0849 Source for OFF3 second 1 Disable secondary OFF3 input
P0852 Source for Pulse Enable (CW bit 3) 722.3 1 = inverter output stage enabled
P0861 Source for Ramp Enable (CW bit 4) 722.4 1 = ramp output allowed
P0862 Source for Unfreeze Ramp (CW bit 5) 722.5 1 = ramp resumes from frozen state
P1140 Source for RFG Start (CW bit 6) 722.6 1 = setpoint admitted to ramp
P2103 Source for Fault Acknowledge (CW bit 7) 722.7 Rising edge clears latched faults
Critical: The user asked specifically about P840–P852. On the MM420 firmware, only the even-numbered P0840, P0842, P0844, P0848 indices are valid command-source parameters. P0841, P0843, P0845, P0846, P0847, P0849, P0850, P0851 do not exist; attempting to write them returns error 1 (parameter does not exist). P0852 is Pulse Enable, not a "P0852 in P0840–P0852 family" alias. Validate each parameter after writing; if Starter reports "Parameter does not exist" the firmware is below the BICO minimum or the index is reserved.

S7-316-2DP Hardware Configuration with GSD File

Use STEP 7 HW Config to install the MM420 GSD file SIEM8044.GSD and configure slot 10 (or whichever PROFIBUS address matches P0918). The slot occupies a PPO1 image: 4 PKW words (input + output, address offset 0–7) and 2 PZD words (input + output, address offset 8–11). Confirm the I/O start addresses in the slot properties:

Channel Length Default PAB / PIB Default PEB / PEB
PKW 8 bytes (4 words) 256–263 256–263
PZD 4 bytes (2 words) 264–267 264–267

The PLC diagnostic "I/O access error 256" reported in the user's buffer indicates the slot exists in HW Config at the right address, but a PKW read (SFC 59 / SFB 53) is targeting the PZD range — the PKW channel was skipped. The fix is to address PZD explicitly at PEB 264 (ZSW1) and PEB 266 (NIST) on the receive side, and to write PAB 264 (STW1) and PAB 266 (NSOLL) on the send side. The L/T access to PKW requires a DPVO read/write (DPRD/DDWR / DPWR_DAT) on bytes 256–263.

After GSD install, recompile HW Config, download to the CPU, and STOP→RUN the CPU. The OB82 (I/O fault) diagnostic must clear before any subsequent test.

Diagnostics: Reading r2050 and Identifying Telegram Errors

The r2050 values reported in the source — r2050[0] = 17534 and r2050[1] = 8304 — are the most recently received PZD1 and PZD2 words. Decoded:

Parameter Decimal Hex Binary Meaning
r2050[0] 17534 0x447E 0100 0100 0111 1110 STW1 — CW bit 10 set (PLC requests control), bit 0 = 0 (OFF1 = OFF). The PLC has authority but never asserts ON.
r2050[1] 8304 0x2070 0010 0000 0111 0000 NSOLL — speed setpoint 0x2070 = 0x2000 + 0x0070 = 8256 decimal. As % of 0x4000: 47.6 % → ~23.8 Hz on a 50 Hz motor. The setpoint is being sent, but OFF1 blocks the ramp.

Note that 0x2070 for NSOLL is non-standard; typical frames use 0x4000 (100 %) or 0x1000 (25 %). The odd value suggests a derivative HMI/SCADA tag with unit conversion (0x2070 = 8304 in raw counts, possibly a frequency * 16 representation). Confirm the scaling of P2000 (reference frequency) when comparing raw NSOLL to engineering units. The PZD2 issue is secondary; correcting STW1 bit 0 alone will allow the drive to ramp to whatever NSOLL is currently held.

Verification Procedure

  1. Connect Starter / DriveMonitor online. Confirm P0010 = 0 and r0002 = 0 (drive status: drive running = 0; fault = 0; mains on = 1).
  2. Read r0052 in Starter; bit 0 (Ready to switch on) must be 1 and bit 3 (Fault) must be 0.
  3. From a STEP 7 VAT, write a single PZD2 frame to PAB 264: STW1 = 0x047E, NSOLL = 0x0000. Wait 100 ms. Read PEB 264. ZSW1 should be 0x0431 (Ready to switch on, Ready to operate, Switch-on inhibit).
  4. Write the second frame: STW1 = 0x047F, NSOLL = 0x0000. ZSW1 should transition to 0x0233 (Operation enabled, no fault). Setpoint of 0x0000 → 0 Hz.
  5. Write a third frame: STW1 = 0x047F, NSOLL = 0x1000 (12.5 Hz on 50 Hz motor). Confirm motor accelerates to ~12.5 Hz within P1120 seconds; r0021 matches r0020 within P2165 tolerance.
  6. Issue OFF1: STW1 = 0x047E, motor ramps down per P1121. Issue OFF2: STW1 = 0x043E (bit 1 = 0). Motor coasts. Issue OFF3: STW1 = 0x047A (bit 2 = 0). Motor quick-stops per P1135.
  7. Force a fault by disabling P2040 = 5 ms and stopping the PLC for 1 second. Drive should latch F0070; acknowledge with STW1 bit 7 rising edge.
  8. Restore P2040 = 1000 ms and P0971 = 1.

Migration Pitfalls: MICROMASTER Vector to MM420 Differences

The MICROMASTER Vector (6SE32 series) and MM420 share the MM4 control platform but differ in several ways relevant to a brownfield swap:

Attribute MM Vector (6SE3290) MM420 (6SE6400)
Default firmware BICO Pre-mapped to vector control Pre-mapped to V/f; vector control requires P1300 = 2023
Max switching frequency 16 kHz (vector) 16 kHz (V/f), reduced to 4 kHz for sensorless vector (P1300 = 20)
Default PPO type on CB PPO3 (0 PKW + 2 PZD) PPO1 (4 PKW + 2 PZD) default
Default P0700 / P1000 1 (BOP) / 1 (MOP) 2 (terminals) / 2 (analog)
CB watchdog default 20 ms (tight) 20 ms (tight)
Speed feedback encoder option Built-in encoder eval on Vector External encoder module required; closed-loop vector limited
Auto-tune method Static + rotating Static only (P1910 = 1)
PROFIBUS GSD filename SIEM8032.GSD SIEM8044.GSD

If the application relied on sensorless vector closed-loop performance, an MM420 will not match the MM Vector's dynamic response. For a true drop-in upgrade, consider the SINAMICS V20 (basic V/f) or G120C (with vector control via CU240E-2) as a replacement rather than the MM420, which is now an end-of-life, service-only product on the Siemens portfolio.

Related Fault Codes and Recovery

Fault Meaning Common Cause on PROFIBUS Migration
Recovery
F0070 CB telegram failure P2040 too short; PLC STOP; bus connector loose Increase P2040; check connector; check OB1 cycle
F0071 USS link failure (COM) Wrong P2010/P2011 baud; P0700 = 5 on a PROFIBUS-only network Set P0700 = 6 and disable USS
F0072 SLT/USS timeout OP/STP bus interrupted; P2012 set too low Increase P2012 or remove OP bus
A0700…A0709 CB warnings PROFIBUS configuration mismatch Verify GSD, PPO type, address
F0011 Output stage overcurrent Auto-tune not run; motor data wrong Set motor data and run P1910 = 1
F0021 Inverter overcurrent Ramp too fast, motor stalled Lengthen P1120/P1121; check load

Frequently Asked Questions

What does F0070 mean on a Siemens MM420, and is it a PROFIBUS problem or a drive hardware fault?

F0070 is Communication Board (CB) telegram failure. The internal watchdog configured by P2040 expired because the cyclic PZD telegram from the PROFIBUS master stopped arriving within the allowed time. It is a bus/parameter fault, not an inverter IGBT fault. The drive has not damaged itself; it has simply lost its PROFIdrive heartbeat.

What value of P2040 should I use on the MM420 with a STEP 7 S7-316-2DP PROFIBUS network?

For most STEP 7 PROFIBUS DP networks with cycle times of 50–100 ms, set P2040 = 1000 ms (1 second). Avoid leaving the default of 20 ms, which trips on the first bus jitter. Do not exceed 5000 ms; safety-related applications must use a separate safety path, not a longer P2040.

After clearing F0070, my MM420 still does not run from the PLC. What is the most likely cause?

Bit 0 of the PROFIdrive control word (STW1) is the ON/OFF1 command. The PLC must send a two-step transition: 0x047E first to clear the Switch-on Inhibit state, then 0x047F to assert ON. The drive's r0052 (ZSW1) will then show bit 2 = 1 (Operation Enabled). If r0054 (STW1 echo) shows bit 0 = 0, the PLC program is never producing the second word — usually a wrong initialisation value in the VAT or a stale I/O mirror.

Do I need to set the DIP switches on the 6SE6400-1PB00-0AA0 PROFIBUS option board?

On the 6SE6400-1PB00-0AA0, the rotary/DIP switches override P0918 when non-zero. If the switches are all OFF, the address is taken from P0918 and the parameter becomes writable. The source used a DIP-all-OFF configuration, so P0918 = 10 is the active address. The PLC HW Config must have the same PROFIBUS address (slot 10) or the PLC will raise an I/O access error 256.

Which parameters P840–P852 must I set on the MM420 for PROFIdrive control?

Validate the BICO source for ON/OFF1 at P0840 = 722.0, OFF2 at P0844 = 722.1, OFF3 at P0848 = 722.2, and pulse enable at P0852 = 722.3. P0841P0851 in the source's question are mostly reserved; only P0840, P0842, P0844, P0848, P0852 exist as command sources on the MM420. If a parameter write returns "Parameter does not exist", the firmware is below the BICO minimum — upgrade to MM420 firmware ≥ 1.31.

Can I keep the existing MM Vector GSD file (SIEM8032.GSD) in STEP 7 after replacing the drive with an MM420?

No. The MM Vector uses GSD SIEM8032.GSD and the MM420 uses SIEM8044.GSD. Mismatching the GSD will cause the slot to fail to initialise, producing an I/O access fault at the PKW/PZD addresses. Install the new GSD, recompile HW Config, and download to the CPU before resuming PLC–drive communication.

What is the correct STW1 sequence to start a forward-running MM420 from the PLC, and how do I scale the speed setpoint?

Send STW1 = 0x047E followed by 0x047F in two consecutive cycles. PZD2 is the speed setpoint in normalised units: 0x4000 = 100 % of the reference frequency P2000. For 12.5 Hz on a 50 Hz motor, send NSOLL = 0x1000 (25 % of P2000). For 50 Hz, send NSOLL = 0x4000. The combined forward run frame at nominal speed is therefore 0x047F 0x4000 on the wire (PZD1 first, PZD2 second).

Is the MM420 still a supported product for new installations?

The MM420 was announced as end-of-life by Siemens in 2018. New installations should specify the SINAMICS V20 (basic V/f only) or SINAMICS G120C (V/f and vector control) as a functional replacement. The MM420 is still serviced through the spare-parts channel, and parameter procedures described here remain valid for firmware ≥ 1.31. For long-term support, plan the next migration to a current SINAMICS platform.

Back to blog