Download - RED MODBUS
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E
INDUSTRIAL
Tema: Protocolo Modbus
Carrera: Ingeniería en Electrónica y Comunicaciones
Área Académica: Redes
Línea de Investigación: Programación y Redes
Ciclo Académico y Paralelo: VI Semestre Paralelo “A”
Autor:
Laica Cunalata Oscar daniel
Módulo y Docente: Interfaz de Pc– Ing. Santiago Collantes
Ambato-Ecuador
2015
Protocolo Modbus
INTRODUCCIÓN
Este ensayo se elabora con el fin de dar a conocer la historia y
funcionamiento del protocolo MODBUS, sus usos y aplicaciones para la
correcta comprensión del tema.
El protocolo MODBUS define una estructura de mensajes que puede ser
reconocida por diferentes dispositivos independientemente del tipo de red de
comunicaciones utilizada. El protocolo describe el proceso para acceder a
información de un dispositivo, cómo debe responder éste, y como se notifican
las situaciones de error. El protocolo MODBUS define una red digital de
comunicaciones con un solo master y uno o más dispositivos slave.
DESARROLLO
Modbus es un protocolo de comunicaciones publicado por Modicon en 1979,
diseñado para funcionar con equipos industriales tales como Controladores
Lógicos Programables (PLCs), Computadoras, Motores, Sensores, y otros tipos
de dispositivos físicos de entrada/salida. Simple y robusto, se ha convertido en
un protocolo estándar de comunicación, siendo uno de los más comunes en
industria para la comunicación de dispositivos electrónicos.
Las principales razones por las que se ha extendido tanto el uso de este
protocolo son las siguientes:
Es público.
Su implementación es sencilla y requiere tiempos de desarrollo
reducidos.
Maneja bloques de datos sin suponer restricciones.
Modbus/TCP fue introducido por Schneider Automation como una variante de
la familia Modbus destinado a la supervisión y el control de equipos de
automatización. Específicamente, el protocolo cubre el uso de mensajes
Modbus en un entorno Intranet o Internet usando los protocolos TCP/IP1 . La
especificación Modbus/TCP define un estándar interoperable en el campo de la
automatización industrial, el cual es simple de implementar para cualquier
dispositivo que soporta sockets TCP/IP.
Modo de transmisión
El modo de transmisión es la estructura de las unidades de información
contenidas en un mensaje. El protocolo MODBUS define dos modos de
transmisión: ASCII (American Satandard Code for Information Interchange) y
RTU (Remote Terminal Unit). En una red de dispositivos conectados mediante
el protocolo MODBUS NO se pueden compartir dispositivos utilizando
diferentes modos de transmisión.
Estructura del mensaje
Un mensaje consiste en una secuencia de carácteres que puedan ser
interpretados por el receptor. Esta secuencia de carácteres define la trama.
Para sincronizar la trama, los dispositivos receptores monitorizan el intervalo de
tiempo transcurrido entre carácteres recibidos. Si se detecta un intervalo mayor
que tres veces y media el tiempo necesario para transmitir un carácter, el
dispositivo receptor ignora la trama y asume que el siguiente carácter que
recibirá será una dirección.
Ilustración 1. Estructura MODBUS maestro esclavo
Dirección.- El campo dirección es el primero de la trama después del tiempo
de sincronización. Indica el dispositivo al que va dirigido el mensaje. Cada
dispositivo de la red debe tener asignada una dirección única, diferente de
cero. Igualmente, cuando un dispositivo responde a un mensaje, debe enviar
en primer lugar su dirección para que el master reconozca la procedencia del
mensaje. MODBUS permite enviar mensajes a todos los dispositivos a la vez
utilizando para ello la dirección cero. Sin embargo, para evitar conflictos con
otros dispositivos en la red, los modelos AK30/32 de la serie Akros no aceptan
este tipo de mensajes.
Función.- El campo función indica al dispositivo direccionado qué tipo de
función ha de realizar. Los modelos AK30/32 aceptan las siguientes funciones:
Ilustración 2. rangos de funcion
Datos.-El campo datos contiene la información necesaria para que los
dispositivos puedan ejecutar las funciones solicitadas, o la información enviada
por los dispositivos al master como respuesta a una función.
CRC.-El campo CRC es el último de la trama y permite al master y a los
dispositivos detectar errores de transmisión. Ocasionalmente, debido a ruido
eléctrico o a interferencias de otra naturaleza, se puede producir alguna
modificación en el mensaje mientras se está transmitiendo. El control de
errores por medio de CRC asegura que los dispositivos receptores o el master
no efectuaran acciones incorrectas debido a una modificación accidental del
mensaje.
Para el cálculo de CRC no se consideran los bits de stop ni de paridad. Sólo los
de datos. La secuencia para el cálculo de CRC se describe a continuación:
1. Cargar un registro de 16 bits a 1’s.
2. Efectuar un OR exclusivo de los primeros 8 bits recibidos con el byte
alto del registro, guardando el resultado en el registro.
3. Desplazar el registro un bit a la derecha.
4. a) Si el bit desplazado es un 1, efectuar un OR exclusivo del valor
1010 0000 0000 0001 con el contenido del registro y guardarlo en el
registro.
4. b) Si el bit desplazado es un 0, volver al paso 3. 5. Repetir los pasos 3
y 4 hasta haber efectuado 8 desplazamientos de bit
Estructura del protocolo [1]
A continuación se describe la forma general de encapsulación de una solicitud
o respuesta Modbus cuando es llevada sobre una red Modbus/TCP. Es
importante anotar que la estructura del cuerpo de la solicitud y respuesta,
desde el código defunción hasta el fin de la porción de datos, tiene
exactamente la misma disposición y significado como en las otras variantes
Modbus, tal como:
Modbus serial. codificación ASCII
Modbus serial. codificación RTU
Modbus PLUS
Las únicas diferencias en esos otros casos son la especificación de los
delimitadores inicial y final del mensaje7 , el patrón de chequeo de error y la
interpretación de la dirección.
Todas las solicitudes son enviadas vía TCP sobre el puerto registrado 502. Las
solicitudes normalmente son enviadas en forma half-duplex8 sobre una
conexión dada.
El campo dirección esclavo de Modbus es reemplazado por un byte
identificador de unidad, el cual puede ser usado para comunicar a través de
dispositivos tales como puentes y gateways, los cuales usan una dirección IP
única para soportar múltiples unidades terminales independientes.
Conformación de Clases
Modbus por su naturaleza es ya implementada en muchísimos lugares, por
tanto se debe evitar una ruptura de las implementaciones existentes. De esta
forma el conjunto de los tipos de transacción Modbus existente ha sido
clasificado en clases, donde el nivel 0 representa funciones que son
universalmente implementadas y totalmente consistentes, y el nivel 2
representa funciones útiles pero algo dependientes del esclavo.
Comandos Clase 0.- Este es el mínimo conjunto útil de funciones, tanto para
el maestro como para el esclavo.
Ilustración 3. Comandos clase 0
Comandos Clase 1.- Este es el conjunto adicional de funciones, el cual es
comúnmente implementado e interoperable. Como fue explicado antes,
muchos esclavos deciden tratar entradas, salidas, registros, y valores discretos
como equivalentes.
Ilustración 4. Comandos clase 1
Comandos Clase 2.- Estas son las funciones de transferencia de datos
necesarias para operaciones de rutina tal como supervisión y HMI.
Ilustración 5. Comandos clase 2
Comandos específicos de la máquina/red/vendedor.- Todas de las
siguientes funciones, aunque mencionadas en los manuales del protocolo
Modbus, no son apropiadas para propósitos de interoperabilidad porque son
dependientes de la máquina, un ejemplo de esto puede verse en la siguiente
tabla.
Ilustración 6. Funciones dependientes de la máquina
Descripción de las funciones
Leer N bits (Código de función 01o 02) [1]
Esta función permite al usuario obtener los valores lógicos (ON/OFF) de los bits
del dispositivo direccionado. Los datos de respuesta van empaquetados en
bytes de manera que el primer bit solicitado ocupa el bit de menos peso del
primer byte de datos. Los siguientes van a continuación de manera que si no
son un número múltiplo de 8, el último byte se completa con ceros.
Trama master-dispositivo:
trama dispositivo-master:
Ejemplo: Leer 2 bits a partir del bit con dirección 4, del indicador con dirección
2. Master-dispositivo:
Dispositivo-master:
La respuesta nos indica que los bits de dirección 4 (AL1) y 5 (AL2) se
encuentran a 1. Por lo tanto, las alarmas AL1 y AL2 se encuentran activadas.
La respuesta ha asignado ceros a las direcciones que no se han pedido desde
el master, lo cual no significa que su valor real sea cero.
INTERFACE MODBUS-RTU
Kit Modbus-RTU [1]
Compuesto por el módulo de comunicación
Modbus-RTU (figura a lado) más una guía de
instalación.
Interface sigue el padrón EIA-485.
Interface aislada galvánicamente y con señal
diferencial, confiriendo mayor robustez contra
interferencia electromagnética.
Longitud máxima para conexión de los
dispositivos de 1000 metros.
Terminación de red vía llave, que debe estar
conectada en las extremidades de la red.
Terminales del Conector
Ilustración 7. kit MODBUS
Una vez instalado el kit de comunicación Modbus-RTU, el relé permite dos
conectores diferentes para interface con la red:
Conector DB9 hembra (XC15).
Conector plug-in de 8 vías (XC2).
Tabla 2. Terminales del conector DB9
(XC15) para interface
Ventajas del protocolo Modbus/TCP [3]
A continuación se detallan las principales ventajas que implica la utilización de
la variante Modbus/TCP
Es escalable en complejidad. Un dispositivo el cual tiene solo un
propósito simple necesita solo implementar uno o dos tipos de mensaje.
Es simple para administrar y expandir. No se requiere usar herramientas
de configuración complejas cuando se añade una nueva estación a una
red Modbus/TCP.
No es necesario equipo o software propietario de algún vendedor.
Cualquier sistema computador o microprocesador con una pila de
protocolos TCP/IP puede usar Modbus/TCP.
Tabla 1.Terminales del conector plug-in 8 vías (XC2) para interface
Ilustración 8. Conectores XC15, XC2 de un Pc
Puede ser usado para comunicar con una gran base instalada de
dispositivos Modbus, usando productos de conversión los cuales no
requieren configuración.
CONCLUSIONES
El protocolo Modbus define el formato de los mensajes utilizado por los
elementos que hacen parte de la red, los servicios (o funciones) que pueden
ser ofrecidos vía red, y también como estos elementos intercambian datos en la
red.
La red Modbus-RTU utiliza el sistema maestro-esclavo para el intercambio de
mensajes, la comunicación inicia con el maestro haciendo una solicitación a un
esclavo, y este contesta al maestro el que fue solicitado.
BIBLIOGRAFIA
[1] «Manual Modbus ver 1.0,» [En línea]. Available:
http://www.salbus.es/Manual%20Comunicaciones%20AK36.pdf. [Último
acceso: 07 06 2015].
[2] MODBUS, «Protocolo Modbus,» Laboratorio de Automatizacion ll., vol. 1, p.
4.
[3] «Manual de la comunicacion Modbus-RTU,» SERIE: SRW, p. 11, 12 2012.
[4] R. S. llamas, «IMPLEMENTACION DE PROTOCOLO DE COMUNICACION
MODBUS/TCP PARA LINUX EN LENGUAJE C++,» Cartagena, 2012.