SlideShare una empresa de Scribd logo
1 de 14
Descargar para leer sin conexión
PROYECTO:
AUTîMATA
PROGRAMABLE
CON PIC
E
n el nœmero anterior de Saber Electr—-
nica comenzamos a publicar un Cur-
so de Aut—matas Programables, indi-
cando que ibamos a dar varios circuitos
pr‡cticos con Òcomponentes conocidosÓ.
Luego de estudiar diferentes opciones, nos
comunicamos con el autor de este pro-
yecto para solicitarle la posibilidad de
compartir con todos los lectores su dise-
–o. De esta manera comenzamos con la
descripci—n de un Aut—mata de 8 entradas
y 8 salidas (ampliable) construido a partir
de nuestro ya conocido PIC 16F84. En esta
primera parte damos una descripci—n del
proyecto, reproducimos los esquemas cir-
cuitales y mostramos algunas fotos del
PLC. Pretendemos con esta nota acercarle
informaci—n disponible en la web y difun-
dir los excelentes trabajos de profesiona-
les, como el autor de esta nota.
Autor: Juan Manuel Rodr’guez
e-mail: juanmarod@inicia.es
En la Web:
http//inicia.es/de/juanmarod/portada.htm
HISTORIA DEL PROYECTO.
Después de varios años traba-
jando con autómatas comercia-
les de diferentes fabricantes co-
mo 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:
- Debía tener un lenguaje de
programación compatible con el
estándard y poder soportar todo
tipo de instrucciones, contadores
y temporizadores.
- La memoria del PLC ten-
dría que ser no volátil para no
perder el programa por un corte
de tensión.
- Tenía que contemplar la
posibilidad del volcado de los
programas desde un PC con un
entorno windows
- Los componentes del hard-
ware debían ser baratos y fáciles
de localizar.
- El número de entradas y
salidas, en un principio, debía
ser 8 (8 E/S) ampliable en el fu-
turo.
- Alimentación de 220V ac ó
12V DC de una batería.
El primer paso fue diseñar el
sistema operativo, el lenguaje de
programación tenía que ser sen-
cillo y programar directamente
en ensamblador no era una solu-
ción. Después de algunas prue-
bas usando un procesador
80C535 y trabajando en ensam-
blador, vi la posibilidad de usar
las funciones que ofrecen los
compiladores para incluir etique-
tas y macros en el código de má-
quina del procesador.
La solución fue usar "MA-
CROS" para convertir las ins-
trucciones 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" sería el
código de la instrucción, el
campo " A " la dirección de
la tarjeta de entradas y en
campo "B" el número 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 ma-
cros es que nos permite llamar a
la instrucción con el nombre que
más nos guste. El uso de
etiquetas nos permite hacer
aún más claros los progra-
mas del autómata al poder
sustituir las direcciones hexade-
cimales de las entradas/salidas
por un texto más descriptivo :
LD Tarjeta_E0,Pulsador_Marcha
OUT Tarjeta_S0,Marcha_motor
Una vez depurado el sistema
operativo, probé diferentes fór-
mulas para almacenar los progra-
mas en memoria. El uso de
EPROM no era viable ya que
habría que borrarla previamente
cada vez que se hiciese una mo-
dificación.
El uso de RAM estática no
volátil no resultó estable ya que
con los cortes de tensión se co-
rrompían los datos. La opción fi-
nal fue buscar un microprocesa-
dor que incluyese memoria EE-
PROM para el sistema operativo
y programa PLC y RAM para
los datos temporales. Los proce-
sadores que mejor se adaptan a
estas exigencias son la familia de
ATMEL 89C1024 y los PIC
16F84 de MICROCHIP.
Las diferencias entre los pro-
cesadores son las siguientes:
La familia ATMEL ofrece
procesadores con 4K de memo-
ria EEPROM y 128 bits de
RAM con dos puertos E/S, los
códigos de máquina son compa-
tibles con Intel y muy cómodos
para direccionar bits. Sin embar-
go requiere un hardware de pro-
gramación complicado.
El microprocesador
PIC16F84 sólo ofrece 1K de
EEPROM y 64 bits de RAM, el
código
De máquina es un poco me-
nos 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 la elección
del PIC ya que permite integrar
el programador dentro del autó-
mata usando un hardware muy
sencillo, descargar los programas
usando el puerto paralelo de la
PC y realizar modificaciones en
cuestión de segundos, aún a pe-
sar de su escasa capacidad de
memoria.
Una vez elegido el procesa-
dor, sólo quedó buscar el hard-
ware más adecuado 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.
Antes de avanzar en la expli-
cación del sistema operativo,
vamos a dar en esta entrega
los esquemas que constituyen
nuestro PLC; así en la figura
1 tenemos el diagrama de la
Unidad de Proceso Central
(CPU) de nuestro autómata, en
la figura 2 se da la implementa-
ción de las entradas, en la figura
3 las salidas y en la figura 4 el
diagramna circuital de la fuente
de alimentación.
Todo el autómata se constru-
yó en dos placas de circuito im-
preso cuyos diagramas pueden
verse en las figuras 5, 6 y 7. En
la figura 5 se muestra la disposi-
ción de los componenentes, en la
figura 6 el lado del cobre (inver-
so a los componentes) y en la fi-
gura 7 como se verían ambos la-
dos si la placa fuese transparente.
Figura 1
Figura 2
Figura 3
Figura 4
Ambas placas de circuito im-
preso son de “doble cara” y dado
que el primer prototipo fue rea-
lizado a mano, dibujando las pis-
ta una a una, algunas de ellas es-
tán cableadas usando hilo de co-
bre.
Como se aprecia en las fotos
de la figura 8, las dos placas del
autómata son montadas una so-
bre otra usando separadores.
Todo el cableado externo se une
con conectores enchufables.
En la tarjeta inferior están in-
tegradas la fuente de alimenta-
Fig. 5
ción, la CPU y el puerto de co-
municaciones. La fuente de ali-
mentación genera tres tensiones:
+5V con una capacidad de co-
rriente de 1A para la lógica digi-
tal, 14V con una capacidad de
100mA para el circuito de pro-
gramación del procesador y
+24V con una capacidad de 0,5A
para las entradas optoacopladas.
En la placa superior se en-
cuentra el driver que activa los
relés de salida (que precisa 1
contacto normalmente abierto y
libre de potencial) y los optoaco-
pladores que aíslan eléctricamen-
te 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.
Figura 6
Las tarjetas están conectadas
a través de un cable plano de 26
pines, el puerto de comunicacio-
nes es de 9 pines y se han imple-
mentado en el panel frontal tres
leds de diagnóstico, un pulsador
de RESET y un interruptor de
dos posiciones, con funciones a
saber:
• El led verde indica que el
PLC está en modo “RUN” eje-
cutando el programa contenido
en memoria y parpadea con una
secuencia de 0,5 segundos, es-
tando bajo el control del sistema
Figura 7
operativo. Si el PLC se cuelga o
la memoria EEPROM está bo-
rrada, este led deja de parpadear
así como cuando el interruptor
está en modo STOP/PRO-
GRAM.
• El led rojo nos informa que
el procesador está 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 pasa-
mos el interruptor de dos posi-
ciones del modo RUN al modo
de programación STOP/PRO-
GRAM para volcar programas a
la memoria del PIC.
• El led amarillo sirve de
diagnóstico en los procesos de
comunicación con la PC; se acti-
va al leer, borrar, verificar y gra-
bar la memoria EEPROM del
procesador PIC16F84.
PROGRAMAS CON
AMBIENTE 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 está disponible en la
red. Se utilizó un “viejo conoci-
do de los lectores de Saber Elec-
trónica”; el potente entorno de
programación MPLAB de MI-
CROCHIP, fabricante del mi-
croprocesador 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 simulación pa-
so a paso de programas en en-
samblador con la que depure en
su momento el sistema operativo
del autómata. Este programa se
puede descargar desde:
http://www.microchip.com/
Su tamaño es de unos 9MB.
Para la grabación de la me-
moria EEPROM del PIC y des-
pués de mucho buscar por la red
elegí el programa WPicProg16
diseñado por Nigel Goodwin al
que debemos agradecer su aporte
así como a Don Mckenzie que
ofrece mucha información sobre
programadores PIC en su página
australiana y a través de la cual
localice el programa. El software
de programación del procesador
PIC16F84 se puede descargar de
la página personal de Nigel
Goodwin. El hardware del PLC
está optimizado para la versión
1.21 de 16 bits ejecutable bajo
Windows 95/98 y se puede bajar
de:
http://www.lpilsley.freeserve.co.uk/software.htm
En la próxima edición habla-
remos del Sistema Operativo de
este PLC y qué funciones puede
realizar. Si Ud. no desea esperar
hasta el mes próximo, puede
consultar la página personal del
autor en:
http//inicia.es/de/juanmarod/portada.htm
Figura 8
SISTEMA OPERATIVO OS
El sistema operativo del autó-
mata que he proyectado y cuyos
lineamientos expusimos en la edi-
ción anterior en realidad es muy
sencillo, tan sólo incluye las ins-
trucciones que inicializan los re-
gistros del procesador, el puerto
A, el puerto B, el temporizador
TMR0, los vectores de interrup-
ción, la rutina que gestiona las en-
tradas/salidas y la rutina de ges-
tión de pilas; el resto son macros
que se utilizan como instrucciones
del PLC.
Una de las muchas ventajas de
las MACROS del ensamblador, es
que sólo se compilan e incluyen
dentro del código del programa si
son usadas en el programa PLC, si
no usamos los contadores, por
ejemplo, éstos aunque formen par-
te del sistema operativo no serán
incluidos en la compilación del
programa del autómata, reducien-
do así, el uso de la memoria.
Esto posibilita el diseño de un
sistema operativo muy compacto,
dado que la capacidad de memoria
EEPROM del procesador
PIC16F84 está limitada a 1024
bytes. El sistema operativo debe
ocupar el menor espacio posible.
El sistema operativo utiliza un
15% de la memoria del procesa-
dor, concretamente 155 bytes que-
dando disponible el resto para las
instrucciones del programa PLC
(un total de 869 bytes libres). Para
comprender el principio de opera-
ción del sistema operativo, vea los
diagramas de flujo de la figura 1.
El sistema operativo está dis-
ponible en la web en formato tex-
to con la extensión “.asm” para ser
editado con el programa MPLAB
de Microchip, sin embargo, en la
próxima edición comenzaremos a
publicar el listado del programa
en estas páginas. He procurado in-
cluir todos los comentarios posi-
bles para facilitar su comprensión,
de todas formas es imprescindible
Arme un PLC y cárguele el sistema operativo con éxito
Sistema Operativo de un PLC
de 8 entradas y 8 salidas
Con PIC 16F84
En la edición anterior comenzamos a explicar el proyecto de un
Autómata Programable de 8 entradas y 8 salidas, cuyo funcio-
namiento está basado en la inclusión de un microcontrolador
16F84. Este proyecto, publicado en Internet, es un excelente
ejemplo de aplicación de los PICs de Microchip y posee un sis-
tema operativo fácil de comprender. En la edición anterior brin-
damos los circuitos eléctricos y los diagramas de circuito impre-
so. En esta edición hablaremos del sistema operativo. Tenga en
cuenta que si Ud. desea toda la información de este proyecto,
puede dirigirse a la página que el autor tiene en Internet, a la
cual puede acceder desde un link que tenemos en la web: w w w-
.webelectronica.com.ar
Autor: Juan Manuel Rodr’guez - e-mail: juanmarod@inicia.es
En la Web: http//inicia.es/de/juanmarod/portada.htm
conocer los códigos
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 experi-
mentar con este au-
tómata, debe bajar
de la web los archi-
vos mostrados en la
tabla 1, ya que en la
próxima edición tra-
bajaremos con ellos.
El programa
MPLAB de Micro-
chip es un software
muy completo y fácil de usar cuya
explicación fue dada en Saber
Electrónica Nº 139. La forma más
cómoda de trabajar consiste en
crear un PROYECTO para cada
programa PLC que creemos.
Es útil usar una plantilla donde
tengamos ya creadas las variables
iniciales del programa PLC.
Ejecutamos el programa
MPLAB y desde el menú FILE
abrimos el fichero plantilla "ba-
se.asm", desde el mismo menú lo
guardamos "Save as.." con el
nombre que más describa las fun-
ciones del programa (PLC por
ejemplo). Picamos (hacemos un
click) en el menú "Proyect" y
creamos un nuevo proyecto "New
proyect" (figura 2), tecleamos el
mismo nombre con el que llama-
mos al fichero del programa PLC
anterior y nos aparece una ventana
con el nombre del “fichero.hex”
que será el que posteriormente
grabaremos en el PIC (en nuestro
caso es: plc.hex, figura 3).
En la misma ventana "Project
Files" picamos sobre el fichero
que aparece y a continuación so-
bre el icono "Node propierties".
Se despliega otra ventana con di-
ferentes parámetros (figura 4),
pulsamos OK y volvemos al menú
Figura 1
Tabla 1
Descargar el sistema operativo OS_PLC8.asm
Descargar plantilla de programa PLC PLANTILLA.asm
Descargar ejemplo de programa PLC EJEMPLO.asm
Figura 2
Figura 3
Figura 4
anterior. En este punto se activa el
icono "Add node" (figura 5), lo pi-
camos y añadimos al proyecto el
“fichero.asm” del programa PLC.
De esta manera ya
tenemos creado el
proyecto con los dos
ficheros necesarios,
picamos OK y se
cierran todas las ven-
tanas.
Podemos a continua-
ción escribir el pro-
grama PLC y com-
pilarlo junto con el
S.O. con los íconos
mostrados en la figu-
ra 6.
Tenga en cuenta que
Ud. puede “bajar” el
programa ya escrito (que denomi-
namos plc1.asm) de la web, no ha-
ce falta que lo escribamos para
luego compilarlo.
Para compilar el programa y
así tener el archivo plc1.hex, pica-
mos en FILE, luego OPEN (figu-
ra 7) y buscamos el archivo pl-
c1.asm (no-
sotros lo
bajamos de
la web y sa-
bemos
dónde lo
hemos alo-
jado) tal
como su-
giere la fi-
gura 8.
Aparecerá
el listado
del progra-
ma (figura
9) y lo ensamblamos picando en
PROYECT y luego BUILD ALL
(figura 10).
Para ver el número de bytes de
memoria EEPROM que ocupa el
programa compilado, desde el
menú "Window" opción "Pro-
gram Memory" abrimos una ven-
tana donde veremos las direccio-
nes EEPRON usadas y así poder
calcular el espacio que aún nos
queda libre.
Una vez compilado el progra-
ma y libre de errores podemos pa-
sar a grabarlo en el PLC, para ello
conectamos el cable de comunica-
ciones entre el puerto paralelo de
nuestro P.C. y el autómata, ejecu-
tamos el programa WPicProg16 y
pasamos el interruptor del PLC
de la posición RUN a STOP-
/PROGRAM, se apaga el led ver-
de intermitente y se activa el led
rojo. La primera vez que ejecute-
Figura 6
Fig. 5
Figura 7
Figura 8 Figura 10
Fig. 9
mos este programa, comprobare-
mos los ajustes del puerto parale-
lo, (figura 11) picamos en el icono
"Options >>> Hardware" donde
veremos los bits del puerto usados
para cada señal de programación.
Desde el menú "Options" ele-
gimos "Find Port", con esto el
programa entra en comunicación
con el autómata y detecta la direc-
ción Hexa del puerto al que está
conectado (esquina inferior iz-
quierda). Desde el menú "File"
abrimos el fichero.hex (en nuestro
caso: plc1.hex, figura 12) que que-
dará visualizado en la ventana Buf-
fer, seleccionamos el tipo de pro-
cesador en nuestro caso el
PIC16F84 (figura 13) y borramos
el contenido de la memoria del
PIC con el icono
"Erase". Ajustamos
las casillas "Fuses" y
"Oscillator" activan-
do WDT (wath
dog), PUT y HS.
Picando sobre el
icono Write PIC
volcamos el “fiche-
ro.hex” a la memoria
EEPROM del PIC,
activándose en el
proceso el led amari-
llo del frontal del
autómata. Si no ocurre ningún
error, en el recuadro inferior dere-
cho aparece el tiempo total de vol-
cado (unos 4 segundos).
En cualquier momento pode-
mos comparar el contenido de la
memoria del PIC con el “fichero-
.hex” picando sobre el icono Ve-
rify.
Sólo resta pasar el interruptor
de STOP/PROGRAM a RUN (se
apaga el led rojo y se activa el ver-
de en forma intermitente) y com-
probamos que el programa cum-
ple las especificaciones activando
las entradas en la secuencia co-
rrecta.
Cuando creamos un programa
PLC, es posible que cometamos
algún error de sintaxis. Estos erro-
res aparecerán reflejados al compi-
lar el programa en una ventana
Figura 11
Fig. 12
Fig. 13
Fig. 14
que mostrara las líneas indicadas
en la figura 14.
En primer lugar nos informa si
es un error grave o un aviso (War-
ning) seguido de un código que se
puede consultar desde la ayuda del
MPLAB.
En segundo lugar nos dice en
qué fichero se ha encontrado el
error, la línea de programa en que
se encuentra y la información de
lo que el compilador no reconoce
o no encuentra.
Haciendo doble clik con el
mouse sobre el texto de error nos
dirigimos directamente a la línea
del programa que contiene dicho
error.
Como vemos en el ejemplo su-
perior, se nos informa que contie-
nen errores tanto el fichero del
sistema operativo (OS_PLC:ASM)
como el fichero del programa plc
(PLC1.ASM). Esto no es del todo
real y puede crear al principio bas-
tante confusión.
Como ya hemos visto, el siste-
ma operativo está compuesto de
"MACROS" y el programa PLC
se compone de llamadas a estas
macros, por lo tanto, si comete-
mos un error de sintaxis en una
llamada a una macro del S.O. des-
de el programa PLC al enlazar y
compilar juntos los dos ficheros, el
compilador intentará pasar los pa-
rámetros de la llamada a la macro
(instrucción PLC) usada en el fi-
chero PLC a la macro que en rea-
lidad se encuentra en el fichero
del S.O. produciéndose el error en
la MACRO del fichero del S.O.
cuando en realidad el error se en-
cuentra en los parámetros del fi-
chero del programa PLC.
Veamos en realidad donde se
han cometido los errores de sinta-
xis, para lo cual debemos dirigir-
nos a la figura 14.
Warning[202] D:MPLABPI-
CEJEMPLOSOS_PLC8.ASM
435 : Argument out of range.
Least significant bits used.
Warning[202] D:MPLABPI-
CEJEMPLOSOS_PLC8.ASM
437 : Argument out of range.
Least significant bits used.
El mensaje es que tenemos ar-
gumentos fuera de rango en las lí-
neas 435 y 437. Haciendo doble
clic en cualquiera de estas líneas
saltamos a la macro del S.O donde
se producen.
432 OUT MACRO DATA1,DATA2
433 MOVWF S
434 BTFSS S,0
435 BCF DATA1,DATA2
436 BTFSC S,0
437 BSF DATA1,DATA2
438 ENDM
Lo que podemos deducir es
que el error se encuentra en algu-
na línea del fichero PLC donde
aparezca la instrucción OUT. Re-
visando este fichero encontramos
la línea 93 donde se intenta direc-
cionar el bit Nº 8 del registro de
salidas S0. Dado que los registros
del plc son de 8 bits el rango de
direccionamiento sólo puede en-
contrarse ente cero y siete.
93 OUT S0,8
Corregimos este inconveniente
seleccionando el bit adecuado, con
lo cual el error desaparecerá al
volver a compilar el programa.
Como vemos los errores se encon-
traban en realidad en el fichero
PLC.
Los mensajes de error marca-
dos como “Error[113]” en el men-
saje de la figura 14 nos mandan a
la línea 427 del fichero OS_PL-
C:ASM
424 RESET MACRO DATA1,DATA2
425 MOVWF S
426 BTFSC S,0
427 BCF DATA1,DATA2
428 ENDM
El error se encuentra dentro
del la macro RESET del sistema
operativo, pero no informa en que
línea del fichero PLC se encuen-
tra este error por lo que tendre-
mos que revisar el fichero y com-
probar la sintaxis de todas las lla-
madas a la instrucción RESET.
Es muy útil en estos casos usar
las funciones de búsqueda que
ofrece MPLAB, activando la ven-
tana que contenga el fichero del
programa PLC y pulsando F3 se
abre la ventana de búsqueda don-
de escribiremos la palabra a buscar
y así revisar todas las concurren-
cias que aparezcan.
104 RESET S0.4
En la línea 104 del fichero
PLC tenemos una llamada a la
instrucción RESET con un error
de sintaxis en los parámetros, en
esta línea realizamos un reset de la
salida Nº4 de la tarjeta de salidas
S0 pero en lugar de una coma ","
hemos tecleado un punto "." para
separar los parámetros, este pro-
blema ha generado dos errores en
la línea 427 del S.O que desapare-
cerán al sustituir el punto por la
coma y compilar de nuevo el pro-
yecto.
Error[128] D:MPLABPI-
CEJEMPLOSPLC1.ASM 104 :
Missing argument(s)
Este error sí nos dice en qué lí-
nea del fichero PLC se encuentra,
concretamente en la 104 y al hacer
doble clic en él nos manda al fi-
chero PC donde confirmamos el
error de sintaxis del punto y la co-
ma explicado anteriormente. El
error se produce al faltarle un ar-
gumento a la instrucción RESET
ya que S0.4 es considerado un sólo
argumento.
Warning[207] D:MPLABPI-
CEJEMPLOSPLC1.ASM 79 :
Found label after column 1.
(AMD)
Error[122] D:MPLABPI-
CEJEMPLOSPLC1.ASM 79 :
Illegal opcode (E0)
Estos errores sí nos mandan di-
rectamente al fichero de programa
PLC.
Picando sobre cualquiera de
ellos saltamos a la línea 79 del fi-
chero PLC donde vemos rápida-
mente que nos hemos confundido
al escribir la instrucción AND co-
mo AMD:
79 AMD E0,0
Lo dado hasta aquí pretende
ser una guía para la comprensión
del sistema operativo del autómata
que estamos describiendo, si-
guiendo paso a paso las instruccio-
nes, no tendrá iconvenientes para
hacer funcionar el autómata.
En la próxima edición veremos
cuáles son las instrucciones del PLC
y daremos algunos ejemplos de pro-
gramación. Tenga en cuenta que el
presente proyecto es tomado de la
página del autor desde Internet y
que para obtener la versión comple-
ta debe dirigirse a la dirección dada
al comienzo de la nota. J

