0% encontró este documento útil (0 votos)
179 vistas19 páginas

Cap1 Modbus

El documento describe el protocolo Modbus y cómo se implementa según el modelo OSI de referencia. Explica que Modbus-IDA promueve el uso y evolución del protocolo Modbus para sistemas de automatización industrial. También describe las capas del modelo OSI relevantes para Modbus, incluyendo la capa física, de enlace de datos y de aplicación. Luego, entra en más detalle sobre la especificación del protocolo de aplicación Modbus y cómo define la unidad independiente de datos del protocolo.
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
179 vistas19 páginas

Cap1 Modbus

El documento describe el protocolo Modbus y cómo se implementa según el modelo OSI de referencia. Explica que Modbus-IDA promueve el uso y evolución del protocolo Modbus para sistemas de automatización industrial. También describe las capas del modelo OSI relevantes para Modbus, incluyendo la capa física, de enlace de datos y de aplicación. Luego, entra en más detalle sobre la especificación del protocolo de aplicación Modbus y cómo define la unidad independiente de datos del protocolo.
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 19

CAPITULO 1

PROTOCOLO MODBUS
1.1 INTRODUCCIN: MODELO OSI

Segn los ms recientes documentos publicados por Modbus-IDA, la implementacin del protocolo en equipos industriales tales como PLCs, rels y dems se puede analizar desde dos perspectivas relacionadas pero mutuamente excluyentes; esta separacin tiene sus bases en el Modelo de referencia de Interconexin de Sistemas abiertos (Modelo OSI: Open Systems Interconnection, creado por ISO) que pretende dar un orden determinado a la manera en que se desarrollan redes. Por una parte, Modbus-IDA es un grupo independiente de proveedores y usuarios de dispositivos de automatizacin industrial que busca la promocin de la utilizacin del protocolo Modbus as como la evolucin del mismo hacia arquitecturas ms complejas para sistemas de automatizacin distribuidos dentro de mltiples segmentos del mercado actual. Tambin provee la infraestructura para obtener y compartir informacin relevante acerca del protocolo, sus aplicaciones y certificacin a fin de simplificar la implementacin del usuario final, consiguiendo una reduccin apreciable en los costos asociados. Por otro lado, el modelo OSI establece el marco de referencia a seguir cada vez que se estructura una red, as, designa una jerarqua e inherentemente un orden definidos para los protocolos y tecnologas de red usados durante el establecimiento y mantenimiento de un enlace de comunicacin. De este modo existen 7 capas (jerarquas) diferentes sobre las que se clasifican estos protocolos y tecnologas; cada una realiza un subconjunto de las funciones necesarias para la comunicacin confiando en la ejecucin de las labores de la capa inferior y ofreciendo servicios a la capa superior subsiguiente, logrando una independencia total de cada una de la capas. Es decir, los cambio o modificaciones que sufra una capa no alteran ni inducen cambios en las dems; sta caracterstica es una ventaja a la hora de implementar Modbus pues ofrece libertad total al rea de ingeniera para que configure adecuadamente cada capa (excepto la capa de aplicacin) segn sea necesario para cada desarrollo diferente. Las capas del modelo OSI sobre las que se despliega Modbus son las siguientes: Capa Fsica (Capa 1) Se encarga de las conexiones fsicas de los dispositivos hacia la red, tanto en lo que se refiere al medio fsico (medios guiados: cable coaxial, cable de par trenzado, fibra ptica y otros tipos de cables; medios no guiado: radio, infrarrojos, microondas, lser y otras redes inalmbricas); caractersticas del medio (p.e. tipo de cable o calidad del mismo; tipo de conectores normalizados o en su caso tipo de antena;

etc.) y la forma en la que se transmite la informacin (codificacin de seal, niveles de tensin/intensidad de corriente elctrica, modulacin, tasa binaria, etc.) Su objetivo se centra en la transmisin de los bits de informacin a travs del medio utilizado para la interconexin; se ocupa de las propiedades fsicas y caractersticas elctricas de los diversos componentes, de la velocidad de transmisin, de la direccionalidad del enlace (simplex, dplex o full-duplex) y tambin de aspectos mecnicos de las conexiones y terminales, incluyendo la interpretacin de las seales elctricas. En algunos casos en que es necesario, contempla tambin los equipos repetidores dentro la red (por ejemplo, un concentrador en una red de computadores), ya que no involucran procesamiento de informacin de ningn tipo solamente proporcionan una elevacin de niveles de tensin para combatir las interferencias y el desvanecimiento de la seal. La funcin principal de esta capa consiste en transformar una trama de datos proveniente del nivel de enlace en una seal adecuada al medio fsico utilizado en la transmisin, o viceversa (convertir seales en tramas de datos). Por ende, define el medio o medios fsicos por los que va a viajar la comunicacin, define las caractersticas materiales y elctricas que se van a usar en la transmisin de los datos por los medios fsicos y garantiza la conexin (aunque no la fiabilidad de sta). Capa de enlace de datos (Capa 2) Se ocupa del direccionamiento fsico, de la topologa fsica y lgica de la red (bus, estrella, anillo), del acceso a la red, de la notificacin de errores, de la distribucin ordenada de tramas y del control del flujo. Proporciona una transmisin sin errores, es decir, un trnsito de datos fiable a travs de un enlace fsico, adems, crea y reconoce los lmites de las tramas y resuelve los problemas derivados del deterioro, prdida o duplicidad de las mismas. Tambin puede incluir algn mecanismo de regulacin del trfico que evite la saturacin de un esclavo (receptor) que sea ms lento que el emisor, o viceversa. El objetivo del nivel de enlace es conseguir que la informacin fluya, libre de errores, entre dos mquinas que estn conectadas directamente (servicio orientado a conexin). Para lograr este objetivo tiene que montar bloques de informacin (llamados tramas en esta capa, bits en la capa 1), dotarles de una direccin de nivel de enlace, gestionar la deteccin o correccin de errores, y ocuparse del control de flujo entre equipos (para evitar que un equipo ms rpido desborde a uno ms lento). Cuando el medio de comunicacin est compartido por ms de dos equipos es necesario arbitrar el uso del mismo; es la situacin de los buses de campo en donde toda la informacin se transmite a travs de un grupo de conductores comunes a todos los dispositivos. Esta tarea se realiza en el subnivel de acceso al medio en las redes de mayores prestaciones, no obstante, para el caso de Modbus no existe tal subdivisin pues no hay protocolo especifico asociado al nivel de enlace de datos: el direccionamiento, las verificaciones, el control de acceso y dems se definen implcitamente en la implementacin del protocolo durante la configuracin de los equipos. Cuando los aparatos tienen capacidades de procesamiento y memoria, se implementan algoritmos de control definidos por el usuario con prestaciones bastante elementales.

