Descargar la presentación
La descarga está en progreso. Por favor, espere
1
Operaciones Avanzadas
Operaciones de conversión de Tipos de Datos Operaciones Lógicas con Palabras Funciones Matemáticas Fundamentales Funciones Matemáticas Avanzadas Funciones de Desplazamiento y Rotación Ejercicio: Desplazamiento de Bit Instrucciones de Salto AWL: Operación Bucle Ejercicio: Saltos Direccionamiento Ejercicio: Direccionamiento Indirecto Función Master Control Relay
2
Operaciones de Conversión de Tipos de Datos
KOP / FUP AWL BCD_I L EW4 BTI T MW20 DI_REAL L MD10 DTR T MD30 ROUND L MD33 RND T MD69 Las instrucciones del S7-300 tienen muchas posibilidades de conversión. Cada instrucción tienen el siguiente formato: EN=Entrada de habilitación Si el RLO es verdadero a través del EN, la conversión se realiza. ENO=Salida de habilitación La salida de habilitación tiene el mismo estado de señal que EN (EN =ENO), con la excepción de ENO=0 por violación de rango. IN = Valor de entrada Esta palabra es leída en la instrucción de conversión, si EN es verdadero. O = Valor de salida Esta palabra es el resultado de la conversión. Podemos encontrar, entre otras, operaciones capaces de hacer las siguientes conversiones: - Binario codificado en decimal (BCD) a entero de 16-bit - Entero de 16-bit a BCD - Entero doble (entero de 32-bit) a número BCD - Número BCD a entero doble - Número real de 32-bit en coma flotante (IEEE) a entero doble - Entero doble a número real - Entero de 16-bit a entero doble - Número real a entero doble (redondeando hacia arriba el resultado al próximo entero) - ...
3
Operaciones Lógicas con Palabras
KOP / FUP AWL WAND_W L MW10 L MW20 UW T MW30 WOR_W L MW32 L MW44 OW T MW34 WXOR_W L MW26 L MW28 XOW T MW24 WAND_W La instrucción AND con palabras combina los dos valores digitales que están especificadas bit a bit en las entradas IN 1 y IN 2 basándose para ello en la tabla de verdad AND. El resultado de la operación AND es guardado en la dirección OUT. La instrucción es ejecutada, si la señal de entrada de EN = 1. ENO tiene el mismo estado de señal que EN. WOR_W La instrucción OR con palabras combina los dos valores digitales especificados bit a bit en la entradas IN 1 y IN 2 basándose para ello en la tabla de verdad OR. El resultado de la operación OR es guardada en la dirección OUT. Si el estado de la entrada EN=1 se ejecuta la instrucción. ENO tiene el mismo estado de señal que EN. WXOR_W Es activada por el estado de señal "1" en la entrada de habilitación (EN) y combina los dos valores de palabra de IN1 y IN2 bit a bit por medio de O-exclusiva. Los valores se interpretan como puras configuraciones binarias. El resultado puede consultarse en la salida O. ENO tiene el mismo estado de señal que EN. Ejemplo
4
Funciones Matemáticas Fundamentales
KOP / FUP AWL SUB_I L MW5 L MW11 -I T MW7 DIV_R L MD67 L MD3 /R T MD33 ADD_I L MW4 L MW10 +I T MW6 MUL_R L MD6 L MD12 *R T MD67 Todas las operaciones matemáticas tienen el mismo formato: EN: Entrada de habilitación Si el RLO a través de EN es verdadero, la instrucción es ejecutada. ENO: Salida de habilitación EN =ENO IN1: Entrada valor 1 Primer operando IN2 : Entrada valor 2 Segundo operando O: Valor de salida Resultado de la operación aritmética Entre las operaciones matemáticas fundamentales podemos encontrar: Sumar: Resta: - ADD_I Sumar enteros - SUB_I Restar enteros - ADD_DI Sumar entero doble - SUB_DI Restar enteros dobles - ADD_R Sumar reales - SUB_R Restar reales Multiplicar: Dividir: - MUL_I Multiplicar enteros - DIV_I Dividir enteros - MUL_DI Multiplicar enteros dobles - DIV_DI Dividir enteros dobles - MUL_R Multiplicar reales - DIV_R Dividir reales
5
Funciones Matemáticas Avanzadas
KOP / FUP AWL SQRT L M D10 T MD 14 SIN L MD 18 T MD 22 SQR L MD 34 T MD 38 TAN L MD 26 T MD 30 STEP 7 soporta numerosas operaciones matemáticas y trigonométricas con reales. Su formato es el siguiente: EN: Entrada de habilitación Si el RLO en EN es "1," se ejecuta la instrucción. ENO: Salida de habilitación Con estado de señal “1" se ha ejecutado correctamente Con estado de señal "0" implica EN = 0 o fallo en la ejecución IN: Valor de entrada Primer operando O: Valor de salida Resultado de salida de la función matemática ABS Valor absoluto de número real ACOS Arco coseno para números reales ASIN Arco seno para números reales ATAN Arco tangente para números reales COS Coseno para un número real EXP Exponente para un número real LN Logaritmo natural para números reales SQR Cuadrado de un número real SQRT Raíz cuadrada de un número real SIN Seno de un número real TAN Tangente de un número real
6
Funciones de Desplazamiento y Rotación
KOP / FUP AWL SHL_W L MW50 SLW 5 T MW12 ROR_DW L MD60 RRD 4 T MD50 * Con las instrucciones Desplazar y Rotar, se puede desplazar el contenido del acumulador 1 bit a bit hacia la derecha o hacia la izquierda. La dirección del desplazamiento viene determinada por la propia instrucción. El parámetro N especifica el número de bits que se van a desplazar. Los bits que se quedan vacíos se rellenan con ceros (en el desplazamiento) o con el bit desplazado (en la rotación). Instrucciones de Desplazamiento: SHL_W Desplazar una palabra a la izquierda. Los bits del 0 al 15 del acumulador son desplazados n bits a la derecha. Los bits vacíos se rellenan con ceros. SHL_DW Desplazar doble palabra a la izquierda. El contenido completo del acumulador 1se desplaza N bits a la izquierda. SHR_W Desplazar una palabra a la derecha. Los bits del 0 al 15 del acumulador son desplazados n bits a la derecha. Los bits vacíos se rellenan con ceros. SHR_DW Desplazar doble palabra a la derecha. El contenido del acumulador 1 se desplaza bit a bit N bits a la derecha. Los bits vacíos se rellenan con ceros. SHR_I Desplazar el número entero a la derecha. Los bits del 0 al 15 del acumulador se desplazan a la derecha n bits. Los bits vacíos se rellenan con el bit de signo (bit 15). SHR_DI El doble entero es desplazado a la derecha. El contenido completo del acumulador 1 se desplaza bit a bit n bits a la derecha. Los bit vacíos se rellenan con el bit de signo (bit 31). Instrucciones de Rotación: ROL_DW Rotar doble palabra a la izquierda. El contenido completo del acumulador 1 es rotado bit a bit n bits a la izquierda. ROR_DW Rotar doble palabra a la derecha. El contenido completo del acumulador 1 es rotado bit a bit n bits a la derecha. * * Estado de señal del último bit desplazado
7
Ejercicio 4: Desplazamiento de Bit
Desplace continuamente un bit Ejercicio 4: Realice un programa que desplace continuamente el bit A4.0 de derecha a izquierda y de izquierda a derecha dentro de su byte. Vea el capítulo 15: Ejercicios Resueltos
8
Visión de General de las Instrucciones de Salto
STEP 7 soporta varias instrucciones de Salto a Etiquetas (“ir a etiqueta”) Salto Incondicional Salto Condicional, basado en el RLO Salto Condicional, basado en el BR o en el OV/OS Salto Condicional, basado en el resultado de CC1 y CC0 ... Salto Etiqueta Si se ejecuta el salto las instrucciones situadas entre el salto y la etiqueta no se procesan La instrucción Salto es un instrucción de control de programa que significa “ir a etiqueta”. La instrucción de Salto identifica el punto donde se interrumpe el programa y la etiqueta indica el punto donde el programa continua. Una etiqueta está formada por un máximo de cuatro caracteres; el primer carácter debe ser una letra, los restantes pueden ser letras o números. La etiqueta debe estar en el mismo módulo de programa que la instrucción de salto. Fundamentalmente, debemos distinguir dos categorías de Salto: Salto Incondicional El Salto Incondicional se ejecuta ignorando cualquier condición Este tipo de salto no se ve afectado por los bits de la palabra de estado. Salto Condicional El Salto Condicional se ejecuta solamente si se cumple una condición previa Esta condición puede referirse a cualquiera de los bits de la palabra de estado: RLO, RB, OV, OS, CC1 y CC2, etc.
9
Instrucciones de Salto Incondicional
El Salto Incondicional se ejecuta independientemente de cualquier condición; este Salto no lee ni se ve afectado por los bits de la palabra del estado. SPA CAS1 . . CAS1 : U E0.4 R A4.1 KOP AWL Segmento 1 Segmento X FUP La instrucción de Salto Incondicional interrumpe el flujo normal del control lógico y origina que el programa salte a una etiqueta. Esta etiqueta indica el punto donde el programa continuará ejecutándose. Las instrucciones o segmentos situadas entre el salto y la etiqueta no se ejecutan. Una instrucción adicional soportada en AWL es Salto a Lista (SPL). La instrucción SPL es un distribuidor de saltos. La instrucción va seguida de una serie de operaciones de salto incondicionales a etiquetas. Los saltos SPL a uno de los puntos de la lista de saltos incondicionales a etiquetas está basado en el valor que esté cargado en el acumulador 1. Ejemplo: L MB20 //el valor del MB20 se carga en el acumulador 1 SPL LIST //distribuidor de saltos SPA META //salto incondicional a META SPA OTRA //salto incondicional a OTRA SPA MAS //salto incondicional a MAS1 LIST: U E0.0 LIST: Etiqueta de salto para valores no especificados de MB20 META: Etiqueta de salto si MB20 = 0 OTRA: Etiqueta de salto si MB20 = 1 MAS1: Etiqueta de salto si MB20 = 2
10
AWL: Saltos Condicionales basados en el RLO
El bit de la palabra de estado Resultado de la Operación Lógica (RLO) determina cuando se ejecuta este salto condicional. También existen instrucciones que además guardan el resultado en el RB Salta si RLO = 1 y almacénalo en RB Salta si RLO = 1 U E0.0 U E1.0 SPB NEW1 U E0.0 U E1.0 SPBB NEW1 Salta si RLO = 0 U E0.0 U E1.0 SPBN REC2 Salta si RLO = 0 y almacénalo en RB Estos saltos condicionales se ejecutan dependiendo del estado del RLO. Además de estas instrucciones, hay otras dos opciones en AWL que son la combinación del RLO y el bit RB. Estas instrucciones AWL son: Salto si RLO = 1 con RB (SPBB) Salto si RLO = 0 con RB (SPBNB) Ambas instrucciones trabajan de la misma manera que SPB y SPBN; el salto se ejecuta dependiendo del valor del RLO pero, además, salvan el RLO en el bit RB de la palabra de estado. U E0.0 U E1.0 SPBNB REC2
11
AWL:Saltos Condicionales, basados en RB, OV y OS
Los bits del la palabra de estado Resultado Binario (RB) o Desbordamiento/Desbordamiento Memorizado determinan cuando se ejecutan estos saltos condicionales. La evaluación de los bits RB, OV y OS proporciona un medio de verificar condiciones de error. Salto si RB = 1 (SPBI) Salto si RB = 0 (SPBIN) Salto si OV = 1 (SPO) Salto si OS = 1 (SPS) Estas instrucciones dependen de otros bits de la palabra de estado como son: RB, OV y OS. Además algunas afectan a otros bits: Las instrucciones SPBI y SPBIN ponen a 0 los bits OR y FC de la palabra de estado y ponen a 1 el bit STA. La instrucción SPS resetea el bit OS a 0.
12
AWL: Saltos Condicionales basados en CC1 y CC0
Cuando se ejecuta en el programa un cálculo matemático, los bits CC1 y CC0 se actualizan en la palabra del estado. Los bits CC1 y CC0 se evalúan en las siguientes instrucciones de salto: Salta si el resultado es Cero (SPZ) Salta si el resultado No es Cero (SPN) Salta si el resultado es Positivo (SPP) Salta si el resultado es Negativo (SPM) Salta si el resultado es Negativo o Cero (SPMZ) Salta si el resultado es Positivo o Cero (SPPZ) Salta si el resultado no es Admisible (SPU) Estas instrucciones de salto siguen el mismo principio de trabajo que las otras; cuando el salto está activo, el programa comprendido entre el salto y la etiqueta no se ejecuta.
13
Operaciones de Salto Condicional en KOP
En lenguaje KOP sólo existen dos operaciones de Salto Condicional: - JMP: Salta si el RLO es 1 - JMPN: Salta si el RLO es 0 En cualquier caso estas dos instrucciones nos permiten construir todas las que existen en AWL. Para ello basta con utilizar como condición previa cualquiera de los bits de estado tal y como se indica en el apartado siguiente.
14
Posibles condiciones de Salto en KOP
La figura nos muestra todas las posibilidades de Salto Condicional que podemos conseguir utilizando como condición de Salto un bit de estado. Como se puede ver en la figura la condición utilizada puede ser: Bit de estado = 0 Bit de estado = 1 Así mismo podemos utilizar combinaciones de varios de estos bits en serie o paralelo Por otra parte, estos bits de estado no tienen porqué ir siempre unidos a las instrucciones de Salto si no que se pueden utilizar también en cualquier otro punto del programa
15
Operaciones de Salto condicional en FUP
Posibles condiciones de salto: En lenguaje FUP, al igual que en KOP, sólo existen dos operaciones de Salto Condicional: - JMP: Salta si el RLO es 1 - JMPN: Salta si el RLO es 0 También en FUP es posible con estas dos instrucciones construir todas las que existen en AWL utilizando para ello las consultas a bits de estado. La figura nos muestra todas las posibilidades de Salto Condicional que podemos conseguir utilizando como condición de Salto la consulta a un bit de estado. En este caso, para poder utilizar la condición Bit de estado = 0, basta con colocar un símbolo de negación antes del salto. Así mismo podemos utilizar combinaciones de varios de estos bits en cajas AND o cajas OR Por otra parte, estos bits de estado no tienen porqué ir siempre unidos a las instrucciones de Salto si no que se pueden utilizar también en cualquier otro punto del programa
16
Decremento del Contador
AWL: Operación Bucle Inicio del Contador de Bucle Sección de Programa que va a ser ejecutado varias veces L +4 // cargar el contador de bucle NEXT: T MB10 // primera instrucción del bucle . // bucle L MB10 // últimas instrucciones del bucle LOOP NEXT // salto a la etiqueta NEXT En este ejemplo, el programa comprendido entre NEXT y NEXT se ejecutará 4 veces. Decremento del Contador de Bucles Sí ¿ Contador de Bucle <>0 ? La instrucción Bucle posibilita llamar a una sección de programa para ejecutarla múltiples veces. Para programar una operación Bucle, hay que cargar en el acumulador 1 cuántas veces queremos que se ejecute la sección de programa. Cada vez que se ejecuta la instrucción LOOP, el valor del acumulador 1 se decrementa en 1 y a continuación se comprueba el valor del acumulador. Si el valor aún no es 0, se ejecutará un salto a la etiqueta indicada por la instrucción LOOP. Si el valor del contador de bucles es 0, el programa sale del bucle y continua su ejecución a través del flujo normal. Las opciones de formato del contador de bucles son: Integer +1 a Word E,A,M,D,L Palabra W#16#0001 Word E,A,M,D,L a W#16#FFFF Nota: No inicializar el contador de bucles con un 0, o un valor negativo. No Continuar
17
Ejercicio 5: Saltos Practique con las instrucciones de salto
Ejercicio 5: Realice un programa que active el bit de la palabra de salida AW4 que indique el valor que haya en el EB0. Para valores no válidos se apagarán todos los bits de salida. Vea el capítulo 15: Ejercicios Resueltos
18
Direccionamiento Directo
Direccionamiento Generalmente, una instrucción consta de dos partes: Operación y Operando. El operando indica sobre qué zona de la memoria queremos que se ejecute la operación. Como operando se pueden utilizar todos los que muestra la figura. Como novedades de STEP7 encontramos: Datos Locales En STEP 7 se puede acceder a los datos locales de la forma : U L (Comprueba si el bit 6 del byte 12 es igual a 1) L LW 12 (Carga la palabra de datos locales 12 en el ACCU1) DBX/DIX Se puede acceder a datos de módulos de datos después de haberlos abierto. U DBX (Comprueba si el bit 6 del byte 12 del DB es igual a 1) U DIX (Comprueba si el bit 6 del byte 12 del DIB es igual a 1) L DBB 12 (carga la palabra de datos locales 12 del DB en el ACCU1) L DIB 12 (carga la palabra de datos locales 12 del DIB en el ACCU1)
19
Direccionamiento Indirecto
Ejemplos: STEP STEP 5 L L KF11 T MW T MW 60 OPN DB[MW 60] BMW 60 OPN DB 11 ADB 0 (ADB 11) L P# L KF 24 T MD T MW 50 L E W [MD50] L E W 24 B MW 50 L E W 0 Zona Tipo de Dirección Acceso Acceso Indirecto Se puede acceder de forma indirecta a las posiciones de memoria. Para direccionar de forma indirecta llamadas módulos o bien operaciones con temporizadores o contadores debemos utilizar una MW o una palabra de un DB. Para el resto de operaciones se deberá utilizar una doble palabra de marcas o de un DB. El valor del puntero deberá de ser introducido como constante de puntero en una doble palabra. Por ejemplo, L P#24.0 carga la dirección byte 24 , bit 0 en formato de puntero. El tipo de acceso (bit, byte, palabra y doble palabra) y a que zona de memoria se refiere, se especifican en la instrucción.
20
Configuración del Registro de Direcciones
Código: Bit 31=1 El registro contiene una dirección y la zona de memoria . Bit 31=0 El registro contiene una dirección y no la zona de memoria . Zonas de acceso: RRR Identificador: 000 Periferia 001 Entradas (PII) 010 Salidas (PIQ) 011 Marcas 100 Datos en DB 1 (DB) 101 Datos en DB 2 (DI) 110 Datos locales del módulo Rango de direcciones: B...B Dirección Byte XXX Dirección Bit 10000RRR 00000BBB BBBBBBBB BBBBBXXX Registro de Se utiliza para realizar el direccionamiento indirecto en el S7 Direcciones El registro de direcciones contiene la dirección interna de memoria para realizar los direccionamientos. El registro de direcciones también se utiliza para el proceso de datos a alto nivel , como transferir campos como parámetros al código de los módulos. Ajuste del registro La carga del registro se realiza con las instrucciones LAR1 y LAR2 . de direcciones Las instrucciones TAR1 y TAR2 se utilizan para ver el contenido de los registros de direcciones. El formato puntero P# hace posible el introducir la dirección de memoria en el registro de direcciones (byte/bit). Ejemplo: LAR1 P# E 100.0 El registro 1 contiene la dirección de la entrada
21
Direccionamiento Indirecto
Ejemplo: AR 1 Entrada: LAR1 P# // Preselección L M W [AR1, P#200.0] L MW 210 Tipo Tipo Registro Constante de Instrucción Dato Acceso Dirección Desfase Ejecutada 00000RRR 00000BBB BBBBBBBB BBBBBXXX Direccionamiento Podemos utilizarlo par acceder de forma indirecta a las direcciones de STEP 7. Indirecto Existen dos registros en los que se pueden almacenar direcciones (AR1 y AR2). En la instrucción indirecta hay que especificar una zona de acceso (E, A, M, T, C, etc..), un tipo de acceso (byte, palabra, etc.) y un desfase. La variable de direcciones contiene la dirección a la cual queremos acceder. Para indicar a la variable el valor de la posición a la cual se desea acceder, es necesario definir una constante de puntero.
22
Direccionamiento Indirecto , Incremento de Direcciones
Ejemplo: AR 1 Entrada: LAR1 P#E100.0 // Pre-asignado L B [AR1, P#110.0] LIB 210 Tipo Registro Constante Instrucción Acceso Dirección Desfase Ejecutada 10000RRR 00000BBB BBBBBBBB BBBBBXXX La constante de desfase permite acceder a una dirección distinta de la que contiene el registro de direcciones. Esta nueva dirección, como se puede ver en el ejemplo, es la que resulta de la suma en binario de la dirección contenida en el registro de direcciones más el desfase. En cualquier caso, el hecho de utilizar un desfase no implica que varíe el contenido del registro de direcciones. El AR1 del ejemplo continuaría apuntando a la E Si se desea incrementar el contenido de los registros e direcciones AR1 y AR2 es necesario utilizar las operaciones +AR1 y +AR2 tal y como se muestra a continuación: Estas líneas de programa, incrementan el contenido del acumulador AR1 en 250.7 También es posible utilizar el direccionamiento indirecto para direccionar bits. Ejemplo: LAR1 P#E U [AR1, P#110.5] // Se quiere acceder no a la entrada : // si no a la =210.5 : U E // Equivale a esta instrucción
23
Ejercicio 6: Direccionamiento indirecto
Repita el ejercicio 5 con direccionamiento indirecto Ejercicio 6: Repita el ejercicio número 5 pero utilizando ahora lo aprendido sobre direccionamiento indirecto. Vea el capítulo 15: Ejercicios Resueltos
24
Función Master Control Relay
KOP FUP AWL MCRA //Activado U E0.0 //Habilita el MCR MCR( //Abre el MCR U E0.7 = A8.5 = M0.6 U E0.4 S A16.0 )MCR //Cerrar el MCR UN M5.5 UN E4.7 = M69.0 MCRD //Desactivar El Master Control Relay es un interruptor de potencia lógico para encender e interrumpir el flujo de corriente. Un circuito interrumpido despliega una secuencia que escribe valor cero en lugar de un valor calculado o una secuencia, la cual no cambia el valor de memoria existente. Cuando fluye corriente en el master control relay, se activa un escalón en el pertinente circuito eléctrico. Cuando el MCR se desactiva, se desconecta también el pertinente circuito eléctrico. Las instrucciones para las bobinas dentro el área del MCR escriben un 0 en la memoria, si el MCR es igual a 0 (desactivado). Las instrucciones “set” (activar bobina) y el “reset” (desactivar bobina) no cambian los valores Instrucción Descripción MCRA La instrucción MCRA activa la función master control relay. Las instrucciones MCA< y MCR> deben seguir a la instrucción MCRA. MCR< La instrucción marca el comienzo del área de control. MCR< abre un área MCR y dispara una instrucción que desplaza el RLO a la pila MCR. La pila puede tener ocho entradas. Esto significa, que se pueden anidar ocho áreas de control individuales entre los comandos MCRA y MCRD. MCR> La instrucción MCR> marca el final de un área de control. MCR> se combina con el próximo MCR<. MCRD La instrucción desactivar el master control relay desactiva la función MCR. No puede programar ninguna área MCR después de MCRD. Esta instrucción es un requisito previo para una operación lógica con MCRA.
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.