Más contenido relacionado

La actualidad más candente

Informe practica ecuaciones # 6
Informe practica ecuaciones # 6Informe practica ecuaciones # 6
Informe practica ecuaciones # 6Freddy Cuasapaz
 
Contador de leds con puerto paralelo macho db 25 cu zumpango.
Contador de leds con puerto paralelo macho db 25 cu zumpango.Contador de leds con puerto paralelo macho db 25 cu zumpango.
Contador de leds con puerto paralelo macho db 25 cu zumpango.Leida Zuñiga
 
Puerto paralelo en c
Puerto paralelo en cPuerto paralelo en c
Puerto paralelo en cmorriz1
 
C++ para microcontroladores y aplicación práctica
C++ para microcontroladores y aplicación prácticaC++ para microcontroladores y aplicación práctica
C++ para microcontroladores y aplicación prácticaGerardo C
 
Programación en PLC Xinje - banda transportadora
Programación en PLC Xinje - banda transportadoraProgramación en PLC Xinje - banda transportadora
Programación en PLC Xinje - banda transportadoraLenin Jiménez
 
Como programar un pic
Como programar un pic  Como programar un pic
Como programar un pic oskarjgf
 
Microcontroladores ASM
Microcontroladores ASMMicrocontroladores ASM
Microcontroladores ASMdave
 
