Articulo de referencia

lógica de escalera

La lógica de escalera fue originalmente un método escrito para documentar el diseño y la construcción de bastidores de relés utilizados en la fabricación y el control de proceso...

La lógica de escalera fue originalmente un método escrito para documentar el diseño y la construcción de bastidores de relés utilizados en la fabricación y el control de procesos . [ 1 ] Cada dispositivo en el bastidor de relés se representaba mediante un símbolo en el diagrama de escalera, mostrando las conexiones entre dichos dispositivos. Además, otros elementos externos al bastidor de relés, como bombas, calentadores, etc., también se mostraban en el diagrama de escalera.

La lógica de escalera ha evolucionado hasta convertirse en un lenguaje de programación que representa un programa mediante un diagrama gráfico basado en los diagramas de circuitos de hardware de lógica de relés . Se utiliza para desarrollar software para controladores lógicos programables (PLC) empleados en aplicaciones de control industrial. Su 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 en su momento la única forma de registrar programas para controladores programables, actualmente existen otras formas estandarizadas en la norma IEC 61131-3 . Por ejemplo, en lugar de la lógica de escalera gráfica, existe un lenguaje llamado texto estructurado , similar a C, dentro de la norma IEC 61131-3 .

Descripción general

Parte de un diagrama de escalera, que incluye contactos y bobinas, comparadores, temporizadores y multivibradores monoestables.

La lógica de escalera se utiliza ampliamente para programar PLC , donde se requiere el control secuencial de un proceso u operación de fabricación. La lógica de escalera es útil para sistemas de control simples pero críticos, o para la modernización de antiguos circuitos de relés cableados . A medida que los controladores lógicos programables se volvieron más sofisticados, también se ha utilizado en sistemas de automatización muy complejos. A menudo, el programa de lógica de escalera se utiliza junto con un programa de interfaz hombre-máquina (HMI) que se ejecuta en una estación de trabajo informática.

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

La lógica de escalera puede considerarse un lenguaje basado en reglas, más que un lenguaje procedimental . Cada peldaño representa una regla. Al implementarse con relés y otros dispositivos electromecánicos, las reglas se ejecutan de forma simultánea e inmediata. En cambio, al implementarse en un controlador lógico programable, las reglas se ejecutan secuencialmente mediante software en un bucle continuo, o "escaneo". Al ejecutar el bucle con la suficiente rapidez, normalmente muchas veces por segundo, se logra la ejecución simultánea e inmediata. El uso adecuado de los controladores programables requiere comprender las limitaciones del orden de ejecución de los peldaños.

Sintaxis y ejemplos

El lenguaje en sí puede considerarse como un conjunto de conexiones entre verificadores lógicos (contactos) y actuadores (bobinas). Cuando existe una ruta desde el lado izquierdo del peldaño hasta la salida a través de contactos activados (verdaderos o "cerrados"), el peldaño se considera verdadero y el bit de almacenamiento de la bobina de salida se establece en 1 (verdadero). Si no existe tal ruta, la salida es falsa (0) y la "bobina", por analogía con los relés electromecánicos , se considera "desenergizada". Esta analogía entre proposiciones lógicas y el estado de los contactos de un relé fue establecida por Claude Shannon .

La lógica de escalera cuenta con contactos que abren o cierran circuitos para controlar bobinas. Cada bobina o contacto corresponde al estado de un bit en la memoria del controlador programable. A diferencia de los relés electromecánicos, un programa de lógica de escalera puede consultar el estado de un bit un número ilimitado de veces, lo que equivale a un relé con un número indefinido de contactos.

Los denominados "contactos" pueden referirse a entradas físicas ("dura") al controlador programable procedentes de dispositivos físicos como pulsadores e interruptores de límite a través de un módulo de entrada integrado o externo, o pueden representar el estado de bits de almacenamiento interno que pueden generarse en otra parte del programa.

Cada peldaño de un lenguaje de escalera suele tener una bobina en el extremo derecho. Algunos fabricantes pueden permitir más de una bobina de salida en un mismo peldaño.

