Engineering · PLC · Project 2 of 15 · Motor control · Level 2
Forward / reverse with interlock
Two contactors swap two phases to reverse a motor. The program must never let both close together.

You will learn
Interlocking: each rung contains the other output as a normally closed contact (!KM_R). If both contactors closed at once they would short two phases together. Good panels also add a mechanical interlock on the contactors, because software alone is not enough.
How it works
- Press FORWARD. KM1 closes and the motor turns one way.
- While it runs press REVERSE. Nothing happens, because KM_F blocks the reverse rung.
- Press STOP, then REVERSE. Now the motor spins the other way.
In real life
Hoists, gates, rolling shutters and machine tool tables all use forward and reverse contactors with an interlock.
Inputs, outputs and addresses
The same signals on seven PLC brands. Inputs and outputs are numbered in order; check your own hardware and software, because addresses depend on the model and module position.
| Name | What it is | Type | Siemens S7-1200 | Allen-Bradley CompactLogix | Mitsubishi iQ-F FX5U | Delta DVP / AS | Omron CP2E | Schneider M241 | Inovance H5U |
|---|---|---|---|---|---|---|---|---|---|
| FWD | FORWARD push-button | Input | %I0.0 | Local:1:I.Data.0 | X0 | X0 | 0.00 | %IX0.0 | X0 |
| REV | REVERSE push-button | Input | %I0.1 | Local:1:I.Data.1 | X1 | X1 | 0.01 | %IX0.1 | X1 |
| STOP | STOP push-button (N.C.) | Input | %I0.2 | Local:1:I.Data.2 | X2 | X2 | 0.02 | %IX0.2 | X2 |
| OL | Overload contact (N.C.) | Input | %I0.3 | Local:1:I.Data.3 | X3 | X3 | 0.03 | %IX0.3 | X3 |
| KM_F | Forward contactor | Output | %Q0.0 | Local:2:O.Data.0 | Y0 | Y0 | 100.00 | %QX0.0 | Y0 |
| KM_R | Reverse contactor | Output | %Q0.1 | Local:2:O.Data.1 | Y1 | Y1 | 100.01 | %QX0.1 | Y1 |
Ladder diagram (shown for Siemens, live state)
Green wires carry power in the moment captured below. Switch the brand and the language in the simulator.
Structured text, Siemens SCL
(* Siemens S7-1200, CPU 1214C DC/DC/DC - TIA Portal - SCL *)
(* Rung 1: Forward, blocked while reverse is on *)
"KM_F" := ("FWD" OR "KM_F") AND "STOP" AND "OL" AND NOT "KM_R";
(* Rung 2: Reverse, blocked while forward is on *)
"KM_R" := ("REV" OR "KM_R") AND "STOP" AND "OL" AND NOT "KM_F";Structured text, Allen-Bradley
(* Allen-Bradley CompactLogix 5069 (L306ER) - Studio 5000 Logix Designer - Structured Text *)
(* Rung 1: Forward, blocked while reverse is on *)
KM_F := (FWD OR KM_F) AND STOP AND OL AND NOT KM_R;
(* Rung 2: Reverse, blocked while forward is on *)
KM_R := (REV OR KM_R) AND STOP AND OL AND NOT KM_F;Try this
- Press both direction buttons together (Shift-click each to hold it).
- Watch the NC contact !KM_R turn green or grey in the ladder.
Parts to buy
The links open a search on each store, so you see what is in stock today. Check the model, voltage and price before you order.
This is a learning tool. It teaches the logic, not the exact keystrokes of each vendor’s software. Check the manual of your own PLC.