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 | Instrucciones PLC | Links | Home |
Las lineas de texto de programa PLC que definen esta rama son:
LD
E0,0
AND
E0,1
LD
E0,2
AND
E0,3
ORLD
AND E0,4
OUT S0,0
Esta estructura se divide en cinco operaciones:
1º Resolver la serie
de contactos E0,0 y E0,1
2º Resolver la serie de
contactos E0,2 y E0,3
3º Resolver el paralelo
de las dos series anteriores
4º Resolver la serie del
contacto E0,4 con el resultado del paralelo anterior
5º Pasar el resultado de
las operaciones anteriores a la salida S0,0
Al arrancar el sistema operativo
del PLC se inicial izan todos los registros y después
se ejecutan secuencialmente
las instrucciones tipo PLC. Todas las operaciones
aritméticas se realizan
sobre el registro acumulador W y quedan almacenadas en el.
| REGISTRO | INICIO | PASO_1 | _PASO_2_ | PASO_3 | _PASO_4_ | PASO_5 | _PASO_6_ | _PASO_7_ | ||||||||
| TEMP | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ||||||||
| PILA1 | 0 | 0 | 0 | W | W | 0 | 0 | 0 | ||||||||
| PILA0 | 0 | W | W | AND1 | AND1 | W | W | W | ||||||||
| W | W | E0,0 | AND1 | E0,2 | AND2 | OR 1+2 | OR 1+2 | SALIDA | ||||||||
| RESET | LD E0,0 | AND E0,1 | LD E0,2 | AND E0,3 | ORLD | AND E0,4 | OUT S0,0 |
Paso 2 :La instrucción
AND E0,1 realiza la multiplicación
lógica entre el contacto
E0,1 y W. Como en W teníamos
el contacto E0.0 el resultado que queda es
W = (E0,0 * E0,1) que a lo largo
de este ejemplo lo llamaremos AND1.
Paso 3 : El resultado del
la serie resuelta en el paso 2 es necesario guardarlo de alguna
manera y de esto se encarga
la instrucción LD E0,2 que sin hacer
ninguna operación aritmética
mueve el contenido de la pila
una posición arriba guardando el resultado anterior AND1 en el
registro PILA0, el valor del
registro TEMP de la pila como vemos se vuelve a perder. Después
de salvar el resultado anterior
carga en W el valor de contacto E0,2.
Paso 4 : La instrucción
AND E0,3 realiza la multiplicación
entre W =( E0,2 ) y el contacto
E0,3 quedando el resultado en
el acumulador W=( E0,2 * E0,3 ) a este resultado lo llamaremos AND2.
Paso 5 : En este punto de
la ejecución tenemos en el registro PILA0 el resultado de la primera
serie de contactos (E0,0 * E0,1)
y en W el resultado de la segunda serie (E0,2 * E0,3).
La siguiente instrucción
ORLD realiza la suma lógica entre los
registros PILA0 y W quedando
el resultado que llamaremos
"OR 1+2" en W=[(E0,0 *E0,1)+(E0,2 * E0,3)] y a su vez mueve
el contenido de la pila una posición
hacia abajo, como vemos tenemos guardados en la pila
los valores originales del registro
W y de PILA0 perdiendo el contenido original del registro
PILA1 y TEMP.
Paso 6 :
AND E0,5 realiza la multiplicación de todas las operaciones
anteriores
( OR 1+2 que esta en W ) y el
contacto E0,5 quedando este ultimo resultado en
W=[(E0,0 *E0,1)+(E0,2 * E0,3)]
* E0,5 este resultado final lo llamaremos "SALIDA".
Paso 7 : La ultima instrucción
de la rama OUT S0,0 mueve el contenido de
W que en
valor absoluto será "0"
ó "1" al bit del registro de salida S0 direccionado por la instrucción
OUT,
en este caso el relé
de salido cero del autómata. Cuando el procesador ejecute le rutina
de
actualización de las salidas,
el relé Nº0 será actualizado.
Ejemplo.asm
Descargar ejemplo de programa PLC EJEMPLO.asm