S11.S1 - Material
S11.S1 - Material
S11.S1 - Material
MODBUS
Logro la sesión:
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).
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.
• 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
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
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