6.3 ACCESO A LOS DATOS
El protocolo Modbus, permite que el acceso sea hecho apenas por bits o por registradores de 16 bits.
Para permitir la escritura o la lectura de un bloque de más de 2 registradores sin retorno de error aunque haya un
registrador no válido en el rango seleccionado, se utilizaron las siguientes definiciones:
La lectura de los registradores que no representan parámetros disponibles devolverá el valor cero cuando el
número de registradores requeridos es mayor que 2. Para solicitaciones con cantidad igual a 1 o 2 registradores,
el código de error 2 (Dirección de dato inválido) es retornado.
Escrituras en registradores que representan parámetros de lectura o inválidos no tendrán efecto y no devuelven
error cuando la cantidad de registradores requeridos es superior a 2. Para solicitaciones con cantidad igual a 1
o 2 registradores, el código de error 2 (Dirección de dato inválido) es retornado.
Los tipos de datos mayores a 16 bits deben ser accedidos como múltiples registradores. Si la cantidad de
registradores solicitados no es suficiente para acceder al tamaño completo del tipo de dato, el código de error 2
(Dirección de dato inválido) es retornado.
Por ejemplo, los datos del tipo float ocupan cuatro bytes de memoria. En el acceso por registradores es necesario
realizar la lectura o escritura de dos registradores en secuencia (valor menos significativo en el primer registrador)
para que los cuatro bytes sean accedidos.
El protocolo Modbus define que, para transmitir un registrador de 16 bits, se debe transmitir siempre el byte más
significativo (MSB) primero. De esta forma, en caso de que sean leídos 4 registradores en secuencia, a partir del
registrador de dirección 0, el contenido de cada registrador será transmitido de la siguiente forma:
1.º Registrador – 0
W0 MSB
6.4 ERRORES DE COMUNICACIÓN
Pueden ocurrir errores de comunicación, tanto en la transmisión de los telegramas, como en el contenido de los
telegramas transmitidos.
En caso de una recepción exitosa, si son detectados problemas durante el tratamiento del telegrama, será retornado
un mensaje indicando el tipo de error ocurrido:
Código del
✓
¡NOTA!
Es importante que sea posible identificar en el cliente qué tipo de error ha ocurrido, para poder
diagnosticar problemas durante la comunicación.
2.º Registrador – 1
W0 LSB
W1 MSB
W1 LSB
Tabla 6.3: Códigos de error para Modbus
Error
1
Función inválida: la función solicitada no está implementada para el
equipo.
2
Dirección de dato inválida: la dirección del dato (registrador o bit) no
existe.
3
Valor de dato inválido:
Valor está fuera del rango permitido.
Escritura en dato que no puede ser alterado (registrador o bit
solamente de lectura).
OPERACIÓN EN LA RED MODBUS TCP – SERVIDOR
3.º Registrador – 2
4.º Registrador – 3
W2 MSB
W2 LSB
W3 MSB
Descripción
W3 LSB
CFW900 | 12