Entrada de peldaño
Checkers (contactos)
  • —[ ]—Contacto normalmente abierto, cerrado siempre que se energice su bobina correspondiente o la entrada que lo controla. (Contacto abierto en reposo).
  • —[\]—Contacto normalmente cerrado ("no"), cerrado siempre que su bobina correspondiente o la entrada que lo controla no esté energizada. (Contacto cerrado en reposo).
Salida de peldaño
Actuadores (bobinas)
  • —( )—Bobina normalmente inactiva, que se energiza cuando se cierra su peldaño. (Inactiva en reposo).
  • —(\)—Bobina normalmente activa ("no activa"), energizada siempre que su peldaño esté abierto. (Activa en reposo).

La "bobina" (salida de un peldaño) puede representar una salida física que acciona algún dispositivo conectado al controlador programable, o puede representar un bit de almacenamiento interno para su uso en otra parte del programa.

Una forma de recordarlo es imaginar los contactos (marcadores) como un botón pulsador y los actuadores (bobinas) como una bombilla. La presencia de una barra diagonal en los contactos o actuadores indicaría el estado predeterminado del dispositivo en reposo.

Y lógico

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

Este circuito muestra dos interruptores de llave que los guardias de seguridad podrían 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 fluye hacia el motor, que abre la puerta.

AND lógico con NOT

Lo anterior cumple la función: Motor de la puerta = Cierra la puerta Y NO hay obstrucción.

Este circuito muestra un pulsador que cierra una puerta y un detector de obstáculos que detecta si hay algo que impida el cierre de la puerta. Cuando el contacto normalmente abierto del pulsador se cierra y el detector de obstáculos normalmente cerrado (NC) también se cierra (no se detecta ningún obstáculo), la electricidad fluye hacia el motor que cierra la puerta.

OR lógico

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

Este circuito muestra los dos elementos que pueden activar el cierre centralizado de un coche . El receptor del mando a distancia siempre recibe alimentación. El solenoide de desbloqueo recibe alimentación cuando se cierra cualquiera de los contactos.

Arranque/Parada industrial

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

Al pulsar el botón "Inicio", la entrada se activa mediante el contacto normalmente cerrado (NC) del botón "Parada". Cuando la entrada "Ejecución" se activa, el contacto normalmente abierto (NO) de "Ejecución", en paralelo con el contacto normalmente abierto (NO) de "Inicio", se cierra, manteniendo la lógica de entrada activa (enclavada). Una vez enclavado el circuito, al pulsar el botón "Parada" se abre su contacto normalmente cerrado (NC) y, por consiguiente, la entrada se desactiva. El contacto normalmente abierto (NO) de "Ejecución" se abre entonces y la lógica del circuito vuelve a su estado inactivo.

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

Esta configuración de enclavamiento es una convención común en la lógica de escalera. También se la conoce como lógica de enclavamiento . La clave para comprender el enclavamiento reside en reconocer que el interruptor de "Inicio" es momentáneo (una vez que el usuario suelta el botón, el interruptor se abre de nuevo). Tan pronto como el solenoide de "Ejecución" se activa, cierra el contacto normalmente abierto (NO) de "Ejecución", lo que mantiene el solenoide en la posición de enclavamiento. La apertura del interruptor de "Inicio" en ese momento no tiene ningún efecto.

Nota: En este ejemplo, "Run" 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 motivos de seguridad, se puede conectar un interruptor de parada de emergencia ("ES") en serie con el interruptor de "Arranque", y la lógica del relé debe reflejar esto.

Tenga en cuenta que, para mayor seguridad, los contactos físicos de parada y parada de emergencia están cableados de manera que el PLC reciba entradas ALTAS (reales) cuando los botones NO están presionados; por lo tanto, la lógica del PLC debe invertirse para esos casos. En este caso, el diagrama de escalera se verá así: [ 3 ]

Lógica compleja

Aquí se muestra un ejemplo de cómo podrían verse dos peldaños en un programa de lógica de escalera. En aplicaciones reales, puede haber cientos o miles de peldaños.

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

  1. Realización de la función: A/C = Interruptor Y (Alta temperatura O Humedad).
     ----[ ]---------+----[ ]-----+----( ) Interruptor | Alta temperatura | Aire acondicionado | | +----[ ]-----+ Húmedo 
  2. Comprender la función: Refrigeración = Aire acondicionado Y ( NO calefacción).
     ----[ ]----[\]--------------------( ) Aire acondicionado Calefacción Refrigeración 

