Mathematics">
Nothing Special   »   [go: up one dir, main page]

Omron 03 A

Descargar como ppt, pdf o txt
Descargar como ppt, pdf o txt
Está en la página 1de 115

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 3 2 1 0 Nº BIT
msb lsb (PESO)
más significativo menos significativo

Soporte Técnico 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 1 0
N B= X N B + X N-1B + ........ + X 1B + X 0 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 N-1 0
Nº DECIMAL = Z N x 2 + ZN-1 x 2 + ....... + Z 0 x 2

» 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Á :

» EJEMPLO : REPRESENTAR EN BINARIO LOS Nº DECIMALES 16 Y 45.

1 x 23 + 1 x 22 + 0 x 2 1 + 0 x 2 0 = 12

1 1 0 0 = 12

5 4 3 2 1 0
2 2 2 2 2 2
16  1 0 0 0 0
45  1 0 1 1 0 1
Soporte Técnico 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 BINARIO
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
A 1010
B 1011
C 1100
D 1101
E 1110
Soporte Técnico F Omron03A - 8 - 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 BINARIO(BCD)
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001

Soporte Técnico Omron03A - 9 -


Números en COMA FLOTANTE
• COMA FLOTANTE
23 22 21 2 1 0
31 30 ………...

...

Signo Exponente Mantisa


Mantisa

e-127 -23
Signo
Nº DECIMAL = (-1) x2 (1+Mantisa 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 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.
NUMBER 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.
CHANNEL 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.

Soporte Técnico 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: Cada tipo puede tener las opciones:
= Igual
<> Diferente SIN signo
< Menor S Signo
<= Menor o igual L Doble Longitud
> Mayor SL Doble Longitud con Signo.
>= Mayor o igual
(Ejemplos: LD=(300), #0, D0 AND=S(302),-2, D0 )
Soporte Técnico Omron03A - 23 -
COMPARACIONES EN LINEA(CS1)/3
Símbolo Formato Longitud
=(300) -: Sin signo -: 1 palabra
=L(301) -: Sin signo L: 2 palabras
=S(302) S: Con signo -: 1 palabra
=SL(303) S: Con signo -: 2 palabras
<>(305) -: Sin signo -: 1 palabra
<>L(306) -: Sin signo L: 2 palabras
<>S(307) S: Con signo -: 1 palabra
<>SL(308) S: Con signo -: 2 palabras
<(310) -: Sin signo -: 1 palabra
<L(311) -: Sin signo L: 2 palabras
<S(312) S: Con signo -: 1 palabra
<SL(313) S: Con signo -: 2 palabras
<=(315) -: Sin signo -: 1 palabra
<=L(316) -: Sin signo L: 2 palabras
<=S(317) S: Con signo -: 1 palabra
<=SL(318) S: Con signo -: 2 palabras
>(320) -: Sin signo -: 1 palabra
>L(321) -: Sin signo L: 2 palabras
>S(322) S: Con signo -: 1 palabra
<SL(323) S: Con signo -: 2 palabras
>=(325) -: Sin signo -: 1 palabra
>=L(326) -: Sin signo L: 2 palabras
>=S(327) S: Con signo -: 1 palabra
>=SL(328) S: Con signo -: 2 palabras
Soporte Técnico 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 DM0011 #0150 DM0432

EN ESTE CASO SV = 150


DM0432

Soporte Técnico Omron03A - 31 -


DIRECCIONAMIENTO INDIRECTO

Ejemplo: Canal Contenido

MOV(21) DM 0000 4C59

*DM 0001 DM 0001 1111


Dirección
LR 00 indirecta DM 0002 F35A Indica
DM 1111.

DM 1111 5555

DM 1112 2506 5555 movido


a LR 00.
DM 1113 D541

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 -


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) Escribe C (12 traducido a binario) en W000


&12 Inmediato traducido a binario
W000 Directo
MOV(21) Escribe 1A34 binario en W000
#1A34 Inmediato binario
W000 Directo

MOV(21) Escribe el contenido de W000 en W001


W000 Directo
W001 Directo
MOV(21) Escribe 1A en la dirección(BCD)indicada en D00000
#1A Inmediato
*D00000 Indirecto BCD
Soporte Técnico Omron03A - 34 -
Ejemplos
Escribe el contenido de W000 en la
MOV(21) dirección (Binaria) indicada en D00000
W000 Directo
@D00000 Indirecto Binario

MOV(21) Escribe 1A en la dirección indicada en IR0


#1A Inmediato
,IR0 Indexado

MOV(21) Escribe 1A en la dirección indicada en (IR0+23)


#1A Inmediato
+23,IR0 Indexado
MOV(21) Escribe 1A en la dirección indicada en (IR0+DR0)
#1A Inmediato
DR0,IR0 Indexado
Soporte Técnico Omron03A - 35 -
Ejemplos
Escribe 1A en la dirección indicada en IR0
MOV(21) y aumenta IR0 una unidad
#1A Inmediato
,IR0+ Indexado
Escribe 1A en la dirección indicada en IR0
MOV(21) y aumenta IR0 dos unidades
#1A Inmediato
,IR0++ Indexado
Escribe 1A en la dirección indicada en (IR0-1)
MOV(21) y disminuye IR0 una unidad
#1A Inmediato
,-IR0 Indexado
Escribe 1A en la dirección indicada en (IR0-2)
MOV(21) y disminuye IR0 dos unidades
#1A Inmediato
,--IR0 Indexado
Soporte Técnico 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) @SIGN(600)
S S
R R

