Why You Should Use Normally Closed For Stop Buttons

Once you understand normally open and normally closed contacts, you can decide where and how to use them in PLC programming. This means relating your PLC program to the physical PLC inputs.

Many of you have asked me to explain how normally open and normally closed logic work in PLC programming.

I recently published a collection of ladder logic examples, but one example caused confusion. For the start/stop circuit made with ladder logic I chose a normally closed contact in the ladder logic.

I then realised that I had made a mistake.

Some of you noticed that good practice in this example requires a normally open contact in the ladder logic and a normally closed contact as the input actuator. This prevents the input from producing hazardous situations if it fails, which matters during the risk assessment process. The same principle applies to safety relays and contacts in safety circuits.

To explain why, I will separate PLC logic into two parts, then show how to combine them:

  1. Hardware Logic
    Input actuators and wiring (what is actually connected to the input).
  2. Software Logic
    The logic of your PLC program (the logic you program into the PLC).

Hardware Logic

Start with the digital inputs and the actuators that connect to them.

Digital inputs have two states, as do their input actuators:

  • OFF (0)
  • ON (1)

Alongside these two states, a digital actuator has one of two functions:

  • Normally open
  • Normally closed

The difference between normally open and normally closed actuators connected to a digital input appears when you activate them.

The following two rules explain how each type works:

1. 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.

2. 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.

We can also show the relationship between actuator state and input bit in a table:

State of the actuator Input bit
Normally Open Inactivated (0) 0
Activated (1) 1
Normally Closed Inactivated (0) 1
Activated (1) 0

Normally closed actuators affect the state of their connected inputs in the opposite way to normally open actuators.

The actuator’s state determines the input state and therefore the input bit. Whenever the PLC scan cycle reaches its input-update step, it assigns these values to the input bits.

Software Logic

PLC programming also uses logic. Here, ladder logic contacts or boolean instructions take the place of hardware logic with actuators.

The similarity between this logic and hardware logic often causes confusion. Ladder logic, the PLC programming language, is designed to look like electrical circuits.

Like input actuators, PLC programming has normally open and normally closed contacts. You will often see these called examine if closed (XIC) and examine if open (XIO).

The ladder logic symbols closely resemble the electrical symbols for normally open and normally closed contacts, with the same functions. We can show the same table for the PLC logic:

Input bit
Result
Examine If Closed
0 OFF (0)
1 ON (1)
Examine If Open
0 OFF (1)
1 ON (0)

The columns now have different positions and labels. Each boolean instruction (XIC and XIO) produces a result based on the input bit’s value, just as that bit’s value depends on the actuator’s state.

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

The final column contains the boolean instruction results. A result describes what follows the instruction in your ladder diagram. If a coil follows the bit logic instruction, the result column matches the state of that coil.

Examine if closed and examine if open invert each other. In Function Block Diagram programming, you invert a signal using negation.

Merging Software Logic and Hardware

When creating a boolean instruction in your PLC program, you assign it an address. This identifies a single bit: both a boolean and a bit have a value of 0 or 1. Once assigned, the address connects that bit’s state to the instruction’s state.

Assigning a PLC input address to an instruction makes the instruction reflect that input’s state. Each PLC input has a specific bit in the PLC’s memory that stores its condition.

PLC inputs changing bits in PLC memory

The state of each PLC input is represented by the value of a bit in PLC memory.

Return to the start/stop example: a latched coil with an instruction that breaks the latch.

This illustration shows the complete system, including its hardware and software:

Normally open as input actuator for stop

Normally open as input actuator for stop signal.

Here I use a normally open contact as the input actuator, including for the stop button, because the normally closed logic is already in the software.

Activating the input actuator turns its input bit ON, or 1. In the ladder logic, I have assigned that input’s address to an examine if open instruction.

For examine if open, the table shows a result of 0 when the input has a value of 1.

That result lets the ladder logic instruction break the connection and release the output latch.

The input state must be 1 to break the connection (result 0). Activating the input actuator must therefore turn the input ON, or 1.

The input-actuator table shows that activating a normally open contact changes the input state to 1. Used together, the two tables help you choose between normally open and normally closed logic.

However, the arrangement shown in this example does not follow good practice.

What Is The Difference Between Normally Closed And Normally Open Inputs?

Normally open contacts work well as PLC inputs, but they can be a poor choice for stop functions. A failed normally open contact can create a dangerous situation.

To see why this arrangement is a problem, consider what happens when the circuit fails.

Even the example circuit, with only 2 inputs, can fail.

For example, one of its wires could break:

Wire-break after normally open input actuator.

