Sie sind auf Seite 1von 17

Operaciones Matemticas

Automatizacin Industrial

ndice
TEMA Operaciones Matemticas
1. Operaciones Aritmticas Bsicas
1.1 Operaciones Aritmticas Bsicas con Nmeros Enteros Simples
1.2 Operaciones Aritmticas Bsicas con Nmeros Enteros Dobles
1.3 Operaciones Aritmticas Bsicas con Nmeros Reales
2. Operaciones Aritmticas Avanzadas
2.1 Funciones Trigonomtricas
2.2 Funciones Logartmicas y Exponenciales
2.3 Otras Funciones
3. Operaciones de Conversin
4. Operaciones de Desplazamiento y Rotacin
5. Operaciones Lgicas con Palabras
6. Operaciones con Bits de la Palabra de Estado
Operaciones Aritmticas Bsicas
Las funciones aritmticas combinan dos valores digitales en los acumuladores
Se incluyen es este apartado las operaciones aritmticas bsicas
El resultado queda en el ACU1
Los bits de estado CC0, CC1, OV y OS proveen informacin adicional del resultado de la
operacin.
Hay funciones para nmeros en coma fija y coma flotante
Se contemplan las operaciones:
suma
resta
multiplicacin
divisin
adicin de constantes
incremento
decremento

Representacin General
La estructura semntica de una operacin aritmtica es:

Funcion
Cargar Direccin1
EN ENO
Cargar Direccin2
Funcin aritmtica IN1
Transferir Resultado
IN2 OUT

Se contemplan las siguientes funciones aritmticas:

Funciones Aritmticas Tipo de dato


INT DINT REAL
ADD_I
Suma +I +D +R
EN
Resta -I -D -R
IN1 OUT
Multiplicacin *I *D *R IN2 ENO
Divisin /I /D /R
Divisin con resto como resultado - MOD -
Uso del Parmetro EN/ENO

EN = Entrada Enable ENO = Salida Enable

EN ENO ( )

Si est activo (1), se Si est activo (1), indica que la


ejecuta la instruccin de la caja.
Caja de instrucciones KOP instruccin se ejecut sin error.
(FC, FB, Move, Add, etc)
Si no est activo (0), no se Si no est activo (0), no se llam
ejecuta la instruccin. a la instruccin o no se produjo
la ejecucin de la instruccin

* AWL no admite los parmetros EN/ENO. ENO = al bit BR en AWL

Nmeros Enteros Simples (I)


Suma de INT (+I) ADD_I L MW4
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
La suma queda en ACU1 IN2 ENO
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) SUB_I L MW5


Interpreta como valores a restar los contenidos L MW11
EN
de las palabras de las partes bajas de ACU1-2 -I
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
Nmeros Enteros Simples (II)
Multiplicacin de INT (*I) MUL_I
Interpreta como valores a multiplicar los contenidos de las palabras de las EN
partes bajas de los acumuladores 1 y 2. IN1 OUT
IN2 ENO
El producto queda en ACU1como un nmero de tipo de dato DINT
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
Para la siguiente multiplicacin el valor est como un DINT en ACU1

Divisin de INT (/I) DIV_I 31 16 15 0


Divide los contenidos de las partes bajas EN ACU2 (Irrelevante) Dividendo
de los acumuladores 1 y 2. IN1 OUT
IN2 ENO /I
ACU2 es el dividendo y ACU1 el divisor Antes

Devuelve en ACU1 cociente y resto (INT) ACU1 (Irrelevante) Divisor


Los bits CC0 y CC1 indican si +, - o cero
Despus =
Los bits OV y OS indican sobrepasamiento
Si divisor=0, dividendo=divisor= 0 ACU1 Resto Cociente
CC0, CC1, Ov y OS se ponen a 1

Nmeros Enteros Dobles (I)


Suma de DINT (+D) ADD_DI
L MD4
L MD10
Interpreta los valores de ACU1 y ACU2 EN +I
como valores en DINT IN1 OUT T MD16
La suma queda en ACU1 IN2 ENO
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

