Lenguaje Ladder

De Wikipedia, la enciclopedia libre
(Redirigido desde «Diagrama de escalera»)
Saltar a: navegación, búsqueda
Detalle de diagrama ladder con distintos elementos de programación.

El LADDER, también denominado lenguaje de contactos o 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 eléctrico posee, es muy fácil adaptarse a la programación en este tipo de lenguaje.

Elementos de programación[editar]

Para programar un autómata con LADDER, además de estar familiarizado con las reglas de los circuitos de conmutación, 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.

Elementos básicos en LADDER
Símbolo Nombre Descripción
Capacitor symbol.svg
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.
BobinaNC.PNG
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.
BobinaSet.svg
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.
BobinaJump.svg
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 ó 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.

Temporizadores[editar]

El temporizador es un elemento que permite poner cuentas de tiempo con el fin de activar bobinas pasado un cierto tiempo desde la activación. El esquema básico de un temporizador varía de un autómata a otro, pero siempre podemos encontrar una serie de señales fundamentales, aunque, eso sí, con nomenclaturas totalmente distintas.

Temporizador

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:

  • Entrada Enable (E): Tiene que estar activa (a 1 lógico) en todo momento durante el intervalo de tiempo, ya que si se desactiva (puesta a cero lógico) se interrumpe la cuenta de tibia (puesta a cero temporal).

Contadores[editar]

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.

Contador

En la figura de la derecha puede verse el esquema de un contador, Ci, bastante usual, donde pueden distinguirse las siguientes entradas y salidas:

  • Entrada RESET (R): Permite poner a cero el contador cada vez que se activa. Se suele utilizar al principio de la ejecución asignándole los bits de arranque, de modo que quede a cero cada vez que se arranca el sistema.
  • Entrada PRESET (P). Permite poner la cuenta del contador a un valor determinado distinto de cero, que previamente se ha programado en Cip.
  • Entrada UP (U): Cada vez que se activa produce un incremento en una unidad de la cuenta que posea en ese momento el contador.
  • Entrada DOWN (D): Cada vez que se activa produce un decremento en una unidad de la cuenta que posea en ese momento el contador.
  • Salida FULL (F): Se activa al producirse un desbordamiento del valor del contador contando en sentido ascendente.
  • Salida DONE (D): Se activa cuando el valor del contador se iguala al valor preestablecido Cip.
  • Salida EMPTY (E): Se activa al producirse un desbordamiento del valor del contador contando en sentido descendente.

Monoestables[editar]

Monoestable.

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.

  • Entrada START (S): Cuando se activa o se le proporciona un impulso comienza la cuenta que tiene programada.
  • Salida RUNNING (R): Se mantiene activada mientras dura la cuenta y se desactiva al finalizarla. Al igual que con el temporizador, para programar la cuenta hay que introducir los valores de Mip y Mib.

Programación[editar]

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.

Distribución de un programa.

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.

Sistemas combinacionales[editar]

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 combinacionál 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.

LADDER para la función M = A(B'+C)D'

Elementos de memoria[editar]

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).

Circuitos con autoalimentación con prioridad a la desconexión a) y a la conexión b)

En la siguiente figura se pueden observar los sus esquemas equivalente en LADDER:

Circuitos LADDER con autoalimentación

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:

Circuito de marcha y paro con bobinas SET y RESeT

En este caso la prioridad dependerá del PLC utilizado, aunque usualmente la función RESET tiene prioridad sobre la SET.

Elementos de tiempo[editar]

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:

Automatismo temporizado.

Un posible programa equivalente en LADDER podría ser el siguiente:

Aplicación de un temporizador en LADDER.

Elementos de cómputo[editar]

Ejemplo de programa LADDER de cómputo

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.

Sistemas secuenciales[editar]

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.

Entornos de programación[editar]

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 (Controlador Lógico Programable).

Un ejemplo de software de programación Ladder es el entorno StxLadder, que permite implementar la lógica Ladder y luego transferirla al PLC.

El software StxLadder es un ejemplo de entorno de programación LADDER