Siemens Micromaster MM4 Fixed Frequency via Digital Inputs

David Krause18 min read
SiemensTechnical ReferenceVFD / 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

Siemens Micromaster MM4 Fixed Frequency via Digital Inputs: Complete Engineering Reference

Field summary. When a PLC already exposes spare 24 V DC digital outputs, the cheapest and most deterministic way to step a Siemens Micromaster MM4 (MM420 / MM430 / MM440) through a finite set of motor speeds is to drive the drive's digital inputs from those outputs and let the drive itself do the setpoint arithmetic. This article documents the parameter set required to do that, the two selection modes (direct and binary-coded), the wiring topology, ramp behavior, and the failure modes you should expect during commissioning. Reference is made throughout to the MM4 parameter list documented in the Micromaster MM440 Operating Instructions and the Micromaster 4 Parameter List.

Safety note. Even when the speed setpoint is fixed inside the drive, the drive still requires a hardware start command (typically DIN1 wired to ON/OFF1 or P0701 = 1). A pure binary code on the speed inputs without an ON command will not run the motor. Decouple "run" from "speed selection" wherever the application permits, and wire the safety stop (OFF3 = coast) independently.

1. Overview

The Micromaster MM4 family stores up to fifteen user-defined fixed frequencies (FF1 through FF15, parameters P1001 through P1015) plus an FF0 (P1011) used when no binary bits are asserted. Any of the six digital inputs (DIN1 to DIN6 on the MM440; DIN1 to DIN5 on the MM420) can be linked to one or several of these presets. The link is configured by parameter P0701 through P0706, while parameter P1000 selects "fixed frequency setpoint" as the active source for the speed reference channel. The result is a pure hardware-driven speed ladder that needs no analog cabling, no scaling math in the PLC, and no commissioning of the drive's PID loop.

Two selection schemes are supported and both are described in Siemens Parameter List MM4:

  • Direct selection (P0701..P0706 = 15 or 16): each input directly commands its own fixed frequency. With three inputs you get three independent steps; with four you get four. Simple, but linear: one PLC output per speed.
  • Binary-coded selection (P0701..P0706 = 17): the inputs form a binary number. N inputs give 2^N discrete speed steps. Three inputs cover eight steps, so a four-speed application like 0 / 30 / 60 / 100 % only needs two PLC outputs.

The binary mode is the recommended approach for step-change applications where the PLC already has spare 24 V outputs and the operator only ever selects one of a known finite set of speeds.

2. Prerequisites

  • Siemens Micromaster MM420 (basic, 0.12–11 kW), MM430 (HVAC/pump focus, 7.5–250 kW) or MM440 (high-end, 0.12–75 kW), firmware version 1.x or 2.x. The MM3 (predecessor MM100/MM150/MM300) uses a different parameter layout and is not covered here. Read r0019 on the BOP to confirm firmware; the MM440 FW 2.4 supports P070x = 17 with up to six binary inputs, giving FF1..FF63 in theory, but the firmware itself only stores P1001..P1015 so 16 levels is the practical ceiling.
  • Basic Operator Panel (BOP, order code 6SE6400-0BP00-0AA0) or Advanced Operator Panel (AOP, 6SE6400-0AP00-0AA0) fitted, OR a PC running STARTER commissioning software with the USB-to-RS232 PC-inverter connection kit (6SE6400-1PC00-0AA0).
  • PLC with spare 24 V DC sourcing outputs rated at least 15 mA per channel, or dry contacts and the drive's internal +24 V supply (terminal 9 on MM440, 100 mA shared budget with the encoder and analog outputs).
  • Control terminals on the drive: DIN1..DIN6, the +24 V reference, and 0 V / common. Confirm against the wiring diagram in the operating instructions for the specific model because the MM420 layout differs from MM440.
  • Access level P0003 = 3 (Expert) if fixed frequencies are to be set with two-decimal precision; P0003 = 2 is sufficient for integer Hz values.

3. Drive Parameter Configuration

