Вы находитесь на странице: 1из 17
Operaciones Matemáticas
Operaciones
Matemáticas
Automatización Industrial
Automatización Industrial
Índice TEMA – Operaciones Matemáticas 1. – Operaciones Aritméticas Básicas 1.1 – Operaciones Aritméticas
Índice
TEMA – Operaciones Matemáticas
1.
– Operaciones Aritméticas Básicas
1.1 –
Operaciones Aritméticas Básicas con Números Enteros Simples
1.2 –
Operaciones Aritméticas Básicas con Números Enteros Dobles
1.3 –
Operaciones Aritméticas Básicas con Números Reales
2.
– Operaciones Aritméticas Avanzadas
2.1 – Funciones Trigonométricas
2.2 – Funciones Logarítmicas
y Exponenciales
2.3 – Otras Funciones
3.
– Operaciones de Conversión
4.
– Operaciones de Desplazamiento y Rotación
5.
– Operaciones Lógicas con Palabras
6.
– Operaciones con
Bits
de
la Palabra de Estado
Operaciones Aritméticas Básicas • Las funciones aritméticas combinan dos valores digitales en los acumuladores
Operaciones Aritméticas
Básicas
Las
funciones aritméticas combinan dos valores digitales en los acumuladores
Se incluyen es este apartado las operaciones aritméticas básicas
El resultado
queda en el ACU1
Los
bits de estado CC0, CC1, OV y OS proveen información adicional del resultado de la
operación.
Hay funciones
para números en coma fija y coma flotante
Se contemplan
las operaciones:
suma
resta
multiplicación
división
adición
de constantes
incremento
decremento
Representación General • La estructura semántica de una operación aritmética es: Funcion Cargar Dirección1 EN
Representación General
La estructura semántica de una operación aritmética es:
Funcion
Cargar
Dirección1
EN
ENO
Cargar
Dirección2
Función aritmética
IN1
Transferir
Resultado
IN2
OUT
Se contemplan las siguientes funciones aritméticas:
Funciones Aritméticas
Tipo de dato
INT
DINT
REAL
ADD_I
Suma
+I
+D
+R
EN
Resta
-I
-D
-R
IN1
OUT
Multiplicación
*I
*D
*R
IN2
ENO
División
/I
/D
/R
División con resto como resultado
-
MOD
-
Uso del Parámetro EN/ENO EN = Entrada Enable ENO = Salida Enable ( ) EN
Uso
del Parámetro EN/ENO
EN = Entrada Enable
ENO = Salida Enable
(
)
EN
ENO
Si está activo
(1), se
Si está activo (1), indica que la
ejecuta la instrucción de
la
caja.
instrucción se ejecutó sin error.
Caja de
instrucciones KOP
(FC, FB,
Move, Add, etc)
Si no
está activo (0), no se
Si no está activo (0), no se llamó
ejecuta la instrucción.
a
la instrucción o no se produjo
la
ejecución de la instrucción
*
AWL
no
admite los
parámetros EN/ENO.
ENO =
al bit BR en AWL
Números Enteros Simples (I) Suma de INT (+I) L MW4 ADD_I L MW10 • Interpreta
Números Enteros Simples
(I)
Suma de INT (+I)
L
MW4
ADD_I
L
MW10
Interpreta como valores a sumar los contenidos
EN
+I
de las
palabras de las partes
bajas de los ACU1-2
IN1 OUT
T
MW6
IN2
ENO
La suma
queda en ACU1
En los
bits CC0 y CC1
indica si el resultado
ha sido positivo, negativo o cero.
Los
bits de estado OV
y
OS
indican
cualquier sobrepasamiento del rango
La parte alta del ACU1 no se modifica
Resta de INT (-I)
L
MW5
SUB_I
Interpreta como valores a restar los contenidos
L
MW11
EN
-I
de las
palabras de las partes
bajas de ACU1-2
IN1 OUT
T
MW7
Resta el valor del ACU1 del valor del ACU2
IN2
ENO
El resultado queda en ACU1
En los
bits CC0 y CC1
indica si el resultado
ha sido
positivo, negativo o cero.
Los
bits de estado OV
y
OS
indican
cualquier sobrepasamiento del rango
La parte alta del ACU1 no se ha modificado
Números Enteros Simples (II) En los         Multiplicación de INT (*I) Interpreta
Números Enteros Simples (II) En los         Multiplicación de INT (*I) Interpreta
Números Enteros Simples (II) En los         Multiplicación de INT (*I) Interpreta
Números Enteros Simples (II) En los         Multiplicación de INT (*I) Interpreta

