S11.S1 - Material

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 57

TEMA: MODBUS

CURSO: REDES INDUSTRIALES

Docente: MSc. Manuel Amaya Gonzalez.


¿Qué se puede apreciar en las siguientes imágenes?

MODBUS
Logro la sesión:

Al finalizar la sesión el estudiante identifica y entiende


el funcionamiento de MODBUS

Datos/Observaciones
TEMAS:

Tema : Modbus

➢ Qué es Modbus
➢ Arquitectura Modbus
➢ Ventajas
➢ Variantes Modbus
➢ Tramas de Modbus

Datos/Observaciones
¿Qué es el ModBus?
• Es un protocolo de comunicaciones situado en el nivel 7 del Modelo
OSI, basado en la arquitectura maestro/esclavo o cliente/servidor,
diseñado en 1979 por Modicon para su gama de controladores
lógicos programables (PLCs).

• Goza de mayor disponibilidad para la conexión de dispositivos


electrónicos industriales.
• Diseñado en 1979 por Modicon para su gama de
controladores lógicos programables (PLCs).
• 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.
• Basado en la arquitectura maestro/esclavo o
cliente/servidor.
• Existen versiones del protocolo Modbus para puerto
serie y Ethernet (Modbus/TCP).

3
Modbus
• Es una especificación desarrollada por Modicon para crear un Nivel
de Aplicación estándar para Redes de Comunicación aplicada en
ambientes industriales. Su especificación abierta permite la
comunicación entre cualquier dispositivo que cumpla con el
protocolo
Modbus
• Modbus es una red digital de comunicaciones enmarcada en el
concepto de Bus de Campo de Control y como tal, emplea sólo los
niveles 1, 2 y 7 del modelo de referencia OSI (Open System
Interconection); estos niveles corresponden al Físico, de Enlace y de
Aplicación, respectivamente. Su topología es Maestro-Esclavo con
una estructura de bus lineal en donde sólo existe un maestro, el cual
controla el acceso al medio y monitoriza el funcionamiento de la red,
y uno o más dispositivos programables actúan como esclavos, que
responden y proceden según lo requerido por el maestro
Modbus
• La comunicación se da en forma serial asíncrona bajo los estándares
RS-232 ó RS-485 para enlace semi-dúplex (half-duplex) y RS-422 para
enlace dúplex (full-duplex), utiliza diferentes medios físicos como son
los de soporte metálico (cables), radio frecuencia (RF), fibra óptica, o
infrarrojo (IR) y cuya velocidad de transmisión está prevista en valores
discretos para el rango de 75 a 19.200 baudio
Modbus modelo ISO
Modbus con enlace serie, opera de 1200bps a
56Kbps con método de acceso maestro/esclavo

7
Modbus modelo ISO
• Modbus Plus. Es un bus que opera a 1Mbps y el
método de acceso está basado en Token-Ring

8
Modbus modelo ISO
• Modbus Ethernet TCP/IP. Utiliza la capa física
Ethernet con velocidades de 10 Mbps y 100 Mbps y
protocolos TCP/IP.

9
Ej. Arquitectura de una red Modbus

M.P.M.y F.P.M.DEPTO.ELECTRICIDAD-C.I.P.ETITudela 10
Capa Física RS-485
• Medio: Cable de par trenzado apantallado.
• Topología: Bus.
• Distancia: máx. 1300 m., entre repetidores.
• Velocidad: 1200 bps/56Kbps.
• Nodos: 32 (1 master y 31 esclavos)
• Conectores: RJ-45, SUB-DB9

11
Capa de Enlace
• Método de acceso al medio: master/eslave.
• Método de transmisión: Cliente-Servidor.
• Seguridad en la transmisión:
• CRC y LCR
• Bit de Start y Stop
• Bit de paridad
• Flujo continuo (control de flujo)

12
Modbus ASCII y Modbus RTU
• Hay dos versiones de protocolo Modbus.
• Modbus RTU utiliza datos binarios y CRC ( detección de
error ).
• Modbus ASCII es más sencillo y fácil de leer, aunque menos
eficiente debido a que cada byte requiere de dos bytes
ASCII y utiliza un código menos eficiente LRC.

M.P.M. y F.P.M. DEPTO.ELECTRICIDAD-C.I.P. ETITudela 13


14
Ventajas del ModBus

