Anda di halaman 1dari 13

Direccionamiento en STEP 7

Automatizacin Industrial

ndice
TEMA Direccionamiento en STEP7 1. Tipos de Direccionamiento 1.1 Direccionamiento Inmediato 1.2 Direccionamiento Directo 1.3 Direccionamiento Indirecto 2. Punteros y Tipos de Punteros 2.1 Punteros de Nmero 2.2 Punteros a rea 2.3 Punteros a DB 2.4 Punteros ANY 3. Direccionamiento Indirecto por Memoria 4. Direccionamiento Indirecto por Registro 5. Operaciones Relacionadas con Registros

Tipos de Direccionamiento
Tipos de Direccionamiento
Direccionamiento Inmediato Direccionamiento Directo Direccionamiento Indirecto

Direccionamiento Inmediato
El valor del operando est codificado directamente en la operacin Ejemplo: L W#16#3478

Direccionamiento Directo
La direccin del operando se encuentra codificada en la operacin Ejemplo: L MW 122; A I 1.2

Direccionamiento Indirecto
El operando indica la direccin del valor que va a procesar la operacin. Ejemplo: A I[MD 2];

Direccionamiento Inmediato
Direccionamiento Inmediato
El valor del operando est codificado directamente en la operacin, es decir que la operacin va seguida directamente del operando con el que operar. Por otra parte, una operacin tambin puede aportar su propio valor.

Direccionamiento Directo
Direccionamiento Directo
La direccin del operando se encuentra codificada en la operacin, es decir, el operando indica la direccin del valor que va a procesar la operacin. El operando se compone de dos partes: un identificador (p. ej. IB para byte de entrada) una direccin exacta dentro del rea de memoria indicada por el identificador. El operando indica directamente la direccin del valor.

Direccionamiento Directo
rea I Q PI PQ M T C DB DI L Ejemplo Tipo de Acceso I 0.0 QB 4 Bit, Byte, Palabra, Doble palabra Bit, Byte, Palabra, Doble palabra Descripcin Imagen de Proceso de Entradas Imagen de Proceso de Salidas Entradas de periferia Salidas de periferia Marcas Temporizadores Contadores Datos de un DB global Datos de un DB de instancia Datos locales

PI W 10 Byte, Palabra, Doble palabra PQ D 24 Byte, Palabra, Doble palabra M 100.0 Bit, Byte, Palabra, Doble palabra T 15 C 80 DIW20 LB 34 Bit, Byte, Palabra, Doble palabra Bit, Byte, Palabra, Doble palabra

DBX0.0 Bit, Byte, Palabra, Doble palabra

Direccionamiento Indirecto
Direccionamiento Indirecto
Permite asignar direcciones que no son conocidas hasta la ejecucin Permite mltiples procesamientos de partes del programa Como las direcciones no son calculadas hasta la ejecucin hay un riesgo de que reas de la memoria sean sobrescritas.

Tipos de Direccionamiento Indirecto


Direcciones Indirectas
Direcciones que pueden ser especificadas de Modo Indirecto Direccionamiento
E/S de Periferia, Entradas, Salidas, Bits de Memoria, Datos Globales, Datos de Instancia, Datos Locales, Datos Temporales Temporizadores (T), Contadores (C ), Funciones (FCs), Bloques Funcionales (FBs), Boques de Datos (DBs) Indirecto por Memoria Indirecto por Registro Indirecto por Memoria

Puntero
Puntero de rea Nmero de 16 bits

Tipos de Direccionamiento Indirecto


Direccionamiento Indirecto por Memoria con Nmero Direccionamiento Indirecto por Memoria con Puntero de rea Direccionamiento Indirecto por Registro e Intrarea (rea interna) Direccionamiento Indirecto por Registro e Interrea (rea cruzada)

Punteros y Tipos de Punteros


Punteros
Un puntero se usa para apuntar a una direccin

Tipos de Punteros
Punteros a rea: son de 32 bits de longitud y contiene una direccin especfica Punteros a DB: son de 48 bits de longitud y contienen el nmero de DB adems del
puntero a rea

Punteros ANY: son de 80 bits de longitud y contienen especificaciones adicionales


(como tipo de dato de la direccin) adems del puntero a DB

