Lógica de escalera - Ladder logic

La lógica de escalera fue originalmente un método escrito para documentar el diseño y la construcción de racks de relés que se utilizan en la fabricación y el control de procesos . Cada dispositivo en el bastidor de relés estaría representado por un símbolo en el diagrama de escalera con las conexiones entre esos dispositivos mostrados. Además, otros elementos externos al bastidor de relés, como bombas, calentadores, etc., también se mostrarían en el diagrama de escalera.

La lógica de escalera se ha convertido en un lenguaje de programación que representa un programa mediante un diagrama gráfico basado en los diagramas de circuito del hardware lógico de relé . La lógica de escalera se utiliza para desarrollar software para controladores lógicos programables (PLC) utilizados en aplicaciones de control industrial. El nombre se basa en la observación de que los programas en este lenguaje se asemejan a escaleras , con dos rieles verticales y una serie de peldaños horizontales entre ellos. Si bien los diagramas de escalera fueron una vez la única notación disponible para grabar programas de controlador programable, hoy en día otras formas están estandarizadas en IEC 61131-3 (Por ejemplo, como una alternativa a la forma de lógica de escalera gráfica, también existe un formato más parecido al lenguaje ensamblador llamado Instrucción lista dentro de la norma IEC 61131-3 ).

Visión general

Parte de un diagrama de escalera, incluidos contactos y bobinas, comparaciones, temporizadores y multivibradores monoestables

La lógica de escalera se usa ampliamente para programar PLC , donde se requiere el control secuencial de un proceso o una operación de fabricación. La lógica de escalera es útil para sistemas de control simples pero críticos o para reelaborar viejos circuitos de relés cableados . A medida que los controladores lógicos programables se volvieron más sofisticados, también se han utilizado en sistemas de automatización muy complejos. A menudo, el programa de lógica de escalera se utiliza junto con un programa HMI que opera en una estación de trabajo de computadora.

La motivación para representar la lógica de control secuencial en un diagrama de escalera era permitir que los ingenieros y técnicos de la fábrica desarrollaran software sin capacitación adicional para aprender un lenguaje como FORTRAN u otro lenguaje informático de propósito general. El desarrollo y el mantenimiento se simplificaron debido a la semejanza con los conocidos sistemas de hardware de relés. Las implementaciones de la lógica de escalera pueden tener características, como la ejecución secuencial y el soporte para funciones de flujo de control, que hacen que la analogía con el hardware sea algo inexacta.

La lógica de escalera se puede considerar como un lenguaje basado en reglas más que como un lenguaje de procedimientos . Un "peldaño" en la escalera representa una regla. Cuando se implementa con relés y otros dispositivos electromecánicos, las diversas reglas se ejecutan simultánea e inmediatamente. Cuando se implementan en un controlador lógico programable, las reglas se ejecutan típicamente secuencialmente por software en un bucle continuo o "exploración". Al ejecutar el bucle lo suficientemente rápido, generalmente muchas veces por segundo, se logra el efecto de ejecución simultánea e inmediata. El uso adecuado de controladores programables requiere una comprensión de las limitaciones del orden de ejecución de los escalones.

Sintaxis y ejemplos

El lenguaje en sí puede verse como un conjunto de conexiones entre verificadores lógicos (contactos) y actuadores (bobinas). Si se puede trazar una ruta entre el lado izquierdo del renglón y la salida, a través de contactos confirmados (verdadero o "cerrado"), el renglón es verdadero y el bit de almacenamiento de la bobina de salida se afirma (1) o verdadero. Si no se puede rastrear ninguna ruta, entonces la salida es falsa (0) y la "bobina" por analogía con los relés electromecánicos se considera "desenergizada". La analogía entre las proposiciones lógicas y el estado del contacto del relé se debe a Claude Shannon .

La lógica de escalera tiene contactos que abren o abren circuitos para controlar bobinas. Cada bobina o contacto corresponde al estado de un solo bit en la memoria del controlador programable. A diferencia de los relés electromecánicos, un programa de escalera puede referirse cualquier número de veces al estado de un solo bit, equivalente a un relé con un número indefinidamente grande de contactos.

Los llamados "contactos" pueden referirse a entradas físicas ("duras") al controlador programable desde dispositivos físicos como botones pulsadores e interruptores de límite a través de un módulo de entrada integrado o externo, o pueden representar el estado de los bits de almacenamiento interno que se pueden generar en otras partes del programa.

Cada peldaño del lenguaje de escalera normalmente tiene una bobina en el extremo derecho. Algunos fabricantes pueden permitir más de una bobina de salida en un peldaño.

  • Entrada de peldaño: damas (contactos)
    • —[ ]—Contacto normalmente abierto, cerrado siempre que se energice su bobina correspondiente o una entrada que lo controle. (Contacto abierto en reposo)
    • —[\]—Contacto normalmente cerrado ("no"), cerrado siempre que su bobina correspondiente o una entrada que la controle no esté energizada. (Contacto cerrado en reposo)
  • Salida de peldaño: actuadores (bobinas)
    • —( )—Bobina normalmente inactiva, energizada siempre que su peldaño está cerrado. (Inactivo en reposo)
    • —(\)—Bobina normalmente activa ("no"), energizada siempre que su peldaño está abierto. (Activo en reposo)

