Descripción MB_CLIENT (S7-1200, S7-1500)
Descripción MB_CLIENT
Descripción
La instrucción "MB_CLIENT" permite la comunicación como cliente Modbus TCP a través
de la conexión PROFINET. La instrucción "MB_CLIENT" permite establecer una conexión
entre el cliente y el servidor, enviar órdenes Modbus y recibir respuestas, así como contro-
lar la desconexión del cliente Modbus TCP.
Para el S7-1200 con versión de firmware V4.0 puede utilizarse la instrucción "MB_CLI-
ENT" hasta la versión de librería V3.1 inclusive. Con el S7-1200 a partir de la versión de
firmware V4.1 y el S7-1500 puede utilizarse la instrucción "MB_CLIENT" de todas las ver-
siones de librería.
La conexión puede realizarse a través de la interfaz local de la CPU o CM/CP.
Para utilizar esta instrucción no se requiere ningún módulo de hardware adicional.
Conexiones múltiples a cliente
Un cliente Modbus TCP puede admitir varias conexiones TCP (el número máximo de con-
exiones depende de la CPU utilizada). El total de conexiones de una CPU, incluidos los
clientes Modbus TCP y los servidores, no debe exceder el número máximo de conexiones
admitido. Las conexiones Modbus TCP también pueden ser utilizadas conjuntamente por
instancias de "MB_CLIENT" y/o "MB_SERVER".
En algunas conexiones de cliente deben respetarse las siguientes reglas:
• Cada conexión "MB_CLIENT" debe utilizar un DB de instancia unívoco.
• Para cada conexión "MB_CLIENT" debe especificarse una dirección IP unívoca del ser-
vidor.
• Cada conexión "MB_CLIENT" requiere una ID de conexión unívoca.
Para cada DB de instancia de la instrucción debe utilizarse la correspondiente ID de
conexión. Los ID de conexión y los DB de instancia se agrupan por pares y deben ser
unívocos para cada conexión.
• Según la configuración del servidor, se requerirán o no números unívocos de puerto IP.
Parámetros
La tabla siguiente muestra los parámetros de la instrucción "MB_CLIENT":
Parámetro Declaración Tipo de da- Descripción
tos
Orden Modbus al servidor TCP Modbus
El parámetro REQ se controla por nivel. Así,
mientras la entrada esté activada (REQ=true), la
instrucción enviará órdenes de comunicación.
REQ Input BOOL • Al iniciar la orden Modbus se bloquea el DB
de instancia para otros clientes.
• Las modificaciones de los parámetros de en-
trada no se hacen efectivas hasta que no hay
respuesta del servidor o hasta que no se de-
vuelve un mensaje de error.
-1-
Descripción MB_CLIENT (S7-1200, S7-1500)
• Si durante una orden Modbus en curso se
vuelve a activar el parámetro REQ, a continu-
ación no se ejecuta ninguna otra transferen-
cia.
Mediante este parámetro se controla el estable-
cimiento de la conexión y la desconexión con el
servidor Modbus:
• 0: Establecer conexión de comunicación con
el interlocutor configurado en el parámetro
CONNECT (ver parámetro CONNECT).
DISCONNECT Input BOOL • 1: Deshacer la conexión. Durante la desco-
nexión no se ejecuta ninguna otra función.
Tras deshacer la conexión correctamente, el
parámetro STATUS devuelve el valor 0003.
Si el parámetro REQ está activado mientras se
establece la conexión, la orden Modbus se en-
vía de inmediato.
Selección del modo de orden Modbus (lectura,
MB_MODE Input USINT escritura o diagnóstico) o selección directa de
una función Modbus.
MB_DA-
Input UDINT en función de MB_MODE
TA_ADDR
Longitud de datos: Número de bits o palabras
MB_DA- para el acceso a los datos (ver Parámetros
Input UINT
TA_LEN MB_MODE, MB_DATA_ADDR y MB_DA-
TA_LEN).
Puntero hacia un búfer de datos para los datos
MB_DA- VAR-
InOut que se van a recibir desde el servidor Modbus o
TA_PTR IANT
que se van a enviar al servidor Modbus.
Puntero hacia la estructura de la descripción de
la conexión
Se pueden utilizar las siguientes estructuras (ti-
pos de datos de sistema):
• TCON_IP_v4: contiene todos los parámetros
de direccionamiento necesarios para esta-
VAR- blecer una conexión programada. Si se utiliza
CONNECT InOut TCON_IP_v4, la conexión se establece al lla-
IANT
mar la instrucción "MB_CLIENT".
• TCON_Configured: contiene los parámetros
de direccionamiento de una conexión configu-
rada. En el caso de utilizar TCON_Configured
se emplea una conexión existente, estableci-
da después de que la CPU cargara la configu-
ración hardware.
El bit del parámetro de salida DONE se pone a
DONE Out BOOL "1" en cuanto se ejecuta sin errores la última or-
den Modbus.
• 0: Ninguna orden Modbus en proceso
• 1: La orden Modbus se está ejecutando
BUSY Out BOOL
El parámetro de salida BUSY no se activa al es-
tablecer o al deshacer la conexión.
-2-
Descripción MB_CLIENT (S7-1200, S7-1500)
• 0: Ningún error
ERROR Out BOOL • 1: Con errores. La causa del error se indica
mediante el parámetro STATUS.
Información de estado detallada de la instruc-
STATUS Out WORD
ción.
Encontrará más información sobre los tipos de datos válidos en "Vista general de los ti-
pos de datos válidos".
Nota
Datos de entrada coherentes durante una llamada de "MB_CLIENT"
En cuanto se ejecuta una instrucción de cliente Modbus, los valores de los parámetros
de entrada se almacenan internamente y luego se comparan en la siguiente llamada. La
comparación se utiliza para determinar si es esa llamada concreta la que ha iniciado la
orden en curso. Pueden realizarse varias llamadas de "MB_CLIENT" utilizando un DB
de instancia común. Los valores de los parámetros de entrada no deben modificarse
mientras esté ejecutándose una instancia "MB_CLIENT". Si se modifican los parámetros
de entrada durante la ejecución, no se puede comprobar mediante "MB_CLIENT" si la
instancia se está ejecutando en el momento actual.
Variables estáticas de la instrucción
En la siguiente tabla se describen las variables estáticas editables del bloque de datos de
instancia de la instrucción "MB_CLIENT".
Variable Tipo de da- Valor de ar- Descripción
tos ranque
Tiempo en segundos que hay que esperar para
que se inicialice la variable estática ACTIVE en
una instancia Modbus bloqueada. Esto puede
Blocked_Proc_Ti suceder, por ejemplo, cuando, habiéndose emiti-
REAL 3.0
meout do una orden de cliente, se cancela la ejecución
de la función de cliente antes de que se haya
ejecutado por completo la orden. El tiempo de
espera debe estar entre 0,5 s y 55 s.
ID de transacción del protocolo Modbus TCP. El
MB_Transac- valor de arranque "1" solo debe modificarse en
WORD 1
tion_ID caso de que el servidor Modbus TCP necesite
un valor diferente.
Unit Identifier
ID de dispositivo Modbus:
Para acceder a un servidor TCP Modbus se uti-
liza su dirección IP. Por ello no se utiliza el pará-
metro MB_UNIT_ID para el direccionamiento
MB_Unit_ID BYTE 255 Modbus TCP .
El parámetro MB_UNIT_ID equivale al campo de
la dirección de esclavo en el protocolo Modbus
RTU. Si se utiliza un servidor Modbus TCP co-
mo pasarela a un protocolo Modbus RTU, el dis-
positivo esclavo en la red serie puede identifi-
carse con MB_UNIT_ID. En tal caso, el paráme-
-3-
Descripción MB_CLIENT (S7-1200, S7-1500)
tro MB_UNIT_ID reenviaría la orden a la direc-
ción de esclavo Modbus RTU correcta.
Tenga en cuenta que algunos dispositivos Mod-
bus TCP pueden necesitar el parámetro
MB_UNIT_ID para la inicialización dentro de un
rango de valores limitado.
Mediante los enlaces siguientes obtendrá más
información sobre el parámetro MB_Unit_ID:
https://
support.industry.siemens.com/cs/ww/es/
view/102420337
http://support.automation.siemens.com/WW/
view/es/109736516
Intervalo en segundos durante el que la instruc-
ción "MB_CLIENT" permanece a la espera de
RCV_TIMEOUT REAL 2.0
una respuesta del servidor. Debe estar entre 0,5
s y 55 s.
Indica si la conexión con el servidor asignado
Connected BOOL 0 está establecida o no: 1 = conectado, 0 = no
conectado.
Número de intentos de transmisión que realiza
RETRIES WORD 0 la instrucción "MB_CLIENT" antes de devolver el
error W#16#80C8.
Nota
Variable MB_Transaction_ID
Si el ID de transacción en la respuesta del servidor Modbus TCP no coincide con el ID
de transacción de la orden de "MB_CLIENT", la instrucción "MB_CLIENT" espera du-
rante el tiempo RCV_TIMEOUT * RETRIES la respuesta del servidor Modbus TCP con
el ID de transacción correcto; después devuelve el error W#16#80C8.
Ejemplo
Encontrará un proyecto de ejemplo para la comunicación Modbus TCP entre dos CPU
S7-1500 en el portal de Siemens Industry Online Support, con el ID de artículo 94766380.
En este ejemplo se utilizan dos funciones de Modbus. Para cada función Modbus se esta-
blece una conexión Modbus TCP a través de una pareja de bloques Modbus (MB_CLIENT
y MB_SERVER).
-4-
Descripción MB_CLIENT (S7-1200, S7-1500)
Consulte también
Diferencia entre las instrucciones que funcionan síncronamente y las que funcionan
asíncronamente (S7-1200, S7-1500)
-5-