15
1 Modbus Introducción LAS COMUNICACIONES NECESITAN EL APOYO DE UN LENGUAJE COMÚN, QUE ES EL PROTOCOLO DE COMUNICACIONES. EL SIGUIENTE CUADRO MUESTRA LOS PROTOCOLOS MÁS COMÚNMENTE UTILIZADOS EN LOS DIFERENTES NIVELES DE LAS REDES DE COMUNICACIONES INDUSTRIALES. POR EL MOMENTO, LOS PROTOCOLOS DE BUS DE DISPOSITIVO MÁS POPULARES SON ETHERNET TCP / IP, MODBUS-RTU, PROFIBUS-DP Y DEVICENET. 2 Modbus es una estructura de mensajería, un protocolo de comunicación en serie desarrollado por una empresa norteamericana Modicon (actualmente Schneider Electric) publicado por Modicon® en 1979 para su uso con sus controladores lógicos programables (PLC). Situado en el nivel 7 del Modelo OSI. Originalmente implementado como un protocolo al nivel de la aplicación con la finalidad de transferir datos por una capa serial, Modbus se ha expandido para incluir implementaciones a través de protocolo serial, TCP/IP y el User Datagram Protocol (UDP). Basado en la arquitectura maestro/esclavo (cliente/servidor), para la comunicación entre dispositivos inteligentes (de automatización y control). Siendo el maestro (cliente) quien controla en todo momento las comunicaciones con los esclavos que pueden ser hasta 247 (@1d a @247d). Los esclavos (servidores) se limitan a retornar los datos solicitados o a ejecutar la acción indicada por el maestro. Convertido en un protocolo de comunicaciones estándar de facto en la industria, es el que goza de mayor disponibilidad para la conexión de dispositivos electrónicos industriales. Las razones por las cuales el uso de Modbus es superior a otros protocolos de comunicaciones son: Es público Su implementación es fácil y requiere poco desarrollo Maneja bloques de datos sin suponer restricciones 1 Ambar Lorenzo, Luis Caicedo

Modbus

Embed Size (px)

DESCRIPTION

Introducción a Modbus

Citation preview

