2. • Desarrollado por Modicon en 1979
• 2 implementaciones de capa física:
• Serie: Modbus-RTU / Modbus-ASCII
• Ethernet: Modbus-TCP
• Maestro/esclavo en Modbus-RTU y ASCII
• Cliente/servidor en Modbus-TCP
• Campos de la trama de maestro (orden): Dirección, Código de función, datos y campo de
comprobación.
• Campos de la trama de esclavo (respuesta): Dirección, Confirmación de función, datos y
campo de comprobación.
3. • Modbus define la capa de aplicación.
• Diferentes especificaciones en la capa física.
4. • RS485 de dos hilos recomendado. Tambíén posible RS232.
• Importante resistencias de terminación LT (line termination) para evitar reflexión de la señal
(120-150Ω).
• Resistencias de polarización (pull-up y pull-down), necesarias si así lo especifican los
equipos. Evitan tensiones flotantes.
Modbus (capa física)
5. • Conexión de esclavos de 2 hilos a bus ya existente de 4 hilos RS485.
Modbus (capa física)
6. • Conexión de esclavos de 4 hilos a bus ya existente de 2 hilos RS485.
Modbus (capa física)
7. • Comunicación unicast y broadcast (usando la dirección 0).
• Siempre comienza la comunicación el maestro o cliente.
Modbus (capa de enlace)
8. • Modo RTU (remote terminal unit).
• Modo ASCII (American standard code for information interchange).
Modbus (implementaciones serie)
9. • Dirección (1Byte): Dirección del esclavo.
• Código de función (1B): Número de función modbus (lectura de entradas (02), escritura de
registros (06)…).
• Datos (n Bytes): Longitud en función de lo requerido por el código de función.
• CRC (2 Bytes): Código de comprobación de redundancia cíclica.
Figura 2.7. Modos de Modbus serie: a) RTU y b) ASCII.
Modbus (Trama)
21. Modbus: Códigos de excepción
Cód Nombre Significado
01 ILLEGAL FUNCTION El código de función requerido no existe en el
esclavo (no está implementada).
02 ILLEGAL DATA ADDRESS Se ha intentado acceder a uno o varios registros
que no existen o bien no están permitidos.
03 ILLEGAL DATA VALUE Se ha intentado escribir un valor fuera de los
límites para este esclavo, o la longitud no es la
correcta.
04 SERVER DEVICE FAILURE Error indeterminado al procesar la orden.
05 ACKNOWLEDGE Se envía cuando se espera que se tarde mucho
tiempo en procesar la petición, con el objetivo
de evitar que se produzca un “timeout”
22. Modbus: Códigos de excepción
Cód Nombre Significado
06 SERVER DEVICE BUSY El esclavo está ocupado procesando otra petición
08 MEMORY PARITY ERROR Usado con función 20 y 21 (R/W file record) .
Fallo en la paridad de la memoria.
0A GATEWAY PATH UNAVAILABLE El Gateway no puede encontrar el dispositivo.
Usado cuando se pide por Modbus-TCP el acceso
a un esclavo RTU a través de un Gateway.
0B GATEWAY TARGET DEVICE
FAILED TO RESPOND
El Gateway no obtiene respuesta del dispositivo
destino.
25. • Variante introducida por Schneider.
• Protocolo basado en socket TCP, usando el puerto registrado 502.
• Funciona encapsulando una trama Modbus-RTU dentro de una trama TCP.
Modbus-TCP
26. • Identificador de transacción (transaction identifier) (2B): Un número ascendente para
cada petición, para asociar la respuesta a la petición correspondiente.
• Protocolo de identificación (protocol identifier) (2B): Generalmente es cero, puede
usarse para ampliar el comportamiento.
• Longitud (length) (2B): Longitud en bytes de los siguientes campos (Unit ID+ Modbus
PDU)
• Identificador de la unidad (unit identifier). (2B): Se usa con gateways que para una
misma IP (Modbus-TCP) , comunican con varios equipos por Modbus-RTU.
• Modbus PDU (hasta 253B): Código de función y datos.
Modbus-TCP