Configure the drive in this order. The numbering matches the menu structure on the BOP and the parameter tree in STARTER.

3.1 Drive and motor commissioning baseline

Before touching P0700 / P0701 / P1000, run a motor quick-commissioning so the drive knows the motor nameplate data. The minimum set, taken from the MM4 parameter list:

Parameter Value Notes
P0010 1 Quick commissioning context
P0100 0 (Europe, 50 Hz, kW) or 2 (North America, 60 Hz, hp) Match mains and motor units
P0205 0 (high-torque / constant torque) or 1 (variable torque) Selects thermal model
P0300 1 (asynchronous induction) or 2 (synchronous) Motor type
P0304 / P0305 / P0307 / P0308 Motor rated V / A / kW / cos φ From nameplate
P0310 / P0311 Rated frequency / rated speed From nameplate
P0335 Motor cooling (0=self-cooled, 1=forced-cooled) Used for thermal model
P0640 Motor overload factor (%) Typically 150
P0700 2 Terminal command source (set again in 3.2)
P1000 2 Fixed frequency setpoint (set again in 3.2)
P1080 Minimum frequency in Hz, e.g. 0.00 Lower speed limit
P1082 Maximum frequency in Hz, e.g. 50.00 or 60.00 Upper speed limit; matches motor nameplate
P1120 Ramp-up time in s, e.g. 5.0 See Section 6
P1121 Ramp-down time in s, e.g. 5.0 See Section 6
P3900 3 End quick commissioning with automatic motor data calculation

After P3900 = 3, the drive performs an automatic motor data identification the next time it is given an ON command. Allow the motor to run unloaded for a few seconds to complete the identification; the BOP flashes "STOP" until the process completes.

3.2 Switch command and setpoint sources to terminal

Parameter Value Effect
P0700[0] 2 Terminals are the active command source (start/stop/direction). Default is 1 = BOP.
P0701[0] 17 DIN1 = fixed frequency, binary-coded selection (bit 0).
P0702[0] 17 DIN2 = fixed frequency, binary-coded selection (bit 1).
P0703[0] 17 (or 1) DIN3 = fixed frequency (bit 2) — or set to 1 if used as ON/OFF1.
P0704[0] 17 (optional) DIN4 = fixed frequency (bit 3) — only required for 9–15 steps.
P0705[0] 17 (optional) DIN5 = fixed frequency (bit 4).
P0706[0] 17 (optional, MM440 only) DIN6 = fixed frequency (bit 5).
P1000[0] 2 Setpoint source = fixed frequency (overrides analog input 1 / 2, USS, etc.).
Run vs speed. If you want a separate ON/OFF1 hardwired command, leave one digital input free (e.g. DIN5 = 1 with P0705 = 1 for ON/OFF1 plus direction) and run only the speed-bit inputs on DIN1..DIN4. The binary code itself does not contain a run signal, even though P0703 = 17 looks like an "automatic" solution; if you want speed selection to also start the motor you must use P070x = 16 (fixed frequency direct + ON) and accept that all run control is delegated to those inputs.

3.3 Program the fixed frequencies

For a four-level application (0 %, 30 %, 60 %, 100 % of P1082):

Parameter Value (Hz @ 50 Hz base) Corresponds to
P1011[0] 0.00 FF0 — selected when all binary inputs are off
P1001[0] 15.00 (30 % of 50 Hz) FF1 — binary code 00001
P1002[0] 30.00 (60 % of 50 Hz) FF2 — binary code 00010
P1003[0] 50.00 (100 % of 50 Hz) FF3 — binary code 00011

If P1082 = 60 Hz (North American 60 Hz base), the four values become 0 / 18.00 / 36.00 / 60.00 Hz. The setpoint resolution is 0.01 Hz when P0003 = 3, 0.1 Hz when P0003 = 2, and 1 Hz when P0003 = 1.

P1004 through P1015 are unused in a four-step scheme but should still be reviewed to make sure they do not contain stray values from a previous configuration that could inadvertently activate if more inputs go high. The firmware does not check whether the value is "in use", so any non-zero value sitting in P1004..P1015 becomes a selectable preset the moment a fifth input is wired.

