El lenguaje ladder, diagrama ladder, diagrama/lógica de contactos, o diagrama en escalera, es un lenguaje de programación gráfico muy popular dentro de los autómatas programables debido a que está basado en los esquemas eléctricos de control clásicos. De este modo, con los conocimientos que todo técnico o ingeniero eléctrico posee, es muy fácil adaptarse a la programación en este tipo de lenguaje.
Ladder es uno de los varios lenguajes de programación para los controladores lógicos programables (PLCs) estandarizados con IEC 61131-3.
Para programar un autómata con Ladder, además de estar familiarizado con las reglas de los circuitos de conmutación, (también denominada Lógica de Contactos), es necesario conocer cada uno de los elementos de que consta este lenguaje. A continuación se describen de modo general los más comunes.
Símbolo | Nombre | Descripción |
---|---|---|
Contacto NA | Se activa cuando hay un uno lógico en el elemento que representa; esto es, una entrada (para captar información del proceso a controlar), una variable interna o un bit de sistema. | |
Bobina NC | Se activa cuando la combinación que hay a su entrada (izquierda) da un cero lógico. Su activación equivale a decir que tiene un cero lógico. Su comportamiento es complementario al de la bobina NA. | |
Bobina SET | Una vez activa (puesta a 1) no se puede desactivar (puesta a 0) si no es por su correspondiente bobina en RESET. Sirve para memorizar bits y, usada junto con la bobina RESET, dan una enorme potencia en la programación. | |
Bobina JUMP | Permite saltarse instrucciones del programa e ir directamente a la etiqueta que se desee. Sirve para realizar subprogramas. |
Se suele indicar mediante los caracteres B o M y tienen tanto bobinas como contactos asociados a las mismas de los tipos vistos en el punto anterior. Su número de identificación suele oscilar, en general, entre 0 y 255. Su utilidad fundamental es la de almacenar información intermedia para simplificar esquemas y programación.
Los bits de sistema son contactos que el propio autómata activa cuando conviene o cuando se dan unas circunstancias determinadas. Existe una gran variedad, siendo los más importantes los de arranque y los de reloj, que permiten que empiece la ejecución desde un sitio en concreto y formar una base de tiempos respectivamente. Su nomenclatura es muy diversa, dependiendo siempre del tipo de autómata y fabricante.
En forma práctica, los contactos pueden representar, de acuerdo a la programación que se realice, la entrada de información, por ejemplo el activamiento de un sensor, o el activamiento de una memoria interna, comúnmente denominada M.
Las Bobinas, representan a esas memorias M así como las salidas al exterior, activan o desactivan elementos como puede ser una luz, un motor eléctrico, un solenoide de una válvula neumática, etc.
En algunas versiones de Ladder, como el relé inteligente ZELIO, las bobinas representan también funciones, como temporizadores, contadores y comparadores.
El temporizador es un elemento que permite hacer activaciones retardadas o con duración preestablecida, con un control preciso del tiempo de activación. El esquema básico de un temporizador varía de un autómata a otro, pero podemos encontrar una serie de señales fundamentales, aunque, eso sí, con nomenclaturas distintas.
Podemos observar, en la figura de la derecha, el esquema de un temporizador, Tii, con dos entradas (E y C a la izquierda) y dos salidas (D y R a la derecha) con las siguientes características:
En la mayor parte de implementaciones de Lenguaje Ladder, los contadores On-delay y Off-delay son entidades independientes, por lo que se tendría sólo una salida TON o una TOF, según el caso. El valor de conteo suele especificarse por programa (valor preset) y no por entradas, por lo que el temporizador es finalmente un elemento con una única entrada (Enable) y una única salida (TON/TOF).
El contador es un elemento capaz de llevar el cómputo de las activaciones de sus entradas, por lo que resulta adecuado para memorizar sucesos que no tengan que ver con el tiempo pero que se necesiten realizar un determinado número de veces.
En la figura de la derecha puede verse el esquema de un contador, Ci, bastante usual, donde pueden distinguirse las siguientes entradas y salidas:
El monoestable es un elemento capaz de mantener activada una salida durante el tiempo con el que se haya programado, desactivándola automáticamente una vez concluido dicho tiempo. Una de sus principales ventajas es su sencillez ya que sólo posee una entrada y una salida como podemos observar en la siguiente figura.
En este apartado se tratarán, de modo general, los conceptos básicos de programación en Ladder.
Una vez conocidos los elementos que LADDER proporciona para su programación, resulta importante resaltar cómo se estructura un programa y cuál es el orden de ejecución.
El siguiente esquema representa la estructura general de la distribución de todo programa Ladder, contactos a la izquierda y bobinas y otros elementos a la derecha.
En cuanto a su equivalencia eléctrica, podemos imaginar que la línea vertical de la izquierda representa el terminal de alimentación, mientras que la línea vertical de la derecha representa el terminal de masa.
El orden de ejecución es generalmente de arriba a bajo y de izquierda a derecha, primero los contactos y luego las bobinas, de manera que al llegar a éstas ya se conoce el valor de los contactos y se activan si procede. El orden de ejecución puede variar de un autómata a otro, pero siempre se respetará el orden de introducción del programa, de manera que se ejecuta lo que primero se introduce.
Aunque en los sistemas industriales la programación se centra en procesos secuenciales, no teniendo demasiado interés los procesos combinacionales, es necesario conocer la lógica combinacional ya que en muchas ocasiones es necesaria en la programación secuencial.
Una vez obtenida la función lógica de un problema combinacional, el paso a Ladder o esquema de contactos es muy sencillo. De acuerdo con el álgebra de Boole aplicada a la conmutación, las sumas serán contactos en paralelo, los productos contactos en serie y las negaciones contactos normalmente cerrados. En la siguiente figura se muestra un ejemplo de esquema LADDER para una determinada ecuación.
La conexión tradicional para realizar una función de memoria en los circuitos con relés, es el circuito con autoalimentación. Esto se consigue mediante la conexión de un contacto NA del relé (o contactor) en paralelo con el pulsador de marcha. A continuación puede observarse las dos variantes de este circuito: con prioridad a la DESconexión (figura a) y con prioridad a la conexión (figura b).
En la siguiente figura se pueden observar los esquemas equivalentes en Ladder:
Sin embargo, con LADDER el esquema puede quedar mucho más sencillo si empleamos las bobinas de SET para la marcha y RESET para paro:
En este caso la prioridad dependerá del PLC utilizado, aunque usualmente la función RESET tiene prioridad sobre la SET.
Como ya se ha comentado, los dos elementos básicos de tiempo son el temporizador y el monoestable. A continuación veremos un ejemplo de programación de un automatismo temporizado.
El esquema siguiente se corresponde con el mando de un motor con marcha temporizada:
Un posible programa equivalente en Ladder podría ser el siguiente:
Para aclarar la programación con elementos de cómputo, se explicará el funcionamiento del esquema de la derecha:
Como se puede observar, el programa consta de un contador C11 que ha sido programado con el valor 10 (Cp=10). Con la entrada S0 ponemos a cero el contador y con la entrada S1 se preselecciona con el valor de Cp, esto es, 10. Cada impulso dado en S2 incrementa en una unidad el contador y cada impulso en S3 lo disminuya.
Las bobinas KMI y KM2 se activan cuando el contador posee el valor 10 y 6 respectivamente, en cambio, la bobina KM3 está continuamente activada excepto cuando el contador se encuentra con el valor 4.
Aunque es posible programar sistemas secuenciales en Ladder, sólo se suele utilizar para el control de sistemas sencillos. En aquellos más complejos se utiliza la programación modular o el GRAFCET.
Para programar en Ladder se necesita un entorno de desarrollo integrado (IDE, por sus siglas en inglés), que consiste en un software que normalmente corre en una computadora y permite diseñar y transferir la lógica implementada al PLC.
Un ejemplo de software de programación Ladder es el entorno StxLadder, que permite implementar la lógica Ladder y luego transferirla al PLC.