Memorias, puertos, y registros del pic
Memorias, puertos, y registros del picMemorias, puertos, y registros del pic
Memorias, puertos, y registros del picMario Sandi
 

La actualidad más candente (20)

Proyecto3
Proyecto3Proyecto3
Proyecto3
 
Informe practica ecuaciones # 6
Informe practica ecuaciones # 6Informe practica ecuaciones # 6
Informe practica ecuaciones # 6
 
Interfaz puerto paralelo LPT
Interfaz puerto paralelo LPTInterfaz puerto paralelo LPT
Interfaz puerto paralelo LPT
 
Registros del Pic 16F84
Registros del Pic 16F84Registros del Pic 16F84
Registros del Pic 16F84
 
Pic 16 F84 A
Pic 16 F84 APic 16 F84 A
Pic 16 F84 A
 
Contador de leds con puerto paralelo macho db 25 cu zumpango.
Contador de leds con puerto paralelo macho db 25 cu zumpango.Contador de leds con puerto paralelo macho db 25 cu zumpango.
Contador de leds con puerto paralelo macho db 25 cu zumpango.
 
Puerto paralelo en c
Puerto paralelo en cPuerto paralelo en c
Puerto paralelo en c
 
Manual tp12
Manual tp12Manual tp12
Manual tp12
 
