Resolving Micromaster 440 Inhibit Condition on Profibus DP

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

Problem Summary

A Siemens MICROMASTER 440 (MM440) drive controlled by a SIMATIC S7-300/400 PLC over PROFIBUS DP remains in the "inhibit" condition even when the HMI issues a start command. The brake releases and a 5% speed setpoint reaches the drive, but the motor does not run. Local control via the AOP (Advanced Operator Panel) or terminal strip works correctly in both directions, isolating the fault to the cyclic PROFIBUS data exchange between the PLC and the drive, not to power hardware, the motor, or the speed feedback path.

This is a classic PROFIdrive state-machine issue. It is almost always traceable to the first control word (STW1), the cyclic PKW/PZD handshake, or the command source (P0700) and setpoint source (P1000) parameters, not to a hardware failure.

Understanding the MM440 "Inhibit" State

The MM440 supports the PROFIdrive profile (V3.0) on standard firmware revisions. Internally the drive moves through nine states defined by the PROFIdrive standard:

State Name ZSW1.6 Motor
S0 0 Off
S1 Not ready to switch on 0 Off
S2 Switch-on inhibit (locked) 1 Off
S3 Ready to switch on 0 Off
S4 Switched on 0 Off
S5 Operation enabled 0 On
S6 Quick stop active 0 Ramp-down
S7 Fault reaction active 0 Trip
S8 Fault 0 Off

When the HMI shows "inhibit", the drive is in S2 (Switch-on inhibit). ZSW1.6 is set, indicating that the drive is healthy but will not accept an ON command until the PLC sends a valid transition through STW1. The Siemens support portal confirms this exact symptom: the drive is ready to run via terminals or BOP but is locked when the cyclic control word is wrong, as documented in the Siemens Industry Online Support post on MM440 inhibit.

PROFIdrive State Machine Flow

The transitions between states are governed by the control word. The MM440 evaluates the entire STW1 every PROFIBUS cycle (typically 4–12 ms) and updates ZSW1 accordingly.

S1Not ready S2Switch-on inhibit S3Ready to switch on S4Switched on S5Operation S6Quick stop S7Fault reaction S8Fault init OK STW1[0,1,2]=1 STW1[0] rising STW1[3]=1 STW1[0]=0 OR fault any fault STW1[0]=0 (OFF1) any latched fault PROFIdrive STW1 = 0x047F (run)Bits 0,1,2,3,6,10 = 1 (active run)Bits 4,5 = 1 (ramp enabled)

PROFIdrive Control Word 1 (STW1) Bit Map

The MM440 expects a specific 16-bit pattern in STW1 to leave the inhibit state. Bit assignments follow the PROFIdrive profile and are documented in the official MICROMASTER 440 Parameter List (PL1201):

Bit Name Function Required value to run
0 ON/OFF1 0 = ramp-down; 1 = enable 1
1 OFF2 0 = coast stop; 1 = permit 1
2 OFF3 0 = quick stop; 1 = permit 1
3 Inhibit operation / Enable operation 0 = inhibit; 1 = permit 1
4 Enable ramp generator 0 = freeze; 1 = enable 1
5 Start ramp generator 0 = stop; 1 = start 1
6 Enable setpoint 0 = setpoint = 0; 1 = setpoint active 1
7 Acknowledge fault 0→1 rising edge resets faults 0 (1 only on reset)
8 Jog 1 0/1 0
9 Jog 2 0/1 0
10 Control by PLC 1 = PLC owns control 1
11–15 Reserved 0

Bit 0 of STW1 is the ON/OFF1 command. It is low-active for the OFF function: a 0 causes a controlled ramp-down. A 1 is required to enable the drive. If the PLC is only setting bit 0 high and leaving bits 1, 2, 3, or 10 low, the state machine never advances past S2 and the drive remains in inhibit. This is the single most common commissioning fault.

PROFIdrive Status Word 1 (ZSW1) Bit Map

The MM440 reports its current state through ZSW1. While the drive is in inhibit the most relevant flags are:

