logotipo

img_google
INSTRUCCIONES DEL PLC

 PROYECTO DE AUTOMATA PROGRAMABLE  DE 8 E/S
        BASADO EN EL PROCESADOR PIC 16F84

   Autor: Juan Manuel Rodríguez


Esquemas
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

Ir al principio


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 - - - -

Ir al principio

Las instrucciones se escriben en mayusculas, entre ellas y los parametros ha de
haber al menos un espacio. Los parametos se separan usando comas " , "

LD
Esta es la primera instrucción por la que empiezan todas las ramas, no realiza ninguna
operación aritmetica. Su funcion es salvar en la pila el resultado de operaciones aneriores
y cargar directamente en el registro acumulador  ( W ) del procesador el bit E/S que direciona.
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
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.

Ir al principio