PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : RTR umrechnen in ° Celcius



Filo
02.11.05, 14:22
Hallo Forum

Wenn ich bei einem RTR die IST Temp auslese kriege ich z.B. einen Wert von 18FA. Umrechnen in eine dezimale Zahl ist nicht das Problem, aber wie in der Welt kriege ich ne vernünftige °Celcius her, hat jemand ne Formel :confused:

Lutz_KS
02.11.05, 14:30
Normalerweise macht das doch das Anzeigegerät, wenn hier der richtige Datentyp eingestellt wurde, also z.B. EIS5 (2byte) wird im Display die Gradzahl angezeigt.

Habe das gleiche Problem nur, wenn ich auf Fremdsystemen darstellen möchte die kein EIS5 können.

Ich nutze eine Touchpanel-Oberfläche von Crestron, hier habe ich ein Modul welches aus den 2byte eine "lesbare" Zahl macht und diese dann auch umrechnet.
Sollte es sich hier auch um einen solchen Spezialfall handeln, könnte ich die Formel raussuchen.

Filo
02.11.05, 15:55
Des wär nett, weil ich habe keine Visu (Ja, solche Leute gibt es auch :D ).

Dieter Koch
02.11.05, 16:13
Hallo Forum

Wenn ich bei einem RTR die IST Temp auslese kriege ich z.B. einen Wert von 18FA. Umrechnen in eine dezimale Zahl ist nicht das Problem, aber wie in der Welt kriege ich ne vernünftige °Celcius her, hat jemand ne Formel :confused:


Mit der ETS3.0C sollte das eigentlich gehen. Ansonsten mal den WIndowsrechner nutzen. Der hilft auch schon weiter

John
02.11.05, 21:42
Hi Filo,

EIS5 sind floating point Daten. Kann mich nicht entsinnen, das EIB die Zahl in Mantisse & Exponent aufteilt.

18FA sollten somit IMHO 24.25 °C sein. Sicher bin ich mir aber nicht!

Umrechnung erfolgt Byteweise, 1. Byte = Vorkommazahl, 2. Byte = Nachkommazahl.

Probiere doch einfach mal aus!

gruß john

Filo
02.11.05, 22:00
@Dieter

Umrechnen kann ich schon, nur sind 18FA Dezimal = 6394 und wäre eine Grillhitze, da wären alle Würste und ich schwarz :eek:

@John
Kann ich mir kaum vorstellen, da ich die RTR auf abwesend habe, was wiederum ca. 19 ° Grad bedeutet und rein Gefühlsmässig, habe ich nicht 24.25°.

Wenn ich die Specs lese, heisst da was von 1 Bit = Vorzahl, Bit 2-5 = Exponent, Bit 6 -16 als Basis. Das ergibt aber bei mir die horrende Zahl von 62500.
Irgendwie fehlt mir hier das Komma......
Hat jemand ne Formel?

Kaucher
02.11.05, 22:34
Hi Filo,

Mantisse und Exponent passt schon !

hab hier:

http://www.eib-forum.de/apboard/thread.php3?id=2258&BoardID=8

mal meine AWL-Version der Umrechnung für 'ne S7 gepostet, vielleicht hilft's ja was. Ansonsten müsst ich die Formel in was lesbares umpfriemeln :D

Gruß Jörg

Filo
02.11.05, 22:45
Hallo Jörg

Wäre um etwas Hilfe beim umfibeln froh, hab es nicht so mit der S7 Sprache...

Was ich nicht so begriffen habe, ist das mit dem Exponent und Basis. Welches Bit ist nun was und irgendwie muss ich ja noch die Kommazahl hinkriegen....:confused:

John
03.11.05, 00:10
Hi Filo,

man lernt nie aus.
Die Umrechnung EIS5_2_real sollte so funktionieren:
18FA entspricht binär 0001 1000 1111 1010


Das höchstwertige Bit (linkes Bit und nicht Bit 1) entspricht dem Vorzeichen -> hier 0 somit positiv<O:p></O:p>

Bit 14-11 (hier 0011) ist der Exponent somit 3 dezimal
Bleiben noch Bit 10 bis 0 (hier 000 1111 1010) somit 250 dezimal für die Basis

Der Realwert errechnet sich Basis*0.01*2^Exponent<O:p</O:p

In deinem Fall 250*0.01*8 =20°C<O:p</O:p

Gruß john

Bist mit deinen 19°C ganz gut gelegen!

PS: Wenn Bedarf besteht, könnte ich das in C proggen.

???
03.11.05, 02:00
Adaptiert aus Calimero / TU Wien


public float getASDUasFloat(short[] pdu){
boolean sign;
int mantisse=0;
byte exponent=0;
float ret=0;
if (pdu.length==2) {
if ((pdu[0] & 0x0080) == 0x0080 )
sign=false; //negative
else
sign=true; //positive

exponent=(byte)((pdu[0] & 0x0078)>>3);
mantisse=(((pdu[0])& 0x0007)<<8) | ((pdu[1]) & 0x00FF);
ret=0;

if (sign) {
ret=new Double((mantisse)*0.01*Math.pow(2,exponent)).float Value();
}
else {
ret=new Double((((~(mantisse | 0xFF80)))-1)*0.01*Math.pow(2,mantisse)).floatValue();
}
}
return ret;
}


Viel Erfolg

Roland

P.S.
Wie kriegt man mit dieser Forumssoftware eine anständige Formatierung hin?

Klaus Gütter
03.11.05, 07:40
Einen Online-Umrechner gibt's z.B. bei TAPKO: www.tapko.de/tapko_main/de/tools/eib_converter.shtml (http://www.tapko.de/tapko_main/de/tools/eib_converter.shtml)

Gruß, Klaus Gütter

Filo
03.11.05, 07:57
@John


:D :D Vielen Dank, die 0.01 machen den kleinen feinen Unterschied :D

Virtuel einen Kaffee geschickt (Für Bier ist's zu früh)....:)

@alle
Auch hier Besten Dank für die Hinweise

FabianB
19.06.06, 10:28
Ich nutze eine Touchpanel-Oberfläche von Crestron, hier habe ich ein Modul welches aus den 2byte eine "lesbare" Zahl macht und diese dann auch umrechnet.
Sollte es sich hier auch um einen solchen Spezialfall handeln, könnte ich die Formel raussuchen.
Hi, welches Modul benutzt du denn da? Ich bin selber gerade am suchen nach einer Lösung zur Umrechnung von 2 byte in Temperatur mit Crestron.

Danke
Fabian