question

ma16552 avatar image
ma16552 asked

INFO-Lösung EM24 keine Verbindung zum Cerbo-GX

Hallo Zusammen,

ich habe eine neue Anlage in Betrieb genommen und hatte Probleme mit dem EM24 der nicht vom Cerbo-GX erkannt wurde.
Wie ich hier im Forum lesen konnte haben viele das Problem gehabt. Bei den wenigsten war ein Lösungsansatz zu lesen. Die vorhandenen habe ich mir angesehen aber keines traf auf mein System zu. Da ich es aber lösen konnte wollte ich meinen Weg hier beschreiben, falls es wiedermal jemanden gibt der das gleiche Problem hat.

Szenario:
Ein EM24 RS485 auf USB und ein Cerbox-GX.

Fehlerbild:
Der EM24 bekommt keine Verbindung zum Cerbo-GX. Beim einstecken des USB-Kabels blinkt kurz die gruene Leuchte auf und bleibt dann aus. Verkabelung ist korrekt, Gelb auf PIN 41, Orange auf PIN 42 und Schwarz auf PIN 43. Die Schalterstellung am EM24 ist auf Position 2, nicht auf Schlosssysmbol! Richtige Farben angeschlossen, kein rot und orange verwechselt!
Wenn man das Kabel am Computer anschliesst und die Software "Carlo Gavazzi UCS7" verwendet, wird der EM24 gefunden und die Daten werden angezeigt.

Lösung:
Die baut-rate ist nicht gleich eingestellt auf beiden Geräten. Der EM24 (mein EM24!) versucht mit 4800 baud die Verbindung aufzubauen wie am kurzen gruenen blincken erkennbar ist, jedoch mein Cerbo-GX (und ein zweiter zum testen) sind mit 19200 baud konfiguriert. Eine Serielle Verbindung handelt nicht die Kommunikationseinstellungen aus wie es TCP macht oder andere. Die Software UCS7 testet am ANfang ebenfalls alle Ports und Baud-Raten durch bis sie eine findet die antwortet.
Aber generell muss eine Serielle Schnittstelle fix die gleichen Werte aufweisen auf beiden Seiten, um überhaupt auf Layer 2 des OSI-Models kommunizieren zu können.
Die Lösung ist, nachzusehen welche baud-rate am Cerbo-GX eingestellt ist und diese auf den EM24 anzupassen oder umgekehrt.

Lösungsweg:
1. Superuser im Cerbo-GX aktivieren und root passwot festlegen. Nachzulesen hier: https://www.victronenergy.com/live/ccgx:root_access#enable_sshd_and_loge

2. sich mit ssh auf den Cerbo verbinden.

3. Mit dem Befehl lsusb herausfinden ob und auf welchem Device das USB-Device eingebunden ist.

root@einstein:~# lsusb
Bus 004 Device 002: ID 0403:6001 Future Technology Devices International, Ltd FT232 Serial (UART) IC
...

Wenn das Kabel und die Geräte ordnungsgemäss funktionieren steht hier das USB-Device. Am besten einmal den Befehl absetzen mit angestecktem Kabel und einmal ohne. Dann weiss man sicher welcher Eintrag das ist.

Dann mit folgendem Befehl testen welches ttyUSB gerade verwendet wird. Es ist, wenn nur ein USB Kabel angesteckt ist, immer ttyUSB0.

root@einstein:~# ls /dev/ttyUSB*
/dev/ttyUSB0


Wenn das richtige Gerät angezeigt wird muss nur noch die baud-rate herausgefunden werden. Dies geht mit folgendem Befehl:

root@einstein:~# stty -F /dev/ttyUSB0
speed 19200 baud; line = 0;
intr = <undef>; quit = <undef>; erase = <undef>; kill = <undef>; eof = <undef>; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = <undef>; stop = <undef>; susp = <undef>; rprnt = <undef>; werase = <undef>; lnext = <undef>; flush = <undef>; min = 1; time = 0;
-brkint -icrnl -imaxbel
-opost -onlcr
-isig -icanon -iexten -echo -echoe -echok -echoctl -echoke
root@einstein:~#


