Extended_Addressing
A la variable Extended_Addressing se accede de un modo similar que a la referencia HR_Start_Offset, excepto por el hecho de que la variable Extended_Addressing es un valor booleano.
Para el direccionamiento de esclavo Modbus puede configurarse un byte individual (el estándar de Modbus) con Extended_Adressing = FALSE, o bien dos bytes (Extended_Adressing = TRUE). El direccionamiento avanzado sirve para direccionar más de 247 dispositivos en una sola red. Con Extended_Adressing = TRUE es posible activar un máximo de 65535 direcciones. A continuación se muestra una trama Modbus a modo de ejemplo.
Dirección del esclavo con un byte (byte 0)
|
Byte 0 |
Byte 1 |
Byte 2 |
Byte 3 |
Byte 4 |
Byte 5 |
||
|---|---|---|---|---|---|---|---|
|
Solicitud |
Dirección del |
Código de función |
Dirección inicial |
Datos |
|||
|
Respuesta válida |
Dirección del |
Código de función |
Longitud |
Datos... |
|||
|
Mensaje de error |
Dirección del |
0xxx |
Código de |
||||
Dirección del esclavo con dos bytes (byte 0 y byte 1)
|
Byte 0 |
Byte 1 |
Byte 2 |
Byte 3 |
Byte 4 |
Byte 5 |
Byte 6 |
|
|---|---|---|---|---|---|---|---|
|
Solicitud |
Dirección del esclavo |
Código de función |
Dirección inicial |
Datos |
|||
|
Respuesta válida |
Dirección del esclavo |
Código de función |
Longitud |
Datos... |
|||
|
Mensaje de error |
Dirección del esclavo |
0xxx |
Código de |
||||
Descripción de las tramas
El tráfico de datos entre maestro y esclavo comienza con la dirección del esclavo, seguida del código de función. A continuación se transfieren los datos. La estructura del campo de datos depende del código de función utilizado. Al final de la trama se transmitirá la suma de comprobación (CRC).
Códigos de función con optimización de rendimiento
Con la opción de optimización del rendimiento activada, existen limitaciones en cuanto a la capacidad de los datos transferidos: Encontrará más información sobre las limitaciones en el capítulo Códigos de función.
Código de función 1 - Esta función permite leer bits de salida individuales
FC 1 - Leer bits de salida
|
Byte 0 |
Byte 1 |
Byte 2 |
Byte 3 |
Byte 4 |
Byte 5 |
|
|---|---|---|---|---|---|---|
|
Petición |
Dirección del esclavo |
Código de función 1 |
Dirección inicial |
Número de salidas |
||
|
Respuesta válida |
Dirección del esclavo |
Código de función 1 |
Longitud 1) |
Datos de salida 3) |
||
|
Mensaje de error |
Dirección del esclavo |
0x81 |
Código de excepción 2) |
--- |
||
|
Byte 0 |
Byte 1 |
Byte 2 |
Byte 3 |
Byte 4 |
Byte 5 |
Byte 6 |
|
|---|---|---|---|---|---|---|---|
|
Petición |
Dirección del esclavo |
Código de función 1 |
Dirección inicial |
Número de salidas |
|||
|
Respuesta válida |
Dirección del esclavo |
Código de función 1 |
Longitud 1 |
Datos de salida |
|||
|
Mensaje de error |
Dirección del esclavo |
0x81 |
Código de excepción 2 |
--- |
|||
Código de función 2 - Esta función permite leer bits de entrada individuales
FC 2 - Leer bits de entrada
|
Byte 0 |
Byte 1 |
Byte 2 |
Byte 3 |
Byte 4 |
Byte 5 |
|
|---|---|---|---|---|---|---|
|
Petición |
Dirección del esclavo |
Código de función 2 |
Dirección inicial |
Número de entradas |
||
|
Respuesta válida |
Dirección del esclavo |
Código de función 2 |
Longitud 1 |
Datos de entrada |
||
|
Mensaje de error |
Dirección del esclavo |
0x82 |
Código de excepción 2 |
--- |
||
|
Byte 0 |
Byte 1 |
Byte 2 |
Byte 3 |
Byte 4 |
Byte 5 |
Byte 6 |
|
|---|---|---|---|---|---|---|---|
|
Petición |
Dirección del esclavo |
Código de función 2 |
Dirección inicial |
Número de entradas |
|||
|
Respuesta válida |
Dirección del esclavo |
Código de función 2 |
Longitud 1 |
Datos de entrada |
|||
|
Mensaje de error |
Dirección del esclavo |
0x82 |
Código de excepción 2 |
--- |
|||
Código de función 3 - Esta función permite leer registros individuales
FC 3 - Leer registro de paradas
|
Byte 0 |
Byte 1 |
Byte 2 |
Byte 3 |
Byte 4 |
Byte 5 |
|
|---|---|---|---|---|---|---|
|
Petición |
Dirección del esclavo |
Código de función 3 |
Dirección inicial |
Número de registros |
||
|
Respuesta válida |
Dirección del esclavo |
Código de función 3 |
Longitud 1 |
Datos de registros |
||
|
Mensaje de error |
Dirección del esclavo |
0x83 |
Código de excepción 2 |
--- |
||
|
Byte 0 |
Byte 1 |
Byte 2 |
Byte 3 |
Byte 4 |
Byte 5 |
Byte 6 |
|
|---|---|---|---|---|---|---|---|
|
Petición |
Dirección del esclavo |
Código de función 3 |
Dirección inicial |
Número de registros |
|||
|
Respuesta válida |
Dirección del esclavo |
Código de función 3 |
Longitud 1 |
Datos de registros |
|||
|
Mensaje de error |
Dirección del esclavo |
0x83 |
Código de excepción 2 |
--- |
|||
Código de función 4 - Esta función permite leer registros individuales
FC 4 - Leer palabras de entrada
|
Byte 0 |
Byte 1 |
Byte 2 |
Byte 3 |
Byte 4 |
Byte 5 |
|
|---|---|---|---|---|---|---|
|
Petición |
Dirección del esclavo |
Código de función 4 |
Dirección inicial |
Número de palabras de entrada |
||
|
Respuesta válida |
Dirección del esclavo |
Código de función 4 |
Longitud 1 |
Datos de entrada |
||
|
Mensaje de error |
Dirección del esclavo |
0x84 |
Código de excepción 2 |
--- |
||
|
Byte 0 |
Byte 1 |
Byte 2 |
Byte 3 |
Byte 4 |
Byte 5 |
Byte 6 |
|
|---|---|---|---|---|---|---|---|
|
Petición |
Dirección del esclavo |
Código de función 4 |
Dirección inicial |
Número de palabras de entrada |
|||
|
Respuesta válida |
Dirección del esclavo |
Código de función 4 |
Longitud 1 |
Datos de entrada |
|||
|
Mensaje de error |
Dirección del esclavo |
0x84 |
Código de excepción 2 |
--- |
|||
Código de función 5- Con esta función puede activarse o borrarse un bit individual
FC 5 - Escribir un bit de salida
|
Byte 0 |
Byte 1 |
Byte 2 |
Byte 3 |
Byte 4 |
Byte 5 |
|
|---|---|---|---|---|---|---|
|
Petición |
Dirección del esclavo |
Código de función 5 |
Dirección inicial |
Valor |
||
|
Respuesta válida |
Dirección del esclavo |
Código de función 5 |
Longitud |
Valor |
||
|
Mensaje de error |
Dirección del esclavo |
0x85 |
Código de excepción 1 |
--- |
||
|
Byte 0 |
Byte 1 |
Byte 2 |
Byte 3 |
Byte 4 |
Byte 5 |
Byte 6 |
|
|---|---|---|---|---|---|---|---|
|
Petición |
Dirección del esclavo |
Código de función 5 |
Dirección inicial |
Valor |
|||
|
Respuesta válida |
Dirección del esclavo |
Código de función 5 |
Longitud |
Valor |
|||
|
Mensaje de error |
Dirección del esclavo |
0x85 |
Código de excepción 1 |
--- |
|||
Código de función 6 - Esta función permite escribir registros individuales
FC 6 - Escribir registro de paradas
|
Byte 0 |
Byte 1 |
Byte 2 |
Byte 3 |
Byte 4 |
Byte 5 |
|
|---|---|---|---|---|---|---|
|
Petición |
Dirección del esclavo |
Código de función 6 |
Dirección |
Registros |
||
|
Respuesta válida |
Dirección del esclavo |
Código de función 6 |
Dirección |
Registros |
||
|
Mensaje de error |
Dirección del esclavo |
0x86 |
Código de excepción 1 |
--- |
||
|
Byte 0 |
Byte 1 |
Byte 2 |
Byte 3 |
Byte 4 |
Byte 5 |
Byte 6 |
|
|---|---|---|---|---|---|---|---|
|
Petición |
Dirección del esclavo |
Código de función 6 |
Dirección |
Registros |
|||
|
Respuesta válida |
Dirección del esclavo |
Código de función 6 |
Dirección |
Registros |
|||
|
Mensaje de error |
Dirección del esclavo |
0x86 |
Código de excepción 1 |
--- |
|||
Código de función 8 - Esta función permite comprobar la conexión de comunicación
FC 8 - Estado del esclavo
|
Byte 0 |
Byte 1 |
Byte 2 |
Byte 3 |
Byte 4 |
Byte 5 |
|
|---|---|---|---|---|---|---|
|
Petición |
Dirección del esclavo |
Código de función 8 |
Código de diagnóstico |
Valor de prueba |
||
|
Respuesta válida |
Dirección del esclavo |
Código de función 8 |
Código de diagnóstico |
Valor de prueba |
||
|
Mensaje de error |
Dirección del esclavo |
0x88 |
Código de excepción 1 |
--- |
||
|
Byte 0 |
Byte 1 |
Byte 2 |
Byte 3 |
Byte 4 |
Byte 5 |
Byte 6 |
|
|---|---|---|---|---|---|---|---|
|
Petición |
Dirección del esclavo |
Código de función 8 |
Código de diagnóstico |
Valor de prueba |
|||
|
Respuesta válida |
Dirección del esclavo |
Código de función 8 |
Código de diagnóstico |
Valor de prueba |
|||
|
Mensaje de error |
Dirección del esclavo |
0x88 |
Código de excepción 1 |
--- |
|||
Código de función 11 - Esta función permite leer una "Status-Word" de 2 bytes y un "Event-Counter" de 2 bytes
FC 11 - Contador de eventos de la comunicación del esclavo
|
Byte 0 |
Byte 1 |
Byte 2 |
Byte 3 |
Byte 4 |
Byte 5 |
|
|---|---|---|---|---|---|---|
|
Petición |
Dirección del esclavo |
Código de función 11 |
--- |
|||
|
Respuesta válida |
Dirección del esclavo |
Código de función 11 |
Status |
Contador de eventos |
||
|
Mensaje de error |
Dirección del esclavo |
0x8B |
Código de excepción 1 |
--- |
||
|
Byte 0 |
Byte 1 |
Byte 2 |
Byte 3 |
Byte 4 |
Byte 5 |
Byte 6 |
|
|---|---|---|---|---|---|---|---|
|
Petición |
Dirección del esclavo |
Código de función 11 |
--- |
||||
|
Respuesta válida |
Dirección del esclavo |
Código de función 11 |
Status |
Contador de eventos |
|||
|
Mensaje de error |
Dirección del esclavo |
0x8B |
Código de excepción 1 |
--- |
|||
Código de función 15 - Esta función permite escribir varios bits
FC 15 - Escribir uno o varios bits de salida
|
Byte 0 |
Byte 1 |
Byte 2 |
Byte 3 |
Byte 4 |
Byte 5 |
Byte 6 |
Byte 7 |
Byte n |
|
|---|---|---|---|---|---|---|---|---|---|
|
Petición |
Dirección del esclavo |
Código de función 15 |
Dirección inicial |
Número de palabras de salida |
Contador de bytes 1 |
Valor |
|||
|
Respuesta válida |
Dirección del esclavo |
Código de función 15 |
Dirección inicial |
Número de palabras de salida |
--- |
||||
|
Mensaje de error |
Dirección del esclavo |
0x8F |
Código de excepción 2 |
--- |
|||||
|
Byte 0 |
Byte 1 |
Byte 2 |
Byte 3 |
Byte 4 |
Byte 5 |
Byte 6 |
Byte 7 |
Byte 8 |
Byte n |
|
|---|---|---|---|---|---|---|---|---|---|---|
|
Petición |
Dirección del esclavo |
Código de función 15 |
Dirección inicial |
Número de palabras de salida |
Contador de bytes 1 |
Valor |
||||
|
Respuesta válida |
Dirección del esclavo |
Código de función 15 |
Dirección inicial |
Número de palabras de salida |
--- |
|||||
|
Mensaje de error |
Dirección del esclavo |
0x8F |
Código de excepción 2 |
--- |
||||||
Código de función 16 - Esta función permite escribir uno o varios registros
FC 16 - Escribir uno o varios registros de paradas
|
Byte 0 |
Byte 1 |
Byte 2 |
Byte 3 |
Byte 4 |
Byte 5 |
Byte 6 |
Byte 7 |
Byte n |
|
|---|---|---|---|---|---|---|---|---|---|
|
Petición |
Dirección del esclavo |
Código de función 16 |
Dirección inicial |
Número de registros |
Contador de bytes 1 |
Valor |
|||
|
Respuesta válida |
Dirección del esclavo |
Código de función 16 |
Dirección inicial |
Número de registros |
--- |
||||
|
Mensaje de error |
Dirección del esclavo |
0x90 |
Código de excepción 2 |
--- |
|||||
|
Byte 0 |
Byte 1 |
Byte 2 |
Byte 3 |
Byte 4 |
Byte 5 |
Byte 6 |
Byte 7 |
Byte 8 |
Byte n |
|
|---|---|---|---|---|---|---|---|---|---|---|
|
Petición |
Dirección del esclavo |
Código de función 16 |
Dirección inicial |
Número de registros |
Contador de bytes 1 |
Valor |
||||
|
Respuesta válida |
Dirección del esclavo |
Código de función 16 |
Dirección inicial |
Número de registros |
--- |
|||||
|
Mensaje de error |
Dirección del esclavo |
0x90 |
Código de excepción 2 |
--- |
||||||