Modbus_Comm_Load: configurar un módulo de comunicaciones para Modbus (S7-1200, S7-1500) - STEP 7

MODBUS (RTU) (S7-1200, S7-1500)

ft:publication_title
MODBUS (RTU) (S7-1200, S7-1500)
Product
STEP 7
Version
V20
Publication date
11/2024
Language
es-ES
Modbus_Comm_Load: configurar un módulo de comunicaciones para Modbus

Nota

Uso con CM1241

El uso de esta instrucción con un CM 1241 solo es posible con una versión de firmware V2.1 o superior del módulo.

Descripción

La instrucción Modbus_Comm_Load configura un módulo de comunicación para la comunicación a través del protocolo Modbus RTU. Si se inserta la instrucción Modbus_Comm_Load en el programa, se asigna automáticamente un bloque de datos de instancia.

Los cambios de configuración de Modbus_Comm_Load no se guardan en la CPU sino en el CM. Al restablecerse la tensión y al desenchufar/enchufar, el CM se parametriza con los datos guardados en la configuración de dispositivos. En estos casos debe volverse a llamar la instrucción Modbus_Comm_Load.

Parámetros

Parámetro

Declaración

Tipo de datos

Estándar

Descripción

S7-
1200/1500

S7-
300/400/
WinAC

REQ

IN

Bool

FALSE

Inicia la instrucción con un flanco ascendente en esta entrada.

PORT

IN

Port

Word

0

Especifica el módulo de comunicación a través del cual se produce la comunicación:

  • para S7-1500/S7-1200: "Identificador de hardware" de la configuración del dispositivo.
    El nombre simbólico del puerto está asignado en la ficha "Constantes de sistema" de la tabla de variables PLC y puede adoptarse de ahí.

  • para S7-300/S7-400: "Dirección de entrada" de la configuración del dispositivo.
    En los sistemas S7-300/400/WinAC se asigna al parámetro PORT la dirección de entrada indicada en la configuración hardware.

BAUD

IN

UDInt

DInt

9600

Selección de la velocidad de transferencia de datos

Los valores admisibles son: 300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 76800, 115200 bits/s. Para el módulo con la referencia 6ES7541-1AB01-0AB0, se admite además el valor 250000 bits/s.

PARITY

IN

UInt

Word

0

Selección de la paridad:

  • 0 – ninguna

  • 1 – impar

  • 2 – par

FLOW_CTRL

IN

UInt

Word

0

Selección del control del flujo:

  • 0 – (estándar) no hay control del flujo

  • 1 – control del flujo de hardware con RTS siempre ON (no es válido para CM RS422/485)

  • 2 – control del flujo de hardware con RTS con protocolo de intercambio (no es válido para CM RS422/485)

RTS_ON_DLY

IN

UInt

Word

0

Selección del retardo a la conexión RTS:

  • 0 – no hay retardo de "RTS activo" hasta que se envía el primer carácter de la trama.

  • 1 a 65535 – retardo en milisegundos de "RTS activo" hasta que se envía el primer carácter de la trama (no es válido para CM RS422/485). Los retardos RTS deben aplicarse independientemente de la selección FLOW_CTRL.

RTS_OFF_DLY

IN

UInt

Word

0

Selección del retardo a la desconexión RTS:

  • 0 – no hay retardo tras la transferencia del último carácter hasta "RTS inactivo"

  • 1 a 65535 – retardo en milisegundos desde la transferencia del último carácter hasta "RTS inactivo" (no es válido para puertos RS422/485). Los retardos RTS deben aplicarse independientemente de la selección FLOW_CTRL.

RESP_TO

IN

UInt

Word

1000

Timeout de respuesta:

5 ms a 65535 ms - tiempo en milisegundos que Modbus_Master espera una respuesta del esclavo. Si el esclavo no responde durante este período, Modbus_Master repite la petición o la finaliza con un error una vez que se ha enviado el número indicado de repeticiones (ver abajo, parámetro RETRIES).

MB_DB

IN/OUT

MB_BASE

Una referencia al bloque de datos de instancia de las instrucciones Modbus_Master o Modbus_Slave.

El parámetro MB_DB debe interconectarse con el parámetro MB_DB (estático y, por tanto, no visible en la instrucción) de la instrucción Modbus_Master o Modbus_Slave .

COM_RST

IN/OUT

---

Bool

FALSE

Inicialización de la instrucción Modbus_Comm_Load

La instrucción se inicializa con TRUE. Seguidamente, la instrucción ajusta COM_RST de nuevo a FALSE.