ModbusIntroduccinLAS COMUNICACIONES NECESITAN EL APOYO DE UN LENGUAJE COMN, QUE ES EL PROTOCOLO DE COMUNICACIONES. EL SIGUIENTE CUADRO MUESTRA LOS PROTOCOLOS MS COMNMENTE UTILIZADOS EN LOS DIFERENTES NIVELES DE LAS REDES DE COMUNICACIONES INDUSTRIALES. POR EL MOMENTO, LOS PROTOCOLOS DE BUS DE DISPOSITIVO MS POPULARES SON ETHERNET TCP / IP, MODBUS-RTU, PROFIBUS-DP Y DEVICENET. Modbus es una estructura de mensajera, un protocolo de comunicacin en serie desarrollado por una empresa norteamericana Modicon (actualmente Schneider Electric) publicado por Modicon en 1979 para su uso con sus controladores lgicos programables (PLC). Situado en el nivel 7 del Modelo OSI. Originalmente implementado como un protocolo al nivel de la aplicacin con la finalidad de transferir datos por una capa serial, Modbus se ha expandido para incluir implementaciones a travs de protocolo serial, TCP/IP y el User Datagram Protocol (UDP). Basado en la arquitectura maestro/esclavo (cliente/servidor), para la comunicacin entre dispositivos inteligentes (de automatizacin y control). Siendo el maestro (cliente) quien controla en todo momento las comunicaciones con los esclavos que pueden ser hasta 247 (@1d a @247d). Los esclavos (servidores) se limitan a retornar los datos solicitados o a ejecutar la accin indicada por el maestro.Convertido en un protocolo de comunicaciones estndar de facto en la industria, es el que goza de mayor disponibilidad para la conexin de dispositivos electrnicos industriales. Las razones por las cuales el uso de Modbus es superior a otros protocolos de comunicaciones son: Es pblico Su implementacin es fcil y requiere poco desarrollo Maneja bloques de datos sin suponer restriccionesModbus permite el control de una red de dispositivos, por ejemplo un sistema de medida de temperatura y humedad, y comunicar los resultados a un ordenador. Modbus es usado generalmente para comunicacin en red tipo SCADA entre dispositivos. Por ejemplo, un servidor grande puede ser usado para manejar un controlador lgico programable (PLC) o un controlador de automatizacin programable (PAC), y el PLC o PAC puede a su vez manejar un sensor, vlvula, motor o cualquier otro dispositivo embebido. Tambin se usa para la conexin de un ordenador de supervisin con una unidad remota (RTU) en sistemas de supervisin adquisicin de datos (SCADA). Existen versiones del protocolo Modbus para puerto serie y Ethernet (Modbus/TCP). A parte de que muchos fabricantes utilizan este protocolo en sus dispositivos, existen tambin versiones con pequeas modificaciones o adaptadas para otros entornos (como p.ej JBUS o MODBUS II )DescripcinCada dispositivo de la red Modbus posee una direccin nica. Cualquier dispositivo puede enviar rdenes Modbus, aunque lo habitual es permitirlo slo a un dispositivo maestro. Cada comando Modbus contiene la direccin del dispositivo destinatario de la orden. Todos los dispositivos reciben la trama pero slo el destinatario la ejecuta (salvo un modo especial denominado "Broadcast"). Cada uno de los mensajes incluye informacin redundante que asegura su integridad en la recepcin. Los comandos bsicos Modbus permiten controlar un dispositivo RTU para modificar el valor de alguno de sus registros o bien solicitar el contenido de dichos registros.La transferencia de datos se organiz en trminos de registros de 16 bits (formato entero) o como informacin de estado en trminos de bytes de datos. Con los aos el protocolo ha sido extendido y ha sido adoptado por otros fabricantes. Se han aadido nuevos tipos de datos, en especial para lograr una resolucin ms alta para los valores que se transmiten. Se aprob el protocolo para transferencia de los nuevos medios, dialectos como Modbus Plus o Modbus/TCP aprarecieron.Para cumplir estas necesidades, Modbus fue diseado como un protocolo de solicitud y respuesta con un modelo flexible de datos y funciones; caractersticas que son parte de la razn por la que hoy en da an sigue en uso.Ciclo Solicitud Respuesta:El protocolo Modbus sigue una arquitectura de maestro y esclavo, en la que un maestro (un solo dispositivo) puede iniciar una transaccin (transmite una solicitud llamadas, consultas) a un esclavo (cualquier dispositivo perifrico: Transductor I/O, vlvulas, unidad de red, u otro dispositivo de medicin) y espera la respuesta. El maestro tambin puede pedir al esclavo que realice alguna accin. Esta arquitectura brinda al maestro control completo sobre el flujo de informacin, lo cual tiene beneficios en redes seriales multipunto ms viejas. An en redes TCP/IP modernas, le da al maestro un alto grado de control en el comportamiento del esclavo, lo cual es til en algunos diseos. La comunicacin del maestro hacia los esclavos puede ser de dos tipos:1.peer to peer: en que se establece comunicacin maestro - esclavo , el maestro solicita informacin y el esclavo responde ( se enva el comando a un dispositivo comprendido entre las direcciones 1d i 247d ).2.-broadcast: en que se establece comunicacin maestro - todos los esclavos, el maestro enva un comando a todos los esclavos de la red sin esperar respuesta ( se enva a la direccin @0d ).El maestro inicia un proceso mediante l envi de un cdigo de funcin que representa el tipo de transaccin a realizar. La operacin realizada por el protocolo Modbus define el proceso que un controlador utiliza para solicitar el acceso a otros dispositivo, como responder a las peticiones de otros dispositivos, y como sern detectadas y reportados los errores. El protocolo Modbus establece un modelo comn para la disposicin y contenido de los campos del mensaje.Los maestros pueden dirigirse a esclavos individualmente o pueden iniciar un mensaje de difusin a todos los esclavos. Los esclavos devuelven una respuesta a todas las consultas que se les haga de forma individual, pero no responden a pedidos de difusin.Los dispositivos maestros tpicos incluyen procesadores de Host y paneles de programacin. Los esclavos tpicos incluyen controladores programables.Como se puede ver, la secuencia bsica en las comunicaciones MODBUS consiste siempre en una trama de pregunta, seguida de su correspondiente trama de respuesta:- Pregunta: con el cdigo de funcin que indica al esclavo que operacin ha de realizar, y los bytes necesarios (datos, comprobacin) para su ejecucin.- Respuesta: con la confirmacin o datos resultantes de la ejecucin de la funcin.Existe algn caso concreto, en que hay ms de una trama de respuesta para una trama de pregunta, como p.ej. cuando el maestro enva una operacin cuya respuesta puede llevar al esclavo un tiempo elaborar. En estas situaciones el esclavo enva una primera respuesta indicando que an no tiene los datos y tardar un tiempo en disponer de ellos, y otra segunda con los datos o confirmacin de la operacin.Adems las comunicaciones MODBUS se pueden realizar en modo ASCII o en modo RTU. En modo ASCII los bytes se envan codificados en ASCII, es decir, que por cada byte a transmitir se envian dos caracteres ASCII ( 2 bytes ) con su representacin hexadecimal ( esto permite leer las tramas con un simple editor de texto ). En modo RTU se envan en binario, tal cual. En el modo ASCII las tramas comienzan por 3AH (carcter ':'), y terminan en 0DH-0AH (CR LF Carrier Return Line Feed) y cada byte se enva como dos caracteres ASCII. En modo RTU no se utiliza indicador de inicio y final de trama.El Modelo de Datos de ModbusModbus administra el acceso de los datos de manera simple y flexible. Originalmente, Modbus soporta dos tipos de datos: un valor Booleano y un entero sin signo de 16 bits.En los sistemas SCADA, es comn para los dispositivos embebidos tener ciertos valores definidos como entradas, como ganancias o parmetros PID, mientras que otros valores son salidas, como la temperatura actual o posicin de la vlvula. Para cumplir con esta necesidad, los valores de los datos Modbus son divididos en cuatro rangos (ver la Tabla 1). Un esclavo puede definirse como 65,536 elementos en cada rango.Bloque de MemoriaTipo de DatosAcceso de MaestroAcceso de Esclavo

