Interlock
Two seal-ins, forward and reverse, each with a normally closed contact on the other output.
Step by step
Pick a step. The rungs are drawn by the editor after Core scans the program up to that step.
Global.FwdPBXIC
Global.MotorFwdXIC
Global.StopPBXIO
Global.MotorRevXIO
Global.MotorFwdOTE
Global.RevPBXIC
Global.MotorRevXIC
Global.StopPBXIO
Global.MotorFwdXIO
Global.MotorRevOTE
1. Press FwdPB. Rung 0 is true and MotorFwd turns on. In rung 1, XIO MotorFwd now blocks power.
Global.FwdPBXIC
Global.MotorFwdXIC
Global.StopPBXIO
Global.MotorRevXIO
Global.MotorFwdOTE
Global.RevPBXIC
Global.MotorRevXIC
Global.StopPBXIO
Global.MotorFwdXIO
Global.MotorRevOTE
2. Release FwdPB. MotorFwd holds itself on through its seal branch.
Global.FwdPBXIC
Global.MotorFwdXIC
Global.StopPBXIO
Global.MotorRevXIO
Global.MotorFwdOTE
Global.RevPBXIC
Global.MotorRevXIC
Global.StopPBXIO
Global.MotorFwdXIO
Global.MotorRevOTE
3. Press RevPB. Rung 1 has power from RevPB, but XIO MotorFwd blocks it. MotorRev stays off.
Global.FwdPBXIC
Global.MotorFwdXIC
Global.StopPBXIO
Global.MotorRevXIO
Global.MotorFwdOTE
Global.RevPBXIC
Global.MotorRevXIC
Global.StopPBXIO
Global.MotorFwdXIO
Global.MotorRevOTE
4. Press StopPB. XIO StopPB breaks rung 0. MotorFwd turns off.
Global.FwdPBXIC
Global.MotorFwdXIC
Global.StopPBXIO
Global.MotorRevXIO
Global.MotorFwdOTE
Global.RevPBXIC
Global.MotorRevXIC
Global.StopPBXIO
Global.MotorFwdXIO
Global.MotorRevOTE
5. Press RevPB. MotorFwd is 0 now, so XIO MotorFwd passes power and MotorRev turns on.
Global.FwdPBXIC
Global.MotorFwdXIC
Global.StopPBXIO
Global.MotorRevXIO
Global.MotorFwdOTE
Global.RevPBXIC
Global.MotorRevXIC
Global.StopPBXIO
Global.MotorFwdXIO
Global.MotorRevOTE
6. Press FwdPB. MotorRev is on, so XIO MotorRev blocks rung 0. FwdPB does nothing until Stop.
| Step | FwdPB | RevPB | StopPB | MotorFwd | MotorRev |
|---|---|---|---|---|---|
| 1. Press FwdPB | 1 | 0 | 0 | 1 | 0 |
| 2. Release FwdPB | 0 | 0 | 0 | 1 | 0 |
| 3. Press RevPB | 0 | 1 | 0 | 1 | 0 |
| 4. Press StopPB | 0 | 0 | 1 | 0 | 0 |
| 5. Press RevPB | 0 | 1 | 0 | 0 | 1 |
| 6. Press FwdPB | 1 | 0 | 0 | 0 | 1 |
Why it works
- Each rung is a seal-in with one extra XIO, on the other output.
- An XIO passes power only while its tag is 0. When
MotorFwdis 1, XIOMotorFwdin rung 1 blocksMotorRev, and the other way round. - The rungs run from top to bottom. If both buttons are pressed in the same scan from stopped, rung 0 runs first and
MotorFwdwins. Rung 1 then readsMotorFwdas 1.
Common mistakes
- Interlocking on the buttonsXIO RevPB in the forward rung only blocks while the button is held. Interlock on the outputs, MotorFwd and MotorRev.
- Reversing without stoppingThe interlock forces a Stop between directions. Add a timer after Stop if the machine needs time to come to rest.