+ All Categories

MODBUS

Date post: 10-Feb-2016
Category:
Upload: hector-pena
View: 9 times
Download: 0 times
Share this document with a friend
Description:
Uso de MODBUS
13
Universidad Don Bosco. Facultad de Ingeniería. Departamento de Electrónica RED INDUSTRIAL MODBUSAsignatura: Redes de Comunicación Industrial Docente: Ing. Francisco Ramos Alumnos: Héctor Jaime Peña Linares PL100875 Henry Alberto Orellana OA090041 Max Leonel Turcios Bermúdez TB100173 Soyapango, Sábado 21 de Marzo del 2015
Transcript
Page 1: MODBUS

Universidad Don Bosco.

Facultad de Ingeniería.

Departamento de Electrónica

“RED INDUSTRIAL MODBUS”

Asignatura:

Redes de Comunicación Industrial Docente:

Ing. Francisco Ramos Alumnos:

Héctor Jaime Peña Linares PL100875 Henry Alberto Orellana OA090041 Max Leonel Turcios Bermúdez TB100173

Soyapango, Sábado 21 de Marzo del 2015

Page 2: MODBUS

1

ÍNDICE

CONTENIDO INTRODUCCIÓN .................................................................................................................................................... 2

RED INDUSTRIAL MODBUS ............................................................................................................................... 3

DEFINICIÓN: ....................................................................................................................................................... 3

FUNCIONAMIENTO Y ELEMENTOS DE LA RED: ...................................................................................... 3

ESTRUCTURA DE LA RED MODBUS ........................................................................................................... 4

MODO DE TRANSMISIÓN ................................................................................................................................ 4

TRAMAS DE MODBUS ...................................................................................................................................... 5

DESCRIPCIÓN DE LA TRAMA ........................................................................................................................ 6

GLOSARIO DE TÉRMINOS ............................................................................................................................... 10

BIBLIOGRAFÍA DE CONSULTA ....................................................................................................................... 11

ANEXOS ................................................................................................................................................................. 12

MODBUS SOBRE CONEXIÓN RS-485 ........................................................................................................ 12

Page 3: MODBUS

2

INTRODUCCIÓN

MODBUS es un protocolo de comunicaciones industriales desarrollado en 1979 por la empresa

MODICON (ahora AEG Schneider Automation). MODBUS se considera el protocolo de

comunicaciones más común utilizado en entornos industriales, sistemas de automatización, control y

monitorización, a causa de que es público, fácil de implementar y flexible.

Muchos fabricantes utilizan este protocolo para especificar el procedimiento que el maestro y esclavo de

una red utilizan para intercambiar datos, el formato de estos datos, y el tratamiento de errores; aunque

no define estrictamente el tipo de red de comunicaciones a utilizar, por lo que se puede implementar

sobre redes basadas en Ethernet, RS-485, RS-232, etc.

Inicialmente, al no poseer una red definida, se orientaba a una conectividad a través de líneas serie

como pueden ser RS-232 o RS-485, pero con el paso del tiempo han aparecido variantes como

la MODBUS TCP, que permite el encapsulamiento del MODBUS serie en tramas Ethernet TCP/IP de

forma sencilla, debido a que desde la percepción del modelo OSI, el protocolo MODBUS se ubica en la

capa de aplicación.

Este documento explica las especificaciones del protocolo MODBUS de forma general, abordando su

estructura, modos de transmisión, algunas funciones importantes del protocolo necesarias para ayudar

a comprender el funcionamiento de dicha red industrial.

Page 4: MODBUS

3

RED INDUSTRIAL MODBUS

DEFINICIÓN:

MODBUS es un protocolo estándar que realiza una comunicación tipo maestro-esclavo entre distintos

dispositivos conectados físicamente con un bus serie. Este protocolo es de tipo petición/respuesta, por

lo que en una transacción de datos se puede identificar el dispositivo que realiza una petición como el

cliente o maestro, y al que devuelve la respuesta como el servidor o esclavo de la comunicación. En una

red MODBUS se dispone de un equipo maestro que puede acceder a varios equipos esclavos,

reconocidos por una dirección única de dispositivo.

