Archiv verlassen und diese Seite im Standarddesign anzeigen : RTR umrechnen in ° Celcius
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:
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.
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
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
@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?
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
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:
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.
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
@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
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
Powered by vBulletin® Version 4.2.4 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.