• Es público
• Su implementación es fácil y requiere poco desarrollo
• Maneja bloques de datos sin suponer restricciones
Comunicación
• Modbus 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 también se usa para la conexión de un ordenador de
supervisión con una unidad remota (RTU) en sistemas de supervisión
adquisición de datos (SCADA).
• Existen versiones del protocolo Modbus para puerto serie y Ethernet
(Modbus/TCP).
Modos de comunicación
• Así mismo, Modbus posee dos modos de comunicación serie
conocidas como ASCII y RTU (o binaria) para el intercambio de
mensajes entre los diferentes dispositivos que conforman la red.
Estos mensajes son conocidos como tramas (frames) y están
constituidas por un conjunto de caracteres que tienen una longitud
en bits que depende del modo de transmisión que se utilice. Estas
tramas contienen los datos necesaria para reconocer el origen y
objetivo de cada mensaje puesto en el bus por alguno de los
dispositivos y que luego le servirá a un dispositivo receptor para hacer
la validación y posterior toma de decisiones.
Variantes de ModBus
• Modbus RTU

• Modbus ASCII

• Modbus/TCP

• Modbus Plus
Modbus RTU

• es una representación binaria compacta de los datos


Modbus ASCII
• es una representación legible del protocolo pero menos eficiente.
Ambas implementaciones del protocolo son serie. El formato RTU
finaliza la trama con un suma de control de redundancia cíclica (CRC),
mientras que el formato ASCII utiliza una suma de control de
redundancia longitudinal (LRC)
Modbus/TCP
es muy semejante al formato RTU, pero estableciendo la transmisión
mediante paquetes TCP/IP (puerto del sistema 502)
Modbus Plus
• es una versión extendida del protocolo y privativa de Modicon. Dada
la naturaleza de la red precisa un coprocesador dedicado para el
control de la misma. Con una velocidad de 1 Mbit/s en un par
trenzado sus especificaciones son muy semejantes al estándar
EIA/RS-485 aunque no guarda compatibilidad con este.
ModBus
• Cada dispositivo de la red Modbus posee una dirección única.
• Cualquier dispositivo puede enviar órdenes Modbus, aunque lo
habitual es permitirlo sólo a un dispositivo maestro.
• Cada comando Modbus contiene la dirección del dispositivo
destinatario de la orden.
• Todos los dispositivos reciben la trama pero sólo el destinatario la
ejecuta.
• Cada uno de los mensajes incluye información redundante que
asegura su integridad en la recepción.
ModBus
• Existe gran cantidad de modems que aceptan el protocolo Modbus.
Algunos están específicamente diseñados para funcionar con este
protocolo. Existen implementaciones para conexión por cable,
wireless, SMS o GPRS. La mayoría de problemas presentados hacen
referencia a la latencia y a la sincronización.
Variaciones
• Todas las implementaciones presentan variaciones respecto al estándar
oficial. Algunas de las variaciones más habituales son:
• Tipos de Datos
• Coma Flotante IEEE
• Entero 32 bits
• Datos 8 bits
• Tipos de datos mixtos
• Campos de bits en enteros
• Multiplicadores para cambio de datos a/de entero. 10, 100, 1000, 256...
• Extensiones del Protocolo
• Direcciones de esclavo de 16 bits
• Tamaño de datos de 32 bits (1 dirección = 32 bits de datos devueltos.)
Por ejemplo, si el maestro consulta a un esclavo el estado de veintidós entradas a
partir de la entrada 197 estará haciendo referencia a las entradas 10197-10218 del
controlador esclavo. Se ha colocado el primer dígito en negrita para resaltar que
éste indica la referencia de este tipo de dato.
Tramas de Modbus

• El modo de transmisión es la estructura de las unidades de


información contenidas en un mensaje. El protocolo Modbus utiliza
dos modos de transmisión: ASCII (American Satandard Code for
Information Interchange) y RTU (Remote Terminal Unit). En una red
de dispositivos conectados mediante el protocolo Modbus no se
pueden tener dispositivos utilizando diferentes modos de
transmisión.
Campo de Dirección
• Modbus es un protocolo multipunto, esto significa que el maestro puede
comunicarse a múltiples esclavos utilizando la misma línea de
comunicación, lo cual es conocido como topología de bus. Debido a esto,
cada esclavo debe tener una identificación única e irrepetible dentro de la
red con la que los dispositivos identificarán el destino y el origen de los
mensajes que sean puestos en el bus. Duplicar esta identificación puede
producir colisiones en el bus o conflictos en la red que conlleve a un flujo
de datos no fiables con posteriores consecuencias negativas. La dirección
de un dispositivo en la red debe estar, según el documento PI-MBUS300
rev J., en el rango 1 a 63 con posibles valores que van desde 01H hasta 3FH,
esto con el fin de garantizar que los bits que conforman la trama lleguen
con los niveles de tensión ó corriente establecidos en los estándares de
Broadcast
• Se conoce como difusión (Broadcast) cuando el maestro se dirige a
todos los esclavos de la red al mismo tiempo. En este caso el campo
de dirección debe contener como dato un cero (00H) y todos los
esclavos en la red aceptarán la petición enviada y ejecutarán la
función indicada, si ésta soporta difusión. Cuando una pregunta se
hace por medio de una difusión ninguno de los esclavos debe enviar
un mensaje de respuesta. 18 Así mismo el campo de dirección es
utilizado por los esclavos para colocar en él su propia dirección y
permitirle al maestro identificar qué esclavo a puesto en el bus un
mensaje de respuesta.
Campo de Códigos de Función