4. Fixed Frequency Selection Modes

P0701..P0706 accept the following values relevant to fixed-speed control, per the MM4 parameter list:

P070x value Function Comments
15 Fixed frequency, direct selection DIN1 → FF1, DIN2 → FF2, ... active concurrently
16 Fixed frequency, direct selection + ON Each selected FF also issues an ON
17 Fixed frequency, binary-coded selection N inputs → 2^N speeds
18 Motorized potentiometer (MOP) up Different feature; do not use here
19 Motorized potentiometer (MOP) down Different feature; do not use here

4.1 Direct selection (P070x = 15)

Each digital input becomes the dedicated "go to FFx" line. With three inputs and P1001, P1002, P1003 populated, you have exactly three speeds. If multiple inputs are active simultaneously, the drive takes the highest indexed FF (this is firmware-dependent; on FW 1.x the highest FF wins, on FW 2.x the drive sums by selecting the highest). To avoid ambiguity, only assert one input at a time.

DIN1 DIN2 DIN3 Active setpoint (FW 2.x)
0 0 0 0 Hz (motor decelerates to standstill via P1121)
1 0 0 P1001
0 1 0 P1002
0 0 1 P1003

4.2 Direct selection with ON (P070x = 16)

Same behavior as P070x = 15, but the same input that calls the FF also arms the start. The MM4 will issue ON/OFF1 on the rising edge of the input. This is useful when you do not want a separate start input, but it conflates "speed" and "run" — usually not what production wants because the PLC then has to sequence both functions on the same wire.

4.3 Binary-coded selection (P070x = 17)

This is the mode of interest for the four-level application. The active FF is determined by the binary sum of all digital inputs configured to value 17, with DIN1 as the LSB and DINn as the MSB. The MM4 resolves the binary code once per scan (every 8 ms) so transitions are effectively instantaneous at the input.

Binary code (DIN3 DIN2 DIN1) Active setpoint Used for 0/30/60/100 % if ...
000 P1011 (FF0, default 0 Hz) 0 %
001 P1001 30 % if P1001 = 15 Hz
010 P1002 60 % if P1002 = 30 Hz
011 P1003 — (unused here)
100 P1004 — (unused here)
101 P1005 100 % if P1005 = 50 Hz and 3-bit mapping
110 P1006 — (unused here)
111 P1007 — (unused here)

For the cleanest 0/30/60/100 % mapping using only DIN1 and DIN2 (two PLC outputs):

  • 00 → P1011 = 0 Hz (motor decelerates per P1121 to standstill if running, then holds at 0 Hz)
  • 01 → P1001 = 15 Hz (30 %)
  • 10 → P1002 = 30 Hz (60 %)
  • 11 → P1003 = 50 Hz (100 %)

Only DIN1 and DIN2 need to be wired for this; DIN3..DIN6 stay at their default (P070x = 0 = disabled). The PLC needs only two sourcing outputs, freeing four outputs compared to the direct-selection scheme.

5. Configuring for Four Discrete Speeds

Putting it together, the four-level application needs only the following edits to a default drive:

  1. P0003 = 3 (expert access for 0.01 Hz resolution).
  2. P0700 = 2 (terminal command source).
  3. P0701 = 17 (DIN1 binary-coded FF bit 0).
  4. P0702 = 17 (DIN2 binary-coded FF bit 1).
  5. P0703 = 1 (DIN3 = ON/OFF1 — main run command; left over from the speed-bit inputs).
  6. P1000 = 2 (fixed frequency setpoint).
  7. P1011 = 0.00 (FF0 = 0 Hz).
  8. P1001 = 15.00 (30 % of 50 Hz).
  9. P1002 = 30.00 (60 % of 50 Hz).
  10. P1003 = 50.00 (100 % of 50 Hz).
  11. P1080 = 0.00 Hz (no minimum).
  12. P1082 = 50.00 Hz (motor nameplate frequency).
  13. P1120 = 5.0 s (ramp-up).
  14. P1121 = 5.0 s (ramp-down).
  15. P0971 = 1 (commit parameters to EEPROM).