Soporte Técnico 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) @BINS(470)
C C
S S
R R

Soporte Técnico 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 El signo se indica en S: F=- y A=-1 o 0-9 positivo
Los valores B-E dan error.

Soporte Técnico 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) @BISL(472)
C C
S S
R R
Soporte Técnico 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 El signo se indica en S+1: F=- y A=-1 o 0-9 positivo
Los valores B-E dan error.

Soporte Técnico 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) @BCDS(471)
C C
S S
R R
Soporte Técnico 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) @BDSL(473)
C C
S S
R R
Soporte Técnico Omron03A - 47 -
Limitaciones BCDS y BDSL - (CS1)

• En BCDS el dato S está limitada según C:


• C=0 FC19 a FFFF y 0000 a 03E7
• C=1 F0C1 a FFFF y 0000 a 1F3F
• C=2 FC19 a FFFF y 0000 a 270F
• C=3 F831 a FFFF y 0000 a 270F
• En BDSL el dato S está limitada según C:
• C=0 FF67 6981 a FFFF FFFF y 0 a 0098 967F
• C=1 FB3B 4C01 a FFFF FFFF y 0 a 04C4 B3FF
• C=2 FF67 6981 a FFFF FFFF y 0 a 05F5 E0FF
• C=3 FECE D301 a FFFF FFFF y 0 a 05F5 E0FF

Soporte Técnico 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)
LD 1904
OUT 1000

Soporte Técnico 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)
ADD(30)
A1
HR00
A2 #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)
SUB(31)
Mi
#0100
Su 00
05
R

Soporte Técnico Omron03A - 53 -


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

Mi = Su R= 0 0 1

Mi < Su R= Mi + (10000-Su) 1 0

 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: 4 DÍGITOS MAYORES DM1


4 DÍGITOS MENORES DM0
– DATO B: 4 DÍGITOS MAYORES DM3
4 DÍGITOS MENORES DM2
 EL RESULTADO SE GUARDARÁ EN :
– DÍGITO NUM 9 DM6
– 4 DÍGITOS MAYORES DM5
– 4 DÍGITOS MENORES 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 = CANALES /CONSTANTES
A
R= REGISTRO RESULTADO
B

Soporte Técnico Omron03A - 56 -