Cada función permite transmitir


órdenes o datos a un esclavo. Existen
dos tipos básicos de órdenes:
• Ordenes de lectura/escritura de
datos en los registros o en la
memoria del esclavo.
• Ordenes de control (RUN/STOP),
carga y descarga de programas,
verificación de contadores, etc.).
• El campo de código de función de un trama cuando se utiliza el modo
transmisión ASCII contiene dos caracteres de este estándar u ocho
bits para el caso del modo de transmisión RTU. Los códigos válidos
están en el rango decimal de 1 … 255. Cuando el maestro envía un
mensaje de petición a un dispositivo esclavo, el campo de código de
función le dice al esclavo qué tipo de acción debe ejecutar. Ejemplos
de funciones son: leer o forzar los estados ON / OFF de un grupo de
salidas discretas, leer o forzar el contenido de un grupo de registros,
leer el estado de diagnóstico del esclavo, etc.
• Por ejemplo, un mensaje del maestro al esclavo para leer un grupo de
registros de salida (Holding Register) tendría el siguiente código de
función en el modo de transmisión RTU:

0000 0011 (Hexadecimal 03)


Excepción
• Si el dispositivo esclavo puede ejecutar la acción solicitada, el código
de función en el mensaje de respuesta es igual al enviado en la
petición. Si ocurre una excepción el contenido del campo de código
de función será:
1000 0011 (Hexadecimal 83)

Además de la anterior modificación del código de función para una respuesta de excepción, el esclavo
coloca un código en el campo de datos del mensaje de respuesta, el cual le informa al maestro que tipo de
error se produjo o la razón de la excepción.
Campo de Datos
• El campo de datos se construye usando grupos de dos dígitos hexadecimales, en el rango de 00 a FF hexadecimal.
• Esto se puede hacer a partir de un par de caracteres ASCII, o a partir de un carácter RTU, de acuerdo con el modo de transmisión
serie de la red.

El campo de datos de los mensajes enviados por el maestro a los dispositivos esclavos contiene la información adicional que el
esclavo debe usar para tomar la acción definida por el código de función.

Este campo puede incluir ítem como son direcciones iniciales de entradas o salidas discretas a leer o escribir, direcciones iniciales
de registros de entradas o de salidas, el número de datos a leer, etc.
Por ejemplo, si el maestro le pide al esclavo leer un grupo de registros de salida (código de función 03), el campo de datos especifica
el registro de inicio y cuantos registros se deben leer a partir de éste.

