XIO and XIC... and variations thereof...

Ummmm... ego-food! Damn... gotta get a bigger hat.


Go right ahead Jim...
However, instead of Post #1 and Post #2, use Post #1 and Post #8.

Old Grouch...
You are welcome.

Are we makin' any money yet Ron?
 
rsdoran said:
Because this ---|/|--- used with a N.C. switch will be true when the switch is open. In hardwiring any contact would have to be made for power to flow.

Programming can use a physical switch/contacts on or off...ie there doesnt have to be elctron flow thru the device for the condition to be true/on.

First time I saw a N.O pushbutton used for a STOP button drove me nuts, I thought someone had installed the wrong contacts. The system was designed that way using a plc. Everyone I come across nowadays I change the programming and the switch, just too confusing for alot of people.

There is a classic example...using a N.C. pushbutton as a STOP would use ---| |--- that in the ladder...ie examine if ON, the STOP button should always be on just like in a hardwired circuit.

Hardwired contacts and plc contacts are 2 different animals.

Terry's eloquent post explained all that in detail.
Terry,
You told me once I could use anything you wrote as long as I didnt "sell it", hopefully that still stands and I can use this at the other place.

Ok. I guess I can see where the confusion could come in. I've always thought of a PLC input as the input to a relay, and the XIO/XIC contacts as the contacts of that relay. In this way, the PLC logic is analogous to a hardwired electrical circuit.
A NO contact will make when the input is on/high/true and a NC contact will make when the input is off/low/false

I think that electrical analogies are good ways of thinking of how ladder logic works. You just have to make sure that you don't mix metaphors.
 
There's nothing I can do to dissuade those that have "internalized" the "imaginary relay" and prefer that method.

I just have a hard time understanding why anyone would want to maintain the concept of a bogus-relay when the real issue is nothing more than...

Is the bit ON (--| |--), or is the bit OFF (--|/|--)...

Does the bit = "1" (--| |--), or does the bit = "0" (--|/|--)...

Considering the simple nature of "Is it ON("1")?" and "Is it OFF("0")?", why try to make it analogous to anything more complicated than that.

...hm... apparently, there's no 'splainin' some things...
 
Terry Woods said:
There's nothing I can do to dissuade those that have "internalized" the "imaginary relay" and prefer that method.
I just have a hard time understanding why anyone would want to maintain the concept of a bogus-relay when the real issue is nothing more than...

Is the bit ON (--| |--), or is the bit OFF (--|/|--)...

Does the bit = "1" (--| |--), or does the bit = "0" (--|/|--)...

Considering the simple nature of "Is it ON("1")?" and "Is it OFF("0")?", why try to make it analogous to anything more complicated than that.

...hm... apparently, there's no 'splainin' some things...

I agree that this is a pretty simple concept. Applying the smybols to make the logic work the way you want is as simple as knowing what they do.
But the fact of the matter is, that the original designers of ladder logic chose to use the symbols (--| |--), & (--|/|--) which come from the relay world as N.O. and N.C. contacts.

Because those symbols are universally used in the world of PLC logic and the symbols come from relay logic, the analogy is inherent in the system.

It's just a matter of learning it (or chosing not to, if you perfer)
 
Last edited:
I agree that the logic and symbols were taken from relays. I am not sure I agree that relay logic and digital logic can be compared equally.

Alot of this I didnt understand either when I first got into computers and PLCs. The 0 1, true false always thru me for a loop.

The ON or OFF is a much simpler and easier understand explanation.

If you think about relays...is it ON or OFF...if ON then NC will be open (OFF) the NO will be closed (ON)...assuming its wired thru those contacts.

I think Terry offered the KEY though when he mentioned positive logic, with relays its common to work with positive logic.

Here is the deal as I see it. Its very complicated and requires multiple relays to develop a negative logic with relays...ie when the device is off then turn ON this relay. With a plc this is one line of code in many cases...ie my example of the STOP button where its a NC contact but the symbol ---| |--- is used. If it was analogous then when you used a NC contact then you would always use a NC plc contact and symbol.