Resta de DINT (-D) SUB_DI


Interpreta los valores de ACU1 y ACU2 como valores en DINT EN
Resta el valor del ACU1 del valor del ACU2 IN1 OUT
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
Nmeros Enteros Dobles (II)
Multiplicacin de DINT (*D) MUL_DI
EN
Interpreta los valores de ACU1 y ACU2 como valores en DINT
IN1 OUT
El resultado de la multiplicacin queda en ACU1 IN2 ENO
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

Divisin de DINT (/D) DIV_DI


Interpreta los valores de ACU1 y ACU2 como valores en DINT EN
Divide el valor de ACU2 (dividendo) entre el valor de ACU1 (divisor) IN1 OUT
IN2 ENO
Almacena el cociente en el ACU1
El cociente es un resultado entero de la divisin.

Divisin de DINT con resto como resultado (MOD) MOD_DI


EN
Interpreta los valores de ACU1 y ACU2 como valores en DINT IN1 OUT
Divide el valor de ACU2 (dividendo) entre el valor de ACU1 (divisor) IN2 ENO
Almacena el resto en el ACU1

Evaluacin de los Bits de la Palabra de Estado


Las operaciones aritmticas de enteros afectan a los bits de estado CC1, CC0, OV y OS
Estado de seal de los bits de la palabra de estado: resultado del clculo dentro del rea vlida

Estado de seal de los bits de la palabra de estado: resultado del clculo fuera del rea vlida

Estado de seal de los bits de la palabra de estado: operaciones aritmticas con nmeros enteros dobles +D, /D y MOD
Nmeros Reales (I)
Suma de REAL (+R) ADD_R
Interpreta los valores de ACU1 y ACU2 como valores de tipo de dato REAL EN
La suma queda en ACU1 IN1 OUT
IN2 ENO
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

Resta de REAL (-R) SUB_R


EN
Interpreta los valores de ACU1 y ACU2 como valores de tipo de dato REAL IN1 OUT
Resta del valor del ACU1 el 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

Nmeros Reales (II)


Multiplicacin REAL (*R) MUL_R L MD6
L MD12
Interpreta los valores de ACU1 y ACU2 como EN
*R
valores de tipo de dato REAL IN1 OUT T MD67
El producto queda en ACU1 IN2 ENO
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 vlido en ACU1 y CC0, CC1,
OV y OS se ponen a 1

Divisin de REAL (/R) DIV_R


L MD67
L MD3
Interpreta los valores de ACU1 y ACU2 como EN /R
valores de tipo de dato REAL IN1 OUT T MD33
Divide el valor de ACU2 (dividendo) IN2 ENO
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 vlido en ACU1 y CC0, CC1
OV y OS se ponen a 1.
Evaluacin de los Bits de la Palabra de Estado
Las operaciones aritmticas de reales afectan a los bits de estado CC1, CC0, OV y OS

Estado de seal de los bits de la palabra de estado para resultados de operaciones en coma flotante dentro del rea vlida

Estado de seal de los bits de la palabra de estado para resultados de operaciones en coma flotante dentro del rea no vlida

Suma de Constantes al ACU1


Funciones Estructura semntica
+ B#16#bb Cargar Direccin1
+ +/-w Adicin Constante
+ L#+/-d Transferir Resultado

La adicin de constantes es til para el clculo de direcciones


Aade la constante especificada al contenido del ACU1
Se puede especificar:
constante byte hexadecimal
constante word o doble word decimal
Para aadir una constante word usando DINT , preceder a la constante con L#
Si una constante decimal excede el rango de INT, calcula automticamente 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 semntica
Cargar Direccin1 Cargar Direccin1
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
Slo 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 Aritmticas Avanzadas

Las funciones matemticas procesan nmeros en formato de datos REAL


Los bits de estado CC0, CC1, OV y OS proveen informacin adicional del resultado de
la operacin.
Las funciones matemticas toman el nmero del ACU1 como entrada
Almacena el resultado en el ACU1
Se contemplan las funciones:
trigonomtricas
arco
cuadrado y raz cuadrada
funcin exponencial en base e y logaritmo natural

