Вы находитесь на странице: 1из 115

PROGRAMACIN

AVANZADA DE PLCs

Soporte Tcnico
TRATAMIENTO
NUMERICO

Soporte Tcnico
CONCEPTO DE REGISTRO (CANAL)

DISPOSITIVO CAPAZ DE ALMACENAR UNA INFORMACION


DIGITAL (1s y/o 0s)

EN LOS PLCs 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)
ms significativo menos significativo
SISTEMAS DE NUMERACION

LAS VARIABLES, EN GENERAL, PUEDEN EXPRESARSE O


REPRESENTARSE SEGN DISTINTOS SISTEMAS DE
NUMERACIN
EL SISTEMA HABITUAL QUE SE EMPLEA DE FORMA COTIDIANA
ES EL SISTEMA DIGITAL, QUE UTILIZA LOS SMBOLOS DEL 0 AL 9.
HAY OTROS SISTEMAS DE NUMERACION QUE, AL TRABAJAR
CON MQUINAS Y CON COMUNICACIONES, NOS APARECERN
CONSTANTEMENTE
BINARIO
BCD (BINARIO CODIFICADO DECIMAL)
HEXADECIMAL
COMA FLOTANTE
ASCII
SISTEMAS DE NUMERACION

EN GENERAL,CUANDO UNA CANTIDAD


(N ENTERO) SE REPRESENTA
MEDIANTE UN SISTEMA DE
NUMERACIN 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
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)
CODIGO BINARIO
CODIGO BINARIO

EJEMPLO: LA REPRESENTACION DEL N12 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
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
F 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
Nmeros 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 nmero decimal.
Exponente (e) El exponente incluye 8 bits (bit 23..30).
Nmeros en COMA FLOTANTE

Se pueden expresar los nmeros:

- (e=255, M=0, s=0)


-3.4028231038 -1.17549410-38
0 (e=0)
1.17549410-38 3.4028231038
(e=255, M=0, s=1)
NaN (e=255, M0): Nmero no vlido.

No es necesario conocer el formato de estos


nmeros, slo que ocupan 32 bits.
Precauciones COMA FLOTANTE

Las operaciones indeterminadas 0.0/0.0, /, -


dan como resultado NaN.
Overflow () y Underflow (0). Es ms peligroso
el Overflow al convertir el resultado a entero
(binario con signo).
Los decimales se truncan al convertirlos a entero
(binario con signo).
Cualquier operacin con un NaN como operando
da como resultado NaN.
IEEE754

Expresan nmeros reales en 32 bits conforme


al estndar IEEE754:

(-1)signo2exponente-127(1+Mantisa2-23)

1#10000000#11000000000000000000000
Signo: (-1)1= -1
Exponente: 2128-127=21=2
Mantisa: 1+62914562-23=1+0.75=1.75
Resultado: -1.752= -3.5
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 BITs PARA LA
REPRESENTACION.
Ejemplo :

A = 41 = 0100 0001
5 = 35 = 0011 0101
> = 3E = 0011 1110
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 dgitos).

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 dgitos).
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 dgitos).
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 numrica en formato decimal. El valor puede ser con signo o
en coma flotante. No se trata de una variable, sino de un valor numrico
a utilizar por la funcin.
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.
COMPARACIN
y
MOVIMIENTO

Soporte Tcnico
CMP, FUN(20)/1 (Serie C y CS1)

LA INSTRUCCIN CMP REALIZA LA COMPARACIN ENTRE DOS DATOS DE 16 BIT,


CONTENIDOS EN DOS CANALES.
EL RESULTADO DE LA COMPRACIN 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 COMPARACIN SON :

S:#, IR, SR, HR, TIM, CNT


D: IR, HR
CMP, FUN(20)/2

SEGN 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


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 REPOSICIN 0.04.
EJEMPLO CMP(20)/2, ALARMA DE RELOJ

SE PUEDE PROGRAMAR UNA SERIE DE COMPARACIONES EN CADENA.


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.
Smbolo & Opciones
S1
S2
COMPARACIONES EN LINEA (CS1)/1