C++ para microcontroladores y aplicación práctica
C++ para microcontroladores y aplicación prácticaC++ para microcontroladores y aplicación práctica
C++ para microcontroladores y aplicación práctica
 
Aplicaciones con el pic 16f84
Aplicaciones con el pic 16f84Aplicaciones con el pic 16f84
Aplicaciones con el pic 16f84
 
Microcontroladoresf2
Microcontroladoresf2Microcontroladoresf2
Microcontroladoresf2
 
Programación en PLC Xinje - banda transportadora
Programación en PLC Xinje - banda transportadoraProgramación en PLC Xinje - banda transportadora
Programación en PLC Xinje - banda transportadora
 
Apunteplc
ApunteplcApunteplc
Apunteplc
 
1 intro automatas
1 intro automatas1 intro automatas
1 intro automatas
 
Comunicaciones serialesc#2010 ccs
Comunicaciones serialesc#2010 ccsComunicaciones serialesc#2010 ccs
Comunicaciones serialesc#2010 ccs
 
Como programar un pic
Como programar un pic  Como programar un pic
Como programar un pic
 
Microcontroladores ASM
Microcontroladores ASMMicrocontroladores ASM
Microcontroladores ASM
 
Familia De Los Microcontroladores Pic
Familia De Los Microcontroladores PicFamilia De Los Microcontroladores Pic
Familia De Los Microcontroladores Pic
 
18 f4550 2
18 f4550 218 f4550 2
18 f4550 2
 
Memorias, puertos, y registros del pic
Memorias, puertos, y registros del picMemorias, puertos, y registros del pic
Memorias, puertos, y registros del pic
 

Similar a Construcciondeun pl cconpic

Similar a Construcciondeun pl cconpic (20)

Proyecto BOTTLER
Proyecto BOTTLERProyecto BOTTLER
Proyecto BOTTLER
 
Sistemas Microprocesados I
Sistemas Microprocesados ISistemas Microprocesados I
Sistemas Microprocesados I
 
Sistemas Microprocesados I
Sistemas Microprocesados ISistemas Microprocesados I
Sistemas Microprocesados I
 
El AT mega8 es un microcontrolador excelente
El AT mega8 es un microcontrolador excelenteEl AT mega8 es un microcontrolador excelente
El AT mega8 es un microcontrolador excelente
 
Pic16f84(1)
Pic16f84(1)Pic16f84(1)
Pic16f84(1)
 
programacion con microcontrolador pic 16f84
programacion con microcontrolador pic 16f84programacion con microcontrolador pic 16f84
programacion con microcontrolador pic 16f84
 
Introducción a la programacion Pic16F84
Introducción a la programacion Pic16F84Introducción a la programacion Pic16F84
Introducción a la programacion Pic16F84
 
04 procesadores y microcontroladores
04 procesadores y microcontroladores04 procesadores y microcontroladores
04 procesadores y microcontroladores
 
Curso de microcontrolador MCS51
Curso de microcontrolador MCS51Curso de microcontrolador MCS51
Curso de microcontrolador MCS51
 
Curso integral pic_236
Curso integral pic_236Curso integral pic_236
Curso integral pic_236
 
Manual arduino
Manual arduinoManual arduino
Manual arduino
 
Pic libre
Pic librePic libre
Pic libre
 
Libro basico pic
Libro basico picLibro basico pic
Libro basico pic
 
CONTADOR BINARIO DESCENDENTE DE 14 BITS CON ARDUINO
CONTADOR BINARIO DESCENDENTE DE 14 BITS CON ARDUINOCONTADOR BINARIO DESCENDENTE DE 14 BITS CON ARDUINO
CONTADOR BINARIO DESCENDENTE DE 14 BITS CON ARDUINO
 
Manual Ic Prog
Manual Ic ProgManual Ic Prog
Manual Ic Prog
 
Manual completo de CPLD
Manual completo de CPLDManual completo de CPLD
Manual completo de CPLD
 
Evolucion De Los Microprocesadores
Evolucion De Los MicroprocesadoresEvolucion De Los Microprocesadores
Evolucion De Los Microprocesadores
 
