PROGRAMACION AVANZADA DE PLCs

Download Report

Transcript PROGRAMACION AVANZADA DE PLCs

PROGRAMACIÓN
AVANZADA DE PLC’s
Soporte Técnico
TRATAMIENTO
NUMERICO
Soporte Técnico
CONCEPTO DE REGISTRO (CANAL)
•
•
DISPOSITIVO CAPAZ DE ALMACENAR UNA
INFORMACION DIGITAL (1s y/o 0s)
EN LOS PLC’s DE OMRON TODOS LOS
REGISTROS SON DE 16 Bits (POSICIONES)
15 14 13 12
11 10 9 8
7 6 5 4
msb
más significativo
Soporte Técnico
3 2 1 0
Nº BIT
lsb
(PESO)
menos significativo
Omron03A - 3 -
SISTEMAS DE NUMERACION
•
•
•
LAS VARIABLES, EN GENERAL, PUEDEN EXPRESARSE O
REPRESENTARSE SEGÚN DISTINTOS SISTEMAS DE
NUMERACIÓN
EL SISTEMA HABITUAL QUE SE EMPLEA DE FORMA COTIDIANA
ES EL SISTEMA DIGITAL, QUE UTILIZA LOS SÍMBOLOS DEL 0 AL 9.
HAY OTROS SISTEMAS DE NUMERACION QUE, AL TRABAJAR
CON MÁQUINAS Y CON COMUNICACIONES, NOS APARECERÁN
CONSTANTEMENTE
»
»
»
»
»
BINARIO
BCD (BINARIO CODIFICADO DECIMAL)
HEXADECIMAL
COMA FLOTANTE
ASCII
Soporte Técnico
Omron03A - 4 -
SISTEMAS DE NUMERACION
• EN GENERAL,CUANDO UNA CANTIDAD
(Nª ENTERO) SE REPRESENTA
MEDIANTE UN SISTEMA DE
NUMERACIÓN DE BASE B, QUIERE
DECIR :
NB=XXXX
N
N
1
0
1
N
=
X
B
+
X
B
+
.
.
.
.
.
.
.
.
+
X
B
+
X
B
0
1
N
N
1
B
Soporte Técnico
Omron03A - 5 -
CODIGO BINARIO
• CODIGO BINARIO
» UTILIZA LOS SIMBOLOS (1 y 0) PAEA
REPRESENTAR CUALQUIER VALOR
» LA FORMULA DE CONVERSION DE UN
NUMERO DECIMAL A UN NUMERO BINARIO
ES LA SIGUIENTE :
N
1
N
0
N
º
D
E
C
I
M
A
L
=
Z
x
2
+
Z
x
2
+
.
.
.
.
.
.
.
+
Z
x
2
N
1
0
N
» DONDE ZN ES UNO DE LOS 2 VALORES EN
BINARIO (0 ó 1)
Soporte Técnico
Omron03A - 6 -
CODIGO BINARIO
•
CODIGO BINARIO
» EJEMPLO: LA REPRESENTACION DEL Nº12 EN BINARIO
SERÁ :
3
2
1
0
1
x
2
+
1
x
2
+
0
x
2
+
0
x
2
=
1
2
1
1
0
0
=
1
2
» EJEMPLO : REPRESENTAR EN BINARIO LOS Nº DECIMALES
16 Y 45.
1
5
3
2
0
4
16 
45 
Soporte Técnico
2
1
2 2 2 2 2
1 0 0 0 0
0 1 1 0 1
Omron03A - 7 -
CODIGO HEXADECIMAL
•
CODIGO HEX
» CODIGO MEDIANTE EL CUAL CADA NUMERO DEL SISTEMA
»
DECIMAL (0..9) SE REPRESENTA EN BINARIO (0,1).
LA CONVERSION DIRECTA ES LA SIGUIENTE :
HEXADECIMAL
Soporte Técnico
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
BINARIO
Omron03A - 8 -
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
CODIGO BCD
•
CODIGO BCD
» CODIGO MEDIANTE EL CUAL CADA NUMERO DEL SISTEMA
»
DECIMAL (0..9) SE REPRESENTA EN BINARIO (0,1).
LA CONVERSION DIRECTA ES LA SIGUIENTE :
DECIMAL
Soporte Técnico
BINARIO(BCD)
0
0000
1
0001
2
0010
3
0011
4
0100
5
0101
6
0110
7
0111
8
1000
9
1001
Omron03A - 9 -
Números en COMA FLOTANTE
•
COMA FLOTANTE
23 22
31 30
21
………...
2
1
0
...
Signo
Mantisa
Mantisa
Exponente
e
1
2
7
S
i
g
n
o
2
3
N
º
D
E
C
I
M
A
L
=
(
1
)
x
2
(
1
+
M
a
n
t
i
s
a
x
2
)
» Signo (s)  1: negativo , 0: positivo (bit 31)
» Mantisa (M)  La mantisa incluye 23 bits (bit 0.. 22).
»
Representa la parte derecha de número decimal.
Exponente (e)  El exponente incluye 8 bits (bit 23..30).
Soporte Técnico
Omron03A - 10 -
Números en COMA FLOTANTE
•
Se pueden expresar los números:
•
•
•
•
•
•
•
- (e=255, M=0, s=0)
-3.402823·1038 ÷ -1.175494·10-38
0 (e=0)
1.175494·10-38 ÷ 3.402823·1038
 (e=255, M=0, s=1)
NaN (e=255, M0): Número no válido.
No es necesario conocer el formato de estos
números, sólo que ocupan 32 bits.
Soporte Técnico
Omron03A - 11 -
Precauciones COMA FLOTANTE
•
•
•
•
Las operaciones indeterminadas 0.0/0.0, /,  dan como resultado NaN.
Overflow (±) y Underflow (±0). Es más peligroso
el Overflow al convertir el resultado a entero
(binario con signo).
Los decimales se truncan al convertirlos a entero
(binario con signo).
Cualquier operación con un NaN como operando
da como resultado NaN.
Soporte Técnico
Omron03A - 12 -
IEEE754
• Expresan números reales en 32 bits
conforme al estándar IEEE754:
• (-1)signo·2exponente-127·(1+Mantisa·2-23)
• 1#10000000#11000000000000000000000
•
•
•
•
Signo: (-1)1= -1
Exponente: 2128-127=21=2
Mantisa: 1+6291456·2-23=1+0.75=1.75
Resultado: -1.75·2= -3.5
Soporte Técnico
Omron03A - 13 -
CODIGO ASCII
•
•
•
•
CODIGO INTERNACIONAL CUYAS SIGLAS
RESPONDEN A AMERICAN STANDAR CODE
INFORMATION INTERCHANGE.
HOY UTILIZADO EN COMUNICACIONES E
INTERCAMBIO DE DATOS.
EN ESTE CODIGO SE UTILIZAN 8 BIT’s PARA
LA REPRESENTACION.
Ejemplo :
A = 41 = 0100 0001
5 = 35 = 0011 0101
> = 3E = 0011 1110
Soporte Técnico
Omron03A - 14 -
Tipos de variables en CX-P
BOOL
Variable de un bit, los posibles estados son 0-OFF y 1-ON.
UINT
Variable de una palabra en binario sin signo.
INT
Variable de una palabra en binario con signo.
UINT_BCD
Variable de una palabra en formato BCD (4 dígitos).
UDINT
Variable de dos palabras en binario sin signo.
DINT
Variable de dos palabras en binario con signo..
UDINT_BCD
Variable de dos palabras en formato BCD (8 dígitos).
ULINT
Variable de cuatro palabras en binario sin signo.
LINT
Variable de cuatro palabras en binario con signo.
ULINT_BCD
Variable de cuatro palabras en formato BCD (16 dígitos).
Soporte Técnico
Omron03A - 15 -
Tipos de variables en CX-P
REAL
NUMBER
CHANNEL
Soporte Técnico
Variable de 2 palabras (32Bit) con formato en coma flotante (formato
IEEE). Este formato se utiliza para las operaciones en coma flotante del
del CVM1-V2 y del CS1.
Constante numérica en formato decimal. El valor puede ser con signo o
en coma flotante. No se trata de una variable, sino de un valor numérico
a utilizar por la función.
Variable de una palabra. Se utiliza para compatibilizar con anteriores
programas y hace referencia a cualquier variable no booleana. CX-P no
puede chequear si la variable está siendo utilizada para valores en BCD
o en binario.
Omron03A - 16 -
COMPARACIÓN
y
MOVIMIENTO
Soporte Técnico
CMP, FUN(20)/1 (Serie C y CS1)
 LA INSTRUCCIÓN CMP REALIZA LA COMPARACIÓN ENTRE DOS DATOS DE 16 BIT,
