Lógica de escalera

Lenguaje de programación para controladores industriales

La lógica de escalera era originalmente un método escrito para documentar el diseño y la construcción de bastidores de relés como los que se utilizan en la fabricación y el control de procesos . [1] Cada dispositivo en el bastidor de relés estaría representado por un símbolo en el diagrama de escalera con conexiones entre esos dispositivos mostradas. 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 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 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 lenguaje se parecen a las escaleras , con dos raíles 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 gráfica de lógica de escalera, también existe un lenguaje más parecido a C llamado Texto estructurado dentro del estándar 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 o una operación de fabricación. La lógica de escalera es útil para sistemas de control simples pero críticos o para rehacer circuitos de relé 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 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 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 semejanza con los sistemas de hardware de relés familiares. [2] Las implementaciones de lógica de escalera pueden tener características, como ejecución secuencial y 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 en lugar de un lenguaje procedimental . 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 de manera simultánea e inmediata. Cuando se implementa en un controlador lógico programable, las reglas se ejecutan típicamente de manera secuencial mediante software en un bucle continuo o "escaneo". 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 los controladores programables requiere una comprensión de las limitaciones del orden de ejecución de los peldaños.

Sintaxis y ejemplos

El lenguaje en sí puede verse como un conjunto de conexiones entre comprobadores lógicos (contactos) y actuadores (bobinas). Si se puede trazar un camino entre el lado izquierdo del renglón y la salida, a través de contactos afirmados (verdaderos o "cerrados"), el renglón es verdadero y el bit de almacenamiento de la bobina de salida está afirmado (1) o es verdadero. Si no se puede trazar ningún camino, 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 de los contactos del relé se debe a Claude Shannon .

La lógica de escalera tiene contactos que abren o cierran 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 hacer referencia cualquier cantidad de veces al estado de un solo bit, lo que equivale a un relé con una cantidad indefinidamente grande de contactos.

Los denominados "contactos" pueden referirse a entradas físicas ("duras") al controlador programable desde 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 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, se cierra siempre que se energiza su bobina correspondiente o una entrada que lo controla. (Contacto abierto en reposo.)
  • —[\]—Contacto normalmente cerrado ("no"), cerrado siempre que su bobina correspondiente o una entrada que lo controla no esté energizada. (Contacto cerrado en reposo.)
Salida de peldaño
Actuadores (bobinas)
  • —( )—Bobina normalmente inactiva, energizada siempre que su peldaño esté cerrado. (Inactiva en reposo.)
  • —(\)—Bobina normalmente activa ("no"), 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 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 los comprobadores (contactos) como una entrada de pulsador y los actuadores (bobinas) como una salida de bombilla. La presencia de una barra dentro de los comprobadores 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 podrían usar para activar un motor eléctrico en la puerta de una 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.

AND lógico con NOT

------[ ]--------------[\]----------------( ) Cerrar puerta Obstrucción Motor de puerta

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

Este circuito muestra un pulsador que cierra una puerta y un detector de obstrucciones que detecta si hay algo que impida que la puerta se cierre. Cuando el contacto del pulsador normalmente abierto se cierra y el detector de obstrucciones normalmente cerrado se cierra (no se detecta ninguna obstrucción), la electricidad puede fluir hacia el motor que cierra la puerta.

OR lógico

--+-------[ ]-------+-----------------( ) | Desbloqueo exterior | Desbloqueo | | +-------[ ]-------+ Desbloqueo interior

Lo anterior realiza la función: Desbloquear = 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 de inicio/parada con enclavamiento industrial común, tenemos un botón "Inicio" para encender un contactor de motor y un botón "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 "Detener". Cuando la entrada "Ejecutar" se vuelve verdadera, el contacto NA "Ejecutar" sellado en paralelo con el contacto NA "Inicio" se cerrará manteniendo la lógica de entrada verdadera (enclavada o sellada). Después de que el circuito esté enclavado, se puede presionar el botón "Detener", lo que hace que su contacto NC se abra y, en consecuencia, la entrada se vuelva falsa. Luego, el contacto NA "Ejecutar" se abre y la lógica del circuito regresa a su estado inactivo.

--+----[ ]--+----[\]----( ) | Iniciar | Detener Ejecutar | | +----[ ]--+ Correr
-------[ ]---------------( ) Ejecutar motor

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

Esta configuración de pestillo es un modismo común en la lógica de escalera. También se la puede denominar lógica de sellado . La clave para comprender 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 nuevamente). Tan pronto como se activa el solenoide de "Ejecutar", cierra el contacto NA de "Ejecutar", que bloquea el solenoide. La apertura del interruptor de "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, se puede conectar un interruptor de parada de emergencia ("ES") en serie con el interruptor de "Inicio", y la lógica del relé debe reflejar esto.

--[\]----[\]----+--[ ]--+---------( ) ES Parar | Iniciar | Ejecutar | | +--[ ]--+ Correr
-------[ ]---------------( ) Ejecutar motor

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

Lógica compleja

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

Por lo general, la lógica de escalera compleja se "lee" de izquierda a derecha y de arriba hacia 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:

  1. Realizando la función: A/C = Interruptor Y (HiTemp O Húmedo).
     ----[ ]---------+----[ ]-----+----( ) Interruptor | HiTemp | A/C | | +----[ ]-----+ Húmedo
  2. Realizando la función: Refrigeración = A/C Y ( NO Calor).
     ----[ ]----[\]--------------------( ) Aire acondicionado, calefacción y refrigeración

Esto representa un sistema ligeramente más complejo para el escalón 2. Después de que se haya evaluado 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 un dispositivo de salida "Compresor" o al escalón 3 de la escalera. Este sistema permite descomponer 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 activa el bloque especial, ejecuta código sobre argumentos predeterminados. Estos argumentos pueden mostrarse dentro del bloque especial.

 +-------+ -----[ ]--------------------+ A +---- Desbloqueo remoto +-------+ Contador remoto
 +-------+  -----[ ]--------------------+ B +---- Desbloqueo interior +-------+  Mostrador interior
 +--------+ --------------------+ A + B +----------- | en C | +--------+ Sumador

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á la cantidad total de veces que se desbloqueó la puerta electrónicamente.

Los PLC tienen muchos 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 realidad son subrutinas o macros. La gran biblioteca de bloques especiales junto con la ejecución a alta velocidad ha permitido el uso de PLC para implementar sistemas de automatización muy complejos.

Limitaciones y lenguajes sucesores

La notación en escalera es la más adecuada para controlar problemas en los que 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 paralela , el orden secuencial de las 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ícitamente y por completo el orden de ejecución de un peldaño; sin embargo, los programadores aún pueden tener problemas para comprender por completo 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, existe un soporte limitado para matrices y bucles, lo que a menudo da como resultado 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 diagramas 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 número 50 de 52 en una lista de lenguajes de programación populares. [3]

Véase también

Referencias

  1. ^ "Los conceptos básicos 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 era posible gracias a los 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 0123948509 , Capítulo 8 Diagramas de lógica de escalera e implementaciones de PLC 
  3. ^ "Interactivo: los mejores lenguajes de programación". IEEE Spectrum . Archivado desde el original el 18 de septiembre de 2019.

Lectura adicional

  • 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, Computación y Tecnología: The Open University . Archivado (PDF) desde el original el 20 de junio de 2018. Consultado el 20 de junio de 2018 .
  • "Capítulo 6: lógica de escalera" de Tony R. Kuphaldt
Obtenido de "https://es.wikipedia.org/w/index.php?title=Lógica_de_escalera&oldid=1231926368"