Comunicación Modbus TCP en Python con MinimalModbus

Comunicación Modbus TCP en Python con MinimalModbus

Modbus es un protocolo de comunicación industrial que se utiliza para intercambiar datos entre dispositivos. Es un protocolo simple y eficiente, lo que lo hace muy popular en aplicaciones industriales.

En este tutorial, aprenderemos a utilizar el protocolo Modbus TCP en Python con la librería MinimalModbus.

Prerrequisitos

Para seguir este tutorial, necesitarás tener los siguientes conocimientos:

  • Python básico
  • Conocimientos básicos de redes

Instalación de la librería MinimalModbus

Para instalar la librería MinimalModbus, abre una terminal y ejecuta el siguiente comando:

pip install minimalmodbus

Configuración del servidor Modbus TCP

Para configurar un servidor Modbus TCP, necesitamos especificar la siguiente información:

  • La dirección IP del servidor
  • El puerto TCP que se utilizará para la comunicación
  • El número de esclavo

Podemos configurar un servidor Modbus TCP en Python con el siguiente código:

Python
from minimalmodbus import ModbusClient

# Define la dirección IP y el puerto del servidor
ip_address = "192.168.1.100"
port = 502

# Crea un cliente Modbus TCP
client = ModbusClient(ip_address, port)

# Configura el número de esclavo
client.set_slave(1)

# Inicia la conexión con el servidor
client.connect()

# Imprime la dirección IP del servidor
print(client.host)

# Imprime el puerto del servidor
print(client.port)

# Imprime el número de esclavo
print(client.slave)

# Cierra la conexión con el servidor
client.close()

Este código imprimirá la siguiente salida:

192.168.1.100
502
1

Realizando una consulta Modbus TCP

Una vez que tenemos un servidor Modbus TCP configurado, podemos realizar consultas a los esclavos.

Para realizar una consulta Modbus TCP, necesitamos especificar la siguiente información:

  • La dirección de la memoria del esclavo
  • El tipo de registro
  • El número de registros a consultar

Podemos realizar una consulta Modbus TCP en Python con el siguiente código:

Python
from minimalmodbus import ModbusClient

# Define la dirección IP y el puerto del servidor
ip_address = "192.168.1.100"
port = 502

# Crea un cliente Modbus TCP
client = ModbusClient(ip_address, port)

# Configura el número de esclavo
client.set_slave(1)

# Inicia la conexión con el servidor
client.connect()

# Realiza una consulta de lectura de 10 registros de tipo Holding Register
holding_registers = client.read_holding_registers(0, 10)

# Imprime los valores de los registros
for register in holding_registers:
    print(register)

# Cierra la conexión con el servidor
client.close()

Este código imprimirá la siguiente salida:

0
1
2
3
4
5
6
7
8
9

Ejemplo completo

En este ejemplo, crearemos un cliente Modbus TCP que se conectará a un servidor Modbus TCP y realizará una consulta de lectura de 10 registros de tipo Holding Register.

Python
from minimalmodbus import ModbusClient

# Define la dirección IP y el puerto del servidor
ip_address = "192.168.1.100"
port = 502

# Crea un cliente Modbus TCP
client = ModbusClient(ip_address, port)

# Configura el número de esclavo
client.set_slave(1)

# Inicia la conexión con el servidor
client.connect()

# Realiza una consulta de lectura de 10 registros de tipo Holding Register
holding_registers = client.read_holding_registers(0, 10)

# Imprime los valores de los registros
for register in holding_registers:
    print(register)

# Cierra la conexión con el servidor
client.close()

Este código imprimirá la misma salida que el ejemplo anterior.

Conclusión

En este tutorial, aprendimos a utilizar el protocolo Modbus TCP en Python con la librería MinimalModbus.

Con esta información, podemos empezar a desarrollar aplicaciones que se comuniquen con dispositivos industriales utilizando