Wire-break after normally open input actuator.

With this wire-break, the normally open stop button no longer works. One failure, the broken wire, causes another: loss of the stop function. Because stopping is a critical function, this arrangement does not follow good practice.

What change would bring this arrangement into line with good practice? The stop actuator needs a different type of contact.

Use a normally closed contact as the stop actuator. A normally closed input actuator will not create dangerous situations under failure. A wire-break makes the input behave as though someone has activated the contact. Breaking the stop-button wire therefore has the same effect as pressing the button: the latch breaks.

Normally closed input actuator as stop button

Normally closed input actuator as stop button.

Changing the input actuator from normally open to normally closed also changes the input state. Previously, the input was always 1 or ON while the actuator was inactive. Now, with the actuator inactive, the input is 0 or OFF.

For the stop button to work as it did in the previous example, change the boolean instruction from examine if open to examine if closed. The table shows why this change is needed.

Since the input is always 1, the instruction must return 1 when its input is 1. The examine if closed instruction gives that result of 1.

Normally closed for PLC stop function

Normally closed for PLC stop function is good practice.

The stop button’s hardware and software now work together. The illustration below shows what happens when you activate it:

Activated NC input actuator

Stop actuator activated. Input is 0 and so is the examine if closed.

You might wonder why the start button uses a different arrangement. Its input is a normally open contact, with an examine if closed instruction (normally open logic) in the software.

As with the stop button in the earlier example, a broken wire prevents the start button from working.

Wire-breaks and other failures must not create dangerous situations. A wire-break stops the start button from working, but the start function is not critical.

Why is the start function not a critical function?

The reason is that a machine, motor or another moving part does not create a danger when it cannot start.

Plan for wire breaks and loose connections

Good practice in PLC programming means considering what happens when the system fails. There are many possible failures, but a wire-break is often the critical one.

Wires are fragile parts of a typical PLC installation. They often run beside moving parts that can cut or damage them, making wire-breaks common.

Loose connections are another common problem and can act like wire-breaks. Any wire between the PLC’s input screw-terminal and an input actuator’s terminals can loosen, leaving a poor connection or no connection at all.

What other common failures can create risks in a PLC program?

Leave a comment below with your perspective on good practice in machine design.

11 Comments
Leave a response
  • Md. Arif Hossain
    August 25, 2015 at 8:54 am

    Thanks for clear idea The Difference Between Normally Closed And Normally Open Inputs.

  • Andrea Bianchi
    October 18, 2015 at 6:49 pm

    Thank you for your post; it helped me to understand the difference between the hardware and the software, and the best way to make them cooperate to achieve the best practice and the safety.

    But I have a doubt.
    In fact, just below the second of the two figures showing a possible wire-break, it is written the following:

    “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 “.

    Probably I have misunderstood (I’m not English native), but I think that it should be written as:
    “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 0 or OFF, when the actuator wasn’t activated. But now (with normally closed), the input is 1 or ON when the actuator isn’t activated “.

    Thank you for your attention and reply

  • Shamma
    November 22, 2015 at 5:03 pm

    Very Nice !!!

  • A.william
    June 2, 2016 at 9:11 am

    superb explanation.iwant to know how to draw ladder diagram.please send to my email adres.

  • Veerraju
    August 24, 2016 at 10:53 am

    Thank you very much sir, its helped me a lot, keep write good and useful articles like this.

  • Mohammad
    September 13, 2016 at 7:32 pm

    Great post . ty
    Also the website interface looks perfect !

  • earnestmoor
    January 8, 2017 at 5:30 am

    when pressing the stop button , I observe in My program that the input instruction changes to false, but an electric motor continues to run.
    what can be the possible causes?
    I was thinking the motor relay contacts are welded, the output terminal point fuse is open. or the stop button is using normally closed contacts,

    What do you think

  • September 8, 2017 at 8:14 am

    For safety we always use Normally Close (NC) contacts in hardware.
    Typical example: Emergency Stop buttons, where we use NC contacts.
    Other examples:
    1. motor thermal contact, where we use the NC connection as input to the PLC.
    2. Limit switches.
    3. Safe guards (eg at housing doors of machines).

    • peter
      September 8, 2017 at 10:47 am

      Thanks for your comment, Vasileios! Good examples you come with. It is of course not only stop buttons, but also many other functions related to safety where the use of normally closed (NC) contacts are the better choice.

  • ms
    April 19, 2018 at 5:33 pm

    thank you, this really explained alot

  • Ali
    August 24, 2018 at 2:39 pm

    Very good information sir

Leave a Response