Normally-Closed Contacts for Stop Buttons

You may know the difference between normally open and normally closed contacts, but do you know where to use them?

This article will teach you where to use normally open and where to use normally closed for inputs and in your PLC program.

Normally-Closed Contacts for Stop Buttons

You will learn how to connect your PLC program with the physical PLC inputs.

Normally Closed For Stop Buttons

To explain this further I will divide the PLC logic into two parts. At last I will show how you should merge the two:

Hardware Logic

Input actuators and wiring (what is actually connected to the input).

Software Logic

The logic of your PLC program (the logic you program into the PLC).

Hardware Logic

Let’s begin with some digital inputs and some actuators to connect to these.

All digital inputs, and therefore all the digital input actuators have two states:

  • OFF (0)
  • ON (1)

But the digital actuators can not only have two states. They can also have one of two functions:

  • Normally open
  • Normally closed

The difference between connecting normally open actuators and normally closed actuators to a digital input is when you activate the actuators.

Take these two rules and remember them. This is the difference between normally open and normally closed:

Normally Open Input Actuators

In the default state (inactivated) of a normally open actuator the input bit is 0.

When you activate a normally open actuator the input bit will switch to 1.

Normally Closed Input Actuators

In the default state (inactivated) of a normally closed actuator the input bit is 1.

When you activate a normally closed actuator, the input bit is 0.

This can also be illustrated in a table:

Normally Closed Input Actuators

Normally closed actuators has the opposite effect on the state of the inputs they’re connected to compared to normally open actuators.

Keep in mind that the state of the actuator affects the state of the input and thereby the input bit. Each time the PLC scan cycle reaches the step where it updates the input bit, these are the values that the input bits will be updated to.

Software Logic

When you are developing a PLC program you will also be using logic. But instead of hardware logic with actuators you will now have ladder logic contacts or boolean instructions.

This is often where some confusion occurs. Because this other type of logic looks very similar to the hardware logic. In fact, the PLC programming language ladder logic is made to look like electrical circuits.

Just like the input actuators you have both normally open and normally closed contacts available in PLC programming. Often they are referred to as examine if closed (XIC) and examine if open (XIO).

The ladder logic symbols look almost like the electrical symbols for normally open and normally closed contacts, and the function of these are the same. I can even plot the same table, but this time for the PLC logic:

examine if closed (XIC) and examine if open (XIO)

As you might notice, the columns have moved and changed. The result of the boolean instructions (XIC and XIO) is now dependent on the values of the input bits.

Just like the state of the input bit is dependent on the state of the actuators.

State of actuator –> Input bit –> Result of boolean instruction

At last a column containing all the results of the boolean instructions.

The result is what comes after the instruction in your ladder diagram. If you have a coil connected after the bit logic instruction, the result column will be equal to the state of that coil.

Merging Software Logic and Hardware

When you create a new boolean instruction in your PLC program you will give it a certain address. This is the address of a single bit (boolean is 0 or 1 and so is a single bit).

Once you’ve given the instruction an address, the state of that particular bit will now be represented as the state of that instruction.

For example you can give an instruction the address of one of the PLC inputs. When doing so, the state of the instruction will now represent the state of the input. Because each PLC input has its own bit in the PLC memory.

The state of each of these bits represents the state of the corresponding input.

PLC Inputs Animation

Let’s move back to the start/stop example, which is really just a latch of a coil with an instruction to break the latching.

Here’s an illustration of how the whole system would look like, including both hardware and software:

Normally open as input actuator for stop signal

latch of a coil

Notice that I use a normally open contact as input actuator, even for the stop button. This is because I’ve already used normally closed logic in the software.

When the input actuator is activated, the input bit will turn ON or 1. But in my ladder logic I’ve used an examine if open instruction and given it the address of that input.

As you can see in the table above, the result of an examine if open instruction will be 0 if the input is 1.

This is good because in the ladder logic, the instruction has to break the connection and thereby the latching of the output.

But, since the state of the input has to be 1 to break the connection (result 0), the input actuator has to turn the input ON or 1 when activated.

In the table with input actuators above, you can see that a normally open contact will change the state of the input to 1 when activated. In that way, you can use the two tables to choose between normally open and normally closed logic.

But this is not good practice.

Difference Between Normally Closed And Normally Open Inputs?

Using normally open contacts as PLC inputs is good. But for stop functions it can be bad. This is because normally open contacts can create dangerous situations when they fail…

Let me explain that a little further.

How could a circuit like the one in the example with just 2 inputs fail?

What if one of the wires broke: The Below Figure Shows Wire-break after normally open input actuator.

