Comunicación Modbus TCP en Python con PyModbusTCP

Comunicación Modbus TCP en Python con PyModbusTCP

El protocolo Modbus es un protocolo de comunicación industrial estándar que se utiliza para la transmisión de datos entre dispositivos de automatización. Modbus TCP es una variante de Modbus que se basa en el protocolo TCP/IP para la transmisión de datos.

En este tutorial, aprenderemos a realizar comunicación Modbus TCP en Python utilizando la biblioteca PyModbusTCP. PyModbusTCP es una biblioteca de Python que proporciona una interfaz sencilla para la comunicación Modbus.

Requisitos

Para seguir este tutorial, necesitarás los siguientes requisitos:

  • Python 3.6 o superior
  • La biblioteca PyModbusTCP

Instalación de PyModbusTCP

Para instalar PyModbusTCP, puedes utilizar el siguiente comando:

pip install pymodbustcp

Creación de un cliente Modbus TCP

Para crear un cliente Modbus TCP, puedes utilizar la clase ModbusClient de PyModbusTCP. Esta clase proporciona métodos para realizar operaciones de lectura y escritura de datos Modbus.

El siguiente código crea un cliente Modbus TCP que se conectará a un dispositivo Modbus TCP en la dirección IP 192.168.1.100 en el puerto 502:

Python
from pymodbustcp import ModbusClient

# Create a Modbus client
client = ModbusClient(host="192.168.1.100", port=502)

# Connect to the server
client.connect()

Lectura de datos Modbus TCP

Para leer datos Modbus TCP, puedes utilizar el método read_holding_registers() de la clase ModbusClient. Este método devuelve una lista de valores de registro.

El siguiente código lee los 10 primeros registros de datos de un dispositivo Modbus TCP:

Python
# Read 10 holding registers
registers = client.read_holding_registers(0, 10)

# Print the registers
print(registers)

Escritura de datos Modbus TCP

Para escribir datos Modbus TCP, puedes utilizar el método write_holding_registers() de la clase ModbusClient. Este método recibe una lista de valores de registro que se escribirán en el dispositivo Modbus TCP.

El siguiente código escribe los valores 1, 2, 3, 4, 5, y 6 en los primeros 6 registros de datos de un dispositivo Modbus TCP:

Python
# Write 6 holding registers
values = [1, 2, 3, 4, 5, 6]
client.write_holding_registers(0, values)

Cierre de la conexión Modbus TCP

Para cerrar la conexión Modbus TCP, puedes utilizar el método close() de la clase ModbusClient.

El siguiente código cierra la conexión Modbus TCP creada anteriormente:

Python
# Close the connection
client.close()

Ejemplo completo

El siguiente código es un ejemplo completo de comunicación Modbus TCP en Python utilizando la biblioteca PyModbusTCP:

Python
from pymodbustcp import ModbusClient

# Create a Modbus client
client = ModbusClient(host="192.168.1.100", port=502)

# Connect to the server
client.connect()

# Read 10 holding registers
registers = client.read_holding_registers(0, 10)

# Print the registers
print(registers)

# Write 6 holding registers
values = [1, 2, 3, 4, 5, 6]
client.write_holding_registers(0, values)

# Close the connection
client.close()

Este código se conectará a un dispositivo Modbus TCP en la dirección IP 192.168.1.100 en el puerto 502. Luego, leerá los 10 primeros registros de datos del dispositivo y los imprimirá en la consola. Finalmente, escribirá los valores 1, 2, 3, 4, 5, y 6 en los primeros 6 registros de datos del dispositivo.

Conclusión

En este tutorial, aprendimos a realizar comunicación Modbus TCP en Python utilizando la biblioteca PyModbusTCP. PyModbusTCP es una biblioteca sencilla y fácil de usar que proporciona una interfaz sencilla para la comunicación Modbus.