Controlando dispositivos con Pymodslave: Comunicación Modbus con Python.

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:

Python
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:

Python
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:

Python
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.

Python
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/.