CONTENIDOS EN DOS CANALES.
EL RESULTADO DE LA COMPRACIÓN SOLO SE REFLEJA EN UNOS RELES
ESPECIALES DE ”<“, “=“, o “>”.
“P_LT” Indicador de Menor Que (LT)
“P_EQ” Indicador de iguales (EQ)
“P_GT” Indicador de Mayor Que (GT)

 LAS ÁREAS DE DATOS UTILIZABLES EN LA COMPARACIÓN SON :
— S:#, IR, SR, HR, TIM, CNT
— D: IR, HR
Soporte Técnico
Omron03A - 18 -
CMP, FUN(20)/2
 SEGÚN LOS VALORES QUE TENGAN LOS DATOS A COMPARAR Cp1 Y Cp2 SE
TIENEN LOS SIGUIENTES CASOS:
DATOS
RESULTADO
P_LT
P_EQ
P_GT
Cp1 < Cp2
Menor
1
0
0
Cp1 = Cp2
Igual
0
1
0
Cp1 > Cp2
Mayor
0
0
1
Soporte Técnico
Omron03A - 19 -
EJEMPLO CMP(20)/1, ALARMA DE RELOJ
 LAS HORAS MINUTOS Y SEGUNDOS ESTAN PREVIAMENTE
PROGRAMADOS EN TRE CONTADORES C2, C1 Y C0.
 CANDO SE ALCANCE LAS HORAS, MINUTOS Y SEGUNDOS AJUSTADOS POR
PROGRAMA, SE ACTIVARÁ LA SALIDA “2.00”.
 LA SALIDA SE DESACTIVARÁ AL PULSAR LE ENTRADA DE REPOSICIÓN “0.04”.
Soporte Técnico
Omron03A - 20 -
EJEMPLO CMP(20)/2, ALARMA DE RELOJ
 SE PUEDE PROGRAMAR UNA SERIE DE COMPARACIONES EN CADENA.
Soporte Técnico
Omron03A - 21 -
COMPARACIONES EN LINEA(CS1)/2
• Comparan dos datos S1 y S2.
• Los datos a comparar pueden ser:
• Formato: con o sin signo.
• Longitud: de 1 (S1 con S2) ó 2 (S1 y S1+1 con S2 y
S2+1) palabras.
• Son instrucciones intermedias: Se pueden
conectar como LD, AND y OR.
Símbolo & Opciones
S1
S2
Soporte Técnico
Omron03A - 22 -
COMPARACIONES EN LINEA (CS1)/1
•Hay disponibles un total de 24 instrucciones de
comparación. Estas pueden utilizar varias combinaciones de
símbolos y opciones. Si no se especifican opciones, la
comparación será para un sólo canal sin signo.
Los tipos básicos son:
=
Igual
<>
Diferente
<
Menor
<=
Menor o igual
>
Mayor
>=
Mayor o igual
Cada tipo puede tener las opciones:
S
L
SL
(Ejemplos: LD=(300), #0, D0
Soporte Técnico
SIN signo
Signo
Doble Longitud
Doble Longitud con Signo.
AND=S(302),-2, D0 )
Omron03A - 23 -
COMPARACIONES EN LINEA(CS1)/3
Símbolo
=(300)
=L(301)
=S(302)
=SL(303)
<>(305)
<>L(306)
<>S(307)
<>SL(308)
<(310)
<L(311)
<S(312)
<SL(313)
<=(315)
<=L(316)
<=S(317)
<=SL(318)
>(320)
>L(321)
>S(322)
<SL(323)
>=(325)
>=L(326)
>=S(327)
>=SL(328)
Soporte Técnico
Formato
-: Sin signo
-: Sin signo
S: Con signo
S: Con signo
-: Sin signo
-: Sin signo
S: Con signo
S: Con signo
-: Sin signo
-: Sin signo
S: Con signo
S: Con signo
-: Sin signo
-: Sin signo
S: Con signo
S: Con signo
-: Sin signo
-: Sin signo
S: Con signo
S: Con signo
-: Sin signo
-: Sin signo
S: Con signo
S: Con signo
Longitud
-: 1 palabra
L: 2 palabras
-: 1 palabra
-: 2 palabras
-: 1 palabra
L: 2 palabras
-: 1 palabra
-: 2 palabras
-: 1 palabra
L: 2 palabras
-: 1 palabra
-: 2 palabras
-: 1 palabra
L: 2 palabras
-: 1 palabra
-: 2 palabras
-: 1 palabra
L: 2 palabras
-: 1 palabra
-: 2 palabras
-: 1 palabra
L: 2 palabras
-: 1 palabra
-: 2 palabras
Omron03A - 24 -
.....COMPARACIONES EN LINEA (CS1)
CON EL CS1 SE PUEDE PROGRAMAR UNA SERIE DE COMPARACIONES EN
LINEA QUE DEN COMO RESULTADO LA ACTIVACIÓN DE LA ALARMA.

ANTES: CMP(020) SERIE C
AHORA: CS1
Soporte Técnico
Omron03A - 25 -
MOV, FUN(21)
 LA INSTRUCCIÓN MOV REALIZA EL MOVIMIENTO DE UN DATO DE 16 BIT, DESDE
UN CANAL A OTRO.
 EL CONTENIDO DEL CANAL FUENTE S SE TRANSFIERE AL CANAL DESTINO D.
 LAS ÁREAS DE DATOS UTILIZABLES EN LA TRANSFERENCIA SON :
— S:Fuente: CIO, W, H, A, T, C, D, E, E?_, @D, @E, @E?_, *D, *E, *E?_, #, DR, ,IR
— D:Destino: CIO, W, H, A, T, C, D, E, E?_, @D, @E, @E?_, *D, *E, *E?_, DR, ,IR
Soporte Técnico
Omron03A - 26 -
EJEMPLO. AJUSTE DEL RELOJ A LAS 14:30:00
 AL PULSAR EL ENTRADA 0.05 SE PRODUCE EL MOVIMIENTO DE LOS DATOS