MULTIPLICACIÓN BCD: MUL, FUN(32) (Série C)

3300
MUL
10

#0021

DM100

0034 CH 10

X
0021
=

714 DM100= (CH 10) X 21

Soporte Técnico 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
B
R+1 = RESTO
C
A, B = CANAL / CONSTANTE

Soporte Técnico 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

33 LR 10

1 LR 11

Soporte Técnico 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 BCD
+(400) +B(404)
Au Au
Ad Ad
R R
Soporte Técnico 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) -B(414)
Mi Mi
Su Su
R R
Soporte Técnico Omron03A - 62 -
+, - Ejemplo

D00000 0000 0000 0110 0000 96


D00001 0000 0000 0010 0000 32

+(400)
D00000
D00001 D00100 0000 0000 1000 0000 128
D00100

-(410)
D00000
D00001
D00100 D00100 0000 0000 0100 0000 64

Soporte Técnico Omron03A - 63 -


+B, -B Ejemplo

0 0 6 0
D00000 0000 0000 0110 0000 60
D00001 0000 0000 0010 0000 20
0 0 2 0
+B(404)
D00000 0 0 8 0
D00001 D00100 0000 0000 1000 0000 80
D00100

-B(414)
D00000
D00001 0 0 4 0
D00100 D00100 0000 0000 0100 0000 40

Soporte Técnico 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) *B(424)
Md Md
Mr Mr
R R
Soporte Técnico 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) /B(434)
Dd Dd
Dr Dr
R R
Soporte Técnico Omron03A - 67 -
*, / Ejemplo

D00000 0000 0000 0110 0000 96


D00001 0000 0000 0010 0000 32

*(420)
D00000
D00001 D00100 0000 1100 0110 0000 3072
D00100 D00101 0000 0000 0000 0000 0

/(430)
D00000
D00001
D00100 0000 0000 0000 0011 3
D00100
D00101 0000 0000 0010 0000 0
Soporte Técnico Omron03A - 68 -
*B, /B Ejemplo

0 0 6 0
D00000 0000 0000 0110 0000 60
D00001 0000 0000 0010 0000 20
0 0 2 0
*B(424)
D00000
1 2 0 0
D00001
D00100 D00100 0001 0010 0000 0000 1200
D00101 0000 0000 0000 0000 0

/B(434)
D00000
0 0 0 3
D00001
D00100 0000 0000 0000 0011 3
D00100
D00101 0000 0000 0010 0000 0
Soporte Técnico 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 23 bitsbit 0 al 22
• e: Exponente 8 bits bit 23 al 30
• s: Signo 1 bit 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) @FIX(450)
S S
R R

Soporte Técnico 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) @FIXL(451)
S S
R R

Soporte Técnico Omron03A - 76 -


FIX, FIXL Ejemplo
FIX(450)
D00000 D00000 0000000000000000 3.5
D00100 D00001 0100000001100000

D00100 0000000000000011 3

FIXL(451)
D00002 D00002 0000000000000000
-58.720.256
D00102 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) @FLT(452)
S S
R R

Soporte Técnico 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) @FLTL(453)
S S
R R

Soporte Técnico Omron03A - 79 -


FLT, FLTL Ejemplo

FLT(452) D00000 0000000000000000


3
D00100 D00001 0100000001000000
D00000
D00100 0000000000000011 3

FLTL(453) D00002 0000000000000000


-58.720.256
D00102 D00003 1100110001100000
D00002
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) @+F(454)
Au Au
Ad Ad
R R
Soporte Técnico 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) @-F(455)
Mi Mi
Su Su
R R
Soporte Técnico Omron03A - 82 -
+F, -F Ejemplo

D00000 0000 0000 0000 0000


D00001 0100 0000 0110 0000 3.5
D00002 0000 0000 0000 0000
D00003 0100 0000 1100 0000 6
+F(454)
D00000 3.5
D00002 D00100 0000 0000 0000 0000 +6
D00100 D00101 0100 0001 1110 0000 9.5

