Lista de Instrucciones

Anuncio
CURSO DE PLC
LENGUAJES DE PROGRAMACIÓN
Lista de Instrucciones (IL)
1
Objetivo de la Lección
Presentar el lenguaje de Lista de Instrucciones IL.
Lista de Temas
Instrucciones IL
Instrucciones de Bit
Instrucción AND
Instrucción OR
Asignación Simple
Instrucciones de Retención
Instrucciones de Palabra y Byte
Instrucción AND
Instrucción NAND
Instrucción OR
Instrucción NOR
Instrucción EXOR
Instrucción EXNOR
Instrucción de Comparación
Instrucciones de Carga y Transferencia
Instrucciones para Temporizadores
Instrucciones para Contadores
Instrucciones Aritméticas
Instrucciones de Control de Flujo
LENGUAJE DE LISTA DE INSTRUCCIONES
El programa se realiza por medio de la escritura de instrucciones predefinidas por
el lenguaje.
Sintaxis del Lenguaje:
SINTAXIS DE LAS INSTRUCCIONES
OPERANDO ATRIBUTO FUENTE
DESTINO COMENTARIO
OPP
OPA
SRC
DEST
Coment
CURSO DE PLC
LENGUAJES DE PROGRAMACIÓN
Lista de Instrucciones (IL)
2
Cada instrucción se divide en cinco campos:
1. Operando (sintaxis OPP): Indica que hace la instrucción.
2. Atributo del Operando (sintaxis OPA): Indica el formato de datos sobre el
cual se opera: Bit, Byte, Word.
3. Fuente (sintaxis SRC): fuente de información.
4. Destino (sintaxis DEST): lugar en donde se produce el resultado de la
instrucción, siempre se antecede con una coma.
5. Comentario (sintaxis coment): campo opcional que permite escribir un
comentario para clarificar la instrucción, el procesador no lo tiene en
cuenta; siempre se inicia con punto y coma.
Instrucciones IL:
A continuación se hace una descripción de las instrucciones IL más comunes:
•
Instrucciones de Bit: Este tipo de instrucciones evalúa los bits de la fuente
consecutivamente en cada sentencia.
•
Instrucción AND: Se realiza por medio del operando A. El complemento de la
entrada (equivalente a un contacto normal cerrado) se realiza por medio del
operando AN. Cada instrucción se forma con el Operando y la fuente.
Ejemplo:
A
A
AN
AN
•
I0.0
I0.1
I0.1
I0.1
; Desempeña I0.0 AND I0.1
; I0.0 AND (NOT I0.1)
; (NOT I0.0) AND (NOT I0.1)
Instrucción OR: El operando es O; la instrucción se conforma agregando la
fuente; para negar la entrada se usa ON. La primera sentencia o instrucción es
AND cuando se requiere realizar una función OR.
Ejemplos:
A
I0.0
O
I0.1
;I0.0
; I0.0 OR
I0.1
CURSO DE PLC
LENGUAJES DE PROGRAMACIÓN
Lista de Instrucciones (IL)
•
A
ON
I0.0
I0.1
;I0.0
;I0.0 OR
AN
ON
I0.0
I0.1
;NOT I0.0
;(NOT I0.0) OR
3
(NOT I0.1)
(NOT I0.1)
Asignación Simple: El operando es igual (=);la fuente le sigue a la operando.
Ejemplo:
A I0.0
AN I0.1 ; I0.0 AND (NOT I0.1)
A I0.2 ; I0.0 AND (NOT I0.1) AND I0.2
= Q0.0 ; Q0.0 = I0.0 AND (NOT I0.1) AND I0.2
•
Instrucciones de retención de bit: Instrucciones de puesta a uno S y puesta
a cero R. La sintaxis de la instrucción se compone de: operando y fuente.
Ejemplo:
En la tabla a continuación, se presentan un conjunto de instrucciones IL y su
equivalente FBD.
Instrucción
AND
Lenguaje
FBD
IL
A
A
R
I0.0
I0.1
Q0.
OR
0
A
O
ON
=
I0.0
I0.1
I0.1
Q0.
EXOR
0
A
AN
ON
A
=
I0.0
I0.1
I0.0
I0.1
CURSO DE PLC
LENGUAJES DE PROGRAMACIÓN
Lista de Instrucciones (IL)
4
Q0.
NAND
0
AN
ON
=
NOR
0
AN
AN
S
I0.0
I0.1
Q0.
I0.0
I0.1
Q0.
0
•
Instrucciones de Palabra y Byte: En estas instrucciones tanto la fuente como
el destino tienen formato de byte o palabra esto se diferencia al escribir W para
palabra y B para byte en el atributo del operando. El resultado de la instrucción
se carga en el registro destino.
•
Instrucción AND: El operando es A y la operación AND se realiza bit a bit
entre fuente y destino.
Ejemplo:
A
W
B,C ; AND entre registro B y registro C, formato de 16 bits.
El resultado se guarda en el registro C.
A B
en B.
•
10,B ; AND entre registro B y el número 10, el resultado se guarda
Instrucción NAND: Realiza la operación NAND entre la fuente y el destino el
resultado se guarda en el destino. El operando es AN. Tenga en cuenta que la
instrucción AN de bit es distinta a la AN de palabra: la AN de bit niega la
entrada, mientras que aquí se está negando el resultado de la AND.
Ejemplo:
•
AN
W
guarda en C.
7,C
;NAND entre el registro C y el número 7, el resultado se
AN
B,C
;NAND entre los resgistro B y C. El resultado en C.
W
Instrucción OR: Realiza la operación OR entre la fuente y el destino, el
resultado se almacena en el registro de destino.
CURSO DE PLC
LENGUAJES DE PROGRAMACIÓN
Lista de Instrucciones (IL)
Ejemplo: O
•
W
W
B,C
; C = NOT ( B OR C )
Instrucción EXOR: Realiza la EXOR entre el registro fuente y el de destino, en
este ultimo es almacenado en el resultado.
Ejemplo: XO
•
B,C.
Instrucción NOR: Efectúa la NOR entre el registro fuente y el registro destino,
el resultado se almacena en el registro destino.
Ejemplo: ON
•
5
W
B,C
; C= B EXOR C
Instrucción EXNOR: Realiza la EXNOR entre el registro fuente y el de
destino, el resultado se almacena en el registro destino.
Ejemplo: XON
W
B,C
; C= B EXOR C
En la siguiente tabla se ejemplifican algunos casos de las instrucciones
presentadas:
Función
Lógica
AND
NAND
OR
NOR
EXOR
EXNOR
•
Registro B
Registro C
1111
0000
1100 11 00
1010
1010
1010 1010
1010
1010
1010 1010
1010
1010
1010 1010
0100
0101
0110 0111
0100
0101
0110 0111
0000
0000
1111 0000
1111
0000
0000 1111
1111
1111
1111 0000
1111
1111
1111 0000
1001
1010
1011 1100
1001
1010
1011 1100
Instrucción
A
W B, C
AN
W B, C
O
W B, C
ON
W B, C
XO
W B, C
XON W B, C
Resultado
0000
0000
1100 0000
0101
1111
1111 0101
1111
1111
1111 1010
0000
0000
0000 0101
1101
1111
1101 1011
0010
0000
0010 0100
Instrucción de Comparación: Compara el destino con la fuente, el resultado
de la comparación se deduce de el estado de las banderas. El operando es
CPLA. En realidad, la comparación resta el operando destino menos el fuente,
sin cargar el resultado.
Las banderas son bits indicadores de la CPU asociados a su ALU, en la
siguiente tabla se listan las banderas que se encuentran en un PLC típico.
CURSO DE PLC
LENGUAJES DE PROGRAMACIÓN
Lista de Instrucciones (IL)
Bander
a
CY=1
CY=0
O=1
O=0
Z=1
Z=0
V= 1
V= 0
N=1
N=0
6
Símbolo Instrucción
Nombre y Función de la
de la
para consultar
Bandera
Bandera
la Bandera
Acarreo, se carga con el
A
CY
acarreo de la última
operación
aritmética
C
realizada.
AN
CY
CY= 1: Hubo acarreo.
CY= 0: No hubo acarreo.
Sobreflujo, Indica si la
A
O
última operación realizada
tuvo un desbordamiento.
O
O=
1:
Hubo
desbordamiento.
AN
O
O=
0:
No
hubo
desbordamiento.
Cero, Indica si el último
A
Z
resultado fue igual a cero.
Z= 1: El resultado fue
Z
cero.
AN
Z
Z= 0: El resultado fue
distinto de cero.
Verdadero, Almacena el
resultado de la última
instrucción
de
bit
realizada.
V
V= 1: El resultado fue
verdadero.
V= 0: El resultado fue
falso.
Negativo, indica el signo
A
N
del último resultado.
N= 1: El resultado es
N
negativo.
AN
N
N= 0: El resultado es
positivo.
Lo anterior quiere decir que primero se hace la comparación y después se
consultan las banderas para determinar cual es la relación de magnitud
entre los valores comparados.
CURSO DE PLC
LENGUAJES DE PROGRAMACIÓN
Lista de Instrucciones (IL)
7
A continuación, se presentan las equivalencias en lenguaje IL de los bloques
comparadores del lenguaje FBD.
Relación
M0 = 28
M0 < > 28
M0 > 28
M0 >= 28
M0 < 28
MO <= 28
•
L
L
CPLA
A
=
L
L
CPLA
AN
=
L
L
CPLA
AN
AN
=
L
L
CPLA
AN
=
L
L
CPLA
A
=
L
L
CPLA
A
O
=
IL
W
W
W
W
W
W
W
W
W
W
W
W
W
W
W
W
W
W
FBD
M0,A
28,B
B,A
Z
Q0.0
M0,A
28,B
B,A
Z
Q0.0
M0,A
28,B
B,A
N
Z
Q0.0
M0,A
28,B
B,A
N
Q0.0
M0,A
28,B
B,A
N
Q0.0
M0,A
28,B
B,A
N
Z
Q0.0
Instrucciones de Carga y Transferencia: Son utilizadas para copiar el
contenido de la fuente en el destino. La diferencia entre Carga y Transferencia
reside en que con la carga el destino es siempre un registro de la CPU y en la
Transferencia el la fuente es siempre un registro de la CPU.
CURSO DE PLC
LENGUAJES DE PROGRAMACIÓN
Lista de Instrucciones (IL)
8
Ejemplo:
L W
10,B ; carga el número 10 en el registro B.
T W
B,M0 ; carga en M0 el contenido del registro B.
•
Instrucciones para Temporizadores: Se dividen en tres grupos: Definición e
inicio
del temporizador, Reposición y Detención. Existe un Operando
específico de definición e inicio para cada tipo de temporizador (Vea la tabla
siguiente), por el contrario, los Operandos de Reposición (RT) y Detención
(TH) son comunes para todos los tipos de temporizadores.
TIPO DE
TEMPORIZADOR
Impulso
Impulso Memorizado
Retardo de Conexión
Retardo de Conexión
Memorizado
Retardo
de
Desconexión
SP
SPE
SR
EJEMPLO DE LA
SINTAXIS DE LA
INSTRUCCIÓN
SP
A, T1
SPE A, T1
SR
A, T1
SRE
SRE A, T1
OPERANDO
SF
SF
A, T1
Ejemplo: Analice las instrucciones IL necesarias para desarrollar el
temporizador equivalente en FBD.
TIPO DE
TEMPORIZAD
OR
Impulso
IL
A
I0.0
L W
t#20s,A
SP
A,T1
A
I0.1
TH
T1
A
I0.2
RT
T1
L W T1,A
A
T1
=
Q0.0
FBD
CURSO DE PLC
LENGUAJES DE PROGRAMACIÓN
Lista de Instrucciones (IL)
Impulso
Memorizado
Retardo de
Conexión
Retardo de
Conexión
Memorizado
Retardo de
Desconexión
A
I0.0
L W
t#20s,A
SPE A,T1
A
I0.1
TH
T1
A
I0.2
RT
T1
L W T1,A
A
T1
=
Q0.0
A
I0.0
L W
t#20s,A
SR
A,T1
A
I0.1
TH
T1
A
I0.2
RT
T1
L W T1,A
A
T1
=
Q0.0
A
I0.0
L W
t#20s,A
SRE A,T1
A
I0.1
TH
T1
A
I0.2
RT
T1
L W T1,A
A
T1
=
Q0.0
A
I0.0
L W
t#20s,A
SF
A,T1
A
I0.1
TH
T1
A
I0.2
RT
T1
L W T1,A
A
T1
9
CURSO DE PLC
LENGUAJES DE PROGRAMACIÓN
Lista de Instrucciones (IL)
=
•
10
Q0.0
Instrucciones para Contadores: Los operandos son:
¾ Definición Contador (SCY).
¾ Conteo Ascendente (CU).
¾ Conteo Descendente (CD).
¾ Reponer Contador (RCY).
Ejemplo: En la tabla se muestran ejemplos de la sintaxis de las instrucciones.
IL
A
CU
A
CD
A
L
SC
A
RC
L
T
L
A
=
•
W
W
W
W
FBD
I0.0
C1
I0.1
C1
I0.2
100,A
A,C1
I0.3
C1
C1,A
A,M0
C1,A
C1
Q0.0
Instrucciones Aritméticas: El resultado de las operaciones aritmética se
obtiene en formato de palabra o byte. La fuente y el destino son siempre
registrados en la CPU. Las operaciones son:
¾
¾
¾
¾
¾
¾
Suma.
Suma con Acarreo.
Resta.
Resta con Préstamo.
Multiplicación.
División.
CURSO DE PLC
LENGUAJES DE PROGRAMACIÓN
Lista de Instrucciones (IL)
Ejemplo:
Operación
Suma
Suma con
Acarreo
Resta
Operand
o
Ejemplo
Descripción
ADD B
B,A
ADD W
B,A
ADC B
C,A
ADC W
C,A
SUB B
D,A
SUB W
B,A
ADD
ADC
SUB
11
CURSO DE PLC
LENGUAJES DE PROGRAMACIÓN
Lista de Instrucciones (IL)
Operación
Resta con
Préstamo
Multiplicación
División
Operand
o
Ejemplo
Descripción
SBB B
C,A
SBB W
D,A
MUL B
D,A
MUL W
B,A
DIV
B
D,A
DIV
W
C,A
SBB
MUL
DIV
12
CURSO DE PLC
LENGUAJES DE PROGRAMACIÓN
Lista de Instrucciones (IL)
•
13
Instrucciones de Control de Flujo: Son de salto y llamada.
¾ Instrucciones de Salto: Se conforman con Operando y Destino. El Destino es
el símbolo que representa el lugar donde se debe saltar, si la condición de
salto se cumple. En la tabla se relacionan las diversas instrucciones de salto y
las condiciones a las que obedecen.
Tipo de Salto
Operando
Incondicional
Si Verdadero
Si Falso
Si Carry
Si No hay Carry
Si Sobreflujo
Si No hay Sobreflujo
Si Negativo
Si Positivo
Si es cero
Si es Diferente de cero
Si
Mayor
que
(aritmética
complemento a 2 con signo)
Si Menor Que o Cero (aritmética
complemento a 2 con signo)
Menor Que o Cero (aritmética sin
signo)
Mayor Que (aritmética sin signo)
JP
JPC
JPCI
JPCY
JPCN
JPO
JPON
JPM
JPP
JPZ
JPN
JPAG
JPMZ
Condición de
Banderas
V= 1
V= 0
CY= 1
CY= 0
O= 1
O= 0
N= 1
N= 0
Z= 1
Z= 0
Z=0 y ((O=0 y N=0) o
N=1))
(Z=1 o N=1) y (O=0 y
(N=0 o O=1))
JPLG
Z=0 y CY=0
JPCZ
Z=1 o CY= 1
¾ Instrucciones de Llamada:
™ Llamadas de Módulo: Son incondicional CM ó condicional CMC. El campo
de destino contiene el nombre del módulo de programa al cual se llama. A
este grupo agregamos las instrucciones de fin de módulo, nombradas
también de retorno. Si un módulo de programa fue llamado por otro, termina
con una instrucción de fin de módulo.
Ejemplo:
CM
CMC
EM
EMC
FC0
FC0
; llama incondicionalmente al módulo FC0
; llama al módulo FC0 sólo si V=1 (verdadero)
; retorna de manera incondicional
; retorna si V=1 (verdadero)
CURSO DE PLC
LENGUAJES DE PROGRAMACIÓN
Lista de Instrucciones (IL)
Ejemplo de Aplicación:
Escriba la solución al problema del Elevador de Piezas, visto en una lección
anterior, en lenguaje IL.
;AVANCE
A
A
A
S
-S0
-S1
-S3
-Y1
AN
A
A
S
-M0_0
-S2
-S3
-Y2
;BIT DE ESTADO
A
S
-S4
-M0_0
A
A
R
-S1
-S3
-M0_0
;RETROCESO
A
A
A
R
-M0_0
-S2
-S3
-Y1
A
R
EM
-S4
-Y2
14
CURSO DE PLC
LENGUAJES DE PROGRAMACIÓN
Lista de Instrucciones (IL)
15
Compárela ahora con la solución en lenguaje de contactos:
Reflexiones Sobre lo Visto:
El lenguaje IL permite un mayor acceso a los recursos del sistema;
basándose en él puede hacer uso de las operaciones aritméticas, lo anterior
no era posible en los 3 lenguajes estudiados previamente.
Aquí sólo se han presentado las instrucciones IL más importantes. Sin
embargo, consideramos que forman una base sólida para la comprensión
del lenguaje; el estudiante podrá hacer una profundización de
conocimientos al estudiar el lenguaje para el tipo de PLC que disponga a
mano.
Descargar
Colecciones de estudio