logotipo

img_google
PIC-PLC

 PROYECTO DE AUTOMATA PROGRAMABLE  DE 8 E/S
        BASADO EN EL PROCESADOR PIC 16F84

          Autor: Juan Manuel Rodríguez

 
Esquemas
Circuitos impresos Fotos del PLC montado Software
Sistema Operativo Instrucciones PLC Ejemplos Links 

 

Historia del proyecto.

Después de varios años trabajando con  autómatas comerciales de diferentes fabricantes
como OMRON, SIEMENS, EBERLY y BOSCH. Decidí en mi tiempo libre diseñar un
autómata hecho a medida. La idea original tendría que cumplir las siguientes premisas:

    - Lenguaje de programación compatible con el standar  y soportar todo tipo de
       instrucciones, contadores y temporizadores.
    - La memoria del PLC tendría que ser no volátil para no perder el programa por un
      corte de tensión.
    - La posibilidad del volcado de los programas desde un P.C a poder ser en un
       entorno Windows
    - Los componentes del hardware han de ser baratos y fáciles de localizar.
    - El numero de entradas y salidas, en un principio 8 E/S ampliable en el futuro.
    - Alimentación a 220 V AC o 12V DC de una batería.
El primer paso fue diseñar el sistema operativo, el lenguaje de programación tenia que ser
sencillo y programar directamente en ensamblador no era una solución. Después de algunas
pruebas usando un procesador 80C535 y trabajando en ensamblador, vi la posibilidad de
usar las funciones que ofrecen los compiladores para incluir etiquetas y macros en el código
maquina del procesador.

La solución fue usar "MACROS" para convertir las instrucciones en ensamblador en
instrucciones estándar usadas por los autómatas comerciales.

De esta manera la lectura por ejemplo de una entrada del autómata se haría con la
instrucción IN A,B donde " IN " seria el código de la instrucción, el campo " A "
la dirección de la tarjeta de entradas y en campo " B " el numero de la entrada física
de la tarjeta " A " que deseamos leer. Activar una salida tendrá la siguiente sintaxis: OUT A,B
Un temporizador : TIM A,B
Un contador : CNT A,B
Y el resto de las instrucciones como: AND , AND_NOT, OR, OR_NOT, LD, LD_NOT,
MOV, SET, RESET etc., siguen la misma línea.

La ventaja del uso de las macros es que nos permite llamar a la instrucción con el nombre
que mas nos guste. El uso de etiquetas nos permite hacer aun mas claros los programas del
autómata al poder sustituir las direcciones hexadecimales de las entradas/salidas por un texto
mas descriptivo :

LD Tarjeta_E0,Pulsador_Marcha
OUT Tarjeta_S0,Marcha_motor

Una vez depurado el sistema operativo, probé diferentes formulas para almacenar
los programas en memoria. El uso de EPROM no era viable ya que habría que borrarla
previamente cada vez que se hiciese una modificación.

El uso de RAM estática no volátil no resulto estable ya que con los cortes de tensión se
corrompían los datos. La opción final fue buscar un microprocesador que incluyese
memoria EEPROM para el sistema operativo y programa PLC y RAM para los datos
temporales. Los procesadore que mejor se ajustan a etos requerimientos son:

ATMEL 89C4024 y los PIC 16F84 de MICROCHIP .

Las diferencias entre los procesadores son las siguientes:

La familia ATMEL ofrece procesadores con 4K de memoria EEPROM y 128 bits de RAM
con dos puertos E/S, los códigos maquina son compatibles con intel y muy cómodos para
direccionar bits. Sin embargo requiere un hardware de programación complicado.

El microprocesador PIC16F84 solo ofrece 1K de EEPROM y 64 bits de RAM, el código
maquina es un poco menos cómodo, pero el hardware de programación es muy sencillo y
existe mucha documentación y muchos programas gratuitos en Internet.

La opción final fue el PIC ya que permite integrar el programador dentro del autómata
usando un hardware muy sencillo, descargar los programas usando el puerto paralelo
del PC y realizar modificaciones en cuestión de segundos, aun a pesar de su escasa
capacidad de memoria.

Una vez elegido el procesador, solo quedo buscar el hardware mas adecuados para el resto
del sistema: Relés de 5V para las salidas, optoacopladores para aislar las entradas, la fuente
de alimentación y los chips TTL auxiliares.

Ir al principio

Esquemas.

Los esquemas  están realizados con el programa EDWinNC de Visionics

 
CPU.jpg
CPU.jpg
69.92 Kb 
ENTRADAS.jpg
ENTRADAS.jpg
74.88 Kb 
FUENTE.jpg
FUENTE.jpg
48.64 Kb 
SALIDAS.jpg
SALIDAS.jpg
64.71 Kb 
  Ir al principio

Lista de Circuitos impresos.

           Los circuitos impresos están realizados con el programa EDWinNC de Visionics,
           las imágenes jpg  no están a escala 1/1 y para la mayor parte de los componentes
           tuve que crear mis propias librerías.
 
 
layer1.jpg
layer1.jpg
107.82 Kb 
layer2.jpg
layer2.jpg
108.63 Kb 
layer3.jpg
layer3.jpg
82.68 Kb 
layer4.jpg
layer4.jpg
83.43 Kb 
layer5.jpg
layer5.jpg
52.58 Kb 
Ir al principio

Fotos del PLC montado.

Ambas placas de circuito impreso son de doble cara y dado que el primer prototipo fue
realizado mano dibujando las pistas una a una, algunas de ellas están cableadas usando
hilo de cobre.


MVC013F.JPG
48.40 Kb
MVC014F.JPG
MVC014F.JPG
53.81 Kb

