Hi,
ich habe meinen ELV Ultraschall Füllstandsmesser an meinem FHZ1300 laufen.
Alle 30 Minuten bekomme ich ein 10 stelliges Telegramm geliefert (z.B. 01 01 A0 01 A5 CE AA 00 37 FF), wobei an der 9. Stelle (hier 37h = 55 dec) der Abstandswert in cm steht und die ersten 4 Byte immer gleich sind.
Ich habe einen Cutter wie folgt eingerichtet:
-> Feste Schritte, Eingabelänge 10, Sync hex 01 01 A0 01
Darüber hinaus habe ich eine Register Variable mit übergeordneter Instanz „Cutter“ eingerichtet, die folgendes Skript triggert:
$z_data = $IPS_VALUE; // Daten aus "FTDIdata"
$fuellstand = ord($z_data[9]); // Füllstand an Position 9 extrahieren
echo $fuellstand;
// ab hier $fuellstand weiter verarbeiten
SetValue(15647 /*[Wasserfall\Wasserfall_Abstand_Oberfläche]*/,$fuellstand); // Deine ID eingeben!!
$fuellstandprozent = round((54 - $fuellstand)/0.48);
setvalue (13975 /*[Wasserfall\Fuellung_Prozent]*/,$fuellstandprozent);
Das skript liest die 9. Stelle der Cut-Characters, wandelt den Wert in einen Dezimalwert um und berechnet aus dem Abstandswert mittels festem Faktor einen prozentualen Füllwert. Das ganze hat auch sehr lange funktioniert. Allerdings habe ich seit einiger Zeit folgendes Problem:
Obwohl ich im Cutter Dump das Telegramm 01 01 A0 01 A5 CE AA 00 37 FF sehe (9. Stelle also 37h = dec 55) steht nach Laufen des Skripts immer dec 255 in $fuellstand.
Welchen Fehler mache ich?
wupperi