Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porBayardo Quintana Modificado hace 10 años
1
Operaciones de bloques de bits Pablo San Segundo C-206 pablo.sansegundo@upm.es
2
Índice Arquitectura de programación Palabra de estado (State Register) Acumuladores Arquitectura de bloques (AWL) Operadores de más de un bit Carga y Transferencia Operaciones de comparación (>,, >=,…) Operaciones aritméticas (+, -, *, /, SQR, SQRT) Máscaras (Y, OR, XOR) Otras
3
Palabra de estado (SR) RBA1A0OVOSORSTARLO/ER BITNombreSignificado 0/ERPrimera consulta a nivel bajo 1RLOResultado lógico 2STAValor del bit direccionado 3ORCombinación Y = 1 4OSOverflow memorizado (stored) 5OVOverflow última operación 6A0Res. Comparación / Artimética / Op. lógicas / Op. Shift+Rot / Errores 7A1Res. Comparación / Artimética / Op. lógicas / Op. Shift+Rot / Errores 8RBResultado Binario 9-15xSin uso
4
Consulta de biestables de la palabra de estado ConsultaDevuelve TRUE si se cumple ==0A1=0 AND A0=0 <>0A1 distinto de A0 >0A1=1 AND A0=0 <0A1=0 AND A0=1 >=0==0 OR >0 <=0==0 OR <0 UOA1=1 AND A0=1 (Error en tiempo de ejecución: p.ej. división por cero) BIERB=1 OSOS=1 OVOV=1 U ==0 S M 1.0 U BIE S M1.1 OB1
5
Acumuladores Registros de la ALU de 32 bits Número variable: Típicamente 2 en gamas medias. En gamas altas (p. ej. S7-400) puede haber hasta 4 Encargados de realizar las operaciones de mas de 1 bit
6
Arquitectura de bloques Sistema Operativo OB1: Ciclo principal OBX FCX CALL CC UC CALL FCX DBX FBX Bloque de datos de instancia A todos los bloques DBX Bloque de datos global DBX FBX Bloque de datos de instancia
7
Índice Arquitectura de programación Palabra de estado (State Register) Acumuladores Arquitectura de bloques (AWL) Operadores de más de un bit Carga y Transferencia Operaciones de comparación (>,, >=,…) Operaciones aritméticas (+, -, *, /, SQR, SQRT) Máscaras (Y, OR, XOR) Otras
8
Operadores Carga (L) y Transferencia (T) EW10 MW10 ACU1 ACU2 Acumuladores (32 bits) L EW10 1)ACU2=ACU1 2)ACU1=EW10 T MW10: EW10 = ACU1 ACU2 = ACU1 ACU1 = EW10 EW10 = ACU1
9
Operaciones de comparación ACU2ACU1 RLO A1A0 OperadorTamaño(bits)Comentario (==,<>,>, =,<=) I16 ACU-1 y ACU-2 no varían (==,<>,>, =,<=) D32 (==,<>,>, =,<=) R32 Importante: En el caso de operaciones de comparación, los bits de la palabra de estado A1 y A0 se actualizan de acuerdo con el tamaño relativo de los argumentos y no dependen del resultado lógico de la comparación.
10
Ejemplos (1/2) L 5 L 8 >=I ACU1=8, ACU2=5 A1=0, A0=1, RLO=0 L 5 L 8 <=I L 9.7E+6 L 2 <I ACU1=2, ACU2=9.7E+6 A1=1, A0=0, OV=0, OS=0 ACU1=8, ACU2=5 A1=0, A0=1, RLO=1 L 5 L 8 <I = M 1.0 L EW0 L EW2 <I = A 1.0 U ==0 = A1.1 A1.0 = 1 si EW0 < EW2 (con signo) A1.1 = 1 si EW0 == EW2 M1.0=1
11
Control de flujo: SPA, SPB y SPBN SPA Salto incondicional a la instrucción con ETIQUETA Equivale a goto ETIQUETA SPB Salto a la instrucción con ETIQUETA si el RLO = 1 Equivale a if (RLO==1) then goto ETIQUETA SPBN Salto a la instrucción con ETIQUETA si el RLO =0 Equivale a if (RLO == 0) then goto ETIQUETA
12
Ejemplos (2/2) 1 2 C=C+1 C>=3 C<3 15 S1 S0 //… U X2 ZV Z1 // Ec. activación L Z1 L 3 >=I U X2 SPB _MA U X2 S X1 R X2 SPA FIN _MA: NOP 0 U X2 S X15 R X2 FIN: NOP 0 OB1-A //… U X2 ZV Z1 // Ec. activación L Z1 L 3 >=I U X2 S X15 R X2 U <0 U X2 S X1 R X2 //… OB1-B Primera consulta (/ER=0) Salto condicionado a que RLO = 1 Salto incondicional
13
Operaciones aritméticas (1/3) Dos operandos implícitos en acumuladores ACU2ACU1 ACU1 A1, A0, OV, OS OperadorTamaño(bits)Comentario (+,-,/,*) I16 /I: Cociente ACU1-L, Resto ACU1-H (+,-,/,*) D32 /D: Cociente ACU1 (+,-,/,*) R32 A1: “resultado mayor que cero” A0: “resultado menor que cero” OV: “desbordamiento” (A1 y A0 complementan el tipo) OS: “desbordamiento memorizado” (al menos un desbordamiento)
14
Reglas generales para biestables A0 y A1 Operaciones aritméticas (2/3) OVERFLOW VALOR ACU1 EN RELACIÓN CON 0 A1=0 y A0=0 : ACU1 = 0 A1=1 y A0=0 sin desbordamiento: ACU1 > 0 A1=0 y A0=1 sin desbordamiento : ACU1 <0 A1=1 y OV=1 : desbordamiento por arriba de ACU1 A0=1 y OV=1 : desbordamiento por debajo de ACU1 A1=1 y A1=1 : excepción división por cero, tipado incorrecto etc.
15
Ejemplos L-8 L6L6 +I//ACU1-L=-2, A1=0, A0=1 (sin desbordamiento) L2L2 L6L6 /I//ACU1-L=0, ACU1-H=2, A1=1, A0=0 (sin desbordamiento) L1000 L100 *I//ACU1=100000, OV=1, OS=1, A1=1, A0=0 L1000 L100 *I//OS=1, OV=1 L200 L5L5 *I//ACU1=1000, OV=0, OS=1, A1=1, A0=0
16
Operaciones aritméticas (3/3) Un único operando implícito en ACU1 ACU1 ACU1 ABS SQR SQRT EXP LN SIN COS TAN ASIN ACOS ATAN… REAL L 9.0E10 SQR UN OV SPB OK SPA FIN OK: T MD10 FIN: NOP 0 EJERCICIO: Interprete cada instrucción del código siguiente REAL
17
Recapitulación: biestables A1 y A0 ConsultaTRUE (RLO = 1) Tras Op. AritméticaTras Op. Comparación ==0A1=0 AND A0=0ACU1=0ACU2 == ACU1 <>0A1 distinto de A0ACU1<>0ACU2 <> ACU1 >0A1=1 AND A0=0ACU1>0ACU2 > ACU1 <0A1=0 AND A0=1ACU1<0ACU2 < ACU1 >=0==0 OR >0ACU1>=0ACU2 >= ACU1 <=0==0 OR <0ACU1<=0ACU2 <= ACU1 UOA1=1 AND A0=1 ( p. ej. División por cero ) BIERB=1 OSOS=1 OVOV=1 A1, A0 ACU1 A0 ACU1, A1 ACU2
18
Operaciones con conjuntos de var. lógicas OperadorTamaño(bits)Comentario UW16Y lógica entre acumuladores (L) OW16O lógica entre acumuladores (L) XOWXOW16XOR lógica entre acumuladores (L) UD32Y lógica entre acumuladores OD32O lógica entre acumuladores XODXOD32XOR lógica entre acumuladores ACU2ACU1OPERADORACU1 L MW10 L MW12 UW T MW14 OB1 DOS ARGUMENOS IMPLÍCITOS: ACU1 y ACU2
19
Ejemplo: flanco simultáneo de 32 variables ED10Entradas MD100Marcas de flanco MD10Marcas de pulso Flanco positivo L MD 100 L ED 10 XOD L MD 100 UD T MD 10 L ED 10 T MD 100 ¿Flanco negativo? L MD 100 L ED 10 XOD L ED 10 UD T MD 10 L ED 10 T MD 100 Memoria ACU1: valores distintos entre marcas de flanco y entradas ACU1: entradas con valor lógico 1 distintas de marcas de flanco
20
Aplicación al grafcet (1/2) 0 123132 U “X0” U “S1” L DW#16#FFFFFFFF T MD 1 R “X0” S1 ¿Ecuación de activación? MD 1 U “X0” U “S1” SPBN NOAC //Activación L DW#16#FFFFFFFF T MD 1 R “X0” NOAC: NOP 0 Activación simultánea de etapas //Desactivación simultánea de 32 etapas L DW#16#0 T ETAPAS_CODIFICADAS_EN BITS_CONSECUTIVOS Desactivación simultánea de etapas
21
Aplicación al grafcet (2/2) OB100 SET S M0.0 R Act.1 R Act.2 //… R Act.N 0 1 32 0 MD1 M 0.0 UN M1.0 UN M1.1 UN M1.2 //… S M0.0 R Act.1 R Act.2 //… R Act.N OB100 ARRANQUES (DESDE CARCASA) OB100 SET S M0.0 L DW#16#0 T MD1 OB102 L MD 1 L DW#16#0 ==D S M0.0 R Act.1 R Act.2 //… R Act.N ARRANQUES (TRAS DESCONEXIÓN) OB102 L MD 1 L DW#16#0 ==D SPBN _001 S M0.0 L DW#16#0 T MD1 _001:NOP 0 //… Arranque / Rearme
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.