If the PLC owns the run command too, just keep P0703 = 17 — binary mode. The drive runs as long as a non-zero FF is selected, and stops on FF0. This is sometimes not desired because toggling a bit to 00 in mid-run will force a controlled deceleration; an explicit ON/OFF1 gives you independent coast or quick-stop control.

If your motor is rated at 60 Hz instead of 50 Hz, the four setpoints become 0 / 18.00 / 36.00 / 60.00 Hz. If your application uses a 100 % point other than P1082 (for example, 87 Hz field-weakening on a 50 Hz motor), set P1082 to the new top speed and recompute each FF proportionally.

6. Ramp Time and Setpoint Smoothing

The MM4 uses two independent linear ramps on the output frequency. Each fixed frequency jump is therefore not a step but a slewed transition, which is what gives you the "ramps between discrete values" behavior the original poster was looking for.

Parameter Function Typical value
P1120 Ramp-up time from 0 Hz to P1082 5–10 s for fans/pumps; 2–3 s for conveyors; 10–20 s for centrifuges
P1121 Ramp-down time from P1082 to 0 Hz Match P1120 unless regenerative risk requires longer
P1130 Initial ramp-up rounding (s) 0.0 (off) for hard steps; 0.5–1.0 for smoother MOP
P1131 Final ramp-up rounding (s) 0.0
P1132 Initial ramp-down rounding (s) 0.0
P1133 Final ramp-down rounding (s) 0.0
P1134 Rounding type (0=continuous, 1=discontinuous) 0 (continuous, standard S-curve)
P1135 OFF3 (fast stop) ramp-down time 5.0 s default; reduce to 0.5 s for E-stop
P1200 Kinetic buffering level 0 (off) for fixed-speed; 3–5 for mains dips
P1203 Kinetic buffering decay rate 0.05 default