Anyway you look at it the PLC offers options that are hard to duplicate with hardwiring. This is what makes it confusing, the ability to manipulate the actions of the devices involved.

Technically the thread was designed to explain XIO and XIC, these are AB terms for there internal contacts... I think the big part of the confusion there are the terms.

Minor RANT
Many people spend a lifetime developing a trade/skill, every once in a while they attempt to learn more, sometime they are confident with what they know and do not feel a need to learn more. Other people have not obtained a trade/skill so have to learn how things are done. I know of noone that at birth that knew relays or binary logic, anyone that does know either/both had to learn it at some point. Its LUDICROUS to make statements on the simplicity of a subject AFTER being taught and/or learning the subject.
END Minor Rant
 
Rsdoran,

I agree wholeheartedly with you, in that it is much easier to understand and keep straight if you simply refer to it as "True if On" or "True if Off". Can't hardly go wrong with that logic !!

They should have named it TIO and TIF (true if on, true if off).

I was always confused with the word "Examine". Both of these conditions are always 'Examined', but will only fall through to the output when and if the bit is equal to one.

Jim
 
I can't comprehend.....

how someone can get to high school without knowing the concept of AND, OR, XOR and NOT. I was confronted with problems like:

1. I need to do this AND that before I can go there.
2. I can watch program this program OR that program but not both.
3. If I do NOT do this then I can that.

when I was is grade school. Hopefully, every one was.

When I first saw ladder logic it was obvious. Ladder is just a synbolic representation of 'AND','AND NOT' and 'OR'.
Is it only AB users that have this problem? I don't see Siemens user that don't under stand 'AND' and 'AND NOT'.
When I first programmed an AB PLC, I confess that I did not look for XIC or XIO. I looked for a AND and AND NOT or a NO or NC, but once I found XIC, I knew immediately that it was AB's version of an AND and XIO was AB's version of an AND NOT. No big deal. I adjusted. It is like speaking a different language or programming in a different language.

HOW ELSE WOULD YOU DO THIS? I think the concept of 'AND','AND NOT' and 'OR' is univeral. Sure, the concepts can be represent in different wasys. There is C, Forth, LISP, and Ladder which are all radically different in how these concepts are represented, but once you learn the syntax or grammer they are accomplishing the same thing.

THIS SHOULD BE OBVIOUS. I AM VERY BOTHERED BY THE FACT THAT SOME THINK IT IS NOT.
Code:
    breathe               live
-----|  |-----------------(  )
 
Last edited:
I agree that the XIC/XIO terminlogy is a bit clumsy and archaic. It is just one of those "standard" things that have been around for yonks and although everyone agrees that there are better ways to do it, I guess industry inertia is greater than any desire to change. (Well for AB users anyhow.)

About 12 years ago I got to spend a day with Dr Struger, some six months before he retired. He was the AB engineer who invented the "ladder logic" GUI as we know it. I recall him saying that the challenge was to get electrical engineers to accept the new PLC technology in the early 70's, and the first PLC prototypes built used a text based language close to assembler code. Of course they hated it.

Ladder logic was of course the big breakthrough because it presented Boolean logic in a format familiar to EE's. And a remarkably successful language it has been.

But like everything with a year or two under the belt it has some "baggage", and the less than satisfying XIC/XIO nomenclature is one of the more obvious. Struger was after all Austrian by birth and English remained his second language. Was this a factor?

Maybe someone could help here. Were the terms XIC/XIO first devised by Struger/AB for the original ladder logic PLC, or were they in use prior to this during the days of the "electromechanical era" of the 50's and 60's?
 
Last edited:
rsdoran said:

Minor RANT
Many people spend a lifetime developing a trade/skill, every once in a while they attempt to learn more, sometime they are confident with what they know and do not feel a need to learn more. Other people have not obtained a trade/skill so have to learn how things are done. I know of noone that at birth that knew relays or binary logic, anyone that does know either/both had to learn it at some point.