Números Enteros Simples

(II)

Números Enteros Simples (II) En los         Multiplicación de INT (*I) Interpreta como
Números Enteros Simples (II) En los         Multiplicación de INT (*I) Interpreta como
Números Enteros Simples (II) En los         Multiplicación de INT (*I) Interpreta como
Números Enteros Simples (II) En los         Multiplicación de INT (*I) Interpreta como
Números Enteros Simples (II) En los         Multiplicación de INT (*I) Interpreta como

En los

       

Multiplicación de INT (*I)

Interpreta como valores a multiplicar los contenidos de las palabras de las

partes bajas

El producto

queda en ACU1como un número de tipo de dato DINT

bits de estado OV

ha sido

positivo, negativo o cero.

cualquier sobrepasamiento del rango

Para la siguiente multiplicación el valor está como un DINT

 

MUL_I

IN1 OUT

ENO

   

de los

ACU2

de

los acumuladores

1 y 2.

bits CC0 y CC1

indica si el resultado

OS indican sobrepasamiento

en ACU1

31

DIV_I

División de INT (/I)

Divide los contenidos de las partes bajas

(Irrelevante)

(Irrelevante)

IN1 OUT

Devuelve en ACU1

bits CC0 y CC1

bits OV y

Si divisor=0, dividendo=divisor=

CC0, CC1, Ov

16

15

0

Dividendo

Divisor

Cociente

         
Números Enteros Dobles (I) como La suma En los En los        
Números Enteros Dobles (I) como La suma En los En los        
Números Enteros Dobles (I) como La suma En los En los        
Números Enteros Dobles (I) como La suma En los En los        

Números Enteros Dobles

(I)

Números Enteros Dobles (I) como La suma En los En los         Suma
Números Enteros Dobles (I) como La suma En los En los         Suma
Números Enteros Dobles (I) como La suma En los En los         Suma

como

La suma

En los

En los

       

Suma de DINT (+D)

Interpreta los valores de ACU1 y ACU2

sido positivo, negativo o cero.

bits de estado OV

cualquier sobrepasamiento del rango

   

valores en

DINT

queda en ACU1

y

OS

indican

IN2

ENO

positivo, negativo

o cero.

ha sido

Resta de DINT (-D)

Interpreta los valores de ACU1 y ACU2 como valores en DINT

Resta el valor del ACU1 del valor del ACU2

El resultado queda en ACU1

bits de estado OV

cualquier sobrepasamiento del rango

ENO

SUB_DI

IN1 OUT

Números Enteros Dobles (II) Los En los         bits CC0 y CC1
Números Enteros Dobles (II) Los En los         bits CC0 y CC1
Números Enteros Dobles (II) Los En los         bits CC0 y CC1
Números Enteros Dobles (II) Los En los         bits CC0 y CC1

Números Enteros Dobles

(II)

Números Enteros Dobles (II) Los En los         bits CC0 y CC1 indica
Números Enteros Dobles (II) Los En los         bits CC0 y CC1 indica
Números Enteros Dobles (II) Los En los         bits CC0 y CC1 indica

Los

En los

       

bits CC0 y CC1

indica si el resultado

y OS

indican

entre

el

positivo, negativo o cero.

valor

de ACU1

(divisor)

ha sido

Multiplicación de DINT (*D)

Interpreta los valores de ACU1 y

ACU2 como valores en DINT

El resultado de la multiplicación queda en ACU1

bits de estado OV

cualquier sobrepasamiento del rango

MUL_DI

IN1 OUT

ENO

División de DINT (/D)

Interpreta los valores de ACU1 y ACU2 como valores en DINT

Divide el valor de ACU2 (dividendo) entre el valor de ACU1 (divisor)

Almacena el cociente en

El cociente

un resultado entero de la división.

 

DIV_DI

IN1 OUT

ENO

División de DINT con resto como resultado (MOD)

Interpreta los