En la capa de enlace, los datos se organizan en unidades llamadas tramas. Cada trama tiene una cabecera que incluye una direccin e informacin de control y una cola que se usa para la deteccin de errores. Capa de aplicacin (Capa 7) Establece la plataforma comn mediante el cual los programas se comunican con otros a travs de la red. Los procesos que acontecen en este nivel son aplicaciones especficas capaces de proveer informacin til para los programas desarrollados a nivel de usuario por medio de formato interno propio codificado de acuerdo a un protocolo preestablecido. Aunque normalmente el usuario final no tiene contacto directo con la capa de aplicacin debido a la complejidad que este hecho acarrea, s interacta con programas que a su vez interaccionan con la capa de aplicacin. En el caso especfico que atae al presente proyecto la capa de aplicacin est definida por el Modbus application protocol specification publicado por Modbus-IDA, sin embargo como ya se dijo anteriormente el usuario no tiene acceso directo a la informacin generada por esta capa, para este acceso es necesaria la instalacin de una HMI especfica (Human Machine Interface, proveda por SIEMENS) o de un computador personal a travs de STEP7 (software para el manejo de PLCs SIMATIC.) Cuando no se cuenta con algunas de estas dos herramientas (HMI o PC), se podra acceder a cierta a informacin por medio de una adecuada programacin del controlador en donde refleje en sus salidas analgicas o digitales (y sus LEDs respectivos) algunos valores de tipo binario o byte almacenados en su memoria en muchos casos estos datos provienen de otra entidad a travs del puerto de comunicacin. No obstante por medio de sta metodologa no se tiene acceso a datos importantes como lo son fechas y horas de disparo de alarma de rels remotos e histricos de variables debido a que son almacenados en registros extensas (del orden de decenas de bytes) imposibles de visualizar correctamente con LEDs. Las dems capas del modelo OSI son: Capa de red (Capa 3), Capa de transporte (Capa 4), Capa de sesin (Capa 5) y Capa de presentacin (Capa 6), pero ninguna de ellas es implementada por el bus de campo tratado en el proyecto. Algunos avances desarrollados recientemente han logrado integrar redes bajo protocolos de ms alto nivel y prestaciones tales como TCP/IP o HDLC con la capa de aplicacin propia de Modbus que data de comienzos de los aos 80. Como ya se haba dicho previamente a esta ligera introduccin al modelo OSI, actualmente Modbus-IDA es la entidad reguladora de Modbus a pesar de haber sido inicialmente Modicon quien lo desarroll y sac al mercado. Por eso, entre Junio de 2004 y Diciembre de 2006 public dos documentos que son considerados la gua de referencia actual que los proveedores y clientes deben seguir a la hora de implementar Modbus en productos y/o servicios; el primero de ellos titulado: Modbus application protocol specification define la capa de aplicacin del protocolo y el segundo: Modbus over serial line define las capas fsica y de enlace de datos. A continuacin se describen brevemente las temticas tratadas por los dos documentos a fin de establecer una base sobre la que se discutirn las implementaciones a que haya lugar durante el desarrollo del proyecto. Debe tenerse en cuenta que a lo largo de la historia del protocolo se han publicado diversas guas de referencia y por ende ha incorporado algunas modificaciones con respecto a la versin original.

1.2

DESCRIPCIN DEL PROTOCOLO, CAPA DE APLICACIN: MODBUS APPLICATION PROTOCOL SPECIFICATION

La capa de aplicacin Modbus define una unidad de datos de protocolo (PDU) independiente de las capas del modelo OSI que yacen por debajo del sptimo nivel, que a su vez es complementada por la informacin necesaria para correr Modbus sobre la capa fsica y de enlace inferiores que se estn utilizando; de este modo se crea la unidad de datos de la aplicacin (ADU) en donde se consignan los datos necesarios para establecer comunicacin a nivel de aplicacin. Esta ADU es generada por el maestro que inicie una transaccin y est conformada por la direccin, el chequeo de errores y el cdigo de funcin y los datos (PDU). El protocolo Modbus establece el formato de peticin hecha por el maestro.

ADU
Direccin Cdigo de funcin Datos Chequeo de errores

PDU
Figura 1.1 Trama general Modbus