El protocolo MODBUS se encarga de la transmisión de información entre distintos equipos electrónicos

conectados a un mismo bus, existiendo en dicho bus, un solo dispositivo maestro (master) y varios

equipos esclavos (slaves) conectados.

Fig. 1 Configuración maestro-esclavo en MODBUS

FUNCIONAMIENTO Y ELEMENTOS DE LA RED:

En una red con protocolo MODBUS, el master pregunta y los slaves responden o actúan en función de

lo que este diga. Un dispositivo conectado al bus como maestro, solicita información al resto de

dispositivos que están conectados como esclavos y son quienes suministran la información al primero.

Al implementar una red MODBUS habrá un master y hasta un máximo de 247 dispositivos slaves. Esta

limitación está determinada por el simple hecho que en una trama de este tipo la dirección del esclavo

se representa con un solo Byte, existiendo algunas direcciones reservadas para propósitos específicos.

Todos los dispositivos esclavos deben tener una dirección asignada que debe estar comprendida entre

1 y 247, sin repetir, ya que no pueden coexistir dos dispositivos esclavos con la misma

dirección MODBUS. Dentro de la trama MODBUS RTU, la dirección del esclavo corresponde al primer

Byte. En MODBUS el master no sólo puede ejercer la función de recompilar información de los esclavos

mediante preguntas, sino que puede interactuar con ellos o alterar su estado, pudiendo escribir además

de leer información en cualquiera de ellos.

Page 5: MODBUS

4

ESTRUCTURA DE LA RED MODBUS

Algunas especificaciones que definen la estructura de una red MODBUS, se enuncian a continuación:

El medio físico de comunicación puede ser RS-485, fibra óptica, RS-422, lazo de corriente.

El medio físico de conexión de la red puede ser un bus half-duplex (RS-485 o fibra óptica) o

dúplex (RS-422, lazo de corriente o fibra óptica)

La comunicación es asíncrona y las velocidades de transmisión previstas van desde los 75

baudios a 19,200 baudios.

La máxima distancia entre estaciones depende del nivel físico, pudiendo alcanzar hasta 1200m

sin necesidad de repetidores.

MODO DE TRANSMISIÓN

MODBUS RTU (REMOTE TERMINAL UNIT)

Se caracteriza por que los bytes se envían en forma binaria, sin ningún tipo de conversión. Este modo

de transmisión está pensado para comunicaciones en bus serie y tiene como ventaja principal el

aprovechamiento del canal de comunicación, mejorando la velocidad de la transmisión de los datos. El

inconveniente es que requiere una gestión de tiempos entre Bytes recibidos para saber cuándo

empiezan y terminan las tramas.

Fig. 2 Aplicación MODBUS RTU

MODBUS ASCII

Los datos se codifican como caracteres ASCII, ofrece una facilidad de detección del principio y del fin

de trama gracias a los campos de inicio y fin (caracteres ":" y "CRLF"), con independencia de los tiempos

de la transmisión del canal de comunicación.

Page 6: MODBUS

5

TRAMAS DE MODBUS

Un mensaje consiste en una secuencia de caracteres que puedan ser interpretados por el receptor. Esta

secuencia de caracteres se conoce como trama. Para sincronizar la trama, los dispositivos receptores

monitorizan el intervalo de tiempo transcurrido entre caracteres recibidos.

Dado que MODBUS es un protocolo de nivel de aplicación, se requiere utilizarlo sobre una pila de

protocolos que resuelva los temas específicos del tipo de red empleada.

Fig. 3 Comunicación MODBUS

Las tramas de MODBUS pueden ser de tres tipos: RTU, ASCII y MODBUSTCP. MODBUS RTU y ASCII

están pensados para ser utilizadas directamente sobre un medio físico serie asíncrono, como por

ejemplo EIA/TIA RS-232, EIA/TIA RS-485, o EIA RS-422. En contraste, MODBUSTCP está desarrollado

para funcionar sobre redes que utilizan la arquitectura TCP/IP, por lo que permite usar MODBUS sobre

redes como Ethernet o WiFi.

Fig. 4 Tramas MODBUS RTU y ASCII

Page 7: MODBUS

6

DESCRIPCIÓN DE LA TRAMA