It's all well and good to continue learning, but threads here about the alphabet or that the cow goes MOO and the duck goes QUACK would just be a waste of space and time, as are (in my opinion at least) threads like this one. On the other hand, judging from the replies, this thread was helpful to a number of people. I just have a hard time seeing their side, and how this knowledge isn't immediatly obvious.

I don't know. Maybe they've never seen a relay or used one to make a logical NOT in an electrical circuit. I would say that kind of knowledge/experience is prerequisite to PLC programming.

Its LUDICROUS to make statements on the simplicity of a subject AFTER being taught and/or learning the subject.
END Minor Rant

I was never tought this. I never took a PLC class. I figured it out. I didn't even stop to think twice about NO vs. NC contacts as they apply to ladder logic. I recognized them as relay contacts, and applied the basics of logic to them.


Peter Nachtwey said:
HOW ELSE WOULD YOU DO THIS? I think the concept of 'AND','AND NOT' and 'OR' is univeral. Sure, the concepts can be represent in different wasys. There is C, Forth, LISP, and Ladder which are all radically different in how these concepts are represented, but once you learn the syntax or grammer they are accomplishing the same thing.

THIS SHOULD BE OBVIOUS. I AM VERY BOTHERED BY THE FACT THAT SOME THINK IT IS NOT.

Amen.
I guess this is just the dummied-down world that we live in.
 
Last edited:
THIS SHOULD BE OBVIOUS. I AM VERY BOTHERED BY THE FACT THAT SOME THINK IT IS NOT.

It bothers me that well educated people can not understand simple facts of life.

We dont have to be taught to breathe.
We dont have to be taught to eat but we are taught HOW to eat.
We dont have to use the bathroom but we are taught WHERE/WHEN to use it.
We didnt know....period....we were taught/learned these things.

Some people can pick up a hammer and build a house, others can only use the hammer to tear down a house. Some people can learn fast, others dont. What is simple to some is not to others.

I know one of you recently had to buy a car because you were unable to repair the one you presently owned, does that inability make you or another that can not repair a car part of the dummied downed world?

MY GOSH, how hard is it to turn a wrench or screwdriver. How hard is it to understand that gas is pumped to the engine then ignited then pushes the little round things down? This cant be complicated....

I have heard that Dummied Down phrase used a few times here...reckon the fellow that made millions on those Dummy books had a problem with it?

IF being intelligent puts me in a class/rank with people that believe this kind of talk....I gonna stay a DUMMY, thank you for the priviledge.

Some of you DO and are probably good at your jobs but I can bet you will never be great because you do not show the ability to teach or LEARN the problems OTHERS may have in the process of learning.

I guess y'all know and can do everything? I apologize for not understanding that fact...us Dummies are not as lucky.
 
Last edited:
Jim said...
...but will only fall through to the output when and if the bit is equal to one.

Gotta stop you there Jim...
Unless you are looking at the code in the manner that Peter is describing (more later), you don't need a series of "1's" to get to the output. You need a series of Yes's or True's.

BIT
----| |---------( ) Indicator Light #1

BIT
----|/|---------( ) Indicator Light #2


.
The first rung "asks" if BIT is ON (1).
If the answer is YES or TRUE, then the output is ON. If the answer is NO or FALSE, then the output is OFF.
In this case, if BIT is ON (1), then the answer is YES or TRUE. If so, then Indicator #1 will be on.

The second rung "asks" if BIT is OFF (0).
If the answer is YES or TRUE, then the output is ON. If the answer is NO or FALSE, then the output is OFF.
In this case, if BIT is OFF (0), then the answer is YES or TRUE. If so, then Indicator #2 will be on.

Notice that the two rungs are mutually exclusive. That is, since each is controlled by different states of the same bit, if one indicator light is ON the other is OFF.

Also notice that the two lines written in red are identical. Whether, or not, an answer is YES/TRUE depends not only on the state of the particular bit but also on the particular question being asked.