Divide el valor de ACU2 (dividendo)

Almacena el resto en el ACU1

como valores en DINT

 

MOD_DI

IN1 OUT

ENO

Evaluación de los Bits de la Palabra de Estado • Las operaciones aritméticas de enteros
Evaluación de los Bits de la Palabra de Estado • Las operaciones aritméticas de enteros
Evaluación de los Bits de la Palabra de Estado • Las operaciones aritméticas de enteros
Evaluación de los Bits de la Palabra de Estado • Las operaciones aritméticas de enteros

Evaluación de los Bits de

Evaluación de los Bits de la Palabra de Estado • Las operaciones aritméticas de enteros afectan
Evaluación de los Bits de la Palabra de Estado • Las operaciones aritméticas de enteros afectan
Evaluación de los Bits de la Palabra de Estado • Las operaciones aritméticas de enteros afectan

la Palabra de Estado

Evaluación de los Bits de la Palabra de Estado • Las operaciones aritméticas de enteros afectan
• Las operaciones aritméticas de enteros afectan a los bits de estado CC1, CC0, OV
Las
operaciones aritméticas
de
enteros
afectan
a los
bits de estado CC1, CC0, OV y OS
Estado de señal de los bits de la palabra de estado: resultado del cálculo dentro del área válida
Estado de señal de los bits de la palabra de estado: resultado del cálculo fuera del área válida
Estado de señal de los bits de la palabra de estado: operaciones aritméticas con números enteros dobles +D, /D y MOD
Números Reales (I) La suma En los Resta Los bits         Suma
Números Reales (I) La suma En los Resta Los bits         Suma
Números Reales (I) La suma En los Resta Los bits         Suma

Números Reales (I)

Números Reales (I) La suma En los Resta Los bits         Suma de
Números Reales (I) La suma En los Resta Los bits         Suma de
Números Reales (I) La suma En los Resta Los bits         Suma de
Números Reales (I) La suma En los Resta Los bits         Suma de
Números Reales (I) La suma En los Resta Los bits         Suma de

La suma

En los

Resta

Los bits

       

Suma de REAL (+R)

Interpreta los valores de ACU1 y

bits de estado OV

ACU2 como valores de tipo de dato REAL

ha sido

cualquier sobrepasamiento del rango

 

ADD_R

IN1 OUT

ENO

queda en ACU1

bits CC0 y CC1

indica si el resultado

y

OS

indican

valores de

del valor del

ACU1 el valor del

en

ACU1

ACU2

de

CC0 y CC1 indica

si

estado OV y

OS indican cualquier

positivo, negativo o cero.

sobrepasamiento del

rango

Resta de REAL (-R)

Interpreta los

ACU1 y ACU2 como valores de tipo de dato REAL

El resultado queda

los bits

el resultado ha sido positivo, negativo o cero.

SUB_R

IN1 OUT

ENO