Hay disponibles un total de 24 instrucciones de


comparacin. Estas pueden utilizar varias combinaciones de
smbolos y opciones. Si no se especifican opciones, la
comparacin ser para un slo canal sin signo.

Los tipos bsicos 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 )
COMPARACIONES EN LINEA(CS1)/3
Smbolo 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
.....COMPARACIONES EN LINEA (CS1)

CON EL CS1 SE PUEDE PROGRAMAR UNA SERIE DE COMPARACIONES EN


LINEA QUE DEN COMO RESULTADO LA ACTIVACIN DE LA ALARMA.

ANTES: CMP(020) SERIE C


AHORA: CS1
MOV, FUN(21)

LA INSTRUCCIN 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
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.
Direccionamientos
Addessing

Soporte Tcnico
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(-)
Direccin en BCD (*D, *E, *En_)
Direccin en Binario (@D, @E, @En_)
Indirecto Indexado (IR)
,IR0
+234,IR0
DR0,IR0
,IR0++
DIRECCIONAMIENTO INDIRECTO

Cuando para un operando se especifica el rea de DM,


se puede utilizar una direccin indirecta.
Para diferenciar el direccionamiento de DM indirecto
se coloca un asterisco delante de DM : *DM
Cuando se especifica una direccin indirecta de DM, el
canal DM designado contendr la direccin del canal DM
que contiene el dato que se utilizar como operando de la
instruccin.
Cuando se utilice direccionamiento indirecto, la direccin
del canal deseado debe estar en BCD y debe especificar
un canal comprendido en rea de DM.
DIRECCIONAMIENTO INDIRECTO

Normalmente la variable especificada por una cierta


instruccin es tal que la instruccin 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 direccin de DM donde se dato est contenido (la
direccin es la variable contenida).
TIM00
*DM0011 #0432 DM0011 #0150 DM0432

EN ESTE CASO SV = 150


DM0432
DIRECCIONAMIENTO INDIRECTO

Ejemplo: Canal Contenido

MOV(21) DM 0000 4C59

*DM 0001 DM 0001 1111


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


Direccin que se utiliza

2) Direccionamiento en Modo-BCD (*D). En este modo slo parte


del rea de DMs (D00000 a D09999) puede ser direccionada
indirectamente con los valores BCD de 0000 a 9999.

*D00100 0100 D00100


Direccin que se utiliza
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 direccin(BCD)indicada en D00000
#1A Inmediato
*D00000 Indirecto BCD
Ejemplos
Escribe el contenido de W000 en la
MOV(21) direccin (Binaria) indicada en D00000
W000 Directo
@D00000 Indirecto Binario

MOV(21) Escribe 1A en la direccin indicada en IR0


#1A Inmediato
,IR0 Indexado

MOV(21) Escribe 1A en la direccin indicada en (IR0+23)


#1A Inmediato
+23,IR0 Indexado
MOV(21) Escribe 1A en la direccin indicada en (IR0+DR0)
#1A Inmediato
DR0,IR0 Indexado
Ejemplos
Escribe 1A en la direccin indicada en IR0
MOV(21) y aumenta IR0 una unidad
#1A Inmediato
,IR0+ Indexado
Escribe 1A en la direccin indicada en IR0
MOV(21) y aumenta IR0 dos unidades
#1A Inmediato
,IR0++ Indexado
Escribe 1A en la direccin indicada en (IR0-1)
MOV(21) y disminuye IR0 una unidad
#1A Inmediato
,-IR0 Indexado
Escribe 1A en la direccin indicada en (IR0-2)
MOV(21) y disminuye IR0 dos unidades
#1A Inmediato
,--IR0 Indexado
DIRECCIONAMIENTO INDIRECTO

EJEMPLO

ALMACENAR LA TEMPERATURA EN UN HORNO


CADA 15 SEG. Y DURANTE 2 HRS., TIEMPO DE
DURACIN DEL PROCESO.