BobinasBooleanoLectura/EscrituraLectura/Escritura

Entradas DiscretasBooleanoSolo LecturaLectura/Escritura

Registros de RetencinPalabra Sin SignoLectura/EscrituraLectura/Escritura

Registros de EntradaPalabra Sin SignoSolo LecturaLectura/Escritura

En muchos casos, los sensores y otros dispositivos generan datos en tipos diferentes a Booleanos simples y enteros sin signo. Es comn para los dispositivos esclavos convertir estos tipos de datos ms grandes a registros. Por ejemplo, un sensor de presin puede dividir un valor de punto flotante de 32 bits entre dos registros de 16 bits.VELOCIDAD DE TRANSMISINFinalmente debemos tener en cuenta la velocidad a la que se envan lo bits serialmente, es de suma importancia, ambos dispositivos deben estar a la misma velocidad para transmitir y recibir bits, si no lo estn, simplemente la transmisin serial no sera correcta.La velocidad de transferencia de informacin indica el nmero de bits que se transmiten en un segundo, se mide en bauds (baudios) algunas velocidades de transmisin que son muy usadas son las siguientes: 1200, 2400, 4800, 9600, 19200. Por ejemplo la tarjeta de relevadores usa una velocidad de 9600 bauds para enviar la informacin.RS232, TRASMISION BALANCEADA, SINGLE ENDEDEsta norma fue diseada para comunicacin punto a punto, en donde se tiene una computadora (en la norma RS232 se le denomina DTE, Data Terminal Equipment) que se encuentra trasmitiendo hacia un equipo esclavo (en la norma conocido como DCE, Data Communications Equipment) ubicado a distancias no mayores a 15 metros (aunque en la prctica alcanza distancias de hasta 50 metros) y a una velocidad mxima de 19,200 bps. Este tipo de trasmisin se le conoce como "single ended" porque usa en el cable un solo retorno (GND). Es un modo de trasmisin muy simple, pero tambin vulnerable al ruido aditivo en la lnea y por esa razn es empleada para comunicacin a distancias cortas.RS422/485, TRASMISION BALANCEADA, DIFERENCIAL.Cuando se requieren mayores distancias y velocidades de trasmisin, entonces deben de emplearse las normas RS422 y RS485. Adems, estas normas permiten tambin la trasmisin multipunto, es decir una computadora central conectada con varias UTR. Dado que la computadora central tpicamente tiene como salida la interfaz RS232, se hace necesaria la conexin de un mdulo convertidor RS232 a RS422/485, para implementar una red.La trasmisin diferencial permite velocidades de hasta 10 Mbps, sobre distancias de hasta 1.3 kms. Se usan dos seales para trasmitir y dos para recibir, adems de la tierra, la cual es normalmente conectada al blindaje del cable. En cada par, viajan la seal de trasmisin y su complemento. En el receptor, la seal original se obtiene restando una de la otra. Esta tcnica reduce grandemente el ruido generado en la lnea, ya que ste se induce por igual en ambas lneas del par y es al final cancelado. Este tipo de trasmisin debe de hacerse siempre sobre cable del tipo "par trensado" (twisted pairs).RS485La diferencia principal entre RS422 y RS485 es el nmero de seales usadas en el cable de trasmisin. RS422 usa 4 seales y su tierra, RS485 usa solo 2 seales y su tierra. RS485 requiere de un protocolo "half dplex" para operar, dado que las mismas lneas son usadas tanto para trasmisin como recepcin.Todos los dipositivos RS485 poseen drivers "tristate" que permiten a las UTR desconectarse de la lnea una vez que trasmitieron su informacin. Normalmente, para este fin se usa un circuito temporizador automtico habilitado por el flanco ascendente de la seal de trasmisin. El temporizador habilita el circuito trasmisor durante el tiempo que dura el mensaje y lo deshabilita al terminar ste.Entre las aplicaciones tpicas de la norma RS485, se encuentran los sistemas de control de acceso, los sistemas distribudos de control industrial y los sistemas de seguridad casera. En todos estos casos, varias UTR reportan su informacin hacia una computadora central o bien reciben comandos de la misma. Modo de transmisinModo ASCII (American Standard Code for Information Interchange)Descripcin:Ilustracin 1