Pic16 f877
Pic16 f877Pic16 f877
Pic16 f877
 
Control de motor (eje flexible)
Control de motor (eje flexible)Control de motor (eje flexible)
Control de motor (eje flexible)
 
Control de motor (eje flexible)
Control de motor (eje flexible)Control de motor (eje flexible)
Control de motor (eje flexible)
 

Último

SOLIDOS DE REVOLUCION, aplicaciones de integrales definidas
SOLIDOS DE REVOLUCION, aplicaciones de integrales definidasSOLIDOS DE REVOLUCION, aplicaciones de integrales definidas
SOLIDOS DE REVOLUCION, aplicaciones de integrales definidasLeonardoMendozaDvila
 
trabajos en altura 2024, sistemas de contencion anticaidas
trabajos en altura 2024, sistemas de contencion anticaidastrabajos en altura 2024, sistemas de contencion anticaidas
trabajos en altura 2024, sistemas de contencion anticaidasNelsonQuispeQuispitu
 
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxAMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxLuisvila35
 
Electricidad y electronica industrial unidad 1
Electricidad y electronica industrial unidad 1Electricidad y electronica industrial unidad 1
Electricidad y electronica industrial unidad 1victorrodrigues972054
 
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023ANDECE
 
SEMANA 6 MEDIDAS DE TENDENCIA CENTRAL.pdf
SEMANA  6 MEDIDAS DE TENDENCIA CENTRAL.pdfSEMANA  6 MEDIDAS DE TENDENCIA CENTRAL.pdf
SEMANA 6 MEDIDAS DE TENDENCIA CENTRAL.pdffredyflores58
 
Físicas 1: Ecuaciones Dimensionales y Vectores
Físicas 1: Ecuaciones Dimensionales y VectoresFísicas 1: Ecuaciones Dimensionales y Vectores
Físicas 1: Ecuaciones Dimensionales y VectoresSegundo Silva Maguiña
 
Parámetros de Perforación y Voladura. para Plataformas
Parámetros de  Perforación y Voladura. para PlataformasParámetros de  Perforación y Voladura. para Plataformas
Parámetros de Perforación y Voladura. para PlataformasSegundo Silva Maguiña
 
QUIMICA ORGANICA I ENOLES Y ENAMINAS LIBR
QUIMICA ORGANICA I ENOLES Y ENAMINAS LIBRQUIMICA ORGANICA I ENOLES Y ENAMINAS LIBR
QUIMICA ORGANICA I ENOLES Y ENAMINAS LIBRyanimarca23
 
SOUDAL: Soluciones de sellado, pegado y hermeticidad
SOUDAL: Soluciones de sellado, pegado y hermeticidadSOUDAL: Soluciones de sellado, pegado y hermeticidad
SOUDAL: Soluciones de sellado, pegado y hermeticidadANDECE
 
Fijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSEFijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSEANDECE
 
Sistema de Gestión de Freelancers (Base de Datos)
Sistema de Gestión de Freelancers (Base de Datos)Sistema de Gestión de Freelancers (Base de Datos)
Sistema de Gestión de Freelancers (Base de Datos)dianamateo1513
 
Espontaneidad de las reacciones y procesos espontáneos
Espontaneidad de las reacciones y procesos espontáneosEspontaneidad de las reacciones y procesos espontáneos
Espontaneidad de las reacciones y procesos espontáneosOscarGonzalez231938
 
Diagrama de flujo metalurgia del cobre..pptx
Diagrama de flujo metalurgia del cobre..pptxDiagrama de flujo metalurgia del cobre..pptx
Diagrama de flujo metalurgia del cobre..pptxHarryArmandoLazaroBa
 
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdfCONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdfErikNivor
 
Estacionamientos, Existen 3 tipos, y tienen diferentes ángulos de inclinación
Estacionamientos, Existen 3 tipos, y tienen diferentes ángulos de inclinaciónEstacionamientos, Existen 3 tipos, y tienen diferentes ángulos de inclinación
Estacionamientos, Existen 3 tipos, y tienen diferentes ángulos de inclinaciónAlexisHernandez885688
 
Sistema de Base de Datos (Rubén Alberto)
Sistema de Base de Datos (Rubén Alberto)Sistema de Base de Datos (Rubén Alberto)
Sistema de Base de Datos (Rubén Alberto)mendezruben1901
 
Edificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaEdificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaANDECE
 
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptxNayeliZarzosa1
 

Último (20)

SOLIDOS DE REVOLUCION, aplicaciones de integrales definidas
SOLIDOS DE REVOLUCION, aplicaciones de integrales definidasSOLIDOS DE REVOLUCION, aplicaciones de integrales definidas
SOLIDOS DE REVOLUCION, aplicaciones de integrales definidas
 
trabajos en altura 2024, sistemas de contencion anticaidas
trabajos en altura 2024, sistemas de contencion anticaidastrabajos en altura 2024, sistemas de contencion anticaidas
trabajos en altura 2024, sistemas de contencion anticaidas
 
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxAMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
 
Electricidad y electronica industrial unidad 1
Electricidad y electronica industrial unidad 1Electricidad y electronica industrial unidad 1
Electricidad y electronica industrial unidad 1
 
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
 
SEMANA 6 MEDIDAS DE TENDENCIA CENTRAL.pdf
SEMANA  6 MEDIDAS DE TENDENCIA CENTRAL.pdfSEMANA  6 MEDIDAS DE TENDENCIA CENTRAL.pdf
SEMANA 6 MEDIDAS DE TENDENCIA CENTRAL.pdf
 
Físicas 1: Ecuaciones Dimensionales y Vectores
Físicas 1: Ecuaciones Dimensionales y VectoresFísicas 1: Ecuaciones Dimensionales y Vectores
Físicas 1: Ecuaciones Dimensionales y Vectores
 
Parámetros de Perforación y Voladura. para Plataformas
Parámetros de  Perforación y Voladura. para PlataformasParámetros de  Perforación y Voladura. para Plataformas
Parámetros de Perforación y Voladura. para Plataformas
 
QUIMICA ORGANICA I ENOLES Y ENAMINAS LIBR
QUIMICA ORGANICA I ENOLES Y ENAMINAS LIBRQUIMICA ORGANICA I ENOLES Y ENAMINAS LIBR
QUIMICA ORGANICA I ENOLES Y ENAMINAS LIBR
 
SOUDAL: Soluciones de sellado, pegado y hermeticidad
SOUDAL: Soluciones de sellado, pegado y hermeticidadSOUDAL: Soluciones de sellado, pegado y hermeticidad
SOUDAL: Soluciones de sellado, pegado y hermeticidad
 
Fijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSEFijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSE
 
Sistema de Gestión de Freelancers (Base de Datos)
Sistema de Gestión de Freelancers (Base de Datos)Sistema de Gestión de Freelancers (Base de Datos)
Sistema de Gestión de Freelancers (Base de Datos)
 
Espontaneidad de las reacciones y procesos espontáneos
Espontaneidad de las reacciones y procesos espontáneosEspontaneidad de las reacciones y procesos espontáneos
Espontaneidad de las reacciones y procesos espontáneos
 
Diagrama de flujo metalurgia del cobre..pptx
Diagrama de flujo metalurgia del cobre..pptxDiagrama de flujo metalurgia del cobre..pptx
Diagrama de flujo metalurgia del cobre..pptx
 
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdfCONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
 