-F(455)
3.5
D00000
D00100 0000 0000 0000 0000 - 6
D00002
D00101 1100 0000 0010 0000 -2.5
D00100

Soporte Técnico 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) @*F(456)
Md Md
Mr Mr
R R
Soporte Técnico 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) @/F(457)
Dd Dd
Dr Dr
R R
Soporte Técnico Omron03A - 85 -
*F, /F Ejemplo

D00000 0000 0000 0000 0000


D00001 0100 0000 0110 0000 3.5
D00002 0000 0000 0000 0000
D00003 0100 0000 1100 0000 6
*F(456)
D00000 3.5
D00002 D00100 0000 0000 0000 0000 * 6
D00100 D00101 0100 0001 1011 0000 21

/F(457)
3.5
D00000
D00100 0101 0101 0101 0101 ÷ 6
D00002
D00101 0011 1111 0101 1010 0.583333
D00100

Soporte Técnico 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

1 Canal 2 Canales
Desplazamiento ASL(025) ASLL(570)
ASR(026) ASRL(571)
Rotación ROL(027) ROLL(572)
ROR(028) RORL(573)
Rotación sin RLNC(574) RLNL(576)
Carry RRNC(575) RRNL(577)

Soporte Técnico Omron03A - 94 -


De N bits

1 Canal 2 Canales
Desplazamiento NASL(580) NSLL(582)
de N bits NASR(581) NSRL(583)
Desplazamiento NSFL(578)
de N bits como dato NSFR(579)

Soporte Técnico Omron03A - 95 -


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) @NASL(580)
D D
C C

Soporte Técnico 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) CH 100 → 1011000110011111 0


0100 CY
#0004 1 0001100111110000

Soporte Técnico Omron03A - 97 -


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) @NSLL(582)
D D
C C

Soporte Técnico 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) @NASR(581)
D D
C C

Soporte Técnico 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) 0 1011000110011111 ←CH 100


0100 CY
#0004 0000101100011001 1

Soporte Técnico Omron03A - 100 -


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) @NSRL(583)
D D
C C

Soporte Técnico 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) @NSFL(578)
D D
C C
R R
Soporte Técnico 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) @NSFL(578)
D D
C C
R R
Soporte Técnico Omron03A - 103 -
NSFL NSFR ejemplo
Bits 3 a 12
NSFL(578)
0100 CH 100 → 1011000110011111 0

&3 CY
&11 1 1010001100110111

Bits 3 a 12
NSFR(579)
0 1011000110011111 ←CH 100
0100
&3 CY
&11 1010100011001111 1

Soporte Técnico Omron03A - 104 -


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) @++(590)
Wd Wd

++L(591) @++L(591)
Wd 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) @--(592)
Wd Wd

--L(593) @--L(593)
Wd Wd

Soporte Técnico Omron03A - 107 -


Binario Ejemplos

++(590) D0 D0
D00000 0019 +1 001A

++L(591) D0 D1 D0 D1
D00000 0019 FFFF +1 001A 0000

--(592) D0 D0
D00000 001A -1 0019

--L(593) D0 D1 D0 D1
D00000 001A 0000 -1 0019 FFFF

Soporte Técnico 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) @++B(594)
Wd Wd

++BL(595) @++BL(595)
Wd 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) @--B(596)
Wd Wd

--BL(597) @--BL(597)
Wd Wd

Soporte Técnico Omron03A - 110 -


BCD Ejemplos

++B(594) D0 D0
D00000 0019 +1 0020

++BL(595) D0 D1 D0 D1
D00000 0019 9999 +1 0020 0000

--B(596) D0 D0
D00000 0020 -1 0019

--BL(597) D0 D1 D0 D1
D00000 0020 0000 -1 0019 9999

Soporte Técnico 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 -

También podría gustarte