Comunicación Modbus en Python con pymodbus
El protocolo Modbus es un protocolo de comunicación industrial ampliamente utilizado para el intercambio de datos entre dispositivos de automatización. Es un protocolo simple y eficiente que se puede implementar en una variedad de plataformas, incluido Python.
En este tutorial, aprenderemos a usar la biblioteca pymodbus para realizar comunicaciones Modbus en Python.
Requisitos previos
Para seguir este tutorial, necesitarás tener instalado Python 3 y la biblioteca pymodbus. Puedes instalar pymodbus con el siguiente comando:
pip install pymodbus
Ejemplo: lectura de datos
En este ejemplo, leeremos el valor de un registro de datos de un dispositivo Modbus.
import pymodbus
# Crear una conexión con el dispositivo Modbus
client = pymodbus.client.ModbusTcpClient("192.168.1.100", 502)
# Leer el valor del registro de datos
register = 10
response = client.read_holding_registers(register, 1)
# Imprimir el valor del registro de datos
print(response.registers[0])
Este código creará una conexión con un dispositivo Modbus TCP que se ejecuta en la dirección IP 192.168.1.100 en el puerto 502. Luego, leerá el valor del registro de datos 10. La respuesta se almacenará en la variable response
. Finalmente, el valor del registro de datos se imprimirá en la consola.
Ejemplo: escritura de datos
En este ejemplo, escribiremos un valor en un registro de datos de un dispositivo Modbus.
import pymodbus
# Crear una conexión con el dispositivo Modbus
client = pymodbus.client.ModbusTcpClient("192.168.1.100", 502)
# Escribir el valor en el registro de datos
register = 10
value = 1234
client.write_registers(register, [value])
# Cerrar la conexión
client.close()
Este código creará una conexión con el mismo dispositivo Modbus que en el ejemplo anterior. Luego, escribirá el valor 1234 en el registro de datos 10. Finalmente, cerrará la conexión.
Explicación de la biblioteca pymodbus
La biblioteca pymodbus proporciona una API simple y eficiente para realizar comunicaciones Modbus en Python. La API se basa en el modelo de programación maestro/esclavo del protocolo Modbus.
Para leer datos de un dispositivo Modbus, usamos el método read_holding_registers()
. Este método toma dos parámetros: el número del registro de datos a leer y el número de registros a leer.
Para escribir datos en un dispositivo Modbus, usamos el método write_registers()
. Este método toma dos parámetros: el número del registro de datos a escribir y una lista de valores a escribir.
Otros ejemplos
La biblioteca pymodbus proporciona una variedad de otros métodos para realizar operaciones Modbus. Para obtener más información, consulta la documentación de la biblioteca.
Conclusión
Este tutorial te ha proporcionado una introducción a la comunicación Modbus en Python con pymodbus. Puedes usar esta información para crear aplicaciones que se comuniquen con dispositivos Modbus.