Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
Descripcin
I 0.0
QB 4
PI
Entradas de periferia
PQ
Salidas de periferia
Marcas
T 15
Temporizadores
C 80
DB
Datos de un DB global
DI
DIW20
Datos de un DB de instancia
LB 34
Datos locales
Contadores
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.
Puntero
Puntero de rea
Nmero de 16 bits
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
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
Byte n
00000000
Byte n+1
Byte n+2
Puntero a
Interrea
Byte n+3
Byte n
Byte n+1
Byte n+2
Direccin bit
Byte n+3
Cdigo:
Direccin byte
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
Nmero de
Bloque de Datos
Byte n+2
Byte n+3
Byte n+4
Byte n+5
Puntero a
rea
Notacin Constante
1. Variables con Tipos Datos:
P#[Bloque de Datos.] Direccin Tipo Cantidad
2. Variables con Tipos Parmetros : L#Nmero Tipo Cantidad
Ejemplos:
16#10
16#10
16#10
Tipo
Tipo
Tipo
Cantidad
Cantidad
Cantidad
Nmero de
Bloque de Datos
16#0000
16#0000
Tipo
Byte n+6
Byte n+7
Byte n+8
Byte n+9
Puntero ANY
para Bloques
Puntero a
rea
16#00
Nmero
16#0000
Nmero
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
OPN DB10
L
IB [DBD20]
OPN
DB
[MW 20]
MW 20
133
OPN
DB
133
[MD 10]
MD 10
P#30.0
30.0
AR1
P#10.0
A
[AR1, P#2.1]
P#2.1
A
12.1
AR1
P#M12.0
//asignar direccin digital
[AR1, P#4.0]
P#4.0
L
M B
16.0
Operando
LAR1
Funcin
Cargar contenido de ACU1 en registro de direcciones AR1.
LAR1
AR2
LAR1
<Direccin>
LAR1
P#{rea}, byte{.bit}
LAR2
LAR2
<Direccin>
LAR2
P#{rea}, byte{.bit}
TAR
TAR1
TAR1
AR2
TAR1
<Direccin>
TAR2
TAR2
+AR1
+AR1
Suma el contenido de la palabra baja del ACU 1 al contenido del registro AR1.
P#Byte.Bit
+AR2
+AR2
P#Byte.Bit
Ejemplo 2:
L
T
OPN
L
T
L
11
MW 60
DB[MW60]
OPN DB 11
P#24.0
MD 50
IW [MD50]
L IW 24
Direccin
Tipo de Acceso
Zona de Acceso
AR1
31
00000000
23
00000000
15
00000000
7
0
01010000
00000RRR
00000BBB
BBBBBBBB
BBBBBXXX
LAR1 P#10.0
// Preseleccin
L MW [AR1,P#200.0]
+200
L
Tipo
Dato
Ejemplo 4:
AR1
MW 210
Instruccin
Ejecutada
31
10000001
23
00000000
15
00000011
7
0
00100000
10000RRR
00000BBB
BBBBBBBB
BBBBBXXX
+210
L
IB 210
Instruccin
Ejecutada
L
T
A
L
5
DBW100
T[DBW100]
LAR1 P#0.0
L 8
T MW 20
A I[AR1, P#0.0]
=
Q[AR1, P#4.0]
+AR1
P#0.1
L MW 20
LOOP M01
P#0.0
MD 100
I[MD 100]
MD[MD 100]
M02:
LAR1 P#I0.0
LAR2 P#Q4.0
L 8
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
Ejemplo 9:
STEP 7
STEP 5
L 11
T MW 60
OPN DB[MW 60]
L
T
B
A
KF11
MW 60
MW 60
DB 0
L
T
B
L
KF 24
MW 50
MW 50
IW 0
L
P#24.0
T
MD 50
L IW [MD50]
OPN DB 11
(A DB 11)
L IW 24