Direccionamiento Indirecto con un Nmero


El direccionamiento indirecto con un nmero puede considerarse como otro tipo de direccionamiento el Direccionamiento Indexado. Es necesaria la utilizacin de un valor numrico de 16 bits (WORD) que debe de encontrarse en una de las siguientes reas: Marcas (MW) Bloques de Datos Globales (DBW) Datos Locales (LW) Bloques de Datos Instancia (DIW) Los Punteros de Palabra contienen nmeros y se utilizan para direccionar elementos como: Temporizadores (T) Funciones (FCs) Contadores (C ) Bloques de Funcin (FBs) Bloques de Datos (DBs)

Formato del Puntero de Palabra

Punteros a rea (I)


Definicin
El puntero a rea contiene la direccin y es posible tambin el rea direccionada:

Tipos de Punteros a rea


1. Intrarea (rea Interna): El puntero no especifica el rea direccionada 2. Interrea (rea Cruzada): El puntero especifica el rea direccionada

Notacin Constante
1. Intrarea (rea Interna): P#y.x 2. Interrea (rea Cruzada): P#Zy.x
Ejemplo: P#22.0 Ejemplo: P#M22.0 x=direccin bit; y=direccin byte, Z=rea Con el rea se especifica el identificador de la direccin

Punteros a rea (II)


Puntero a Intrarea
Byte n 00000000 Byte n+1 Byte n+2 Byte n+3 00000yyy yyyyyyyy yyyyyxxx
Direccin byte Direccin bit

Puntero a Interrea

Byte n

Byte n+1

Byte n+2

Byte n+3

10000RRR 00000yyy yyyyyyyy yyyyyxxx


rea operando Direccin byte Direccin bit

Cdigo:

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 acceso (reas de Operando): RRR Identificador: 000 001 010 011 100 101 110 111 Rango de direcciones: Y...Y Direccin Byte XXX Direccin Bit Periferia Entradas (PII) Salidas (PIQ) Marcas Datos en DB Global (DB) Datos en DB de instancia (DI) Datos locales del mdulo (L) Datos locales del mdulo anterior (V)

Punteros a DB
Definicin
Un puntero a DB, adems de un puntero a rea, contiene un nmero de bloque de datos como un nmero positivo INT en adicin al puntero a rea. Se especifica el Bloque de Datos si el puntero de rea contiene las reas de direccin de DB global o DB de instancia. En los dems casos los dos primeros bytes son cero.

Notacin Constante
P#DataBlock.DataAddress Puntero a DB
Byte n Byte n+1 Byte n+2 Byte n+3 Byte n+4 Byte n+5 Nmero de Bloque de Datos

Ejemplo: P#DB10.DBX 20.5

Puntero a rea

Punteros ANY (I)


Definicin
Un puntero ANY, adems de un puntero a DB, contiene un tipo de datos y un factor de repeticin.

Tipos de Punteros ANY


El puntero contiene un puntero DB 1. Variables con Tipos Datos: 2. Variables con Tipos Parmetros: El puntero contiene un nmero (temporizadores, Contadores y Bloques)

Notacin Constante
P#[Bloque de Datos.] Direccin Tipo Cantidad 1. Variables con Tipos Datos: 2. Variables con Tipos Parmetros : L#Nmero Tipo Cantidad

Ejemplos:

P#DB11.DBX 30.0 INT 12 ; P#M 16.0 BYTE 8 ; P#I 18.0 WORD 1 ; P#I 1.0 BOOL 1 ; L#10 TIMER 1 ; L#2 COUNTER 1 ;

rea con 12 palabras en DB11 desde DBB30 rea con 8 Bytes desde MB16 Palabra de Entradas IW18 Entrada I1.0 Temporizador T10 Contador C2

Punteros ANY (II)


Campo Tipo en el Puntero ANY
Puntero ANY Puntero ANY para Tipos Datos para Temp/Cont
Byte n Byte n+1 Byte n+2 Byte n+3 Byte n+4 Byte n+5 Byte n+6 Byte n+7 Byte n+8 Byte n+9 16#10 Tipo Cantidad Nmero de Bloque de Datos 16#10 Tipo Cantidad

Puntero ANY para Bloques


16#10 Tipo Cantidad