MATPEL COMPLETO DESDE NIVEL I AL III.pdf
MATPEL COMPLETO DESDE NIVEL I AL III.pdfMATPEL COMPLETO DESDE NIVEL I AL III.pdf
MATPEL COMPLETO DESDE NIVEL I AL III.pdf
 
Estacionamientos, Existen 3 tipos, y tienen diferentes ángulos de inclinación
Estacionamientos, Existen 3 tipos, y tienen diferentes ángulos de inclinaciónEstacionamientos, Existen 3 tipos, y tienen diferentes ángulos de inclinación
Estacionamientos, Existen 3 tipos, y tienen diferentes ángulos de inclinación
 
Sistema de Base de Datos (Rubén Alberto)
Sistema de Base de Datos (Rubén Alberto)Sistema de Base de Datos (Rubén Alberto)
Sistema de Base de Datos (Rubén Alberto)
 
Edificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaEdificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes Granada
 
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
 

Construcciondeun pl cconpic

  • 1. PROYECTO: AUTîMATA PROGRAMABLE CON PIC E n el nœmero anterior de Saber Electr—- nica comenzamos a publicar un Cur- so de Aut—matas Programables, indi- cando que ibamos a dar varios circuitos pr‡cticos con Òcomponentes conocidosÓ. Luego de estudiar diferentes opciones, nos comunicamos con el autor de este pro- yecto para solicitarle la posibilidad de compartir con todos los lectores su dise- –o. De esta manera comenzamos con la descripci—n de un Aut—mata de 8 entradas y 8 salidas (ampliable) construido a partir de nuestro ya conocido PIC 16F84. En esta primera parte damos una descripci—n del proyecto, reproducimos los esquemas cir- cuitales y mostramos algunas fotos del PLC. Pretendemos con esta nota acercarle informaci—n disponible en la web y difun- dir los excelentes trabajos de profesiona- les, como el autor de esta nota. Autor: Juan Manuel Rodr’guez e-mail: juanmarod@inicia.es En la Web: http//inicia.es/de/juanmarod/portada.htm HISTORIA DEL PROYECTO. Después de varios años traba- jando con autómatas comercia- les de diferentes fabricantes co- mo 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: - Debía tener un lenguaje de programación compatible con el estándard y poder soportar todo tipo de instrucciones, contadores y temporizadores. - La memoria del PLC ten- dría que ser no volátil para no perder el programa por un corte de tensión. - Tenía que contemplar la posibilidad del volcado de los programas desde un PC con un entorno windows - Los componentes del hard- ware debían ser baratos y fáciles de localizar. - El número de entradas y salidas, en un principio, debía ser 8 (8 E/S) ampliable en el fu- turo. - Alimentación de 220V ac ó 12V DC de una batería.
  • 2. El primer paso fue diseñar el sistema operativo, el lenguaje de programación tenía que ser sen- cillo y programar directamente en ensamblador no era una solu- ción. Después de algunas prue- bas usando un procesador 80C535 y trabajando en ensam- blador, vi la posibilidad de usar las funciones que ofrecen los compiladores para incluir etique- tas y macros en el código de má- quina del procesador. La solución fue usar "MA- CROS" para convertir las ins- trucciones 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" sería el código de la instrucción, el campo " A " la dirección de la tarjeta de entradas y en campo "B" el número 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 ma- cros es que nos permite llamar a la instrucción con el nombre que más nos guste. El uso de etiquetas nos permite hacer aún más claros los progra- mas del autómata al poder sustituir las direcciones hexade- cimales de las entradas/salidas por un texto más descriptivo : LD Tarjeta_E0,Pulsador_Marcha OUT Tarjeta_S0,Marcha_motor Una vez depurado el sistema operativo, probé diferentes fór- mulas para almacenar los progra- mas en memoria. El uso de EPROM no era viable ya que habría que borrarla previamente cada vez que se hiciese una mo- dificación. El uso de RAM estática no volátil no resultó estable ya que con los cortes de tensión se co- rrompían los datos. La opción fi- nal fue buscar un microprocesa- dor que incluyese memoria EE- PROM para el sistema operativo y programa PLC y RAM para los datos temporales. Los proce- sadores que mejor se adaptan a estas exigencias son la familia de ATMEL 89C1024 y los PIC 16F84 de MICROCHIP. Las diferencias entre los pro- cesadores son las siguientes: La familia ATMEL ofrece procesadores con 4K de memo- ria EEPROM y 128 bits de RAM con dos puertos E/S, los códigos de máquina son compa- tibles con Intel y muy cómodos para direccionar bits. Sin embar- go requiere un hardware de pro- gramación complicado. El microprocesador PIC16F84 sólo ofrece 1K de EEPROM y 64 bits de RAM, el código De máquina es un poco me- nos 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 la elección del PIC ya que permite integrar el programador dentro del autó- mata usando un hardware muy sencillo, descargar los programas usando el puerto paralelo de la PC y realizar modificaciones en cuestión de segundos, aún a pe- sar de su escasa capacidad de memoria. Una vez elegido el procesa- dor, sólo quedó buscar el hard- ware más adecuado 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. Antes de avanzar en la expli- cación del sistema operativo, vamos a dar en esta entrega los esquemas que constituyen nuestro PLC; así en la figura 1 tenemos el diagrama de la Unidad de Proceso Central (CPU) de nuestro autómata, en la figura 2 se da la implementa- ción de las entradas, en la figura 3 las salidas y en la figura 4 el diagramna circuital de la fuente de alimentación. Todo el autómata se constru- yó en dos placas de circuito im- preso cuyos diagramas pueden verse en las figuras 5, 6 y 7. En la figura 5 se muestra la disposi- ción de los componenentes, en la figura 6 el lado del cobre (inver- so a los componentes) y en la fi- gura 7 como se verían ambos la- dos si la placa fuese transparente.
  • 5. Ambas placas de circuito im- preso son de “doble cara” y dado que el primer prototipo fue rea- lizado a mano, dibujando las pis- ta una a una, algunas de ellas es- tán cableadas usando hilo de co- bre. Como se aprecia en las fotos de la figura 8, las dos placas del autómata son montadas una so- bre otra usando separadores. Todo el cableado externo se une con conectores enchufables. En la tarjeta inferior están in- tegradas la fuente de alimenta- Fig. 5
  • 6. ción, la CPU y el puerto de co- municaciones. La fuente de ali- mentación genera tres tensiones: +5V con una capacidad de co- rriente de 1A para la lógica digi- tal, 14V con una capacidad de 100mA para el circuito de pro- gramación del procesador y +24V con una capacidad de 0,5A para las entradas optoacopladas. En la placa superior se en- cuentra el driver que activa los relés de salida (que precisa 1 contacto normalmente abierto y libre de potencial) y los optoaco- pladores que aíslan eléctricamen- te 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. Figura 6
  • 7. Las tarjetas están conectadas a través de un cable plano de 26 pines, el puerto de comunicacio- nes es de 9 pines y se han imple- mentado en el panel frontal tres leds de diagnóstico, un pulsador de RESET y un interruptor de dos posiciones, con funciones a saber: • El led verde indica que el PLC está en modo “RUN” eje- cutando el programa contenido en memoria y parpadea con una secuencia de 0,5 segundos, es- tando bajo el control del sistema Figura 7
  • 8. operativo. Si el PLC se cuelga o la memoria EEPROM está bo- rrada, este led deja de parpadear así como cuando el interruptor está en modo STOP/PRO- GRAM. • El led rojo nos informa que el procesador está 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 pasa- mos el interruptor de dos posi- ciones del modo RUN al modo de programación STOP/PRO- GRAM para volcar programas a la memoria del PIC. • El led amarillo sirve de diagnóstico en los procesos de comunicación con la PC; se acti- va al leer, borrar, verificar y gra- bar la memoria EEPROM del procesador PIC16F84. PROGRAMAS CON AMBIENTE 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 está disponible en la red. Se utilizó un “viejo conoci- do de los lectores de Saber Elec- trónica”; el potente entorno de programación MPLAB de MI- CROCHIP, fabricante del mi- croprocesador 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 simulación pa- so a paso de programas en en- samblador con la que depure en su momento el sistema operativo del autómata. Este programa se puede descargar desde: http://www.microchip.com/ Su tamaño es de unos 9MB. Para la grabación de la me- moria EEPROM del PIC y des- pués de mucho buscar por la red elegí el programa WPicProg16 diseñado por Nigel Goodwin al que debemos agradecer su aporte así como a Don Mckenzie que ofrece mucha información sobre programadores PIC en su página australiana y a través de la cual localice el programa. El software de programación del procesador PIC16F84 se puede descargar de la página personal de Nigel Goodwin. El hardware del PLC está optimizado para la versión 1.21 de 16 bits ejecutable bajo Windows 95/98 y se puede bajar de: http://www.lpilsley.freeserve.co.uk/software.htm En la próxima edición habla- remos del Sistema Operativo de este PLC y qué funciones puede realizar. Si Ud. no desea esperar hasta el mes próximo, puede consultar la página personal del autor en: http//inicia.es/de/juanmarod/portada.htm Figura 8
  • 9. SISTEMA OPERATIVO OS El sistema operativo del autó- mata que he proyectado y cuyos lineamientos expusimos en la edi- ción anterior en realidad es muy sencillo, tan sólo incluye las ins- trucciones que inicializan los re- gistros del procesador, el puerto A, el puerto B, el temporizador TMR0, los vectores de interrup- ción, la rutina que gestiona las en- tradas/salidas y la rutina de ges- tión de pilas; el resto son macros que se utilizan como instrucciones del PLC. Una de las muchas ventajas de las MACROS del ensamblador, es que sólo se compilan e incluyen dentro del código del programa si son usadas en el programa PLC, si no usamos los contadores, por ejemplo, éstos aunque formen par- te del sistema operativo no serán incluidos en la compilación del programa del autómata, reducien- do así, el uso de la memoria. Esto posibilita el diseño de un sistema operativo muy compacto, dado que la capacidad de memoria EEPROM del procesador PIC16F84 está limitada a 1024 bytes. El sistema operativo debe ocupar el menor espacio posible. El sistema operativo utiliza un 15% de la memoria del procesa- dor, concretamente 155 bytes que- dando disponible el resto para las instrucciones del programa PLC (un total de 869 bytes libres). Para comprender el principio de opera- ción del sistema operativo, vea los diagramas de flujo de la figura 1. El sistema operativo está dis- ponible en la web en formato tex- to con la extensión “.asm” para ser editado con el programa MPLAB de Microchip, sin embargo, en la próxima edición comenzaremos a publicar el listado del programa en estas páginas. He procurado in- cluir todos los comentarios posi- bles para facilitar su comprensión, de todas formas es imprescindible Arme un PLC y cárguele el sistema operativo con éxito Sistema Operativo de un PLC de 8 entradas y 8 salidas Con PIC 16F84 En la edición anterior comenzamos a explicar el proyecto de un Autómata Programable de 8 entradas y 8 salidas, cuyo funcio- namiento está basado en la inclusión de un microcontrolador 16F84. Este proyecto, publicado en Internet, es un excelente ejemplo de aplicación de los PICs de Microchip y posee un sis- tema operativo fácil de comprender. En la edición anterior brin- damos los circuitos eléctricos y los diagramas de circuito impre- so. En esta edición hablaremos del sistema operativo. Tenga en cuenta que si Ud. desea toda la información de este proyecto, puede dirigirse a la página que el autor tiene en Internet, a la cual puede acceder desde un link que tenemos en la web: w w w- .webelectronica.com.ar Autor: Juan Manuel Rodr’guez - e-mail: juanmarod@inicia.es En la Web: http//inicia.es/de/juanmarod/portada.htm
  • 10. conocer los códigos 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 experi- mentar con este au- tómata, debe bajar de la web los archi- vos mostrados en la tabla 1, ya que en la próxima edición tra- bajaremos con ellos. El programa MPLAB de Micro- chip es un software muy completo y fácil de usar cuya explicación fue dada en Saber Electrónica Nº 139. La forma más cómoda de trabajar consiste en crear un PROYECTO para cada programa PLC que creemos. Es útil usar una plantilla donde tengamos ya creadas las variables iniciales del programa PLC. Ejecutamos el programa MPLAB y desde el menú FILE abrimos el fichero plantilla "ba- se.asm", desde el mismo menú lo guardamos "Save as.." con el nombre que más describa las fun- ciones del programa (PLC por ejemplo). Picamos (hacemos un click) en el menú "Proyect" y creamos un nuevo proyecto "New proyect" (figura 2), tecleamos el mismo nombre con el que llama- mos al fichero del programa PLC anterior y nos aparece una ventana con el nombre del “fichero.hex” que será el que posteriormente grabaremos en el PIC (en nuestro caso es: plc.hex, figura 3). En la misma ventana "Project Files" picamos sobre el fichero que aparece y a continuación so- bre el icono "Node propierties". Se despliega otra ventana con di- ferentes parámetros (figura 4), pulsamos OK y volvemos al menú Figura 1 Tabla 1 Descargar el sistema operativo OS_PLC8.asm Descargar plantilla de programa PLC PLANTILLA.asm Descargar ejemplo de programa PLC EJEMPLO.asm Figura 2 Figura 3 Figura 4
  • 11. anterior. En este punto se activa el icono "Add node" (figura 5), lo pi- camos y añadimos al proyecto el “fichero.asm” del programa PLC. De esta manera ya tenemos creado el proyecto con los dos ficheros necesarios, picamos OK y se cierran todas las ven- tanas. Podemos a continua- ción escribir el pro- grama PLC y com- pilarlo junto con el S.O. con los íconos mostrados en la figu- ra 6. Tenga en cuenta que Ud. puede “bajar” el programa ya escrito (que denomi- namos plc1.asm) de la web, no ha- ce falta que lo escribamos para luego compilarlo. Para compilar el programa y así tener el archivo plc1.hex, pica- mos en FILE, luego OPEN (figu- ra 7) y buscamos el archivo pl- c1.asm (no- sotros lo bajamos de la web y sa- bemos dónde lo hemos alo- jado) tal como su- giere la fi- gura 8. Aparecerá el listado del progra- ma (figura 9) y lo ensamblamos picando en PROYECT y luego BUILD ALL (figura 10). Para ver el número de bytes de memoria EEPROM que ocupa el programa compilado, desde el menú "Window" opción "Pro- gram Memory" abrimos una ven- tana donde veremos las direccio- nes EEPRON usadas y así poder calcular el espacio que aún nos queda libre. Una vez compilado el progra- ma y libre de errores podemos pa- sar a grabarlo en el PLC, para ello conectamos el cable de comunica- ciones entre el puerto paralelo de nuestro P.C. y el autómata, ejecu- tamos el programa WPicProg16 y pasamos el interruptor del PLC de la posición RUN a STOP- /PROGRAM, se apaga el led ver- de intermitente y se activa el led rojo. La primera vez que ejecute- Figura 6 Fig. 5 Figura 7 Figura 8 Figura 10 Fig. 9
  • 12. mos este programa, comprobare- mos los ajustes del puerto parale- lo, (figura 11) picamos en el icono "Options >>> Hardware" donde veremos los bits del puerto usados para cada señal de programación. Desde el menú "Options" ele- gimos "Find Port", con esto el programa entra en comunicación con el autómata y detecta la direc- ción Hexa del puerto al que está conectado (esquina inferior iz- quierda). Desde el menú "File" abrimos el fichero.hex (en nuestro caso: plc1.hex, figura 12) que que- dará visualizado en la ventana Buf- fer, seleccionamos el tipo de pro- cesador en nuestro caso el PIC16F84 (figura 13) y borramos el contenido de la memoria del PIC con el icono "Erase". Ajustamos las casillas "Fuses" y "Oscillator" activan- do WDT (wath dog), PUT y HS. Picando sobre el icono Write PIC volcamos el “fiche- ro.hex” a la memoria EEPROM del PIC, activándose en el proceso el led amari- llo del frontal del autómata. Si no ocurre ningún error, en el recuadro inferior dere- cho aparece el tiempo total de vol- cado (unos 4 segundos). En cualquier momento pode- mos comparar el contenido de la memoria del PIC con el “fichero- .hex” picando sobre el icono Ve- rify. Sólo resta pasar el interruptor de STOP/PROGRAM a RUN (se apaga el led rojo y se activa el ver- de en forma intermitente) y com- probamos que el programa cum- ple las especificaciones activando las entradas en la secuencia co- rrecta. Cuando creamos un programa PLC, es posible que cometamos algún error de sintaxis. Estos erro- res aparecerán reflejados al compi- lar el programa en una ventana Figura 11 Fig. 12 Fig. 13 Fig. 14
  • 13. que mostrara las líneas indicadas en la figura 14. En primer lugar nos informa si es un error grave o un aviso (War- ning) seguido de un código que se puede consultar desde la ayuda del MPLAB. En segundo lugar nos dice en qué fichero se ha encontrado el error, la línea de programa en que se encuentra y la información de lo que el compilador no reconoce o no encuentra. Haciendo doble clik con el mouse sobre el texto de error nos dirigimos directamente a la línea del programa que contiene dicho error. Como vemos en el ejemplo su- perior, se nos informa que contie- nen errores tanto el fichero del sistema operativo (OS_PLC:ASM) como el fichero del programa plc (PLC1.ASM). Esto no es del todo real y puede crear al principio bas- tante confusión. Como ya hemos visto, el siste- ma operativo está compuesto de "MACROS" y el programa PLC se compone de llamadas a estas macros, por lo tanto, si comete- mos un error de sintaxis en una llamada a una macro del S.O. des- de el programa PLC al enlazar y compilar juntos los dos ficheros, el compilador intentará pasar los pa- rámetros de la llamada a la macro (instrucción PLC) usada en el fi- chero PLC a la macro que en rea- lidad se encuentra en el fichero del S.O. produciéndose el error en la MACRO del fichero del S.O. cuando en realidad el error se en- cuentra en los parámetros del fi- chero del programa PLC. Veamos en realidad donde se han cometido los errores de sinta- xis, para lo cual debemos dirigir- nos a la figura 14. Warning[202] D:MPLABPI- CEJEMPLOSOS_PLC8.ASM 435 : Argument out of range. Least significant bits used. Warning[202] D:MPLABPI- CEJEMPLOSOS_PLC8.ASM 437 : Argument out of range. Least significant bits used. El mensaje es que tenemos ar- gumentos fuera de rango en las lí- neas 435 y 437. Haciendo doble clic en cualquiera de estas líneas saltamos a la macro del S.O donde se producen. 432 OUT MACRO DATA1,DATA2 433 MOVWF S 434 BTFSS S,0 435 BCF DATA1,DATA2 436 BTFSC S,0 437 BSF DATA1,DATA2 438 ENDM Lo que podemos deducir es que el error se encuentra en algu- na línea del fichero PLC donde aparezca la instrucción OUT. Re- visando este fichero encontramos la línea 93 donde se intenta direc- cionar el bit Nº 8 del registro de salidas S0. Dado que los registros del plc son de 8 bits el rango de direccionamiento sólo puede en- contrarse ente cero y siete. 93 OUT S0,8 Corregimos este inconveniente seleccionando el bit adecuado, con lo cual el error desaparecerá al volver a compilar el programa. Como vemos los errores se encon- traban en realidad en el fichero PLC. Los mensajes de error marca- dos como “Error[113]” en el men- saje de la figura 14 nos mandan a la línea 427 del fichero OS_PL- C:ASM 424 RESET MACRO DATA1,DATA2 425 MOVWF S 426 BTFSC S,0 427 BCF DATA1,DATA2 428 ENDM El error se encuentra dentro del la macro RESET del sistema operativo, pero no informa en que línea del fichero PLC se encuen- tra este error por lo que tendre- mos que revisar el fichero y com- probar la sintaxis de todas las lla- madas a la instrucción RESET. Es muy útil en estos casos usar las funciones de búsqueda que ofrece MPLAB, activando la ven- tana que contenga el fichero del programa PLC y pulsando F3 se abre la ventana de búsqueda don- de escribiremos la palabra a buscar y así revisar todas las concurren- cias que aparezcan. 104 RESET S0.4 En la línea 104 del fichero PLC tenemos una llamada a la instrucción RESET con un error de sintaxis en los parámetros, en esta línea realizamos un reset de la salida Nº4 de la tarjeta de salidas S0 pero en lugar de una coma "," hemos tecleado un punto "." para separar los parámetros, este pro- blema ha generado dos errores en la línea 427 del S.O que desapare- cerán al sustituir el punto por la coma y compilar de nuevo el pro- yecto. Error[128] D:MPLABPI- CEJEMPLOSPLC1.ASM 104 : Missing argument(s) Este error sí nos dice en qué lí- nea del fichero PLC se encuentra, concretamente en la 104 y al hacer
  • 14. doble clic en él nos manda al fi- chero PC donde confirmamos el error de sintaxis del punto y la co- ma explicado anteriormente. El error se produce al faltarle un ar- gumento a la instrucción RESET ya que S0.4 es considerado un sólo argumento. Warning[207] D:MPLABPI- CEJEMPLOSPLC1.ASM 79 : Found label after column 1. (AMD) Error[122] D:MPLABPI- CEJEMPLOSPLC1.ASM 79 : Illegal opcode (E0) Estos errores sí nos mandan di- rectamente al fichero de programa PLC. Picando sobre cualquiera de ellos saltamos a la línea 79 del fi- chero PLC donde vemos rápida- mente que nos hemos confundido al escribir la instrucción AND co- mo AMD: 79 AMD E0,0 Lo dado hasta aquí pretende ser una guía para la comprensión del sistema operativo del autómata que estamos describiendo, si- guiendo paso a paso las instruccio- nes, no tendrá iconvenientes para hacer funcionar el autómata. En la próxima edición veremos cuáles son las instrucciones del PLC y daremos algunos ejemplos de pro- gramación. Tenga en cuenta que el presente proyecto es tomado de la página del autor desde Internet y que para obtener la versión comple- ta debe dirigirse a la dirección dada al comienzo de la nota. J