Lógica de escalera
Lógica de escalera fue originalmente un método escrito para documentar el diseño y la construcción de bastidores de relés tal como se utilizan en la fabricación y el control de procesos. Cada dispositivo en el rack de relés estaría representado por un símbolo en el diagrama de escalera con 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 de lógica de relés. 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 idioma se asemejan a escaleras, con dos rieles verticales y una serie de peldaños horizontales entre ellos. Si bien los diagramas de escalera alguna vez fueron la única notación disponible para registrar programas de controladores programables, hoy en día otras formas están estandarizadas en IEC 61131-3 (por ejemplo, como alternativa a la forma de lógica de escalera gráfica, también existe un lenguaje más parecido a C llamado Texto estructurado). dentro de la norma IEC 61131-3).
Resumen
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 circuitos de relés cableados antiguos. 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 usa 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 fue permitir que los ingenieros y técnicos de 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 similitud con los sistemas de hardware de relés familiares. Las implementaciones de la lógica de escalera pueden tener características, como ejecución secuencial y compatibilidad con 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 en lugar de un lenguaje procedimental. Un "peldaño" en la escalera representa una regla. Cuando se implementan con relés y otros dispositivos electromecánicos, las diversas reglas se ejecutan de manera simultánea e inmediata. Cuando se implementan en un controlador lógico programable, las reglas generalmente se ejecutan secuencialmente por software en un bucle continuo o "escaneo". Ejecutando el ciclo lo suficientemente rápido, generalmente muchas veces por segundo, se logra el efecto de una ejecución simultánea e inmediata. El uso adecuado de los 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 rastrear una ruta entre el lado izquierdo del escalón y la salida, a través de contactos afirmados (verdadero o 'cerrado'), el escalón es verdadero y el bit de almacenamiento de la bobina de salida está afirmado (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 "desenergizado". 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 las 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" puede referirse a entradas físicas ("duras") al controlador programable desde dispositivos físicos como botones e interruptores de límite a través de un módulo de entrada integrado o externo, o puede representar el estado de bits de almacenamiento interno que pueden generarse en otro lugar en el programa.
Cada peldaño del lenguaje de contactos normalmente tiene una bobina en el extremo derecho. Algunos fabricantes pueden permitir más de una bobina de salida en un peldaño.
- Entrada Rung
- Checkers (contactos)
—[ ]—
Contacto normalmente abierto, cerrado cuando su bobina correspondiente o una entrada que controla se energiza. (Abran contacto en reposo.)—[]—
Contacto normalmente cerrado ("no"), cerrado cuando su bobina correspondiente o una entrada que controla no está energizado. (Contacto cerrado en reposo.)
- Producción de pulmón
- Actuadores (coils)
—()—
Normalmente la bobina inactiva, energizada cuando su peldaña está cerrada. (Inactivo en reposo.)—()—
Normalmente activo ("no") bobina, energizado cada vez que su rana está abierta. (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 oblicua dentro de las fichas o actuadores indicaría el estado predeterminado del dispositivo en reposo.
Y lógico
----------------- ]... Interruptor de llave 1 interruptor de llave 2 motor de puerta |
Lo anterior realiza 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 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 al motor que abre la puerta.
Lógica Y con NOT
(feminine)-------------------- []----------------() Puerta cerrada con motor de puerta |
Lo anterior realiza la función: Motor de puerta = Cerrar puerta Y NO (Obstrucción).
Este circuito muestra un botón que cierra una puerta y un detector de obstrucciones que detecta si algo se interpone en el camino de la puerta que se cierra. Cuando el contacto del botón pulsador normalmente abierto se cierra y el detector de obstrucción normalmente cerrado se cierra (no se detecta obstrucción), la electricidad puede fluir hacia el motor que cierra la puerta.
O lógico
--+------ ]-----+-----------------() Silencio Exterior desbloqueo Silencio ------- Desbloqueo interior |
Lo anterior realiza la función: Desbloqueo = Desbloqueo interior O Desbloqueo exterior
Este circuito muestra las dos cosas que pueden activar los seguros eléctricos de las puertas de un automóvil. El receptor remoto siempre está alimentado. El solenoide de desbloqueo recibe energía cuando cualquiera de los conjuntos de contactos está cerrado.
PARADA/ARRANQUE Industrial
En la lógica de inicio/parada de bloqueo industrial común, tenemos un "Inicio" botón para encender un contactor de motor y un botón "Stop" botón para apagar el contactor.
Cuando el "Inicio" se presiona el botón, la entrada se vuelve verdadera, a través de la opción "Stop" botón contacto NC. Cuando el "Ejecutar" la entrada se vuelve verdadera, el sello de entrada "Ejecutar" SIN contacto en paralelo con el "Inicio" El contacto NA se cerrará manteniendo la lógica de entrada verdadera (bloqueada o sellada). Después de que el circuito se trabe, el mensaje "Stop" El botón puede ser presionado causando que su contacto NC se abra y, en consecuencia, la entrada sea falsa. El "Correr" Entonces se abre el contacto NA y la lógica del circuito vuelve a su estado inactivo.
--+-------------- []--() ← Inicio Silencioso Stop Run Silencio +... Corre --------------------- Run Motor |
Lo anterior realiza la función: Ejecutar = (Iniciar O Ejecutar) Y (NO Detener)
Esta configuración de pestillo es un idioma común en la lógica de escalera. También puede denominarse lógica sellada. La clave para entender el pestillo está en reconocer que el "Inicio" El interruptor es un interruptor momentáneo (una vez que el usuario suelta el botón, el interruptor se abre de nuevo). Tan pronto como el "Run" se activa el solenoide, cierra el "Run" Contacto NA, que engancha el solenoide. El "Inicio" la apertura del interruptor no tiene ningún efecto.
- Nota: En este ejemplo, "Run" representa el estado de un poco 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 cablear una parada de emergencia ("ES") en serie con el "Start" interruptor, y la lógica del relé debe reflejar esto.
--[]---- []--+-- [ ]--+-------() ES Stop ← Inicio Silencio Silencio +... Corre --------------------- Run Motor Lo anterior realiza la función: Correr = (NO ES) Y (NO Stop) Y (Start OR Run) |
Lógica compleja
Este es un ejemplo de cómo se verían dos peldaños en un programa de lógica de escalera. En las aplicaciones del mundo real, puede haber cientos o miles de peldaños.
Normalmente, la lógica de escalera compleja es "leer" de izquierda a derecha y de arriba a 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 están numerados en orden de evaluación:
- Realizar la función: A/C = Switch AND (HiTemp OR Humid).
------------+-- ]---+--() Interruptor ← HiTemp Silencio A/C Silencio +... Humid
- Realizar la función: enfriamiento = A/C Y (NO Calor).
---- [ ]---- []--------------------() A/C Refrigeración de 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 peldaño 2, que luego se evalúa y la bobina de salida "Refrigeración" podría alimentarse a un dispositivo de salida "Compresor" o en el 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 agregar funciones adicionales a una implementación de lógica de escalera como un bloque especial. Cuando se enciende el bloque especial, ejecuta código en argumentos predeterminados. Estos argumentos pueden mostrarse dentro del bloque especial.
+... --- Un +... Desbloqueo remoto +... Contrato remoto +... --- B +... Desbloqueo interior +... Interior counter +... --------------------+ Un + B +-------------- Silencio en 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 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 estado finito. En algunos casos, los usuarios pueden definir sus propios bloques especiales, que en realidad 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 e idiomas sucesores
La notación de escalera se adapta mejor a los problemas de control donde solo se requieren variables binarias y donde el entrelazamiento y la secuenciación de binarios es el problema de control principal. Como todos los lenguajes de programación paralelos, el orden secuencial de las operaciones puede ser indefinido u oscuro; son posibles condiciones de carrera lógica que pueden producir resultados inesperados. Los peldaños complejos se dividen mejor 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 aún pueden tener problemas 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 formas de extender la notación para estos problemas. Por lo general, hay 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 potentes, las 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 en el puesto 50 de 52 en una lista de lenguajes de programación populares.
Contenido relacionado
Real Fuerza Aérea Australiana
Red de área de almacenamiento
Administración Nacional Oceánica y Atmosférica