La "bobina" (salida de un renglón) puede representar una salida física que opera algún dispositivo conectado al controlador programable, o puede representar un bit de almacenamiento interno para usar en otra parte del programa.

Una forma de recordarlos es imaginar las fichas (contactos) como una entrada de botón y los actuadores (bobinas) como una salida de bombilla. La presencia de una barra diagonal dentro de las fichas o actuadores indicaría el estado predeterminado del dispositivo en reposo.

Y lógico

 ------[ ]--------------[ ]----------------( )
   Key switch 1      Key switch 2       Door motor

Lo anterior realiza la función: Motor de puerta = Interruptor de llave 1 Y Interruptor de llave 2

Este circuito muestra dos interruptores de llave que los guardias de seguridad pueden usar para activar un motor eléctrico en la puerta de la bóveda de un banco. Cuando los contactos normalmente abiertos de ambos interruptores se cierran, la electricidad puede fluir hacia el motor que abre la puerta.

Y lógico con NOT

 ------[ ]--------------[\]----------------( )
   Close door      Obstruction         Door motor

Lo anterior realiza la función: Motor de puerta = Cerrar puerta Y NO (Obstrucción).

Este circuito muestra un botón pulsador que cierra una puerta y un detector de obstrucción que detecta si algo está en el camino de la puerta que se cierra. Cuando el contacto del botón normalmente abierto se cierra y el detector de obstrucción normalmente cerrado está cerrado (no se detecta ninguna obstrucción), la electricidad puede fluir al motor que cierra la puerta.

OR lógico

 --+-------[ ]-------+-----------------( )
   | Exterior unlock |                 Unlock
   |                 |
   +-------[ ]-------+
     Interior unlock

Lo anterior realiza la función: Desbloqueo = Desbloqueo interior O Desbloqueo exterior

Este circuito muestra las dos cosas que pueden activar las cerraduras eléctricas de las puertas de un automóvil . El receptor remoto siempre está encendido. El solenoide de desbloqueo recibe energía cuando cualquiera de los conjuntos de contactos está cerrado.

PARADA / ARRANQUE industrial

En la lógica común de arranque / parada con enclavamiento industrial, tenemos un botón de "Arranque" para encender un contactor de motor y un botón de "Parada" para apagar el contactor.

Cuando se presiona el botón "Inicio", la entrada se vuelve verdadera, a través del contacto NC del botón "Parar". Cuando la entrada "Marcha" se convierte en verdadera, el contacto NO "Marcha" sellado en paralelo con el contacto NO "Inicio" se cerrará manteniendo la lógica de entrada verdadera (enclavada o sellada). Una vez que el circuito está bloqueado, el botón "Stop" puede presionarse, lo que hace que su contacto NC se abra y, en consecuencia, la entrada se vuelva falsa. El contacto NA "Marcha" se abre y la lógica del circuito vuelve a su estado inactivo.

 --+----[ ]--+----[\]----( )
   |   Start |   Stop    Run
   |         |
   +----[ ]--+
        Run
 -------[ ]--------------( )
        Run             Motor

Lo anterior da cuenta de la función: Ejecutar = (Iniciar O Ejecutar) Y ( NO Detener)

Esta configuración de pestillo es un lenguaje común en la lógica de escalera. También puede denominarse "lógica de sellado". La clave para entender el pestillo es reconocer que el interruptor de "Inicio" es un interruptor momentáneo (una vez que el usuario suelta el botón, el interruptor se abre de nuevo). Tan pronto como el solenoide "Run" se activa, cierra el contacto NO "Run", que engancha el solenoide. La apertura del interruptor "Inicio" no tiene ningún efecto.

Nota: En este ejemplo, "Ejecutar" representa el estado de un bit en el PLC , mientras que "Motor" representa la salida real al relé del mundo real que cierra el circuito del mundo real del motor .

Por razones de seguridad, una parada de emergencia puede estar cableada en serie con el interruptor de arranque, y la lógica del relé debe reflejar esto.

 --[\]----[\]----+--[ ]--+---------( )
   ES    Stop    | Start |        Run
                 |       |
                 +--[ ]--+
                    Run
 -------[ ]--------------( )
        Run             Motor

Lo anterior realiza la función: Ejecutar = ( NO Parada de emergencia) Y ( NO Parada) Y (Iniciar O Ejecutar)

Lógica compleja

A continuación, se muestra un ejemplo de cómo se verían dos peldaños en un programa de lógica de escalera. En aplicaciones del mundo real, puede haber cientos o miles de peldaños.