Setpoint smoothing for fixed frequencies is not separately configurable — the FF selection is essentially instantaneous at the input (one PLC scan plus the drive's 8 ms binary decode), but the frequency output still obeys P1120/P1121. To make the transition less harsh on the load, increase P1120/P1121 rather than try to filter the digital input. The optocouplers on the MM440 digital inputs have a 5 ms typical propagation delay, so the worst-case step response is P1120 + 13 ms.

50 Hz 30 Hz 15 Hz 0 Hz DIN1 (FF bit 0) DIN2 (FF bit 1) ON ramp per P1120 time 0 FF1 (15 Hz) FF2 (30 Hz) FF3 (50 Hz)

7. Wiring the Digital Inputs

The MM440 (and the MM420 with the appropriate option) accepts either sourcing PNP or dry-contact wiring on DIN1..DIN6. The internal +24 V supply on terminal 9 (MM440) is rated 100 mA total; subtract encoder and analog output currents before using it for the digital inputs. For industrial settings, a separate 24 V supply with its own return is recommended to avoid ground loops.

S7 PLC outputs Q0.0 — DIN1 (FF bit 0) Q0.1 — DIN2 (FF bit 1) Q0.2 — DIN3 (ON/OFF1) Common (M) Micromaster MM440 Terminal 5 → DIN1 Terminal 6 → DIN2 Terminal 7 → DIN3 Terminal 9 → +24 V out Terminal 28 → 0 V common Binary FF bit 0 Binary FF bit 1 Run command Each PLC output sources ≥ 15 mA into the drive's opto-isolated input

Terminal layout for the MM440 (control board terminals 1–30):

Terminal Function Note
1, 2 Digital output 1 / 2 (relay contacts) Use for fault feedback to PLC (r0052 bit 3 = fault active)
3 24 V input for the opto-isolators External supply if isolated
4 Enable / 24 V enable signal Must be tied to terminal 9 (24 V out) for the drive to start
5 DIN1 P0701
6 DIN2 P0702
7 DIN3 P0703
8 DIN4 (MM440 only) P0704
9 +24 V supply output 100 mA shared budget
10, 11 0 V common for the digital inputs Return
12, 13 Analog input 1 (+ / -) Not used in FF mode
14, 15 Analog input 2 (+ / -) Not used in FF mode
16 Analog output 1 Optional: actual speed to PLC
17, 18 Analog output 2 / 10 V reference Not used
19, 20 RS485 P / N (USS, Modbus RTU) Optional network connection
21, 22, 23, 24, 25 Not used on MM420 —
26, 27 Digital output 3 (relay 2 contacts) Optional secondary fault
28, 29, 30 Encoder interface (MM440 only) Not used in open-loop FF

The MM420 has a smaller terminal block and the analog/digital layout differs from the MM440. Cross-reference the wiring diagram in the MM420 Operating Instructions before wiring. MM430 uses the same layout as MM440.

8. Verification and Commissioning

  1. Power up the drive, switch to access level P0003 = 3 via the BOP (P0003 → 3 → P).
  2. Walk through every parameter in Section 3.2 and Section 3.3 and confirm it stuck. Press P on the BOP between changes; do not rely on the parameter being committed when scrolling away. If using STARTER, the offline parameter set must be downloaded to RAM, then saved with "RAM to ROM".
  3. Drive the motor unloaded first. Issue ON via the dedicated start input. Confirm the motor accelerates to P1082 on analog, then switch P1000 to 2 (or remove the analog input) to fall back to FF0.
  4. From the PLC, set FF bits 01, 10, 11 in turn. With a clamp-meter on a phase, confirm current and frequency at each step. The r0021 display on the BOP shows actual frequency; r0027 shows output current; r0024 shows output frequency; r0034 shows motor temperature.
  5. Verify ramp behavior by stepping from FF3 (50 Hz) back to FF0 (0 Hz) and timing the deceleration against P1121 (t = (frequency drop / P1082) × P1121).
  6. If any step produces fault F0001 (overcurrent), increase P1120/P1121 by 1 s and re-test. F0001 typically trips when the rate of change of the load demands a torque higher than 180 % of P0305.
  7. Once validated, set P0971 = 1 to commit the parameters to EEPROM. Power cycle the drive and confirm the FF setpoints survived.

9. PLC Integration Example (S7-1200 Structured Text)

If you are reading the FF bits from a Siemens S7-1200 or S7-1500 PLC, the conversion from a user-friendly speed selection word to the two binary bits is straightforward. The function block below also handles the run/latch logic and reads back a fault bit if the drive is networked.

FUNCTION_BLOCK "FB_FixedSpeedControl"
{ S7_Optimized_Access := 'TRUE' }
VERSION : 0.1
   VAR_INPUT
      iSpeedSelect : INT;    // 0..3, 0=stop, 1=30 %, 2=60 %, 3=100 %
      iRun         : BOOL;   // start command from HMI
      iFaultReset  : BOOL;   // 1-shot pulse to clear drive fault
   END_VAR

   VAR_OUTPUT
      qFF_Bit0      : BOOL;  // to drive DIN1
      qFF_Bit1      : BOOL;  // to drive DIN2
      qRun          : BOOL;  // to drive DIN3 (ON/OFF1)
      qFaultActive  : BOOL;
   END_VAR

   VAR
      sFFState      : INT;   // latched state for hysteresis
   END_VAR

BEGIN
   // Debounce / select
   sFFState := LIMIT(INT#0, iSpeedSelect, INT#3);

   qRun := iRun AND (sFFState > 0);

   CASE sFFState OF
      0: qFF_Bit0 := FALSE; qFF_Bit1 := FALSE;   // FF0 = 0 Hz
      1: qFF_Bit0 := TRUE;  qFF_Bit1 := FALSE;   // FF1 = 15 Hz
      2: qFF_Bit0 := FALSE; qFF_Bit1 := TRUE;    // FF2 = 30 Hz
      3: qFF_Bit0 := TRUE;  qFF_Bit1 := TRUE;    // FF3 = 50 Hz
   ELSE
      qFF_Bit0 := FALSE; qFF_Bit1 := FALSE;
   END_CASE;

   // qFaultActive reads bit 3 of r0052 from the drive over PROFIBUS / PROFINET,
   // or the digital output on the drive's relay contact wired to the PLC.
   qFaultActive := FALSE;
END_FUNCTION_BLOCK

10. Troubleshooting Matrix

Symptom Likely cause Diagnostic step Remedy
Motor does not run with any FF selected P0700 still = 1 (BOP) Read r0002; if "commissioning" or "ready" instead of "run", P0700 may not have taken Re-enter P0700 = 2 and cycle power
Motor runs at the wrong speed Binary code reversed Check DIN1 vs DIN2 wiring against Section 4.3 Swap PLC outputs Q0.0 and Q0.1, or remap P0701/P0702
Motor runs only on FF1 and FF3 P0701 / P0702 not set to 17 Read P0701, P0702 and confirm = 17 Set both to 17
Frequency skips steps P1080/P1082 cutting off the value Compare requested FF to P1080/P1082 Loosen limits or shift FF values into range
Drive faults F0001 on step change Ramp too short for load inertia Read r0034 (motor temperature) and r0027 (current) Increase P1120/P1121 by 50 %
Drive faults F0022 / F0023 Power-loss ride-through tripped Check mains during step Adjust P1200 = 3 and P1203 = 0.05
Drift between analog command and FF P1000 not set to 2 Read r0010 (setpoint frequency) Set P1000 = 2
FF selection latched on power-off FF inputs held by PLC after drive off PLC program clears FF outputs on drive fault Force Q0.0 and Q0.1 to 0 in PLC fault routine
Motor runs but won't stop with all FF bits off ON command is on the same input as a FF Read P0703; if it is 16, separate the run from FF Use a dedicated start input, P0703 = 1
Frequency changes are felt as jolts on a fan No rounding on the ramp Inspect P1130..P1133 Set P1130 = P1133 = 1.0 for an S-curve
Drive will not accept parameter changes Still in commissioning (P0010 ≠ 0) Read P0010 Set P0010 = 0 first
Speed drops to zero unexpectedly P0855 (enable quick stop) mis-wired Read P0855 and P1140 Set P0855 = 0 if no quick stop is needed

11. Frequently Asked Questions

Can I switch from P0701 = 17 (binary FF) to USS/Modbus setpoint without re-commissioning?

Yes. P0700/P1000 accept hot changes. Set P0700 = 5 (USS on RS485) and P1000 = 5 (USS setpoint), then cycle the command source selection. The drive remembers the fixed frequencies in P1001..P1015 so you can switch back without re-entering values.

How many fixed frequencies does the MM4 actually support?

P1001 through P1015 give fifteen user values, plus P1011 for FF0. With six digital inputs all set to P070x = 17 you can address FF1..FF63 in theory, but the firmware only stores P1001..P1015, so 16 levels (FF0..FF15) is the practical ceiling.

Does selecting a fixed frequency also start the motor?

Not by itself. P070x = 15 (direct) and P070x = 17 (binary) only change the setpoint. You still need a separate ON/OFF1 command (P070x = 1) on a free digital input. P070x = 16 does combine the FF with the ON, but it ties the two functions together and is rarely used in production.

Why does the motor coast to zero instead of ramping down when I clear the FF bits?

The setpoint steps from P1003 to P1011 = 0 Hz, and P1121 controls the ramp rate. If you want a fast stop instead of a controlled ramp, wire OFF3 to a separate input and set P070x = 2; the drive will then decelerate using P1135 instead of P1121.

My FF selection only works while the motor is already running. Why?

P0700 is still at 1 (BOP) instead of 2 (terminal). The PLC inputs cannot command start while the command source is the keypad. Set P0700 = 2, cycle power, and re-test; the parameter will commit properly the second time because the BOP only releases P0700 once a different command source is in effect.

Back to blog