This means, depending on the particular question being "asked", either a "1" or a "0" can produce a YES or TRUE result.

This method allows you to look directly at the input indicator lights on the PLC and make a direct comparison (without making any mental conversions - discussed in the next section).

IN1 IN2 IN3 OUT
--| |----|/|----| |----( )


.
Looking at the indicator lights on the PLC, if IN1=ON and IN2=OFF and IN3=ON then the output should be ON .



Peter's description using AND and AND-NOT is the REAL way that these rungs are being evaluated by the processor.

--| |-- = AND

--|/|-- = AND-NOT

In this case, Jim, you are correct in saying that the processor is looking for a series of 1's in order to turn on the output. However, for some, this can be more confusing than the "imaginary relay".

BIT
----| |---------( ) Indicator Light #1

BIT
----|/|---------( ) Indicator Light #2


.
In the first rung, the processor looks at the actual value of BIT. If the actual value is "1" then the output is on. If the actual value is "0" then the output is off.

In the second rung, the processor takes the actual value of BIT and then reverses (negates) the value (0->1 and 1->0).

If the reversed (negated) value is "1" (actual value = 0) then the output is on.

If the reversed (negated) value is "0" (actual value = 1) then the output is off.

This method also allows you to look directly at the input indicator lights on the PLC and make a direct comparison.

IN1 IN2 IN3 OUT
--| |----|/|----| |----( )


.
Looking at the indicator lights on the PLC, if IN1=ON and IN2=OFF and IN3=ON then the output should be ON .

HOWEVER... if you are "thinking" that you need a string of 1's, and if you don't go through the mental exercise of "un-negating" IN2, then you might be looking for IN1=ON, IN2=ON, and IN3=ON.

A more complete description of Peter's "breathing/living" evaluation might be...

BREATHING FOOD WATER SHELTER DISEASE BEER LIFE
---| |------| |-----| |------| |---------|/|---------| |-------( )
IF... 1 1 1 1 0 1 then 1 <-- Actual visible indications on lights
True True True True True TRUE! ON

IF... 1 AND 1 AND 1 AND 1 AND 1 AND 1 then 1 <-- Internal values, not visible
(-NOT-0)


.
I suggest that all new programmers that come to PLCs from the electrical world (not necessarily those programmers from the PC Programming world) use the method described at the top of this post.

Experienced PC Programmers should be able to slip easily into either method... their choice.

However, in terms of working with direct corrolations between actual and expected conditions I strongly suggest that all programmers blow-off that damned imaginary relay thing and use the first method at the top of the post... even those that are used to working with assembly (AND and AND-NOT).



jimbo said...
"I agree that this is a pretty simple concept. Applying the smybols to make the logic work the way you want is as simple as knowing what they do."

This is certainly true. So why go through the effort of trying to figure out what they do by applying them to the imaginary relay?

jimbo said...
"But the fact of the matter is, that the original designers of ladder logic chose to use the symbols (--| |--), & (--|/|--) which come from the relay world as N.O. and N.C. contacts."

Simply because there were some less then bright EE's that couldn't get the hang of ON and OFF.

jimbo said...
"Because those symbols are universally used in the world of PLC logic and the symbols come from relay logic, the analogy is inherent in the system."

Nobody has even suggested removing the symbols... the only suggestion was to understand the symbols in a more direct manner without relying on the imaginary relay to explain ON and OFF.

jimbo said...
"I don't know. Maybe they've never seen a relay or used one to make a logical NOT in an electrical circuit. I would say that kind of knowledge/experience is prerequisite to PLC programming."

It's nice that you appear to understand how to make a logical NOT in an electrical circuit. However, it also appears that your primary need for understanding how a relay works might be so that you can understand how the "imaginary relay" works...

You said it yourself jimbo...
"On the other hand, judging from the replies, this thread was helpful to a number of people."

The thread is helpful to a lot of people because, intuitively, they just have a hard time swallowing the need for the "imaginary relay" concept. How can the concept of ON or OFF be so complicated that it can only be understood through imaginary means?

