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, M0): 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, f0): 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 -