Protocolos de comunicacion modbus

54
MODBUS Protocolo de comunicaciones situado en el nivel 7 del Modelo OSI, basado en la Arquitectura maestro/esclavo o cliente/servidor

description

Introduccion a modbus

Transcript of Protocolos de comunicacion modbus

Presentacin de PowerPoint

MODBUS Protocolo de comunicaciones situado en el nivel 7 del Modelo OSI, basado en la Arquitectura maestro/esclavo o cliente/servidor

Este protocolo debe determinar el enlace de comunicacin entre un solo dispositivo maestro y varios equipos esclavo, identificar el remitente y el receptor, intercambiar mensajes de manera ordenada y detectar errores

CAPA FISICA (CAPA 1)

CONEXIONES FISICAS DE LOS DISPOSITIVOS HACIA LA RED: CABLE, FIBRA, ETCCARACTERISTICAS DEL MEDIO (TIPO Y CALIDAD DEL CABLE, ETC)FORMA EN LA QUE SE TRANSMITE LA INFORMACION (CODIFICACION DE SEAL, NIVELES DE TENSION/INTENSIDAD, ETCOBJETIVO: CENTRADO A LA TRANSMISION DE LOS BITS DE INFORMACION A TRAVES DEL MEDIO UTILIZADO PARA LA INTERCONEXION.

PROPIEDADES FISICASCARACTERISTICAS ELECTRICASVELOCIDAD DE TRANSMISION (BIDIRECCIONAL)ASPECTOS MECANICOS DE LAS CONEXIONES

DIRECCIONAMIENTO FISICO: TOPOLOGIA Y LOGICA DE RED (BUS, ESTREYA O ANILLO)

ACCESO A LA RED: NOTIFICACION DE ERRORES

DISTRIBUCION DE TRAMAS

CONTROL DEL FLUJO.

CAPA DE ENLACE DE DATOS (CAPA 2)

OBJETIVO: PROPORCIONA UNA TRANSMISION SIN ERRORES, ES DECIR, UN TRANSITO DE DATOS FIABLE A TRAVES DE UN ENLACE FISICO

ESTABLECE LA PLATAFORMA COMUN MEDIANTE EL CUAL LOS PROGRAMAS SE COMUNICAN CON OTROS A TRAVES DE LA RED.

EL USUARIO NO TIENE CONTACTO DIRECTO CON LA CAPA DE APLICACIN, PERO PUEDE INTERACTUAR A SU VEZ CON PROGRAMAS QUE INTERACTUAN CON LA CAPA

CAPA DE APLICACIN (CAPA 7)OBJETIVO: APLICACIONES ESPECIFICA CAPACES DE PROVEER INFORMACION UTIL PARA LOS PROGRAMAS DESARROLLADOS A NIVEL DE USUARIO.

ESTE MODELO ES BASADO EN 4 TIPOS DE MENSAJE NOMBRADOS:

MODBUS REQUEST: EL MENSAJE ES ENVIADO EN LA RED POR EL CLIENTE PARA INICIAR LA TRANSICION DE INFORMACION

MODBUS CONFIRMATION: EL MENSAJE ES RECIBIDO POR EL SERVIDOR

MODBUS INDICATIONS: LA SOLICITUD HA SIDO RECIBIDO POR EL SERVIDOR

MODBUS RESPONSE: RESPUESTA AL MENSAJE POR EL SERVDOR

EL INTERCAMBIO DE INFORMACION ENTRE CLIENTE Y SERVIDOR

EL CLIENTE (MAESTRO) INICIA LA SOLICITUD

EL PROTOCOLO MODBUS (LAYER 7) GENERA PROTOCOL DATA UNIT (PDU), QUE CONSISTE EN UN CODIGO DE FUNCION Y UNA SOLICITUD DE DATO.

EN EL LAYER 2, EL PDU ES CONVERTIDO EN APPLICATION DATA UNIT (ADU), POR LA ADICION DE BUSES O REDES, DIRECCION Y PUNTO SUMA PARA LA DETECCION DE ERRORES

EL SERVIDOR (EN EL DISPOSITIVO ESCLAVO) ENTONCES EJECUTA LA ACCION REQUERIA PARA INICIALIZAR UNA RESPUESTA. LA INTERACCION ENTRE CLIENTE Y ESCLAVO

Qu es la comunicacin serial?

La comunicacin serial consiste en el envi secuencial de un bit a la vez de informacin entre dos o ms dispositivos, por eso se le llama serial, porque cada bit va uno seguido de otro o dicho.

Como se observa, la seal es por un solo cable, lo que implica que solo halla dos valores, denotados en electrnica digital por un 1 o un 0, esto es si llega voltaje al cable (1) o si no le llega (0).La transmisin de datos es necesario un solo cable entre los dispositivos y una referencia o tierra

En la figura anterior el dispositivo 1 transmite la informacin y el dispositivo 2 la recibe, as no se utiliza mucho, pues no hay forma que el dispositivo 2 regrese informacin al dispositivo 1, obviamente es mejor la transmisin con dos cables como la mostrada en la figura siguiente:

Es posible transmitir de forma serial los datos del dispositivo 1 al dispositivo 2 y viceversa.

Cada dispositivo tiene dos cables, uno es el transmisor que es el cable que enva los datos a otro dispositivo, generalmente se le representa como Tx, y el otro cable es el receptor que se le representa con Rx, y es el encargado de recibir la informacin

Observe como el transmisor (Tx) de un dispositivo se conecta al receptor (Rx) del otro, los datos se envan de un dispositivo a otro

Como se enva la informacin de forma serial

Pensemos que yo deseo enviar la letra A de un dispositivo a otro, mediante el cdigo ASCII que le corresponde el cdigo ASCII 65, que convertido a cdigo binario nos da como resultado el 10000010, entonces para enviar la letra A simplemente se enva una trama de bits como se muestra.

Se enva siempre, del bit menos significativo al bit ms significativoGeneralmente se enva los datos de forma serial en bloques de 8 bitsEl envi de datos es a una velocidad previamente establecida por los dispositivos, por eso es posible saber cundo es 0 y cuando es 1.

Bit de Start y bit de Stop

De la trama anterior que enva la letra A, siempre se le agregan dos bits mas, uno al inicio y otro al final, esto con la finalidad de indicarle al receptor cuando inicia el dato (bit de start) y cuando termina (bit de stop), es de suponer que ambos bits van al inicio y al final de la trama de bits, esto se puede ver en la figura siguiente.

El bit de inicio es un 0 y el bit de paro es un 1, siempre que se enven datos seriales generalmente llevan este formato

Bit de paridad

Existe otro bit que se agrega a la trama, es el llamado bit de paridad, que sirve para detectar errores en las tramas enviadas.

Si un nmero impar de bits se transmite incorrectamente, el bit de paridad ser incorrecta

Paridad par: Conteo de unos. Si el total es impar, el bit de paridad se establece en uno y por tanto la suma del total anterior con este bit de paridad, dara par.

Paridad par: Inversa a la paridad par

Velocidad de transmisin

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.Importancia: La transmisin serial no sera correcta si ambos dispositivos no estan a la misma velocidad para transmitir y recibir bits

Unicast: Comunicacin entre el maestro y un soloesclavo, 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.

Unicast

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 porel dispositivo remoto. Vase la Figura 1.4Broadcast

Usando 4 cables, llamada en ingles full-duplex.Usando 2 cables, llamada half-duplex.

Comunicacin a: 4 hilos, el transmisor y receptor son totalmente independientes, en un instante ambos pueden estar transmitiendo y recibiendo informacin, por eso es llamado full-duplexComunicacin a: 2 hilos, la diferencia, es que a dos hilos, el transmisor y el receptor nunca estn funcionando en el mismo instante, o el dispositivo transmite informacin o la recibe, pero nunca al mismo tiempo.CONEXION A 2 Y 4 HILOS

Modos de Transmisin del MODBUSLos modos de transmisin definen como se envan los paquetes de datos entre maestros y esclavos, el protocolo MODBUS define dos principales modos de transmisin:

MODBUS RTU(Remote Terminl Unit). La comunicacin entre dispositivos se realiza por medio de datos binarios. Esta es la opcin ms usada del protocolo y es la que se implemento en nuestras tarjetas.

MODBUS ASCII(American Standard Code for Information Interchange). La comunicacin entre dispositivos se hace por medio de caracteres ASCII.

Comunicacin Maestro-Esclavo en MODBUSEl MODBUS siempre funciona con un maestro y uno o ms esclavos, siendo el maestro quin controla en todo momento el inicio de la comunicacin con los esclavos, que segn la especificacin pueden ser hasta 247 en una misma red. El esclavo por otro lado se limita a retornar los datos solicitados por el maestro, as de simple es la comunicacin usando el MODBUS, el maestro enva los mensajes y el respectivo esclavo los responde.

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.

Modo RTUEn modo RTU cada byte del mensaje contiene dos caracteres hexadecimales de 4bits, su mayor ventaja estriba en tener una mayor densidad de caracteres lo quepermite un mayor rendimiento que el modo ASCII utilizando la misma tasa detransmisin; la comprensin de esta caracterstica ser evidente cuando se tratenlos detalles del modo ASCII en el siguiente aparte.El formato de 11 bits para cada carcter transmitido consiste en 1 bit de inicio, 8bits de datos (el bit menos significativo se enva primero), 1 bit de paridad y 1 bitde parada; cada uno de los byte de datos se codifica en bits binarios. Existen tresopciones para el bit de paridad: impar, par o ninguna

En RTU la trama est definida por la direccin de esclavo (1 byte), el cdigo defuncin (1 byte), los datos (0-252 bytes) y el chequeo de redundancia cclica CRC(2 bytes), tal como lo muestra la figura.

En RTU la trama est definida por la direccin de esclavo (1 byte), el cdigo defuncin (1 byte), los datos (0-252 bytes) y el chequeo de redundancia cclica CRC(2 bytes), tal como lo muestra la figura.

Se observa que existen indicadores de inicio y final conocidos que en este casoson intervalos de silencio (no transmisin) de al menos una longitud equivalente a3.5 caracteres que permiten a todos los dispositivos reconocer cuando se hainiciado una transmisin y cuando se puede dar por terminada la misma.Cada mensaje dentro del protocolo se debe enviar como una cadenaininterrumpida de caracteres separados a lo sumo por un tiempo equivalente alempleado en la transmisin de 1.5 caracteres, cuando se supera este lmite elmensaje es declarado incompleto y tiene que ser descartado por el receptor.

Con respecto al chequeo de errores de trama, como se dijo anteriormente, enmodo RTU se ejecuta un algoritmo CRC que genera un campo de 2 bytesagregado al final de la trama. El valor del CRC se basa en los bytes quecomponen los datos sin importar el tipo de paridad que se este utilizando -no setienen en cuenta los dems campos de caracteres (direccin, funcin).

Una vez calculado por el dispositivo que realiza la transmisin el byte menossignificativo del CRC se enva primero seguido del ms significativo, completandoel mensaje; una vez lo recibe otro dispositivo, se recalcula el CRC en el destino yse compara con el valor que viene adherido en la trama. Si los valores noconcuerdan se descarta la trama y se enva un mensaje de error.

Modo ASCIIEn el modo ASCII cada byte del mensaje es transmitido como dos caracteresASCII, su principal ventaja estriba en que permite que existen grandes intervalosde tiempo entre caracteres (hasta un segundo) sin que por esto hayan errores detransmisin. Este modo se utiliza cuando el enlace fsico de comunicacin o lascaractersticas tcnicas de los equipos no son aptas para las altas exigencias queel 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, 7bits de datos (el bit menos significativo se enva primero), 1 bit de paridad y 1 bitde parada; cada uno de los byte de datos se codifica hexadecimalmente paraluego ser convertido a ASCII. Tambin existen tres opciones para el bit de paridad:impar, par o ninguna

A fin de explicar la mayor efectividad del modo RTU se debe aclarar que debido alsistema de codificacin (hexadecimal-ASCII), cada byte de datos necesita de 2caracteres para ser transmitido (14 bits, ms los de inicio, paridad y parada).sepodra decir que el modo ASCII es aproximadamente la mitad de eficiente encomparacin con el RTU para tasas de transmisin iguales.

En este caso la trama est compuesta por un campo de inicio (1 carcter), ladireccin de esclavo (2 caracteres), el cdigo de funcin (2 caracteres), los datos(2x252=504 caracteres), el chequeo de redundancia longitudinal (2 caracteres) yun campo de finalizacin (2 caracteres). En este caso se cuentan con indicadoresde inicio y final de la trama que son bastantes explcitos y facilitan las tareas deprocesamiento de la CPU.

El chequeo de errores en la trama en este caso se ejecuta por medio de unalgoritmo de redundancia longitudinal, en donde se tienen en cuenta el contenidodel mensaje excluyendo los indicadores de inicio y final, sin importar el tipo deparidad determinado. En este modo si se incluyen los campos de direccin yfuncin en el chequeo de trama, a diferencia del caso RTU.

En modo ASCII, los tiempos de proceso no son de relevancia y solo se debecuidar que no transcurra ms de un segundo entre la transmisin de doscaracteres consecutivos; si se tienen en cuenta que las ms bajas tasas detransmisin seriales usadas en Modbus oscilan por el orden de los cientos debaudios se observa que puede transcurrir un tiempo equivalente al necesario paratransmitir hasta 10 caracteres sin que se reporte un error en la conexin, sta es lamayor fortaleza de este modo.

Chequeo de erroresLa seguridad de los datos que se transportan bajo el protocolo Modbus se basa endos 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 elque responde verifica. En el caso de LCR y CRC, ya se explico el principio defuncionamiento y el presente aparte no har mencin de los mismos.

Luego, si un esclavo detecta un error en latransmisin, el mensaje es descartado y el esclavo no realiza accin alguna (nogenera una respuesta al maestro); por ende, una vez expira el tiempo fuera elmaestro entiende que existi un error y toma las medidas necesarias parasolucionarlo, de este modo se garantiza que un llamado a una direccin deesclavo no existente puede ser detectada.

Cuando se trasmite informacin digital en forma serial a travs de cable, en modo punto a punto o multipunto, en donde existe una computadora central conectada con varias Unidades Terminales Remotas (UTR), es posible usar dos modos de trasmisin: la trasmisin no balanceada o "single ended" y la trasmisin balanceada o diferencial.Ambos modos de operacin han sido estandarizados por la Electronics Industry Association (EIA) en las normas EIA-RS232, EIA-RS422 y EIA-RS485.TRASMISION NO BALANCEADA (SINGLE ENDED, RS232) VS. TRASMISION BALANCEADA (DIFERENCIAL, RS422/485)

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

El formato de trasmisin de datos en las seales TX y RX del estndar RS232, se muestra en la figura de abajo. Se trata de una seal serial bipolar, normalmente entre +10 y -10 volts, con formato asncrono. En el ejemplo se trasmite el cdigo ASCII de la "A" (01000001). Observe que sigue una lgica negativa, con un nivel alto para el valor 0 lgico y un nivel bajo para el 1. El circuito integrado estndar para generar esta seal es elMAX232N.En la lnea de tiempo, que va de izquierda a derecha, el bit menos significativo LSB se trasmite primero y el bit ms significativo MSB, al ltimo.

Para la conexin se utiliza un cable con conectores DB9, con nueve seales, como el mostrado en las figuras. Adicionalmente a la seales de datos trasmitidos y recibidos TX, RX, la norma original RS232 incluye definiciones para seales de control (en ingls "handshake signals") que se usan para varias funciones auxiliares en el protocolo de envo y recepcin de datos, as como para el dignstico de fallas.Actualmente, el estndar se ha simplificado a las seales de trasmisin TX, recepcin RX y tierra GND, dejando sin utilizarse el resto de las seales. La aplicacin ms comn es la comunicacin entre una computadora y una terminal remota.

CARACTERSTICAS25 pines de seal.Conector de DTE debe ser macho y el conector de DCE hembra.Los voltajes para un nivel lgico alto estn entre -3V y -15V, y un nivel bajo +3V y +15V. Los voltajes ms usados son +12V/-12V, +9V/9VDependiendo de la velocidad de transmisin empleada, es posible tener cables de hasta 15 metros. Velocidad: 300, 600, 1200, 2400, 4800 y 9600 bps

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 unmdulo 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).

