Los códigos de funciones de mensajes Modbus (3, 6 y 16) entrantes leen o escriben palabras en
un registro de retención Modbus, que puede estar en la memoria M o en un bloque de datos. El
tipo de registro de retención se especifica con el parámetro MB_HOLD_REG.
Nota
Asignación del parámetro MB_HOLD_REG
Los registros de retención Modbus definidos como array of word, entero, carácter ancho, entero
sin signo, byte, entero corto, entero corto sin signo, carácter, palabra doble, entero doble, entero
doble sin signo o real pueden colocarse en cualquier área de memoria.
Los registros de retención Modbus que se definan como estructuras deberán colocarse en DB no
optimizados.
Para un registro de retención Modbus en memoria M, utilice el formato de puntero ANY. Es decir,
en el formato P#"Bit Address" "Data Type" "Length". Un ejemplo sería P#M1000.0 WORD 500.
La tabla siguiente muestra ejemplos del mapeo de las direcciones Modbus en el registro de
retención usado para los códigos de función 03 (leer palabras), 06 (escribir palabras) y 16
(escribir palabras). El límite superior real de las direcciones de DB está determinado por los
límites máximos de memoria de trabajo y de memoria M del respectivo modelo de CPU.
Tabla 13-66
Ejemplos de mapeo de direcciones Modbus en direcciones de memoria de CPU
Dirección de ModBus
40001
40002
40003
40004
40005
Encabezado del protocolo de aplicación Modbus
El encabezado del protocolo de aplicación Modbus lo ocupan los siete primeros bytes de cada
mensaje Modbus TCP. Dicho encabezado contiene el identificador de la transacción, el
identificador del protocolo, la longitud y el identificador de la unidad. El mensaje de respuesta
de la instrucción MB_SERVER contiene los mismos valores para el identificador de la transacción,
el identificador del protocolo y el identificador de la unidad que los recibidos en el mensaje de
petición Modbus. La instrucción MB_SERVER calcula el campo Longitud.
Varias conexiones de servidor
Se pueden crear varias conexiones de servidor. Un solo PLC puede establecer conexiones
concurrentes con varios clientes Modbus TCP.
Un servidor Modbus TCP puede soportar conexiones simultáneas hasta el número máximo de
conexiones Open User Communication permitido por el PLC. El número total de conexiones en
un PLC dado, clientes y servidores Modbus TCP incluidos, no debe sobrepasar el número máximo
de conexiones Open User Communication (Página 591). Las conexiones Modbus TCP pueden
compartirse entre conexiones de cliente o de servidor.
Controlador programable S7-1200
Manual de sistema, V4.5 05/2021, A5E02486683-AO
P#M100.0 Word 5
MW100
MW102
MW104
MW106
MW108
Procesador de comunicaciones y Modbus TCP
Ejemplos del parámetro MB_HOLD_REG
P#DB10.DBx0.0 Word 5
DB10.DBW0
DB10.DBW2
DB10.DBW4
DB10.DBW6
DB10.DBW8
13.5 Comunicación Modbus
"Recipe".ingredient
"Recipe".ingredient[1]
"Recipe".ingredient[2]
"Recipe".ingredient[3]
"Recipe".ingredient[4]
"Recipe".ingredient[5]
1031