NEWS
Word in Blockly auswerten. Helios KWL Fehler String
-
Hallo,
mein Helios Adapter gibt alle Fehlermeldungen meiner Lüftungsanlage in einem Datenpunkt als String aus. Dahinter verbirgt sich folgende 16 Bit Zuordnung:Ich möchte die einzelnen Meldungen in vis anzeigen lassen. Ich habe bereits folgendes "check_bit" Skript geschrieben:
Wenn ich den Datenpunkt auf z.B. 1001 ändere:
Dann werden laut Blockly-Log bit0 und bit1 je mit 1 beschrieben, obwohl ich 1001 in den Datenpunkt geschrieben habe.
Was mache ich falsch?
-
@wrekonize
Inhalt der Funktion check_bit_info(val, bit)?@wrekonize sagte in Word in Blockly auswerten. Helios KWL Fehler String:
Datenpunkt auf z.B. 1001
Das ist eine Zahl? Also binär 11 1110 1001?
-
@paul53 um 1001 handelt es sich um einen 4bit Binärwert. Dieser Werte würde laut der Tabelle der Lüftungsanlage folgende Meldungen bedeuten:
Fehler 1: Drehzahl Lüfter <<Zuluft>>
Fehler 4: SD-Karten FehlerDie 12 führenden Nullen werden in diesem Fall nicht in den Datenpunkt geschrieben, wenn für diese 12 Bits kein Fehler ansteht
Es könnte auch folgender Wert im Datenpunkt stehen: 10000 bedeutet z.B. Fehler 5. Also jedes Bit steht für einen einzelnen Fehler. Somit können mehrere gleichzeitig anstehen. -
@paul53 in der Funktion steht:
val >> bit; return val & 1;
-
@wrekonize sagte: in der Funktion steht:
Ändere bitte in
return val >> bit & 1;
@wrekonize sagte in Word in Blockly auswerten. Helios KWL Fehler String:
1001 handelt es sich um einen 4bit Binärwert.
Das muss dann ein String sein, denn Zahlen werden dezimal dargestellt.
-
@paul53 super so geht's. Danke!!
-
@paul53 sagte in Word in Blockly auswerten. Helios KWL Fehler String:
return val >> bit & 1;
klappt leider doch nicht so ganz....
bei 0001 wird bit 0 auf true gesetzt -->korrekt
bei 0010 werden bit 1 und bis 3 auf true gesetzt --> es dürfte nur bit 1 auf true stehen
bei 0100 wird bit 2 auf true gesetzt --> korrekt
bei 1000 wird bit 3 auf true gesetzt --> korrektbei 1111 werden bit 0 bis bit 2 auf true gesetzt, bit 3 auf false.
Ich verstehen nicht wo der Fehler sein kann.