Nota:
El parámetro solo está disponible para instrucciones S7-300/400.

DONE

OUT

Bool

FALSE

El bit DONE es TRUE durante un ciclo después de que se haya ejecutado correctamente la última orden.

ERROR

OUT

Bool

FALSE

El bit ERROR es TRUE durante un ciclo después de que la última orden haya finalizado con errores. El código de error del parámetro STATUS solo es válido en el ciclo en que ERROR = TRUE.

STATUS

OUT

Word

16#7000

Código de error (consulte Mensajes de error)

Modbus_Comm_Load se ejecuta para configurar un puerto para el protocolo Modbus RTU. Una vez se ha configurado un puerto para el protocolo Modbus RTU, solo pueden utilizarlo la instrucción Modbus_Master o Modbus_Slave.

Para la configuración de cada puerto de comunicación utilizado para la comunicación Modbus debe utilizarse una ejecución de Modbus_Comm_Load. Hay que asignar un DB de instancia Modbus_Comm_Load unívoco a cada puerto utilizado. Posteriormente, solo debe volver a ejecutarse Modbus_Comm_Load cuando deban modificarse parámetros de comunicación como velocidad de transferencia de datos o paridad, así como tras restablecerse la red, en caso necesario.

Si se inserta, p. ej., Modbus_Master o Modbus_Slave en el programa, se asigna automáticamente un bloque de datos de instancia a la instrucción. Debe interconectar el parámetro MB_DB de la instrucción Modbus_Comm_Load con el parámetro MB_DB de la instrucción Modbus_Master o Modbus_Slave.

Variables de bloques de datos de Modbus_Comm_Load

La tabla siguiente muestra las variables estáticas públicas del DB de instancia de Modbus_Comm_Load que pueden utilizarse en el programa.

Variables estáticas en el DB de instancia

Variable

Tipo de datos

Estándar

Descripción

 

S7-
1200/1500

S7-
300/400/
WinAC

   

ICHAR_GAP

Word

0

Tiempo de retardo de caracteres máximo entre caracteres. Este parámetro se indica en milisegundos y sirve para aumentar el período previsto entre los caracteres recibidos. El número correspondiente de tiempos de bit para este parámetro se suma al valor estándar Modbus de 35 tiempos de bit (3,5 tiempos de carácter).

RETRIES

Word

2

Número de intentos repetidos que lleva a cabo el maestro antes de devolver el código de error 0x80C8 para "sin respuesta".

EN_SUPPLY_VOLT

Bool

0

Activar diagnóstico para Falta tensión de alimentación L+

MODE

USInt

Byte

0

Modo de operación

Los modos de operación admitidos son:

  • 0 = dúplex (RS232)

  • 1 = dúplex (RS422) modo a cuatro hilos (punto a punto)

  • 2 = dúplex (RS422) modo a cuatro hilos (maestro multipunto, CM PtP (ET 200SP))

  • 3 = dúplex (RS422) modo a cuatro hilos (esclavo multipunto, CM PtP (ET 200SP))

  • 4 = semidúplex (RS485) modo a dos hilos 1)

LINE_PRE

USInt

Byte

0

Estado inicial de la línea de recepción

Los estados iniciales admitidos son:

  • 0 = "sin" asignación inicial 1)

  • 1 = señal R(A) = 5 V, señal R(B) = 0 V (detección Break):
    en este estado inicial es posible una detección de rotura (Break).
    Solo disponible con: "Dúplex (RS422) modo a cuatro hilos (acoplamiento punto a punto)" y "Dúplex (RS422) modo a cuatro hilos (esclavo multipunto)".

  • 2 = señal R(A) = 0 V, señal R(B) = 5 V:
    este estado inicial corresponde al estado de reposo (ninguna transmisión activa). Con este estado inicial no es posible la detección de rotura (Break).

BRK_DET

USInt

Byte

0

Detección break

Se admiten:

  • 0 = detección Break desactivada

  • 1 = detección Break activada

EN_DIAG_ALARM

Bool

0

Activar aviso de diagnóstico:

  • 0 - no activado

  • 1 - activado

STOP_BITS

USINT

Byte

1

N.º de bits parada

  • 1 = 1 bit de parada,

  • 2 = 2 bits de parada,

  • 0, 3 a 255 = reservado

Versiones de la instrucción

Aunque la versión 3.1 tiene exactamente tiene la misma funcionalidad que la versión 3.0, se ha incrementado el número por motivos internos.