pymodbus - guardar registros y correr funciones

Discusión general sobre Raspberry Pi
Responder
Kikiper
Pi Newbie
Pi Newbie
Mensajes: 2
Registrado: 30 Mar 2020, 22:15
Agradecido: 0
Agradecimiento recibido: 0

Buenas a todos!

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.
Avatar de Usuario
egrueda
Pi God
Pi God
Mensajes: 3426
Registrado: 10 Feb 2017, 19:31
Agradecido: 7 veces
Agradecimiento recibido: 269 veces

Creo que tu consulta es demasiado específica y no relacionada con raspberry.
Quizá tengas más suerte en un foro de programación o de modbus
Responder