Está en la página 1de 5

Comunicaciones Industriales Tema 7.

Protocolo Modbus

Univ Politcnica de Cartagena. Departamento de Tecnologa Electrnica. Pg. 1
Asignatura: Comunicaciones Industriales. Profesor: Manuel Jimnez Buenda.


Tema 7. Protocolo Modbus






1 Introduccin

La designacin Modbus Modicon corresponde a una marca registrada por Gould Inc.
Como en tantos otros casos, la designacin no corresponde propiamente al estndar de
red, incluyendo todos los aspectos desde el nivel fsico hasta el de aplicacin, sino a un
protocolo de enlace (nivel OSI 2). Puede, por tanto, implementarse con diversos tipos
de conexin fsica y cada fabricante suele suministrar un software de aplicacin propio,
que permite parametrizar sus productos.

No obstante, se suele hablar de MODBUS como un estndar de bus de campo, cuyas
caractersticas esenciales son las que se detallan a continuacin.

2 Estructura de la red

Medio Fsico

El medio fsico de conexin puede ser un bus semidplex (half duplex) (RS-485 o fibra
ptica) o dplex (full duplex) (RS-422, BC 0-20mA o fibra ptica).

La comunicacin es asncrona y las velocidades de transmisin previstas van desde los
75 baudios a 19.200 baudios. La mxima distancia entre estaciones depende del nivel
fsico, pudiendo alcanzar hasta 1200 m sin repetidores.

Acceso al Medio

La estructura lgica es del tipo maestro-esclavo, con acceso al medio controlado por el
maestro. El nmero mximo de estaciones previsto es de 63 esclavos ms una estacin
maestra.

Los intercambios de mensajes pueden ser de dos tipos:

Intercambios punto a punto, que comportan siempre dos mensajes: una demanda
del maestro y una respuesta del esclavo (puede ser simplemente un
reconocimiento (acknowledge).
Mensajes difundidos. Estos consisten en una comunicacin unidireccional del
maestro a todos los esclavos. Este tipo de mensajes no tiene respuesta por parte
de los esclavos y se suelen emplear para mandar datos comunes de configuracin,
reset, etc.


Comunicaciones Industriales Tema 7. Protocolo Modbus

Univ Politcnica de Cartagena. Departamento de Tecnologa Electrnica. Pg. 2
Asignatura: Comunicaciones Industriales. Profesor: Manuel Jimnez Buenda.
3 Protocolo

La codificacin de datos dentro de la trama puede hacerse en modo ASCII o puramente
binario, segn el estndar RTU (Remote Transmission Unit). En cualquiera de los dos
casos, cada mensaje obedece a una trama que contiene cuatro campos principales, segn
se muestra en la figura 1. La nica diferencia estriba en que la trama ASCII incluye un
carcter de encabezamiento (:=3A
H
) y los caracteres CR y LF al final del mensaje.
Pueden existir tambin diferencias en la forma de calcular el CRC, puesto que el
formato RTU emplea una frmula polinmica en vez de la simple suma en mdulo 16.
Con independencia de estos pequeos detalles, a continuacin se da una breve
descripcin de cada uno de los campos del mensaje:



:
(3AH)
N
Esclavo
(00-3FH)
Cdigo
de
Operacin

Subfunciones, Datos

LRC(16)
H L

CR
(0DH)

LF
(0AH)
Codificacin ASCII


N
Esclavo
(00-3FH)
Cdigo
de
Operacin

Subfunciones, Datos

CRC(P16)
H L
Codificacin RTU

Figura 1. Trama genrica del mensaje segn el cdigo empleado

Nmero de esclavo (1 byte):

Permite direccionar un mximo de 63 esclavos con direcciones que van del 01
H
hasta
3F
H
. El nmero 00
H
se reserva para los mensajes difundidos.

Cdigo de operacin o funcin (1 byte):

Cada funcin permite transmitir datos u rdenes al esclavo. Existen dos tipos
bsicos de rdenes:

Ordenes de lectura/escritura de datos en los registros o en la memoria del
esclavo.
Ordenes de control del esclavo y el propio sistema de comunicaciones
(RUN/STOP, carga y descarga de programas, verificacin de contadores de
intercambio, etc.)

La tabla 1 muestra la lista de funciones disponibles en el protocolo MODBUS con
sus correspondientes cdigos de operacin.

Campo de subfunciones/datos (n bytes):

Este campo suele contener, en primer lugar, los parmetros necesarios para ejecutar
la funcin indicada por el byte anterior. Estos parmetros podrn ser cdigos de
subfunciones en el caso de rdenes de control (funcin 00
H
) o direcciones del primer
bit o byte, nmero de bits o palabras a leer o escribir, valor del bit o palabra en caso
de escritura, etc.

Comunicaciones Industriales Tema 7. Protocolo Modbus

Univ Politcnica de Cartagena. Departamento de Tecnologa Electrnica. Pg. 3
Asignatura: Comunicaciones Industriales. Profesor: Manuel Jimnez Buenda.
0 INDEX
FFFFH CRC
TRAMA (INDEX) XOR CRC CRC
0N
DECALAJ E CRC 1 POS
A LA DERECHA
CARRY =1
CRC XOR A001H CRC
N+1=N
INDEX+1=INDEX
FIN
N>7
INDEX >MAX
NO
NO
NO
Figura 2. Clculo del
CRC codificacin RTU
Palabra de control de errores (2 bytes):

En cdigo ASCII, esta palabra es simplemente la suma de comprobacin
(checksum) del mensaje en mdulo 16 expresado en ASCII. En el caso de
codificacin RTU el CRC se calcula con una frmula polinmica segn el algoritmo
mostrado en la figura 2.

Funcin Cdigo
Tarea
0 00
H
Control de estaciones esclavas
1 01
H
Lectura de n bits de salida o internos
2 02
H
Lectura de n bits de entradas
3 03
H
Lectura de n palabras de salidas o internos
4 04
H
Lectura de n palabras de entradas
5 05
H
Escritura de un bit
6 06
H
Escritura de una palabra
7 07
H
Lectura rpida de 8 bits
8 08
H
Control de contadores de diagnsticos
nmero 1 a 8
9 09
H
No utilizado
10 0A
H
No utilizado
11 0B
H
Control del contador de diagnsticos
nmero 9
12 0C
H
No utilizado
13 0D
H
No utilizado
14 0E
H
No utilizado
15 0F
H
Escritura de n bits
16 10
H
Escritura de n palabras
Tabla 1. Funciones bsicas y cdigos de operacin


3.1 Descripcin de las funciones del protocolo

Funcin 0:

Esta funcin permite ejecutar rdenes de control, tales como marcha, paro, carga y
lectura de programas de usuario del autmata. Para codificar cada una de las citadas
rdenes se emplean los cuatro primeros bytes del campo de datos. La trama resultante
es la representada en la figura 3 y la interpretacin de los cdigos de subfuncin se
especifica en la tabla 2.

En caso de las rdenes de marcha y paro, el campo de informacin de la trama
representada en la figura 3 est vaco y, por tanto, el mensaje se compone simplemente
de 6 bytes de funcin ms 2 bytes de CRC. La respuesta del esclavo a estas rdenes es
un mensaje idntico al enviado por el maestro. Cabe sealar, adems, que despus de
un paro el autmata slo acepta ejecutar subfunciones de la funcin 00
H
.

N
Esclavo
(00-3FH)

00H
Cdigo
Subfuncin
SF0 SF1
Datos
Subfuncin
D0 D1

Informacin

CRC(16)
H L

Figura 3. Trama genrica de las subfunciones de control de esclavos (cd. funcin 00H)

Comunicaciones Industriales Tema 7. Protocolo Modbus

Univ Politcnica de Cartagena. Departamento de Tecnologa Electrnica. Pg. 4
Asignatura: Comunicaciones Industriales. Profesor: Manuel Jimnez Buenda.
Cdigo
subfuncin
SF0 SF1
Datos
subfuncin
D0 D1

Tarea
00
H
00
H
00
H
00
H
Paro del esclavo sin inicializar
00
H
01
H
00
H
00
H
Marcha del esclavo sin inicializar
00
H
02
H
00
H
00
H
Marcha e inicializacin del esclavo
00
H
03
H
00
H
XX
H
Lectura de la secuencia XX de programa de
usuario en el esclavo
00
H
04
H
YY
H
XX
H
Carga de una secuencia de programa de usuario
en el esclavo
Peticin: YY =secuencia a cargar, XX=
prxima secuencia
Respuesta: XX=cdigo error, YY=00
Tabla 2. Subfunciones correspondientes a la funcin =00H

Funciones 1 y 2:

Lectura de bits del autmata. La trama es la indicada en la figura 4. La forma de
direccionamiento de los bits es a base de dar la direccin de la palabra que los contiene
y luego la posicin del bit. Obsrvese tambin que la respuesta es dada siempre en
octetos completos.

Peticin del maestro
N
Esclavo
(00-3FH)
01H
o
02H
Direccin
1
er
Bit
PP PB
N de
Bits
NN NN

CRC
H L
PPP =Direccin de la palabra (hex), B=Direccin del bit dentro de la palabra 0 a F
H
.

Respuesta del esclavo
N
Esclavo
(00-3FH)
01H
o
02H
N Octetos
ledos
NN NN
1
er

Octeto
B7..B0
Otros Octetos
Hasta mx.
256

CRC
H L

Figura 4. Peticin y respuesta de la funcin: Lectura de bits (01H, 02H)


Funciones 3 y 4:

Lectura de palabras del autmata. La trama es la indicada en la figura 5. Obsrvese que
la peticin indica el nmero de palabras a leer, mientras que en la respuesta se indica el
nmero de octetos ledos.

Peticin del maestro
N
Esclavo
(00-3FH)
03H
o
04H
Direccin
1 Palabra
PP PP
N de
Palabras
NN NN

CRC
H L
PPPP =Direccin de la palabra (hex)

Respuesta del esclavo
N
Esclavo
(00-3FH)
03H
o
04H
N Octetos
ledos
NN NN
1
er

Palabra
H L
Otras Palabras
Hasta mx. 128
H L,H L,HL,...

CRC
H L

Figura 5. Peticin y respuesta de la funcin: Lectura de palabras (03H,04H)
Comunicaciones Industriales Tema 7. Protocolo Modbus

Univ Politcnica de Cartagena. Departamento de Tecnologa Electrnica. Pg. 5
Asignatura: Comunicaciones Industriales. Profesor: Manuel Jimnez Buenda.
Funcin 5:

Escritura de un bit. La trama es la indiada en la figura 6. El direccionamiento del bit se
efecta tal como se ha indicado para las funciones 1 y 2.

Peticin del maestro
N
Esclavo
(00-3FH)

05H

Direccin
Bit
PP PB

XXH

00H

CRC
H L
PPP =Direccin de la palabra (hex), B=Direccin del bit dentro de la palabra 0 a F
H
.

Respuesta del esclavo
N
Esclavo
(00-3FH)

05H

Direccin
Bit
PP PB

XXH

00H

CRC
H L
XX
H
=00H para bit =0 y XX
H
=FF
H
para bit =1

Figura 6. Peticin y respuesta de la funcin: Escritura de un bit (05H)

Funcin 6:

Escritura de una palabra. La trama es la indicada en la figura 7.

Peticin del maestro
N
Esclavo
(00-3FH)

06H

Direccin
Palabra
PP PP
Valor
Palabra
DD DD

CRC
H L

Respuesta del esclavo
N
Esclavo
(00-3FH)

06H
Direccin
Palabra
PP PP
N de
Palabras
DD DD

CRC
H L

Figura 7. Peticin y respuesta de la funcin: Escritura de una palabra (06H)

Funcin 7:

Peticin de lectura rpida de un octeto. La trama es la mostrada en la figura 8.
Obsrvese que la peticin no tiene campo de direccin, esto es debido a que el octeto
legible por esta funcin es fijo en cada esclavo y viene fijado en su configuracin.

Peticin del maestro
N
Esclavo
(00-3FH)

07H


CRC
H L

Respuesta del esclavo
N
Esclavo
(00-3FH)

07H
Valor
Octeto
DD

CRC
H L

Figura 8. Peticin y respuesta de la funcin: Lectura rpida de un octeto (07H)

Funcin 8:

Peticin del contenido y control de los 8 primeros contadores de diagnstico de un
esclavo (vase tabla 3). Las tramas de peticin y respuesta pueden verse en la figura 9.
Comunicaciones Industriales Tema 7. Protocolo Modbus

Univ Politcnica de Cartagena. Departamento de Tecnologa Electrnica. Pg. 6
Asignatura: Comunicaciones Industriales. Profesor: Manuel Jimnez Buenda.

Peticin del maestro
N
Esclavo
(00-3FH)

08H

Cdigo
Subfuncin
SF0 SF1
Dato
Subfuncin
D0 D1

CRC
H L

Respuesta del esclavo
N
Esclavo
(00-3FH)

08H
Cdigo
Subfuncin
SF0 SF1
Valor
Contador
H L

CRC
H L

Figura 9. Peticin y respuesta de la funcin: Control de contadores (08H)



Subfuncin
N Cdigo
Datos
D0 D1
Tarea
0 00
H
00
H
XY
H
ZT
H
El esclavo enva el eco XYZT de peticin como test.
3 00
H
03
H
ZZ
H
00
H

Modifica el carcter de fin de trama en modo ASCII por
ZZ
H

10 00
H
0A
H
00
H
00
H
Puesta a cero de los contadores
11 00
H
0B
H
00
H
00
H
Lectura del contador 1
12 00
H
0C
H
00
H
00
H
Lectura del contador 1
13 00
H
0D
H
00
H
00
H
Lectura del contador 1
14 00
H
0E
H
00
H
00
H
Lectura del contador 1
15 00
H
0F
H
00
H
00
H
Lectura del contador 1
18 00
H
12
H
00
H
00
H
Lectura del contador 1
Tabla 3



Funcin 11:

La peticin del contenido del contador de diagnstico nmero 9, no se realiza
por la funcin 8, sino por la funcin 11. Las tramas de peticin y respuestas son las
indicadas por la figura 10.


Peticin del maestro
N
Esclavo
(00-3FH)

0BH


CRC
H L

Respuesta del esclavo
N
Esclavo
(00-3FH)

0BH

00 00
Valor
Contador
H L

CRC
H L

Figura 10. Peticin y respuesta de la funcin: Contenido contador 9 (0BH)


Funcin 15:

Escritura de bits del autmata. La trama es la indicada en la figura 11. La forma de
direccionamiento es anloga a la indicada para las funciones 1 y 2.

Comunicaciones Industriales Tema 7. Protocolo Modbus

Univ Politcnica de Cartagena. Departamento de Tecnologa Electrnica. Pg. 7
Asignatura: Comunicaciones Industriales. Profesor: Manuel Jimnez Buenda.
Peticin maestro
N
Esclavo
(00-3FH)

0FH

Direccin
1
er
Bit
PP PB
N de
Bits
NN NN
N de
Octetos
M
Valor de
los bits
8xM valores

CRC
H L

Respuesta del esclavo
N
Esclavo
(00-3FH)

0FH

Direccin
1
er
Bit
PP PB
N de
Bits
NN NN

CRC
H L

Figura 7.11. Peticin y respuesta: Escritura de bits (0FH )

Funcin 16:

Escritura de palabras del autmata. La trama es la indicada en la figura 12.

Peticin maestro
N
Esclavo
(00-3FH)

10FH

Direccin
1 Palabra
PP PP
N de
Palabras
NN NN
N de
Octetos
M
Valor de
las palabras
HL, HL, ...

CRC
H L

Respuesta del esclavo
N
Esclavo
(00-3FH)

10H

Direccin
1 Palabra
PP PP
N de
Palabras
NN NN

CRC
H L

Figura 12. Peticin y respuesta: Escritura de palabras (10H )


Mensajes de error:

Puede ocurrir que un mensaje se interrumpa antes de terminar. Cada esclavo interpreta
que el menaje ha terminado si transcurre un tiempo de silencio equivalente a 3,5
caracteres. Despus de este tiempo el esclavo considera que el carcter siguiente es el
campo de direccin de esclavo de un nuevo mensaje.

Cuando un esclavo recibe una trama incompleta o errnea desde el punto de vista
lgico, enva un mensaje de error como respuesta, excepto en el caso de mensajes de
difusin. La trama del mensaje de error es la indicada en al figura 13.

Respuesta del esclavo
N
Esclavo
(00-3FH)
Cdigo

Funcin
Cdigo

Error

CRC
H L

Figura 13. Trama de mensaje de error

Cdigo Funcin =Cdigo funcin recibido +80
H

Cdigo Error = 01 Cdigo de Funcin errneo:
02 Direccin incorrecta
03 Datos incorrectos
06 Autmata ocupado

Si la estacin maestra no recibe respuesta de un esclavo durante un tiempo superior a un
lmite establecido, declara el esclavo fuera de servicio, a pesar de que al cabo de un
cierto nmero de ciclos hace nuevos intentos de conexin.
Comunicaciones Industriales Tema 7. Protocolo Modbus

Univ Politcnica de Cartagena. Departamento de Tecnologa Electrnica. Pg. 8
Asignatura: Comunicaciones Industriales. Profesor: Manuel Jimnez Buenda.
3.2 Nivel de aplicacin

Como se ha dicho a nivel general de buses de campo, el nivel de aplicacin de
MODBUS no est cubierto por un software estndar, sino que cada fabricante suele
suministrar programas para controlar su propia red. No obstante, el nivel de concrecin
en la definicin de las funciones permite al usuario la confeccin de software propio
para gestionar cualquier red, incluso con productos de distintos fabricantes.

4 Variantes de MODBUS

4.1 JBUS

J BUS es una designacin utilizada por la firma APRIL para un bus propio que presenta
gran similitud con MODBUS, con protocolos prcticamente idnticos.

La designacin J BUS, de la misma forma que MODBUS, corresponde a un protocolo
de enlace ms que a una red propiamente dicha. Puede, por tanto, implementarse con
cualquiera de las conexiones fsicas normalizadas.

4.2 Comparacin entre JBUS y MODBUS

La arquitectura de la red, el formato general de la trama y muchos de los cdigos de
funcin de ambos buses coinciden exactamente. Existen, sin embargo, algunos cdigos
de funcin cambiados, otros que presentan ligeras diferencias o funciones aadidas.

Como diferencias ms relevantes citaremos las siguientes:

Posee un registro de estado en cada estacin que permite un diagnstico de la
estacin.
El nmero de esclavo para J BUS (1er byte de la trama) permite valores que van del
01H hasta el FFH. Permite, por tanto, direccionar 255 esclavos en vez de 63. El
nmero 00H se reserva igualmente para mensajes difundidos.
Las funciones disponibles son prcticamente las mismas en ambos protocolos, pero
algunos cdigos de funcin (2 byte de la trama) y de las subfunciones no
coinciden.

Funcin Cdigo Tarea
1 01
H
Lectura de n bits de salida o internos
2 02
H
Lectura de n bits de entradas
3 03
H
Lectura de n palabras de salidas o
internos
4 04
H
Lectura de n palabras de entradas
5 05
H
Escritura de un bit
6 06
H
Escritura de una palabra
7 07
H
Lectura rpida de 8 bits
15 0F
H
Escritura de n bits
16 10
H
Escritura de n palabras
Tabla 4. Funciones idnticas Modbus Jbus

Comunicaciones Industriales Tema 7. Protocolo Modbus

Univ Politcnica de Cartagena. Departamento de Tecnologa Electrnica. Pg. 9
Asignatura: Comunicaciones Industriales. Profesor: Manuel Jimnez Buenda.
4.3 MODBUS TCP/IP

MODBUSTCP/IP es una variante o extensin del protocolo Modbus que permite
utilizarlo sobre la capa de transporte TCP/IP. De este modo, Modbus-TCP se puede
utilizar en Internet, de hecho, este fue uno de los objetivos que motiv su desarrollo (la
especificacin del protocolo se ha remitido a la IETF=Internet Engineering Task Force).
En la prctica, un dispositivo instalado en Europa podra ser direccionado desde EEUU
o cualquier otra parte del mundo.

Las ventajas para los instaladores o empresas de automatizacin son innumerables:

Realizar reparaciones o mantenimiento remoto desde la oficina utilizando un PC,
reduciendo as los costes y mejorando el servicio al cliente.
El ingeniero de mantenimiento puede entrar al sistema de control de la planta desde
su casa, evitando desplazamientos.
Permite realizar la gestin de sistemas distribuidos geogrficamente mediante el
empleo de las tecnologas de Internet/Intranet actualmente disponibles.

MODBUSTCP/IP se ha convertido en un estndar industrial de facto debido a su
simplicidad, bajo coste, necesidades mnimas en cuanto a componentes de hardware, y
sobre todo a que se trata de un protocolo abierto.

En la actualidad hay cientos de dispositivos MODBUSTCP/IP disponibles en el
mercado. Se emplea para intercambiar informacin entre dispositivos, as como
monitorizarlos y gestionarlos. Tambin se emplea para la gestin de entradas/salidas
distribuidas, siendo el protocolo ms popular entre los fabricantes de este tipo de
componentes.

La combinacin de una red fsica verstil y escalable como Ethernet con el estndar
universal de interredes TCP/IP y una representacin de datos independiente de
fabricante, como MODBUS, proporciona una red abierta y accesible para el
intercambio de datos de proceso.

El protocolo Modbus TCP

Modbus/TCP simplemente encapsula una trama Modbus en un segmento TCP. TCP
proporciona un servicio orientado a conexin fiable, lo que significa que toda consulta
espera una respuesta.




Figura 14. Encapsulamiento de la trama Modbus en TCP.

Esta tcnica de consulta/respuesta encaja perfectamente con la naturaleza
Maestro/Esclavo de Modbus, aadido a la ventaja del determinismo que las redes
Comunicaciones Industriales Tema 7. Protocolo Modbus

Univ Politcnica de Cartagena. Departamento de Tecnologa Electrnica. Pg. 10
Asignatura: Comunicaciones Industriales. Profesor: Manuel Jimnez Buenda.
Ethernet conmutadas ofrecen a los usuarios en la industria. El empleo del protocolo
abierto Modbus con TCP proporciona una solucin para la gestin desde unos pocos a
decenas de miles de nodos.


Prestaciones de un sistemas MODBUS TCP/IP

Las prestaciones dependen bsicamente de la red y el hardware. Si se usa MODBUS
TCP/IP sobre Internet, las prestaciones sern las correspondientes a tiempos de
respuesta en Internet, que no siempre sern las deseables para un sistema de control. Sin
embargo pueden ser suficientes para la comunicacin destinada a depuracin y
mantenimiento, evitando as desplazamientos al lugar de la instalacin.

Si disponemos de una Intranet de altas prestaciones con conmutadores Ethernet de alta
velocidad, la situacin es totalmente diferente.

En teora, MODBUSTCP/IP, transporta datos hasta 250/(250+70+70) o alrededor de
un 60% de eficiencia cuando se trasfieren registros en bloque, y puesto que 10 Base T
proporciona unos 1.25 Mbps de datos, la velocidad de transferencia de informacin til
ser:
1.25M / 2 * 60% =360000 registros por Segundo

En 100BaseT la velocidad es 10 veces mayor.

Esto suponiendo que se estn empleando dispositivos que pueden dar servicio en la red
Ehernet aprovechando todo el ancho de banda disponible.

En los ensayos prcticos realizados por by Schneider Automation utilizando un PLC
Ethernet Momentum
TM
con entradas/salidas Ethernet, demostr que se podan escanear
hasta 4000 bloques I/O por segundo, cada uno con hasta 16 I/O analgicas de 12-bits o
32 I/O digitales (se pueden actualizar 4 bases por milisegundo). Aunque estos resultados
estn por debajo del lmite terico calculado anteriormente, pero debemos recordar que
el dispositivo se prob con una CPU de baja velocidad (80186 a 50MHz con 3 MIPS).

Adems, el abaratamiento de los ordenadores personales y el desarrollo de redes
Ethernet cada vez ms rpidas, permite elevar las velocidades de funcionamiento, a
diferencia de otros buses que estn inherentemente limitados una sola velocidad.


Cmo podemos comunicar dispositivos MODBUS existentes sobre MODBUS
TCP/IP?

Puesto que MODBUSTCP/IP es simplemente un protocolo MODBUSencapsulado
en TCP, es muy sencillo comunicar dispositivos MODBUS existentes sobre
MODBUSTCP/IP. Para ello se requiere una pasarela que convierta el protocolo
MODBUS a MODBUS TCP/IP.

También podría gustarte