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.

Problema de conectividad del adaptador Modbus RTU de AWS Greengrass V2.

He implementado con éxito el componente Greengrass Modbus en mi Raspberry pi 4B, junto con las dependencias requeridas. La pi está conectada a un sensor de temperatura y humedad Modbus a través de un dongle USB RS485. Confirmo que puedo leer los registros de retención exitosamente utilizando la herramienta simuladora de maestro de línea de comandos Modpoll, hasta aquí todo bien. El sensor se puede acceder a través de la ruta “/dev/ttyUSB0”.

Quiero que Greengrass informe los valores de estos registros en el sensor a AWS IoTCore.

Para solicitar datos, envío una carga útil a un tema específico desde el intermediario de AWS al núcleo de Greengrass. En mi caso particular, el tema es el predeterminado “modbus/adapter/request”. Envié la siguiente carga útil:

{
  "request": {
    "operation": "ReadHoldingRegistersRequest",
    "device": 4,
    "address": 1,
    "count": 2
  },
  "id": "TestRequest"
}

Y obtengo la siguiente respuesta en el tema “modbus/adapter/response”:

{
  "response": {
    "status": "fail",
    "error_message": "Error Modbus: [Conexión] Fallo al conectar [rtu baud[9600]]",
    "error": "Excepción",
    "payload": {
      "error": "Error Modbus: [Conexión] Fallo al conectar [rtu baud[9600]]"
    },
    "operation": "ReadHoldingRegistersRequest",
    "device": 4
  },
  "id": "TestRequest"
}

Para reiterar, sé el puerto correcto porque puedo leer los registros de retención usando Modbuspoll en línea de comandos. Sin embargo, con esta herramienta no puedo especificar más parámetros, como el tipo de paridad, velocidad de baudios, etc… para su referencia, los parámetros que utilicé en Modpoll son los siguientes:

Dirección: 4
Velocidad de baudios: 9600
Paridad: ninguno
Registros: 1 (o 40001 para PLC)
Ruta: /dev/ttyUSB0

Para su información, todos los pasos mencionados anteriormente siguen esta guía: https://docs.aws.amazon.com/greengrass/v2/developerguide/modbus-rtu-protocol-adapter-component.html#modbus-rtu-protocol-adapter-component-input-data

¿Algún sugerencia?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Según el mensaje de error devuelto por Greengrass, parece que ha fallado la conexión con el dispositivo Modbus. Es posible que el componente Modbus no esté configurado correctamente con los parámetros apropiados, como la velocidad de transmisión y el tipo de paridad.

    Para investigar más a fondo, puedes intentar seguir los siguientes pasos:

    1. Verifica la configuración del componente Modbus en Greengrass para asegurarte de que la velocidad de transmisión, la paridad y otros ajustes coincidan con los utilizados por la herramienta Modpoll.
    2. Prueba a utilizar una herramienta o biblioteca Modbus diferente para conectarte al dispositivo desde la Raspberry Pi, como pymodbus, para confirmar que el problema no está en el hardware o conexiones del Modbus.

    3. Verifica los registros del componente Modbus en Greengrass para ver si hay mensajes de error o advertencias adicionales que puedan brindar más detalles sobre el problema de conexión.

    Una vez que se haya diagnosticado el problema, podrás actualizar la configuración del componente Modbus en Greengrass o modificar la carga útil enviada al tema “modbus/adapter/request” para reflejar la dirección del dispositivo correcta, tipo de operación, dirección del registro, etc.

Comments are closed.