Está en la página 1de 6

GET: Leer datos de una CPU remota (S7-1200, S7-1500)

GET: Leer datos de una CPU remota

Descripción
La instrucción "GET" permite leer datos de una CPU remota.
Con un flanco ascendente en la entrada de control REQ se inicia la instrucción:
• Los punteros hacia las áreas que deben leerse (ADDR_i) se transfieren a la CPU inter-
locutora. La CPU interlocutora puede encontrarse en el estado operativo RUN o STOP.
• La CPU interlocutora devuelve los contenidos de los datos:
o Si la respuesta supera la longitud máxima de datos de usuario, se indica en el pará-
metro STATUS con el código de error "2".
o Los datos recibidos se copian durante la siguiente llamada de la instrucción en las
áreas de recepción configuradas (RD_i).
• El término de este proceso se indica con "1" en el parámetro de estado NDR.
No es posible activar otro proceso de lectura hasta que no haya finalizado el último. En
caso de problemas de acceso al leer los datos, o si la comprobación del tipo de datos de-
volvió un error, los errores y advertencias correspondientes se indican a través de ERROR
y STATUS.
Las modificaciones en áreas de datos direccionadas en la CPU interlocutora no se regis-
tran mediante la instrucción "GET".

Requisitos para el uso de la instrucción


• En las propiedades de la CPU interlocutora se ha activado la función "Permitir acceso
vía comunicación PUT/GET del interlocutor remoto" para la CPU interlocutora, en "Pro-
tección".
• Los bloques a los que se accede con la instrucción "GET" se han creado con el tipo de
acceso "estándar".
• Hay que asegurarse de que las áreas definidas por los parámetros ADDR_i y SD_i se
correspondan en cuanto a la cantidad, la longitud y el tipo de datos.
• El área que se debe leer (parámetro ADDR_i) no puede ser mayor que el área de alma-
cenamiento de datos (parámetro RD_i).

Parámetros
La tabla siguiente muestra los parámetros de la instrucción "GET":

Parámetro Declaración Tipo de datos Área de memoria Descripción

El parámetro de control request


I, Q, M, D, L o
REQ Input BOOL activa el intercambio de datos
constante
con un flanco ascendente.
Parámetro de direccionamiento
I, Q, M, D, L o
ID Input WORD para indicar la conexión con la
constante
CPU interlocutora.
Parámetro de estado NDR:
NDR Output BOOL I, Q, M, D, L • 0: La petición aún no se ha
iniciado o todavía está en
curso.

-1-
GET: Leer datos de una CPU remota (S7-1200, S7-1500)

• 1: La petición ha finalizado
correctamente.
ERROR Output BOOL I, Q, M, D, L Parámetros de estado ERROR
y STATUS, indicación de error:
• ERROR=0
STATUS tiene el valor:
o 0000H: ni advertencia ni
error
o <> 0000H: Advertencia,
STATUS Output WORD I, Q, M, D, L STATUS devuelve infor-
mación detallada.
• ERROR=1
Hay un error. STATUS de-
vuelve información detallada
sobre el tipo de error.
ADDR_1 InOut REMOTE Puntero hacia las áreas de la
ADDR_2 InOut REMOTE CPU interlocutora que deben
leerse.
ADDR_3 InOut REMOTE
I, Q, M, D Si el puntero REMOTE accede
a un DB, éste siempre debe es-
pecificarse.
ADDR_4 InOut REMOTE
Ejemplo: P#DB10.DBX5.0
Byte 10.
RD_1 InOut VARIANT
RD_2 InOut VARIANT Puntero hacia las áreas de la
I, Q, M, D, L CPU propia en las que se de-
RD_3 InOut VARIANT positan los datos leídos.
RD_4 InOut VARIANT
Encontrará más información sobre los tipos de datos válidos en "Vista general de los ti-
pos de datos válidos".

Parámetros ERROR y STATUS


La siguiente tabla contiene toda la información de error específica de la instrucción "GET"
que puede indicarse a través de los parámetros ERROR y STATUS .

ERROR STATUS Explicación


(decimal)

Advertencia: La nueva petición no tiene efecto, ya que la anterior to-


0 11
davía no ha finalizado.
0 25 La comunicación se ha iniciado. La petición está en proceso.
Problemas de comunicación, p. ej.
• Descripción de la conexión no cargada (local o remoto)
1 1 • Conexión interrumpida (p. ej. cable, CPU desconectada, CP en
STOP)
• Conexión con el interlocutor todavía no establecida
1 2 • Acuse negativo del interlocutor. La función no puede ejecutarse.

-2-
GET: Leer datos de una CPU remota (S7-1200, S7-1500)

• La respuesta de la estación remota supera la longitud de datos de


