Página 1 de 1

pymodbus - guardar registros y correr funciones

Publicado: 24 Jun 2020, 20:07
por Kikiper
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.

Re: pymodbus - guardar registros y correr funciones

Publicado: 25 Jun 2020, 11:06
por egrueda
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