Dirección Esclavo

En el caso de las tramas enviadas por el maestro, el campo de número de esclavo indica la dirección

del destinatario de esta trama.

Función MODBUS

La siguiente tabla muestra las funciones más utilizadas en las peticiones y respuestas de MODBUS, con sus códigos.

CÓDIGOS DE FUNCIÓN MÁS COMUNES DE MODBUS

Código decimal

Código hexadecimal

Función Tipo de datos

1 16#01 Leer estado de marcas y salidas digitales (bobinas)

Bit

2 16#02 Leer estado de entradas digitales Bit

3 16#03 Leer registros Entero 16 bits

4 16#04 Leer entradas analógicas Entero 16 bits

5 16#05 Forzar valor de una salida digital (bobina) Bit

6 16#06 Establecer valor de un registro Entero 16 bits

15 16#0F Forzar múltiples marcas o salidas digitales (bobinas)

Bit

16 16#10 Establecer múltiples registros Entero 16 bits TABLA 1 Funciones más comunes de MODBUS

El formato de los campos de función y de datos de las tramas de MODBUS depende de la función

utilizada. La figura 5 muestra el patrón de esos campos para las tramas de petición (request), respuesta

(response) y error. Está ultima trama es un caso especial de respuesta enviada por un esclavo cuando

tiene problemas para atender una petición.

A continuación se describen los símbolos utilizados en el esquema de la Figura.

FUNC. CODE (F): Código de la función MODBUS a ejecutar en el esclavo.

START DIR. (D): Dirección de inicio del primer objeto de datos afectado por la función.

COUNT (C): Cantidad de objetos a leer o escribir.

DATA (D): Datos a escribir en los registros u objetos del dispositivo.

SATUS (ST): Valor actual de los objetos del dispositivo. Permite verificar que una escritura ha

sido realizada correctamente, o, en caso de lectura permite obtener los datos leídos.

ERROR. CODE (EC): Código de error de MODBUS. Se corresponde normalmente al valor 16#80

más el valor de la función que originó el error.

EXCEPCION. CODE: Código de excepción (indica que ha causado el error).

ACR: Es un acrónimo que se compone de tres letras, la primera es si se trata de un comando de

lectura (R) o escritura (W) en el dispositivo. La segunda se refiere al tipo de objeto de datos sobre

el que actúa dicho comando C: Coil o bobina (1 bit), D: Discrete o entrada digital (1 bit), R:

Register o registro (16 bits), I: Input o entrada analógica (16 bits). Y la última letra se corresponde

con una M (Multiple) si la función actúa sobre múltiples objetos y S (Single) si actúa sobre uno.

Page 8: MODBUS

7

Fig. 5: Formato de las peticiones y respuestas de MODBUS.

Leer N bits (Código de función 01 o 02)

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.

Leer N Registros (Código de función 03 o 04)

Esta función permite al usuario obtener los valores de los registros del dispositivo direccionado. Estos

registros almacenan los valores numéricos de los parámetros y variables del controlador. El rango de

los datos varía de 0 a 65536. Los datos correspondientes a direcciones de registros que pasan de la

última dirección válida de parámetros se asignan a cero (00 00).

Función para escribir 1 bit (Código de función 05)

Esta función permite al usuario escribir los valores lógicos (ON/OFF) de los bits del dispositivo

direccionado. Para desactivar el bit se debe enviar 00h, y para activarlo se debe enviar 01h o FFh. Éste

valor se debe escribir en el byte más significativo.

Función para escribir un registro (Código de función 06)

Esta función permite al usuario modificar el contenido de los parámetros del dispositivo direccionado.

Los valores se envían escalados según el factor de escala correspondiente a cada parámetro, en un

rango entre 0000h y FFFFh. Las tramas de comunicación para esta función están ilustradas en las tablas

Page 9: MODBUS

8

Función 15 ( Force Multiple Coils )

Permite la modificación simultanea de varios bits de DOs en el esclavo, pasándolos a OFF (‘0’) o a ON

(‘1’) según convenga. Actúa sobre la zona de memoria de las DOs (@0XXXX).

Así en el comando se pasan la dirección inicial (dirección del primer bit o mando a modificar) y la cantidad

