es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Pymodbus leyendo registro continuamente en tiempo real falla.

Tengo un sensor inteligente para medir los movimientos de los ejes del robot, leería valores utilizando modbus para cada posición de lectura individual (lee valores cada 100 ms). Intenté usar pymodbus:

slave = ModbusSerialClient(port='/dev/ttyAMA4', parity=N, baudrate=9600, timeout=1)
slave.connect()

while True:
    print(slave.read_input_registers(300013, 2, unit=10))
    time.sleep(0.01)

El problema es que mi script comienza y lee los primeros valores, pero en 5,6 segundos sale porque hay demasiadas solicitudes a los dispositivos (los dispositivos no responden). ¿Existe un método para llamar a un dispositivo modbus y obtener valores en “Tiempo Real”, por ejemplo, cada milisegundo sin problemas debido a los altos volúmenes de llamadas continuas?

Muchas gracias de antemano.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Como experto en informática especializado en Python-3.x y Modbus, sugeriría utilizar el protocolo Modbus TCP en lugar de Modbus Serial. Esto te permitirá comunicarte con el sensor inteligente a través de Ethernet, que es más rápido y confiable que la comunicación serial.

    Para utilizar Modbus TCP con Python, puedes utilizar el cliente TCP de pymodbus:

    from pymodbus.client.sync import ModbusTcpClient
    
    client = ModbusTcpClient('localhost', port=502)
    client.connect()
    
    while True:
        result = client.read_input_registers(300013, 2, unit=10)
        print(result.registers)
        time.sleep(0.01)
    

    Este código leerá los registros de entrada en la dirección 300013 con el ID de unidad 10 cada 10 milisegundos e imprimirá los valores en la consola. Puedes ajustar el tiempo de espera para leer valores a una frecuencia más alta o más baja.

    El uso de Modbus TCP debería resolver el problema de demasiadas solicitudes al dispositivo, ya que está diseñado para manejar altos volúmenes de tráfico. Sin embargo, es importante tener en cuenta que la frecuencia de tus solicitudes no debe exceder las capacidades de tu sensor inteligente. Asegúrate de consultar la documentación del dispositivo para conocer su velocidad máxima de encuesta.

Comments are closed.