Controlando dispositivos con Pymodslave: Comunicación Modbus con Python
Introducción
Modbus es un protocolo de comunicación industrial que se utiliza para el intercambio de datos entre dispositivos electrónicos. Es un protocolo simple y eficiente que se utiliza en una amplia gama de aplicaciones, desde sistemas de control de procesos hasta equipos de automatización de edificios.
En este tutorial, aprenderemos a controlar dispositivos Modbus con Python utilizando la biblioteca Pymodslave. Pymodslave es una biblioteca de Python que proporciona una interfaz simple para la comunicación Modbus.
Requisitos
Para seguir este tutorial, necesitarás lo siguiente:
- Un ordenador con Python 3 instalado
- Un dispositivo Modbus
- Un cable de conexión para el dispositivo Modbus
Instalación
Para instalar Pymodslave, abre una terminal y ejecuta el siguiente comando:
pip install pymodslave
Configuración
Antes de poder empezar a controlar dispositivos Modbus, necesitamos configurar la biblioteca Pymodslave. Para ello, necesitamos crear una instancia de la clase ModbusSlave
.
La clase ModbusSlave
tiene los siguientes parámetros:
address
: La dirección del dispositivo Modbus.port
: El puerto COM del dispositivo Modbus.timeout
: El tiempo de espera para las operaciones Modbus.
Por ejemplo, para configurar un dispositivo Modbus con la dirección 1, el puerto COM 1 y un tiempo de espera de 1 segundo, ejecutaríamos el siguiente código:
from pymodbus.client.sync import ModbusSlave
slave = ModbusSlave(address=1, port="/dev/ttyUSB0", timeout=1)
Lectura de datos
Para leer datos de un dispositivo Modbus, utilizamos el método read_holding_registers()
. Este método devuelve una lista de registros de datos.
El método read_holding_registers()
tiene los siguientes parámetros:
start_address
: La dirección del primer registro de datos.quantity
: El número de registros de datos a leer.
Por ejemplo, para leer los primeros 10 registros de datos de un dispositivo Modbus, ejecutaríamos el siguiente código:
registers = slave.read_holding_registers(start_address=0, quantity=10)
Escritura de datos
Para escribir datos en un dispositivo Modbus, utilizamos el método write_holding_registers()
. Este método actualiza los valores de los registros de datos especificados.
El método write_holding_registers()
tiene los siguientes parámetros:
start_address
: La dirección del primer registro de datos a actualizar.values
: Una lista de valores de datos.
Por ejemplo, para actualizar los primeros 10 registros de datos de un dispositivo Modbus con los valores 1, 2, 3, …, 10, ejecutaríamos el siguiente código:
values = [1, 2, 3, ..., 10]
slave.write_holding_registers(start_address=0, values=values)
Ejemplo
En este ejemplo, leeremos los primeros 10 registros de datos de un dispositivo Modbus y los imprimiremos en la consola.
from pymodbus.client.sync import ModbusSlave
slave = ModbusSlave(address=1, port="/dev/ttyUSB0", timeout=1)
registers = slave.read_holding_registers(start_address=0, quantity=10)
for register in registers:
print(register)
Salida:
0
1
2
3
4
5
6
7
8
9
Conclusión
En este tutorial, aprendimos a controlar dispositivos Modbus con Python utilizando la biblioteca Pymodslave. Pymodslave es una biblioteca sencilla y eficiente que nos permite comunicarnos con dispositivos Modbus de forma sencilla.
Para obtener más información sobre Pymodslave, consulta la documentación oficial: https://pymodbus.readthedocs.io/en/latest/.