Here is a perfectly legitimate schematic showing two input devices connected to a PLC.
Field wiring PLC Inputs
| /
| /
+------o o----------o IN-1
| LS1
|
|
| |
| --+--
+------o o----------o IN-2
| PB1
|
.
Tom said...
"The | | and |\| symbols aren't kind of sort of almost like relay contacts. They were by definition created to BE relay contacts, and the ( ) symbol was cerated to BE a coil."
Now, in terms of the conventional application of the word "relay", where is the relay in the drawing above?
Of course, you can easily say that the symbols really refer to contacts within "a device"... not necessarily a conventional relay.
I could buy into that. However, the problem is that the explanation is explicitely designed around an Imaginary Relay. That is, an imaginary version of a conventional relay.
The following drawing is modified to include the Imaginary Relay.
Signals from
Field wiring PLC Inputs Imaginary Relay
n/c
| / imaginary +--|/|---> IN-1(a)?
| / coil for IN-1 |
+------o o----------( ) ---+
| LS1 | n/o
| +--| |---> IN-1(b)?
|
| n/c
| | imaginary +--|/|---> IN-2(a)?
| --+-- coil for IN-2 |
+------o o----------( ) ---+
| PB1 | n/o
| +--| |---> IN-2(b)?
.
The limit switch is using only one set of contacts... the normally open contacts.
The push button is using only one set of contacts... the normally open contacts.
The Imaginary Relay
implies provides a signal through either a normally open contact or a normally closed contact.
Tom said...
"These aren't analogies..."
If the imaginary relay and its contacts are not an analogy then the drawing above implies, very strongly, that the internal view (the processor's view) sees the limit switch being wired with both the normally open contact and the normally closed contact (...maybe... but then, this is imaginary, so things might not be what they seem... maybe.).
Of course the schematic indicates that the limit switch is only using the normally open set of contacts.
No confusion there... huh?
How about if a REAL SPDT Relay is installed in the field and each contact provides a signal to IN-1 and IN-2 repectively.
Signals from
Field wiring PLC Inputs Imaginary Relay
n/c
| imaginary +--|/|---> IN-1(a)?
| coil for IN-1 |
+-------| |-----------( ) ---+
| CR1 | n/o
| +--| |---> IN-1(b)?
|
| n/c
| imaginary +--|/|---> IN-2(a)?
| coil for IN-2 |
+-------|/|-----------( ) ---+
| CR1 | n/o
| +--| |---> IN-2(b)?
.
Here a real relay contact is driving two imaginary relay contacts. Since both of the contacts in the real relay are being used, the real relay is driving four imaginary contacts.
naaaahh... no confusion there.
Tom said...
"Just don't imply that there is something primitive or improper about thinking in the terms that were part and parcel of the develpment of the language."
I'm not implying anything... I'm saying right out that interpreting the symbols as part of an imaginary relay (a relay that DOES NOT EXIST) is inherently confusing. It is an overly complicated, poorly conceived means for explaining a very simple concept... "Is it ON?" or "Is it OFF?"
The confusion comes in when a new programmer tries to corrolate the configuration of an Imaginary Relay with the configuation of the real field device.
It's kinda like comparing apples to oranges... they simply do not match.
If you want to "count apples" then get the oranges out of the picture.
Just as you don't need the oranges in order to count the apples, you don't need the Imaginary Relay to determine reality.
While it is true that most individual rungs of a program could be physically wired as indicated by the symbols in the rung, doing so would be moving backwards... don' cha think?
The idea of the PLC is to bring in to the PLC one "instance" of a signal from a particular set of contacts on a field device. This single "instance" could be from the normally open contacts, or from the normally closed contacts. You can just as easily bring in an "instance" from each set of contacts (each to a separate input).
The concept then provides for referring to a particular "instance" as many times as required. The signal from one SPST set of contacts (LS or PB for example) can be used in hundreds of places in the code without the slightest increase in current through that set of contacts.
All that is necessary is to determine... is the signal ON... or is the signal OFF.
BE THE COMPUTER...
Imagine yourself as the CPU (this is a more palatable imagining than the imaginary relay).
You are in the Master Control Room that is the heart of the CPU. On the wall to the left are indicator lights that provide the status of all digital inputs. If a light is ON then there is a signal from the particular field device. Occasionally, the status of those lights is updated. So, when you look at one of the lights, you are seeing the status as of the last update.
Now, there is a REAL corrolation between the PLC and these lights.
A signal from the field drives an LED in an opto-isolator. This is REAL. The status of the field device is determined by the status of that LED. If the device signal is ON, then the LED is ON. Otherwise, the LED is OFF.
So, as the Master CPU, you go through your code...
IN1 IN2 OUT1
----| |-----|/|------( )
.
The code says... If IN1 is ON and IN2 is OFF then turn ON Out1.
You could look at --| |-- as the basic symbol. This symbol could have been ANYTHING! It could even be something as silly as that symbol for the guy formaly known as Prince. In this case, the symbol means... "Is the indicator light on the wall for this Input ON?"
By placing a slash across the basic symbol you specify the negated version of the basic symbol --|/|--. This symbol means... "Is the indicator light on the wall for this Input OFF?"
So... you look at the IN1 indicator on the wall and you see that it is ON.
So far, so good...
Then you look at the IN2 indicator on the wall and you see that it is OFF.
OK... the required conditions have been met... turn ON Out1.
Now, if the Imaginary Relay is employed things become a bit more complicated.
IN1 IN2 OUT1
----| |-----|/|------( )
.
In this case, the code says... If the normally open contact associated with IN1 is HOT, and if the normally closed contact associated with IN2 is HOT then turn ON Out1.
Now, in keeping with the indicator lights on the wall, there has to be a slight variation in the indicators. In this case, there are two indicator lights for each input. One light is Green and the other is Red.
Arbitrarily, the Green light is associated with the normally open contact. The Red light is associated with the normally closed contact. If the normally open contact is HOT then the Green light is ON. If the normally closed contact is HOT then the Red light is ON.
Now the code says...
IN1 IN2 OUT1
----| |-----|/|------( )
.
If IN1 is Green and IN2 is Red then turn ON Out1.
Is there a big difference in this method? Not a heck of a lot of difference, but it requires envisioning something that is not there.
In the following sentence...
"If IN1 is Green and IN2 is Red then turn ON Out1."
...all of the words are symbols.
Green and Red are symbols that indicate a status.
Green could just as easily be spelled as "ON", and Red as "OFF".
Would anything be lost with that translation? No.
The only difference would be that the device status now corresponds to the status of a single light... this corresponds with reality without introducing non-existent components.