Los códigos de las funciones de comunicación Modbus (3, 6, 16) utilizan un registro de
retención Modbus que puede ser un rango de dirección de memoria M o un bloque de datos.
El tipo de registro de retención se especifica con el parámetro MB_HOLD_REG de la
instrucción MB_SLAVE.
Nota
Tipo de bloque de datos MB_HOLD_REG
Un bloque de datos del registro de retención Modbus debe permitir tanto el direccionamiento
directo (absoluto) como el simbólico. Al crear el bloque de datos debe seleccionarse el
atributo de acceso "estándar".
La tabla siguiente muestra ejemplos del mapeo de las direcciones Modbus en el registro de
retención 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- 156 Mapeo de las direcciones Modbus en la memoria de la CPU
Dirección del
maestro Modbus
MW100
40001
MW100
40002
MW102
40003
MW104
40004
MW106
40005
MW108
Tabla 13- 157 Funciones de diagnóstico
Funciones de diagnóstico Modbus de MB_SLAVE en el S7-1200
Códigos
Subfunción
08
0000H
08
000AH
11
La instrucción MB_SLAVE soporta peticiones de escritura Broadcast de cualquier maestro
Modbus, mientras que la petición sea para acceder a direcciones válidas. MB_SLAVE
generará el código de error 0x8188 para códigos de función no soportados en Broadcast.
Controlador programable S7-1200
Manual de sistema, V4.2, 09/2016, A5E02486683-AK
13.9 Comunicación Legacy Modbus RTU (solo CM/CB 1241)
Ejemplos del parámetro MB_HOLD_REG
DB10.DBw0
MW120
DB10.DBW0
MW120
DB10.DBW2
MW122
DB10.DBW4
MW124
DB10.DBW6
MW126
DB10.DBW8
MW128
Descripción
Devolver datos de consulta del test de eco: La instrucción MB_SLAVE responde al
maestro Modbus con una palabra de datos que se están recibiendo datos.
Borrar contador de eventos de comunicación: La instrucción MB_SLAVE borra el con-
tador de eventos de comunicación utilizado para la función Modbus 11.
Consultar contador de eventos de comunicación: La instrucción MB_SLAVE utiliza un
contador de eventos de comunicación interno para registrar el número de peticiones de
lectura y escritura Modbus correctas que se envían al esclavo Modbus. El contador no
se incrementa con las funciones 8 ni 11, ni tampoco con peticiones Broadcast. Tampo-
co se incrementa con peticiones que resulten en un error de comunicación (p. ej. erro-
res de paridad o CRC).
Procesador de comunicaciones y Modbus TCP
DB10.DBW50
"Recipe".ingredient
DB10.DBW50
"Recipe".ingredient[1]
DB10.DBW52
"Recipe".ingredient[2]
DB10.DBW54
"Recipe".ingredient[3]
DB10.DBW56
"Recipe".ingredient[4]
DB10.DBW58
"Recipe".ingredient[5]
1331