1. System Overview and Topology
The target application is a washing-machine-style reversing cycle: motor rotates forward, decelerates to zero, pauses, accelerates in the reverse direction, decelerates, pauses, and repeats until a cycle counter terminates the run. The control layer is a Siemens LOGO! 8 OBA6 logic module; the power layer is a Siemens Micromaster 440 (MM440) frequency inverter. The LOGO! generates the three control bits (enable, run, reverse) that the MM440 interprets through its digital inputs DIN1, DIN2, and DIN3.
The full reversing cycle maps to exactly three discrete states on the MM440 control terminal strip:
| State | Motor action | DIN1 (ON) | DIN2 (Run) | DIN3 (Reverse) | LOGO! outputs |
|---|---|---|---|---|---|
| A | Forward run | 1 | 1 | 0 | Q1=ON, Q2=OFF |
| B | Stop / pause | 1 | 0 | 0 | Q1=OFF, Q2=OFF |
| C | Reverse run | 1 | 1 | 1 | Q1=ON, Q2=ON |
| B' | Stop / pause | 1 | 0 | 0 | Q1=OFF, Q2=OFF |
For low-complexity applications without soft start or adjustable ramps, a hardwired reversing switch replaces both the LOGO! and the MM440. The McMaster-Carr reversing motor switches catalog covers drum switches, reversing contactors, and magnetic reversing starters rated from fractional HP upward and ships same-day/next-day in most regions.
2. Hardware Configuration and Wiring
The LOGO! 8 OBA6 base module ships with eight digital inputs (I1–I8) and four relay/transistor outputs (Q1–Q4). Two outputs are sufficient for direction control; a third output wired to MM440 OFF2 provides an emergency-stop path that bypasses the LOGO! timing.
2.1 MM440 Control Terminal Strip
The MM440 has a removable control terminal block on the lower front of the unit. The relevant terminal assignments for this application are:
| Terminal | Label | Function | Wired from |
|---|---|---|---|
| 5 | DIN1 | ON/OFF1 (drive enable) | LOGO! Q1 or maintained ON switch |
| 6 | DIN2 | Run / forward | LOGO! Q2 |
| 7 | DIN3 | Reverse | LOGO! Q3 |
| 8 | DIN4 | Fault acknowledge (rising edge) | Optional (LOGO! Q4) |
| 9 | +24 V out | Isolated 24 VDC, ≤100 mA | Source for DIN commons |
| 28 | 0 V | Common reference | Common |
| 10 | AIN1+ | Analog setpoint (optional) | Speed pot or 4–20 mA loop |
| 11 | AIN1– | Analog return | Ground ref |
2.2 Wiring Topology
Connect LOGO! outputs to MM440 digital inputs as sourcing 24 VDC logic. The MM440 supplies its own +24 V at terminal 9 (max 100 mA). If LOGO! outputs are relay type, route them as voltage-free contacts back to MM440 terminals 5, 6, 7 with the +24 V jumper applied internally at terminal 9. Keep the LOGO! output commons tied to MM440 terminal 28 (0 V) to share a single 0 V reference.
3. Micromaster 440 Parameter Setup
After wiring verification, configure the MM440 parameter set so DIN1, DIN2, DIN3 perform the intended functions. Drive parameter access requires the BOP (Basic Operator Panel) or AOP (Advanced Operator Panel) on the front of the MM440, or DriveMonitor/STARTER over the RS485 port. The full parameter reference is in the MM440 operating instructions.
| Parameter | Index | Value | Meaning |
|---|---|---|---|
| P0003 | - | 3 | Access level = expert (required to see P0700–P0709) |
| P0700 | [1] | 1 | Command source = terminal strip (digital inputs) |
| P0701 | [1] | 1 | DIN1 = ON/OFF1 (drive enable) |
| P0702 | [1] | 1 | DIN2 = ON/OFF1 (run forward with enable) |
| P0703 | [1] | 12 | DIN3 = Reverse (asserted while ON/OFF1 active → field reversed) |
| P0704 | [1] | 9 | DIN4 = Fault acknowledge (rising edge resets faults) |
| P1000 | [1] | 1 or 2 | Setpoint = MOP (DIN5/DIN6) or analog input 1 |
| P1120 | [1] | 5.0 s | Ramp-up time (state A and C must hold ≥ P1120 + 0.5 s) |
| P1121 | [1] | 3.0 s | Ramp-down time (must finish before next direction change) |
| P1130 | [1] | 0.5 s | Initial ramp-up rounding |
| P1131 | [1] | 0.5 s | Final ramp-down rounding |
| P1135 | [1] | 3.0 s | OFF3 ramp-down time (used by emergency stop) |
| P1230 | [1] | 1 | DC injection braking at stop (helps guarantee zero speed before reversal) |
| P1231 | [1] | 0.5 s | DC braking duration |
| P1232 | [1] | 100% | DC braking current (% of rated motor current) |
| P1300 | [1] | 0 | Control mode = V/f linear (sufficient for wash-cycle applications) |
| P1080 | [1] | 0 Hz | Minimum frequency limit |
| P1082 | [1] | 50 Hz | Maximum frequency limit |
3.1 Saving Parameters
After parameter changes, press the P key on the BOP for 2 seconds to save to EEPROM. If you skip this step, the MM440 reverts to previous values on power cycle. The BOP display shows a flashing S during the save operation, then returns to the parameter number.
4. The Three-State Reversing Cycle Logic
The intended sequence is:
- State A — forward run (Q1=1, Q2=0) for the run interval T_run
- State B — pause (Q1=0, Q2=0) for the pause interval T_pause
- State C — reverse run (Q1=1, Q2=1) for T_run
- State B' — pause (Q1=0, Q2=0) for T_pause
- Repeat from step 1 until total cycle count reached
The bug reported in the field report is that Q1 and Q2 "alternated" without proper sequencing — the pulse generator alone does not store which direction was last active, so it cannot guarantee that Q1 (forward) and Q1+Q2 (reverse) are interleaved cleanly. The counter being "always reset before Q3 gets activated" indicates the cycle-initiation pulse arrives while the run-state timer is still active, prematurely re-triggering the cycle and creating overlap between state C and state B'.
The root cause is a missing state machine: the program attempts to derive the current state from timers alone, but timers only assert a signal during a window — they do not latch direction. The fix is a true SR flip-flop that holds the last direction until the cycle boundary explicitly toggles it.
5. LOGO! OBA6 Program Implementation
The cleanest implementation uses three core elements: a direction toggle (SR flip-flop), a run timer, and a pause timer. The SR flip-flop stores the last commanded direction so each cycle automatically alternates. Both timers must reset before the cycle can advance.
5.1 Function Block Inventory
| Block | Type (LOGO!Soft Comfort V8.x) | Purpose |
|---|---|---|
| B01 | AND (B001) | Master enable = Cycle_active AND Run_active |
| B02 | On-delay (B007), T = T_run | Run-state timer — limits forward/reverse duration |
| B03 | On-delay (B007), T = T_pause | Pause-state timer — limits stop duration |
| B04 | RS flip-flop (B005), retentive | Stores direction state (0=forward, 1=reverse) |
| B05 | NOT (B003) | Inverts flip-flop output for forward run |
| B06 | Counter (B009), retentive | Terminate after N cycles |
| B07 | OR (B002) | Cycle-start condition (start button OR counter reset) |
| B08 | Pulse generator (B008) | Cycle clock during run/pause transitions |
| Q1 | Output → MM440 DIN2 | Run command (asserted during state A and state C) |
| Q2 | Output → MM440 DIN3 | Reverse command (asserted during state C only) |
| Q3 | Output → MM440 DIN1 | Drive enable (held on while cycle counter < target) |
5.2 Logic Equations
// State machine
DIR = NOT(DIR) toggled at every run/pause boundary
RUN = Cycle_active AND NOT(Pause_timer_done)
FAULT = MM440 DIN4 rising edge clears MM440 faults
// Outputs to MM440
Q1 (DIN2 Run) = Cycle_active AND (Start OR Q1_held) AND RUN
Q2 (DIN3 Rev) = Cycle_active AND RUN AND DIR
Q3 (DIN1 ON) = Cycle_active AND NOT(Stop)
// Cycle termination
Counter resets when Start released; increments on every
cycle boundary; cycle stops when Counter reaches N.
5.3 Why Q1 Must Stay High During Both States A and C
The MM440 treats DIN3 as a modifier on the active run command at DIN2. If DIN3 is asserted while DIN2 is low, the drive ignores the reversal request. If DIN2 is high and DIN3 rises, the drive reverses only after the existing run command is removed and re-applied. With ramp settings (P1121 = 3.0 s), the motor still has appreciable speed when DIN2 drops, and re-asserting DIN2 with DIN3 already high can either trip F0001 (if speed is high) or perform a soft reversal (if speed has decayed). The pause timer guarantees the speed is near zero before the reversal command is presented.
6. Timing Diagram
The diagram shows two full cycles. Q1 (DIN2) is high during both run states and low during both pauses. Q2 (DIN3) rises only during reverse run. The DIR flip-flop toggles at each cycle boundary, guaranteeing alternation. Motor frequency follows the MM440 ramp profile and reaches near-zero before each direction change.
7. Direction-Change Interlocks and Safety
Mechanical stress from plug reversal is the leading cause of washing-machine motor failure. The MM440 will tolerate a programmed direction change only if the rotor has reached standstill or near-standstill. Three protection layers should be implemented in parallel:
- Time-based interlock: the LOGO! pause timer (T_pause) must exceed P1121 + P1131 + P1231 by at least 0.5 s. This is the minimum implementation.
- Parameter-side active braking: enable P1230 = 1 (DC injection braking) so the MM440 injects DC current at the end of state A and state C before allowing a new run command. This guarantees near-zero speed regardless of load inertia.
- Frequency-based interlock (advanced): read r0021 (actual frequency) via USS/Modbus from the MM440 and only release the new direction command when r0021 < 0.5 Hz. Requires an external USS bridge since LOGO! OBA6 does not natively speak USS.
8. Commissioning and Verification
- Bench test without MM440: power the LOGO! alone. Use a logic probe or oscilloscope on Q1 and Q2. Confirm three-state cycle (forward / pause / reverse / pause) with correct timing. Verify that Q2 only asserts when Q1 is also asserted.
- MM440 dry-run: connect Q1, Q2, Q3 to MM440 DIN1, DIN2, DIN3. Leave the motor disconnected. Run 5 cycles and monitor r0002 (drive state), r0021 (output frequency), r0027 (output current) on the BOP. Verify direction changes happen only when r0021 is near zero.
- No-load motor test: connect the motor with no mechanical load. Run 3 cycles, log current on a clamp meter. Peak current during direction change should not exceed 1.5 × rated motor current. If it does, extend T_pause or reduce ramp rate.
- Loaded motor test: connect the mechanical load. Run 10 production cycles. Listen for abnormal noise during direction change — grinding or clicking indicates plug reversal occurring. Vibration sensors can confirm this objectively.
- Fault scenario test: trip an MM440 fault (e.g., disconnect an output phase). Verify the LOGO! cycle pauses, that the fault LED latches on the MM440, and that pressing the fault-acknowledge button (or asserting DIN4) clears the fault and resumes the cycle.
9. Troubleshooting Matrix
| Symptom | Likely cause | Diagnostic | Resolution |
|---|---|---|---|
| MM440 trips F0001 on direction change | Plug reversal; pause too short | Scope DIN2 and DIN3 simultaneously; verify both go low before either rises | Increase T_pause to P1121 + P1231 + 1.0 s |
| MM440 trips F0002 on direction change | Regenerative overvoltage during plug | Check P1121 ramp-down; verify brake chopper fitted if high inertia | Increase P1121 to 5.0 s or install braking resistor |
| Motor rotates only forward; reverse never engages | Q2 not asserted, or P0703 not set to 12 | Read P0703[1] from BOP; probe Q2 output of LOGO! | Set P0703[1]=12; verify B04 RS flip-flop set logic |
| Motor jogs; direction alternates too rapidly | Pulse generator period shorter than total cycle time | Read pulse generator parameters in LOGO!Soft Comfort | Set pulse period ≥ T_run + T_pause |
| Counter never reaches target; cycle never terminates | Counter reset on every run transition | Verify counter reset input is wired to STOP only | Move counter reset input to cycle-end signal |
| LOGO! loses cycle state on power dip | Retentive flag not enabled | Inspect block properties → enable retention | Enable retention on B04 (RS flip-flop) and B06 (counter) |
| Motor accelerates smoothly but does not reach set frequency | P1000 setpoint missing | Read r0024 on BOP | Wire analog setpoint or set P1000=1 with MOP defaults |
| F0003 (Undervoltage) trips at direction change | DC bus sags when motor regenerates during ramp-down | Measure DC bus with isolated scope | Extend ramp-down to 5.0 s; check input supply stability |
| F0051 (EEPROM fault) on parameter save | Parameter written during drive enabled | Stop drive before saving parameters | Remove ON command before pressing P key on BOP for 2 s |
| LOGO! outputs chatter when motor starts | Voltage drop on shared 24 V supply | Measure LOGO! output voltage under load | Use external 24 V supply instead of MM440 terminal 9 (100 mA limit) |
10. Alternate Hardware Solutions
For applications that need only on/off reversing without speed control, soft start, or fault diagnostics, the LOGO! + MM440 combination is over-specified. A reversing drum switch or magnetic reversing contactor assembly handles direction change with hardwired logic at lower cost and higher reliability for simple applications. The McMaster-Carr reversing motor switches catalog covers drum switches, reversing contactors, and magnetic reversing starters from fractional HP through several HP and ships same-day or next-day from regional warehouses in North America.
Trade-offs:
- LOGO! + MM440: programmable timing, soft start, fault diagnostics, current limiting, but more complex wiring and parameter setup.
- Reversing drum switch: simple, robust, no programming required, but no soft start and no fault detection. Direction change while running will produce plug reversal.
- Reversing contactor with mechanical interlock: prevents simultaneous forward/reverse contact closure (the most common failure mode in reversing circuits), but still requires external timing for pause between direction changes.
11. Extending the Application
The three-state cycle is the base pattern. Several practical extensions are common:
- Variable cycle count: replace the fixed counter target with a LOGO! analog threshold input (AI1 on the LOGO! BM AI module 6ED1055-1MA00-0BA0). Read the target from a potentiometer on the HMI.
- Variable run/pause time: use two analog inputs for T_run and T_pause. Multiply through an analog arithmetic block (B414 in LOGO!Soft Comfort V8.x) to scale the 0–10 V input to 1–30 s.
- Soft acceleration profile: drive the MM440 setpoint (P1000=2, analog input 1) from the LOGO! analog output (AQ on the LOGO! AM2 module 6ED1055-0MA00-0BA0). Ramp the setpoint from 0 to 50 Hz over the first second of T_run for smoother starts.
- Cycle counter readout: use the LOGO! text display (LOGO! TDE) to show the remaining cycle count, current state, and elapsed cycle time.
12. Related Siemens Resources
For deeper coverage of the LOGO! 8 hardware platform, refer to the LOGO! 8 system manual. The MM440 parameter list and fault codes are in the MM440 operating instructions. For migrating this wash-cycle application to a more capable controller, the S7-1200 with a G120 drive offers the same three-state cycle logic but with full USS/Modbus readback of motor speed inside the PLC program.
FAQ
Why does the MM440 trip F0001 when I reverse direction?
F0001 is overcurrent, almost always caused by a plug reversal — the motor is still rotating at speed when DIN3 is asserted. Verify the LOGO! pause timer is greater than the MM440 ramp-down time P1121 plus rounding P1131 plus DC braking time P1231. Add at least 1 second of margin, and enable DC injection braking via P1230=1 for extra protection.
Can DIN2 and DIN3 on the MM440 both be inactive when the motor is running?
No. With the standard P0702=1 / P0703=12 mapping, the MM440 requires DIN2 (run command) to be active for any rotation. DIN3 alone with DIN2 low has no effect. Forward run = DIN2 high, DIN3 low. Reverse run = DIN2 high, DIN3 high. This is why Q1 (DIN2) must stay high during both forward and reverse states in your LOGO! program.
What LOGO! function block toggles direction on each cycle?
Use an RS (Set/Reset) flip-flop, block B005 in LOGO!Soft Comfort V8.x, clocked by the cycle-complete pulse. Each pulse flips the stored state. Combine with the run and pause on-delay timers (B007) to drive Q1 and Q2 outputs. Enable retention on the flip-flop and counter so a power dip does not lose the cycle count.
Do I need the MM440 at all for a simple reversing application?
If you only need on/off reversing with no speed control or soft start, no. A reversing drum switch or contactor assembly, such as those in the McMaster-Carr reversing motor switches catalog, handles direction change with hardwired logic. Use the MM440 when you need adjustable ramp times, current limiting, fault diagnostics, or remote control.
How do I read the actual motor speed from the MM440 inside the LOGO!?
The LOGO! OBA6 does not natively speak USS or Modbus, so direct speed readback requires an external bridge such as a CM 2020 Modbus module or a third-party USS-to-Modbus gateway. A simpler alternative is to keep the run/pause timing generous enough that the MM440 ramp-down always finishes before direction reversal — typically 5 seconds of pause with P1121 = 3.0 s.
What is the minimum safe pause time between direction changes?
T_pause_min = P1121 + P1131 + P1231 + 0.5 s. With the parameter values recommended in this article (P1121 = 3.0 s, P1131 = 0.5 s, P1231 = 0.5 s), the minimum safe pause is 4.5 seconds; use 5.0 s for margin. Going shorter risks plug reversal and F0001 trips.