/ / Modbus RTU slave RS-485 non è riuscito a rispondere - node.js, linux, modbus, rs485

Lo slave Modbus RTU RS-485 non è riuscito a rispondere - node.js, linux, modbus, rs485

Sto cercando di scrivere slave Modbus e averne unoproblema: ricevo correttamente richieste dal master, ma quando provo a rispondere sembra che qualcosa venga inviato erroneamente a serialport, perché quando inserisco lo sniffer RS485, vedo sia req che res (in HEX).

Hardware: Mac (slave scritto da me) - USBtoRS485 - ICPCON tGW-715 (gateway TCPtoRTU) - Win PC (software master)

Quando sto provando questa variante: Win PC (software slave) - USBtoRS485 - ICPCON tGW-715 (gateway TCPtoRTU) - Win PC (software master) tutto funziona.

Libs: libmodbus, h5.modbus (node.js). Non importa - richiesta corretta, ma nessuna risposta.

Il PC di destinazione (per slave) sarà su Linux, quindi Mac è quasi più vicino di Win.

Non ho già idee su cosa controllare e come farlo funzionare. Cosa può essere che non va?

risposte:

0 per risposta № 1

La variante Win PC funziona così, l'hardware dovrebbeStammi bene. Senza ulteriori dettagli, suggerirei un altro approccio, se il tuo obiettivo finale è usare il sistema in Linux: usa una macchina virtuale su Windows, con un guest Linux. Lavoro con il supporto tecnico di ICP DAS e ho usato VirtualBox con TM-7561 e I-7561 convertitori USBtoRS485, con host sia Linux che Windows.

Non ho esperienza su Mac, ma un'altra opzione proverebbe ad esempio uno slave Modbus non scritto da te pyModSlave e vedere se funziona correttamente sul tuo Mac, mostra anche i pacchetti inviati / ricevuti.

Se pyModSlave funziona correttamente su Mac, forse prova asniffer seriale del software con il tuo schiavo. Su Windows utilizzo quello del software HHD, ha sniffer di seriale, USB e TCP / IP. Su Mac / Linux dovresti essere in grado di usare Wireshark per annusare le comunicazioni USB, ma non l'ho ancora fatto personalmente.

Invece dello sniffer, forse puoi usare un nullemulatore di modem, in modo che quello che invii da una porta seriale (virtuale) sia ricevuto su un'altra porta seriale (virtuale) sul tuo Mac, in modo da poter ispezionare i dati inviati / ricevuti. Su Windows uso com0com, per Linux c'è tty0tty che non ho ancora usato. Non sono sicuro di ciò che è disponibile su Mac. Oppure basta usare 2 USBtoRS485 con D + e D- interconnessi, su una porta lo slave, sull'altra porta un master come qModMaster che mostra i pacchetti.