Wire-break after normally open input actuatoraDifference Between Normally Closed And Normally Open Inputs?

Now, the stop button (the normally open contact) will have no function when the system is failing (wire-break). The wire break is one fail, but that produces another fail:

The stop button isn’t working. And since the stop button is a critical function, this is why this solution is not good practice.

How could this solution be good practice?

By using a normally closed contact as stop actuator. This is because the normally closed contact as an input actuator won’t create dangerous situations under failure.

Meaning that when a fail occurs (the wire-break), the input will act as the normally closed contact has been activated. So, if the wire to the stop button breaks, the same will happen as if someone activated the stop button. The latch will break.

The Fig below shows Normally closed input actuator as stop button.

PLC stop button wiring

When the input actuator is changed from normally open to normally closed, the state of the input is also changed. Before the input was always 1 or ON, when the actuator wasn’t activated. But now, the input is 0 or OFF when the actuator isn’t activated.

This means, that for the stop button to work as in the previous example, the boolean instruction should now be examine if closed instead of examine if open. If you, once again, look at the table you will see that.

Since, the input is always 1, an instruction with the result of 1 (when the input is 1) will do the job. The result of the examine if closed instruction is 1.

The below fig shows Normally closed for PLC stop function is good practice.

PLC stop function

Now, the stop button works together – hardware and software. You can see below, what happens when the stop button is activated:

The below fig shows Stop actuator activated. Input is 0 and so is the examine if closed.

PLC stop Command

At last you might wonder why I didn’t do the same thing with the start button. That input is also a normally open contact, but with examine if closed (normally open logic) in the software.

Just like that stop button, the start button will not work if the wire breaks.

Remember that wire-breaks and other failures shouldn’t produce dangerous situations. Well, even though the start button will not work under a wire-break, the start button is not a critical function.

Why is the start function not a critical function?

Because it is not dangerous if the machine, motor or another movable part cannot start.


To develop a PLC program / Hardware logic with what’s known as good practice, you should always keep in mind what will happen when the system is failing. Your system can fail in many different ways, but often the critical one is wire-break.

Wire-break often occurs because wires are the weakest point in a typical PLC system. Wires often go along movable parts, and are therefore exposed to a risk of being cut or ripped apart.

Another very common fail, that behaves in almost the same way as a wire-break, is loose connections. All your inputs are connected with wires. The weak points here are the connections.

From the input screw-terminal on the PLC to the terminals on the input actuators are all in risk of being loose and creating a bad connection. Sometimes even no connection, which is just like a wire-break.

Do you know about other common fails, that can cause risk in a PLC program?

Join the conversation! Please leave a comment below and tell us your perspective on good practice machine design.

If you liked this article, then please subscribe to our YouTube Channel for PLC and SCADA video tutorials.

You can also follow us on Facebook and Twitter to receive daily updates.

Read Next:

Don't Miss Our Updates
Be the first to get exclusive content straight to your email.
We promise not to spam you. You can unsubscribe at any time.
Invalid email address

10 thoughts on “Normally-Closed Contacts for Stop Buttons”

  1. congrats for your very helpfull site!

    First, i believe you have to correct an error in your address figure….I0.0 and I0.1 instead of both I0.0 in the PLC column…..
    second, why in your figure with the XIC and XIO insructions you have those results from input bits especially in XIO?

  2. I’ve seen in a two times in a couple thousand units where an input opened but the plc didn’t shutdown. It kept running and caused equipment to over-pressure. After resetting the power it went back to operating normally.

    Therefore it’s good to have a mechanical backup that can interrupt equipment, as most ESD loops do.

  3. Very interesting item, I am develop a general system for a construction mixer plant, if you have an article related to that please post it (safety, logic ladder, load cells, etc)…thanks a lot…

  4. As per my instrumentation engineering experience, the following applications are considered as critical function and normally designed as fail safe (wire-break) wiring concept:

    1. Cabinet common alarm (if any device inside the cabinet is fault or wire break, system will generate device fault alarm).
    2. Process switch low/high alarm (if process is in upset or wire break, system will generate process high/low alarm).
    3. Emergency Stop PB (if PB is activated or wire break, the stop command is received by system and the relevant interlock is triggered to protect the process/equipment.

    Noted that, if Normal Start PB, Normal Stop PB and Emergency Stop PB exist in the local control panel for equipment control purpose, the normal stop function is not considered as critical function. The design will be same as normal start function which means both Normal Start and Stop PBs will be “Normally Open” actuator type. Only emergency stop function is considered as critical function.

    All above applications, the device you have to select “Normally Closed” actuator type.

    If have more applications, kindly share your experience to all of us. Thanks.


Leave a Comment