Está en la página 1de 14

Curso SIMATIC S7 Nivel II

Direccionamiento indirecto
Abril 2003

SIMATIC S7 NIVEL II Dir_indirecto.ppt

Direccionamiento directo (I)


E 0 .0 Nmero de bit (0 - 7) Nmero de byte (cada zona tendr su rango)

Zona de memoria:

E -> Entrada A -> Salida T -> Temporizador M -> Marca DB -> Mdulo de datos P -> Acceso directo (PA, PE)

SIMATIC S7 NIVEL II Dir_indirecto.ppt

Direccionamiento directo (II)

rea Ejemplo Tipo de Acceso


E A PE PA M T C E 0.0 AB 4 PEW 10 PAD 24 M 100.0 T15 Z80

Descripcin

Bit, Byte, Palabra, Doble Palabra Imagen de Proceso Entradas Bit, Byte, Palabra, Doble Palabra Imagen de Proceso Salidas Byte, Palabra, Doble Palabra Byte, Palabra, Doble Palabra Entradas de Periferia Salidas de Periferia Temporizadores Contadores

Bit, Byte, Palabra, Doble Palabra Marcas

SIMATIC S7 NIVEL II Dir_indirecto.ppt

Direccionamiento directo (III)


Dentro de cada byte, palabra o doble palabra, los bits se numeran de derecha a izquierda, de 0 al 7. Dir. byte: rea de memoria + B + n de byte E 124.0 EB124

Dir. palabra: rea de memoria + W + n de su 1er byte EW124 => EB124 EB125 Dir. doble palabra: rea de memoria + D + n de su 1er byte MD0 => MB0 MB1 MB2 MB3

SIMATIC S7 NIVEL II Dir_indirecto.ppt

Direccionamiento directo (IV)


Direccionamiento directo Es necesario especificar:
Zona de memoria Tipo de acceso Posicin de byte Posicin de bit
U E 125.3 L E B 124 T M B 12 U T0 U Z3 UC FC1 CALL FC3 L DB2.DBW3

SIMATIC S7 NIVEL II Dir_indirecto.ppt

Direccionamiento indirecto
Se puede acceder de forma indirecta a las posiciones de memoria.
L T L E P#124.0 MD 50 W [MD50]
L P#124.0 carga la direccin byte 124, bit 0 en formato de puntero. OJO: es la direccin, no el contenido. No se ha indicado la zona de memoria, que se especificar al utilizar la direccin.

L E W 124

Zona Tipo de Direccin acceso L 11 T MW 60 AUF DB[MW 60]

En el puntero se almacena la direccin de bit. El tipo de acceso (bit, byte, palabra y doble palabra) y a que zona de memoria se refiere, se especifican en la instruccin.

AUF DB 11

SIMATIC S7 NIVEL II Dir_indirecto.ppt

Direccionamiento Indirecto
Direccionamiento indirecto con marcas MW o palabra de DB
Se pueden utilizar con llamadas a mdulos o para direccionar contadores, temporizadores, FCs, FBs y DBs. En la marca almacenamos el nmero del contador, temporizador o DB.
L8 T MW10 U Z [MW10] // Carga un 8 en ACU1 // Lo transfiere a la palabra de marcas 10 // Equivale a U Z 8: comprueba el contador 8

MD o doble palabra de DB
Se pueden utilizar para el resto de direccionamientos. El valor del puntero deber de ser introducido como constante de puntero en una doble palabra.
L P#124.0 T MD50 L EW[MD50] --L EW124

SIMATIC S7 NIVEL II Dir_indirecto.ppt

Direccionamiento indirecto
Registros de direcciones (AR1 y AR2) Registros de 32 bits utilizados para direccionamiento indirecto Contiene la direccin interna de memoria para realizar los direccionamientos. Cuando hacemos p#E124.0, se genera un puntero, que tiene la siguiente forma: Configuracin:
31 10000 RRR Cdigo: 23 00000 BBB 15 BBBBBBBB 7 0 BBBBBXXX

Bit 31=1 El registro contiene una direccin y la zona de memoria . Bit 31=0 El registro contiene una direccin y no la zona de memoria . Zonas de memoria (si est disponible): RRR Identificador: 000 Periferia 001 Entradas (PAE) 010 Salidas (PAA) 011 Marcas 100 Datos en DB 1 (DB) 101 Datos en DB 2 (DI) 110 Datos locales del mdulo (variables de un FC) Rango de direcciones: B...B Direccin Byte XXX Direccin Bit

SIMATIC S7 NIVEL II Dir_indirecto.ppt

Direccionamiento indirecto

La carga del registro se realiza con las instrucciones LAR1 y LAR2. 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 direccin de memoria en el registro de direcciones (byte/bit).
Ejemplo: LAR1 P# E 100.0 El registro 1 contiene la direccin de la entrada 100.0 .

Carga del registro de direcciones L P#125.0 - 0000 0000 0000 0011 1110 1000 LAR1 L P#E125.0 - 1000 0001 0000 0011 1110 1000 LAR1
SIMATIC S7 NIVEL II Dir_indirecto.ppt

} }

LAR1 P#125.0 LAR1 P#E125.0

Direccionamiento Indirecto
Una vez almacenado el puntero con LAR1, podemos utilizarlo con una instruccin indirecta. En la instruccin indirecta hay que especificar una zona de acceso (E, A, M, T, C, etc..), un tipo de acceso (byte, palabra, etc.) y un desfase. LAR1 P#10.0 L M W // Preseleccin [AR1, P#200.0] L MW 210 10

+ 200

Tipo Dato

Tipo Registro Constante de Acceso Direccin Desfase

Instruccin Ejecutada

SIMATIC S7 NIVEL II Dir_indirecto.ppt

10

Direccionamiento Indirecto

Tambin 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 instruccin

SIMATIC S7 NIVEL II Dir_indirecto.ppt

11

Direccionamiento Indirecto
Otras funciones
LAR1 LAR1 P#valor LAR2 LAR2 P#valor LAR1 AR2 TAR1 TAR1 MD20 TAR +AR1 +AR2 +AR1 P#valor

AR2 --> AR1 AR1 --> ACU1 AR1 --> MD20 Intercambia AR1 y AR2 AR1 + ACU1 --> AR1 AR1 + valor --> AR1

En estas funciones, cuando se utiliza una marca, sta debe ser de 32 bits, porque el AR1 y AR2 lo son. Los valores que se introducen o suman a AR1 y AR2 deben ser punteros.
SIMATIC S7 NIVEL II Dir_indirecto.ppt

12

Ejercicio 1

Realice un programa que active el bit de la palabra de salida AW124 que indique el valor que haya en el EB124. Para valores no vlidos se apagarn todos los bits de salida. (Realice el ejercicio primero con saltos y posteriormente utilizando direccionamiento indirecto)

SIMATIC S7 NIVEL II Dir_indirecto.ppt

13

Ejercicio 2
Realice un programa que lea de un DB su contenido a travs de dir. Indirecto. Para ello suponga que en dicho DB se registra el contenido de una tabla y que se desea acceder a cualquier posicin de esa tabla mediante EB124, y que en AB124 se representa el contenido de dicha tabla.

SIMATIC S7 NIVEL II Dir_indirecto.ppt

14