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:
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:
# 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:
# 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:
# 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:
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.