/ / Modbus RTU esclavo RS-485 no pudo responder - node.js, linux, modbus, rs485

Modbus RTU esclavo RS-485 no pudo responder: node.js, linux, modbus, rs485

Estoy tratando de escribir modbus esclavo y tengo unoproblema: "Recibo correctamente las solicitudes del maestro, pero cuando trato de responder, parece que algo se envió incorrectamente a serialport, porque cuando conecto el sniffer RS485, veo tanto req como res (en HEX).

Hardware: Mac (esclavo escrito por mí) - USBtoRS485 - ICPCON tGW-715 (pasarela TCPtoRTU) - Win PC (software master)

Cuando estoy probando esta variante: Win PC (software esclavo) - USBtoRS485 - ICPCON tGW-715 (pasarela TCPtoRTU) - Win PC (software master) todo funciona.

Libs: libmodbus, h5.modbus (node.js). No importa - la solicitud correcta, pero no hay respuesta.

La PC de destino (para esclavo) estará en Linux, por lo que Mac está más cerca que Win.

Ya no tengo ideas sobre qué verificar y cómo hacer que funcione. ¿Qué puede estar mal?

Respuestas

0 para la respuesta № 1

La variante de PC de Win está funcionando, el hardware deberíaestar bien. Sin más detalles, sugeriría otro enfoque, si su objetivo final es usar el sistema en Linux: use una máquina virtual en Windows, con un invitado de Linux. Trabajo con el soporte técnico de ICP DAS y he usado VirtualBox con tM-7561 y I-7561 USBtoRS485 convertidores, con hosts de Linux y Windows.

No tengo experiencia en Mac, pero otra opción sería probar un Modbus Slave no escrito por usted, por ejemplo pyModSlave y vea si funciona correctamente en su Mac, también le muestra los paquetes enviados / recibidos.

Si pyModSlave funciona correctamente en Mac, tal vez intente unasoftware de serie de sniffer con su esclavo. En Windows utilizo el software HHD, tiene sniffers serie, USB y TCP / IP. En Mac / Linux debería poder usar Wireshark para detectar comunicaciones USB, pero aún no lo he hecho personalmente.

En lugar del sniffer, quizás puedas usar un nuloemulador de módem, para que lo que envíe desde un puerto serie (virtual) se reciba en otro puerto serie (virtual) de su Mac, para que pueda inspeccionar los datos enviados / recibidos. En Windows utilizo com0com, para Linux hay tty0tty que no he usado todavía. No estoy seguro de lo que está disponible en Mac. O bien, simplemente use 2 USBtoRS485 con D + y D- interconectados, en un puerto de su esclavo, en el otro puerto un maestro como qModMaster que muestra paquetes.