easy-forum
Deutsch - Software => Galileo => Thema gestartet von: drskill am Juli 07, 2023, 12:17:10 Nachmittag
-
Hallo!
Ich versuche gerade einen Float Wert, welcher über Modbus von einer easy-E4 übertragen wird, auf einem Touch-Panel anzuzeigen.
Es sollte ein Wert von 0,006 angezeigt werden, was einen 4 Byte Wert von ~ 1032013127 entspricht. Wie kann ich diesen Wert als Dezimal darstellen? Konvertiere ich die SPS-Variable als FLOAT, dann wird nur 0 angezeigt.
Danke und LG
-
Hallo drskill,
die E4 kann doch gar kein Float. Wie soll das dann gehen?
-
.... hat zwar nichts mit Galileo zu tun,
aber IEEE754 geht!
siehe hier (https://easy-forum.net/index.php?topic=8609.msg37161#msg37161) ;)
Gruß
-
Ich lese über Modbus die aktuelle Leistung (z.B. 0.1 A) von einem Stromzähler aus.
Diesen Wert möchte ich gerne auf einen XV-102 Terminal anzeigen. Das sollte ja funktionieren?
-
Ich hab es selber noch nicht probiert, aber das sollte gehen. wenn du nur den32Bit Wert weiter gibst. Dann stellt eben Galileo einfach den 32Bit Wert als float dar.
Sage Galileo das dieser Wert eine float-Variable ist.
-
Wenn ich den Datentyp auf float umstelle, sehe ich nur einen Wert von 0, eigentlich sollte aber 0,006 angezeigt werden.
-
Mit dem hier erwähnten Anwenderbaustein WNX_IEEE754toINTEGER komme ich zu folgenden Werten:
QA01: 0
QA02: -4
QA03: Eingangswert
QA04: 0
QA05: 65475404
D.h. Mantisse und Exponent ergeben ja meinen Wert von 0.065, welchen Ich auch am Stromzähler sehe.
-
Stelle mal bei der Anzeige des Wertes eine Umrechnung der Variable ein mit: MMI=PLC mit 3 Kommastellen und sieh was passiert.
Gruß Thomas
-
Danke, so hats funktioniert.