Bit Name Meaning when set
0 Ready to switch on Internal electronics OK
1 Ready to operate No OFF2 active
2 Operation enabled Motor energised
3 Fault present A fault is latched
4 OFF2 active Coast stop requested
5 OFF3 active Quick stop requested
6 Switch-on inhibit Drive is locked in S2
7 Warning present At least one warning active
8 Speed deviation Setpoint vs actual within tolerance
9 Control requested PLC has control authority
10 f ≥ comparison value Speed threshold P2162 reached
11–15 Reserved

ZSW1.6 = 1 is the unambiguous signal that the drive is waiting for the PLC to send a proper STW1 before it will energise the motor. The "inhibit" label displayed on the HMI or in STARTER is the operator-friendly text for this state.

Root Cause Analysis

For a brand-new commissioning on PROFIBUS DP, the most likely causes of a stuck-inhibit MM440 are listed in order of frequency:

  1. STW1 bits 1, 2, 3, or 10 are not set. The PLC is writing the ON command (bit 0 = 1) but not the OFF2-permit, OFF3-permit, Enable-operation, or Control-by-PLC bits. The state machine stays in S2.
  2. Control source P0700 is set to a non-PROFIBUS source. If P0700 = 1 (BOP) or P0700 = 2 (terminal), the cyclic PROFIBUS words are ignored. AOP control works because AOP sources from the BOP path; PROFIBUS control does not because the drive is not listening to it.
  3. PROFIdrive profile mismatch. The drive is configured to a non-PROFIdrive telegram (P0922 = 0 or 999) and the S7 program writes raw data. Without the profile, the bit definitions above are not interpreted by the drive.
  4. Fault latched. A pre-existing fault (e.g., F0001 overcurrent, F0022 power stack fault, F0024 mainboard temperature, F0003 undervoltage) keeps the drive in S7 or S8. Bit 3 of ZSW1 will be set and bit 6 will remain high.
  5. Motor potentiometer (MOP) is the active setpoint source (P1000 contains a MOP bit) and the PLC is not toggling the MOP-up/MOP-down bits. The drive appears inhibited because the setpoint channel is not advancing. P1032 then controls reverse direction.
  6. Telegram length or PKW mismatch. The S7 hardware configuration uses a 4-PZD telegram while P0922 is set to 2 PZD, or PKW length differs between master and slave. The drive silently rejects the cyclic data.

The diagnosis path in STARTER (commissioning tool) is:

  1. Connect STARTER to the drive via PROFIBUS or the diagnostic port.
  2. Open the Control Unit → Communication view and confirm the cyclic PZD words are updating live.
  3. Open Drive Trace or the Control/Status Word monitor and capture STW1 and ZSW1 together.
  4. Compare against the bit maps above. The first non-matching bit is the cause.

Solution Procedure

Step 1 — Confirm the PROFIBUS telegram is active

In STARTER, navigate to Project → Properties for the MM440. Under Communication, ensure that the telegram type is one of the standard PROFIdrive telegrams (1, 2, 3, 4, 5, 6, 7, 9, 20, or 21). Telegram type 1 (Standard telegram 1) is the most common minimum configuration for V/Hz control, providing 2 PZD words each way (STW1/ZSW1 + NSOLL_A/NIST_A).

P0922 (drive configuration) must match the telegram number configured in the S7 hardware configuration (HW Config). A mismatch silently drops the cyclic exchange and the drive displays the inhibit state. Refer to the MM440 Parameter List for the full list of supported telegrams and the slot assignments.

Step 2 — Set the command and setpoint source to PROFIBUS

Parameter Value Meaning
P0700 6 Command source = CB/PROFIBUS
P1000 6 Setpoint source = CB/PROFIBUS
P0922 1 Telegram = Standard telegram 1
P2051.0 52 PZD1 receive = STW1 mapping (default for telegram 1)
P2051.1 21 PZD2 receive = NSOLL_A (speed setpoint)
P2050.0 52 PZD1 send = ZSW1 mapping (default)
P2050.1 53 PZD2 send = NIST_A (actual speed)