Números Reales (II) Multiplicación REAL (*R) L MD6 MUL_R L MD12 • Interpreta los valores
Números Reales (II)
Multiplicación REAL (*R)
L
MD6
MUL_R
L
MD12
Interpreta los valores de ACU1 y ACU2 como
EN
*R
valores de tipo
de dato
REAL
IN1 OUT
T
MD67
IN2
ENO
El producto
queda en ACU1
En los
bits CC0 y CC1
indica si el resultado
ha sido
positivo, negativo o cero.
Los
bits de estado OV
y
OS
indican
cualquier sobrepasamiento del rango
Si un operando
no
es
REAL,
retorna un
valor no válido
en
ACU1 y CC0, CC1,
OV
y
OS
se
ponen a “1”
División de REAL (/R)
L
MD67
DIV_R
L
MD3
Interpreta los valores de ACU1 y ACU2 como
EN
/R
valores de tipo
de dato
REAL
IN1 OUT
T
MD33
IN2
ENO
Divide el
valor de ACU2
(dividendo)
entre el valor de ACU1 (divisor)
Almacena el cociente en el ACU1
En los
bits CC0 y CC1
indica si el cociente ha
sido positivo,
negativo o cero.
Los
bits de estado OV
y
OS
indican
cualquier sobrepasamiento del rango
Si un operando no es REAL, retorna un valor no válido en ACU1
y CC0,
CC1
OV
y
OS
se
ponen a “1”.
Evaluación de los Bits de la Palabra de Estado • Las operaciones aritméticas de reales
Evaluación de los Bits de
la Palabra de Estado
• Las
operaciones aritméticas
de
reales afectan a
los bits
de
estado CC1,
CC0, OV y OS
Estado de señal de los bits de la palabra de estado para resultados de operaciones en coma flotante dentro del área válida
Estado de señal de los bits de la palabra de estado para resultados de operaciones en coma flotante dentro del área no válida
Suma de Constantes al ACU1 Funciones Estructura semántica + B#16#bb Cargar Dirección1 + +/-w Adición
Suma de Constantes al ACU1
Funciones
Estructura semántica
+
B#16#bb
Cargar
Dirección1
+
+/-w
Adición
Constante
+
L#+/-d
Transferir
Resultado
La
adición de constantes es útil para el cálculo de direcciones
Añade la constante
especificada al contenido del ACU1
Se puede especificar:
constante
byte
hexadecimal
constante
word o
doble word decimal
Para añadir
una constante word usando DINT ,
preceder a la constante
con L#
Si una
constante decimal
excede el rango
de INT,
calcula
automáticamente en DINT
Ejemplos:
L
Valor1
L
Valor2
L
Valor3
+
B#16#21
+
-33
+
L#-1
T
Resultado1
T
Resultado2
T
Resultado3
Decremento e Incremento Decremento (DEC n) Incremento (INC n) Estructura semántica Cargar Dirección1 Cargar
Decremento e Incremento
Decremento
(DEC n)
Incremento (INC n)
Estructura
semántica
Cargar
Dirección1
Cargar
Dirección1
Decrementar
Valor
Incrementar
Valor
Transferir
Resultado
Transferir
Resultado
Las
funciones
DEC e INC afectan a ACU1
El valor que se puede incrementar o decrementar tiene un rango de 0 a 255
Sólo afecta
al byte de menor peso del ACU1
No
hay llevada (carry) al
byte
siguiente
Se ejecutan
con independencia del RLO
Ejemplos:
L
ValorInicial
L
ValorFinal
INC
5
DEC
7
T
ValorInicial
T
ValorFinal
Operaciones Aritméticas Avanzadas • Las funciones matemáticas procesan números en formato de datos REAL •
Operaciones Aritméticas Avanzadas
Las funciones matemáticas procesan números en formato de datos REAL
Los bits
de
estado CC0, CC1, OV y OS proveen información adicional del resultado de
la operación.
Las funciones
matemáticas
toman el número del ACU1 como entrada
Almacena el resultado en el ACU1
Se contemplan las funciones:
trigonométricas
arco
cuadrado
y raíz cuadrada
función exponencial
en base
“e” y logaritmo
natural
Representación General
La
estructura semántica de una operación aritmética avanzada es:
Funcion
Cargar
Dirección1
EN
ENO
Función matemática
IN
OUT
Transferir
Resultado
Funciones Trigonométricas (I) Funciones Trigonométricas Ejemplo: SIN La potencia eléctrica P=V*I*senϕ •
Funciones Trigonométricas (I)
Funciones Trigonométricas
Ejemplo:
SIN
La potencia eléctrica P=V*I*senϕ
Existen las
funciones trigonométricas:
EN
OUT
L
PHI
- seno
(SIN)
SIN
- coseno
(COS)
IN
ENO
L
Corriente
- tangente (TAN)
*R
TAN
La entrada es un ángulo en radianes
formato de número REAL en ACU1
en
L
Tension
EN
OUT
*R
T
Potencia
IN
ENO
Funciones Arco
Ejemplo:
ATAN
Arco seno en grados
Existen las
funciones arco:
EN
OUT
L
0.343
- seno
arco
(ASIN)
ASIN
- arco
coseno (ACOS)
IN
ENO
L
57.2958
- arco
tangente (ATAN)
*R
La entrada es un número
REAL en ACU1
T
Angulo_grados
El resultado es un ángulo
en radianes en ACU1
Funciones Logarítmicas y Exponenciales       Función Logarítmica (LN) Calcula el logaritmo natural de
Funciones Logarítmicas y Exponenciales       Función Logarítmica (LN) Calcula el logaritmo natural de
Funciones Logarítmicas y Exponenciales       Función Logarítmica (LN) Calcula el logaritmo natural de
Funciones Logarítmicas y Exponenciales       Función Logarítmica (LN) Calcula el logaritmo natural de