00, 30 Y 14 A LOS CONTADORES C0, C1 y C2.
Soporte Técnico
Omron03A - 27 -
Direccionamientos
Addessing
Soporte Técnico
Direccionamientos (Serie C y CS1)
• Existen varios tipos de direccionamientos:
» Inmediato (#, &)
» Directo (CIO, W, H, A, T, C, D, E, En_)
» Indirecto (D, E, En_) sustituye a IEMS(-)
• Dirección en BCD (*D, *E, *En_)
• Dirección en Binario (@D, @E, @En_)
» Indirecto Indexado (IR)
•
•
•
•
,IR0
+234,IR0
DR0,IR0
,IR0++
Soporte Técnico
Omron03A - 29 -
DIRECCIONAMIENTO INDIRECTO
Cuando para un operando se especifica el área de DM,
se puede utilizar una dirección indirecta.

– Para diferenciar el direccionamiento de DM indirecto
se coloca un asterisco delante de DM : *DM
Cuando se especifica una dirección indirecta de DM, el
canal DM designado contendrá la dirección del canal DM
que contiene el dato que se utilizará como operando de la
instrucción.

Cuando se utilice direccionamiento indirecto, la dirección
del canal deseado debe estar en BCD y debe especificar
un canal comprendido en área de DM.

Soporte Técnico
Omron03A - 30 -
DIRECCIONAMIENTO INDIRECTO
Normalmente la variable especificada por una cierta
instrucción es tal que la instrucción opera con el dato
especificado en la variable especificada.

TIM00
DM0011
#0432
DM0011
EN ESTE CASO SV = 432
El direccionamiento indirecto permite especificar un dato
por la dirección de DM donde ése dato está contenido (la
dirección es la variable contenida).

TIM00
*DM0011
#0432
EN ESTE CASO SV = 150
DM0432
Soporte Técnico
Omron03A - 31 -
DM0011
#0150
DM0432
DIRECCIONAMIENTO INDIRECTO
Ejemplo:
Canal
Contenido
MOV(21)
DM 0000
4C59
*DM 0001
DM 0001
1111
DM 0002
F35A
DM 1111
5555
DM 1112
2506
DM 1113
D541
LR 00
Dirección
indirecta
Si se designa *DM 0001 como primer operando y
LR 00 como segundo operando de MOV(21), los
contenidos de DM0001 son 1111 y DM 1111
contiene 5555, el valor 5555 será movido a LR 00.
Soporte Técnico
Omron03A - 32 -
Indica
DM 1111.
5555 movido
a LR 00.
Direccionamiento Indirecto de DMs (CS1)
 Los DMs se pueden direccionar indirectamente de dos formas:
1) Direccionamiento en Modo-Binario (@D). Se puede direccionar
todo el área de DMs (D00000 a D32767) con los valores en
hexadecimal 0000 a 7FFF.
@D00100
0100
D00256
Dirección que se utiliza
2) Direccionamiento en Modo-BCD (*D). En este modo sólo parte
del área de DMs (D00000 a D09999) puede ser direccionada
indirectamente con los valores BCD de 0000 a 9999.
*D00100
0100
D00100
Dirección que se utiliza
Soporte Técnico
Omron03A - 33 -
Ejemplos
MOV(21)
&12
W000
Escribe C (12 traducido a binario) en W000
Inmediato traducido a binario
Directo
MOV(21)
#1A34
W000
Escribe 1A34 binario en W000
Inmediato binario
Directo
MOV(21)
W000
W001
Escribe el contenido de W000 en W001
Directo
Directo
MOV(21)
#1A
*D00000
Escribe 1A en la dirección(BCD)indicada en D00000
Inmediato
Indirecto BCD
Soporte Técnico
Omron03A - 34 -
Ejemplos
MOV(21)
W000
@D00000
Escribe el contenido de W000 en la
dirección (Binaria) indicada en D00000
Directo
Indirecto Binario
MOV(21)
#1A
,IR0
Escribe 1A en la dirección indicada en IR0
Inmediato
Indexado
MOV(21)
#1A
+23,IR0
Escribe 1A en la dirección indicada en (IR0+23)
Inmediato
Indexado
MOV(21)
#1A
DR0,IR0
Escribe 1A en la dirección indicada en (IR0+DR0)
Inmediato
Indexado
Soporte Técnico
Omron03A - 35 -
Ejemplos
MOV(21)
#1A
,IR0+
MOV(21)
#1A
,IR0++
MOV(21)
#1A
,-IR0
MOV(21)
#1A
,--IR0
Soporte Técnico
Escribe 1A en la dirección indicada en IR0
y aumenta IR0 una unidad
Inmediato
Indexado
Escribe 1A en la dirección indicada en IR0
y aumenta IR0 dos unidades
Inmediato
Indexado
Escribe 1A en la dirección indicada en (IR0-1)
y disminuye IR0 una unidad
Inmediato
Indexado
Escribe 1A en la dirección indicada en (IR0-2)
y disminuye IR0 dos unidades
Inmediato
Indexado
Omron03A - 36 -
DIRECCIONAMIENTO INDIRECTO
EJEMPLO
ALMACENAR LA TEMPERATURA EN UN HORNO
CADA 15 SEG. Y DURANTE 2 HRS., TIEMPO DE
DURACIÓN DEL PROCESO.
DATOS
 Tº ENTRADA ANALÓGICA: CANAL 101
 INICIO DATOS:
DM 0001
Soporte Técnico
Omron03A - 37 -
CONVERSION
DE FORMATO DE DATOS
Soporte Técnico
BIN(023) - BCD a Binario
•Convierte el contenido BCD de S a su equivalente en binario y lo envía a R. Sólo
cambia el contenido de R, el contenido de S permanece inalterable.
Rango:
S:Canal fuente: CIO, W, H, A, T, C, D, E, E?_, @D @E, @E?_, *D, *E, *E?_, DR, ,IR
R: Canal de resultado:CIO, W, H, A, T, C, D, E, E?_, @D @E, @E?_, *D, *E, *E?_, DR, ,IR
Soporte Técnico
Omron03A - 39 -
BCD(024) - Binario a BCD
•BCD(24) convierte el contenido binario (hexadecimal) de S a su equivalente en
BCD y lo envía a R. Sólo cambia el contenido de R; el contenido de S permanece
inalterable.
Rango:
S:Canal fuente: CIO, W, H, A, T, C, D, E, E?_, @D @E, @E?_, *D, *E, *E?_, DR, ,IR
R: Canal de resultado:CIO, W, H, A, T, C, D, E, E?_, @D @E, @E?_, *D, *E, *E?_, DR, ,IR
Soporte Técnico
Omron03A - 40 -
SIGN(600)-(CS1)
• Convierte un valor de 16 bits, S, a su
equivalente de 32 bits binario con signo, R.
• S: Palabra fuente de 16 bits.
• R: Primera palabra del resultado.
8000  FFFF 8000
7000  0000 7000
SIGN(600)
S
R
Soporte Técnico
@SIGN(600)
S
R
Omron03A - 41 -
BINS(470) -(CS1)
• Convierte una palabra de BCD con signo
S, a binario con signo R. La palabra de
control indica el formato del signo en BCD.
• C: Palabra de control: 0, 1, 2 ó 3
• S: Palabra en BCD.
• R: Palabra en binario.
BINS(470)
C
S
R
Soporte Técnico
@BINS(470)
C
S
R
Omron03A - 42 -
BINS(470) - (CS1)
C=0000 (-999 a 999)
000 1 xxxx xxxx xxxx
El bit 12 de S indica el signo (1 negativo).
Los bits 13 a 15 deben ser 0.
C=0001 (-7999 a 7999)
1 xxx xxxx xxxx xxxx
El bit 15 de S indica el signo (1 negativo).
C=0002 (-999 a 9999)
F,0-9 xxxx xxxx xxxx
El signo se indica en S: F negativo o 0-9 positivo
Los valores A-E dan error.
C=0003 (-1999 a 9999)
FA,0-9 xxxx xxxx xxxx
Soporte Técnico
El signo se indica en S: F=- y A=-1 o 0-9 positivo
Los valores B-E dan error.
Omron03A - 43 -
BISL(472) - (CS1)
• Convierte un dato de 32 bits BCD con
signo (S+1 S) a binario con signo de 32
bits (R+1 R). C indica el formato de signo
en BCD.
• C: Palabra de control: 0, 1, 2 ó 3
• S: Primera palabra de BCD.
• R: Primera palabra en binario.
BISL(472)
C
S
R
Soporte Técnico
@BISL(472)
C
S
R
Omron03A - 44 -
BISL(472) - (CS1)
C=0000 (-999 9999 a 999 9999)
000 1 xxxx xxxx xxxx
El bit 12 de S+1 indica el signo (1 negativo).
Los bits 13 a 15 deben ser 0.
C=0001 (-7999 9999 a 7999 9999)
1 xxx xxxx xxxx xxxx
El bit 15 de S+1 indica el signo (1 negativo).
C=0002 (-999 9999 a 9999 9999)
F,0-9 xxxx xxxx xxxx
El signo se indica en S+1: F negativo o 0-9 positivo
Los valores A-E dan error.
C=0003 (-1999 9999 a 9999 9999)
FA,0-9 xxxx xxxx xxxx
Soporte Técnico
El signo se indica en S+1: F=- y A=-1 o 0-9 positivo
Los valores B-E dan error.
Omron03A - 45 -
BCDS(471) - (CS1)
• Convierte una palabra de binario con signo
a BCD con signo. C indica el formato de
signo en BCD.
• C: Palabra de control: 0, 1, 2 ó 3
• S: Palabra en binario.
• R: Palabra en BCD.
• Esta es la instrucción inversa a BINS(470)
BCDS(471)
C
S
R
Soporte Técnico
@BCDS(471)
C
S
R
Omron03A - 46 -
BDSL(473) - (CS1)
• Convierte un dato de binario con signo 32
bits a BCD con signo 32 bits. C indica el
formato de signo en BCD.
• C: Palabra de control: 0, 1, 2 ó 3
• S: Palabra en binario.
• R: Palabra en BCD.
• Esta es la instrucción inversa a BINS(470)
BDSL(473)
C
S
R
Soporte Técnico
@BDSL(473)
C
S
R
Omron03A - 47 -
Limitaciones BCDS y BDSL - (CS1)
• En BCDS el dato S está limitada según C:
•
•
•
•
C=0
C=1
C=2
C=3
FC19 a FFFF y 0000 a 03E7
F0C1 a FFFF y 0000 a 1F3F
FC19 a FFFF y 0000 a 270F
F831 a FFFF y 0000 a 270F
• En BDSL el dato S está limitada según C:
•
•
•
•
C=0
C=1
C=2
C=3
Soporte Técnico
FF67 6981 a FFFF FFFF y 0 a 0098 967F
FB3B 4C01 a FFFF FFFF y 0 a 04C4 B3FF
FF67 6981 a FFFF FFFF y 0 a 05F5 E0FF
FECE D301 a FFFF FFFF y 0 a 05F5 E0FF
Omron03A - 48 -
OPERACIONES
ARITMETICAS
Soporte Técnico
STC / CLC, FUN 40 / 41
 FUNCIÓN: ESTAS INSTRUCCIONES GESTIONAN EL FLAG DE ACARREO,
O FLAG CY.
EL FLAG CY SE UTILIZA EN LAS OPERACIONES MATEMÁTICAS, PARA
DETECTAR:
– EXISTENCIA DE OVERFLOW EN EL RESULTADO DE UNA SUMA
(ADD)
– EXISTENCIA DE RESULTADO NEGATIVO EN UNA SUBSTRACCIÓN
(SUB)
LD
0000
STC(40)
LD NOT
0000
CLC(41)
Soporte Técnico
LD
1904
OUT
1000
Omron03A - 50 -
SUMA BDC: ADD, FUN(30) /1 (Série C)
 LA INSTRUCCIÓN ADD EJECUTA LA SUMA ENTRE DOS DATOS DE 16 BIT
(CANALES Y/O CONSTANTES) EN FORMATO BCD
 AL RESULTADO SE LE SUMA EL ACARREO SUMANDO 1 SI CY= ON
 LOS PARÁMETROS DE LAS INSTRUCCIONES SON 3:
