Está en la página 1de 31

Comunicación

Modbus

Tomado de la presentación del Exprofesor del


departamento en Tecnología en Electrónica
(UNIMINUTO)-Msc. Ing Óscar Espejo
Mojica
Introducción
● MODBUS trabaja en la capa 7 (aplicación) definiendo un tipo de trama
para enviar los datos de manera Cliente -> Servidor
● Sin embargo, en el caso de usar Serial, Modbus define la capa 2 (Enlace)
también dentro de su protocolo
● En cuanto a la capa 1 (Físico) puede ser RS232 o RS485,

Capa MODBUS
Definiciones “lenguaje” Cliente ->
7 - Aplicación Protocolo de aplicación
Servidor
6 - Presentación -

5 - Sesión -

4 - Transporte -

3 - Red -
Llamados Maestro -> Esclavo Half
2 - Enlace Protocolo Serial Duplex

1 - Físico RS 232 / 485 Definidos por EIA/TIA 232-485


Enlace de datos Modbus
● Enlace tipo Maestro -> Esclavo
● Solo un maestro (a la vez) se puede conectar al bus
● Admite 247 Esclavos máximo (1 a 247)
● Solo un maestro puede solicitar información y el
esclavo sólo enviará la información cuando la solicita el
maestro
● Los esclavos no se comunican entre sí
Maestro

Esclavo Esclavo Esclavo Esclavo


1 2 3 ….. 247
Tipos de petición
Solicitu
UNICAST
Maestro d

Respu
es t a
Esclavo Esclavo Esclavo Esclavo
1 2 3 ….. 247

Maestro
Solicitud BROADCAST

Esclavo Esclavo Esclavo Esclavo


1 2 3 ….. 247
Direccionamiento
0 1 a 247 248 a 255

Broadcast Esclavos individuales Reservadas

Descripción de la trama
Código de función Datos

En capa 7 Unidad de Protocolo de Datos (PDU)

Dirección Código de función Datos CRC o LRC

En capa 2 Unidad de Protocolo de Datos (PDU) + Acceso serial


Registros comunes de Modbus
Registro # Dirección Tipo Función

1-9999 0000-270E L/E Salidas digitales

10001-19999 0000-270E L Entradas digitales

30001-39999 0000-270E L Entradas análogas

40001-49999 0000-270E L/E Salidas Análogas


Comandos comunes de Modbus
Código Función Tipo de Valor Acceso Registro # Dirección Tipo Función

1-9999 0000-270E L/E Salidas


digitales
01 Leer salida digital Discreto L
10001-19999 0000-270E L Entradas
digitales
02 Leer entrada digital Discreto L
30001-39999 0000-270E L Entradas
análogas
03 Leer registro análogo Reg. 16b L
40001-49999 0000-270E L/E Salidas
Análogas

04 Leer entrada análoga Reg. 16b L

05 Forzar salida digital Discreto E

06 Escribir registro análogo Reg. 16b E

0F Escribir varias salidas Discreto E


digitales.

10 Escribir varios registros Reg. 16b E


análogos
Ejemplo1 de la nota de aplicación AN-
ODE-3-038
MASTER
01 03 00 05 00 01 94 0B

ID Cod. Fun Dat: Reg. Inicio # de Reg CRC

ESCLAVO
01 03 02 00 00 B8 44

ID Cod. Fun Dat: # bytes Datos CRC


Ejemplo2 de la nota de aplicación AN-
ODE-3-038
MASTER
01 06 00 00 00 01 48 0A

ID Cod. Fun Dat: Registro Valor CRC

ESCLAVO
01 06 00 00 00 01 48 0A

ID Cod. Fun Dat: Registro Valor CRC


Ejemplo 3 de Modicon Modbus
Reference
Ejemplo 3 de Modicon Modbus
Reference
Diagramas de maestro -> Esclavo
Maestro

Petición
BC Ocioso
Inicio del
retardo Fin del
Espera del procesamiento de
retardo Petición UC error
Fin del Inicio del
retardo tiempo de Procesando
espera respuesta
Error en
Respuesta del la trama
esclavo
Esperando
respuesta Procesando
Tiempo error
Respuest de espera
a de otro terminado
esclavo
Diagramas de maestro -> Esclavo
Esclavo
Ocioso

