NC vs NO

Sprayman

Member
Join Date
Jan 2020
Location
Chicago
Posts
50
Hi there,

For some reason I am having trouble finding a definite answer about this (At least one that makes sense to me.)

I have taken over a project that is using contacts that are sometimes set to NC.

In terms of logic how does this work if a contact exists NC and NO in the same program?

I guess a good place to start would be does a contact that is set to NC set a coil to true? (kind of like an inversion?) or is there a different type of logic there.

Thanks! Im sure this is pretty straightforward but my brain seems to be missing a few pieces of the puzzle!
 
watch these eleven YouTube videos IN NUMBER ORDER ... it will take about 90 minutes ... all of the questions that you've asked will be answered and explained ...

https://www.youtube.com/watch?v=T3tnXu-Eywc

my brain seems to be missing a few pieces of the puzzle!

the piece that you (and countless other people) are missing is the BIT BOX ... most people leave that important part out of the PLC's scan sequence ...

FULL DISCLOSURE: this is NOT an advertisement - since I am now retired from teaching ...
 
Last edited:
In a PLC, they aren't actually normally open or normally closed, they are Examine if Open or Examine if Closed.

The Examine if Closed, or XIC (Looks like the NO symbol) is TRUE(1) when the bit assigned to it is TRUE(1).

The Examine if Open, or XIO (Looks like the NC symbol) is TRUE(1) when the bit assigned to it is FALSE(0).


This is confuses a lot of people because you have to use what looks like a NO contact on the stop button in a sealin start/stop logic. This is because the button is physically wired Normally closed, so you want the motor to run with the input is true, which appears in the unpressed state.
 
These are both super helpful! I've been looking for a good YouTube series to watch to fill in some more gaps. Work blocks YouTube so its not super helpful at work but ill try and catch up on it in my free time.

I have seen the XIO/C around but didnt think that applied to me, this helps alot! Thanks!
 
The PLC program contact N.O. or N.C. is an valuation of an input that is assigned to the contact where it is used.
A PLC input is not "set to" being either N.O. or N.C.

If PLC input is used with a PLC program N.O. contact, then the PLC program result of the N.O. contact returns FALSE when the input is FALSE, and TRUE when the input is TRUE.
If PLC input is used with a PLC program N.C. contact, then the PLC program result of the N.C. contact returns TRUE when the input is FALSE, and FALSE when the input is TRUE.

In the PLC program, the same input can be used many times with N.O. or N.C. contacts, returning the result each time as described above.

If you assign a coil to the output of the N.O. or N.C. contact, the coil gets the result as described above.

edit: too slow !
 
Hi and welcome!! I can give you my thoughts and how I've used this in programming. You've neglected to state which platform you have, so if it's Rockwell, then a NC contact is not actually that, it's an XIO, which means "eXamine If Open". It can be an internal bit or an actual bit from hard inputs "Local 0:I:Data.1 for instance. The easiest way I've found to get my head around this instruction is what a teacher said on a Youtube video, which was "true if off". So..say the tag name for an XIO was "E-stop" and the descriptor said "E-stop pushed". If the XIO was green (on) then I would read that as "E-stop NOT pushed". Confusing, 'eh? If it was off, (not green) then the descriptor would be correct--e-stop has been pushed. Since it was not green, then no power from the left and thus an open circuit on the rung hopefully if it's written correctly. A NO contact, or an XIC (eXamine If Closed) would be more of a normal application--if it's open then no power passing, such as a pushbutton or limit switch, if closed (green) then power passes.
Siemens uses more of a NC NO type application, basically shows a NO contact and has a "negate" feature to change instruction type or put in a NC in the ladder.
Lastly in your question, a NC would set a coil to true (that XIO I just talked about) until the status changed and it went actually true. An example would be a fault routine. I did a lot of air handlers last year, so I had a failsafe wiring for say a high static pressure. So I had an XIO tagged "high Static press" and a descriptor that said "Duct static pressure high fault". So if my XIO was green, then there was NOT high static pressure. So this green bit kept a coil on with another tag which held out another XIO that was now true (off-not green) that had a descriptor of "Duct static press OK" which is true. If it goes green then one would say Duct Static pressure NOT OK, and that bit would energize an OTE for "High Duct Static Pressure Fault. Hope this helps you, I can post some logic I've written for this, if not sorry for the wast of time. There are a lot of more experienced programmers than me that I'm sure will help you and show me where I've gone astray. Have a great day!!
 
Get a pushbutton w/NO contacts, a PB w/NC contacts, and a 2-position selector switch with a set of contacts. Wire each of these to a PLC input module. Program a NO & NC contacct for each and watch how their states change.

It should become clear to you then.
 
Also, get a small relay and wire it’s coil to an output and both a NO & NC contact to inputs.
Program in a standard start stop circuuu I t.
 
To me NO or NC status on a switch identifies the state of the contact in the device when it is sitting on a table unpowered.

NO and NC in PLC ladder logic is easiest to identify if you consider the input on the PLC is functionally the same as a relay coil. (That's actually how it started back in the day.) Then an NO contact in the logic is open if the input (coil) is not energized. The NC contact is closed if the input is not energized.

This thinking upsets many purists, I know, but I don't care. It is consistent with the development history of ladder logic, which was intended to emulate JIC relay ladder diagrams. It has the merit if being ligical and easy to work with.
 
Let’s give the original poster of this thread credit for asking questions.

With all due respect to the OP, he needs to understand how real relay wiring & relay logic works before programming relay logic.

All too often I’ve seen novice programmers turned loose on a keyboard unchecked and then have trouble understanding the very basics of relay logic. Fundamentals Are so important.
 
To me NO or NC status on a switch identifies the state of the contact in the device when it is sitting on a table unpowered.

Learned the same, when you bought it over the counter the state that is was in on the counter... now with the internet I guess it would be how it sat in your mailbox :)
 
In a PLC, they aren't actually normally open or normally closed, they are Examine if Open or Examine if Closed.

The Examine if Closed, or XIC (Looks like the NO symbol) is TRUE(1) when the bit assigned to it is TRUE(1).

The Examine if Open, or XIO (Looks like the NC symbol) is TRUE(1) when the bit assigned to it is FALSE(0).
".............................
...............


Not Examine On & Examine Off again!!
Please kill me now.:mad:
 
So your variable is the entire relay:  

Variable1
------------------
| o-----
------- \ |
| | o-------
| ( ) |
| | o-----
------- / |
| o-------
|________________|

Important to know is that we draw relays (and hydraulics and pneumatics) in the unpowered state
This state is also given the confusing name "normal". I like to think of "normal" when referring..
.. to relays and hydraulics as a 2nd definition of the word normal. It has nothing to do with..
.. normal (in fact, if a machine isn't powered, this is definitely not normal in a vibrant economy!)

Variable1
In ladder, this symbol: --( )-- means "the Coil of Variable1"

Variable1
In ladder, this symbol: --] [-- means "the Normally Open Contact of Variable1"

Variable1
In ladder, this symbol: --]/[-- means "the Normally Closed Contact of Variable1"

And finally, it is of course possible to have more than one contact in both a physical relay or ladder

Variable1
------------------
| o-----
------- \ |
| | o-------
| ( ) |
| | o-----
------- \ |
| o-------
| |
| o-----
| \ |
| o-------
| |
| o-----
| / |
| o-------
| |
| o-----
| / |
| o-------
| |
| o-----
| / |
| o-------
|________________|

 
Back
Top Bottom