Problem Cutter

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

Hallo wupperi,

ist die letzte (die 10. Datengruppe deines Telegramms) immer FF?

Ich habe folgende Vermutung für dein Problem:
in PHP wird meist mit 0 begonnen zu zählen, nicht mit 1.
Will man also die 9 Stelle einer Zeichenkette, eines Arrays oder, wie bei dir, die 9. Stelle deines Datentelegramms haben, so ist die erste Stelle =0, die zweite = 1 etc. und die neunte eben =8.
Versuche doch mal die Zeile

$fuellstand = ord($z_data[9]); 

(hier wird nämlich vermutlich die letzte Stelle des Telegramms ausgelesen, die FF ist)
in

$fuellstand = ord($z_data[8]);

zu ändern.

Wie schaut es nun aus?

Cheers,

Andreas

Altes Netzwerker Sprichwort - „Troubleshooting starts at physcial layer…“
Hardware kaputt, einer der beiden Ultraschall-Köpfe hat einen Riss, wohl vom Frost im Winter.

Bin drauf gekommen, als ich mal den mitgelieferten Display-Empfänger probiert habe, und er mir auch nur 4 Striche zeigt.

Jetzt muss ich mich nach einem anderen Funk Füllstandssystem umsehen, leider gibt es den USF 1000 S nicht mehr zu kaufen.

… Trotzdem Danke …

Sind das nicht normale US-Kapseln?

Als Sender und Empfänger getrennt gebaut?

Schau mal bei Con*** oder bei Reich***.

Ansonsten meine Empfehlung: DER SENSOR IST EIN BAUTEIL UND GEGEN UMWELTEINFLÜSSE GESCHÜTZT!!

Der Sensor, für Bastler, ist auch einzel zu erwerben.

Habe mir beim R****** mal die US40 Sender und Empfänger gekauft und eingelötet. Geht tadellos. Danke für die Info’s.

wupperi