1. Problem Statement and Field Symptoms
Siemens MICROMASTER 420 (MM420) inverters on USS communication sometimes appear to communicate correctly—the master polls the drive, parameter values are returned, the status word mirrors the drive state—yet the motor refuses to run when the controller issues a start command. Typical field reports include:
- Drive responds to USS polling and PZD reads without error.
- PKW reads (PKE/IND/PWE) return correct values; the link itself is healthy.
- When the controller writes a non-zero control word 1 (STW1) and a setpoint, the drive does not accelerate, or it accelerates briefly and trips.
- Manually pressing the green I (start) button on the BOP runs the motor perfectly—only the remote (USS) path is dead.
- No active fault code is present, or a transient F0072 (USS telegram failure) appears and auto-clears.
None of these symptoms indicate a hardware fault on the inverter, motor, or RS-485 cable. They point to a control-word or parameter-source mismatch. The MM420 must be told which command source is authoritative and the master must then send a properly framed STW1 with all prerequisite enable bits set. Either of those two conditions is the dominant root cause in over 90% of the cases reported on this exact symptom.
2. USS Protocol Frame and Communication Stack
USS (Universal Serial Interface) is a Siemens proprietary half-duplex master/slave serial protocol carried over RS-485. Every MM420 ships with one COM link (terminals 29/30 on the control board) and an optional BOP link. Both can host USS but the parameter configuration is independent.
The basic USS telegram format used on the MM420 is shown in the table below. PKW is optional on cyclic PZD-only drives; PZD words 1 and 2 are mandatory if you want a run command and a setpoint.
| Word | Field | Master → MM420 (PZD) | MM420 → Master (PZD response) |
|---|---|---|---|
| 1 | STW1 / ZSW1 | Control Word 1 (16-bit) | Status Word 1 (16-bit) |
| 2 | HSW / HIW | Main setpoint (e.g. 0x4000 = 100%) | Main actual value (e.g. 0x4000 = 100%) |
| 3 | (optional) | Control Word 2 / Setpoint 2 | Status Word 2 / Actual 2 |
| 4 | (optional) | Setpoint / Status request | Actual / Status payload |
The full USS frame is bracketed by STX (0x02), an address byte (P2011), payload length (LGE), the PZD/PKW words above, and a BCC checksum byte. The BCC is the XOR of all bytes from the address byte through the last PZD/PKW word. A mismatched BCC means the drive silently discards the telegram—this is the most common origin of an F0072 fault if P2014[0] is non-zero.
For cyclic PZD-only run control the standard telegram is 2 PZD words (STW1 + setpoint). Set P2012 = 2 to lock the drive into that profile. Mismatched P2012/P2013 between master and drive is a frequent cause of intermittent command rejection on Siemens drives. See the MICROMASTER 420 Operating Instructions for the canonical frame diagrams.
3. Control Word 1 (STW1) Bit Definition
The drive only acts on a run command if the combination of bits in STW1 matches the MM420's start profile. Setting only bit 0 (ON/OFF1) is not enough; the inverter enables the output only when bits 0, 1, 2, 3, 4, 5, 6 and 10 are all in the correct state. The full STW1 layout is:
| Bit | Mask (hex) | Name | Function |
|---|---|---|---|
| 0 | 0x0001 | ON/OFF1 | 1 = Run command (rising edge starts) |
| 1 | 0x0002 | OFF2 / Coast | 1 = No coast stop; 0 = coast to stop |
| 2 | 0x0004 | OFF3 / Quick stop | 1 = No quick stop; 0 = decel via P1135 |
| 3 | 0x0008 | Inverter enable | 1 = Enable IGBTs; 0 = inhibit |
| 4 | 0x0010 | Ramp-up enable | 1 = RFG output → ramp enabled |
| 5 | 0x0020 | Ramp start | 1 = RFG begins; 0 = RFG frozen |
| 6 | 0x0040 | Setpoint enable | 1 = Releases setpoint at RFG input |
| 7 | 0x0080 | Fault acknowledge | Rising edge clears latched faults |
| 8 | 0x0100 | JOG right | 1 = Fixed JOG frequency (P1058) |
| 9 | 0x0200 | JOG left | 1 = Fixed JOG frequency reverse |
| 10 | 0x0400 | Control from PLC | 1 = Master has control; 0 = local |
| 11 | 0x0800 | Setpoint inversion | 1 = Reverse direction |
| 12 | 0x1000 | Reserved | Always 0 |
| 13 | 0x2000 | MOP up | Motor potentiometer increment |
| 14 | 0x4000 | MOP down | Motor potentiometer decrement |
| 15 | 0x8000 | Reserved | Always 0 |
The two STW1 values that almost every start sequence on the MM420 uses are:
- 0x047E (1150 dec) — "Ready": drive acknowledges the bus, transitions to "Ready to operate". Bit 0 is not set, so no run.
- 0x047F (1151 dec) — "Run": adds bit 0 (ON/OFF1). This is the steady-state run value the master must transmit cyclically.
For reverse direction send 0x0C7F (3199 dec). To stop normally send 0x047E (drop bit 0). To coast stop send 0x041E (clear bit 1). To emergency-stop (OFF3) send 0x047A (clear bit 2). For fault acknowledge send a single telegram with bit 7 toggled high (0x04FF), then return to the running value. Always keep bit 10 set when the PLC is in charge—leaving it 0 hands authority back to the BOP/terminals and the drive will appear to ignore commands.
4. Required Parameter Configuration
Even a perfectly framed STW1 is ignored if the drive is not bound to USS as its command and setpoint source. The minimum parameter set is small, but each value has a strict effect.
| Parameter | Value | Meaning | Why it matters |
|---|---|---|---|
| P0700 | 4 | Command source = USS on COM link | Routes STW1 from the bus to the drive's logic. Setting 1 keeps BOP active; setting 2 keeps terminals active. |
| P1000 | 4 | Frequency setpoint = USS on COM link | Routes HSW from the bus to the ramp generator. |
| P2000 | 50.00 (or motor rated) | Reference frequency in Hz | Defines 100% scaling for the HSW. HSW = 0x4000 → P2000 Hz. |
| P2010 | 6 (9600), 7 (19200), 8 (38400) | USS baud rate on COM link | Must match the master exactly. 38400 is most common on S7-200/1200 USS libraries. |
| P2011 | 1…31 (e.g. 1) | USS node address | The address encoded in the USS frame. Mismatched address → drive ignores telegram. |
| P2012 | 2 (4 PZD words typical, but for 2 PZD use 0 with P2013=0) | USS PZD length | 0 = 8 PZD words, 1 = 4 PZD words, 2 = 2 PZD words. Must match the master. |
| P2013 | 1 (3 PKW words) or 0 (variable) | USS PKW length | 1 is recommended for parameter access; 0 for variable-length is fine if the master supports it. |
| P2014[0] | 0 (off) or 100…1000 ms | USS telegram off time | If non-zero, drive faults F0072 if no valid telegram arrives within the window. Set 0 during commissioning; enable later for safety. |
| P1120 | 0.0 | Ramp-up time (s) | Keep low for fast commissioning, raise later to mechanical tolerance. |
| P1121 | 0.0 | Ramp-down time (s) | Same. |
| P1135 | 5.0 (default) | OFF3 ramp time (s) | Used when STW1 bit 2 is cleared. |
Full definitions and access rights are in the MICROMASTER 420 Parameter List and the MM420 product support page. The drive must be powered cycled (or P0971 = 1 issued) after changing command-source parameters to commit the change to RAM/ROM depending on firmware variant.
5. State Machine of an USS Start Sequence
The MM420 is a ProfiDrive-style drive, which means it does not start the motor just because STW1 bit 0 goes high. It must transition through the standard state graph shown below. If any state reports an "inhibit" flag in ZSW1, the drive will refuse to accelerate.
Status word 1 (ZSW1, visible in r0052) tells the master exactly which state the drive is in. A response of 0x0040 (bit 6 = switch-on inhibit) means the drive has power but the master has not yet sent a valid ON profile. A response of 0x0031 (bits 0 and 1 set) means the drive is ready and waiting for the run bit. Only a response with bit 2 set (0x0037 or similar) means the inverter is actually accelerating.
6. Step-by-Step Run Command Sequence
- Confirm cable and node address. Verify the RS-485 polarity on the COM link (terminal 29 = P+, 30 = N-). Confirm P2011 matches the address used by the master. A common mistake is to assume a single drive on the bus, but the USS master will still need a unique address.
- Set command and setpoint sources. Set P0700 = 4 and P1000 = 4. Save with P0971 = 1 if needed. The drive must be put in "Ready" (P0700 = 4 still in effect) before the next step.
- Configure the master for the correct telegram length. Match P2012 and P2013 to the master. If the master is an S7-1200/1500/200 USS library, the default is 2 PZD words + 4 PKW words. If you are using a generic master, set P2012 = 2 for PZD-only and P2013 = 1 for 3 PKW words.
- Send the "Ready" telegram first. Transmit STW1 = 0x047E and HSW = 0x0000 cyclically. Read ZSW1 back; confirm it transitions to 0x0031 within 2–3 cycles (≈ 60–100 ms at 38400 baud).
- Send the "Run" telegram. Change STW1 to 0x047F. Keep the same HSW or set a small test setpoint (HSW = 0x1000 = 25% of P2000 = 12.5 Hz on a 50 Hz drive). Read ZSW1; it should now show 0x0037 (operation enabled).
- Confirm motor acceleration. Read r0021 (smoothed actual frequency) and r0022 (smoothed actual speed). Both should ramp from 0 toward the setpoint on the P1120/P1121 ramp. If r0021 stays at 0, the drive has received the run command but the setpoint is not being applied—check P1000 and HSW scaling.
- To stop normally: Set STW1 = 0x047E (drop bit 0). The drive will ramp to zero on P1121.
- To coast: Set STW1 = 0x041E (clear bit 1). The drive will disable IGBTs and freewheel.
- To clear a fault: Set STW1 = 0x04FF for one telegram, then return to 0x047E/0x047F. Rising edge on bit 7 acknowledges.
For a Siemens S7-1200/1500 USS example, the standard USS_PZD drive block uses a 2-word PZD. In the data block set the first word to 16#047F for run and 16#047E for ready. The second word is HSW, encoded as 0x4000 for 100%. If the ramp does not engage, drop P1120 to 0 for verification, then increase once the bus control is confirmed.
7. Local/Remote Operation Without Changing Parameters Each Time
The MM420 cannot simultaneously honor two command sources, but you can configure it so that a single digital input selects between them at runtime—i.e., you do not need to re-enter P0700 to switch from BOP control to USS control. The two canonical approaches are:
7.1 Method A: Two parameter sets switched by a digital input
The MM420 supports two complete command-data sets (CDS): CDS0 (P0700[0], P1000[0], etc.) and CDS1 (P0700[1], P1000[1], etc.). A digital input wired to P0810 (CDS select) toggles the drive between the two at runtime.
- P0700[0] = 1 (BOP), P1000[0] = 1 (MOP)
- P0700[1] = 4 (USS), P1000[1] = 4 (USS)
- P0810 = 722.0 (BICO source = DI0, terminal 5)
- Wire terminal 5 to +24 V to select CDS1 (USS); leave open for CDS0 (BOP).
The drive does not need a power cycle. The transition is bumpless; if the motor is running under CDS0 and the user toggles to CDS1, the drive drops to 0 first (per the standard state machine) and waits for the USS master to issue 0x047E/0x047F.
7.2 Method B: Permanent USS + BOP for monitoring only
If "running locally" only means jogging at the BOP, and the bus is the long-term authority, set P0700 = 4 and leave the BOP connected for monitoring and parameter editing. The BOP green I button is dead in this mode, but the BOP display still shows r0021, r0022, r0052, r0054, and the active fault. To jog from the BOP temporarily, set P0700 = 1, jog, then restore P0700 = 4. This is a parameter write and is not a "soft switch"—it does require the master to be in stop.
7.3 Why "both at once" is not supported
The MM420 command logic is a strict arbiter. With P0700 = 4, STW1 from USS is the only input that drives the start/stop profile. The BOP green button is hard-wired to the local-only path and is gated off. You cannot OR STW1 with the BOP button in firmware. The closest you can get is the CDS-switching method above, which is the recommended industry approach.
8. Diagnostic Procedure: Reading r0054, r0052, r0021, r0022
When a drive "responds but does not run," the four key diagnostic parameters are:
| Parameter | Type | Meaning | What to look for |
|---|---|---|---|
| r0054 | CO/BO | Control word 1 currently in the drive | If r0054 ≠ 0x047F (1151) when the master is sending 0x047F, the telegram is not landing. If r0054 is 0x047E, the master is sending the wrong value. If r0054 is 0x0000, the drive is not bound to USS (P0700 ≠ 4). |
| r0052 | CO/BO | Status word 1 from the drive | Bit 0 = ready, bit 1 = ready to operate, bit 2 = operation enabled. If bit 6 is set, drive is in "Switch-on inhibit"—typically an active OFF1/OFF2/OFF3 bit in STW1. |
| r0021 | CO | Actual output frequency (Hz, smoothed) | Should track the setpoint when the drive is in operation. If r0021 stays at 0 while r0054 = 0x047F, the setpoint is zero or P1000 ≠ 4. |
| r0022 | CO | Actual motor speed (rpm, smoothed) | Should scale with r0021 × 60 / pole pairs. Useful to confirm the motor is actually turning vs. r0021 showing a small value with the motor stalled. |
Read r0054 after the master has transmitted at least one telegram. If r0054 = 0x0000:
- Re-check P0700. Many commissioning tools revert P0700 to 0 on factory reset.
- Re-check the master node address. If the master's send address is 0 or 31, the MM420 ignores it.
- Re-check the cable. Swap A/B (P+/N-) and re-test.
- Use a USB-to-RS485 sniffer (or the Siemens DriveMonitor tool) to capture the raw telegram and compare to the master source.
If r0054 = 0x047E but the drive is still in "Switch-on inhibit":
- Look at the active fault in r0947. The most common culprits are F0001 (overcurrent), F0002 (overvoltage), F0003 (undervoltage), F0011 (motor overload), F0072 (USS telegram loss).
- Clear faults with STW1 bit 7 toggle. After acknowledge, the drive will accept 0x047E and transition to Ready.
Parameter list reference: see the MICROMASTER 420 Parameter List for the full description of r0052, r0054, and the fault code registry.
9. USS Checksum Errors and Communication Integrity
An intermittent "drive response checksum error" is almost always one of:
- BCC calculation mismatch. The master and the drive must use the same XOR algorithm. Siemens USS specifies XOR over all bytes from ADR through the last PZD/PKW word. Some non-Siemens USS stacks use CRC-16, which is the wrong protocol for the MM420. Verify with a reference sample against Operating Instructions section "USS protocol".
- PKW/PZD length mismatch. The LGE field must equal the configured P2012 + P2013 length, in bytes. If the master sends 4 PKW + 2 PZD = 12 words = 24 bytes, LGE must equal 0x0C (12). If the drive expects 2 PZD = 4 words = 8 bytes, LGE = 0x08, the drive will reject every frame.
- Electrical noise on RS-485. The MM420 COM link requires a 120 Ω termination at each end of the bus. Long cable runs (> 50 m) need shielded twisted pair with the shield grounded at one end only.
- Inter-frame gap too short. The USS specification requires ≥ 2 character times of silence between telegrams. The MM420 needs at least the start-time of the next master telegram to be clear. A slave response must finish before the master can transmit again on a half-duplex bus.
To stop the drive from tripping on a momentary checksum fault, set P2014[0] = 0 (off) during commissioning. Re-enable a value such as 500 ms once the link is stable. The MM420 will then fault F0072 if it does not receive a valid telegram within the window—useful for safety integrity but a nuisance during bring-up.
10. BICO Interconnection for Flexible Command Sources
BICO (Binector/Connector technology) is the internal signal-routing layer of the MM420. Each "function" (an FFxxxx block) has inputs that can be wired to outputs of any other function. The two BICO parameters that matter for this scenario are P0810 and P0811.
| Parameter | Function | Typical value for USS-primary |
|---|---|---|
| P0810 | CDS bit 0 (command source select) | 0 (CDS0 active). Or wire a DI: 722.0 = DI0 |
| P0811 | CDS bit 1 | 0 |
| P0700[0] / [1] | Command source in CDS0 / CDS1 | [0]=1 BOP, [1]=4 USS |
| P1000[0] / [1] | Setpoint source in CDS0 / CDS1 | [0]=1 MOP, [1]=4 USS |
The MM420 evaluates P0810 and P0811 every cycle to select the active CDS. Wiring a DI to P0810 lets a hardware switch or HMI button toggle between BOP and USS without any parameter write. This is the cleanest way to achieve "local AND remote without touching parameters" on the MM420. For a deeper discussion of BICO, see the parameter list's BICO section in the Parameter List.
11. Comparison: USS vs BOP vs Terminal Command Sources
| Attribute | BOP (P0700=1) | Terminal (P0700=2) | USS COM (P0700=4) | USS BOP (P0700=5) |
|---|---|---|---|---|
| Run command path | Green I button on panel | DI0/DI1 logic | STW1 bit 0 on RS-485 | STW1 bit 0 on BOP port |
| Setpoint path | BOP arrow keys / MOP | Analog input or fixed | HSW on RS-485 | HSW on BOP port |
| Reversal | Reversing key | DI assigned to reverse | STW1 bit 11 | STW1 bit 11 |
| Fault acknowledge | STOP/RESET key | DI assigned to ack | STW1 bit 7 (rising edge) | STW1 bit 7 |
| Best for | Manual commissioning, test bench | Hard-wired control panels, safety circuits | PLC integration via USS | External BOP-2 / AOP over RS-485 |
| Diagnostic visibility | High (r-values shown on BOP) | Medium (LEDs only) | High (read r0054, r0052, r0021 from master) | High |
| Switching cost to/from USS | One parameter write (P0700) | One parameter write (P0700) | N/A | One parameter write (P0700) |
Recommendation: when the master PLC is the long-term authority, leave P0700 = 4 and P1000 = 4. Use a DI to switch to CDS1 (BOP) for local maintenance, then back to CDS0 (USS) for production. This is the most reliable workflow on the MM420 in the field.
12. Verification Checklist
- Master sends P2011 (USS address) = the address stored in the drive's P2011 parameter.
- Master sends P2010 (USS baud rate) = the value in the drive's P2010 parameter.
- Master sends P2012 / P2013 lengths equal to the drive's P2012 / P2013 values.
- BCC of every outgoing telegram equals the Siemens USS XOR algorithm result.
- Drive's r0054 transitions from 0x0000 → 0x047E → 0x047F as the master sends those values.
- Drive's r0052 transitions from 0x0040 (switch-on inhibit) → 0x0031 (ready) → 0x0037 (operation enabled).
- Drive's r0021 ramps from 0 to setpoint on the P1120 ramp.
- No active fault in r0947. If F0072 is present, set P2014[0] = 0 for commissioning and clear the fault via STW1 bit 7.
- With the master stopped, jog from the BOP. If the BOP green button works but USS does not, the issue is 100% on the bus side, not the drive.
- Disconnect the master and read r0054 with DriveMonitor or STARTER. If r0054 = 0, P0700 is wrong. If r0054 = 0x047E, the master is just not sending 0x047F.
Once all ten checks pass, the drive is ready for production. Enable P2014[0] (telegram off time) at a value like 500 ms for safety integrity. The drive will fault F0072 if the bus is broken—which is what you want for a critical application.
Why does the MM420 respond to USS polling but ignore the run command from the PLC?
Because P0700 (command source) is not 4. The drive is bound to the BOP or to terminal inputs, not to USS. Even though the master reads parameter values successfully (PKW path), the STW1 path is not active. Set P0700 = 4 (USS on COM link) and P1000 = 4 (setpoint on USS), then send STW1 = 0x047E followed by 0x047F to start.
What is the correct STW1 value to start the MM420 over USS?
0x047F (1151 decimal) for forward run, 0x0C7F (3199 decimal) for reverse run. Both keep bits 1, 2, 3, 4, 5, 6 and 10 set so the inverter enables IGBTs, releases the ramp, and acknowledges PLC control. Send 0x047E (1150) first to move out of "Switch-on inhibit," then 0x047F to accelerate.
How do I switch between local (BOP) and remote (USS) without editing parameters each time?
Use CDS switching. Set P0700[0] = 1 (BOP), P1000[0] = 1 (MOP), P0700[1] = 4 (USS), P1000[1] = 4 (USS), then wire a digital input to P0810 = 722.0 (DI0). The DI selects CDS0 (BOP) when open, CDS1 (USS) when closed. No parameter writes are required at runtime.
How do I confirm the drive is actually receiving the run command from the master?
Read r0054 (control word 1) on the drive. It shows the most recently decoded STW1. If r0054 = 0x047F while the motor is not running, the drive has accepted the run command but is in a fault or inhibit state—check r0052 (status word) and r0947 (active fault). If r0054 = 0, the drive is not bound to USS.
What does F0072 mean and how do I clear it?
F0072 is "USS telegram failure"—the drive did not receive a valid telegram within the P2014[0] window. Set P2014[0] = 0 during commissioning to disable the watch-dog. To clear an active F0072, send a single telegram with STW1 bit 7 set (0x04FF), then return to 0x047E. The fault clears on the rising edge of bit 7.
Why does the motor accelerate briefly and then stop when I send the run command?
The drive is in OFF2 or OFF3 due to a STW1 bit transition. Bits 1 and 2 of STW1 must remain at 1 (no coast, no quick stop) for the duration of the run. If the master toggles them between cycles, the drive disables the IGBTs and freewheels. Verify that the master is sending 0x047F continuously, not a one-shot pulse.