El campo de cdigo de funcin se encuentra codificado en un byte (8 bits) en donde los valores admitidos pertenecen al rango de nmeros decimales entre 1-255, cuando se inicia una peticin por parte de una entidad maestro se utilizan los valores comprendidos por 1-127 para identificar la funcin a realizar, mientras que por su parte los nmeros 128-255 se usan para notar los errores asociados a cada uno de los cdigos de funcin permitidos. En este orden de ideas, cada vez que un maestro establece comunicacin con un esclavo remoto, el campo de funcin le indica el tipo de accin a realizar y es posible inclusive la adiccin de un cdigo de sub-funcin para definir mltiples acciones simultneas. El valor 0 no es vlido. El campo de datos de los mensajes enviados desde un maestro a un esclavo contiene informacin adicional que el esclavo utiliza para ejecutar la accin determinada por el cdigo de funcin; puede incluir entre otros: direcciones discretas o de registro, la cantidad de bytes a manejar o el conteo de bytes de datos en el campo actual. Este campo puede ser vaco o de longitud cero dependiendo del tipo de peticin, en cuyo caso el valor del cdigo de funcin especifica por s solo las medidas que el dispositivo esclavo debe tomar. Cuando no hay errores durante la transmisin, se espera que el esclavo enve la informacin pedida a travs del bus, no obstante, cuando se producen el esclavo enva un cdigo de funcin caracterstico de modo que el maestro determine la accin a tomar. Dado que slo existen 127 cdigos de funcin diferentes, el mensaje que lleva la peticin tiene el bit ms significativo del cdigo de funcin en 0; para poder identificar errores se cambia el valor de este bit a 1 cada vez que ocurre uno. Por ende cada vez que hay una transmisin libre de errores, el esclavo siempre refleja el valor del cdigo de funcin y cuando hay errores altera el bit citado. A modo de ejemplo se tendra entonces que 128d (1000 0000) no es valor vlido y 136d (1000 1000) es el indicador de error cuando se intenta ejecutar fallidamente la funcin 8d.

CLIENTE
Inicia peticin Cdigo de Datos pedidos funcin

SERVIDOR

a. Ejecuta la accin b. Inicia la respuesta Cdigo de funcin Recibe la respuesta Datos de respuesta

CLIENTE
Inicia peticin Cdigo de Datos pedidos funcin

SERVIDOR

a. Detecta un error b. Inicia el mensaje de error Cdigo de funcin Cdigo de de error error Recibe la respuesta
Figura 1.2 Transaccin MOBDUS libre de errores (arriba), con errores (abajo)

Se debe aclarar en este punto que la longitud de la PDU no es ilimitada y por lo contrario est forzada a tener el tamao que ha sido heredado por la primera implementacin de Modbus sobre pares seriales. As, el tamao mximo de la PDU es de 253 bytes si se tiene en cuenta que la longitud del cdigo de funcin es 1 byte, la del cdigo de redundancia cclica es 2 bytes y el tamao lmite de la ADU es 256 bytes. Otra caracterstica heredada desde la primera revisin de la gua de referencia Modbus es la codificacin de datos tipo big endian para cantidades numricas mayores a 1 byte que consiste en el envo de los bytes de acuerdo a su nivel de significancia; es decir, el byte ms significativo se enva (accin ejecutada por el maestro) y se almacena (accin ejecutada por el esclavo) primero y el menos significativo se enva y almacena de ltimo. Modelo de datos El modelo de datos corresponde al esquema general de la organizacin interna de la informacin que maneja el protocolo, tiene como base una serie de tablas en donde

reposan los datos necesarios para ejecutar las acciones de comunicacin y el envo y recepcin de los mismos. Estas tablas se fijan sobre el mapa de memoria de los dispositivos sobre los que se implementa el protocolo, en las direcciones que para tal fin se hayan designado. Las cuatro tablas principales se resumen en el siguiente cuadro. Tablas principales Entradas Discretas Bobinas Registros de entrada Registros de memoria Tipo de objeto Bit Bit Palabra de 16 bits Palabra de 16 bits Propiedades Slo lectura Lectura Escritura Slo lectura Lectura Escritura Comentarios Este tipo de datos puede ser suministrado por un sistema de entrada/salida Este tipo de datos puede ser modificado por un programa de aplicacin Este tipo de datos puede ser suministrado por un sistema de entrada/salida Este tipo de datos puede ser modificado por un programa de aplicacin

Las distinciones hechas entre entradas y salidas as como entre tipos de datos binarios (direcciones a 1 bit) y registros (direcciones a 16 bits) es una manera de organizacin propia del protocolo y no obedece a ninguna orientacin especfica a una aplicacin determinada. Para cada una de las tablas indicadas el protocolo permite acceder y trabajar con hasta 65536 datos de cada tipo, mientras las operaciones de lectura y escritura estn diseadas para manipular mltiples datos consecutivos sin que su tamao excedan el lmite impuesto por el algoritmo que cada funcin implementa. En este punto se debe aclarar que pese a que existe un lmite para la cantidad de informacin que contiene la ADU (256 bytes), este valor es diferente a la cantidad de informacin que puede manipular una funcin durante la ejecucin de una orden de peticin (maestro) - respuesta (esclavo). As, es posible que la informacin pedida por el maestro no exceda los 253 bytes de la PDU pero si la capacidad de procesamiento de la funcin, en cuyo caso se producir un error y el subsiguiente mensaje por parte del esclavo. El modelo de datos establece tambin que cada elemento dentro de los bloques est numerado desde 1 hasta n de acuerdo a la capacidad de memoria del equipo fsico (n<=65536) a pesar de que la PDU direcciona los datos desde 0 hasta 65536. A modo ejemplo, si en la PDU de Modbus declaro que quiero escribir sobre el registro 27 del equipo remoto, este corresponde al registro 28 del bloque holding registers en el modelo de datos, que a su vez har referencia a un registro en una direccin fija dentro del mapa de memoria del equipo. Categoras de los cdigos de funcin Existen tres categoras diferentes de cdigos de funcin: pblicas, definidas por usuario y reservadas. Las primeras estn caracterizadas porque estn definidas y validadas por la comunidad Modbus-IDA que garantiza la unicidad de la funcin.