Hier sieht man die Baut-Rate von 19200. Wenn man die baut-rate ändern möchte einfach hinter dem letzten Befehl die gewünschte baud-rate angeben:

stty -F /dev/ttyUSB0 4800


Die Änderungen werde sofort übernommen, man braucht nicht neu starten oder ähnliches. Die Änderungen sind aber nach einem Neustart wieder weg. Entweder man stellt die baut-rate am EM24 auf den Wert vom Cerbo-GX ein, oder man schreibt sich ein start-script mit dem letzten Befehl.

Ein auch ganz wichtiger Befehl bei der Fehlersuche ist udevadm.

Mit udevadm kann man sich alle Werte des Gerätes anzeigen lassen. Hier steht auch die Bezeichnung die der EM24 schickt (ATTRS{interface}=="USB-RS485_Cable") usw.

udevadm info -a -p $(udevadm info -q path -n /dev/ttyUSB0)


Hier ein Beispiel.

root@einstein:~# udevadm info -a -p $(udevadm info -q path -n /dev/ttyUSB0)

Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

  looking at device '/devices/platform/soc/1c1c400.usb/usb4/4-1/4-1:1.0/ttyUSB0/tty/ttyUSB0':
    KERNEL=="ttyUSB0"
    SUBSYSTEM=="tty"
    DRIVER==""

  looking at parent device '/devices/platform/soc/1c1c400.usb/usb4/4-1/4-1:1.0/ttyUSB0':
    KERNELS=="ttyUSB0"
    SUBSYSTEMS=="usb-serial"
    DRIVERS=="ftdi_sio"
    ATTRS{port_number}=="0"
    ATTRS{latency_timer}=="16"

  looking at parent device '/devices/platform/soc/1c1c400.usb/usb4/4-1/4-1:1.0':
    KERNELS=="4-1:1.0"
    SUBSYSTEMS=="usb"
    DRIVERS=="ftdi_sio"
    ATTRS{interface}=="USB-RS485_Cable"
    ATTRS{bInterfaceProtocol}=="ff"
    ATTRS{bInterfaceNumber}=="00"
    ATTRS{bInterfaceSubClass}=="ff"
    ATTRS{bInterfaceClass}=="ff"
    ATTRS{bAlternateSetting}==" 0"
    ATTRS{authorized}=="1"
    ATTRS{bNumEndpoints}=="02"
    ATTRS{supports_autosuspend}=="1"

  looking at parent device '/devices/platform/soc/1c1c400.usb/usb4/4-1':
    KERNELS=="4-1"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{bDeviceClass}=="00"
    ATTRS{rx_lanes}=="1"
    ATTRS{manufacturer}=="FTDI"
    ATTRS{bmAttributes}=="a0"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{version}==" 2.00"
    ATTRS{devnum}=="2"
    ATTRS{bMaxPower}=="90mA"
    ATTRS{idProduct}=="6001"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{urbnum}=="3916990"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{maxchild}=="0"
    ATTRS{bcdDevice}=="0600"
    ATTRS{bMaxPacketSize0}=="8"
    ATTRS{idVendor}=="0403"
    ATTRS{product}=="USB-RS485_Cable"
    ATTRS{speed}=="12"
    ATTRS{removable}=="unknown"
    ATTRS{ltm_capable}=="no"
    ATTRS{serial}=="AB0NGDAM"
    ATTRS{bNumConfigurations}=="1"

...


Das hat mein Problem gelöst. Das Fehlerbild mit dem kurz grün aufleuchten am Cerbo-GX beim einstecken deutet auch genau darauf hin.

Lg Markus

cerbo gxem24
2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

0 Answers

Related Resources

Cerbo GX product page

GX family product range

Cerbo GX & GX Touch datasheet

Cerbo GX Manual

Venus root access document

Additional resources still need to be added for this topic

Energy Meter Manual EM24 RS485