DATOS
T ENTRADA ANALGICA: CANAL 101
INICIO DATOS: DM 0001
CONVERSION
DE FORMATO DE DATOS

Soporte Tcnico
BIN(023) - BCD a Binario

Convierte el contenido BCD de S a su equivalente en binario y lo enva a R. Slo


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
BCD(024) - Binario a BCD

BCD(24) convierte el contenido binario (hexadecimal) de S a su equivalente en


BCD y lo enva a R. Slo 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
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
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
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.
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
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.
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 instruccin inversa a BINS(470)


BCDS(471) @BCDS(471)
C C
S S
R R
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 instruccin inversa a BINS(470)


BDSL(473) @BDSL(473)
C C
S S
R R
Limitaciones BCDS y BDSL - (CS1)

En BCDS el dato S est limitada segn 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 segn 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
OPERACIONES
ARITMETICAS

Soporte Tcnico
STC / CLC, FUN 40 / 41

FUNCIN: ESTAS INSTRUCCIONES GESTIONAN EL FLAG DE ACARREO,


O FLAG CY.
EL FLAG CY SE UTILIZA EN LAS OPERACIONES MATEMTICAS, PARA
DETECTAR:
EXISTENCIA DE OVERFLOW EN EL RESULTADO DE UNA SUMA
(ADD)
EXISTENCIA DE RESULTADO NEGATIVO EN UNA SUBSTRACCIN
(SUB)

LD 0000
STC(40)
LD NOT 0000
CLC(41)
LD 1904
OUT 1000
SUMA BDC: ADD, FUN(30) /1 (Srie C)

LA INSTRUCCIN 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 PARMETROS 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
SUMA BDC: ADD, FUN(30) /2 (Srie C)

EN EL CASO DE ACARREO (CY = 1), LA SUMA DE LOS DOS SUMANDOS


HA SUPERADO EL LMITE 9999. EL RESULTADO EFECTIVO ES ENTONCES
10000+R

EN EL CASO DE SUMA CON 8 O MS CIFRAS BCD, (SUMA COMBINADA)


SE DEBER RESETEAR CY SLO PARA LA PRIMERA SUMA.

SI EL RESULTADO DE LA OPERACIN SUMA ES = 0, ENTONCES EL FLAG


EQ = 1

SI LOS SUMANDOS NO ESTN EN FORMATO BCD, LA OPERACIN NO SE


EJECUTA Y ENTONCES ER = 1
RESTA BDC: SUB, FUN(31) /1 (Srie C)

LA INSTRUCCIN SUB EJECUTA LA SUBSTRACCIN 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 PARMETROS DE LA INSTRUCCIN 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
RESTA BDC: SUB, FUN(31) /2 (Srie C)

SEGN 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 ESTN EN EL FORMATO BCD, LA OPERACIN NO SE


EJECUTA, Y ER = 1
EJEMPLO DE PROGRAMACIN (Srie C)
SUMA DE DATOS DE HASTA 8 DGITOS
APLICACIN: SE TRATA DE SUMAR DOS DATOS QUE PUEDEN TENER UNA
LONGITUD DE HASTA 8 DGITOS.
ESTE PROGRAMA PUEDE LLEVARSE A CABO UTILIZANDO DIRECTAMENTE LA
INSTRUCCIN DE SUMA DE DOBLE LONGITUD PERO LO HAREMOS USANDO LA
INSTRUCCIN ADD NORMAL.
LOS DATOS A SUMAR SON LOS SIGUIENTES:

DATO A: 4 DGITOS MAYORES DM1


4 DGITOS MENORES DM0
DATO B: 4 DGITOS MAYORES DM3
4 DGITOS MENORES DM2
EL RESULTADO SE GUARDAR EN :
DGITO NUM 9 DM6
4 DGITOS MAYORES DM5
4 DGITOS 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.
MULTIPLICACIN BCD: MUL, FUN(32) (Srie C)

FUNCIN: MULTIPLICA EL CONTENIDO DE LOS DATOS ESPECIFICADOS


EN LA INSTRUCCIN (EN BCD) Y EL RESULTADO SE TRANSFIERE A UN
REGISTRO.

