Tijdens de configuratie van een DDS6619-energiemeter voor een warmtepompboiler werd de volledige Modbus RTU-communicatie gecontroleerd en geoptimaliseerd. Het doel was een stabiele uitlezing via een Raspberry Pi en Node-RED.
Gebruikte configuratie
Modbus Read
- Unit ID: 1
- Function Code: FC4 (Read Input Registers)
- Startadres: 0
- Aantal registers: 8
- Polling: 10 seconden
Modbus Client
- Seriële adapter: CH340 USB-RS485
- Poort:
/dev/serial/by-id/usb-1a86_USB_Serial-if00-port0 - Baudrate: 9600
- Timeout: 2000 ms
- Reconnect timeout: 5000 ms
Queue-instellingen
- Queue commands: Aan
- Queue delay: 100 ms
- Parallel queues: Uit
class="wp-block-heading">Belangrijke vaststelling
In plaats van rechtstreeks /dev/ttyUSB0 of /dev/ttyUSB1 te gebruiken, is gekozen voor het vaste Linux-device:
Plain Text
1
/dev/serial/by-id/usb-1a86_USB_Serial-if00-port0Show more lines
Hierdoor blijft de configuratie werken, zelfs wanneer Linux na een herstart de USB-nummers wijzigt.
Resultaat
Na het inschakelen van de Modbus-client en het verhogen van de polling naar 10 seconden werkte de DDS6619 stabiel:
- Geen “waiting…” meldingen meer
- Geen “reconnecting after 2000 msec” fouten
- Stabiele Modbus-communicatie
- Correcte uitlezing van de energiemeter via Node-RED
Conclusie
Voor een DDS6619 op een Raspberry Pi met Node-RED blijkt een configuratie van 9600 baud, FC4-registeruitlezing, 10 seconden polling en een queue delay van 100 ms een betrouwbare basis te vormen. Door gebruik te maken van het vaste /dev/serial/by-id/ pad wordt bovendien vermeden dat USB-poorten na een reboot voor communicatieproblemen zorgen.
Meer technische handleidingen en praktijkvoorbeelden:
https://www.itprobleem.be
