Descargar Imprimir esta página

Utilizar Punteros Para Direccionar La Memoria Del S7-200 Indirectamente - Siemens SIMATIC S7-200 Manual De Instrucciones

Manual del sistema de automatización
Ocultar thumbs Ver también para SIMATIC S7-200:

Publicidad

La figura 4-10 muestra un ejemplo de la numeración de E/S para una configuración de hardware
en particular. Los huecos entre las direcciones (que se representan en texto gris en cursiva) no
se pueden utilizar en el programa.
CPU 224XP
I0.0
A0.0
Módulo 0
I0.1
A0.1
I2.0
I0.2
A0.2
I2.1
I0.3
A0.3
I2.2
I0.4
A0.4
I2.3
I0.5
A0.5
I2.4
I0.6
Q0.6
I2.5
I0.7
Q0.7
I2.6
I1.0
Q1.0
I2.7
I1.1
Q1.1
I1.2
E/S de ampliación
Q1.2
I1.3
Q1.3
I1.4
Q1.4
I1.5
Q1.5
I1.6
Q1.6
I1.7
Q1.7
AIW0
AQW0
AIW2
AQW2
E/S físicas
Figura 4-10
Ejemplo de direcciones de E/S integradas y de ampliación (CPU 224XP)
Utilizar punteros para direccionar la memoria del S7-200
indirectamente
El direccionamiento indirecto utiliza un puntero para acceder a los datos de la memoria. Los
punteros son valores de palabra doble que señalan a una dirección diferente en la memoria.
Como punteros sólo se pueden utilizar direcciones de la memorias V y L, o bien los
acumuladores (AC1, AC2 y AC3). Para crear un puntero se debe utilizar la operación Transferir
palabra doble, con objeto de transferir la dirección indirecta a la del puntero. Los punteros
también se pueden transferir a una subrutina en calidad de parámetros.
El S7-200 permite utilizar punteros para acceder a las siguientes áreas de memoria: I, Q, V, M, S,
AI, AQ, SM, T (sólo el valor actual) y C (sólo el valor actual). El direccionamiento indirecto no se
puede utilizar para acceder a un bit individual ni para acceder a las áreas de memoria HC o L.
Para acceder indirectamente a los datos de una dirección de la memoria es preciso crear un
puntero a esa dirección, introduciendo para ello un carácter "&" y la dirección a la que se desea
acceder. El operando de entrada de la operación debe ir precedido de un carácter "&" para
determinar que a la dirección indicada por el operando de salida (es decir, el puntero) se debe
transferir la dirección y no su contenido.
Introduciendo un asterisco (*) delante de un operando de una operación, se indica que el
operando es un puntero. En el ejemplo que muestra la figura 4-11, *AC1 significa que AC1 es el
puntero del valor de palabra indicado por la operación Transferir palabra (MOVW). En este
ejemplo, los valores almacenados en VB200 y VB201 se transfieren al acumulador AC0.
V199
V200
1 2
3 4
V201
5 6
V202
7 8
V203
Figura 4-11
Crear y utilizar un puntero
4 entradas /
8 entradas
4 salidas
Módulo 1
Q2.0
I3.0
Q2.1
I3.1
Q2.2
I3.2
Q2.3
I3.3
I3.4
Q2.4
I3.5
Q0.5
I3.6
Q2.6
I3.7
Q2.7
AC1
Dirección de VW200
AC0
1234
Transfiere a AC0 el valor de palabra al que señala el puntero AC1.
Generalidades del S7-200
4 entradas analógicas
8 salidas
1 salida analógica
Módulo 2
Módulo 3
AIW4
AQW4
Q3.0
AIW6
Q3.1
AQW6
AIW8
Q3.2
AIW10
Q3.3
Q3.4
Q3.5
Q3.6
Q3.7
MOVD &VW200, AC1
Crea el puntero transfiriendo la dirección de VB200
(dirección del byte inicial de VW200) a AC1.
MOVW *AC1, AC0
Capítulo 4
4 entradas analógicas
1 salida analógica
Módulo 4
AIW12
AQW8
AIW14
AQW10
AIW16
AIW18
37

Hide quick links:

Publicidad

loading