Está en la página 1de 8

Comunicación Modbus RTU

Tipo de trabajo: X Individual Grupal

Fecha: Haga clic aquí o pulse para escribir una fecha.

Nombre: Haga clic aquí para escribir texto.

Objetivo:
 Comunicar un servidor y un cliente mediante el protocolo Modbus RTU en una red
esclavo/maestro.

Duración:
Ciento veinte (120) minutos.

Materiales y Herramientas:
 Navegador Web
 Terminal (CMD)

Introducción:
Modbus es un protocolo de comunicación serial que fue desarrollado y publicado por MODICON
en 1979. Modbus es un protocolo de enlace, debido a esto puede implementarse con diversos
tipos de redes físicas donde normalmente cada fabricante suele suministrar un software de
aplicación propio, en la actualidad el protocolo es de acceso libre, lo cual lo ha convertido en un
protocolo ampliamente utilizado, con las siguientes características:

 Basado en la arquitectura master/slave para RTU, y client/server para TCP/IP.


 Modos de transmisión serial: ASCII (10 bits), y RTU (11 bits).
 Capas de la red Modbus:

o Enlace: se basa en el principio de comunicación master/slave, el cual permite que en


cualquier momento se pueda calcular el tiempo de transferencia de las solicitudes y las
respuestas de cada dispositivo.
o Física: puede transmitir a través del RS 232 (semidúplex) y RS 485 (full dúplex), la
comunicación es asíncrona y las velocidades de transmisión pueden oscilar entre 75
baudios a 19200 baudios, máxima distancia hasta 1200 m sin repetidores.

Página 1 | 8
La codificación de datos del protocolo Modbus dentro de la Trama puede hacerse en modo
ASCII o puramente binario, según el estándar RTU (Remote Transmission Unit). En cualquiera
de los dos casos, cada mensaje tiene una trama que contiene cuatro campos principales, según
se muestra en la ilustración.

ADU: Unidad de Datos de Aplicación


PDU: Unidad de Datos de Protocolo

*Additional Address: Representa la dirección del esclavo Modbus.

Página 2 | 8
*Function Code: Se envía el código de función para establecer que se hará con el dato.
*Data: Es el dato que se envía hacia el esclavo o se recibe del esclavo
*Error Check: En esta parte de la trama se obtiene un reconocimiento, para saber si el mensaje fue recibido

Investigación
Pregunta 1: Investigue las primeras 16 funciones más utilizadas en el protocolo Modbus,
indicando su código, función y que tipo de datos manipula.
Haga clic o pulse aquí para escribir texto.

Pregunta 2: Investigue cuáles son los 4 segmentos de memoria Modbus, indique los
rangos de memoria, el tipo de dato y el nivel de acceso a dichos segmentos de memoria.
Haga clic o pulse aquí para escribir texto.

Procedimiento

Paso 1: Instalación y configuración de Modbus Server en Node-RED

a) Iniciar Node-red y ejecutarlo en un navegador web


b) Instalar el módulo node-red-contrib-modbus, como se indicó en la práctica pasada.

Luego de la instalación cierre el proceso de Node-red desde el terminal (CTRL+C), vuelva a iniciarlo y
refresque la página del navegador.

c) Colocar el nodo Modbus Server como se muestra en la figura.

d) Configurar el nodo Modbus como se muestra en la siguiente figura.

Página 3 | 8
e) Hacer el Deploy y mostrar el resultado, basado en la descripción de Node-red, ¿qué
representa cada uno de esos arreglos?
Haga clic o pulse aquí para escribir texto.

Captura del debug con los arreglos del nodo Modbus Server
Paso 2: Envío y recepción de datos individuales a través de Modbus
a) Agregar el siguiente conjunto de nodos, para enviar y obtener valores mediante el protocolo
Modbus.

b) Colocar las funciones para enviar a los nodos Getter y Write respectivamente.

Página 4 | 8
msg.payload = { msg.payload = {
'fc': 3, value: msg.payload,
'unitid': 1, 'fc': 6,
'address': 0 , 'unitid': 1,
'quantity': 1 'address': 0 ,
} 'quantity': 1
}
return msg; return msg;
c) En los nodos Getter y Write, establecer la conexión al nodo Modbus Server a través de la
dirección localhost (127.0.0.1) y el puerto 10502.
d) Modificar el primer nodo inject (Getter) para que se active cada segundo.
e) Modificar el segundo nodo inject (Write) para que envíe un número (0-65535) cuando se lo
presione.

Captura del debug con los arreglos modificados del nodo Modbus Server

Captura del área de trabajo con el dato recibido en el nodo Modbus Response
f) Modificar las funciones para que tanto el nodo Getter como el nodo Write, trabajen con datos
binarios (coils).
Haga clic o pulse aquí para escribir texto.
Código para la función que se conecta con el nodo Getter
Haga clic o pulse aquí para escribir texto.
Código para la función que se conecta con el nodo Write

Página 5 | 8
Captura del debug con los arreglos modificados del nodo Modbus Server

Captura del área de trabajo con el dato recibido en el nodo Modbus Response
Paso 3: Envío y recepción de datos múltiples a través de Modbus
a) Modificar las funciones para enviar a los nodos Getter y Write respectivamente.
msg.payload = { msg.payload = {
'fc': 3, value: msg.payload,
'unitid': 1, 'fc': 16,
'address': 0 , 'unitid': 1,
'quantity': 3 'address': 0 ,
} 'quantity': 3
}
return msg; return msg;
b) Colocar un nodo join entre el nodo inject y el nodo function que está conectado al nodo
Write.
c) Configurar el nodo join de la siguiente manera:

Página 6 | 8
Puede conectar más injects al nodo join para crear el arreglo con números diferentes.

Captura del área de trabajo con los datos recibidos en el nodo Modbus Response
d) Instalar un módulo para trabajar con números aleatorios en Node-red.
e) Implementar el nodo que genera valores aleatorios entre 0 y 65535 automáticamente cada
segundo para generar el arreglo de envío.
Haga clic o pulse aquí para escribir texto.
Nombre del módulo instalado

Captura de la configuración del nodo para números aleatorios

Página 7 | 8
Captura del área de trabajo con los datos recibidos en el nodo Modbus Response

Página 8 | 8

También podría gustarte