Operaciones Avanzadas

Slides:



Advertisements
Presentaciones similares
PROGRAMACIÓN I CENTRO DE ESTUDIOS INTEGRADOS EL MARISCAL - CEIM Ing. Luisa Fernanda Arenas Castañeda Feb 6 de 2016.
Advertisements

Operaciones con Decimales Suma, Resta, Multiplicación y División Autor: Grupo Océano Colaborador: Prof. Lourdes Barreno Huffman Portal Educa Panamá.
Programación II Sesión 3. TABLA DE CONTENIDO  Tipos de Datos en C  Delimitadores  Tipo Char  Tipo Int  Tipo Float  Tipo Double  Constantes  Operadores.
El controlador de relleno y las referencias relativas.
El procesador Datapath y control. Universidad de SonoraArquitectura de Computadoras2 Introducción En esta parte del curso contiene: Las principales técnicas.
 Para poder resolver una ecuación como ésta: x² = -4 No hay ningún número real que elevado al cuadrado nos pueda dar un resultado negativo. Ahora bien,
HTM L (Hyper Text Markup Language). ¿Qué es HTML? Es el lenguaje que permite escribir texto de forma estructurada, y que está compuesto por etiquetas,
Internet Protocols (IPs)
Areas de memoria del CJ.
Estructuras de Control.
Introducción al lenguaje C Instrucción IF – ELSE y el bucle WHILE
Microprocesador Estructura interna.
ROBERTO PINEDA FLORES. ALEXIS JULIAN VELAZQUEZ NAVA.
Programación de PLCs: conversión normalizada y control del programa
Unidad aritmético-lógica
Tema 4 Elementos para el Desarrollo de Algoritmos
Datapath para las instrucciones aritméticas y lógicas
Conceptos básicos de programación
MATRICES.
Tema 4 Elementos para el Desarrollo de Algoritmos
ARQUITECTURA DE HARD WARE COMPONENTES EN BLOQUES DEL PROCESADOR
Redes de Comunicaciones Industriales
Tema 2 Variables y cálculos
Bucles y estructuras de decisión
Tema 6. Conceptos básicos de programación Clase 1
Computación Curso 2017.
COMPUTER DATA SYSTEMS CDS.
FÓRMULAS Una fórmula es la representación de una operación aritmética en una hoja de cálculo. Características: Siempre comienza por el signo igual(=) ó.
INTRODUCIR DATOS En cada una de las celdas de la hoja es posible introducir textos, números o fórmulas. Aparecerán en dos lugares: en la celda activa y.
Tema 7. Introducción a lenguaje de programación Visual Basic (clase 2)
Tema 4 Elementos para el Desarrollo de Algoritmos
Haga clic para agregar notas
LÓGICA DE PROGRAMACIÓN
SISTEMAS DE NUMERACIÓN
Programación en scratch
SISTEMA DIGITAL Es una combinación de dispositivos diseñados para manipular cantidades físicas o información que estén representadas en forma digital,
PARCIAL 2.
Hardware Description Language
Curso de iniciación al trabajo con MatLab 7.0
DOCENTE: ANGEL PALACIO BIENVENIDOS AL MUNDO DEL
Modelo de Von Neumman U.A.C.M Alejandra Andrade.
Tema 6 Clasificación de algoritmos
Estructuras de Repetición Pseudocodigo1 Estructuras de Repetición Algoritmos Mientras Hacer-Mientras Para.
PROGRAMACIÓN LADDER INTRODUCCIÓN A LA AUTOMATIZACIÓN.
Introducción práctica la uso de la tarjeta Arduino.
Sistemas Numéricos 1. Introducción 2. Sistema de Numeración Decimal
Matlab como calculadora
Metodología de la Programación
Excel Macros Macros Automáticas.
Tema 3: Operadores Antonio J. Sierra.
Bucles y estructuras de decisión
PUNTO FIJO - PUNTO FLOTANE
Introducción a la Estadística Informática
Símbolos Indice Pág. Direcionamiento Absoluto y Simbólico
Operaciones Lógicas con Bits
Programando en STEP 7 Indice Pág
Conversión de Binario a Decimal
Centro Universitario UAEM Ecatepec Asignatura: Introducción al software base Licenciatura en informática Administrativa Lia 4to semestre Mtra. Patricia.
Diagnóstico y Localización de Averías
Operaciones con Acumuladores
Eduardo Cruz Pérez.
Estructuras de Repetición Algoritmos
Tema 7. Introducción a lenguaje de programación Visual Basic (clase 2)
Análisis de error en estado estacionario
DIAGRAMAS DE FLUJO Y PSEUDOCÓDIGO
Arquitectura de Hardware
INTRODUCCIÓN A LA INFORMÁTICA
Tema 8. Estructuras de decisión. Clases 1 y 2.
UNIDAD II Generalidades sobre Algoritmos
UNIDAD V ESTRUCTURA REPETITIVA (Repetir Hasta Que)
Transcripción de la presentación:

Operaciones Avanzadas Operaciones de conversión de Tipos de Datos ........................................................ 7 - 2 Operaciones Lógicas con Palabras .......................................................................... 7 - 3 Funciones Matemáticas Fundamentales .................................................................. 7 - 4 Funciones Matemáticas Avanzadas ......................................................................... 7 - 5 Funciones de Desplazamiento y Rotación ............................................................... 7 - 6 Ejercicio: Desplazamiento de Bit .............................................................................. 7 - 7 Instrucciones de Salto .............................................................................................. 7 - 8 AWL: Operación Bucle ............................................................................................. 7 - 16 Ejercicio: Saltos ........................................................................................................ 7 - 17 Direccionamiento ..................................................................................................... 7 - 18 Ejercicio: Direccionamiento Indirecto ....................................................................... 7 - 23 Función Master Control Relay .................................................................................. 7 - 24

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

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

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

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

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

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

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.

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

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

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.

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.

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.

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

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

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 +32.767 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

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

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 12.6 (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 12.6 (Comprueba si el bit 6 del byte 12 del DB es igual a 1) U DIX 12.6 (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)

Direccionamiento Indirecto Ejemplos: STEP 7 STEP 5 L 11 L KF11 T MW 60 T MW 60 OPN DB[MW 60] BMW 60 OPN DB 11 ADB 0 (ADB 11) L P#24.0 L KF 24 T MD 50 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.

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 31 23 15 7 0 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 100.0 .

Direccionamiento Indirecto Ejemplo: AR 1 Entrada: + 200 LAR1 P#10.0 // 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 31 23 15 7 0 00000000 00000000 00000000 01010000 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.

Direccionamiento Indirecto , Incremento de Direcciones Ejemplo: AR 1 Entrada: + 110 LAR1 P#E100.0 // Pre-asignado L B [AR1, P#110.0] LIB 210 Tipo Registro Constante Instrucción Acceso Dirección Desfase Ejecutada 31 23 15 7 0 10000001 00000000 00000011 00100000 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 E100.0. 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 100.0 U [AR1, P#110.5] // Se quiere acceder no a la entrada 100.0 : // si no a la 100.0+110.5 =210.5 : U E 210.5 // Equivale a esta instrucción

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

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.