usuario máxima (consulte: Parámetros comunes de las instruc-
ciones para la comunicación S7).
• La protección contra acceso está activada en la CPU interlocutora.
Desactive la protección contra acceso en los ajustes de la CPU.
Error en los punteros de almacenamiento de datos RD_i:
• Los tipos de datos de los parámetros RD_i y ADDR_i no son com-
1 4 patibles entre sí.
• La longitud del área RD_i es menor que la longitud de los datos
que se deben leer de los parámetros ADDR_i.
1 8 Error de acceso en la CPU interlocutora.
El acceso a la memoria de usuario local no es posible (p. ej. acceso
1 10
a un DB borrado).
• Se ha excedido el número máximo de peticiones paralelas.
1 20 • La petición se llamará en una clase de baja prioridad (primera lla-
mada).
(solo en S7-1500)
W#16#8 • Se ha excedido el número máximo de peticiones paralelas.
1
0C3 • La petición se llamará en una clase de baja prioridad (primera lla-
mada).

Nota
Coherencia de datos
Los datos se reciben con coherencia si lee la parte actualmente utilizada del área de re-
cepción RD_i por completo antes de activar otra petición.

Ejemplo
En el ejemplo siguiente se utiliza una conexión S7 y se lee en la CPU 1 un juego de datos
de la CPU 2. El juego de datos que debe transferirse es del tipo de datos INT.
Requisitos
• Se han creado dos CPU de la serie S7-1500 y se han conectado entre sí a través de
PROFINET. La conexión todavía no está configurada.
• En ">CPU> > Propiedades > Protección" se ha ajustado para las CPU un nivel de pro-
tección bajo para garantizar que se permitan accesos de lectura y escritura.
• Se permite el acceso mediante la instrucción PUT/GET.

Programa de la CPU 1
Para almacenar los datos de "GET" se crean seis variables en un bloque de datos global.

-3-
GET: Leer datos de una CPU remota (S7-1200, S7-1500)

Para almacenar el juego de datos que se recibirá, se crea un bloque de datos global con
una variable.

Segmento 1: Los parámetros de la instrucción "GET" se interconectan del siguiente modo.

Segmento 2: En caso de error de GET, el estado se guarda del siguiente modo.

Segmento 3: Para el caso de que GET sea correcto, el estado se guarda del siguiente
modo.

-4-
GET: Leer datos de una CPU remota (S7-1200, S7-1500)

Configuración de GET
Para interconectar el parámetro de entrada ID debe abrirse el asistente con la instrucción
"GET" mediante "Propiedades > Configuración".
Realice los siguientes ajustes para la conexión:

Sección Ajuste

Seleccione el interlocutor de la comunica-


ción.
Punto final El resto de datos de conexión se introduce
automáticamente. Se crea automática-
mente una conexión S7 y su identificador
se introduce en el parámetro de entrada ID.
Asegúrese de que la conexión activa salga
Activa
de la CPU 1.

Programa de la CPU 2
Para almacenar el juego de datos que se transferirá, se crea un bloque de datos global
con una variable.

En "Propiedades > Atributos" del bloque de datos, desactive el acceso optimizado al blo-
que.

Comportamiento de GET
Si el parámetro de entrada REQ ("start") devuelve el estado lógico "TRUE", se inicia la in-
strucción "GET". La instrucción consulta los datos de conexión y se pone en contacto con
el interlocutor de comunicación de la conexión S7 utilizada. Para ello, en el parámetro de
entrada ID está almacenado el identificador de la conexión S7.
Mediante el parámetro ADDR_1 se captura la ubicación del juego de datos que se trans-
ferirá ("myValue") de la CPU 2. El juego de datos ("myValue") se lee y se escribe en la ubi-
cación leída ("readValue") en el parámetro RD_1.

Con el estado lógico "TRUE" en el parámetro de salida NDR ("done") y con el valor
"16#0000" en el parámetro de salida STATUS ("status") se indica que la ejecución se ha

-5-
GET: Leer datos de una CPU remota (S7-1200, S7-1500)

realizado correctamente. Puesto que los valores de los parámetros de salida solo se
muestran en el momento en que son válidos, el estado correcto debe guardarse en la vari-
able "memDoneStat". En el parámetro de salida ERROR ("error") o en la variable "mem-
ErrStatus" se indica que la ejecución se ha realizado sin errores.

Encontrará información adicional y el código del programa del ejemplo anterior aquí: Sam-
ple Library for Instructions.

Consulte también
Diferencia entre las instrucciones que funcionan síncronamente y las que funcionan
asíncronamente (S7-1200, S7-1500)
Bytes de relleno cuando se usan tipos de datos estructurados

-6-

También podría gustarte