Adems, los textos que las documentan son de libre acceso y existen pruebas de conformidad realizadas por diversos fabricantes disponibles para consulta pblica. Por otra parte la segunda categora hace referencia a aquellas funciones cuyas implementaciones son autora y/o responsabilidad del usuario, de esta manera no se garantiza que sean nicas ni compatibles con otros equipos. Las funciones reservadas son aquellas que actualmente estn siendo utilizadas por empresas desarrolladoras y no estn disponibles para uso pblico. Cada categora tiene su propio rango de numeracin y en el caso de las funciones pblicas estn definidas y sub-categorizadas tal como la indica la tabla que se muestra a continuacin. Cdigo de funcin SubCdigo cdigo 02 01 05 15 04 03 06 16 23 22 24 20 21 07 08 11 12 17 43 43 43 14 13, 14 13 6 6 00-18 20

Hex 02 01 05 0F 04 03 06 10 17 16 18 14 15 07 08 0B 0C 11 2B 2B 2B

Acceso a bits

Entradas fsicas discretas, Bits internos o Bobinas fsicas Entradas fsicas de registros, registros internos o salidas fsicas de registros

Leer entradas discretas Leer mltiples bobinas Escribir bobina sencilla Escribir mltiples bobinas Leer registro de entrada Leer registros en memoria Escribir registro sencillo Escribir mltiples registros Leer/Escribir mltiples registros Enmascarar registros escritos Leer cola FIFO (First input First output) Leer archivo guardado Escribir archivo guardado Leer estado de error Diagnstico Obtener contador de eventos de comunicacin Obtener registros de eventos de comunicacin Reportar identificacin de esclavo Reportar identificacin de dispositivo Interfase de transporte encapsulada Referencia general CANopen

Acceso a 16 bits

Acceso a datos

Acceso a archivos guardados

Diagnstico

Otras

Figura 1.3 Definicin del cdigo de funciones pblico

1.3

CAPA DE ENLACE DE DATOS

Modbus es un protocolo serial Maestro-esclavo en el cual solamente un maestro puede estar conectado al mismo tiempo al bus de campo, mientras que puede haber uno o ms (mximo 247) esclavos conectados simultneamente; as, una comunicacin bajo el protocolo siempre es iniciada por el maestro el cual hace una peticin y el (los) esclavos(s) involucrados en ella responden con la informacin o con la accin requerida. Los nodos esclavos nunca comenzarn una transmisin, as como no nunca enviarn informacin sin antes haber recibido una peticin del maestro de la red; cabe aclarar que el nodo maestro slo puede iniciar una operacin Modbus al tiempo. Este nodo maestro puede iniciar una peticin Modbus en dos modos: unicast y broadcast. El primer modo comprende la comunicacin entre el maestro y un solo esclavo, de este modo la transaccin Modbus consistira en dos mensajes: el maestro inicia la transmisin con una peticin, seguida por la respuesta del esclavo. Cada nodo esclavo debe tener una nica direccin (de 1 a 247) dentro de la red con el fin de puedan ser llamados individualmente por el dispositivo maestro. En modo broadcast el maestro hace un llamado a todos los esclavos del bus de campo. En este caso la transaccin Modbus est compuesta exclusivamente por la peticin del maestro, quien utiliza la direccin 0 que est reservada para intercambios de este tipo; implcitamente involucra la ejecucin de una accin por parte de todos los esclavos y por esta razn el modo broadcast est disponible nicamente en las operaciones de escritura de variables de tipo binario o registros. Para este modo, todos los esclavos tienen que aceptar la funcin de escritura por el dispositivo remoto.

Figura 1.4 Diagrama de tiempos maestro / esclavo

Modos de transmisin serial Dado que estamos hablando de un protocolo de comunicacin serial se debe definir el contenido de las tramas que sern transmitidos a travs del par(es) de conductores, esto lo determina el modo de transmisin utilizado, para Modbus puede ser RTU o ASCII. Para establecer una correcta comunicacin todos los dispositivos conectados al bus deben estar configurados para trabajar bajo el mismo modo y puertos e interconexiones seriales (capa 1). Aunque algunas aplicaciones y funciones especficas suelen requerir modo ASCII, ste debe ser tenido como una opcin y los fabricantes deben garantizar que por defecto se use RTU, por ende es el modo ms comercial implementado en labores de ingeniera. Modo RTU En modo RTU cada byte del mensaje contiene dos caracteres hexadecimales de 4 bits, su mayor ventaja estriba en tener una mayor densidad de caracteres lo que permite un mayor rendimiento que el modo ASCII utilizando la misma tasa de transmisin; la comprensin de esta caracterstica ser evidente cuando se traten los detalles del modo ASCII en el siguiente aparte. El formato de 11 bits para cada carcter transmitido consiste en 1 bit de inicio, 8 bits de datos (el bit menos significativo se enva primero), 1 bit de paridad y 1 bit de parada; cada uno de los byte de datos se codifica en bits binarios. Existen tres opciones para el bit de paridad: impar, par o ninguna, no obstante de acuerdo a las guas de referencia del protocolo todo equipo Modbus compatible tiene que implementar al menos la opcin par y tenerlo por defecto en su configuracin inicial, adems, por recomendacin de los fabricantes y desarrolladores se debe contar tambin con la posibilidad de no paridad a fin de asegurar mayor compatibilidad entre marcas, en este caso se dispone de dos bits de parada. Es importante aclarar que gracias al sistema de codificacin (binario de 8 bits), cada byte de datos necesita exactamente de un carcter para ser transmitido (11 bits). En RTU la trama est definida por la direccin de esclavo (1 byte), el cdigo de funcin (1 byte), los datos (0-252 bytes) y el chequeo de redundancia cclica CRC (2 bytes), tal como lo muestra la figura.
Mensaje MODBUS Inicio 3.5 Caract. Direccin Funcin Datos 1 byte 1 byte 0 hasta 252 byte(s) 8 bits 8 bits N x 8 bits Chequeo CRC 2 bytes CRC Low - CRC High Fin 3.5 Caract.