– A1,A2 = SUMANDOS (#, IR, SR, HR, TIM, CNT)
–R=
RESULTADO (IR, HR) = A1+A2+CY
LD
0000
STC(40)
A1
A2
ADD(30)
HR00
#0001
HR00
R
Soporte Técnico
Omron03A - 51 -
SUMA BDC: ADD, FUN(30) /2 (Série C)
 EN EL CASO DE ACARREO (CY = 1), LA SUMA DE LOS DOS SUMANDOS
HA SUPERADO EL LÍMITE 9999. EL RESULTADO EFECTIVO ES ENTONCES
10000+R
 EN EL CASO DE SUMA CON 8 O MÁS CIFRAS BCD, (SUMA COMBINADA)
SE DEBERÁ RESETEAR CY SÓLO PARA LA PRIMERA SUMA.
 SI EL RESULTADO DE LA OPERACIÓN SUMA ES = 0, ENTONCES EL FLAG
EQ = 1
 SI LOS SUMANDOS NO ESTÁN EN FORMATO BCD, LA OPERACIÓN NO SE
EJECUTA Y ENTONCES ER = 1
Soporte Técnico
Omron03A - 52 -
RESTA BDC: SUB, FUN(31) /1 (Série C)
 LA INSTRUCCIÓN SUB EJECUTA LA SUBSTRACCIÓN DE DOS DATOS DE
16 BIT EN FORMATO BCD
 AL RESULTADO SE LE RESTA EL ACARREO O BIEN SE LE SUMA -1 SI
CY = ON
 LOS PARÁMETROS DE LA INSTRUCCIÓN SON 3:
– Mi = MINUENDO (#, IR, SR, HR, TIM, CNT)
– Su = SUSTRAENDO (#, IR, SR, HR, TIM, CNT)
– R = RESULTADO (IR, HR) = Mi - Su - CY
LD
0000
STC(40)
Mi
SUB(31)
Su
R
Soporte Técnico
Omron03A - 53 -
#0100
00
05
RESTA BDC: SUB, FUN(31) /2 (Série C)
 SEGÚN LOS VALORES QUE TENGAN Mi Y Su, SE TIENEN LOS SIGUIENTES
CASOS:
DATOS
RESULTADO
CY
EQ
Mi > Su
R= Mi - Su
0
0
0
1
1
0
Mi = Su
Mi < Su
R= 0
R= Mi + (10000-Su)
 SI Mi Y Su NO ESTÁN EN EL FORMATO BCD, LA OPERACIÓN NO SE
EJECUTA, Y ER = 1
Soporte Técnico
Omron03A - 54 -
EJEMPLO DE PROGRAMACIÓN (Série C)
SUMA DE DATOS DE HASTA 8 DÍGITOS
 APLICACIÓN: SE TRATA DE SUMAR DOS DATOS QUE PUEDEN TENER UNA
LONGITUD DE HASTA 8 DÍGITOS.
 ESTE PROGRAMA PUEDE LLEVARSE A CABO UTILIZANDO DIRECTAMENTE LA
INSTRUCCIÓN DE SUMA DE DOBLE LONGITUD PERO LO HAREMOS USANDO LA
INSTRUCCIÓN ADD NORMAL.
 LOS DATOS A SUMAR SON LOS SIGUIENTES:
– DATO A:
– DATO B:
4 DÍGITOS MAYORES
DM1
4 DÍGITOS MENORES
DM0
4 DÍGITOS MAYORES
DM3
4 DÍGITOS MENORES
DM2
 EL RESULTADO SE GUARDARÁ EN :
– DÍGITO NUM 9
– 4 DÍGITOS MAYORES
– 4 DÍGITOS MENORES
DM6
DM5
DM4

El programa debe poder detectar si alguno de los datos A o B no está en
formato
BCD. Utilizar el CARRY en las instrucciones suma.
Soporte Técnico
Omron03A - 55 -
MULTIPLICACIÓN BCD: MUL, FUN(32) (Série C)
 FUNCIÓN: MULTIPLICA EL CONTENIDO DE LOS DATOS ESPECIFICADOS
EN LA INSTRUCCIÓN (EN BCD) Y EL RESULTADO SE TRANSFIERE A UN
REGISTRO.
MUL
A
B
A, B = CANALES /CONSTANTES
R=
C
Soporte Técnico
Omron03A - 56 -
REGISTRO RESULTADO
MULTIPLICACIÓN BCD: MUL, FUN(32) (Série C)
3300
MUL
10
#0021
DM100
0034
CH 10
X
0021
=
714
Soporte Técnico
DM100= (CH 10) X 21
Omron03A - 57 -
DIVISIÓN BCD: DIV, FUN(33) (Série C)
 FUNCIÓN: DIVIDE EL CONTENIDO DE LOS DATOS ESPECIFICADOS EN LA
INSTRUCCIÓN (EN BCD) Y EL RESULTADO SE TRANSFIERE A DOS REGISTROS
(COCIENTE Y RESTO).
DIV
A=
DIVIDENDO
A
B=
DIVISOR
R=
COCIENTE
R+1 =
RESTO
B
C
Soporte Técnico
A, B = CANAL / CONSTANTE
Omron03A - 58 -
DIVISIÓN BCD: DIV, FUN(33) (Série C)
3300
DIV
10
#4
LR10
133
CH 10
(CH 10) = (LR 10) X 4 + LR 11
4
Soporte Técnico
33
LR 10
1
LR 11
Omron03A - 59 -
OPERACIONES ARITMETICAS (CS1)/1
+(400), +L(401), +C(402), +CL(403) - Suma Binaria
+B(404), +BL(405), +BC(406), +BCL(407) - Suma BCD
+F(454) - Suma Coma Flotante
+D(845) - Doble Suma en coma flotante
-(410), -L(411), -C(412), -CL(413) - Resta Binaria
-B(414), -BL(415), -BC(416), -BCL(417) - Resta BCD
-F(455) - Resta Coma Flotante
-D(846) - Resta en coma flotante de doble precisión
Soporte Técnico
Omron03A - 60 -
+(400) y +B(404)
•
•
Suma 2 números binarios o BCD de 16 bits.
• Au: Palabra del primer sumando.
• Ad: Plabra del segundo sumando.
• R: Palabra del resultado.
El rango para +(400) es de -32.768 a 32.767.
Para +B(404) es de 0000 a 9999
Binario
+(400)
Au
Ad
R
Soporte Técnico
BCD
+B(404)
Au
Ad
R
Omron03A - 61 -
-(410) y -B(414)
•
•
•
Resta 2 números binarios o BCD de 16 bits.
• Mi: Palabra del Minuendo.
• Su: Palabra del Sustraendo.
• R:
Palabra del resultado.
El rango para +(400) es de -32.768 a 32.767.
Para +B(404) es de 0000 a 9999.
Si el resultado es negativo, el acarreo se activa y el
complemento a 10 del resultado actual es puesto en R
-(410)
Mi
Su
R
Soporte Técnico
-B(414)
Mi
Su
R
Omron03A - 62 -
+, - Ejemplo
+(400)
D00000
D00001
D00100
-(410)
D00000
D00001
D00100
Soporte Técnico
D00000 0000 0000 0110 0000
D00001 0000 0000 0010 0000
96
32
D00100 0000 0000 1000 0000
128
D00100 0000 0000 0100 0000
64
Omron03A - 63 -
+B, -B Ejemplo
0
0
6
0
D00000 0000 0000 0110 0000
D00001 0000 0000 0010 0000
0
0
2
0
+B(404)
D00000
D00001
D00100
-B(414)
D00000
D00001
D00100
Soporte Técnico
60
20
0
0
8
0
D00100 0000 0000 1000 0000
80
0
0
4
0
D00100 0000 0000 0100 0000
40
Omron03A - 64 -
OPERACIONES ARITMETICAS (CS1)/2
*(420), *L(421), *U(422), *UL(423) - Multiplicación Binaria
*B(424), *BL(425) - Multiplicación BCD
*F(456) - Multiplicación Coma Flotante
*D(847) - Multiplicación en coma flotante doble
/(430), /L(431), /U(432), /UL(433) - División Binaria
/B(434), /BL(435) - División BCD
/F(457) - División Coma Flotante
/D(848) - División en coma flotante doble
Soporte Técnico
Omron03A - 65 -
*(420) y *B(424)
•
•
Multiplica 2 números binarios o BCD de 16 bits.
• Md: Palabra del Multiplicando.
• Mr: Palabra del Multiplicador.
• R:
Palabra del Resultado.
El resultado ocupa dos Palabras R y R+1
*(420)
Md
Mr
R
Soporte Técnico
*B(424)
Md
Mr
R
Omron03A - 66 -
/(430) y /B(434)
•
•
•
Multiplica números binarios o BCD de 16 bits.
• Dd: Primera palabra del Dividendo.
• Dr: Primera palabra del Divisor.
• R:
Primera palabra del Resultado.
El resultado ocupa dos Palabras R y R+1
Palabra R: Cociente
Palabra R+1: Resto
/(430)
Dd
Dr
R
Soporte Técnico
/B(434)
Dd
Dr
R
Omron03A - 67 -
*, / Ejemplo
*(420)
D00000
D00001
D00100
/(430)
D00000
D00001
D00100
Soporte Técnico
D00000 0000 0000 0110 0000
D00001 0000 0000 0010 0000
96
32
D00100 0000 1100 0110 0000
D00101 0000 0000 0000 0000
3072
0
D00100 0000 0000 0000 0011
D00101 0000 0000 0010 0000
3
0
Omron03A - 68 -
*B, /B Ejemplo
0
0
6
0
D00000 0000 0000 0110 0000
D00001 0000 0000 0010 0000
0
0
2
0
*B(424)
D00000
D00001
D00100
/B(434)
D00000
D00001
D00100
Soporte Técnico
60
20
1
2
0
0
D00100 0001 0010 0000 0000
D00101 0000 0000 0000 0000
1200
0
0
0
0
3
D00100 0000 0000 0000 0011
D00101 0000 0000 0010 0000
3
0
Omron03A - 69 -
Instrucciones en
Coma Flotante
Números reales en coma flotante.
Soporte Técnico
Números en Coma Flotante
• Se pueden expresar los números:
•
•
•
•
•
•
- (e=255, f=0, s=0)
-3.402823·1038 ÷ -1.175494·10-38
0 (e=0)
1.175494·10-38 ÷ 3.402823·1038
 (e=255, f=0, s=1)
NaN (e=255, f0): Número no válido.
• No es necesario conocer el formato de
estos números, sólo que ocupan 32 bits.
Soporte Técnico
Omron03A - 71 -
Precauciones Coma Flotante
• Las operaciones indeterminadas 0.0/0.0,
•
•
•
/, - dan como resultado NaN.
Overflow (±) y Underflow (±0). Es más
peligroso el Overflow al convertir el
resultado a entero (binario con signo).
Los decimales se truncan al convertirlos a
entero (binario con signo).
Cualquier operación con un NaN como
operando da como resultado NaN.
Soporte Técnico
Omron03A - 72 -
IEEE754
• Expresan números reales en 32 bits
conforme al estándar IEEE754:
• f: Mantisa
• e: Exponente
• s: Signo
23 bits
8 bits
1 bit
bit 0 al 22
bit 23 al 30
bit 31
• (-1)s·2e-127·(1+f·2-23)
• 1#10000000#11000000000000000000000
•
•
•
•
Signo: (-1)1= -1
Exponente: 2128-127=21=2
Mantisa: 1+6291456·2-23=1+0.75=1.75
Resultado: -1.75·2= -3.5
Soporte Técnico
Omron03A - 73 -
Instrucciones Coma Flotante
• Se pueden realizar las siguientes:
•
•
•
•
•
Conversión: FIX, FIXL, FLT, FLTL
Operaciones: +F, -F, *F, /F, SQRT, PWR
Conversiones angulares: RAD, DEG
Angulares: SIN, COS, TAN, ASIN, ACOS, ATAN
En base e: LOG, EXP
• Los operandos deben ser Nos en
•
formato coma flotante IEEE754.
No es necesario conocer este formato,
sólo que ocupan 32 bits.
Soporte Técnico
Omron03A - 74 -
FIX(450)
• Convierte un número en coma flotante a un
entero (binario con signo) de 16 bits.
• S: Primera palabra de número en coma flotante.
• R: Palabra donde se guarda el resultado.
• La parte decimal es truncada (3.5  3)
• Rango de -32.768 ÷ 32.767.
FIX(450)
S
R
Soporte Técnico
@FIX(450)
S
R
Omron03A - 75 -
FIXL(451)
• Convierte un número en coma flotante a un
entero (binario con signo) de 32 bits.
• S: Primera palabra de número en coma flotante.
• R: Primera palabra donde se guarda el resultado.
• La parte decimal es truncada (-3.5  -3)
• Rango de -2.147.482.648÷2.147.482.647.
FIXL(451)
S
R
Soporte Técnico
@FIXL(451)
S
R
Omron03A - 76 -
FIX, FIXL Ejemplo
FIX(450)
D00000
D00100
D00000 0000000000000000 3.5
D00001 0100000001100000
D00100 0000000000000011
FIXL(451)
D00002
D00102
3
D00002 0000000000000000
-58.720.256
D00003 1100110001100000
D00102 0000000000000000 -58.720.256
D00103 1111110010000000
Soporte Técnico
Omron03A - 77 -
FLT(452)
• Convierte un número entero (binario con
signo) de 16 bits en formato de coma
flotante de 32 bits.
• S: Palabra del número entero.
• R: Primera palabra del resultado.
• Rango de -32.768 ÷ 32.767.
FLT(452)
S
R
Soporte Técnico
@FLT(452)
S
R
Omron03A - 78 -
FLTL(453)
• Convierte un número entero (binario con
signo) de 32 bits en formato de coma
flotante de 32 bits.
• S: Primera palabra del número entero.
• R: Primera palabra del resultado.
• Rango de -2.147.482.648÷2.147.482.647.
• Números > 16.777.215 pierden precisión.
FLTL(453)
S
R
Soporte Técnico
@FLTL(453)
S
R
Omron03A - 79 -
FLT, FLTL Ejemplo
FLT(452)
D00100
D00000
FLTL(453)
D00102
D00002
D00000 0000000000000000 3
D00001 0100000001000000
D00100 0000000000000011
3
D00002 0000000000000000
-58.720.256
D00003 1100110001100000
D00102 0000000000000000 -58.720.256
D00103 1111110010000000
Soporte Técnico
Omron03A - 80 -
+F(454)
• Suma 2 números en coma flotante de
32 bits.
• Au: Primera palabra del primer sumando.
• Ad: Primera palabra del segundo sumando.
• R:
Primera palabra del resultado.
• El resultado puede ser , -, 0, NaN.
• Tener en cuenta:  -  = NaN y que
NaN+número=NaN.
+F(454)
Au
Ad
R
Soporte Técnico
@+F(454)
Au
Ad
R
Omron03A - 81 -
-F(455)
• Resta 2 números en coma flotante de
32 bits.
• Mi: Primera palabra del Minuendo.
• Su: Primera palabra del Sustraendo.
• R:
Primera palabra del resultado.
• El resultado puede ser , -, 0, NaN.
• Tener en cuenta:  -  = NaN y que
NaN-número=NaN, número-NaN=NaN.
-F(455)
Mi
Su
R
Soporte Técnico
@-F(455)
Mi
Su
R
Omron03A - 82 -
+F, -F Ejemplo
D00000
D00001
D00002
D00003
+F(454)
D00000
D00002
D00100
-F(455)
D00000
D00002
D00100
Soporte Técnico
0000 0000 0000 0000
0100 0000 0110 0000 3.5
0000 0000 0000 0000
0100 0000 1100 0000 6
3.5
D00100 0000 0000 0000 0000 +6
D00101 0100 0001 1110 0000
9.5
3.5
D00100 0000 0000 0000 0000 - 6
D00101 1100 0000 0010 0000 -2.5
Omron03A - 83 -
*F(456)
• Multiplica 2 números en coma flotante
de 32 bits.
• Md: Primera palabra del Multiplicando.
• Mr: Primera palabra del Multiplicador.
• R:
Primera palabra del Resultado.
• El resultado puede ser , -, 0, NaN.
• Tener en cuenta: 0· = NaN y que
NaN·número=NaN.
*F(456)
Md
Mr
R
Soporte Técnico
@*F(456)
Md
Mr
R
Omron03A - 84 -
/F(457)
• Multiplica 2 números en coma flotante
de 32 bits.
• Dd: Primera palabra del Dividendo.
• Dr: Primera palabra del Divisor.
• R:
Primera palabra del Resultado.
• El resultado puede ser , -, 0, NaN.
• Tener en cuenta: 0/0 = NaN, / = NaN y
que NaN/número=NaN, número/NaN=NaN.
/F(457)
Dd
Dr
R
Soporte Técnico
@/F(457)
Dd
Dr
R
Omron03A - 85 -
*F, /F Ejemplo
D00000
D00001
D00002
D00003
*F(456)
D00000
D00002
D00100
/F(457)
D00000
D00002
D00100
Soporte Técnico
0000 0000 0000 0000
0100 0000 0110 0000 3.5
0000 0000 0000 0000
0100 0000 1100 0000 6
3.5
D00100 0000 0000 0000 0000 * 6
D00101 0100 0001 1011 0000
21
3.5
D00100 0101 0101 0101 0101 ÷ 6
D00101 0011 1111 0101 1010
0.583333
Omron03A - 86 -
OPERACIONES LÓGICAS
ENTRE PALABRAS
Soporte Técnico
ANDW(34) y @ANDW(34)
 REALIZA LA OPERACIÓN LOGICA “AND” BIT A BIT ENTRE LOS 16 BITS
CONTENIDOS DE DOS CANALES Op1 y Op2 Y PONE EL RESULTADO EN
OTRO CANAL Res.
 SI EL RESULTADO ES 0000, SE ACTIVA EL INDICADOR DE “EQUAL” P_EQ = ON
 LOS PARÁMETROS DE LA INSTRUCCION SON 3:
Op1:Entrada 1 CIO, W, H, A, T, C, D, E, E?_, @D, @E, @E?_, *D, *E, *E?_, #, DR, ,IR
Op2:Entrada 2 CIO, W, H, A, T, C, D, E, E?_, @D, @E, @E?_, *D, *E, *E?_, #, DR, ,IR
Res:Resultado CIO, W, H, A, T, C, D, E, E?_, @D, @E, @E?_, *D, *E, *E?_, DR, ,IR
Op1
0101 0101 0101 0101
Op2
1111 1111 0000 0000
Res
0101 0101 0000 0000
BORRAR
Soporte Técnico
Omron03A - 88 -
ORW(35) y @ORW(35)
 REALIZA LA OPERACIÓN LOGICA “OR” BIT A BIT ENTRE LOS 16 BITS
CONTENIDOS DE DOS CANALES Op1 y Op2 Y PONE EL RESULTADO EN
OTRO CANAL Res.
 SI EL RESULTADO ES 0000, SE ACTIVA EL INDICADOR DE “EQUAL” P_EQ = ON
 LOS PARÁMETROS DE LA INSTRUCCION SON 3:
Op1:Entrada 1 CIO, W, H, A, T, C, D, E, E?_, @D, @E, @E?_, *D, *E, *E?_, #, DR, ,IR
Op2:Entrada 2 CIO, W, H, A, T, C, D, E, E?_, @D, @E, @E?_, *D, *E, *E?_, #, DR, ,IR
Res:Resultado CIO, W, H, A, T, C, D, E, E?_, @D, @E, @E?_, *D, *E, *E?_, DR, ,IR
Op1
0101 0101 0101 0101
Op2
1111 1111 0000 0000
Res
1111 1111 0101 0101
ACTIVAR
Soporte Técnico
Omron03A - 89 -
XORW(36) y @XORW(36)
 REALIZA LA OPERACIÓN LOGICA “XOR” BIT A BIT ENTRE LOS 16 BITS
CONTENIDOS DE DOS CANALES Op1 y Op2 Y PONE EL RESULTADO EN
OTRO CANAL Res.
 SI EL RESULTADO ES 0000, SE ACTIVA EL INDICADOR DE “EQUAL” P_EQ = ON
 LOS PARÁMETROS DE LA INSTRUCCION SON 3:
Op1:Entrada 1 CIO, W, H, A, T, C, D, E, E?_, @D, @E, @E?_, *D, *E, *E?_, #, DR, ,IR
Op2:Entrada 2 CIO, W, H, A, T, C, D, E, E?_, @D, @E, @E?_, *D, *E, *E?_, #, DR, ,IR
Res:Resultado CIO, W, H, A, T, C, D, E, E?_, @D, @E, @E?_, *D, *E, *E?_, DR, ,IR
Op1
0101 0101 0101 0101
Op2
1111 1111 0000 0000
Res
1010 1010 0101 0101
INVERTIR
BUSCAR BITs DIFERENTES
Soporte Técnico
Omron03A - 90 -
XNORW(37) y @XNORW(37)
 REALIZA LA OPERACIÓN LOGICA “XOR NEGADA” BIT A BIT ENTRE LOS 16 BITS
CONTENIDOS DE DOS CANALES Op1 y Op2 Y PONE EL RESULTADO EN OTRO
CANAL Res.
 SI EL RESULTADO ES 0000, SE ACTIVA EL INDICADOR DE “EQUAL” P_EQ = ON
 LOS PARÁMETROS DE LA INSTRUCCION SON 3:
Op1:Entrada 1 CIO, W, H, A, T, C, D, E, E?_, @D, @E, @E?_, *D, *E, *E?_, #, DR, ,IR
Op2:Entrada 2 CIO, W, H, A, T, C, D, E, E?_, @D, @E, @E?_, *D, *E, *E?_, #, DR, ,IR
Res:Resultado CIO, W, H, A, T, C, D, E, E?_, @D, @E, @E?_, *D, *E, *E?_, DR, ,IR
Op1
0101 0101 0101 0101
Op2
1111 1111 0000 0000
Res
0101 0101 1010 1010
INVERTIR
BUSCAR BITs IGULES
Soporte Técnico
Omron03A - 91 -
COM(29) y @COM(29)
 REALIZA LA OPERACIÓN LOGICA “NEGACION” (COMPLEMENTO) BIT A BIT
ENTRE LOS 16 BITS CONTENIDOS EN EL CANAL Op1 Y PONE EL RESULTADO
EN EL MISMO CANAL.
 SI EL RESULTADO ES 0000, SE ACTIVA EL INDICADOR DE “EQUAL” P_EQ = ON
 LOS PARÁMETROS DE LA INSTRUCCION SON:
Op1:Entrada 1 CIO, W, H, A, T, C, D, E, E?_, @D, @E, @E?_, *D, *E, *E?_, DR, ,IR
Op1
0101 0101 0101 0101
Res(Op1) 1010 1010 1010 1010
Soporte Técnico
Omron03A - 92 -
Desplazamiento
y rotación
De todos o N bits en una y dos
palabras
Soporte Técnico
Desplazamiento y rotación
Desplazamiento
Rotación
Rotación sin
Carry
Soporte Técnico
1 Canal
ASL(025)
ASR(026)
ROL(027)
ROR(028)
RLNC(574)
RRNC(575)
Omron03A - 94 -
2 Canales
ASLL(570)
ASRL(571)
ROLL(572)
RORL(573)
RLNL(576)
RRNL(577)
De N bits
1 Canal
Desplazamiento
NASL(580)
de N bits
NASR(581)
Desplazamiento
NSFL(578)
de N bits como dato NSFR(579)
Soporte Técnico
Omron03A - 95 -
2 Canales
NSLL(582)
NSRL(583)
NASL(580)
• Desplaza la palabra D, N bits a la izquierda
insertando 0, ó el valor del bit 0.
• D: Palabra origen y destino.
• C: palabra de control (insertar 0, Nº de bits)
NASL(580)
D
C
Soporte Técnico
@NASL(580)
D
C
Omron03A - 96 -
NASL(580) ejemplo
C: Palabra de control.
15
12
7
0
Nº de bits a desplazar en hexadecimal 00…10Hex.
Siempre a 0.
Dato que se introduce por la derecha:
0: introduce 0.
8: introduce el valor que tenga el bit 0.
Perdidos
NASL(580)
0100
#0004
Soporte Técnico
CH 100 →
1011000110011111
CY
1
0001100111110000
Omron03A - 97 -
0
NSLL(582)
• Desplaza las palabras D y D+1, N bits a la
izquierda insertando 0, ó el valor del bit 0.
• D: Primera palabra origen y destino.
• C: palabra de control (insertar 0, Nº de bits)
• Como NASL(580) pero de dos palabras.
NSLL(582)
D
C
Soporte Técnico
@NSLL(582)
D
C
Omron03A - 98 -
NASR(581)
• Desplaza la palabra D, N bits a la derecha
insertando 0, ó el valor del bit 15.
• D: Palabra origen y destino.
• C: palabra de control (insertar 0, Nº de bits)
NASR(581)
D
C
Soporte Técnico
@NASR(581)
D
C
Omron03A - 99 -
NASR(581) ejemplo
C: Palabra de control.
15
12
7
0
Nº de bits a desplazar en hexadecimal 0-10Hex.
Siempre a 0.
Dato que se introduce por la izquierda.
0: introduce 0.
8: introduce el valor que tenga el bit 15.
Perdidos
NASR(581)
0100
#0004
Soporte Técnico
0
1011000110011111
←CH 100
CY
0000101100011001
Omron03A - 100 -
1
NSRL(583)
• Desplaza las palabras D y D+1, N bits a la
derecha insertando 0, ó el valor del bit 15.
• D: Primera palabra origen y destino.
• C: palabra de control (insertar 0, Nº de bits)
• Como NASR(581) pero de dos palabras.
NSRL(583)
D
C
Soporte Técnico
@NSRL(583)
D
C
Omron03A - 101 -
NSFL(578)
• Desplaza N bits de D a la izquierda
empezando por el bit C.
• D: Palabra dato.
• C: Bit de comienzo.
• N: Número de bits a desplazar.
• Los bits anteriores a C o posteriores a C+N
no cambian.
NSFL(578)
D
C
R
Soporte Técnico
@NSFL(578)
D
C
R
Omron03A - 102 -
NSFR(579)
• Desplaza N bits de D a la derecha
empezando por el bit C.
• D: Palabra dato.
• C: Bit de comienzo.
• N: Número de bits a desplazar.
• Los bits anteriores a C+N o posteriores a C
no cambian.
NSFL(578)
D
C
R
Soporte Técnico
@NSFL(578)
D
C
R
Omron03A - 103 -
NSFL NSFR ejemplo
Bits 3 a 12
NSFL(578)
0100
&3
&11
CH 100 →
1011000110011111
CY
1
1010001100110111
Bits 3 a 12
NSFR(579)
0100
&3
&11
Soporte Técnico
0
1011000110011111
←CH 100
CY
1010100011001111
Omron03A - 104 -
1
0
Incrementar Decrementar
Autoincremento y Autodecremento
Soporte Técnico
++(590) ++L(591)
• ++ incrementa en binario la palabra de 4
•
dígitos Wd en una unidad.
++L incrementa en binario la palabra de 8
dígitos Wd en una unidad.
• Wd: Palabra a incrementar
++(590)
Wd
@++(590)
Wd
++L(591)
Wd
@++L(591)
Wd
Soporte Técnico
Omron03A - 106 -
--(592) --L(593)
• -- decrementa en binario la palabra de 4
•
dígitos Wd en una unidad.
--L decrementa en binario la palabra de 8
dígitos Wd en una unidad.
• Wd: Palabra a incrementar
--(592)
Wd
@--(592)
Wd
--L(593)
Wd
@--L(593)
Wd
Soporte Técnico
Omron03A - 107 -
Binario Ejemplos
++(590)
D00000
D0
0019 +1
++L(591)
D00000
D0
0019
--(592)
D00000
D0
001A -1
--L(593)
D00000
D0
001A
Soporte Técnico
D0
001A
D1
FFFF +1
D0
001A
D1
0000
D0
0019
D1
FFFF
D0
0019
D1
0000 -1
Omron03A - 108 -
++B(594) ++BL(595)
• ++B incrementa en BCD la palabra de 4
•
dígitos Wd en una unidad.
++BL incrementa en BCD la palabra de 8
dígitos Wd en una unidad.
• Wd: Palabra a incrementar
++B(594)
Wd
@++B(594)
Wd
++BL(595)
Wd
@++BL(595)
Wd
Soporte Técnico
Omron03A - 109 -
--B(596) --BL(597)
• --B decrementa en BCD la palabra de 4
•
dígitos Wd en una unidad.
--BL decrementa en BCD la palabra de 8
dígitos Wd en una unidad.
• Wd: Palabra a incrementar
--B(596)
Wd
@--B(596)
Wd
--BL(597)
Wd
@--BL(597)
Wd
Soporte Técnico
Omron03A - 110 -
BCD Ejemplos
++B(594)
D00000
++BL(595)
D00000
--B(596)
D00000
--BL(597)
D00000
Soporte Técnico
D0
0019 +1
D0
0019
D1
9999 +1
D0
0020 -1
D0
0020
D0
0020
D0
0020
D1
0000
D0
0019
D1
9999
D0
0019
D1
0000 -1
Omron03A - 111 -
DESPLAZAMIENTO
Y
ROTACIÓN
serie C y CS1
1Bit Y Dígitos (4 bits)
Soporte Técnico
Desplaza BITS: ASL(025) ASR(026)
• ASL(025) introduce un 0 y desplaza un bit
•
a la izquierda el contenido de un canal.
ASR(026) introduce un 0 y desplaza un bit
a la derecha el contenido de un canal.
• El bit saliente pasa al Flag de carry (CY)
ASL(025)
Wd
ASR(026)
Wd
Soporte Técnico
Omron03A - 113 -
Rotar BITS: ROL(027) ROR(028)
• ROL(025) Rota un bit a la izquierda un
•
canal pasando el bit15 al CY y el CY al bit0
ROR(026) Rota un bit a la derecha un
canal pasando el bit0 al CY y el CY al bit15
• La rotación siempre es a través del Carry
ROL(027)
Wd
ROR(028)
Wd
Soporte Técnico
Omron03A - 114 -
Desplaza Digito: SLD(074) SRD(075)
• SLD(074) introduce cuatro 0 y desplaza un
•
Digito a la izquierda un canal.
SRD(075) introduce cuatro 0 y desplaza un
Digito a la derecha un canal.
• St: Canal inicial
E: Canal final
DATO PERDIDO
DATO PERDIDO
Soporte Técnico
Omron03A - 115 -