La carta de Cdigo ASCII 1968 de los EE.UU. fue estructurada con dos columnas de caracteres de control, una columna con caracteres especiales, una columna con nmeros, y cuatro columnas de letras. Ilustracin 1

Modbus ASCII es una representacin legible del protocolo pero menos eficiente. El formato ASCII utiliza una suma de control de redundancia longitudinal (LRC) para el sistema de deteccin de errores. Ilustracin 2Ilustracin 2

Transmisin de la letra A

Ilustracin 3Verificacin de error Utiliza el mtodo de control de redundancia longitudinal (LRC): La verificacin de la redundancia longitudinal (LRC, tambin denominada verificacin de redundancia horizontal) no consiste en verificar la integridad de los datos mediante la representacin de un carcter individual, sino en verificar la integridad del bit de paridad de un grupo de caracteres. Ilustracin 4

En la verificacin de (LRC), los bloques de bits se organizan en forma de tabla (filas y columnas). Por ejemplo, en lugar de enviar un bloque de bits, se organizan en una tabla de cuatro filas y ocho columnas, como se muestra en la Ilustracin 4.

Cuando el receptor comprueba el LRC, algunos de los bits no siguen la regla de paridad par y se descarta todo el bloque.

Modo RTU (Remote Terminal Unit)Ilustracin 5