Figura 1.5 Trama de mensaje Modbus modo RTU

Se observa que existen indicadores de inicio y final conocidos que en este caso son intervalos de silencio (no transmisin) de al menos una longitud equivalente a 3.5 caracteres que permiten a todos los dispositivos reconocer cuando se ha iniciado una transmisin y cuando se puede dar por terminada la misma. Asimismo, cada equipo tiene que poseer la capacidad de detectar el envo parcial de mensajes y elaborar un mensaje de error como respuesta.

Cada mensaje dentro del protocolo se debe enviar como una cadena ininterrumpida de caracteres separados a lo sumo por un tiempo equivalente al empleado en la transmisin de 1.5 caracteres, cuando se supera este lmite el mensaje es declarado incompleto y tiene que ser descartado por el receptor. Debido al uso de temporizadores de 1.5 y 3.5 caracteres, la implementacin del modo RTU acarrea consigo el manejo de gran cantidad de interrupciones que implican alta carga de procesamiento para la CPU cuando se transmite bajo de ratas de baudios elevadas. Por consiguiente, para tasas iguales o inferiores a 19200bps se implementan temporizadores estrictos que regulen las interrupciones, pero cuando se excede este valor se recomienda el manejo de tiempos pre-establecidos; el valor fijado para el tiempo entre caracteres sera 750us y para el tiempo entre tramas sera 1.750ms.

Trama 1 OK

Trama 2 OK

Trama 3 NOK

3.5 C Al menos 3.5 caracteres Al menos 3.5 caracteres 4.5 C

Trama 1 OK

Trama 2 NOK

Menos de 1.5 caracteres

Mas de 1.5 caracteres

Figura 1.6 Diagrama de tiempos Modbus modo RTU

Con respecto al chequeo de errores de trama, como se dijo anteriormente, en modo RTU se ejecuta un algoritmo CRC que genera un campo de 2 bytes agregado al final de la trama. El valor del CRC se basa en los bytes que componen los datos sin importar el tipo de paridad que se este utilizando -no se tienen en cuenta los dems campos de caracteres (direccin, funcin). Una vez calculado por el dispositivo que realiza la transmisin el byte menos significativo del CRC se enva primero seguido del ms significativo, completando el mensaje; una vez lo recibe otro dispositivo, se recalcula el CRC en el destino y se compara con el valor que viene adherido en la trama. Si los valores no concuerdan se descarta la trama y se enva un mensaje de error. El clculo del CRC comienza cargando un registro de memoria de 16 bits con 1s, seguido por la comparacin sucesiva del registro con los datos de 8 bits (bytes) del mensaje, tal como se describe los prrafos siguientes. En primera instancia se aplica una operacin lgica OR exclusiva entre el registro y el byte, luego, el resultado se desplaza un bit en direccin al menos significativo (LSB)

llenando con cero el ms significativo (MSB). A continuacin se analiza el valor del bit menos significativo (LSB) y no se ejecuta accin alguna si el valor es 0, en caso de obtener el valor 1 se realiza una segunda operacin OR exclusiva entre el resultado y un valor fijado previamente (polinomio especfico, 0xA001= 1010 0000 0000 0001). En ambos casos el ltimo valor obtenido se guarda en el registro inicial. Este proceso ser repetido hasta que se alcancen ocho desplazamientos a la derecha (hacia LSB); despus del ltimo desplazamiento se inicia el proceso utilizando en esta ocasin el siguiente byte. El valor que quede en el registro de 16 bits luego de aplicar sucesivamente el algoritmo con todos los bytes de datos corresponde al CRC. Este proceso se puede resumir en el siguiente diagrama de flujo.
0xFFFF CRC16

CRC16 XOR BYTE CRC16

N=0

Desplazamiento a derecha CRC16


NO SI

Acarreo ?

CRC16 XOR POLY CRC16

N=N+1
NO

N>7?

SI

Fin del mensaje ?


NO

SI

FIN

Figura 1.7 Diagrama de flujo algoritmo generador de CRC

Modo ASCII En el modo ASCII cada byte del mensaje es transmitido como dos caracteres ASCII, su principal ventaja estriba en que permite que existen grandes intervalos de tiempo entre caracteres (hasta un segundo) sin que por esto hayan errores de transmisin. Este modo se utiliza cuando el enlace fsico de comunicacin o las caractersticas tcnicas de los equipos no son aptas para las altas exigencias que el manejo de temporizadores e interrupciones que el modo RTU requiere. El formato de 10 bits para cada carcter transmitido consiste en 1 bit de inicio, 7 bits de datos (el bit menos significativo se enva primero), 1 bit de paridad y 1 bit de