Funciones Logarítmicas y

Exponenciales

Funciones Logarítmicas y Exponenciales       Función Logarítmica (LN) Calcula el logaritmo natural de
Funciones Logarítmicas y Exponenciales       Función Logarítmica (LN) Calcula el logaritmo natural de
Funciones Logarítmicas y Exponenciales       Función Logarítmica (LN) Calcula el logaritmo natural de
     

Función Logarítmica (LN)

Calcula el logaritmo natural de un número en coma flotante

 

Exponencial en base e (EXP)

Realiza la función

Valor_a

Valor_b

Potencia

Funciones Cuadrado y Raíz Cuadrada     Cuadrado (SQR) Calcula el cuadrado del valor del
Funciones Cuadrado y Raíz Cuadrada     Cuadrado (SQR) Calcula el cuadrado del valor del
Funciones Cuadrado y Raíz Cuadrada     Cuadrado (SQR) Calcula el cuadrado del valor del
Funciones Cuadrado y Raíz Cuadrada     Cuadrado (SQR) Calcula el cuadrado del valor del

Funciones Cuadrado y Raíz Cuadrada

Funciones Cuadrado y Raíz Cuadrada     Cuadrado (SQR) Calcula el cuadrado del valor del ACU1
Funciones Cuadrado y Raíz Cuadrada     Cuadrado (SQR) Calcula el cuadrado del valor del ACU1
Funciones Cuadrado y Raíz Cuadrada     Cuadrado (SQR) Calcula el cuadrado del valor del ACU1
Funciones Cuadrado y Raíz Cuadrada     Cuadrado (SQR) Calcula el cuadrado del valor del ACU1
   

Cuadrado (SQR)

Calcula el cuadrado del valor del ACU1

Raíz cuadrada (SQRT)

Extrae la raíz

Ejemplo:

π

c =

Ejemplo: Volumen cilindro

+b

2

r h

Ejemplo: π c = Ejemplo: Volumen cilindro + b 2 r h
Operaciones de Conversión • Las funciones de conversión convierten el tipo de datos del valor
Operaciones de Conversión
Las funciones de conversión convierten el tipo de datos del valor del ACU1
INVI (INV_I)
BTI (BCD_I)
BCD
NEGI (NEG_I)
INT
3
dec.
ITB (I_BCD)
ITD
(I_DI)
INVD (INV_DI)
BTD
(BCD_DI)
NEGD (NEG_DI)
DINT
BCD
7
dec.
DTB
(DI_BCD)
RND+ (CEIL), RND- (FLOOR)
DTR
RND
(ROUND), TRUNC (TRUNC)
(DI_R)
ABS
NEGR (NEG_R)
REAL
Conversión de Enteros               Estructura Dirección1 Función de
Conversión de Enteros               Estructura Dirección1 Función de
Conversión de Enteros               Estructura Dirección1 Función de

Conversión de Enteros

Conversión de Enteros               Estructura Dirección1 Función de
Conversión de Enteros               Estructura Dirección1 Función de
Conversión de Enteros               Estructura Dirección1 Función de
Conversión de Enteros               Estructura Dirección1 Función de
Conversión de Enteros               Estructura Dirección1 Función de
           
 

Estructura

Dirección1

Función de conversión

Resultado

   

ITD:

ITB:

DTB:

DTR:

Conversión: Números en INT y DINT

Conversión de DINT a BCD (DI_BCD)

DTR

 

BTI:

BTD:

Conversión de DINT a REAL

(DI_R)

DINT (BCD_DI)

Función

Conversión: Números en BCD

BTI

Conversión de Reales Conversión: Números REAL L MD33 RND RND: Convierte real a doble entero.
Conversión de Reales Conversión: Números REAL L MD33 RND RND: Convierte real a doble entero.
Conversión de Reales Conversión: Números REAL L MD33 RND RND: Convierte real a doble entero.

Conversión de Reales

