Estoy utilizando mi rpm 3b+ como un servidor de Modbus TCP a partir de la librería de python de pymodbus. La verdad es que soy nuevo utilizando el protocolo y no sé muy bien cómo hacer las cosas.
Quiero enviar desde un cliente una serie de holding register y guardarlos en el esclavo 0x0001, para luego guardarlos en un archivo yaml en el que indique el registro 1 es una posición, el 2 una velocidad y el 3 un parámetro.
También quiero hacer que cuando el cliente mande una orden, había pensado con una coil, se ejecute una función que tengo hecha para que se mueva un motor.
from pymodbus.server.asynchronous import StartTcpServer from pymodbus.server.asynchronous import ModbusDeviceIdentification from pymodbus.datastore import ModbusSequentialDataBlock from pymodbus.datastore import ModbusSlaveContext, ModbusServerContext import logging FORMAT = ("%(asctime)-15s %(threadName)-15s" "%(levelname)-8s %(module)-15s:%(lineno)-8s %(message)s") logging.basicConfig(format=FORMAT) log = logging.getLogger() log.setLevel(logging.DEBUG) # Setup data store slaves = { 0x0001: ModbusSlaveContext(hr=ModbusSequentialDataBlock.create(), zero_mode=True) # Holding Register (L/E 16 bits) } context = ModbusServerContext(slaves=slaves, single=False) StartTcpServer(context, indentity=identity, address=("0.0.0.0", 2222))El código que tengo hecho del servidor lo he basado en los distintos ejemplos que hay en la web de pymodbus, pero no sé cómo hacer lo anterior. Cualquier respuesta sería de gran ayuda, muchas gracias de antemano.