Programar en Ladder

El modo de programar en ladder (ladder en ingles – en escalera – español), es un método de programación en escalera. Usaremos un microcontrolador para el control que le llamaremos PLC (Controlador Lógico Programable), rápido y fácil.

Programar en Ladder con microcontrolador PIC AVR

Programar en Ladder es además de intuitivo, muy fácil

Un sistema PLC (Controlador Lógico Programable) es el mejor ejemplo para este artículo.

PLC es un dispositivo electrónico, anteriormente llamado “control de secuencia”. En 1978, NEMA (Fabricación Asociación Nacional de Electricidad) en los Estados Unidos nombrado oficialmente como “lógico programable controlador”. PLC lee el estado de los dispositivos de entrada externos, por ejemplo, teclado, sensor, interruptor y ejecutar las operaciones lógicas programadas mediante los sistemas para programar en Ladder.

Las señales de salida generadas se envían a los dispositivos de salida como el interruptor de un relé, la válvula electromagnética, una unidad de motor, el  control de una máquina o funcionamiento de un procedimiento para la propósito de automatización de la máquina o del procedimiento de procesamiento.

Diagrama en escalera de un PLC industrial

Los dispositivos periféricos (por ejemplo, la computadora personal / portátil panel de programación) puede fácilmente editar o modificar el programa y supervisar el dispositivo y llevar a cabo en las instalaciones del programa mantenimiento y ajuste.

El lenguaje utilizado en el diseño de un programa de PLC es el diagrama de escalera (ladder). Con el desarrollo de la tecnología electrónica y las aplicaciones más amplias de PLC en la industria, por ejemplo en control de la posición y la función de la red de PLC, las señales de entrada / salida del PLC incluyen DI (entrada digital), AI (analógico entrada), PI (entrada de impulsos), DO (salida digital), AO (salida analógica) y PO (salida de impulsos). Por lo tanto, el PLC todavía se mantendrá importante en el campo de la automatización industrial por mucho tiempo.

Los Principios de aplicación práctica del esquema de contactos

El diagrama de escalera era un lenguaje de diagrama para la automatización desarrollada en el período de la Segunda Guerra Mundial, que es la más antigua y más ampliamente adoptado en el lenguaje de automatización.

En la etapa inicial, sólo había un tipo de contacto A (normalmente abierto), B (Normalmente cerrado), bobina de salida, temporizador y contador … la clase de dispositivos básicos en el esquema de contactos (ver el panel de la energía que todavía se utiliza hoy en día).

Después de la invención de los controladores lógicos programables (PLC), los dispositivos visualizable en el esquema de contactos se añaden con el contacto del diferencial, la bobina enclavada y los comandos de la aplicación que no estaban en un panel de alimentación tradicional, por ejemplo, las operaciones de suma, resta, multiplicación y división.

Los principios de trabajo del diagrama de escalera tradicional y diagrama de escalera del PLC son básicamente los mismos. La única diferencia es que los símbolos del diagrama de relés tradicionales son más similares a su forma original.

La programación Ladder adopta los símbolos que son fáciles de reconocer y se muestra en las hojas de ordenador o de datos. En términos de lógica del diagrama de escalera, hay una lógica combinacional y la lógica secuencial.

Introducción a LDmicro