Conversión de Reales Conversión: Números REAL L MD33 RND RND: Convierte real a doble entero. Redondea
Conversión de Reales Conversión: Números REAL L MD33 RND RND: Convierte real a doble entero. Redondea
Conversión de Reales Conversión: Números REAL L MD33 RND RND: Convierte real a doble entero. Redondea
Conversión de Reales Conversión: Números REAL L MD33 RND RND: Convierte real a doble entero. Redondea
Conversión de Reales Conversión: Números REAL L MD33 RND RND: Convierte real a doble entero. Redondea
Conversión: Números REAL L MD33 RND RND: Convierte real a doble entero. Redondea a más
Conversión: Números REAL
L
MD33
RND
RND:
Convierte real
a
doble entero. Redondea a más próximo (ROUND)
T
MD69
TRUNC:Convierte real a doble entero. Trunca el número (TRUNC)
RND+:
Convierte real
a
doble
entero superior (CEIL)
RND-:
Convierte real
a
doble
entero inferior (FLOOR)
Modos de Redondeo en Conversión de Números Reales
ROUND
EN
ENO
IN
OUT

Otras

Operaciones de Conversión

       
       

INVI:

INVD:

NEGI:

NEGD:

NEGR:

ABS:

(NEG_I)

Otras funciones de conversión

uno de DINT (INV_DI)

dos de DINT (NEG_DI)

Negación de número REAL, cambio de signo (NEG_R)

absoluto de un número REAL (ABS)

ABS

ENO

OUT