parada; cada uno de los byte de datos se codifica hexadecimalmente para luego ser convertido a ASCII. Tambin existen tres opciones para el bit de paridad: impar, par o ninguna, no obstante de acuerdo a las guas de referencia del protocolo todo equipo Modbus compatible tiene que implementar al menos la opcin par y tenerlo por defecto en su configuracin inicial, adems, por recomendacin de los fabricantes y desarrolladores se debe contar tambin con la posibilidad de no paridad a fin de asegurar mayor compatibilidad entre marcas, en este caso se dispone de dos bits de parada. A fin de explicar la mayor efectividad del modo RTU se debe aclarar que debido al sistema de codificacin (hexadecimal-ASCII), cada byte de datos necesita de 2 caracteres para ser transmitido (14 bits, ms los de inicio, paridad y parada). De este modo ya no se habla en trminos de bytes sino en trminos de caracteres teniendo en cuenta que cada nibble (4 bits) de datos (informacin til para el usuario final) implica la transmisin de un carcter (7 bits), el efectivo uso del canal fsico se ve entonces diezmado pues ahora se requieren de dos caracteres para enviar 8 bits de datos mientras que con el modo RTU bastaba con slo uno: se podra decir que el modo ASCII es aproximadamente la mitad de eficiente en comparacin con el RTU para tasas de transmisin iguales. En este caso la trama est compuesta por un campo de inicio (1 carcter), la direccin de esclavo (2 caracteres), el cdigo de funcin (2 caracteres), los datos (2x252=504 caracteres), el chequeo de redundancia longitudinal (2 caracteres) y un campo de finalizacin (2 caracteres). En este caso se cuentan con indicadores de inicio y final de la trama que son bastantes explcitos y facilitan las tareas de procesamiento de la CPU.

Mensaje MODBUS Inicio Direccin 1 Caract. 2 Caract. "colon" (:) Funcin 2 Caract. Chequeo LRC Fin 2 Caract. 2 Caract. 0 a 2x252 Caract. CR-LF LCR Low - LRC High Datos

Figura 1.8 Trama de mensaje Modbus modo ASCII

El chequeo de errores en la trama en este caso se ejecuta por medio de un algoritmo de redundancia longitudinal, en donde se tienen en cuenta el contenido del mensaje excluyendo los indicadores de inicio y final, sin importar el tipo de paridad determinado. En este modo si se incluyen los campos de direccin y funcin en el chequeo de trama, a diferencia del caso RTU. El LRC consiste en un campo binario de 8 bits agregado por el dispositivo emisor justo despus del ltimo carcter de informacin e inmediatamente antes del indicador de final de trama. Se calcula sumando sucesivamente todos los bytes que conforman el mensaje antes de codificados por medio del cdigo ASCII (14 bits por byte de informacin), sin tener en cuenta el acarreo generado y complementando a 2 el resultado final. Luego, este byte es codificado a sus correspondientes dos caracteres ASCII (uno por cada nibble de 4 bits) y agregado en la trama. En el dispositivo de destino, se hace la decodificacin ASCII-hexa y despus se compara el valor actual con el valor recibido a travs de la interfaz serial, en caso de discordancia se descarta la informacin recibida y se informa al origen sobre el error ocurrido.

En modo ASCII, los tiempos de proceso no son de relevancia y solo se debe cuidar que no transcurra ms de un segundo entre la transmisin de dos caracteres consecutivos; si se tienen en cuenta que las ms bajas tasas de transmisin seriales usadas en Modbus oscilan por el orden de los cientos de baudios se observa que puede transcurrir un tiempo equivalente al necesario para transmitir hasta 10 caracteres sin que se reporte un error en la conexin, sta es la mayor fortaleza de este modo. Chequeo de errores La seguridad de los datos que se transportan bajo el protocolo Modbus se basa en dos tipos de chequeo: paridad (par o impar) que debe ser aplicada a cada carcter, y chequeo de trama (LCR o CRC) que es aplicada al mensaje completo. Ambos chequeos son ejecutados por el dispositivo que emite los datos mientras el que responde verifica. En el caso de LCR y CRC, ya se explico el principio de funcionamiento y el presente aparte no har mencin de los mismos. Al maestro le es tambin configurado un tiempo fuera (del ingls time out) antes de abortar cualquier transaccin iniciada, este tiempo debe ser seleccionado de modo que el intervalo le permita a un esclavo llevar a cabo el procesamiento de una orden del maestro (modo unicast). Luego, si un esclavo detecta un error en la transmisin, el mensaje es descartado y el esclavo no realiza accin alguna (no genera una respuesta al maestro); por ende, una vez expira el tiempo fuera el maestro entiende que existi un error y toma las medidas necesarias para solucionarlo, de este modo se garantiza que un llamado a una direccin de esclavo no existente puede ser detectada. El usuario puede configurar los equipos para trabajar con paridad impar, par o ninguna y as determinar el valor del bit destinado para tal fin. Cuando se selecciona par o impar, se cuenta la cantidad de 1s lgicos presentes en cada carcter (7 bits para ASCII y 8 para RTU) y se asigna un valor al bit de paridad de tal suerte que el nmero de 1s presentes corresponda al tipo de paridad. En caso de manipularse los equipos con no paridad seleccionado, no se podr realizar el chequeo de caracteres y se tendr un bit de parada adicional en la posicin del bit de paridad (2 bits de parada en total). Por ejemplo, si se tienen los siguientes 8 bits correspondientes a un carcter en modo RTU: 1100 0101 X, cuando se elige operar con paridad par el valor que el esclavo selecciona para X es 0 pues as se mantiene un nmero par (4) de 1s; si por el contrario se procede con paridad impar el valor seleccionado ser 1 porque permite alcanzar un nmero impar (5) de 1s. La seguridad ofrecida por este mtodo de chequeo de errores es reducida si se percibe que slo permite detectar errores cuando un nmero impar de bits (1, 3, 5, 7) cambia de valor durante la transmisin. Siguiendo con el ejemplo citado, supongamos que el maestro enva el carcter utilizando un chequeo de paridad impar (bits enviados: 1100 0101 1); si se experimentan interferencias o daos en la lnea de transmisin que modifican el estado de los dos primeros bits y el esclavo recibe la siguiente secuencia: 0000 0101 1, el bit de paridad contina teniendo un valor adecuado a pesar del cambio. En este caso no se lograra la deteccin del error.