Resumen rápido: LDmicro es un compilador que comienza con un esquema de contactos y genera el código necesario para el microcontrolador PIC16 nativo o código AVR. Las características incluyen:

  • entradas y salidas digitales
  • temporizadores (TON, TOF, RTO)
  • contadores (CTU, CTD, `contadores circulares ‘para su uso como un secuenciador)
  • entradas analógicas, analógico (PWM)
  • variables enteras y las instrucciones aritméticas
  • fácil de utilizar las comunicaciones en serie, a un PC, LCD, u otro dispositivo
  • registros de desplazamiento, tablas de consulta
  • variables de EEPROM, cuyos valores no se olvidan cuando se pierde el poder
  • simulador, para probar el programa antes de generar el código PIC / AVR

Es un software libre; incluye código fuente (al final del artículo), el ejecutable está listo para su descarga en el enlace siguiente:

descarga

introducción a LDmicro

El PLC a menudo se programan en la lógica de escalera. Esto se debe a que los PLC originalmente sustituyen los sistemas de control del relé, y cuarenta años después, todavía no han dejado de existir. Un PLC, al igual que cualquier microprocesador, realiza una lista de instrucciones en secuencia.

Introducción a LDmicro

El sistema de programación de lógica en escalera se resume así; Se puede programar el PLC cableando contactos de relé y bobinas en la pantalla, y el tiempo de ejecución del PLC va a simular el circuito que has dibujado. Algunos de los contactos del relé puede estar vinculado a las señales de entrada procedentes del mundo real; algunas de las bobinas pueden estar vinculados a las salidas. De esa manera usted puede hacer que el circuito simulado interactúe con otros dispositivos y en realidad controlar las cosas. Este es el punto.

En realidad, es más general que eso, porque se puede incorporar temporizadores, contadores y operaciones aritméticas que se podía no (fácilmente) llevar a cabo con sólo relés. El concepto de circuito sigue siendo útil, sin embargo, en parte, sólo porque es intuitiva, pero también porque se abstrae los problemas de concurrencia. Supongamos esto:

introduccion-a-ldmicro-1

Se trata de un simple trozo de lógica combinatoria. Hay tres términos de entrada, Xa, Xb y Xc. Hay una salida, Yout. La expresión es Yout: = Xa y (Xb o (no Xc)). Esto tiene sentido si se piensa en Xa y Xb como contactos de relé normalmente abiertos, Xc como contactos de relé normalmente cerrados y Yout como una bobina de relé. Por supuesto se vuelve más complicado que eso:

Programación en escalera

El listado anterior es para un termostato simple. Hay dos entradas analógicas; una de ellas es para el punto de ajuste, por lo que podría, por ejemplo, estar conectado a un potenciómetro que el usuario gira para seleccionar la temperatura deseada. El otro proporciona la medición de temperatura; que podría ser un sensor de temperatura semiconductor, o un RTD de platino con circuitos de interfaz adecuado. Hay una salida digital, Yheater. Esto puede controlar un elemento de calentamiento, a través de un interruptor adecuado (un TRIAC, un relé, un relé de estado sólido o lo que sea).

Este esquema podría ser perfectamente adaptable al ejemplo descrito con ligeras modificaciones:

Termostato electrónico programable

Cerramos el ciclo con un controlador de histéresis sencilla (Triger). Hemos seleccionado más o menos 20 unidades de ADC de histéresis. Eso significa que cuando la temperatura cae por debajo de (punto de ajuste – 20), Activamos la señal del calentador, y cuando sube más arriba (punto de ajuste + 20), se apaga el calentador.

Elegimos añadir algunos lujos pequeños. En primer lugar, hay una entrada de habilitación: el calentador es forzado cuando Xenable es baja. También se ha añadido un indicador luminoso, Yis_hot, para indicar que la temperatura está dentro de la regulación. Esto se compara con un umbral ligeramente más fría que (punto de ajuste – 20), de modo que la luz no parpadea con el ciclo normal del termostato.

Este es un ejemplo trivial, pero debe quedar claro que el lenguaje es muy expresivo. La lógica de escalera no es un lenguaje de programación de propósito general, pero es completo, aceptado en la industria y para una clase limitada de problemas (en su mayoría orientadas a controlar), sorprendentemente convenientes.

Un compilador de la lógica de escalera para PIC16 y AVR

Los modernos microcontroladores tienen una potencia de cálculo sobradamente excepcional para poder fabricar un perfecto PLC. Creo que los PLC por lo general tienen algún tipo de tiempo de ejecución que es algo así como un intérprete o una máquina virtual, pero si estamos haciendo una lógica sencilla en un procesador sin mucha memoria y a continuación un compilador podría ser una buena idea.

Así que surgió este un compilador (LDmicro). Se empieza con una lógica vacía. Puede agregar contactos (entradas) y bobinas (salidas) y las estructuras más complicadas para construir un programa. Los temporizadores (TON, TOF, RTO) son compatibles. Las duración máx / min dependen del tiempo de ciclo del PLC que es configurable; los temporizadores pueden contar de milisegundos a decenas de minutos.

Los elementos del circuito se pueden añadir en serie o en paralelo con los elementos existentes. Una lista de E / S se construye a partir de la lógica en escalera dibujada. Puede tener relés internos (Rfoo), para los cuales se asigna automáticamente la memoria o entradas (Xfoo) y salidas (Yfoo) a la que se deben de asignar un pin en el microcontrolador.

La selección de salidas disponibles depende del tipo de microcontrolador usado. Se ha tratado de apoyar a los PICs más populares y AVR (véase más adelante).

Se puede editar el programa en forma gráfica:

Ejemplo del editor LDmicro

A continuación, puede probar el programa mediante la simulación en tiempo real. El programa aparece en la pantalla con las líneas (true) resaltadas si están activadas, lo que hace que sea fácil de depurar. El estado de todas las variables se muestra en la parte inferior de la pantalla de la lista de E / S.

ladder simulador

Una vez que el programa trabaja en la simulación puede asignar pines a las entradas y salidas y generar el código para un PIC o AVR. El generador de código no es muy difícil.

El editor es en realidad mucho más difícil. Se necesitaría un poco de trabajo para hacer un compilador inteligente, sin embargo. Para el AVR un buen asignador de registros proporcionaría una aceleración importante. Si usted quiere conseguir un circuito de calidad, podría aplicar algoritmos estándar de reducción de la lógica y tal vez la reducción del estado también. Eso sería mucho más difícil. Tenga en cuenta de que los temporizadores suelen enredar las cosas de todos modos.

Incluso haciendo caso omiso de todo esto, el generador de código para el AVR es muy pobre. El extremo posterior AVR se genera código PIC … por ejemplo, en realidad no se aprovechan del hecho de que el AVR tiene más de un registro. Parte del código que genera es sólo excesivamente sencillo. Nada de esto importa mucho si está tratando de ejecutar decenas de líneas de lógica con tiempos de ciclo más rápidos.

El software para programar en ladder soporta apoyo al convertidor A / D, unidad PWM, y UART en los microcontroladores que los proveen. Esto significa que se puede escribir la lógica de escalera que lea entradas analógicas, enviar y recibir caracteres sobre un puerto seria (por ejemplo a un PC, si se agrega un nivel adecuado como un MAX232, o un visualizador LCD de caracteres). Es posible enviar cadenas arbitrarias en serie, tanto variables enteras como texto ASCII.

Por último, ahora es compatibles con las variables `almacenadas’ en los dispositivos con memoria EEPROM; se puede indicar que una variable particular pueda ser guardada automáticamente en la memoria no volátil cada vez que cambia, por lo que su valor es persistente y durante el encendido se restablece.

Limitaciones, y descarga de responsabilidad

Por supuesto, un microcontrolador con este software no puede hacer todo lo que un PLC. La mayoría de los entornos de PLC ofrecen más funciones y bloques predefinidos que esta herramienta no tiene.

A nivel particular de mikroe.es – no recomendamos este proyecto para aplicaciones industriales, solo domésticas, de ensayos y estudio.

El hardware del PLC también es mejor (aunque se pueden construir un hardware muy eficiente); por lo general las entradas y salidas están diseñadas para soportar el abuso se señales eléctrica increíble. Usted puede conseguir un PIC16F877 en un tablero de soporte durante diez o veinte dólares, sin embargo, tendrá que pagar un poco más para un PLC con las mismas capacidades.

Hasta ahora se han recibido muy pocos informes de errores en comparación con el número de personas que tengan preguntas o peticiones. Todavía hay una gran posibilidad de que aparezcan defectos, especialmente en los objetivos para los microcontroladores que no se han probado físicamente ( esta es la cuestión). Ciertamente no utilice LDmicro en la industria ni donde pudiera romper algo caro si falla.

Como se señalo anteriormente, el código que genera está lejos de ser óptimo. Además, no toda la RAM de datos en dispositivos PIC16 está disponible para el programa de lógica de escalera. Esto se debe a que no se han puesto en práctica mucho apoyo a todas las tonterías de paginación. Sin embargo, a favor de la paginación de la memoria del programa, que es necesaria para las posiciones de memoria en el programa de acceso PIC16 más allá de 2k.

Descargar LDmicro

Este software ha sido probado en todas las versiones de Windows 2000 a Windows 10 y puede programar en ladder muy cómodamente por la velocidad de ejecución.

La descarga por seguridad es un archivo .rar, se descomprime y queda un único archivo .exe; no hay otros archivos necesarios y no hay programa de instalación. Guardarlo en algún lugar en el equipo y sólo ejecutándolo funcionará. El manual en inglés se incluye en el archivo .exe, pero puede descargarlo (en español) por separado si lo desea.

El compilador genera archivos en formato de Intel HEX. La mayor parte del software de programación que he visto es así. Por supuesto, se necesita algún tipo de aparato de programación para obtener el archivo hex en el chip. Para los RAV, recomiendo una AVRISP mkII, que está disponible en varios distribuidores . Para los PIP, recomiendo PICkit de Microchip 2 ó 3, que está disponible en su tienda web . Ambos están soportados oficialmente, conectarse a través de USB, y cuestan menos de 40 dólares. (también y según el PIC que use pueden conseguir programadores a precios muy razonables).

Por lo general, debería ser posible utilizar el código generado por LDmicro con un cargador de arranque. La mayoría de las partes del AVR tienen fusibles especiales (BOOTRST, BOOTSZx) que necesitarán ser configurado para el gestor de arranque que está utilizando. Las partes PIC16 no tienen ningún soporte de hardware específico para un gestor de arranque, pero LDmicro genera código con el formato correcto para permitir que el gestor de arranque para volver a escribir el vector de reset.

Le agradecería cualquier informes de errores. Las siguientes Circuitos Integrados son compatibles:

PIC16F628 (A)
PIC16F88
PIC16F819
PIC16F877 (A)
PIC16F876 (A)
PIC16F887
PIC16F886
ATmega128
ATmega64
ATmega162
ATmega32
ATmega16
ATmega8

También es posible generar un código C del programa de escalera. Eso es menos conveniente, pero se puede usar en cualquier procesador para el que tenga un compilador C.

LDmicro puede generar código de bytes interpretables. Si usted está dispuesto a escribir un intérprete entonces usted puede utilizar esto para ejecutar el código de escalera.

El código fuente y varios archivos, están disponibles para su descarga. Este programa se puede distribuir y modificar bajo los términos de la GPL versión 3 .

El ejecutable está construido en varios idiomas, nosotros solo le suministramos el español (En preparación), pero si lo prefieren, pueden visitar la web del fabricante y descargarlo. El siguiente enlace es para descargar los archivos fuentes en original.

descarga

Por favor reporte cualquier defecto. Este software es libre, sin ningún departamento encargado del control de calidad. Ni siquiera disponemos del hardware para probar muchas de las metas a conseguir. Un error que no se informa es probable que alguna vez suceda.

Hay un tutorial de cómo programar en ladder, en el que se describe cómo introducir un diagrama de escalera simple, simular, y luego generar un archivo Intel HEX y programarlo en un PIC. Esta es probablemente la forma más fácil de empezar a trabajar con este software.

Agradecemos los comentarios y para concluir les decimos que esta web no se hace responsable de cualquier daño producido por el uso de este proyecto.

Mikroe