PIC-PLC II

 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 
Pagina Principal Proyectos PIC

 

 

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 estándar  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 procesadores que mejor se ajustan a estos 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 ORCAD

 
134 Kb 
FUENTE.jpg
PROGRAMADOR 113 Kb 
ENTRADAS.jpg
ENTRADAS. 140 Kb 
SALIDAS.jpg
SALIDAS
131 Kb 
  Ir al principio

Lista de Circuitos impresos.

           Los circuitos impresos están realizados con el programa EDWinNC de Visionics,
         
   
layer1.jpg
Comp_side
45 Kb 
layer2.jpg
Full_pcb_color
33 Kb 
layer3.jpg
sold_layer
15 Kb 
layer4.jpg
Top_layer
12 Kb 
layer5.jpg
Top_layer_holes
17Kb 
Ir al principio

Fotos del PLC montado.

Dos de las placas de circuito impreso son de doble cara, la de entradas y la de salidas, la tarjeta que integra a la CPU el regulador conmutado y al programador es de doble cara y en el prototipo están cableadas con hilo de cobre asilado.


CPU.JPG
48.40 Kb
MVC014F.JPG
Salidas.JPG
53.81 Kb
MVC015F.JPG
Entradas.JPG
54.68 Kb
MVC016F.JPG
Reles.JPG
71.45 Kb
MVC017F.JPG General1.JPG
61.33 Kb
MVC018F.JPG
General2.JPG
64.84 Kb
Ir al principio
          Como se aprecia en las fotos, el autómata consta de tres placas de circuito impreso
          montadas una sobre otra usando separadores.
          Todo el cableado externo utiliza conectores 
          En la tarjeta inferior están integrados la fuente de alimentación, la CPU y el puerto
          de programación. La fuente de alimentación conmutada regula la tensiones +5V  1Amp para
          la lógica digital, para un tensión de entrada comprendida entre 12 y 30 V dc
          La placa central es la de entradas optoacopladas y led´s de diagnostico. En la  superior se encuentra el driver
          que activa los relés de salida  ( 1 contacto normalmente abierto  y libre de potencial )
          
          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 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 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
100 Kb 

WPic_cfg.jpg
56 Kb 


WPic16.jpg
78 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://www.ordenatas.es/automata/   Kit de automata PLC

http://www.ibercomp.es/plc/ Web de fabricante de micro Automata muy barato y potente NUEVO

http://www.ibercomp.es/ Web de fabricante de micro Automata pagina principal NUEVO

http://www.unicrom.com Electronica Unicrom, electronica al alcance de todos NUEVO

http://www.terra.es/personal/fremiro/home.htm Curso de microprocesadores PIC, tutoriales y muchas cosas mas NUEVO

REEA Web sobre automatas Programables y electronica Industrial MUY BUENA NUEVO

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
 

Ultima revisión 26 de Agosto del 2002

Santander - Cantabria - España