16#0000 Tipo

16#0000

Puntero a rea

16#00

16#0000

Nmero

Nmero

Tipos de Datos Elementales 01 BOOL 02 BYTE 03 CHAR 04 WORD 05 INT 06 DWORD 07 DINT 08 REAL 09 DATE 0A TOD 0B TIME 0C S5TIME

Tipos de Datos Complejos 0E DT 13 STRING Tipos Parmetro 17 BLOCK_FB 18 BLOCK_FC 19 BLOCK_DB 1A BLOCK_SDB 1C COUNTER 1D TIMER Puntero Cero 00 NIL

Direccionamiento Indirecto por Memoria (I)


En el direccionamiento indirecto por memoria, el operando indica la direccin del valor que va a procesar la operacin. El operando se compone de las siguientes partes: Un identificador (p. ej. IB para byte de entrada) Una palabra que contiene el nmero de un temporizador (T), de un contador (Z), de un bloque de datos (DB), de una funcin (FC) o de un bloque de funcin (FB) Una palabra doble que contiene la direccin exacta de un valor del rea de memoria, indicada por el identificador. Si utiliza un operando indirecto por memoria que est almacenado en el rea de memoria del bloque de datos, deber abrir primero el bloque de datos, utilizando a tal efecto la operacin Abrir bloque de datos. Ejemplo: OPN DB10 L IB [DBD20]

Direccionamiento Indirecto por Memoria (II)


El operando indica la direccin del valor o del nmero de forma indirecta, es decir, utilizando el puntero. Esta palabra o palabra doble puede encontrarse en una de las siguientes reas: Marca (M) Bloque de datos (DB) Bloque de datos de instancia (DI) Datos locales (L).

Direccionamiento Indirecto por Memoria (III)


Direccionamiento Indirecto por Memoria con Nmero
L 133 T MW 20 OPN DB[MW20] ..... SP T[MW 20] //cargar puntero en ACU1 //salvar en palabra de memo. //abrir DB global //arrancar temporizador OPN DB [MW 20] MW 20 133 OPN DB 133

Direccionamiento Indirecto por Memoria con Puntero a rea


L P#30.0 T MD 10 L MW[MD10] ..... A M[MD 10] //cargar puntero en ACU1 //salvar en palabra doble //asignar direccin digital //asignar direccin binaria A M [MD 10] MD 10 P#30.0 A M 30.0

Direccionamiento Indirecto por Registro (I)


Direccionamiento Indirecto por Registro e Intrarea
La direccin del rea interna est definida en uno de los dos registros de direcciones (AR1 AR2). El contenido del registro de direcciones es un puntero a rea interna Con el direccionamiento indirecto por registro, se especifica un offset que se suma al registro de direcciones La suma se realiza cuando la operacin es ejecutada sin modificar el contenido del registro de direcciones El offset tiene el formato de un puntero a rea En direccionamiento indirecto de direcciones digitales, el offset debe tener como direccin bit 0 El mximo valor es: P#8191.7

Direccionamiento Indirecto por Registro (II)


Direccionamiento Indirecto por Registro e Interrea
La direccin general est definida en uno de los dos registros de direcciones (AR1 AR2). El contenido del registro de direcciones es un puntero en general Con el direccionamiento general, se escribe el rea de direcciones junto con el puntero a rea dentro del registro de direcciones Con direccionamiento indirecto slo se especifica un ID para la direccin: No especificar un bit, B para byte, W para palabra y D para doble palabra Se especifica con un offset con direccin bit

Direccionamiento Indirecto por Registro (III)


Direccionamiento Indirecto por Registro e Intrarea
LAR1 P#10.0 //cargar puntero dir. reg. 1 ....... T MW[AR1,P#4.0] //asignar direccin digital ..... A I[AR1,P#2.1] //asignar direccin binaria AR1 P#10.0 A I [AR1, P#2.1] + P#2.1 A I 12.1

Direccionamiento Indirecto por Registro e Interrea


LAR1 P#M12.0 ...... L B[AR1,P#4.0] ..... = [AR1, P#0.7] //cargar puntero dir. reg. 1 //asignar direccin digital // asignar direccin binaria L M B 16.0 L B AR1 P#M12.0 [AR1, P#4.0] + P#4.0