MUL
A, B = CANALES /CONSTANTES
A
R= REGISTRO RESULTADO
B

C
MULTIPLICACIN BCD: MUL, FUN(32) (Srie C)

3300
MUL
10

#0021

DM100

0034 CH
10
X
0021
=

714 DM100= (CH 10) X 21


DIVISIN BCD: DIV, FUN(33) (Srie C)

FUNCIN: DIVIDE EL CONTENIDO DE LOS DATOS ESPECIFICADOS EN LA


INSTRUCCIN (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
DIVISIN BCD: DIV, FUN(33) (Srie C)

3300
DIV
10

#4

LR10

133 CH
10

(CH 10) = (LR 10) X 4 + LR


11
4

33 LR 10

1 LR 11
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 precisin
+(400) y +B(404)

Suma 2 nmeros 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
-(410) y -B(414)

Resta 2 nmeros 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
+, - 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
+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
OPERACIONES ARITMETICAS (CS1)/2

*(420), *L(421), *U(422), *UL(423) - Multiplicacin Binaria


*B(424), *BL(425) - Multiplicacin BCD
*F(456) - Multiplicacin Coma Flotante
*D(847) - Multiplicacin en coma flotante doble

/(430), /L(431), /U(432), /UL(433) - Divisin Binaria


/B(434), /BL(435) - Divisin BCD
/F(457) - Divisin Coma Flotante
/D(848) - Divisin en coma flotante doble
*(420) y *B(424)

Multiplica 2 nmeros 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
/(430) y /B(434)

Multiplica nmeros 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
*, / 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
*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
Instrucciones en
Coma Flotante
Nmeros reales en coma flotante.

Soporte Tcnico
Nmeros en Coma Flotante

Se pueden expresar los nmeros:


- (e=255, f=0, s=0)
-3.4028231038 -1.17549410-38
0 (e=0)
1.17549410-38 3.4028231038
(e=255, f=0, s=1)
NaN (e=255, f0): Nmero no vlido.

No es necesario conocer el formato de


estos nmeros, slo que ocupan 32
bits.
Precauciones Coma Flotante

Las operaciones indeterminadas 0.0/0.0,


/, - dan como resultado NaN.
Overflow () y Underflow (0). Es ms
peligroso el Overflow al convertir el
resultado a entero (binario con signo).
Los decimales se truncan al convertirlos a
entero (binario con signo).
Cualquier operacin con un NaN como
operando da como resultado NaN.
IEEE754

Expresan nmeros reales en 32 bits


conforme al estndar IEEE754:
f: Mantisa 23 bitsbit 0 al 22
e: Exponente 8 bits bit 23 al 30
s: Signo 1 bit bit 31
(-1)s2e-127(1+f2-23)
1#10000000#11000000000000000000000
Signo: (-1)1= -1
Exponente: 2128-127=21=2
Mantisa: 1+62914562-23=1+0.75=1.75
Resultado: -1.752= -3.5
Instrucciones Coma Flotante

Se pueden realizar las siguientes:


Conversin: 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,
slo que ocupan 32 bits.
FIX(450)

Convierte un nmero en coma flotante a un


entero (binario con signo) de 16 bits.
S: Primera palabra de nmero 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
FIXL(451)

Convierte un nmero en coma flotante a un


entero (binario con signo) de 32 bits.
S: Primera palabra de nmero en coma flotante.
R: Primera palabra donde se guarda el resultado.

La parte decimal es truncada (-3.5 -3)


Rango de -2.147.482.6482.147.482.647.
FIXL(451) @FIXL(451)
S S
R R
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
FLT(452)

Convierte un nmero entero (binario con


signo) de 16 bits en formato de coma
flotante de 32 bits.
S: Palabra del nmero entero.
R: Primera palabra del resultado.

Rango de -32.768 32.767.


FLT(452) @FLT(452)
S S
R R
FLTL(453)

Convierte un nmero entero (binario con


signo) de 32 bits en formato de coma
flotante de 32 bits.
S: Primera palabra del nmero entero.
R: Primera palabra del resultado.

Rango de -2.147.482.6482.147.482.647.
Nmeros > 16.777.215 pierden precisin.
FLTL(453) @FLTL(453)
S S
R R
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
+F(454)

Suma 2 nmeros 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+nmero=NaN.
+F(454) @+F(454)
Au Au
Ad Ad
R R
-F(455)

Resta 2 nmeros 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-nmero=NaN, nmero-NaN=NaN.
-F(455) @-F(455)
Mi Mi
Su Su
R R
+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
*F(456)

Multiplica 2 nmeros 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
NaNnmero=NaN.
*F(456) @*F(456)
Md Md
Mr Mr
R R
/F(457)

Multiplica 2 nmeros 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/nmero=NaN,
nmero/NaN=NaN.
/F(457) @/F(457)
Dd Dd
Dr Dr
R R
*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
OPERACIONES LGICAS
ENTRE PALABRAS

Soporte Tcnico
ANDW(34) y @ANDW(34)

REALIZA LA OPERACIN 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 PARMETROS 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
ORW(35) y @ORW(35)

REALIZA LA OPERACIN 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 PARMETROS 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
XORW(36) y @XORW(36)

REALIZA LA OPERACIN 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 PARMETROS 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


XNORW(37) y @XNORW(37)

REALIZA LA OPERACIN 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 PARMETROS 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


COM(29) y @COM(29)

REALIZA LA OPERACIN 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 PARMETROS 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


Desplazamiento
y rotacin

De todos o N bits en una y dos


palabras

Soporte Tcnico
Desplazamiento y rotacin

1 Canal 2 Canales
Desplazamiento ASL(025) ASLL(570)
ASR(026) ASRL(571)
Rotacin ROL(027) ROLL(572)
ROR(028) RORL(573)
Rotacin sin RLNC(574) RLNL(576)
Carry RRNC(575) RRNL(577)
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)
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
NASL(580) ejemplo
C: Palabra de control.
15 12 7 0