Representacin General
La estructura semntica de una operacin aritmtica avanzada es: Funcion
Cargar Direccin1 EN ENO
Funcin matemtica
Transferir Resultado IN OUT
Funciones Trigonomtricas (I)
Funciones Trigonomtricas Ejemplo:
SIN
La potencia elctrica P=V*I*sen
Existen las funciones trigonomtricas: EN OUT L PHI
- seno (SIN) SIN
- coseno (COS) IN ENO L Corriente
- tangente (TAN) TAN *R
La entrada es un ngulo en radianes en L Tension
EN OUT *R
formato de nmero REAL en ACU1
T Potencia
IN ENO

Funciones Arco Ejemplo:


ATAN Arco seno en grados
Existen las funciones arco: L 0.343
EN OUT
- arco seno (ASIN) ASIN
- arco coseno (ACOS) IN ENO L 57.2958
- arco tangente (ATAN) *R
La entrada es un nmero REAL en ACU1 T Angulo_grados
El resultado es un ngulo en radianes en ACU1

Funciones Logartmicas y Exponenciales


Funcin Logartmica (LN)
Calcula el logaritmo natural de un nmero en coma flotante
LN
EN OUT

IN ENO

Exponencial en base e (EXP) Ejemplo: ab = eb ln a


EXP L Valor_a
Realiza la funcin e( ACU1) LN
EN OUT
L Valor_b
*R
IN ENO
EXP
T Potencia
Funciones Cuadrado y Raz Cuadrada
Cuadrado (SQR) Ejemplo: Volumen cilindro
SQR L Radio
Calcula el cuadrado del valor del ACU1 EN OUT
SQR r 2h
L MD 34 L Altura
SQR *R
IN ENO
T MD 38 L 3.141592
*R
T Volumen

Raz cuadrada (SQRT) Ejemplo: c = a 2 + b2


L #a
Extrae la raz cuadrada del valor del ACU1 SQR
L M D10 SQRT L #b
SQRT EN OUT SQR
T MD 14 +R
IN ENO SQRT
T #c

Operaciones de Conversin
Las funciones de conversin convierten el tipo de datos del valor del ACU1

BTI (BCD_I) INVI (INV_I)


BCD INT NEGI (NEG_I)
3 dec. ITB (I_BCD)
ITD
(I_DI)

BTD (BCD_DI) INVD (INV_DI)


DINT NEGD (NEG_DI)
BCD
7 dec. DTB (DI_BCD)
RND+ (CEIL), RND- (FLOOR)
DTR
RND (ROUND), TRUNC (TRUNC)
(DI_R)
ABS
REAL NEGR (NEG_R)
Conversin de Enteros
Estructura Semntica Funcin
Cargar Direccin1
Funcin de conversin EN ENO
Transferir Resultado
IN OUT

Conversin: Nmeros en INT y DINT DI_R


L MD10
DTR
ITD: Conversin de INT a DINT (I_DI) EN ENO T MD30
ITB: Conversin de INT a BCD (I_BCD)
DTB: Conversin de DINT a BCD (DI_BCD) IN OUT
DTR: Conversin de DINT a REAL (DI_R)

Conversin: Nmeros en BCD BCD_I L EW4


BTI
BTI: Conversin de BCD a INT (BCD_I) EN ENO T MW20
BTD: Conversin de BCD a DINT (BCD_DI)
IN OUT

Conversin de Reales
Conversin: Nmeros REAL L MD33
RND
RND: Convierte real a doble entero. Redondea a ms prximo (ROUND) T MD69
TRUNC:Convierte real a doble entero. Trunca el nmero (TRUNC)
RND+: Convierte real a doble entero superior (CEIL)
RND-: Convierte real a doble entero inferior (FLOOR)

Modos de Redondeo en Conversin de Nmeros Reales ROUND


EN ENO