Operaciones Relacionadas con los Registros


Operaciones relacionadas con AR1 y AR2
Operacin
LAR1 LAR1 LAR2 LAR2 TAR1 TAR1 P#{rea}, byte{.bit} (*1) P#{rea}, byte{.bit} (*1) P#{rea}, byte{.bit} (*1)

Operando

Funcin
Cargar contenido de ACU1 en registro de direcciones AR1. Carga el contenido del rea direccionada en el registro de direcciones AR1. Tambin puede utilizar AR 2 como operando, es decir, puede cargar el contenido de AR2 en AR1. Cargar contenido de ACU1 en registro de direcciones AR2. Carga el contenido del rea direccionada en el registro de direcciones AR2. Transfiere el contenido del registro de direcciones 1 AR1 al ACU1. Transfiere el contenido del registro de direcciones 1 AR1 al destino direccionado por la operacin. TAR1 tambin puede utilizar AR2 como operando, es decir, TAR1 puede transferir el contenido de AR1 a AR2. Transfiere el contenido del registro de direcciones 2 AR2 al ACU1.

TAR2 TAR2 TAR +AR1 +AR1 +AR2 +AR2 P#Byte.Bit (*2) P#Byte.Bit (*2) P#{rea}, byte{.bit} (*1)

Transfiere el contenido del registro de direcciones 2 AR2 al destino direccionado por la operacin. Intercambia el contenido de AR1 y AR2. Suma el contenido de la palabra baja del ACU 1 al contenido del registro AR1. Suma una constante puntero al contenido del registro de direcciones AR1. Suma el contenido de la palabra baja del ACU 1 al contenido del registro AR2. Suma una constante puntero al contenido del registro de direcciones AR2. *1 {rea} = {E, A, M, D, DX, L} byte = 0 a 65 535 {.bit} = 0 a 7 *2 de 0.0 a 4 095.7

Ejemplos: Direccionamiento Indirecto (I)


Ejemplo 1:
L T OPN 11 MW 60 DB[MW60] OPN DB 11

Ejemplo 2:

L T L

P#24.0 MD 50 IW [MD50] Direccin Tipo de Acceso Zona de Acceso

L IW 24

Ejemplos: Direccionamiento Indirecto (II)


Ejemplo 3:
AR1 31 00000000 00000RRR 23 00000000 00000BBB 15 00000000 BBBBBBBB 7 0 01010000 BBBBBXXX +200 L Tipo Dato Zona de Registro Constante de Acceso Direccin Desfase 23 00000000 00000BBB 15 00000011 BBBBBBBB MW 210 Instruccin Ejecutada 7 0 00100000 BBBBBXXX +210 L Zona de Registro Constante de Acceso Direccin Desfase IB 210 Instruccin Ejecutada

LAR1 P#10.0 // Preseleccin L MW [AR1,P#200.0]

Ejemplo 4:

AR1

31 10000001 10000RRR

LAR1 P#I 100.0 // Preseleccin L B [AR1,P#110.0]

Ejemplos de Direccionamiento (III)


Ejemplo 5: Memoria con Nmero
L T A 5 DBW100 T[DBW100]

Ejemplo 6: Memoria con Puntero


L T A L P#0.0 MD 100 I[MD 100] MD[MD 100]

Ejemplo 7: Registro Intrarea


M01: LAR1 P#0.0 L 16 T MW 20 A I[AR1, P#0.0] = Q[AR1, P#4.0] +AR1 P#0.1 L MW 20 LOOP M01

Ejemplo 8: Registro Interrea


LAR1 P#I0.0 LAR2 P#Q4.0 L 16 T MW 20 A [AR1, P#0.0] = [AR2, P#0.0] +AR1 P#0.1 +AR2 P#0.1 L MW 20 LOOP M02

M02:

Ejemplos: Direccionamiento Indirecto (IV)


Ejemplo 9:
STEP 7 L 11 T MW 60 OPN DB[MW 60]

Comparacin STEP5 STEP7


STEP 5 L T B A KF11 MW 60 MW 60 DB 0

OPN DB 11 (ADB 11)

L P#24.0 T MD 50 L IW [MD50]

L IW 24

L T B L

KF 24 MW 50 MW 50 IW 0