N de bits a desplazar en hexadecimal 0010Hex.

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
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
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
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
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
NSFL(578)

Desplaza N bits de D a la izquierda


empezando por el bit C.
D: Palabra dato.
C: Bit de comienzo.
N: Nmero 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
NSFR(579)

Desplaza N bits de D a la derecha


empezando por el bit C.
D: Palabra dato.
C: Bit de comienzo.
N: Nmero 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
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
Incrementar Decrementar

Autoincremento y Autodecremento

Soporte Tcnico
++(590) ++L(591)

++ incrementa en binario la palabra de 4


dgitos Wd en una unidad.
++L incrementa en binario la palabra de 8
dgitos Wd en una unidad.
Wd: Palabra a incrementar

++(590) @++(590)
Wd Wd

++L(591) @++L(591)
Wd Wd
--(592) --L(593)

-- decrementa en binario la palabra de 4


dgitos Wd en una unidad.
--L decrementa en binario la palabra de 8
dgitos Wd en una unidad.
Wd: Palabra a incrementar

--(592) @--(592)
Wd Wd

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

++B incrementa en BCD la palabra de 4


dgitos Wd en una unidad.
++BL incrementa en BCD la palabra de 8
dgitos Wd en una unidad.
Wd: Palabra a incrementar

++B(594) @++B(594)
Wd Wd

++BL(595) @++BL(595)
Wd Wd
--B(596) --BL(597)

--B decrementa en BCD la palabra de 4


dgitos Wd en una unidad.
--BL decrementa en BCD la palabra de 8
dgitos Wd en una unidad.
Wd: Palabra a incrementar

--B(596) @--B(596)
Wd Wd

--BL(597) @--BL(597)
Wd Wd
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
DESPLAZAMIENTO
Y
ROTACIN
serie C y CS1
1Bit Y Dgitos (4 bits)

Soporte Tcnico
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
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 rotacin siempre es a travs del Carry

ROL(027)
Wd

ROR(028)
Wd
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

Вам также может понравиться