These defaults are restored by a factory reset (P0970 = 1) if the drive is already in a known-good state with a working AOP path. After editing any commissioning parameter, remember to set P0010 = 0 to exit the commissioning filter before saving.

Step 3 — Build the correct STW1 word in the PLC

In the S7 PLC, build STW1 with all required bits high. The run command is 0x047F:

STW1_RUN := WORD#16#047F; // 0000 0100 0111 1111b

Bit-by-bit:

Bit 15..11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
00000 1 0 0 0 1 1 1 1 1 1 1

This sets bits 0, 1, 2, 3, 4, 5, 6, and 10 high — the minimum pattern that transitions the drive from S2 through S3 and S4 to S5. The PLC must hold bit 0 high continuously to keep the drive in Operation.

To stop the drive (OFF1 ramp-down), set bit 0 to 0 while leaving all other bits unchanged:

STW1_OFF1 := WORD#16#047E; // bit 0 cleared, all permits still 1

To coast stop (OFF2), clear bit 1:

STW1_OFF2 := WORD#16#0479; // bits 0 and 1 cleared

To quick stop (OFF3), clear bit 2:

STW1_OFF3 := WORD#16#047B; // bit 2 cleared

Step 4 — Write the STW1 word to the PROFIBUS output PZD

In S7-300/400, the PROFIBUS data is written via SFC15 (DPWR_DAT) to the DP slave's I/O addresses. Typical address mapping for standard telegram 1:

PZD Word Direction Address in S7 (example)
1 STW1 (PZD1 OUT) PLC → Drive QW 256
2 NSOLL_A (PZD2 OUT) PLC → Drive QW 258
1 ZSW1 (PZD1 IN) Drive → PLC IW 256
2 NIST_A (PZD2 IN) Drive → PLC IW 258

Sample S7 STL code in OB1:

// Pre-load STW1 with full enable
L  W#16#047E;          // bits 0..10 enable, OFF1 inactive
T  QW 256;

// On HMI start command (M10.0 = TRUE):
A  M 10.0;
JC  RUN;
L  W#16#047E;          // stay in OFF1
T  QW 256;
JU  END;

RUN: L  W#16#047F;      // ON command, all permits
T  QW 256;

END: NOP 0;

// Read back ZSW1 for diagnostics
CALL SFC 14   // DPRD_DAT
   LADDR   := W#16#100
   RET_VAL := MW 100
   RECORD  := P#M 102.0 BYTE 2
;
L  MW 102;
T  MW 110;             // store ZSW1 in MW110 for monitoring

If your drive is on PROFINET instead of PROFIBUS, replace the SFC14/SFC15 calls with the equivalent PN I/O access (direct I/O access on IW/QW, or SFB52/SFB53 for record data) but the STW1 bit definitions remain identical.

Step 5 — Acknowledge any latched fault

If ZSW1.3 is set (fault present), issue an acknowledge by pulsing STW1.7 from 0 to 1. The MM440's fault buffer (r0947) and fault number (r0949) should be cleared before re-attempting the start sequence. Common commissioning-time faults and their parameter-set remedies:

Fault Meaning Typical cause Fix
F0001 Overcurrent Motor stalled, cable short, wrong P0305/P0307 Check wiring, motor nameplate vs P0304..P0311
F0002 Overvoltage Regenerative energy, no brake resistor Set P1230 = 0 (no brake), extend ramp P1121
F0003 Undervoltage DC bus below threshold Check supply; check P0210 line voltage
F0004 Inverter overtemperature Cooling fan failed Inspect fan and air path
F0011 Motor overcurrent Mechanical jam Check load
F0022 Power stack fault Hardware Power-cycle, replace drive
F0024 Mainboard temperature Ambient too high Improve ventilation
F0041 Motor data identification failure Auto-measurement (P1910) failed Re-run with motor uncoupled

Step 6 — Verify the state machine

In STARTER or on the AOP, watch the state diagram. The sequence must be:

S2 → STW1 bits 0,1,2,10 = 1 → S3 → STW1 bit 0 rising edge → S4 → STW1 bit 3 = 1 → S5

If the drive halts at S2 with ZSW1.6 still set, capture ZSW1 in a trace and inspect bits 1, 2, and 3 of STW1 as they leave the PLC. The most common reason for a stuck S2 is that the S7 program is not updating STW1 every cycle (SFC15 is not being called, or the wrong address is written).

Parameter P1032 — MOP Direction Inhibition

If the setpoint source contains the Motor Potentiometer (MOP) function (P1000 bit 5 set, e.g., P1000 = 26 for MOP via PROFIBUS), the MM440 inhibits reverse direction by default. The relevant parameter is:

Parameter Range Default Description
P1032 0 to 1 0 Inhibit reverse direction of MOP (1 = reverse inhibited, 0 = reverse permitted)

This setting is independent of the inhibit state discussed above. It only blocks the MOP from accepting a negative setpoint. A PROFIBUS-fed setpoint bypassing the MOP function is not affected by P1032, so a value of 0 is usually safe. If the PLC is using MOP via PROFIBUS, set P1032 = 0 to permit reverse running. The full bit-coded MOP options are documented in the MICROMASTER 440 Parameter List (PL1201).

Hardware Configuration in HW Config

For S7-300/400, install the MM440 GSD file (Siemens file name siem807d.gsd for MM440, or si0280a4.gsd for older revisions) and add the drive to the PROFIBUS DP master system. Key configuration items:

  1. Slot 0 must be assigned to a Standard telegram 1 (or another PROFIdrive telegram).
  2. Set the PROFIBUS address to match the drive's hardware DIP switch (or P0918).
  3. Configure consistent I/O addresses: the first 4 input bytes (PZD receive, drive → PLC) and the first 4 output bytes (PZD send, PLC → drive).
  4. For PKW access, configure 4 PKW words in the slot. The MM440 supports up to 4 PKW + 4 PZD in the standard slot configuration.

A common pitfall is selecting a non-PROFIdrive slot configuration. In that case, the drive interprets the I/O as raw words and the STW1 bit assignments are not applied. The drive will still be in inhibit because the OFF2/OFF3/Enable bits are never set.

SINAMICS G120 Migration Note

The MICROMASTER 440 was discontinued and replaced by the SINAMICS G120 family (CU230P-2, CU240E-2, CU250S-2 control units). The PROFIdrive STW1/ZSW1 bit map is identical, so the S7 program logic described in this article ports directly. Differences to be aware of:

  • The parameter numbers are different (e.g., G120 uses p0700, p1000, p0922 in lowercase).
  • PROFINET is now the preferred fieldbus; telegram selection is via the device configuration in TIA Portal / Starter.
  • Safety integration (PROFIsafe / STO) is built in. The STW1 assignment still applies but a separate PROFIsafe telegram (telegram 30) is needed for the STO enable.

Verification Checklist

  1. STW1 = 0x047F (or equivalent) is being written to the drive every PROFIBUS cycle.
  2. ZSW1 transitions: bit 6 clears, bit 2 sets when the drive runs.
  3. The HMI "inhibit" label disappears and is replaced by "Operation".
  4. The motor accelerates to the commanded setpoint in both directions.
  5. AOP control still works (it should, but verify no parameter was corrupted).
  6. r0947 (fault buffer) and r0949 (active fault) are both zero.
  7. P0700 = 6 and P1000 = 6 are saved (P0010 = 0, P0971 = 1 to save to EEPROM).

Quick Reference: Related Parameters

