Sie sind auf Seite 1von 5

Comunicaciones Industriales Tema 7. Protocolo Modbus Comunicaciones Industriales Tema 7.

Protocolo Modbus

3 Protocolo

Tema 7. Protocolo Modbus La codificación de datos dentro de la trama puede hacerse en modo ASCII o puramente
binario, según el estándar RTU (Remote Transmission Unit). En cualquiera de los dos
casos, cada mensaje obedece a una trama que contiene cuatro campos principales, según
se muestra en la figura 1. La única diferencia estriba en que la trama ASCII incluye un
carácter de encabezamiento («:»=3AH) y los caracteres CR y LF al final del mensaje.
Pueden existir también diferencias en la forma de calcular el CRC, puesto que el
formato RTU emplea una fórmula polinómica en vez de la simple suma en módulo 16.
Con independencia de estos pequeños detalles, a continuación se da una breve
1 Introducción descripción de cada uno de los campos del mensaje:
La designación Modbus Modicon corresponde a una marca registrada por Gould Inc.
Como en tantos otros casos, la designación no corresponde propiamente al estándar de Nº Código
red, incluyendo todos los aspectos desde el nivel físico hasta el de aplicación, sino a un : Esclavo de Subfunciones, Datos LRC(16) CR LF
(3AH) (00-3FH) Operación H L (0DH) (0AH)
protocolo de enlace (nivel OSI 2). Puede, por tanto, implementarse con diversos tipos
Codificación ASCII
de conexión física y cada fabricante suele suministrar un software de aplicación propio,
que permite parametrizar sus productos.
Nº Código
No obstante, se suele hablar de MODBUS como un estándar de bus de campo, cuyas Esclavo de Subfunciones, Datos CRC(P16)
(00-3FH) Operación H L
características esenciales son las que se detallan a continuación. Codificación RTU

2 Estructura de la red Figura 1. Trama genérica del mensaje según el código empleado

Medio Físico Número de esclavo (1 byte):

El medio físico de conexión puede ser un bus semidúplex (half duplex) (RS-485 o fibra Permite direccionar un máximo de 63 esclavos con direcciones que van del 01H hasta
óptica) o dúplex (full duplex) (RS-422, BC 0-20mA o fibra óptica). 3FH. El número 00H se reserva para los mensajes difundidos.