Operaciones de Transferencia Operación MOVE MOVE • Permite inicializar variables con valores determinados. EN ENO
Operaciones de Transferencia
Operación MOVE
MOVE
Permite inicializar variables con valores determinados.
EN
ENO
El valor
indicado en la entrada IN se copia en el
operando indicado de
la salida OUT. ENO y EN
IN
OUT
tienen el
mismo
estado de señal.
Se puede copiar todos
bits de longitud.
los tipos de datos de
8,
16
ó 32
Operaciones de Desplazamiento y Rotación • Las funciones de desplazamiento permiten desplazar el contenido del
Operaciones de Desplazamiento y Rotación
Las funciones de desplazamiento permiten desplazar el contenido del ACU1 hacia la
derecha o hacia la izquierda
Se pueden utilizar con palabras y dobles palabras
Devuelven
el resultado en el ACU1
Se contemplan las operaciones:
desplazamiento
rotación
Se pueden programar de dos formas:
Función
El
número de posiciones en ACU2
EN
IN
OUT
Cargar
Numero_de_posiciones
N
ENO
Cargar
Dato1
Función desplazar
Transferir
Resultado
El número
de posiciones como parámetro
Cargar
Dato1
Fun.
Desplazar
Numero_de_posiciones
Transferir
Resultado
Funciones de Registro Se contemplan las siguientes funciones de registro: Funciones de Registro Palabra Doble
Funciones de Registro
Se
contemplan las siguientes funciones de registro:
Funciones de Registro Palabra
Doble palabra
con nº posiciones
con nº posiciones con nº posiciones
con nº posiciones
como
parámetro
en ACU2
como parámetro
en ACU2
Desplazar a la izquierda
SLW
n
(SHL_W)
SLW
SLD n (SHL_DW)
SLD
Desplazar
a la derecha
SRW
n
(SHR_W)
SRW
SRD n (SHR_DW)
SRD
Desplazar con el signo
SSI n
(SHR_I)
SSI
SSD n (SHR_DI)
SSD
Rotar a la
izquierda
-
-
RLD
n
(ROL_DW)
RLD
Rotar a la
derecha
-
-
RRD
n
(ROR_DW)
RRD
Rotar izqui. con
CC1
-
-
RLDA
-
Rotar derecha con CC1
-
-
RRDA
-
Desplazamientos Desplazamiento izquierda (palabra) SLW Desplazamiento izquierda (doble palabra) SLD “0” “0”
Desplazamientos
Desplazamiento izquierda (palabra) SLW
Desplazamiento izquierda (doble palabra) SLD
“0”
“0”
CC1
ACU1
ACU1
CC1
Desplazamiento derecha (palabra) SRW
Desplazamiento derecha (doble palabra) SRD
“0”
CC1
CC1
“0”
ACU1
ACU1
Desplazamiento con signo (palabra) SSI
Desplazamiento con signo (doble palabra) SSD
S
CC1
S
CC1
ACU1
ACU1
SHL_W
L
MW50
EN
ENO
*
SLW
5
MW50
IN
T
MW12
MW4
MW12
(MW4 = 5)
N
O
Rotaciones Rotar a la izquierda RLD Rotar izquierda a través de CC1 RLDA CC1 CC1
Rotaciones
Rotar
a la izquierda RLD
Rotar izquierda a través de CC1
RLDA
CC1
CC1
ACU1
ACU1
Rotar
a la derecha RRD
Rotar a
la derecha a través de CC1 RRDA
CC1
CC1
ACU1
ACU1
ROR_DW
*
L
MD60
EN
ENO
RRD
4
MD60
IN
T
MD50
MW6
N
MD50
O
* Estado de señal del último bit desplazado:
(MW6 = 4)
Operaciones Lógicas con Palabras • Las funciones lógicas de palabras combinan los contenidos del ACU1
Operaciones Lógicas con
Palabras
Las funciones lógicas de palabras combinan los contenidos del ACU1 y ACU2 bit a bit.
El resultado queda en
el ACU1
Hay funciones para palabras o dobles palabras
Se dispone
de
funciones:
AND
OR
OR Exclusiva
Se pueden programar de dos formas:
Función
Operación sin constante
EN
ENO
Cargar
Valor1
IN1
Cargar
Valor2
IN2
OUT
Función lógica sin constante
Transferir
Resultado
Operación
con constante
Cargar
Dato1
Operación lógica
con constante
Transferir
Resultado
Operación Digital AND Operación digital AND • AW (WAND_W) operación AND (palabra) entre ACU1 y
Operación Digital AND
Operación
digital AND
AW
(WAND_W)
operación
AND (palabra) entre ACU1 y ACU2
AW
W#16#
operación
AND (palabra)
entre constante y ACU1
AD
(WAND_DW)
operación
AND (doble
palabra) entre ACU1 y ACU2
AD
DW#16#
operación
AND (doble
palabra) entre constante
y ACU1
WAND_W
L
MW10
L
MW20
EN
ENO
AW
MW10
IN1
T
MW30
MW20
IN2
OUT
MW30
Operación Digital OR Operación digital OR • OW (WOR_W) operación OR (palabra) entre ACU1 y
Operación Digital OR
Operación
digital OR
OW (WOR_W)
operación
OR (palabra) entre ACU1 y ACU2
OW
W#16#
operación
OR (palabra)
entre constante y ACU1
OD
(WOR_DW)
operación
OR (doble palabra) entre ACU1
y
ACU2
OD
DW#16#
operación
OR (doble palabra) entre constante y
ACU1
WOR_W
L
MW32
EN
ENO
L
MW44
MW32
IN1
OW
T
MW34
MW44
IN2
OUT
MW34
Operación Digital OR Exclusiva Operación digital OR exclusiva • XOW (WXOR_W) operación OR exclusiva (palabra)
Operación Digital OR Exclusiva
Operación
digital OR exclusiva
XOW (WXOR_W)
operación
OR exclusiva (palabra) entre ACU1 y ACU2
XOW
W#16#
operación
OR excl. (palabra) entre constante y ACU1
XOD (WXOR_DW)
operación
OR excl. (doble palabra) entre ACU1 y ACU2
XOD
DW#16#
operación
OR excl. (doble palabra) entre constante y
ACU1
WXOR_W
L
MW26
EN
ENO
L
MW28
XOW
MW26
IN1
T
MW24
MW28
IN2
OUT
MW24
   

Ejemplos de Operaciones Lógicas con Palabras

 

Ejemplo 1

   

Ejemplo 3

L

IW

0

// Valor 1

L

Valor1

L

MW

144

//

Valor 2

L

Valor2

AW

 

//

Operación lógica

AW

T

MW

146

//

Resultado

L

Valor3

 

OW

 

Ejemplo 2

L

MW

   

T

Resultado

148

Ejemplo 4

AW

W#16#807F

 

L

Valor4

T

MW

150

L

Valor5

L

MD

152

XOW

OD

DW#16#8000_F000

AW

W#16#FFF0

T

MD

156

T

Resultado2