Anda di halaman 1dari 4

MODBUS RTU

Brayan Baquero Cardozo Cod:20172383004

RESUMEN: En el siguiente informe se presentan la Este documento ofrece una perspectiva detallada de
descripción del desarrollo y los resultados obtenidos la implementación del protocolo.
de la realización de una comunicación Modbus RTU
Modbus es un protocolo de solicitud-respuesta
entre un microcontrolador actuando como maestro y
implementado usando una relación maestro-
simulador Modbus de pc como esclavo, también se
esclavo. En una relación maestro-esclavo, la
entablo comunicación entre un microcontrolador y el
comunicación siempre se produce en pares, un
SBC Raspberry pi el cual emula un PLC mediante la
dispositivo debe iniciar una solicitud y luego esperar
plataforma Codesys.
una respuesta y el dispositivo de inicio (el maestro)
Palabras clave: Modbus RTU, Codesys, Raspberry es responsable de iniciar cada interacción. Por lo
pi. general, el maestro es una interfaz humano-
máquina (HMI) o sistema SCADA y el esclavo es un
INTRODUCCION
sensor, controlador lógico programable (PLC) o
El protocolo de comunicación Modbus es controlador de automatización programable (PAC).
implementado a nivel industrial para entablar una El contenido de estas solicitudes y respuestas, y las
comunicación entre diversos dispositivos de una capas de la red a través de las cuales se envían
planta de producción con el fin de transmitir datos estos mensajes, son definidas por las diferentes
de una manera eficiente. El protocolo Modbus RTU capas del protocolo.
está montado sobre una capa física RS485 esto con
el fin de mejorar la distancia y la eficiencia en la
transferencia de datos.
Con fines educativos se entablo una comunicación
Modbus RTU entre un ordenador, que actuó como
esclavo y un microcontrolador Arduino que actuaba
como maestro. Como capa física se implementó el
estándar Rs485, también se entablo la misma
comunicación esta vez con un microordenador ACCESO DE DATOS EN MODBUS Y EL MODELO
Raspberry pi montado con el target de Codesys para DE DATOS DE MODBUS
emular un PLC, todo ello con el fin conocer el
Los datos disponibles por medio de Modbus son
funcionamiento de algunos códigos de función.
almacenados, en general, en uno de los cuatro
MODBUS bancos de datos o rangos de dirección: bobinas,
entradas discretas, registros de retención y registros
Modbus es un protocolo industrial que fue de entrada. Al igual que con gran parte de la
desarrollado en 1979 para hacer posible la especificación, los nombres pueden variar
comunicación entre dispositivos de automatización. dependiendo de la industria o de la aplicación. Por
Originalmente implementado como un protocolo al ejemplo, los registros de retención pueden
nivel de la aplicación con la finalidad de transferir denominarse como registros de salida y las bobinas
datos por una capa serial, Modbus se ha expandido pueden denominarse como salidas digitales o
para incluir implementaciones a través de protocolo discretas. Estos bancos de datos definen el tipo y
serial, TCP/IP y el User Datagram Protocol (UDP). los derechos de acceso de los datos contenidos. Los
dispositivos esclavos tienen acceso directo a estos códigos que soportan, en lugar de con las
datos, los cuales son alojados localmente en los clasificaciones de legado.
dispositivos. Los datos disponibles por medio de
Modbus generalmente son un subconjunto de la Códigos Clase 0
memoria principal del dispositivo. En contraste, los Los códigos Clase 0 generalmente son
maestros Modbus deben solicitar el acceso a estos considerados el mínimo para un dispositivo Modbus
datos a través de diversos códigos de función. El útil, ya que dan a un maestro la habilidad de leer o
comportamiento de cada bloque se describe en la escribir en el modelo de datos.
Tabla 1.
Tabla 2: Compatibilidad con Códigos Clase 0

Tabla 1: Bloques de Modelo de Datos de Modbus


Código Descripción
Bloque Tipo de Acceso de Acceso de
de Datos Maestro Esclavo 3 Leer Múltiples Registros
Memoria
16 Escribir a Múltiples
Bobinas Boolean Lectura/Escritu Lectura/Escritu Registros
o ra ra