RS422RS422 usa 4 seales y puede emplearse para comunicacin punto a punto o multipunto. En su aplicacin ms simple, una computadora central se comunica con una UTR empleando un protocolo master-slave, full dplex. La electrnica del convertidor RS232-RS422 es muy simple porque solo se emplean buffers trasmisores receptores del tipo 75176. Una conexin tpica se muestra abajo. La computadora central se comunica con un convertidor (K422) usando 5 de las seales de la norma RS232. El convertidor se conecta al dispositivo remoto 422 usando 4 seales y la tierra.

En algunas aplicaciones, la norma RS422 puede emplearse en redes "mulipunto", es decir, una computadora central comunicndose con varias UTR.

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.

CARACTERISTICASVelocidad mxima de 100Kbps hasta 1200m y de 10Mbps hasta 12m.Seales de cmo mximo 6V y de cmo mnimo 200mV.Amplificadores de triple estado, permiten interconectar hasta 64 dispositivos.

COMPARACINEl uso de tensiones elevados de hasta 15V en RS-232 y de circuitos no balanceados hace que sea ms susceptible al ruido.En cambio en RS-485 se utilizan voltages de cmo mximo 6V y circuitos balanceados por lo que se reduce el factor de ruido.Con RS-485 se permiten conectar hasta 64 dispositivos.

HARTHART (TRANSDUCTOR REMOTO DIRECCIONABLE DE ALTA VELOCIDAD) ES UN PROTOCOLO DE COMUNICACIN DISEADO PARA APLICACIONES DE MEDICION Y CONTROL DE PROCESOS INDUSTRIALES

PROTOCOLO HIBRIDO PORQUE COMBINA COMUNICACIN ANALOGICA Y DIGITAL. PUEDE COMUNICAR UNA SOLA VARIABLE USANDO UNA SEAL ANALOGICA DE 4-20 mA, MIENTRAS COMUNICA INFORMACION AGREGADA SOBRE UNA SEAL DIGITAL.