IN OUT
Otras Operaciones de Conversin
Otras funciones de conversin ABS
INVI: Complemento a uno de INT (INV_I) EN ENO
INVD: Complemento a uno de DINT (INV_DI)
NEGI: Complemento a dos de INT (NEG_I) IN OUT
NEGD: Complemento a dos de DINT (NEG_DI)
NEGR: Negacin de nmero REAL, cambio de signo (NEG_R)
ABS: Valor absoluto de un nmero REAL (ABS)

Operaciones de Transferencia
Operacin 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 seal.
Se puede copiar todos los tipos de datos de 8, 16 32
bits de longitud.
Operaciones de Desplazamiento y Rotacin
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
rotacin

Se pueden programar de dos formas: Funcin


El nmero de posiciones en ACU2 EN
IN OUT
Cargar Numero_de_posiciones N ENO
Cargar Dato1
Funcin desplazar
Transferir Resultado

El nmero de posiciones como parmetro


Cargar Dato1
Fun. Desplazar Numero_de_posiciones
Transferir Resultado

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 parmetro en ACU2 como parmetro 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
CC1

CC1 ACU1 ACU1

Desplazamiento derecha (palabra) SRW Desplazamiento derecha (doble palabra) SRD

CC1 0 CC1
0 ACU1 ACU1
Desplazamiento con signo (palabra) SSI Desplazamiento con signo (doble palabra) SSD

S CC1 S CC1
ACU1 ACU1
SHL_W
EN ENO L MW50
* SLW 5
MW50 IN
T MW12
(MW4 = 5) MW4 N O MW12

Rotaciones
Rotar a la izquierda RLD Rotar izquierda a travs de CC1 RLDA
CC1 CC1
ACU1 ACU1

Rotar a la derecha RRD Rotar a la derecha a travs de CC1 RRDA


CC1 CC1
ACU1 ACU1

ROR_DW
* L MD60
EN ENO
RRD 4
MD60 IN T MD50

MW6 N O MD50
* Estado de seal del ltimo bit desplazado:
(MW6 = 4)
Operaciones Lgicas con Palabras
Las funciones lgicas 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: Funcin


Operacin sin constante EN ENO
Cargar Valor1 IN1
Cargar Valor2
Funcin lgica sin constante IN2 OUT
Transferir Resultado
Operacin con constante

Cargar Dato1
Operacin lgica con constante
Transferir Resultado

Operacin Digital AND


Operacin digital AND
AW (WAND_W) operacin AND (palabra) entre ACU1 y ACU2
AW W#16# operacin AND (palabra) entre constante y ACU1
AD (WAND_DW) operacin AND (doble palabra) entre ACU1 y ACU2
AD DW#16# operacin AND (doble palabra) entre constante y ACU1

WAND_W L MW10
L MW20
EN ENO AW
MW10 IN1 T MW30

MW20 IN2 OUT MW30


Operacin Digital OR
Operacin digital OR
OW (WOR_W) operacin OR (palabra) entre ACU1 y ACU2
OW W#16# operacin OR (palabra) entre constante y ACU1
OD (WOR_DW) operacin OR (doble palabra) entre ACU1 y ACU2
OD DW#16# operacin OR (doble palabra) entre constante y ACU1

WOR_W
L MW32
EN ENO
L MW44
MW32 IN1 OW
T MW34
MW44 IN2 OUT MW34

Operacin Digital OR Exclusiva


Operacin digital OR exclusiva
XOW (WXOR_W) operacin OR exclusiva (palabra) entre ACU1 y ACU2
XOW W#16# operacin OR excl. (palabra) entre constante y ACU1
XOD (WXOR_DW) operacin OR excl. (doble palabra) entre ACU1 y ACU2
XOD DW#16# operacin 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 Lgicas con Palabras
Ejemplo 1 Ejemplo 3
L IW 0 // Valor 1 L Valor1
L MW 144 // Valor 2 L Valor2
AW // Operacin lgica AW
T MW 146 // Resultado L Valor3
OW
T Resultado
Ejemplo 2
L MW 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

Das könnte Ihnen auch gefallen