Entradas Boolean Solo Lectura Lectura/Escritu


Discreta o ra Códigos Clase 1
s
Los códigos de función Clase 1 consisten en los
Registro Palabra Lectura/Escritu Lectura/Escritu otros códigos necesarios para tener acceso a todos
s de Sin ra ra los tipos del modelo de datos. En la definición
Retenció Signo original, esta lista incluye el código de función 7 (leer
n
excepción). Sin embargo, este código es definido
Registro Palabra Solo Lectura Lectura/Escritu por la especificación actual como un código para
s de Sin ra serial únicamente.
Entrada Signo

Tabla 3: Compatibilidad con Códigos Clase 1


Estos bloques le brindan la habilidad de restringir o
permitir el acceso a los diferentes elementos de Código Descripción
datos y también de proporcionar mecanismos
simplificados en la capa de aplicación para tener 1 Leer Bobinas
acceso a diferentes tipos de datos.
2 Leer Entradas Discretas

Códigos de Función Estándares 4 Leer Registros de Entrada

La definición de cada código de función estándar 5 Escribir a Bobina Individual


está en la especificación. Incluso para los códigos
de función más comunes, existen discrepancias 6 Escribir a Registro Individual
inevitables entre las funciones habilitadas en el
maestro y lo que el esclavo puede manejar. Para 7 Leer Estado de Excepción (únicamente serial)
solucionar esto, las versiones anteriores de la
especificación Modbus TCP definen tres clases de
conformidad. La Especificación de Pruebas de Códigos Clase 2
Compatibilidad Modbus oficial no hace referencia a
estas clases y en su lugar define la compatibilidad Los códigos de función Clase 2 son funciones más
en cada función; sin embargo, puede ser especializadas que son implementadas con menos
conveniente para comprenderlo. Se recomienda frecuencia. Por ejemplo, Leer/Escribir Múltiples
que cualquier documento siga la especificación de Registros puede ayudar a reducir el número total de
pruebas y determine su compatibilidad con los ciclos de solicitud-respuesta, pero el
comportamiento aún puede ser implementado con Para la segunda practica se implementó la misma
códigos Clase 0. librería de Arduino, la cual se implementó para que
este fuera el esclavo. Mediante la plataforma
Codesys se configura el maestro para implementar
Tabla 4: Compatibilidad con Códigos Clase 2
las siguientes funciones:
Descripción de Código  3: Leer múltiples registros.
 6: Escribir a Registro Individual
15 Escribir a Múltiples Bobinas
 1: Leer bobinas
20 Leer Registro de Archivo

21 Escribir a Registro de Archivo Para visualizar el funcionamiento se implementó


una pequeña interfaz gráfica en Codesys con el fin
22 Escribir a Registro con Máscara de visualizar el funcionamiento.
23 Leer/Escribir Múltiples Registros

24 Leer FIFO Raspberry RS-485 RS-485 Arduino


Max485 Max485 (Esclavo)
(Maestro)

DESARROLLO
En ambas prácticas como interfaz física se usó el
Para el desarrollo de la primera practica se estándar RS-485 implementando el siguiente
implementó un microcontrolador Arduino nano, para circuito.
la comunicación Modbus RTU se implementó la
librería <ModbusRTU>, como esclavo se uso el
software Modsim.
Se implementaron los siguientes códigos de función:

 3: Leer múltiples registros.


 16: Escribir múltiples registros
 1: Leer bobinas
 5: Escribir a Bobina Individual

En el Arduino se implementó una entrada análoga,


2 salidas digitales las cuales se visualizaban con
leds, una salida pwm la cual variaba la intensidad de Figura 1:Max 485
un led y 2 entradas digitales conectadas a
pulsadores.
ANALISIS
Arduino PC
RS-485 RS-485 Serial Esclavo
(Maestro) Max485 Max485 USB-Serie
RESULTADOS

CONCLUCIONES

Anda mungkin juga menyukai