y estado de cada uno de los sucesivos mandos (bits) a modificar.

Función 16 (Preset multiple registers)

Permite realizar la escritura en un grupo de AOs, y por tanto actúa sobre la zona de AOs (@4XXXX). Se

debe especificar la dirección a partir de la que queremos comenzar a actualizar valores, el número de

valores que queremos actualizar, y la lista de valores que queremos asignar a estos registros. Aunque

se está escribiendo en el rango de registros o valores numéricos, los registros son direccionados a partir

de la dirección 0 (es decir el registro @40001 se direcciona 0).

Códigos de error

Comúnmente, los errores que aparecen durante las operaciones de acceso y programación de

dispositivos tienen relación con datos no válidos en la trama, tal como se ve en la tabla 2.

Cuando un dispositivo detecta un error de esta naturaleza, la respuesta al master consiste en la dirección

del dispositivo, el código de la función, el código de error y el CRC. Para indicar que la respuesta es una

notificación de error, el bit de más peso del código de la función está activado.

Código Tipo de Error Significado

01 Función invalida La función recibida no está permitida en el esclavo

02 Dirección Invalida La dirección está fuera del rango permitido

03 Dato invalido El dato contiene un valor no valido.

04 Falla en el dispositivo El controlador no responde o ha ocurrido un error.

05 Reconocimiento (ACK) Se ha aceptado la función y se está procesando.

06 Ocupado El mensaje ha sido recibido sin error, pero el dispositivo no puede procesarlo en este momento.

07 Reconocimiento Negativo (ACK)

La función solicitada no puede realizarse en este momento.

TABLA 2 Errores más comunes en las operaciones de acceso

Page 10: MODBUS

9

Byte de datos

Este campo dependerá tanto en contenido como en longitud de la función que se indique en el campo

anterior (Función) así como de si se trata de una trama Maestro-esclavo o de respuesta esclavo-

Maestro.

Control de errores LRC o CRC:

Se utiliza un sistema de detección de errores diferente dependiendo del tipo de codificación utilizado (ASCII

o RTU). En el caso de la codificación ASCII es el checksum (o Longitud Redundancy Check LRC) en módulo

16 expresado en ASCII (2 caracteres representan 1 byte), sin considerar el ":" ni el “CR LF” de la trama. En

la codificación RTU se utiliza el método de CRC (Cyclical Redundancy Check) codificado en 2 bytes (16 bits).

Page 11: MODBUS

10

GLOSARIO DE TÉRMINOS

ASCII:

American Standard Code for Information Interchange

Modos de transmisión MODBUS:

Los modos de transmisión definen como se envían los paquetes de datos entre maestros y esclavos

RTU:

Unidad Terminal Remota. Define a un dispositivo basado en microprocesadores, el cual permite obtener

señales independientes de los procesos y enviar la información a un sitio remoto donde se procese.

Tabla de datos MODBUS:

El protocolo MODBUS usa el concepto de tablas de datos para almacenar la información en un esclavo,

una tabla de datos no es más que un bloque de memoria usado para almacenar datos en el esclavo

Page 12: MODBUS

11

BIBLIOGRAFÍA DE CONSULTA

Sitios Web:

MODBUS parte III: ¿Qué es el MODBUS?, http://www.tecdigitaldelbajio.com/blog/27-modbus-

parte-iii-que-es-el-modbus.html, consultado el 18 de Marzo de 2015.

El protocolo MODBUS, http://www.tolaemon.com/docs/modbus.htm, consultado el 21 de

Marzo de 2015.

Page 13: MODBUS

12

ANEXOS

MODBUS SOBRE CONEXIÓN RS-485

El protocolo MODBUS es un protocolo que usa líneas seriales, por lo que comúnmente se implementa

sobre redes de comunicación RS-485, pero también sobre redes que usan la comunicación serial RS-

232, incluso se puede implementar vía TCP/IP sobre una red Ethernet, en SDM se usa la implementación

MODBUS sobre una red RS-485.

Fig. 6: Representación de comunicación MODBUS de RS232 a RS485

Fig. 7: Representación de comunicación MODBUS Wireless RS232/RS485


Recommended