Si es BC
Envía Envío del error al
Respuesta master
Petición
Error en la Formateando
desde el
trama o no es respuesta
master
esta dirección Procesando
la acción
Error en el
procesamiento
Solicitud OK
Revisar
solicitud Procesando
Error en
la error
solicitud
Diagrama de tiempos
Tipo de transmisión RTU (Remote
Terminal Unit)
Envía la información sin otra codificación que la propia

● Código binario de 8 bits


● 1 bit de inicio
● 8 bits de datos LSB primero
● 1 bit de paridad Par
● 1 bit de parada
● 8E1 por defecto, se puede usar pero no se recomienda 8O1 o 8N2

IN B0 B1 B2 B3 B4 B5 B6 B7 P PA

IN B0 B1 B2 B3 B4 B5 B6 B7 PA PA
Descripción de la trama

Dirección Función Datos CRC

1 Byte 1 Byte 0 a 252 Bytes 2 Bytes


(CRC LSByte | CRC MSByte)

Silencio t3,5 para separar las tramas


Descripción de la trama

Dirección Función Datos CRC

1 Byte 1 Byte 0 a 252 Bytes 2 Bytes


(CRC LSByte | CRC MSByte)

Si dentro de la trama no se cumple con un tiempo de menos de


1,5 caracteres se da la trama como errónea
Tipo de transmisión ASCII
La información se codifica primero en ASCII

● Codificación hexadecimal ASCII


● 1 bit de inicio
● 7 bits de datos LSB primero
● 1 bit de paridad
● 1 bit de parada
● 8E1 por defecto, se puede usar pero no se recomienda 8O1 o 8N2

IN B0 B1 B2 B3 B4 B5 B6 P PA

IN B0 B1 B2 B3 B4 B5 B6 PA PA
Descripción de la trama

Inicio Direcci Función Datos LRC FIN


ón

1 CH 2 CH 2 CH 0 a 2X252 CH 2 CH 2 CH
3A (:) Suma de verificación 0D0A (CR,LF)

● El LRC se calcula sin el inicio ni el fin


● Se hace una suma de bloques de 8 bits, se descarta el acarreo y se
complementa a dos

Se necesita el doble de bits para codificar el mensaje


Capa física
Infraestructura
Capa física
Infraestructura - Conexión de dos cables
Capa física
Infraestructura - Conexión de 4 cables
Capa física
Infraestructura - Dispositivos de 2 cables en red de 4
Capa física
Infraestructura - Dispositivos de 4 cables en red de 2
Capa física
Conectores
Capa física
Conectores 2 Cables

Pin en RJ45 Pin en DB9 Requerimiento Descripción (RS485)

3 3 Opcional Control del modo de puerto (PMC)

4 5 Requerido Terminal 1 (B/B’)

5 9 Requerido Terminal 0 (A/A’)

7 2 Recomendado Positivo 5 a 24V

8 1 Requerido Común (C/C’)


Capa física
Conectores 4 Cables

Pin en RJ45 Pin en DB9 Requerimiento Descripción (RS485)

1 8 Requerido RX0 (A’)

2 4 Requerido RX1 (B’)

3 3 Opcional PMC

4 5 Requerido TX1 (B)

5 9 Requerido TX0 (A)

7 2 Recomendado Positivo 5 a 24V

8 1 Requerido Común
Ejemplo Optidrive Nota de aplicación
AN-ODE-01
Ejemplo Optidrive Nota de aplicación
AN-ODE-01
Modbus TCP
RTU/ASCII
ID Comando Datos CRC /LRC T1-T2-T3-T4

11 03 00 6B 00 03 76 87 ----

MODBUS-TCP

Trans ID ID Protocolo Longitud ID Unidad Comando Datos

00 01 00 00 00 06 11 03 00 6B 00 03

Encabezado Datos FCS (Checksum)


TCP
Aplicación de Modbus
Leer la nota de aplicación y desarrollar la conexión con Arduino de tal manera
que se pueda Iniciar, Parar y cambiar la velocidad de un motor desde la
consola serial de Arduino usando un Variador Optidrive (leer el manual que se
encuentra en el laboratorio).

El trabajo será Individual

Tener en cuenta las interfaces necesarias para la conexión como por ejemplo
un MAX485 para no dañar el Arduino.

Nota de aplicación:

https://www.hiflexonline.nl/products/invertek/documentatie/AN-ODE-01_Mod
bus_register_map.pdf

También podría gustarte