Esto representa un sistema ligeramente más complejo para el peldaño 2. Tras evaluar la primera línea, la bobina de salida "A/C" se conecta al peldaño 2, que a su vez se evalúa. La bobina de salida "Cooling" podría conectarse a un dispositivo de salida "Compressor" o al peldaño 3 de la escalera. Este sistema permite desglosar y evaluar diseños lógicos muy complejos.

Funcionalidad adicional

El fabricante del PLC puede añadir funcionalidades adicionales a una implementación de lógica de escalera mediante un bloque especial. Al activarse, este bloque especial ejecuta código con argumentos predeterminados, los cuales pueden visualizarse dentro del propio bloque.

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 almacenará el número total de veces que la puerta se ha desbloqueado electrónicamente.

Los PLC cuentan con numerosos tipos de bloques especiales. Entre ellos se incluyen temporizadores, operadores aritméticos y comparaciones, búsquedas en 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 estados finitos . En algunos casos, los usuarios pueden definir sus propios bloques especiales, que en la práctica son subrutinas o macros. La amplia biblioteca de bloques especiales, junto con la alta velocidad de ejecución, ha permitido el uso de PLC para implementar sistemas de automatización muy complejos.

Limitaciones y lenguajes sucesores

La notación de escalera es la más adecuada para problemas de control donde solo se requieren variables binarias y donde el enclavamiento y la secuenciación de binarias constituyen el problema de control principal. Como en todos los lenguajes de programación paralela , el orden secuencial de las operaciones puede ser indefinido u oscuro; son posibles las condiciones de carrera lógicas que pueden producir resultados inesperados. Para evitar este problema, conviene dividir los peldaños complejos en varios pasos más simples. Algunos fabricantes lo evitan definiendo explícitamente y por completo el orden de ejecución de un peldaño; sin embargo, los programadores aún pueden tener dificultades para comprender completamente la semántica compleja resultante.

Las cantidades analógicas y las operaciones aritméticas son difíciles de expresar en lógica de escalera, y cada fabricante tiene diferentes maneras de extender la notación para estos problemas. Generalmente, el soporte para arreglos y bucles es limitado, 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 potentes, notaciones como diagramas de funciones secuenciales y diagramas de bloques de funciones pueden reemplazar la lógica de escalera en algunas aplicaciones específicas. Algunos PLC más recientes pueden tener toda o parte de su programación realizada en un dialecto similar a BASIC , C u otro lenguaje de programación con enlaces adecuados para un entorno de aplicación en tiempo real.

Popularidad

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

Véase también

Referencias

  1. "Fundamentos de la lógica de escalera" . La lógica de escalera utiliza contactos de interruptores o relés para implementar expresiones booleanas. En el pasado, la lógica de escalera se implementaba con relés discretos y a veces se la denominaba lógica de relés.
  2. Edward W. Kamen, Controles industriales y fabricación (Academic Press, 1999) ISBN 0123948509Capítulo 8 Diagramas de lógica de escalera e implementaciones de PLC
  3. Peter (8 de julio de 2015). "Por qué debería usar interruptores normalmente cerrados para botones de parada" . PLC Academy . Consultado el 11 de marzo de 2026 .
  4. "Interactivo: Los mejores lenguajes de programación" . IEEE Spectrum . Archivado del original el 18 de septiembre de 2019.

Lecturas adicionales

  • Walker, Mark John (8 de septiembre de 2012). El controlador lógico programable: su prehistoria, surgimiento y aplicación (PDF) (tesis doctoral). Departamento de Comunicación y Sistemas, Facultad de Matemáticas, Informática y Tecnología: The Open University . Archivado (PDF) del original el 20 de junio de 2018. Recuperado el 20 de junio de 2018 .
  • "Capítulo 6: lógica de escalera" por Tony R. Kuphaldt