Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Construccion de Un PLC Con PIC
Construccion de Un PLC Con PIC
AUTMATA
PROGRAMABLE
CON
PIC
n el nmero anterior de Saber Electrnica comenzamos a publicar un Curso de Autmatas Programables, indicando que ibamos a dar varios circuitos
prcticos con componentes conocidos.
Luego de estudiar diferentes opciones, nos
comunicamos con el autor de este proyecto para solicitarle la posibilidad de
compartir con todos los lectores su diseo. De esta manera comenzamos con la
descripcin de un Autmata de 8 entradas
y 8 salidas (ampliable) construido a partir
de nuestro ya conocido PIC 16F84. En esta
primera parte damos una descripcin del
LD Tarjeta_E0,Pulsador_Marcha
OUT Tarjeta_S0,Marcha_motor
Una vez depurado el sistema
operativo, prob diferentes frmulas para almacenar los programas en memoria. El uso de
EPROM no era viable ya que
habra que borrarla previamente
cada vez que se hiciese una modificacin.
El uso de RAM esttica no
voltil no result estable ya que
con los cortes de tensin se corrompan los datos. La opcin 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 adaptan a
Figura 1
Figura 2
Figura 3
Figura 4
libre de potencial) y los optoacopladores que aslan elctricamente las entradas analgicas de la
circuiteria digital.
El estado de las entradas se
visualizan con diodos led verdes
y las salidas con diodos led rojos.
Figura 6
Figura 7
Figura 8
PROGRAMAS CON
AMBIENTE WINDOWS
El software elegido para la
programacin del autmata se
ejecuta bajo windows 95/98, es
de libre distribucin para uso no
comercial y est disponible en la
red. Se utiliz un viejo conocido de los lectores de Saber Electrnica; el potente entorno de
programacin MPLAB de MICROCHIP, fabricante del microprocesador PIC, usado para
editar y compilar los programas
PLC y generar el fichero.hex
que volcaremos en el PIC.
A parte de editar y compilar
este software (programa), el
MPLAB incluye muchas otras
opciones como la simulacin paso a paso de programas en ensamblador con la que depure en
SISTEMA OPERATIVO OS
El sistema operativo del autmata que he proyectado y cuyos
lineamientos expusimos en la edicin anterior en realidad es muy
sencillo, tan slo incluye las instrucciones que inicializan los registros del procesador, el puerto
A, el puerto B, el temporizador
TMR0, los vectores de interrupcin, la rutina que gestiona las entradas/salidas y la rutina de gestin de pilas; el resto son macros
que se utilizan como instrucciones
del PLC.
Una de las muchas ventajas de
las MACROS del ensamblador, es
Figura 1
Tabla 1
Descargar el sistema operativo
Descargar plantilla de programa PLC
Descargar ejemplo de programa PLC
Figura 2
Figura 3
Figura 4
OS_PLC8.asm
PLANTILLA.asm
EJEMPLO.asm
conocer los cdigos
ensambladores del
microcontrolador
PIC16F84.
A la hora de realizar
un programa PLC
con el software
MPLAB se utilizan
dos ficheros, uno
con el S.O. (sistema
operativo) y otro
con las instrucciones
PLC. En este ltimo
se debe realizar una
llamada al fichero
que contiene el S.O.
de forma que se
compilen juntos.
Si Ud. desea experimentar con este autmata, debe bajar
de la web los archivos mostrados en la
tabla 1, ya que en la
prxima edicin trabajaremos con ellos.
El programa
MPLAB de Microchip es un software
De esta manera ya
tenemos creado el
proyecto con los dos
ficheros necesarios,
picamos OK y se
cierran todas las ventanas.
Podemos a continuacin escribir el programa PLC y compilarlo junto con el
S.O. con los conos
mostrados en la figura 6.
Tenga en cuenta que
Ud. puede bajar el
programa ya escrito (que denominamos plc1.asm) de la web, no hace falta que lo escribamos para
luego compilarlo.
Para compilar el programa y
as tener el archivo plc1.hex, picamos en FILE, luego OPEN (figura 7) y buscamos el archivo plc1.asm (nosotros lo
bajamos de
la web y sabemos
dnde lo
hemos alojado) tal
como sugiere la figura 8.
Aparecer
el listado
del programa (figura
Fig. 5
Figura 6
Figura 7
Figura 8
9) y lo ensamblamos picando en
PROYECT y luego BUILD ALL
(figura 10).
Para ver el nmero de bytes de
memoria EEPROM que ocupa el
programa compilado, desde el
men "Window" opcin "Program Memory" abrimos una ventana donde veremos las direcciones EEPRON usadas y as poder
calcular el espacio que an nos
queda libre.
Una vez compilado el programa y libre de errores podemos pasar a grabarlo en el PLC, para ello
conectamos el cable de comunicaciones entre el puerto paralelo de
nuestro P.C. y el autmata, ejecutamos el programa WPicProg16 y
pasamos el interruptor del PLC
de la posicin RUN a STOP/PROGRAM, se apaga el led verde intermitente y se activa el led
rojo. La primera vez que ejecute-
Fig. 9
Figura 10
Figura 11
mos este programa, comprobaremos los ajustes del puerto paralelo, (figura 11) picamos en el icono
"Options >>> Hardware" donde
veremos los bits del puerto usados
para cada seal de programacin.
Desde el men "Options" elegimos "Find Port", con esto el
programa entra en comunicacin
con el autmata y detecta la direccin Hexa del puerto al que est
conectado (esquina inferior izquierda). Desde el men "File"
abrimos el fichero.hex (en nuestro
caso: plc1.hex, figura 12) que quedar visualizado en la ventana Buffer, seleccionamos el tipo de procesador en nuestro caso el
PIC16F84 (figura 13) y borramos
el contenido de la memoria del
Fig. 12
En cualquier momento podemos comparar el contenido de la
memoria del PIC con el fichero.hex picando sobre el icono Verify.
Slo resta pasar el interruptor
de STOP/PROGRAM a RUN (se
apaga el led rojo y se activa el verde en forma intermitente) y comprobamos que el programa cumple las especificaciones activando
las entradas en la secuencia correcta.
Cuando creamos un programa
PLC, es posible que cometamos
algn error de sintaxis. Estos errores aparecern reflejados al compilar el programa en una ventana
Fig. 14
Warning[202] D:\MPLAB\PIC\EJEMPLOS\OS_PLC8.ASM
435 : Argument out of range.
Least significant bits used.
Warning[202] D:\MPLAB\PIC\EJEMPLOS\OS_PLC8.ASM
437 : Argument out of range.
Least significant bits used.
El mensaje es que tenemos argumentos fuera de rango en las lneas 435 y 437. Haciendo doble
clic en cualquiera de estas lneas
saltamos a la macro del S.O donde
se producen.
432
433
434
435
436
437
438
OUT S0,8
C:ASM
424
425
426
427
428
RESET S0.4
AMD E0,0