1.4

CAPA FSICA

Cada nueva solucin Modbus debe implementar una interfase elctrica de acuerdo con el estndar EIA/TIA 485 (tambin conocido como RS485) a fin de establecer enlaces punto a punto y multipunto en una configuracin de dos cables. Asimismo se puede contar con la posibilidad de implementar una configuracin de cuatro cables por medio de la interfaz RS422, o una comunicacin serial comn con RS232. En la red Modbus el dispositivo y el (los) esclavo(s) se comunican siempre por medio de una lnea serial pasiva, es decir, el conjunto de implementos que componen fsicamente la red no ejecutan labores ms all del transporte de seales elctricas sin ningn tipo de interaccin o procesamiento adicional. En este orden de ideas, todos los dispositivos se encuentran conectados a un cable principal constituido por 3 conductores de los cuales 2 forman un par trenzado (configuracin de 2 hilos) por el cual son transmitidos los datos en ambas direcciones (ida y venida) regularmente a una velocidad de 9600 baudios. Cada equipo se puede conectar de tres formas distintas: a. Directamente, con un grupo de conductores de entrada y otro grupo de salida. b. Con conector pasivo, se enlaza en un punto del cable principal y forma una derivacin al esclavo o maestro. c. Con conector activo, se enlaza en un punto del cable, ejecuta las labores de un transceiver y deriva hacia el equipo las seales ya procesadas. Aunque se pueden establecer diferentes ratas de transmisin serial: 1200, 2400, 4800 38400bps, 56Kbps, 115Kbps, por citar algunas, es obligatorio para todos los fabricantes permitir transmisiones a 9600 y 19200 baudios siendo la ltima el valor por defecto. Quien transmite debe respetar la tasa de baudios con un error mximo de +/-1% y quien recibe debe tolerar a lo sumo errores de +/-2%.

Maestro

Conector pasivo

Conector activo Conector pasivo

Esclavo n

Esclavo 1

Esclavo 2

Figura 1.9 Infraestructura de bus serial

La figura precedente ilustra una visin general de la infraestructura de una red Modbus y las diferentes formas de conectar cada dispositivo al cable principal que constituye el bus de campo. Se observan en cada extremo del cable principal los resistores de terminacin de lnea (LT) que son de carcter obligatorio. stos tienen un valor de resistencia equivalente al de los conductores que forman el cable y tienen como fin alcanzar la mxima transmisin de potencia de y hacia cada equipo conectado al bus. Adems, dado que la reflexin en una lnea de transmisin es el resultado de la discontinuidad en la impedancia de lnea que una onda percibe conforme se propaga a travs de los conductores, las terminaciones consiguen minimizar este efecto en ambas direcciones. Configuracin de dos hilos (2W) Como se dijo anteriormente es recomendable que toda red Modbus se implemente en configuracin de dos conductores siguiendo el estndar EIA/TIA 485. En un bus 2W (2 wires) de este tipo existe siempre un tercer conductor que interconecta todos los equipos y establece una referencia elctrica, de all su nombre comn. En el bus slo un dispositivo a la vez tiene derecho de transmitir y los dems le respetan.

Maestro 5V

D1
LT Par de conductores

Pull Up
LT

D0 Comn Pull Down

Esclavo 1

Esclavo n

Seales necesarias Cable Cable de principal derivacin D1 D0 Comn D1 D0 Comn

Uso In/Out In/Out -

Nombre EIA/TIA 485 B/B' A/A' C/C'

Descripcin Terminal 1 del transceiver, Voltaje V1 (V1 > V0 para estado binario 1 [OFF]) Terminal 0 del transceiver, Voltaje V0 (V0 > V1 para estado binario 0 [ON]) Seal comn y opcional para alimentacin

Figura 1.10 Topologa general y definicin de seales configuracin a dos hilos (2W)

Configuracin de 4 hilos (4W) Opcionalmente Modbus se puede implementar a travs de un bus de 2 pares (4 hilos) en donde cada par transporta informacin en un solo sentido. Existe as un par de conductores del maestro (RXD1-RXD0) por el cual se envan exclusivamente peticiones a los esclavos y otro par de conductores de esclavos (TXD1-TXD0) por donde son enviadas las respuestas al maestro. De este modo hay un bus dedicado para transmisin (slo enva el maestro) y uno para recepcin (slo envan los esclavos).En esta configuracin se cuenta tambin con un conductor adicional de referencia elctrica, el comn. Para operar a 4 hilos, los dispositivos deben tener instalado un receptor y un transmisor para cada par correspondiente (bus de maestro y bus de esclavos, respectivamente). Aunque este modo es comnmente conocido como RS422, estrictamente hablando es incorrecto el uso de este apelativo ya que el estndar RS422 no soporta la conexin de ms un transmisor en un bus as que lo correcto es incluir la conexin a 4 hilos como parte de EIA485).
Maestro

5V

Pull Up

TXD1

Par de esclavos

TXD0 LT LT RXD1 Par del maestro


Pull Down

5V LT
Pull Up

LT

RXD0

Pull Down

Comn

Esclavo 1

Esclavo n

Seales necesarias Cable Cable de principal derivacin TXD1 TXD0 RXD1 RXD0 Comn TXD1 TXD0 RXD1 RXD0 Comn

Uso Out Out In In -

Nombre EIA/TIA 485 B A B' A' C/C'

Descripcin Terminal 1 del emisor, Voltaje Vb (Vb > Va para estado binario 1 [OFF]) Terminal 0 del emisor, Voltaje Va (Va > Vb para estado binario 0 [ON]) Terminal 1 del receptor, Voltaje Vb' (Vb' > Va' para estado binario 1 [OFF]) Terminal 0 del receptor, Voltaje Va' (Va' > Vb' para estado binario 0 [ON]) Seal comn y opcional para alimentacin

