Normally Open and Normally Closed Devices
The Core Idea
Normally open and normally closed describe a physical contact's state when its device is not actuated. In a programmable logic controller (PLC) program, the same terms describe tests of a stored bit, so the device's wiring and the program's test must be considered separately.
What you will learn
Predict a device's input bit at rest, while actuated, and with a broken wire, for normally open and normally closed wiring.
Choose the program contact from what the input bit reads when the output should be on, not from how the device is wired.
Explain why a normally closed Stop input is read with a normally open program contact.
Predict how a broken wire changes each input bit and the resulting output.
Why it matters
A button's physical position and its input bit need not have the same apparent ON/OFF meaning. Keeping those meanings clear is essential when reading a stop circuit.
The problem
A parts feeder has an ordinary operating Stop button. The program must permit the feeder to run while Stop is not pressed, and drop that permit while Stop is pressed.
The words "normally open" and "normally closed" name two different things, and this lesson keeps them apart:
Device wiring. Inside every switch is an electrical contact, and "normally" means at rest, not actuated. A normally open contact is open at rest and closes while the device is actuated, so its input bit is ON only while the device is actuated. Every input in Field Devices was wired this way. A normally closed contact is closed at rest and opens while the device is actuated, so its input bit is ON at rest and OFF while the device is actuated.
Program contact. A contact in a rung tests a bit, as in NOT Logic: Negated Contacts. A normally open contact passes while its bit is TRUE; a normally closed contact passes while its bit is FALSE.
They share names, but they are separate choices: one is made with wire at the machine, the other in the program.
The Stop button in this lesson is wired normally closed:
| Signal | Device | Meaning |
STOP_OK | Stop pushbutton, wired normally closed (input) | TRUE while Stop is not pressed, because the closed contact delivers current. FALSE while Stop is pressed, and also FALSE if the wire breaks. |
RUN_PERMIT | RUN PERMIT lamp (output) | TRUE permits the feeder to run. FALSE means the feeder must stop. |
In a full program, RUN_PERMIT is one condition of the motor's run rung, next to the Start button and the memory you build in Start/Stop Seal-In Circuit. Here only the Stop condition matters. Every signal is a BOOL (Boolean), ON or OFF; there are no analog values or units.
Predict
The program uses a normally open contact on STOP_OK, so the permit is on while the input is ON.
At rest, read the STOP panel: contact closed, input bit ON. The rung passes and RUN PERMIT is lit.
Hold STOP for a moment. The input goes OFF and the permit drops. Release it, and the permit returns.
Break the wire. In the Fault injection panel under the demo, choose Broken wire, tag
STOP_OK, and press Inject fault. The permit drops and stays off. Press Clear fault when you are done.
With the fault injected, the STOP panel shows both sides of the broken wire: the button is released and its contact is closed, a Fault row says Wire broken, and the Input bit is OFF (0). The PLC only gets what reaches its terminal, so the scan stepper and the contact in the rung show the same OFF.
Try it
Now compare the other wiring. The demo below has a Stop button wired normally open solely to show how the bit behaves differently when the wire breaks.
| Signal | Device | Meaning |
STOP_PRESSED | Stop pushbutton, wired normally open (input, comparison only) | TRUE while Stop is pressed. FALSE while it is not pressed, and also FALSE if the wire breaks. |
RUN_PERMIT | RUN PERMIT lamp (output) | TRUE permits the feeder to run. |
Because this bit is TRUE while Stop is pressed, the program needs a normally closed contact to permit running.
Hold STOP.
STOP_PRESSEDturns ON, the normally closed contact opens, and the permit drops. With healthy wiring, this version works just like the first one.In the Fault injection panel, choose Broken wire, tag
STOP_PRESSED, and press Inject fault. Nothing changes: the permit stays on.Hold STOP again. The permit stays on. The Stop button no longer works. Here only the injected-fault marker gives it away; on a real machine nothing would tell you until someone pressed STOP. Press Clear fault.
Look closer
Put the two experiments side by side:
Stop wired normally closed (STOP_OK), normally open contact | Stop wired normally open (STOP_PRESSED), normally closed contact | |
| Stop not pressed | Input ON, contact passes, permit ON | Input OFF, contact passes, permit ON |
| Stop pressed | Input OFF, contact blocks, permit OFF | Input ON, contact blocks, permit OFF |
| Wire broken | Input OFF, contact blocks, permit OFF: the feeder stops | Input OFF, contact passes, permit ON: Stop no longer works |
Look at the bottom row. A broken wire, a loose terminal, or a lost supply to the button all deliver no current, so the input reads OFF whichever way the button is wired. What changes is what OFF means:
With normally closed wiring, OFF means "stop" to this program. Pressed or broken, the PLC does the same thing: it drops the permit. The bit alone cannot distinguish those two causes.
With normally open wiring, OFF means "not pressed". The PLC cannot tell a broken wire from a healthy button at rest, so the failure stays hidden until the moment someone needs to stop.
The contact choice follows one question: when the output should be on, is the input bit ON or OFF? ON means a normally open contact; OFF means a normally closed contact. For the normally closed Stop, STOP_OK is ON exactly when running is allowed, so the program uses a normally open contact. The wiring word and the contact name do not have to match, and for a Stop button they don't.
Change it
The author of this version copied the wiring into the program: the button is wired normally closed, so they used a normally closed contact. Open the editor. With Stop not pressed, RUN PERMIT is off. Hold STOP: now it lights, which is backwards. Change only the contact on STOP_OK so the permit is on while Stop is not pressed, and run the checks. They include a broken wire. Then inject a broken wire on STOP_OK yourself and watch the permit drop.
Show the guided change
Replace the normally closed contact on STOP_OK with a normally open contact. STOP_OK is TRUE while Stop is not pressed, and a normally open contact passes while its bit is TRUE, so the permit is on at rest. Pressing Stop or breaking the wire makes STOP_OK FALSE, the contact blocks, and the permit drops. The wiring did not change; only the program's test of the bit did.
Check yourself
Four devices on the feeder, each with its own rule:
A. Stop pushbutton, wired normally closed.
STOP_OKis TRUE while Stop is not pressed.RUN_PERMIT(the PERMIT lamp) must be on while Stop is not pressed.B. Limit switch, wired normally open.
CART_HOMEis TRUE while the cart presses the lever.HOME_LAMP(the HOME lamp) must be on while the cart is home.C. Photo-eye, wired normally closed.
CHUTE_CLEARis TRUE while nothing blocks the beam.BLOCKED_LAMP(the BLOCKED lamp) must be on while a part blocks the beam.D. Proximity sensor, wired normally open.
PART_IN_NESTis TRUE while a metal part is in the nest.FEED_VALVE(the FEED lamp), which opens to push the next part in, must be on while the nest is empty.
Each input is FALSE in its other state, and FALSE if its wire breaks.
The starting program copies each device's wiring into its contact. Decide which contacts are wrong and fix them. Operate the devices on the panel to see each input bit, then run the checks. They try every device at rest and actuated. Retry as often as you need.
Hint 1
For each case, ask: when this output should be on, is its input bit ON or OFF? The wiring on the device does not decide the contact by itself.
Hint 2
STOP_OK is ON while Stop is not pressed, exactly when the permit should be on. PART_IN_NEST is OFF while the nest is empty, exactly when the feed valve should open. Cases B and C work the same way.
Hint 3
Use normally open contacts on STOP_OK and CART_HOME, and normally closed contacts on CHUTE_CLEAR and PART_IN_NEST. Two of the starting contacts are already right.
Show the worked solution
| Case | When the output should be on, the input bit is… | Contact |
| A | STOP_OK ON (Stop not pressed) | Normally open |
| B | CART_HOME ON (cart home) | Normally open |
| C | CHUTE_CLEAR OFF (beam blocked) | Normally closed |
| D | PART_IN_NEST OFF (nest empty) | Normally closed |
The starting program was right for B and C only by coincidence: copying the wiring happens to match the rule there. It was wrong for A and D. The Stop button is wired normally closed, yet it needs a normally open contact. The proximity sensor is wired normally open, yet it needs a normally closed contact.
Now predict what a broken wire does to each case. Imagine the wire to each input breaking, one at a time, while your passing program runs. Write down what the input reads, what its output does, and which physical condition the PLC would mistake it for. Then check with the Fault injection panel in the challenge above.
| Case | Input reads | What the output does | What the PLC mistakes it for |
| A: Stop | ? | ? | ? |
| B: Cart home | ? | ? | ? |
| C: Chute | ? | ? | ? |
| D: Nest | ? | ? | ? |
Show the broken-wire answers
| Case | Input reads | What the output does | What the PLC mistakes it for |
| A: Stop | OFF | RUN_PERMIT drops: the feeder stops. | Stop was pressed. |
| B: Cart home | OFF | HOME_LAMP stays off, even with the cart home. | The cart is away. |
| C: Chute | OFF | BLOCKED_LAMP lights, even with the chute clear. | The beam is blocked. |
| D: Nest | OFF | FEED_VALVE opens, even with a part in the nest. | The nest is empty. |
What happened and why
Two separate decisions meet at every input. The wiring at the machine decides what ON means for that bit. The contact in the program decides whether the rung passes on ON or on OFF. Choose the contact by asking what the bit reads when the output should be on, never by copying the wiring word.
The PLC cannot tell a broken wire from an open device contact by looking at one OFF bit. With this normally closed Stop circuit, OFF drops the run permit whether the button is pressed or its wire breaks. With the normally open comparison circuit, OFF is the usual released-button value, so the same broken wire leaves the permit on. The wiring choice changes what an OFF bit means to the program.
Name each tag for what TRUE means, such as STOP_OK or CHUTE_CLEAR, and describe it that way. Then the contact choice reads like the requirement: run while STOP_OK. Every Stop input in this course follows that convention: TRUE until Stop is pressed, read with a normally open contact.
Common mistakes
Copying the wiring into the program. Cause: the device and the contact share the words "normally closed". Symptom: the permit is on only while Stop is held. Fix: ask what the bit reads when the output should be on.
Copying a normally open Stop example without checking a broken wire. Cause: observing only healthy button presses. Symptom: both versions appear equivalent until the wire opens. Fix: compare the OFF-bit meaning with fault injection before choosing a wiring and contact convention.
Describing a normally closed stop input as "TRUE = pressed". Cause: describing the button instead of the bit. Symptom: the contacts get chosen backwards. Fix: name it
STOP_OKand describe it as TRUE while Stop is not pressed.Treating OFF as proof that a button was pressed. Cause: forgetting that an open wire produces the same input bit. Symptom: the program response is explained incorrectly during a wiring fault. Fix: inspect the field circuit as well as the live tag.
Platform notes
The normally open contact is called XIC, "Examine If Closed", and the normally closed contact is XIO, "Examine If Open". XIC passes while its bit is 1. A Stop button wired normally closed is read with XIC: the instruction passes while the stop circuit is closed and its bit is 1.
In LAD (ladder) the instructions are called Normally open contact and Normally closed contact, drawn with the same symbols as this lesson. The same rule applies: a Stop button wired normally closed is read with a normally open contact.
Enable JavaScript to run the embedded simulator and complete the interactive exercises.