Modbus RTU es una representacin binaria compacta de los datos. El formato RTU finaliza la trama con una suma de control de redundancia cclica (CRC). Ilustracin 5Verificacin de error Utiliza el mtodo de redundancia cclica (CRC): La verificacin de redundancia cclica (abreviado, CRC) es un mtodo de control de integridad de datos de fcil implementacin. Es el principal mtodo de deteccin de errores utilizado en las telecomunicaciones. Ilustracin 6

El CRC es la tcnica de verificacin ms potente. Se basa en la divisin binaria. Con la CRC, se aaden una secuencia de bits redundantes, denominados CRC o residuo CRC, al final de la unidad de datos de forma que los datos resultantes sean divisibles exactamente por un nmero binario predeterminado. Como se muestra en la Ilustracin 6.En el destino, la unidad de datos que se recibe es dividida por este mismo nmero. Si en este paso no hay residuo, se asume que la unidad de datos es intacta y se acepta. La existencia de un residuo indica que la unidad de datos ha sufrido daos durante el trnsito y que debe ser rechazada.

Formato general de las tramas:Ilustracin 7

Ilustracin 8Para sincronizar la trama, los dispositivos receptores monitorizan el intervalo de tiempo transcurrido entre caracteres recibidos. Si se detecta un intervalo mayor que tres veces y medio el tiempo necesario para transmitir un carcter, el dispositivo receptor ignora la trama y asume que el siguiente carcter que recibir ser una direccin.Explicacin partes de la trama en Modbus:Ilustracin 9

DireccinEl campo direccin es el primero de la trama despus del tiempo de sincronizacin. Indica el dispositivo al que va dirigido el mensaje. Cada dispositivo de la red debe tener asignada una direccin nica, diferente de cero.FuncinEl campo funcin indica al dispositivo direccionado qu tipo de funcin ha de Realizar.Leer N bitsEsta funcin permite al usuario obtener los valores lgicos (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 continuacin de manera que si no son un nmero mltiplo de 8, el ltimo byte se completa con ceros.

Ilustracin 10Leer N RegistrosEsta funcin permite al usuario obtener los valores de los registros del dispositivo direccionado. Estos registros almacenan los valores numricos de los parmetros y variables del controlador. El rango de los datos vara de 0 a 65536. Los datos correspondientes a direcciones de registros que pasan de la ltima direccin vlida de parmetros se asignan a cero (00 00).

Ilustracin 11Funcin para escribir 1 bitEsta funcin permite al usuario escribir los valores lgicos (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 ms significativo.

Ilustracin 12Funcin para escribir un registroEsta funcin permite al usuario modificar el contenido de los parmetros del dispositivo direccionado. Los valores se envan escalados segn el factor de escala correspondiente a cada parmetro, en un rango entre 0000h y FFFFh.

Ilustracin 13DatosEl campo datos contiene la informacin necesaria para que los dispositivos puedan ejecutar las funciones solicitadas, o la informacin enviada por los dispositivos al master como respuesta a una funcin.

Ilustracin 14Cdigo de error (Control de errores)Comnmente, los errores que aparecen durante las operaciones de acceso y programacin de dispositivos tienen relacin con datos no vlidos en la trama.El campo de control de errores es el ltimo de la trama y permite al master y a los dispositivos detectar errores de transmisin. Ocasionalmente, debido a ruido elctrico o a interferencias de otra naturaleza, se puede producir alguna modificacin en el mensaje mientras se est transmitiendo. El control de errores asegura que los dispositivos receptores o el master no efectuarn acciones incorrectas debido a una modificacin accidental del mensaje. El formato RTU utiliza el control de redundancia cclica (CRC), mientras que el ASCII utiliza el control de redundancia longitudinal (CRL) para finalizar la trama de comunicacin.

Ilustracin 15

11Ambar Lorenzo, Luis Caicedo