K-SYSTEM-D
Level-1
- Beiträge
- 51
- Reaktionspunkte
- 0
-> Hier kostenlos registrieren
Hallo zusammen,
ich versuch seit ein paar tagen Daten von einem Wechselrichter zu lesen, leider funktioniert meine
Umwandlung von Bytes zu Real nicht, eventuell könntet ihr mir da helfen.
Auf folgender Seite gibt es
http://michael-peeters.blogspot.de/2009/05/using-sunny-beam-under-linux-first.html
dieses Beispiel
ae 47 65 41 = E-Total (floating point 14.3 Kwh)
Irgendwie bekomm ich es nicht hin die 14.3 Kwh rauszubekommen.
hier mein Ansatz:
FUNCTION Bytes2Real : REAL
VAR_INPUT
Byte1:BYTE;
Byte2:BYTE;
Byte3:BYTE;
Byte4:BYTE;
END_VAR
VAR
pt: POINTER TO BYTE;(*Hier lag der Fehler*)
END_VAR
und der Code dazu:
pt := ADR (Bytes2Real);
pt^ := Byte1;
pt := (pt + 1);
pt^ := Byte2;
pt := (pt +1);
pt^ := Byte3;
pt := (pt +1);
pt^ := Byte4;
Ich danke euch im voraus.
Gruß
ich versuch seit ein paar tagen Daten von einem Wechselrichter zu lesen, leider funktioniert meine
Umwandlung von Bytes zu Real nicht, eventuell könntet ihr mir da helfen.
Auf folgender Seite gibt es
http://michael-peeters.blogspot.de/2009/05/using-sunny-beam-under-linux-first.html
dieses Beispiel
ae 47 65 41 = E-Total (floating point 14.3 Kwh)
Irgendwie bekomm ich es nicht hin die 14.3 Kwh rauszubekommen.
hier mein Ansatz:
FUNCTION Bytes2Real : REAL
VAR_INPUT
Byte1:BYTE;
Byte2:BYTE;
Byte3:BYTE;
Byte4:BYTE;
END_VAR
VAR
pt: POINTER TO BYTE;(*Hier lag der Fehler*)
END_VAR
und der Code dazu:
pt := ADR (Bytes2Real);
pt^ := Byte1;
pt := (pt + 1);
pt^ := Byte2;
pt := (pt +1);
pt^ := Byte3;
pt := (pt +1);
pt^ := Byte4;
Ich danke euch im voraus.
Gruß