Un autómata programable casero (PLC).

Esto no tiene mucho que ver con la robótica, pero si con la domótica. Si queremos automatizar de alguna manera una casa necesitaremos un "cerebro" que tome las decisiones pertinentes en base a las entradas y  salidas: un PLC.

Un poco de historia:

Este proyecto lo comencé hace más de 10 años. Entonces no había en el mercado un PLC comercial con entradas y salidas analógicas y comunicaciones serie compacto y a un precio razonable. A mi jefe se le ocurrió clonar un autómata comercial, incorporando los circuitos que faltaban a los modelos estándar. Asi nacio el proyecto EC. El autómata clonado es hitachi serie EB, más tarde incorporé las funciones de la serie EC. El proceso consistía en leer el manual del autómata y simular, con otro micro, el funcionamiento del PLC. Lo mismo con las comunicaciones serie: emular el comportamiento del PLC. Se trataba de poder utilizar, con el nuevo PLC, las herramientas de programación ya existentes para hitachi. El EB utiliza un micro motorola 680x, no recuerdo bien. El EC un H8-325. La primera versión de pruebas corría en un 8051 de intel, la segunda en un H8-534. 

Lo cierto es que la cosa funcionó y los autómatas clónicos basados en el H8-534 llevan más de 10 años funcionando perfectamente. A estas alturas ya es innecesario andarse con estas complicaciones de hacer uno mismo los PLC, pero todo el proyecto es muy instructivo y útil para un aficionado, por eso libero el proyecto.

Desgraciadamente el hacer algo en solitario tiene sus ventajas e inconvenientes. Como no tienes que compartir información con nadie no documentas el proyecto (todo esta en mi cabeza). El proyecto esta poco o nada documentado y hacerlo es muy tedioso. Contestaré las dudas a quien lo pida por email. Además, como se basa en un equipo comercial, para el uso y programación no hay más que remitirse a la documentación original de hitachi por lo que no hice manuales propios del PLC emulado. Al dia de hoy las series EB y EC creo que están descatalogadas. Yo tengo los manuales completos de programación y comunicaciónes.

Este es el primer prototipo basado en el 8051 (aunque lleva un DS500-32-12 de dallas).

Consta de un convertidor DC-DC de 24 a 5V el DS500 que integra 32K de RAM, reloj y batería de lítio. Tiene 8 entradas digitales de 24V DC y 6 salidas a LED (solo sirve para pruebas).

En esta foto puede verse el prototipo del diseño definitivo (basado en 8051, DS500 o DS87c520).

En la placa de arriba están las 16 entradas optoaisladas a 24V DC y las 16 salidas a relé, cada una de ellas con su LED de señalización. En la placa de abajo la CPU. Soporta 64K de EPROM y 64K de RAM. Se alimenta a 24V con un DC-DC y puede llevar un 8051, DS87C520, DS5000 u otro clon del 8051. Tiene 8 dilswitches para la configuración y 4 led de diagnóstico.

El conjunto CPU y E/S montado. Pueden verse los LED rojos de señalización de las salidas en la parte superior y los LED ámbar de las entradas en la parte de abajo.

En esta foto se aprecia el cableado de la CPU. Es el sistema que prefiero para montar prototipos. Ya habrá tiempo de circuitos impresos cuando esté todo probado y corregidos los errores.

Este es el modelo definitivo, siguiendo la misma estructura. La placa de la parte superior de la foto es la de entradas/salidas, y pueden conectarse varias para ampliar el equipo.

El modelo definitivo montado en modo "compacto" (solo 1 placa de I/O) y funcionando. El terminal de operador es una opción, funciona muy bien y tiene muchas posibilidades. Es un LCD de 20x2 de Batrón con 6 teclas y un selector de 2 posiciones. La electrónica de control son solo dos IC 74hctxx.

Esta es la versión basada en H8-543. El terminal de operador es intercambiable entre los distintos PLC. Esta placa tiene 2 salidas DA de 8 bit, 7 AD de 10 bit, 32 salidas digitales a transistor, y 32 entradas digitales sin optoaislar. Además tiene 4 puertos de comunicaciones, 2 RS232 y 2 RS485 y uno de los RS485 soporta un protocolo específico para comunicar con hasta 4 indicadores de peso AUMAT-4100. Tiene 8k de EEprom para programas. Un verdadero monstruo, para la época.

Ese es un PLC hitachi EC20HR (averiado) desmontado. No tiene nada que envidiar a sus clones.

Desgraciadamente el software que proporcionaba Logitek (el distribuidor de PLCs hitachi) para estos autómatas, el "hitachi eb programmer", tenía algunas deficiencias, y era muy poco ergonómico. Para salir del programa, por ejemplo, había que pulsar ctrl+sifth+escape. Con el tiempo tuve que desarrollar uno propio: el ECP. Además esto permitía incluir nuevas funciones a los PLC. Del mismo modo que el PLC es compatible con el software de hitachi (Logitek) el software ECP es compatible con los autómatas hitachi. De hecho acabamos usando el ECP para todos los PLCs originales y clónicos.

Esta aberración es una captura de pantalla del software ECP. Es un programa de MSDOS (tiene muchos años, aunque la última corrección de un bug la hice en el 2003). Al día de hoy contiene algún bug más sin solucionar, pero nada grave. Solo funciona con puertos serie "de verdad" porque hace acceso directo al hardware, nada de convertidores USB a serie, ni tarjetas PCMCIA. Funciona perfectamente en una ventana de MSDOS de Win XP. 

Actualización a 8/5/2007: Probando un adaptador USB-SERIE que usa el chip de FTDI FT232xx ( http://www.ftdichip.com/FTDrivers.htm ) he observado que emula correctamente el hardware del puerto serie a nivel de registros. Esto quiere decir que cualquier programa de MS-DOS que acceda a los registros del puerto serie USB virtual funcionará correctamente ya que sus lecturas y escrituras a estos registros virtuales serán reenviadas al dispositivo USB-SERIE. Lo he probado con distintos programas de MS-DOS en ventanas bajo WIN-XP y es correcto. Sin embargo el ECP454c no funciona adecuadamente, por lo que lo he revisado y he encontrado un bug en la gestión de los puertos COM3 y COM4. Esta versión del ECP comunica perfectamente a través de los puertos virtuales creados por el driver del chip FTDI y quizás también con los creados por otros drivers de otros fabricantes. Actualización a 20/11/2012 Version mejorada con simplificacion de mnemonicos optimizada, funciona muy bien bajo windows con el emulador DOSBOX: ECP456.RAR

Este es el diseño de uno de los PLC de pruebas:

Y este es el firmware que hay que ponerle para que funcione:

Para un DS5000T-32-12

Para un i8051 o clones, y DS1216.

Para hacer pruebas se pueden cargar estos programas y ver como funcionan: tests

Este es el manual de un Hitachi EC, mi versión del EC soporta lo mismo que uno original y tiene algunas mejoras. Algunas funciones REFX, REFY.. y otras poco utilizadas no hacen nada, pero no dan error.

Manual Hitachi serie EC en Español    

Ya se que esto solo sirve para ponerle los dientes largos a más de uno. ¿Y los fuentes? ¿Donde esta el código fuente     para poder cacharrear con el? Pues está escrito en clarísimo C de para Keil 3.2 (las versiones de intel 8051 y clones) y para IAR V2.91 las versiones de H8-534. El ECP esta en turbo C++ 3.1. Solo me falta encontrar las versiones adecuadas entre los miles de copias de seguridad (es la pena de los proyectos antiguos, se pierden en el trastero).

Inicio.

   

mailto:helitp@arrakis.es