Quizás el concepto más importante y difícil de entender al aprender a programar PLC es la relación entre el estado eléctrico de los puntos de E/S del PLC y el estado de las variables y otros “elementos” en su programación.
Esto es especialmente cierto para la programación con diagrama de escalera (LD), donde el programa en sí se parece a un diagrama eléctrico.
Establecer la conexión mental entre el mundo “real” de los interruptores, contactores y otros dispositivos eléctricos conectados al PLC y el mundo “imaginario” del programa del PLC que consiste en contactos virtuales y “bobinas” de relé es lo más fundamental.
La primera regla fundamental que se debe tener en cuenta al examinar un programa de PLC con diagrama de escalera es que cada contacto virtual que se muestra en el programa se activa siempre que lee un estado “1” en su bit respectivo y estará en reposo siempre que lea un estado “0” en su bit respectivo (en la memoria del PLC).
Si el contacto es de tipo normalmente abierto (NO), se abrirá cuando su bit sea 0 y se cerrará cuando su bit sea 1. Si el contacto es de tipo normalmente cerrado (NC), se cerrará cuando su bit sea 0 y se abrirá cuando su bit sea 1.
Un estado de bit 0 hace que el contacto esté en su condición “normal” (en reposo), mientras que un estado de bit 1 activa el contacto, lo que lo obliga a pasar a su estado no normal (activado).
Otra regla para recordar al examinar un programa PLC de diagrama de escalera es que el software de programación ofrece resaltado de color (Nota 1) para mostrar el estado virtual de cada elemento del programa: un contacto de color está cerrado, mientras que un contacto sin color está abierto.
Si bien la presencia o ausencia de un símbolo de “barra” marca el estado normal de un contacto, su resaltado de color en vivo que muestra el software de programación de PLC revela el estado “conductivo” de los elementos en tiempo real.
Nota 1: Se debe tener en cuenta que en algunas situaciones el software de programación no podrá colorear los contactos correctamente, especialmente si su estado cambia demasiado rápido para que el enlace de comunicación del software pueda seguirlo, y/o si los bits cambian de estado varias veces dentro de un escaneo del programa. Sin embargo, para programas y situaciones simples, esta regla es válida y es de gran ayuda para los programadores principiantes a medida que aprenden la relación entre las condiciones del mundo real y las condiciones dentro del mundo "virtual" del PLC.
Concepciones erróneas sobre la lógica de escalera del PLC
La siguiente tabla muestra cómo los dos tipos de contactos en un programa de diagrama de escalera del PLC responden a los estados de los bits, utilizando el color rojo para indicar la conductividad virtual de cada contacto:
Así como los contactos de un interruptor de presión se activan por una condición de alta presión, y los contactos de un interruptor de nivel se activan por una condición de alto nivel, y los contactos de un interruptor de temperatura se activan por una condición de alta temperatura, así también el contacto virtual de un PLC se activa por una condición de bit alta (1). En el contexto de cualquier interruptor, una condición activada es lo opuesto a su condición normal (en reposo).
La siguiente ilustración simplificada (el cableado eléctrico que se muestra en este diagrama está incompleto, y el terminal “común” se muestra sin conectar para simplificar) muestra un pequeño PLC con dos de sus canales de entrada discretos energizados eléctricamente, lo que hace que esos dos bits tengan estados “1”.
Los contactos resaltados en color en la pantalla del software del editor de programación muestran una colección de contactos dirigidos a esos bits de entrada en varios estados (coloreado = cerrado; sin color = abierto).
Como puede ver, cada contacto dirigido a un bit “establecido” (1) está en su estado activado, mientras que cada contacto dirigido a un bit “borrado” (0) está en su estado normal:
Recuerde que un contacto de color es un contacto cerrado. Los contactos que aparecen coloreados son contactos normalmente cerrados con estados de bit “0” o contactos normalmente abiertos con estados de bit “1”.
Es la combinación del estado del bit y el tipo de contacto (NO vs. NC) lo que determina si el contacto virtual estará abierto (sin color) o cerrado (con color) en un momento dado.
Correspondientemente, es una combinación de resaltado en color y tipo de contacto virtual lo que indica el estado de energización del mundo real de una entrada de PLC en particular en un momento dado.
El principal problema que tienen los estudiantes/ingenieros para comprender los programas de diagramas de escalera de PLC es que simplifican demasiado e intentan asociar directamente los interruptores del mundo real conectados al PLC con sus respectivas instrucciones de contacto dentro del programa de PLC.
Los estudiantes/ingenieros piensan erróneamente que el interruptor del mundo real que se conecta al PLC y el contacto del interruptor virtual respectivo dentro del programa de PLC son uno y el mismo, cuando este no es el caso en absoluto.
En cambio, el interruptor del mundo real envía energía a la entrada del PLC, que a su vez controla el estado del contacto o contactos virtuales programados en el PLC.
Específicamente, veo que los estudiantes/ingenieros caen rutinariamente en los siguientes conceptos erróneos:
- Mistakenly think the contact instruction type (NO vs. NC) needs to match that of its associated real-world switch
- Mistakenly think color highlighting of a contact instruction is equivalent to the electrical status of its associated real-world PLC input
- Mistakenly think a closed real-world switch must result in a closed contact instruction in the live PLC program
To clarify, here are the fundamental rules one should keep in mind when interpreting contact instructions in Ladder Diagram PLC programs:
- Each input bit in the PLC’s memory will be a “1” when its input channel is powered, and will be a “0” when its input channel is unpowered
- Each virtual contact shown in the program actuates whenever it reads a “1” state in its respective bit, and will be at rest whenever it reads a “0” state in its respective bit
- A colored contact is closed (passes virtual power in the PLC program), while an un-colored contact is open (blocks virtual power in the PLC program)
In trying to understand PLC Ladder Diagram programs, the importance of these rules cannot be overemphasized.
The truth of the matter is a causal chain – rather than a direct equivalence – between the real-world switch and the contact instruction status.
The real-world switch controls whether or not electrical power reaches the PLC input channel, which in turn controls whether the input register bit will be a “1” or a “0”, which in turn controls whether the contact instruction will actuated or at rest.
Virtual contacts inside the PLC program are thus controlled by their corresponding real-world switches, rather than simply being identical to their real-world counterparts as novices tend to assume.
Following these rules, we see that normally-open (NO) contact instructions will mimic what their real-world switches are doing, while normally-closed (NC) contact instructions will act opposite of their real-world counterparts.
The color highlighting of coil instructions in a Ladder Diagram PLC program follows similar rules. A coil will be “on” (colored) when all contact instructions prior to it are closed (colored).
A colored coil writes a “1” to its respective bit in memory, while an un-colored coil instruction writes a “0” to its respective bit in memory. If these bits are associated with real-world discrete output channels on the PLC, their states will control the real-world energization of devices electrically connected to those channels.
To further illuminate these fundamental concepts, we will examine the operation of a simple PLC system designed to energize a warning lamp in the event that a process vessel experiences a high fluid pressure.
The PLC’s task is to energize a warning lamp if the process vessel pressure ever exceeds 270 PSI, and keep that warning lamp energized even if the pressure falls below the trip point of 270 PSI. This way, operators will be alerted to both past and present process vessel over-pressure events.
120 volt AC “line” power (L1 and L2) provides electrical energy for the PLC to operate, as well as signal potential for the input switches and power for the warning lamp.
Two switches connect to the input of this PLC: one normally-open pushbutton switch acting as the alarm reset (pressing this switch “unlatches” the alarm lamp) and one normally-open pressure switch acting as the sensing element for high process vessel pressure:
The reset pushbutton connects to discrete input X1 of the PLC, while the pressure switch connects to discrete input X4. The warning lamp connects to discrete output Y5.
Red indicator LEDs next to each I/O terminal visually indicate the electrical status of the I/O points, while red-shaded highlighting shows the virtual power (Note 2 ) status of the “contacts” and “coils” in the PLC’s program, displayed on the screen of a personal computer connected to the PLC through a programming cable.
With no one pressing the reset pushbutton, that switch will be in its normal status, which for a “normally-open” switch is open.
Likewise with the pressure switch: with process pressure less than the trip point of 270 PSI, the pressure switch will also be in its normal status, which for a “normally-open” switch is open.
Since neither switch is conducting electricity right now, neither discrete input X1 nor X4 will be energized. This means the “virtual” contacts inside the PLC program will likewise be in their own normal states.
Thus, any virtual contact drawn as a normally-open will be open (not passing virtual power), and any virtual contact drawn as a normally-closed (a diagonal slash mark through the contact symbol) will be closed.
This is why the two normally-open virtual contacts X4 and Y5 have no highlighting, but the normally-closed virtual contact X1 does – the colored highlighting representing the ability to pass virtual power.
Note 2 : For a PLC program contact, the shading represents virtual “conductivity.” For a PLC program coil, the shading represents a set (1) bit.
If the process vessel experiences a high pressure (> 270 PSI), the pressure switch will actuate, closing its normally-open contact. This will energize input X4 on the PLC, which will “close” the virtual contact X4 in the ladder program.
This sends virtual power to the virtual “coil” Y5, which in turn latches itself on through virtual contact Y5 (Note 3 ) and also energizes the real discrete output Y5 to energize the warning lamp:
Note 3 : It is worth noting the legitimacy of referencing virtual contacts to output bits (e.g. contact Y5), and not just to input bits.
A “virtual contact” inside a PLC program is nothing more than an instruction to the PLC’s processor to read the status of a bit in memory. It matters not whether that bit is associated with a physical input channel, a physical output channel, or some abstract bit in the PLC’s memory.
It would, however, be wrong to associate a virtual coil with an input bit, as coil instructions write bit values to memory, and input bits are supposed to be controlled solely by the energization states of their physical input channels.
If now the process pressure falls below 270 PSI, the pressure switch will return to its normal state (open), thus de-energizing discrete input X4 on the PLC.
Because of the latching contact Y5 in the PLC’s program, however, output Y5 remains on to keep the warning lamp in its energized state:
Thus, the Y5 contact performs a seal-in function to keep the Y5 bit set (1) even after the high pressure condition clears.
This is precisely the same concept as the “seal-in” auxiliary contact on a hard-wired motor starter circuit, where the electro-mechanical contactor keeps itself energized after the “Start” pushbutton switch has been released.
The only way for a human operator to re-set the warning lamp is to press the pushbutton.
This will have the effect of energizing input X1 on the PLC, thus opening virtual contact X1 (normally closed) in the program, thus interrupting virtual power to the virtual coil Y5, thus powering down the warning lamp and un-latching virtual power in the program: