PROYECTO DE AUTOMATA PROGRAMABLE
DE 8 E/S
BASADO EN EL PROCESADOR PIC 16F84
Autor: Juan Manuel Rodríguez
|
|
Circuitos impresos | Fotos del PLC montado | Software |
| Sistema Operativo | Ejemplos | Links | Home |
Repaso general.
Antes de entrar en profundidades
revisaremos las estructuras de programacion de los automatas
comerciales.Las dos formas
mas usuales de editar programas PLC son :
Diagrama de contactos:
Representa las entradas
y salidos usando simbolos electricos estándar: ( contacto normalmente
abierto, contacto normalmente
cerrado, bobinas de rele, etc ). Es una forma de ver los programas
muy grafica especialmente
pensada para electricistas, con una rapida mirada podemos
comprender como respondera
la salida. La representacion de contactos se asemeja al la
estructura de directorios
de un disco duro pero invertida. En primer lugar resolvemos los
contactos en paralelo (
OR ) despues los contactos en serie ( AND ) y por ultimo la salida ( OUT
).
Modo texto:
Este es el modo en que se
progama el PIC-PLC, consta de una serie de lineas de texto,
cada linea describe una
instrucción, el orden es muy importante ya que cambia el resultado
final en la salida. En primer
lugar resolvemos los contactos en paralelo ( OR ) despues
los contactos en serie (
AND ) y por ultimo la salida ( OUT ).
| INSTRUCCION | DIRECCION E/S | COMENTARIO |
| LD | E0,0 | MARCHA |
| OR | E0,1 | RETENIDA MOTOR |
| AND_NOT | E0,2 | PARO |
| AND_NOT | E0,3 | TERMICO |
| OUT | S0,0 | RELE MOTOR ON |
INSTRUCCIONES Y REGISTROS DEL PLC
Convencionalismos:
El simbolo # equivale a un Nº decimal de cero a siete y
se refire a un bit de un
regitro del PLC.
El simbolo % equivale a un Nº decimal de cero a siete y se refiere
al numero de
instruccion o al numero del registro asociado a la instruccion. En algunos
casos el
valor numerico solo puede estar comprendido entre cero y tres.
Parametro: Son los bits del registro indicado antes de la coma ","
que puede modificar.
Bit asociado: Es el bit asociado con la instruccion que modifica
al ser ejecutada
Registro asociado: Es el reguistro que contiene informacion usada por
la instruccion.
Intruccion asociada: Es la instrucion que realiza un reset de los bits
de la instruccion principal.
Registos del PLC.
Todos los datos variables del PLC estan contenidos en la memoria RAM interna
del PIC16F84:
E% : Registro de entradas, almacena el estado de las entradas
del automada
S % : Registro de salidas , contiene el valor del estado de las
salidas del automata
M% : Registro de memorias intermedias, maneja bits de entrada o salida
virtuales,
solo existen internamente en la memoria del automata, se usan para hacer
operaciones intermedias en el programa PLC y no tienen una correspondencia
fisica con ninguna entrada o salida del automata.Estan disponibles tres registros
de memorias intermedias de M0 a M2 que suman en total 24 bits.
TIEMPO% : Registro asociado a los temporizadores del automata, contiene
el valor del tiemp de retardo del temporizador
CONTADOR% : Registro asociado a los contadores, almacena el numero
de
eventos a contar.
TIM : Registro que contine los bits de salida de los temporizadores,
| INSTRUCCION | PARAMETRO | BIT ASOCIADO | REGISTRO ASOCIADO | INSTRUCCION ASOCIADA |
| LD | E%,# M%,# S,# TIM,# CNT,# | - | - | - |
| OR | E%,# M%,# S,# TIM,# CNT,# | - | - | - |
| OR_NOT | E%,# M%,# S,# TIM,# CNT,# | - | - | - |
| AND | E%,# M%,# S,# TIM,# CNT,# | - | - | - |
| AND_NOT | E%,# M%,# S,# TIM,# CNT,# | - | - | - |
| ORLD | - | - | - | - |
| ANDLD | - | - | - | - |
| OUT | S%,# | - | - | - |
| SET | M%,# S,# | - | - | RESET |
| RESET | M%,# S,# | - | - | - |
| TIMER% | - | TIM,# | TIEMPO% | - |
| CNT% | - | CNT,# | CONTADOR% | RCNT% |
| RNCT% | - | CNT,# | - | - |
| RS% | M%,# S,# | - | - | - |
| DIF% | - | DIF,# | - | - |
| END | - | - | - | - |
Las instrucciones se escriben en mayusculas, entre ellas y los parametros
ha de
haber al menos un espacio. Los parametos se separan usando comas " , "
OR
Realiza la operación logica
OR (suma) entre el acumulador (W) y el bit que direcciona,
el resultado se guarda en W.
Operandos permitidos:
E0,0 ..................E0,7
M0,0..................M0,7
M1.0........M1.7 M2,0........M2,7
S0,0..................S0,7
TIM,0.................TIM,6
CNT,0................CNT,3
DIF,0..................DIF,3
Uso de memoria EEPROM: 4 bytes
OR_NOT
Realiza la operación logica
OR (suma) entre el acumulador (W) y el bit que direcciona invertido,
el resultado se guarda en W.
Operandos permitidos:
E0,0 ..................E0,7
M0,0..................M0,7
M1.0........M1.7 M2,0........M2,7
S0,0..................S0,7
TIM,0.................TIM,6
CNT,0................CNT,3
DIF,0..................DIF,3
Uso de memoria EEPROM: 4 bytes
AND
Realiza la operación logica
AND (multiplicación) entre el acumulador (W) y el bit que direcciona,
el resultado se guarda en W.
E0,0 ..................E0,7
M0,0..................M0,7
M1.0........M1.7 M2,0........M2,7
S0,0..................S0,7
TIM,0.................TIM,6
CNT,0................CNT,3
DIF,0..................DIF,3
Uso de memoria EEPROM: 4 bytes
AND_NOT
Realiza la operación logica
AND (multiplicación) entre el acumulador (W) y el bit que
direcciona invertido, el resultado
se guarda en W.
Operandos permitidos:
E0,0 ..................E0,7
M0,0..................M0,7
M1.0........M1.7 M2,0........M2,7
S0,0..................S0,7
TIM,0.................TIM,6
CNT,0................CNT,3
DIF,0..................DIF,3
Uso de memoria EEPROM: 4 bytes
ORLD
Realiza la operación logica
OR (suma) entre el acumulador (W) y el primer registro del la pila,
el resultado se guarda en W y el contenido
de la pila es desplazado un nivel abajo.
Uso de memoria EEPROM: 2 bytes
ANDLD
Realiza la operación logica
AND (multiplicación) entre el acumulador (W) y el primer registro
del la pila, el resultado se guarda
en W yl contenido de la pila es desplazado un nivel abajo
Uso de memoria EEPROM: 2 bytes
OUT
Extrae el valor absoluto del contenido
del acumulador "0" ó "1" y lo mueve al bit del registro
que direccione la instrucción.
Operandos permitidos:
M0,0..................M0,7
M1.0........M1.7 M2,0........M2,7
S0,0..................S0,7
Uso de memoria EEPROM: 5 bytes
SET
Realiza la función SET
( puesta a "1" ) de un biestable RS, el bit que direcciona
es puesto a "1",
Operandos permitidos:
M0,0..................M0,7
M1.0........M1.7 M2,0........M2,7
S0,0..................S0,7
Instrucción asociada : RESET
Uso de memoria EEPROM: 3 bytes
RESET
Realiza la función RESET
( puesta a "0" ) de un biestable RS, el bit que direcciona es puesto
a "0", esta funcion se puede definir
en cualquier punto del programa, pero obligatoriamente
despues de haber definido la función
SET para que en la secuencia de ejecución predomine
siempre el RESET sobre el SET en el
caso de estar activadas las dos funciones a la par.
Operandos permitidos:
M0,0..................M0,7
M1.0........M1.7 M2,0........M2,7
S0,0..................S0,7
Instrucción asociada : RESET
Uso de memoria EEPROM: 3 bytes
TIMER%
Temporizador, la llamada a esta funcion
dispara un temporizador del tipo retardo a la conexión.
Cuando las condiciones previas estan
a "1" y se mantienen despues de pasado el tiempo de
retardo el bit asociado al timer se
activa y solo cae si estan pasan a "0".
El sitema operativo implementa siete
temporizadores de TIMER0 a TIMER6.
El tiempo de retardo es definido
en la cabecara del programa por los registros TIEMPO%
El tiempo de retardo se puede fijar
entre 0,1 seg y 25,4 segundos.
Bits de salida asociados: TIM,0..............TIM,6
Uso de memoria EEPROM: 8 bytes
CNT%
Contador de eventos, esta función
detecta el flanco ascendente de las condiciones previas
e incrementa un contador interno,
cuando el contador alcanza el valor definido por el registro
asociado CONTADOR% se activa el bit
asociado CNT,# y el contador queda deshabilitado
mientras no se ejecute la intrucción
asociada RCNT%.
El sitema operativo implementa cuatro
contadores de CNT0 a CNT3.
El tiempo Nº de eventos a contar
es definido en la cabecara del programa por los registros
CONTADOR%, al ser un registro de 8
bit permite contar 254 eventos.
Bits de salida asociados: CNT,0..............CNT,3
Uso de memoria EEPROM: 14 bytes
RCNT%
Puesta a cero de contador, borra el
contenide del registro contador interno, pone a "0" el
bit de salida asociado CNT,#
y habilita de nuevo el contador
Uso de memoria EEPROM: 5 bytes
RS%
Realiza la funcion de un biestable
del tipo "T". Esta función detecta el flanco ascendente
de las condiciones previas, si estas
pasan de "0" a "1" se invierte el estado del bit que
direcciona la instruccion si este
era "0" pasa a "1" y si era "1" pasa a "0". como ejemplo
es util para encender una bombilla
con un solo pulsador.
Operandos permitidos:
M0,0..................M0,7
M1.0........M1.7 M2,0........M2,7
S0,0..................S0,7
Uso de memoria EEPROM: 14 bytes
DIF%
Finción diferencial, detecta
el flanco ascendente de las condiciones previas
( paso de estado logico "0" a "1")
y activa un bit interno que se mantiene a "1" solamente
durante un ciclo de programa (scan),
esto es el tiempo que el procesador tarda en ejecutar
el programa PLC, del orden de milisegundos.
El sitema operativo implementa cuatro
funciones diferenciales de DIF0 a DIF3.
Los bits de salida asociados se direccionan
como DIF,0.........DIF,3
Uso de memoria EEPROM: 10 bytes
END
Instrucción de fin de programa
PLC.