MVC015F.JPG
54.68 Kb
MVC016F.JPG
MVC016F.JPG
71.45 Kb
MVC017F.JPG
MVC017F.JPG
61.33 Kb
MVC018F.JPG
MVC018F.JPG
64.84 Kb
MVC019F.JPG
MVC019F.JPG
58.70 Kb

MVC020F.JPG
58.23 Kb

MVC021F.JPG
64.91 Kb
MVC022F.JPG
MVC022F.JPG
59.83 Kb

MVC023F.JPG
68.00 Kb

MVC025F.JPG
50.79 Kb
Ir al principio
          Como se aprecia en las fotos, el autómata consta de dos placas de circuito impreso
          montadas una sobre otra usando separadores.
          Todo el cableado externo se conecta con conectores enchufabais.
          En la tarjeta inferior están integrados la fuente de alimentación, la CPU y el puerto
          de comunicaciones. La fuente de alimentación genera tres tensiones +5V  1Amp para
          la lógica digital, 14 V 0,1 Amp para el circuito de programación del procesador y
           +24V 0,5 Amp para las entradas optoacopladas En la superior se encuentra el driver
          que activa los relés de salida  ( 1 contacto normalmente abierto  y libre de potencial )
          y los optoacopladores que aíslan eléctricamente  las entradas analógicas de la
          circuiteria digital.
          El estado de las entradas se visualizan  con diodos led verdes y las salidas con
          diodos led rojos. Las tarjetas están conectadas a través de un cable plano de 26 pin,
          el puerto de comunicaciones es de 9 pin y están implementados en el frontal tres led
          de diagnostico, un pulsador de RESET y un interruptor de dos posiciones:
          El led verde indica que el PLC esta en modo RUN ejecutando el programa contenido
          en memoria y parpadea con una cadencia de 0,5 segundos, estando bajo el control
          del sistema operativo. Si el PLC se cuelga o la memoria EEPROM esta borrada este led
          deja de parpadear así como  cuando el interruptor esta en modo STOP/PROGRAM..
          El led rojo nos informa que el procesador esta en estado de RESET, se activa
          unos segundos al aplicar tensión al autómata, cuando presionamos el pulsador de RESET
          que se encuentra junto al led verde y cuando pasamos el interruptor de dos posiciones
          del modo RUN al modo de programación STOP/PROGRAM para volcar programas
          a la memoria del PIC. El led amarillo sirve de diagnostico en los procesos de comunicación
          con el P.C. se activa al leer, borrar, verificar y grabar la memoria EEPROM del
          procesador PIC16F84.
Ir al principio

Programas windows.

          El software elegido para la programación del autómata se ejecuta bajo Windows 95/98
          es de libre distribución para uso no comercial y disponible en la red.
          El potente entorno de programación MPLAB de MICROCHIP fabricante del
          microprocesador PIC, lo usaremos para editar y compilar los programas PLC.
          y generar el fichero.hex que volcaremos en el PIC.
          A parte de editar y compilar este soft. incluye muchas otras opciones como la simulación
          paso a paso de programas en ensamblador con la que depure en su momento el sistema
          operativo del autómata. Este programa se puede descargar desde
          http://www.microchip.com/ y su tamaño es de unos 9MB

          Para la grabación de la memoria EEPROM del PIC  y después de mucho buscar
          por la red elegí el programa WPicProg16 diseñado por Nigel Goodwin al que debemos
          agradecer su aportación así como a Don Mckenzie que ofrece mucha información sobre
          programadores PIC en su pagina web Australiana y a través de la cual localice el programa.
 
 


MPLAB.jpg
99.51 Kb 

WPic16.jpg
76.13 Kb 
Ir al principio
El software de programación del procesador PIC16F84 se puede descargar
de la pagina personal de Nigel  Goodwin. El hardware del PLC esta optimizado
para la versión 1.21 de 16 bits  ejecutable bajo Windows 95/98

http://www.lpilsley.freeserve.co.uk/software.htm

Ir al principio

Información bibliográfica.

Microcontroladores PIC La solución en un CHIP. Editorial PARANINFO.

Ir al principio

Links de PLC´S y Procesadores PIC.

.http://www.microchip.com/ Pagina del fabricante de los procesadores PIC

http://www.dontronics.com/ Pagina Australiana sobre programadores PIC y ATMEL

http://www.bahnhof.se/~visionic/body.htm Pagina de Visionic, EDWinNC software de diseño de circuitos impresos

 http://www.lpilsley.freeserve.co.uk/   Nigel Goodwin home page

 http://eya.swin.net/micros/pic16f8x/pic16f8x.htm  Arquitectura del PIC 16F84

 http://www.lokekieras.es/personales/mgsanz/programa.htm  Programador  PIC´s gratis

 http://www.electronicas.com/tools.html  Kits de programadores PIC y ATMEL

 http://www.ordenatas.es/automata/  Kit de automata PLC

Ir al principio

Última revisión.
 

Si tiene problemas o preguntas relacionadas con este Web,
póngase en contacto con [Correo Electrónico Proyecto PLC].

Copyright © 1999. Reservados todos los derechos.
La información contenida en este documento está sujeta a modificaciones sin previo aviso.
El proyecto no esta diseñado para usar en maquinas donde pueda correr peligro
la integridad física de personas. Se declina cualquier responsabilidad sobre
el uso incorrecto de este sistema
Este documento solo pretende aportar información sobre microprocesadores,
no estando autorizado su uso para aplicaciones comerciales sin la autorización
expresa del autor.
Otros productos u organizaciones mencionadas aquí son marcas comerciales o marcas
registradas propiedad de sus respectivas organizaciones o propietarios.

Ir al principio