Si el maestro escribe un grupo de registros en el esclavo (código de función 10 hex.), en el campo de datos se debe especificar el
número del registro desde donde se debe empezar, cuantos registros se van escribir, el número de bytes (contador de bytes) que
corresponden a los datos que se transmiten en dicho mensaje, y los datos que deben ser escritos en los registros.
Si no ocurre error, el campo de datos en el mensaje de respuesta contiene los datos solicitados. De lo contrario, este campo contiene
un código de excepción que la aplicación del maestro puede usar para determinar la siguiente acción a tomar. 21
El campo de datos puede ser inexistente (de longitud cero) en ciertos mensajes. Por ejemplo, en una solicitud de un dispositivo
maestro a un esclavo para responder con su registro de evento de comunicaciones (código de función 0B hexadecimal), el esclavo no
requiere ninguna información adicional. El código de función solo especifica la acción.
Campo de Chequeo de Errores
• El campo de chequeo de errores es el último de la trama y permite al
maestro y a los esclavos detectar errores de transmisión.
Ocasionalmente, debido a ruido eléctrico o a interferencias de otra
naturaleza, se puede producir alguna modificación en el mensaje
mientras se está transmitiendo. El control de errores asegura que los
dispositivos receptores no efectuarán acciones incorrectas debido a
una modificación accidental del mensaje.
Campo de Chequeo de Errores
• Cuando se usa el modo ASCII para la comunicación, el campo de
chequeo de error contiene dos caracteres ASCII. Los caracteres de
chequeo de error son el resultado de un cálculo de (LRC Redundacy )
Chequeo de Redundancia Longitudinal que se lleva a cabo con los
contenidos del mensaje, excluyendo los caracteres dos puntos de
inicio y CR/LF de terminación. Los caracteres LRC se añaden al
mensaje como el último campo que precede los caracteres CR/LF
Campo de Chequeo de Errores
• Cuando se usa el modo RTU para la transmisión, el campo de
chequeo de error contiene un valor de 16 bits implementado como
dos bytes de 8 bits. El valor de chequeo de error es el resultado de un
cálculo de Chequeo de Redundancia Cíclica (CRC) aplicado al
contenido del mensaje. El campo de CRC se añade al mensaje como el
último campo en el mensaje. Cuando esto se hace, se añade primero
el byte de orden bajo del campo, seguido por el byte de orden alto.
Modos de Transmisión : ASCII
• Modo de Transmisión ASCII Teniendo presente la descripción de cada
uno de los campos que debe contener una trama Modbus, en la
figura 6 se muestra la trama correspondiente a un mensaje utilizando
el modo de transmisión ASCII:
• En modo ASCII los mensajes comienzan con el caracter dos puntos ( : ,
ASCII 3A hex. ), y terminan con de CR/LF (retorno de carro/ avance de
línea), (ASCII 0D y 0A hex. respectivamente) que delimitan en inicio y
el final de cada trama. Todos los dispositivos en red monitorizan el
bus continuamente para detectar caracteres ASCII válidos, y una vez
detectado el caracter dos puntos sabrán que alguno de los
dispositivos ha empezado la transmisión de un mensaje y deberán
estar presto para analizar el siguiente campo que corresponde a la
dirección para determinar el destino del mensaje. Si esta dirección
corresponde con la de algún esclavo, éste deberá iniciar la captura de
la trama y posteriormente ejecutar la acción solicitada.
Bits Necesarios por Caracter a Transmitir
• Como se mencionó anteriormente los caracteres para el modo de
transmisión ASCII tienen una longitud de diez bits. Estos diez bits se
distribuyen como sigue:
• • 1 bit de inicio
• • 7 bits de datos, el bit menos significativo se envía primero
• • 1 bit para paridad, si se usa bit de paridad
• • 1 bit de parada si se usa paridad y dos bits si no se usa paridad
Modo de Transmisión RTU
• En la figura 8 se muestra la estructura de un mensaje enviado
utilizando este modo de transmisión. En esta figura se observa que
los mensajes comienzan con un 25 intervalo de silencio de al menos
3.5 veces el tiempo necesario para enviar un carácter lo cual es
mostrado como T1-T2-T3-T4. Después de este silencio el primer
campo transmitido es la dirección del esclavo, cuya longitud es de
ocho bits. De igual forma se cuenta con ocho bits para enviar el
código de función, múltiplos enteros de ocho bits para los datos si son
necesarios y dieciséis para el CRC. La trama terminará con un silencio
de al menos 3.5 veces el tiempo necesario para enviar un carácter.
• Además del tiempo que limita el inicio y el fin de una trama, en el
modo de transmisión RTU se debe tener en cuenta el tiempo que
transcurre entre la llegada de caracteres consecutivos. Este tiempo se
ha definido para que sea máximo de 1.5 veces el tiempo necesario
para enviar un carácter. Si entre el fin de un carácter y el comienzo de
otro transcurre un tiempo mayor que 1.5Tc y menor que 3.5Tc se
producirá una situación de error en la transmisión y el dispositivo
receptor debe ignorar la trama. Cuando se produce este error los
esclavos no deberán enviar ningún mensaje de respuesta.
Bits Necesarios por Caracter a Transmitir
• Los caracteres para el modo de transmisión RTU tienen una longitud
de once bits. Estos once bits se distribuyen como sigue:
• • 1 bit de inicio
• • 8 bits de datos, el bit menos significativo se envía primero
• • 1 bit para paridad, si se usa bit de paridad
• • 1 bit de parada si se usa paridad y dos bits si no se usa paridad En la
• Figura 10 se muestra en forma gráfica el orden en el que se envía
cada carácter de la trama en el modo de transmisión RTU. Un ejemplo
de petición se muestra en la tabla 4; en ésta se observa cómo se
construye la consulta en el formato ASCII y RTU. El maestro le pide al
esclavo número 06 que envíe tres registros a partir del registro 006B
(107d).
CIERRE

Conclusiones

1) El protocolo Modbus es….


2) Qué variantes existen en Modbus
3) Cómo envío una señal en Modbus
4) ….
Simulador ModBus
• http://www.axongroup.com.co/axongroupen/axon_descargas.php
CIERRE

PREGUNTAS …?
Referencias bibliográficas

Pueden revisar los siguientes enlaces para ampliar los conceptos vistos en esta unidad:

• http://www.informatica-hoy.com.ar/aprender-
informatica/Diferencias-HTTP-HTTPS.php
Gracias
Facultad de Ingeniería
Departamento Académico de Electrónica

También podría gustarte