Figura 1.11 Topologa general y definicin de seales configuracin a cuatro hilos (4W)

Normativa general para configuraciones RS485 (RS232 opcional) De acuerdo al estndar y las recomendaciones e instructivos sealados en la gua de referencia Modbus ms reciente, se ha establecido ciertas normas que deben seguir las implementaciones Modbus en el aspecto de interfaz fsica (Capa 1 del modelo OSI) cuando implementan configuraciones RS485 (la normativa no aplica siempre para RS232), estas comprenden: A. Siempre es posible conectar por lo menos 32 dispositivos en una red Modbus sin la utilizacin de un repetidor. De igual modo es posible el uso de los mismos para evitar la atenuacin de la seal en redes grandes. B. Dependiendo de la capacidad de direccionamiento, la polarizacin utilizada en lnea y en general condiciones tcnicas es posible conectar ms de 32 equipos, en cuyo caso es obligacin de los fabricantes indicar esta posibilidad, el nmero mximo de equipos soportados y las condiciones bajo las cuales se logra este modo operativo. C. Una red Modbus sin repetidor est compuesta por un cable principal a lo largo del cual se conectan los dispositivos directamente o por medio de conectores que generan derivaciones cortas. D. La longitud de extremo a extremo del cable principal tiene que ser limitada y su valor mximo est determinado por la tasa de transmisin, el cable (calibre, capacitancia e impedancia caracterstica), el nmero de dispositivos conectados y la configuracin seleccionada (2 o 4 hilos). Por ejemplo, para una rata mxima de 9600 baudios con cable AWG26 (o ms grueso) se puede llegar hasta 1000m. E. Las derivaciones hechas desde los conectores deben ser cortas y nunca superar los 20m de longitud. Si el conector es mltiple y soporta n derivaciones, cada una debe respetar una longitud mxima de

40 metros. n

F. El cable comn tiene que ser conectado directamente a una tierra de proteccin preferiblemente en un nico punto para el bus entero. Generalmente este punto se ubica en el maestro o su conector. G. Las terminaciones de lnea son siempre obligatorias entre los dos conductores D0-D1 en cada extremo, pero nunca se deben instalar ms dos en un mismo bus (una en cada extremo), as como tampoco en las terminaciones de las derivaciones. Se sugiera como LT usar una resistencia de 150ohm (0.5W) o un condensador (1nF, 10V) en serie con una resistencia de 120ohm cuando hay polarizacin de lnea. H. Cuando se utilizan interconexiones de tipo RS232 no se deben instalar terminaciones de lnea, es slo obligatorio con RS485 a 2 o 4 hilos. I. Cuando no hay actividad en la lnea de transmisin serial, los conductores son susceptibles ruido externo o interferencia; para asegurar que el receptor se

mantenga en un estado constante cuando no hay seales presentes, algunos equipos pueden requerir la polarizacin de la red. J. Todos los fabricantes tienen que informar si el dispositivo requiere de polarizacin en la red y si puede soportarla. K. En caso de que uno o ms dispositivos requieran de polarizacin de lnea, un par de resistencias debe conectarse en el grupo de conductores RS485: 1 resistencia de Pull Up hacia una fuente de 5V en el circuito de D1. 1 resistencia de Pull Down hacia comn en el circuito de D0. L. El valor de las resistencias nombradas anteriormente tiene que oscilar entre 450 y 650ohm, siendo mayor el nmero de equipos conectados al bus entre mayor sea el valor de resistencia y viceversa. M. La polarizacin de los conductores tiene que ser implementada en una nica ubicacin a lo largo de todo el bus, regularmente se ubica en el maestro o su conector. N. El nmero mximo de dispositivos permitidos que se pueden conectar al bus de la red cuando se polariza la lnea es 4 veces menor con respecto a una red Modbus sin polarizacin. O. Para efectos de diagnstico visual, el estado de las comunicaciones y el estado del dispositivo tiene que ser indicado por medio de LEDs tal como lo muestra la tabla: LED Nivel de obligatoriedad Obligatorio Estado Encendido (ON) durante recepcin o envo de tramas. (2 LEDs para recepcin y envo de tramas, o 1 LED para ambos casos) Encendido (ON): Falla interna Parpadeo: Otras fallas (Fallas de comunicacin o Error de configuracin) Encendido (ON): Equipo energizado Color recomendado Amarillo

Comunicacin

Rojo

Error Estado del dispositivo

Recomendado

Opcional

Verde

P. Para minimizar errores en el cableado se recomienda la utilizacin del siguiente cdigo de colores en configuraciones RS485: Configuracin 2W-4W 2W-4W 2W-4W 4W 4w Nombre de la seal D1-TXD1 D0-TXD0 Comn RXD0 RXD1 Color recomendado Amarillo Caf Gris Blanco Azul

Q. Los cables utilizados en una red Modbus tienen que ser apantallados de tal suerte que el apantallamiento se conecte a tierra de proteccin en uno de los extremos del mismo, o en su defecto a la carcasa de un conector cuando se presente el caso. R. El calibre del cable debe ser escogido de modo que maximice el nmero de dispositivos permitidos en la red. Para redes Modbus es siempre suficiente un calibre AWG24. Por otro lado, los cables categora 5 pueden operar redes Modbus siempre y cuando su longitud no exceda los 600m. S. La impedancia caracterstica de los pares de conductores se sugiere, debe ser mayor a 100ohm especialmente para operacin a ratas superiores o iguales a 19200 baudios.

También podría gustarte