Por lo general, la lógica de escalera compleja se 'lee' de izquierda a derecha y de arriba a abajo. A medida que se evalúan cada una de las líneas (o peldaños), la bobina de salida de un peldaño puede pasar a la siguiente etapa de la escalera como entrada. En un sistema complejo, habrá muchos "peldaños" en una escalera, que están numerados en orden de evaluación.

 1. ----[ ]---------+----[ ]-----+----( )
      Switch        |   HiTemp   |    A/C

                    |            |
                    +----[ ]-----+
                        Humid
 2. ----[ ]----[\]--------------------( )
        A/C    Heat                 Cooling

La línea 1 realiza la función: A / C = Switch AND (HiTemp OR Humid)

La línea 2 realiza la función: Refrigeración = A / A Y ( NO Calor)

Esto representa un sistema un poco más complejo para el escalón 2. Después de evaluar la primera línea, la bobina de salida "A / C" se alimenta al escalón 2, que luego se evalúa y la bobina de salida "Refrigeración" podría alimentarse a una salida dispositivo "Compresor" o en el escalón 3 de la escalera. Este sistema permite desglosar y evaluar diseños lógicos muy complejos.

Funcionalidad adicional

El fabricante del PLC puede agregar funcionalidad adicional a una implementación de lógica de escalera como un bloque especial. Cuando se activa el bloque especial, ejecuta código sobre argumentos predeterminados. Estos argumentos pueden mostrarse dentro del bloque especial.

                              +-------+
  -----[ ]--------------------+  A    +----
   Remote unlock              +-------+
                           Remote counter
                             +-------+    
 -----[ ]--------------------+  B    +----
  Interior unlock            +-------+      
                         Interior counter 
                      +--------+
  --------------------+ A + B  +-----------
                      | into C |
                      +--------+
                         Adder

En este ejemplo, el sistema contará la cantidad de veces que se presionan los botones de desbloqueo interior y remoto. Esta información se almacenará en las ubicaciones de memoria A y B. La ubicación de memoria C contendrá el número total de veces que la puerta se ha desbloqueado electrónicamente.

Los PLC tienen muchos tipos de bloques especiales. Incluyen temporizadores, operadores aritméticos y comparaciones, búsquedas de tablas, procesamiento de texto, control PID y funciones de filtrado. Los PLC más potentes pueden operar en un grupo de ubicaciones de memoria interna y ejecutar una operación en un rango de direcciones, por ejemplo, para simular un controlador de tambor secuencial físico o una máquina de estado finito . En algunos casos, los usuarios pueden definir sus propios bloques especiales, que efectivamente son subrutinas o macros. La gran biblioteca de bloques especiales junto con la ejecución de alta velocidad ha permitido el uso de PLC para implementar sistemas de automatización muy complejos.

Limitaciones y lenguajes sucesores

La notación de escalera es más adecuada para controlar problemas donde solo se requieren variables binarias y donde el enclavamiento y la secuenciación de binarios es el problema de control principal. Como todos los lenguajes de programación paralelos , el orden secuencial de operaciones puede ser indefinido u oscuro; Son posibles condiciones de carrera lógica que pueden producir resultados inesperados. Es mejor dividir los peldaños complejos en varios pasos más simples para evitar este problema. Algunos fabricantes evitan este problema definiendo explícita y completamente el orden de ejecución de un renglón, sin embargo, los programadores pueden tener problemas para comprender completamente la semántica compleja resultante.

Las cantidades analógicas y las operaciones aritméticas son torpes de expresar en lógica de escalera y cada fabricante tiene diferentes formas de extender la notación para estos problemas. Por lo general, existe un soporte limitado para matrices y bucles, lo que a menudo resulta en la duplicación de código para expresar casos que en otros lenguajes requerirían el uso de variables indexadas.

A medida que los microprocesadores se han vuelto más poderosos, notaciones como los gráficos de funciones secuenciales y los diagramas de bloques de funciones pueden reemplazar la lógica de escalera para algunas aplicaciones limitadas. Algunos PLC más nuevos pueden tener toda o parte de la programación realizada en un dialecto que se asemeja a BASIC , C u otro lenguaje de programación con enlaces apropiados para un entorno de aplicación en tiempo real.

Popularidad

En 2019, IEEE Spectrum clasificó la lógica de escalera como el número 50 de 52 en una lista de lenguajes de programación populares.

Ver también

Referencias

  1. ^ http://ecmweb.com/archive/basics-ladder-logic "La lógica de escalera utiliza contactos de relé o interruptores para implementar expresiones booleanas. En años pasados, la lógica de escalera era posible con relés discretos y a veces se denominaba" lógica de relé ".
  2. ^ Edward W. Kamen Industrial Controls and Manufacturing , (Academic Press, 1999) ISBN  0123948509 , Capítulo 8 Diagramas de lógica de escalera e implementaciones de PLC
  3. ^ "Interactivo: los mejores lenguajes de programación" . Espectro IEEE . Consultado el 18 de octubre de 2019 ."Interactivo: Los mejores lenguajes de programación" . Espectro IEEE .

Otras lecturas

enlaces externos