New programmers, subjected to training under that damned imaginary relay concept must think to themselves, "Gee... ON and OFF sure seems like a pretty simple concept. Could it be that ON and OFF is more complicated than I think? Jeez... What am I missing here? If I'm only supposed to be able to understand this stuff through imaginary means, what is it that I am missing? WHY do I HAVE to be understand it through imaginary means?"

And as you have seen, some have seen through the sham that is the imaginary relay. Obviously, Dr Struger, as mentioned by Philip, went from one extreme to the other to satisfy the EE's you mentioned.

Imagine that Ron, the PLC concept had to be dumbed down for the EE's. It's really sad to think that an EE couldn't understand the concept of ON and OFF without resorting to magical means. Electrical folks would do very well if they never hear of the imaginary relay... they can appreciate the concept of ON and OFF.

Jimbo, for the most part you sound like you want to maintain the understanding of the symbols through the imaginary relay. But then you give an "AMEN" to Peter's discussion about AND, AND-NOT and OR.

Do you not see the contradiction in that?

The AND and AND-NOT method has nothing to do with the imaginary relay.

jimbo said...
"I just have a hard time seeing their side, and how this knowledge isn't immediatly obvious."

Well, jimbo... I guess you're just one of the lucky ones... and yet you sort-a, kind-a seem to support that damned imaginary relay thingee... maybe you are not as in-tune with logic as you would have us think.

There is no need for an analogy. ON and OFF are as simple as ON and OFF... don-cha-think?

(394)
 
I can not let this die

I have 3 "adopted" sons that probably will never get past the point of understanding ...flip switch light comes on. Flip switch light and motor come on then light goes off after X time period would probably be beyond them.

I have an old 3/4 ton I will probably keep till I die. Its old, beatup and ugly (hmmmm) but the motor and tranny are kind of new (motor I rebuilt and tranny was a factory rebuild). Tomorrow I plan to pull the engine to replace some broken bolts, gaskets, torque converter and whatevr I find that needs replacing.

I love my sons. I am doing this myself (with them) in hopes they can "learn" something. Its unlikely they will ever be mechanics etc but maybe they can learn "something".

It has to be great to be smart and KNOW things others have to learn.

IT BOTHERS ME that some forget that others are not as fortunate as they are. This doesnt make them less of a person...just different.

I aint done. I will post pictures of my kids taking the motor out and replacing the parts. Yes, they need guidance....YOU HAVENT?
 
Maybe they've never seen a relay or used one to make a logical NOT in an electrical circuit. I would say that kind of knowledge/experience is prerequisite to PLC programming.

That may have been true 20 years ago, I very much doubt if it applies nowadays. Particularly young engineers getting started in larger companies are likely to start working with PLCs without ever seeing a relay.

This has some drawbacks in that the reason for using NC switches for E-Stops etc. is not self-evident (to most people) and they need to be trained in this aspect. Other than that, if they can think logically, there is no reason why somebody should not be able to become a competent PLC programmer without ever seeing a relay in real life.
 

Similar Topics

I am a beginner at RSLogix 5000 and in ladder logic in general. I am tasked with making sense of an existing program and reprogramming it to make...
Replies
8
Views
6,053
Hi, I am using an AB PLC5. I have a rung with three branches on the right, so that it has three connections to the right (output) rail...
Replies
10
Views
7,163
Ok, I know in my own words the differences between XIO/XIC and NO/NC. The problem comes up when I try to convey to someone in a good way so it...
Replies
55
Views
50,494
Hi, I am new to plc and i was reading the contensts in plcs.net. I have a doubt. i am not able to understand when we should go for normally...
Replies
4
Views
5,922
I have Woodward Controller EASYGEN-3500XT and Phoenixcontact make IO CAN-CUPLER part no: 2702230, Analog Input card: 2861412, Analog Output Card ...
Replies
0
Views
27
Back
Top Bottom