La comunicación es asíncrona y las velocidades de transmisión previstas van desde los Código de operación o función (1 byte):
75 baudios a 19.200 baudios. La máxima distancia entre estaciones depende del nivel
físico, pudiendo alcanzar hasta 1200 m sin repetidores. Cada función permite transmitir datos u órdenes al esclavo. Existen dos tipos
básicos de órdenes:
Acceso al Medio
• Ordenes de lectura/escritura de datos en los registros o en la memoria del
La estructura lógica es del tipo maestro-esclavo, con acceso al medio controlado por el esclavo.
maestro. El número máximo de estaciones previsto es de 63 esclavos más una estación • Ordenes de control del esclavo y el propio sistema de comunicaciones
maestra. (RUN/STOP, carga y descarga de programas, verificación de contadores de
intercambio, etc.)
Los intercambios de mensajes pueden ser de dos tipos:
La tabla 1 muestra la lista de funciones disponibles en el protocolo MODBUS con
• Intercambios punto a punto, que comportan siempre dos mensajes: una demanda sus correspondientes códigos de operación.
del maestro y una respuesta del esclavo (puede ser simplemente un
reconocimiento («acknowledge»). Campo de subfunciones/datos (n bytes):
• Mensajes difundidos. Estos consisten en una comunicación unidireccional del
maestro a todos los esclavos. Este tipo de mensajes no tiene respuesta por parte Este campo suele contener, en primer lugar, los parámetros necesarios para ejecutar
de los esclavos y se suelen emplear para mandar datos comunes de configuración, la función indicada por el byte anterior. Estos parámetros podrán ser códigos de
reset, etc. subfunciones en el caso de órdenes de control (función 00H) o direcciones del primer
bit o byte, número de bits o palabras a leer o escribir, valor del bit o palabra en caso
de escritura, etc.

Univ Politécnica de Cartagena. Departamento de Tecnología Electrónica. Pág. 1 Univ Politécnica de Cartagena. Departamento de Tecnología Electrónica. Pág. 2
Asignatura: Comunicaciones Industriales. Profesor: Manuel Jiménez Buendía. Asignatura: Comunicaciones Industriales. Profesor: Manuel Jiménez Buendía.
Comunicaciones Industriales Tema 7. Protocolo Modbus Comunicaciones Industriales Tema 7. Protocolo Modbus

Palabra de control de errores (2 bytes): Código Datos


subfunción subfunción Tarea
En código ASCII, esta palabra es simplemente la suma de comprobación SF0 SF1 D0 D1
(‘checksum’) del mensaje en módulo 16 expresado en ASCII. En el caso de 00H 00H 00H 00H Paro del esclavo sin inicializar
codificación RTU el CRC se calcula con una fórmula polinómica según el algoritmo 00H 01H 00H 00H Marcha del esclavo sin inicializar
mostrado en la figura 2.
0 → INDEX
00H 02H 00H 00H Marcha e inicialización del esclavo
Función Código FFFFH→ CRC
Tarea
00H 03H 00H XXH Lectura de la secuencia XX de programa de
0 00H Control de estaciones esclavas
TRAMA (INDEX) XOR CRC → CRC usuario en el esclavo
1 01H Lectura de n bits de salida o internos
2 02H Lectura de n bits de entradas 00H 04H YYH XXH Carga de una secuencia de programa de usuario
3 03H Lectura de n palabras de salidas o internos
0→ N en el esclavo
Petición: YY = secuencia a cargar, XX=
4 04H Lectura de n palabras de entradas DECALAJE CRC 1 POS
próxima secuencia
A LA DERECHA
5 05H Escritura de un bit Respuesta: XX= código error, YY= 00
6 06H Escritura de una palabra
7 07H Lectura rápida de 8 bits CARRY = 1
NO Tabla 2. Subfunciones correspondientes a la función =00H
8 08H Control de contadores de diagnósticos
número 1 a 8 Funciones 1 y 2:
CRC XOR A001H→ CRC
9 09H No utilizado
Lectura de bits del autómata. La trama es la indicada en la figura 4. La forma de
10 0AH No utilizado
N+1=N direccionamiento de los bits es a base de dar la dirección de la palabra que los contiene
11 0B H Control del contador de diagnósticos
y luego la posición del bit. Obsérvese también que la respuesta es dada siempre en
número 9 NO
N>7 octetos completos.
12 0CH No utilizado
13 0DH No utilizado Petición del maestro
INDEX+1=INDEX
14 0EH No utilizado Nº 01H Dirección
er
Nº de
Esclavo o 1 Bit Bits CRC
15 0FH Escritura de n bits (00-3FH) 02H PP PB NN NN H L
16 10H Escritura de n palabras INDEX > MAX
NO
PPP = Dirección de la palabra (hex), B= Dirección del bit dentro de la palabra 0 a FH.
Tabla 1. Funciones básicas y códigos de operación
Respuesta del esclavo
er
FIN Nº 01H Nº Octetos 1 Otros Octetos
Esclavo o leídos Octeto Hasta máx. CRC
3.1 Descripción de las funciones del protocolo (00-3FH) 02H NN NN B7..B0 256 H L
Figura 2. Cálculo del
CRC codificación RTU
Función 0: Figura 4. Petición y respuesta de la función: Lectura de bits (01H, 02H)

Esta función permite ejecutar órdenes de control, tales como marcha, paro, carga y
lectura de programas de usuario del autómata. Para codificar cada una de las citadas Funciones 3 y 4:
órdenes se emplean los cuatro primeros bytes del campo de datos. La trama resultante
es la representada en la figura 3 y la interpretación de los códigos de subfunción se Lectura de palabras del autómata. La trama es la indicada en la figura 5. Obsérvese que
especifica en la tabla 2. la petición indica el número de palabras a leer, mientras que en la respuesta se indica el
número de octetos leídos.
En caso de las órdenes de marcha y paro, el campo de «información» de la trama
representada en la figura 3 está vacío y, por tanto, el mensaje se compone simplemente Petición del maestro
Nº 03H Dirección Nº de
de 6 bytes de función más 2 bytes de CRC. La respuesta del esclavo a estas órdenes es Esclavo o 1ª Palabra Palabras CRC
un mensaje idéntico al enviado por el maestro. Cabe señalar, además, que después de (00-3FH) 04H PP PP NN NN H L
PPPP = Dirección de la palabra (hex)
un paro el autómata sólo acepta ejecutar subfunciones de la función 00H.
Nº Código Datos
Respuesta del esclavo
er
Esclavo 00H Subfunción Subfunción Información CRC(16) Nº 03H Nº Octetos 1 Otras Palabras
(00-3FH) SF0 SF1 D0 D1 H L Esclavo o leídos Palabra Hasta máx. 128 CRC
(00-3FH) 04H NN NN H L H L,H L,HL,... H L

Figura 3. Trama genérica de las subfunciones de control de esclavos (cód. función 00H)
Figura 5. Petición y respuesta de la función: Lectura de palabras (03H,04H)

Univ Politécnica de Cartagena. Departamento de Tecnología Electrónica. Pág. 3 Univ Politécnica de Cartagena. Departamento de Tecnología Electrónica. Pág. 4
Asignatura: Comunicaciones Industriales. Profesor: Manuel Jiménez Buendía. Asignatura: Comunicaciones Industriales. Profesor: Manuel Jiménez Buendía.
Comunicaciones Industriales Tema 7. Protocolo Modbus Comunicaciones Industriales Tema 7. Protocolo Modbus

Función 5:
Petición del maestro
Escritura de un bit. La trama es la indiada en la figura 6. El direccionamiento del bit se Nº Código Dato
Esclavo 08H Subfunción Subfunción CRC
efectúa tal como se ha indicado para las funciones 1 y 2. (00-3FH) SF0 SF1 D0 D1 H L

Petición del maestro Respuesta del esclavo


Nº Dirección Nº Código Valor
Esclavo 05H Bit XXH 00H CRC Esclavo 08H Subfunción Contador CRC
(00-3FH) PP PB H L (00-3FH) SF0 SF1 H L H L
PPP = Dirección de la palabra (hex), B= Dirección del bit dentro de la palabra 0 a FH.
Figura 9. Petición y respuesta de la función: Control de contadores (08H)
Respuesta del esclavo
Nº Dirección
Esclavo 05H Bit XXH 00H CRC
(00-3FH) PP PB H L
XXH = 00H para bit = 0 y XXH= FFH para bit = 1 Subfunción Datos
Nº Código D0 D1
Tarea
Figura 6. Petición y respuesta de la función: Escritura de un bit (05H) 0 00H 00H XYH ZTH El esclavo envía el eco XYZT de petición como test.
Modifica el carácter de fin de trama en modo ASCII por
3 00H 03H ZZH 00H
Función 6: ZZH
10 00H 0AH 00H 00H Puesta a cero de los contadores
Escritura de una palabra. La trama es la indicada en la figura 7. 11 00H 0BH 00H 00H Lectura del contador 1
12 00H 0CH 00H 00H Lectura del contador 1
Petición del maestro 13 00H 0DH 00H 00H Lectura del contador 1
Nº Dirección Valor 14 00H 0EH 00H 00H Lectura del contador 1
Esclavo 06H Palabra Palabra CRC
(00-3FH) PP PP DD DD H L
15 00H 0FH 00H 00H Lectura del contador 1
18 00H 12H 00H 00H Lectura del contador 1
Tabla 3
Respuesta del esclavo
Nº Dirección Nº de
Esclavo 06H Palabra Palabras CRC
(00-3FH) PP PP DD DD H L

Función 11:
Figura 7. Petición y respuesta de la función: Escritura de una palabra (06H)

Función 7: La petición del contenido del contador de diagnóstico número 9, no se realiza


por la función 8, sino por la función 11. Las tramas de petición y respuestas son las
Petición de lectura rápida de un octeto. La trama es la mostrada en la figura 8. indicadas por la figura 10.
Obsérvese que la petición no tiene campo de dirección, esto es debido a que el octeto
legible por esta función es fijo en cada esclavo y viene fijado en su configuración.
Petición del maestro

Petición del maestro Esclavo 0BH CRC
Nº (00-3FH) H L
Esclavo 07H CRC
(00-3FH) H L
Respuesta del esclavo
Nº Valor
Respuesta del esclavo Esclavo 0BH 00 00 Contador CRC
Nº Valor (00-3FH) H L H L
Esclavo 07H Octeto CRC
(00-3FH) DD H L
Figura 10. Petición y respuesta de la función: Contenido contador 9 (0BH)
Figura 8. Petición y respuesta de la función: Lectura rápida de un octeto (07H)

Función 8: Función 15:

Petición del contenido y control de los 8 primeros contadores de diagnóstico de un Escritura de bits del autómata. La trama es la indicada en la figura 11. La forma de
esclavo (véase tabla 3). Las tramas de petición y respuesta pueden verse en la figura 9. direccionamiento es análoga a la indicada para las funciones 1 y 2.

Univ Politécnica de Cartagena. Departamento de Tecnología Electrónica. Pág. 5 Univ Politécnica de Cartagena. Departamento de Tecnología Electrónica. Pág. 6
Asignatura: Comunicaciones Industriales. Profesor: Manuel Jiménez Buendía. Asignatura: Comunicaciones Industriales. Profesor: Manuel Jiménez Buendía.
Comunicaciones Industriales Tema 7. Protocolo Modbus Comunicaciones Industriales Tema 7. Protocolo Modbus

Petición maestro 3.2 Nivel de aplicación


Nº Dirección Nº de Nº de Valor de
er
Esclavo 0FH 1 Bit Bits Octetos los bits CRC
(00-3FH) PP PB NN NN M 8xM valores H L Como se ha dicho a nivel general de buses de campo, el nivel de aplicación de
MODBUS no está cubierto por un software estándar, sino que cada fabricante suele
Respuesta del esclavo suministrar programas para controlar su propia red. No obstante, el nivel de concreción
Nº Dirección
er
Nº de en la definición de las funciones permite al usuario la confección de software propio
Esclavo 0FH 1 Bit Bits CRC
(00-3FH) PP PB NN NN H L para gestionar cualquier red, incluso con productos de distintos fabricantes.

Figura 7.11. Petición y respuesta: Escritura de bits (0FH ) 4 Variantes de MODBUS


Función 16: 4.1 JBUS
Escritura de palabras del autómata. La trama es la indicada en la figura 12. JBUS es una designación utilizada por la firma APRIL para un bus propio que presenta
gran similitud con MODBUS, con protocolos prácticamente idénticos.
Petición maestro
Nº Dirección Nº de Nº de Valor de
Esclavo 10FH 1ª Palabra Palabras Octetos las palabras CRC La designación JBUS, de la misma forma que MODBUS, corresponde a un protocolo
(00-3FH) PP PP NN NN M HL, HL, ... H L
de enlace más que a una red propiamente dicha. Puede, por tanto, implementarse con
cualquiera de las conexiones físicas normalizadas.
Respuesta del esclavo
Nº Dirección Nº de
Esclavo 10H 1ª Palabra Palabras CRC 4.2 Comparación entre JBUS y MODBUS
(00-3FH) PP PP NN NN H L

La arquitectura de la red, el formato general de la trama y muchos de los códigos de


Figura 12. Petición y respuesta: Escritura de palabras (10H )
función de ambos buses coinciden exactamente. Existen, sin embargo, algunos códigos
de función cambiados, otros que presentan ligeras diferencias o funciones añadidas.
Mensajes de error:
Como diferencias más relevantes citaremos las siguientes:
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 • Posee un registro de estado en cada estación que permite un diagnóstico de la
caracteres. Después de este tiempo el esclavo considera que el carácter siguiente es el estación.
campo de dirección de esclavo de un nuevo mensaje. • El número de esclavo para JBUS (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
Cuando un esclavo recibe una trama incompleta o errónea desde el punto de vista número 00H se reserva igualmente para mensajes difundidos.
lógico, envía un mensaje de error como respuesta, excepto en el caso de mensajes de
difusión. La trama del mensaje de error es la indicada en al figura 13. • Las funciones disponibles son prácticamente las mismas en ambos protocolos, pero
algunos códigos de función (2º byte de la trama) y de las subfunciones no
Respuesta del esclavo coinciden.
Nº Código Código
Esclavo CRC
(00-3FH) Función Error H L Función Código Tarea
1 01H Lectura de n bits de salida o internos
Figura 13. Trama de mensaje de error 2 02H Lectura de n bits de entradas
3 03H Lectura de n palabras de salidas o
Código Función = Código función recibido + 80H internos
Código Error = 01 Código de Función erróneo: 4 04H Lectura de n palabras de entradas
02 Dirección incorrecta 5 05H Escritura de un bit
03 Datos incorrectos 6 06H Escritura de una palabra
7 07H Lectura rápida de 8 bits
06 Autómata ocupado
15 0FH Escritura de n bits
Si la estación maestra no recibe respuesta de un esclavo durante un tiempo superior a un 16 10H Escritura de n palabras
Tabla 4. Funciones idénticas Modbus Jbus
límite establecido, declara el esclavo fuera de servicio, a pesar de que al cabo de un
cierto número de ciclos hace nuevos intentos de conexión.

Univ Politécnica de Cartagena. Departamento de Tecnología Electrónica. Pág. 7 Univ Politécnica de Cartagena. Departamento de Tecnología Electrónica. Pág. 8
Asignatura: Comunicaciones Industriales. Profesor: Manuel Jiménez Buendía. Asignatura: Comunicaciones Industriales. Profesor: Manuel Jiménez Buendía.
Comunicaciones Industriales Tema 7. Protocolo Modbus Comunicaciones Industriales Tema 7. Protocolo Modbus

4.3 MODBUS® TCP/IP Ethernet conmutadas ofrecen a los usuarios en la industria. El empleo del protocolo
abierto Modbus con TCP proporciona una solución para la gestión desde unos pocos a
MODBUS® TCP/IP es una variante o extensión del protocolo Modbus que permite decenas de miles de nodos.
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 Prestaciones de un sistemas MODBUS TCP/IP
especificación del protocolo se ha remitido a la IETF=Internet Engineering Task Force).
En la práctica, un dispositivo instalado en Europa podría ser direccionado desde EEUU Las prestaciones dependen básicamente de la red y el hardware. Si se usa MODBUS®
o cualquier otra parte del mundo. TCP/IP sobre Internet, las prestaciones serán las correspondientes a tiempos de
respuesta en Internet, que no siempre serán las deseables para un sistema de control. Sin
Las ventajas para los instaladores o empresas de automatización son innumerables: embargo pueden ser suficientes para la comunicación destinada a depuración y
mantenimiento, evitando así desplazamientos al lugar de la instalación.
• Realizar reparaciones o mantenimiento remoto desde la oficina utilizando un PC,
reduciendo así los costes y mejorando el servicio al cliente. Si disponemos de una Intranet de altas prestaciones con conmutadores Ethernet de alta
• El ingeniero de mantenimiento puede entrar al sistema de control de la planta desde velocidad, la situación es totalmente diferente.
su casa, evitando desplazamientos.
• Permite realizar la gestión de sistemas distribuidos geográficamente mediante el En teoría, MODBUS® TCP/IP, transporta datos hasta 250/(250+70+70) o alrededor de
empleo de las tecnologías de Internet/Intranet actualmente disponibles. 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 información útil
MODBUS® TCP/IP se ha convertido en un estándar industrial de facto debido a su será:
simplicidad, bajo coste, necesidades mínimas en cuanto a componentes de hardware, y 1.25M / 2 * 60% = 360000 registros por Segundo
sobre todo a que se trata de un protocolo abierto.
En 100BaseT la velocidad es 10 veces mayor.
En la actualidad hay cientos de dispositivos MODBUS® TCP/IP disponibles en el
mercado. Se emplea para intercambiar información entre dispositivos, así como Esto suponiendo que se están empleando dispositivos que pueden dar servicio en la red
monitorizarlos y gestionarlos. También se emplea para la gestión de entradas/salidas Ehernet aprovechando todo el ancho de banda disponible.
distribuidas, siendo el protocolo más popular entre los fabricantes de este tipo de
componentes. En los ensayos prácticos realizados por by Schneider Automation utilizando un PLC
Ethernet MomentumTM con entradas/salidas Ethernet, demostró que se podían escanear
La combinación de una red física versátil y escalable como Ethernet con el estándar hasta 4000 bloques I/O por segundo, cada uno con hasta 16 I/O analógicas de 12-bits o
universal de interredes TCP/IP y una representación de datos independiente de 32 I/O digitales (se pueden actualizar 4 bases por milisegundo). Aunque estos resultados
fabricante, como MODBUS®, proporciona una red abierta y accesible para el están por debajo del límite teórico calculado anteriormente, pero debemos recordar que
intercambio de datos de proceso. el dispositivo se probó con una CPU de baja velocidad (80186 a 50MHz con 3 MIPS).

El protocolo Modbus TCP Además, el abaratamiento de los ordenadores personales y el desarrollo de redes
Ethernet cada vez más rápidas, permite elevar las velocidades de funcionamiento, a
Modbus/TCP simplemente encapsula una trama Modbus en un segmento TCP. TCP diferencia de otros buses que están inherentemente limitados una sola velocidad.
proporciona un servicio orientado a conexión fiable, lo que significa que toda consulta
espera una respuesta.
Cómo podemos comunicar dispositivos MODBUS existentes sobre MODBUS
TCP/IP?

Puesto que MODBUS® TCP/IP es simplemente un protocolo MODBUS® encapsulado


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

Figura 14. Encapsulamiento de la trama Modbus en TCP.


Esta técnica de consulta/respuesta encaja perfectamente con la naturaleza
Maestro/Esclavo de Modbus, añadido a la ventaja del determinismo que las redes

Univ Politécnica de Cartagena. Departamento de Tecnología Electrónica. Pág. 9 Univ Politécnica de Cartagena. Departamento de Tecnología Electrónica. Pág. 10
Asignatura: Comunicaciones Industriales. Profesor: Manuel Jiménez Buendía. Asignatura: Comunicaciones Industriales. Profesor: Manuel Jiménez Buendía.

Das könnte Ihnen auch gefallen