Parameter Description Typical value
P0010 Commissioning parameter filter 0 = Ready
P0700 Command source selection 6 = PROFIBUS
P0918 PROFIBUS node address 3..126 (match DIP switch)
P0922 PROFIdrive telegram selection 1 = Standard telegram 1
P0970 Factory reset 1 = reset to defaults
P0971 Save to EEPROM 1 = save
P1000 Setpoint source 6 = PROFIBUS
P1032 Inhibit reverse direction of MOP 0 = permit reverse
P2040 PKW length 4 words
P2041 PZD length 4 words
P2051.x PZD receive word mapping (drive side) 52 = STW1, 21 = NSOLL
P2050.x PZD send word mapping (drive side) 52 = ZSW1, 53 = NIST
r0050 Active command data set (CDS)
r0052 Active status word ZSW1
r0947 Last fault number 0 = no fault
r0949 Fault buffer (8 entries)
r0968 PROFIdrive state (raw)

Common Pitfalls Summary

  • Forgetting to set P0700 = 6. The AOP path uses BOP; PROFIBUS requires CB selection.
  • Telegram number mismatch between HW Config and P0922. The drive silently ignores the cyclic data.
  • Writing only STW1 bit 0. Bits 1, 2, 3, 10 are also required for operation. This is the most common cause at commissioning.
  • Save parameters to EEPROM (P0971 = 1). Without this, the drive reverts to defaults on power-cycle.
  • Inconsistent PKW and PZD lengths. Set both to 4 words each (P2040 = 4, P2041 = 4) for standard telegrams.
  • MOP reverse inhibition (P1032). If using MOP, the drive will not run in reverse without P1032 = 0.
  • PROFIBUS connector termination. The first and last device on the segment must have termination enabled.
Always perform a parameter save (P0971 = 1) and a controlled power-cycle after changes. Verify on the AOP that the drive is back to PROFIBUS control before resuming PLC-driven operation. If the drive is being replaced by a SINAMICS G120, retest with the new control unit's GSD file because the parameter numbering differs even though the PROFIdrive bit map is identical.

FAQ

What does "inhibit" mean on the MM440 with PROFIBUS control?

It means the drive is in PROFIdrive state S2 (Switch-on inhibit) with status word bit 6 set. The drive is healthy and ready to run, but it is waiting for the PLC to send a valid control word (STW1) with the correct combination of OFF1, OFF2, OFF3, Enable-operation, and Control-by-PLC bits. Monitor ZSW1 in STARTER and compare against the bit map in this article.

Why does AOP control work but PROFIBUS does not?

The AOP communicates over the BOP/USS path, which is selected with P0700 = 1 or 2. PROFIBUS cyclic control requires P0700 = 6 and P0922 set to a valid PROFIdrive telegram. AOP control is fully independent of the cyclic PROFIBUS words, so a misconfigured P0700 or P0922 lets AOP work while the PLC cannot move the drive out of inhibit.

Which control word bits must be set to leave the inhibit state?

To exit state S2, set STW1 bits 0, 1, 2, and 10 to 1. To reach state S5 (Operation enabled), additionally set bit 3 to 1. The complete run command is therefore 0x047F (binary 0000 0100 0111 1111), assuming reserved bits 11–15 are zero. Pulse bit 0 from 0 to 1 to start the drive from a clean state.

How do I clear a latched fault on the MM440 via PROFIBUS?

Set STW1.7 (Acknowledge fault) to 1 with a rising edge. The drive will clear r0947/r0949 and exit state S8. If the fault condition still exists (overcurrent, motor overload, etc.), the drive will re-enter the fault state immediately. Resolve the root cause first, then acknowledge.

What is the role of P1032 and when do I need to change it?

P1032 inhibits the reverse direction of the Motor Potentiometer (MOP) setpoint source. The default is 0 (reverse inhibited) per the official MM440 Parameter List. Set P1032 = 0 (i.e., allow reverse) only if you are using MOP as a setpoint source and you need bi-directional operation. PROFIBUS-fed setpoints are not affected by P1032.

How can I read the live ZSW1 value for diagnostics?

In S7-300/400 use SFC14 (DPRD_DAT) to read the cyclic input words from the drive's PROFIBUS address. The first input word (e.g., IW 256) is ZSW1; the second is NIST_A. Display the ZSW1 word in the VAT or HMI and bit-decode it against the table in this article to confirm the actual drive state.

Back to blog