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