You are on page 1of 5

Comunicaciones Industriales

Tema 7. Protocolo Modbus

Comunicaciones Industriales

Tema 7. Protocolo Modbus

3 Protocolo

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.

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 (:=3AH) 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):

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.

Permite direccionar un mximo de 63 esclavos con direcciones que van del 01H hasta 3FH. El nmero 00H se reserva para los mensajes difundidos.
Cdigo de operacin o funcin (1 byte):

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

Existen dos tipos

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 00H) 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.

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

Pg. 1

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

Pg. 2

Comunicaciones Industriales

Tema 7. Protocolo Modbus

Comunicaciones Industriales

Tema 7. Protocolo Modbus

Palabra de control de errores (2 bytes):

Cdigo subfuncin

Datos subfuncin

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

SF0 SF1 D0 D1 00H 00H 00H 00H 00H 00H 00H 01H 02H 03H 04H 00H 00H 00H 00H 00H

Tarea
Paro del esclavo sin inicializar Marcha del esclavo sin inicializar Marcha e inicializacin del esclavo

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

00H 01H 02H 03H 04H 05H 06H 07H 08H 09H 0AH 0B H 0CH 0DH 0EH 0FH 10H

Tarea Control de estaciones esclavas Lectura de n bits de salida o internos Lectura de n bits de entradas Lectura de n palabras de salidas o internos Lectura de n palabras de entradas Escritura de un bit Escritura de una palabra Lectura rpida de 8 bits Control de contadores de diagnsticos nmero 1 a 8 No utilizado No utilizado Control del contador de diagnsticos nmero 9 No utilizado No utilizado No utilizado Escritura de n bits Escritura de n palabras

0 INDEX FFFFH CRC

TRAMA (INDEX) XOR CRC CRC

XXH Lectura de la secuencia XX de programa de usuario en el esclavo

00H
0 N DECALAJE CRC 1 POS A LA DERECHA

YYH XXH 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

CARRY = 1

NO

Tabla 2. Subfunciones correspondientes a la funcin =00H Funciones 1 y 2:

CRC XOR A001H CRC

N+1=N

N>7

NO

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)
NO

INDEX+1=INDEX

01H o 02H

Direccin er 1 Bit PP PB

N de Bits NN NN

CRC H L

Tabla 1. Funciones bsicas y cdigos de operacin

INDEX > MAX

PPP = Direccin de la palabra (hex), B= Direccin del bit dentro de la palabra 0 a FH.

Respuesta del esclavo


FIN

3.1

Descripcin de las funciones del protocolo

Funcin 0:

Figura 2. Clculo del CRC codificacin RTU

N Esclavo (00-3FH)

01H o 02H

N Octetos ledos NN NN

1 Octeto B7..B0

er

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:

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 00H.
N Esclavo (00-3FH) 00H Cdigo Subfuncin SF0 SF1 Datos Subfuncin D0 D1 Informacin CRC(16) H L

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 Palabra H L
er

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

CRC H L

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

Figura 5. Peticin y respuesta de la funcin: Lectura de palabras (03H,04H)


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

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

Pg. 3

Pg. 4

Comunicaciones Industriales

Tema 7. Protocolo Modbus

Comunicaciones Industriales

Tema 7. Protocolo Modbus

Funcin 5:

Peticin del maestro 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 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

PPP = Direccin de la palabra (hex), B= Direccin del bit dentro de la palabra 0 a FH.

Respuesta del esclavo


N Esclavo (00-3FH) 05H Direccin Bit PP PB XXH 00H CRC H L

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

XXH = 00H para bit = 0 y XXH= FFH 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

Subfuncin Datos Tarea N Cdigo D0 D1 0 00H 00H XYH ZTH El esclavo enva el eco XYZT de peticin como test. Modifica el carcter de fin de trama en modo ASCII por 3 00H 03H ZZH 00H ZZH 10 00H 0AH 00H 00H Puesta a cero de los contadores 11 00H 0BH 00H 00H Lectura del contador 1 12 00H 0CH 00H 00H Lectura del contador 1 13 00H 0DH 00H 00H Lectura del contador 1 14 00H 0EH 00H 00H Lectura del contador 1 15 00H 0FH 00H 00H Lectura del contador 1 18 00H 12H 00H 00H Lectura del contador 1
Tabla 3

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:

Funcin 11:

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

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) CRC H L 0BH 00 00 Valor Contador H L CRC H L

Respuesta del esclavo


N Esclavo (00-3FH) 07H Valor Octeto DD

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

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

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.

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.

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

Pg. 5

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

Pg. 6

Comunicaciones Industriales

Tema 7. Protocolo Modbus

Comunicaciones Industriales

Tema 7. Protocolo Modbus

Peticin maestro
N Esclavo (00-3FH) 0FH Direccin er 1 Bit PP PB N de Bits NN NN N de Octetos M Valor de los bits 8xM valores CRC H L

3.2

Nivel de aplicacin

Respuesta del esclavo


N Esclavo (00-3FH) 0FH Direccin er 1 Bit PP PB N de Bits NN NN CRC H L

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.

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

4 Variantes de MODBUS
4.1 JBUS

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

JBUS es una designacin utilizada por la firma APRIL para un bus propio que presenta gran similitud con MODBUS, con protocolos prcticamente idnticos. La designacin JBUS, 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

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 )

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 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 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 1 2 3 4 5 6 7 15 16 Cdigo Tarea 01H Lectura de n bits de salida o internos 02H Lectura de n bits de entradas 03H Lectura de n palabras de salidas o internos 04H Lectura de n palabras de entradas 05H Escritura de un bit 06H Escritura de una palabra 07H Lectura rpida de 8 bits 0FH Escritura de n bits 10H Escritura de n palabras

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 + 80H 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.
Univ Politcnica de Cartagena. Departamento de Tecnologa Electrnica. Asignatura: Comunicaciones Industriales. Profesor: Manuel Jimnez Buenda.

Tabla 4. Funciones idnticas Modbus Jbus

Pg. 7

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

Pg. 8

Comunicaciones Industriales

Tema 7. Protocolo Modbus

Comunicaciones Industriales

Tema 7. Protocolo Modbus

4.3

MODBUS TCP/IP

MODBUS TCP/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. MODBUS TCP/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 MODBUS TCP/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.

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, MODBUS TCP/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 MomentumTM 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 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 tcnica de consulta/respuesta encaja perfectamente con la naturaleza Maestro/Esclavo de Modbus, aadido a la ventaja del determinismo que las redes
Univ Politcnica de Cartagena. Departamento de Tecnologa Electrnica. Asignatura: Comunicaciones Industriales. Profesor: Manuel Jimnez Buenda.

Pg. 9

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

Pg. 10