Seite 1 von 1

[V4.0 IP7] FLOAT führt zu nan (= Not a Number)

Verfasst: Sa Feb 17, 2024 5:37 pm
von michael8
Hallo Zusammen

Ich lege gerade ein Modbus-Profil (Fronius TS 65-A Smart Meter) nach den Spezifikationen an. So weit funktioniert es wunderbar. Jetzt habe ich aber ein paar Register, die nicht ganz so wollen wie ich. :-)

Vorweg die Spezifikation von Fronius:
Bild

Wie es bei mir im TWS aussieht:
Bild

Ich gebe die Register-Nr aus der Fronius Spezifikation an, wenn nicht anders vermerkt.

40130 > Hier erhalte ich einen realistischen Wert.
40132 / 40134 / 40136 > Mit Unit float32 bzw. float erhaltet ich "nan" (Screenshot TWS > 40131). Wenn ich jedoch auf UNIT umstelle, erhalte ich einen Wert (Screenshot TWS > 40133). Das gleiche habe ich auch bei den weiteren Registern. >>> Wieso? Mach ich was falsch oder ist die Spezifikation falsch?

Bild

Bild

Spannend finde ich noch, dass einige Register (in grau) nicht supportet werden aber einen Wert liefern.

Vielen Dank und lieber Gruss :bow-yellow:
Michael

Re: [4.0 IP7] FLOAT führt zu nan

Verfasst: Sa Feb 17, 2024 5:55 pm
von StefanW
Hi Michael,

womöglich braucht es eine Byte-Vertauschung wegen Little-Endian vs. Big Endian. Das sollte in der Doku stehen, ansonsten einfach unter "Reihenfolge" ausprobieren.

lg

Stefan

Re: [4.0 IP7] FLOAT führt zu nan (= Not a Number)

Verfasst: Sa Feb 17, 2024 6:02 pm
von starwarsfan
Hallo Michael
michael8 hat geschrieben: Sa Feb 17, 2024 5:37 pm 40132 / 40134 / 40136 > Mit Unit float32 bzw. float erhaltet ich "nan" (Screenshot TWS > 40131). Wenn ich jedoch auf UNIT umstelle, erhalte ich einen Wert (Screenshot TWS > 40133). Das gleiche habe ich auch bei den weiteren Registern. >>> Wieso? Mach ich was falsch oder ist die Spezifikation falsch?
Nein, machst Du nicht. Der angezeigte Wert ist quasi der "Überlauf" und damit das Pendant zum NAN bei Float. Der Max-Wert eines INT32 ist 2,147,483,647, also 2.14^9. Ist also einfach eine andere Darstellung und sagt genausowenig aus.

Genauer gesagt wäre auch noch Signed vs. Unsigned relevant denn Unsigned geht von 0 bis 2³²-1 = 4·1024³-1 und Signed von -2³¹ bis +2³¹-1.

Hatte das beim SMA-Profil auch bei einigen Werten. Wenn dort kein Wert geliefert wird, bekommt man ein NAN zurück. Das musst Du im Profil entsprechend handhaben.

Re: [V4.0 IP7] FLOAT führt zu nan (= Not a Number)

Verfasst: Mo Feb 19, 2024 11:31 am
von michael8
@StefanW Danke für den Tipp. In der Doku habe ich nichts gefunden. Aber jetzt sieht es schon mal anders aus:

Bild

Bild

Bild

Nur der Wert macht für mich noch kein Sinn. In der Doku steht für 40133 und 40153 zwar "This data-point is supported/not-supported depending on the grid connection." Aber dann müsste 40131 = 40129 sein oder 40131 + 40133 + 40135 = 40131 Oder wie seht ihr das?

@starwarsfan Danke, jetzt wird so einiges klar! Jetzt ist die Macht auch mit mir :dance:

Re: [V4.0 IP7] FLOAT führt zu nan (= Not a Number)

Verfasst: Mo Feb 19, 2024 11:57 am
von StefanW
Hi Michael,

das mit der Byte-Reihenfolge war nur ein Gedanke, den man grundsätzlich in der Doku überprüfen sollte, hier aber falsch war.

Ich habe mir den Hex-Code angesehen und das empfangene 1x7FC00000 steht für "Quiet NaN" ("propagates through almost every arithmetic operation without signalling an exception")
A quiet NaN (NANQ) is represented by any bit pattern
between 7FC00000 and 7FFFFFFF or between FFC00000 and FFFFFFFF
==> Bedeutet: Das fremde Modbus Gerät stellt in seinem Register einen HEX-Wert zur Verfügung, mit dem es mitteilt, dass es keine Zahl zur Verfügung stellt. Das "warum" sollte sich aus der Doku ergeben bzw. sollte der Hersteller benennen können.

Kurz: Die Einrichtung der Abfrage für das Register im Timberwolf Server ist richtig eingestellt von Dir. Das Gerät gibt "NaN" aus, der Grund ist dort zu suchen.

lg

Stefan

Re: [V4.0 IP7] FLOAT führt zu nan (= Not a Number)

Verfasst: Mo Feb 19, 2024 4:16 pm
von michael8
Danke @StefanW . Ich habe mal beim Hersteller angefragt :-)

Re: [V4.0 IP7] FLOAT führt zu nan (= Not a Number)

Verfasst: Mo Feb 26, 2024 9:29 pm
von michael8
Update: Die Antwort vom Hersteller:
ich habe gerade von unserem Experten erfahren das hier unsere Dokumentation falsch ist. Die Werte die Sie abfragen erhält der Wechselrichter nicht vom SmartMeter.
Also ist diese Abfrage nicht möglich.
Wir haben eine Änderung der Dokumentation schon eingeleitet.
Mal schauen wenn ein Update kommt...