Botschaft ausfiltern
Botschaft ausfiltern
Hallo zusammen,
ich habe ein Problem und irgendwie komm ich nicht weiter.
Ich habe ein Fluke 8808A per RS232 angeschlossen und kann sauber damit kommunizieren.
Ich sende den String MEAS? und bekomme die Antwort mit dem Messwert und danach noch eine Antwort mit dem Inhalt "=>". Damit sagt mir das Fluke das alles io ist. Aber wie kann ich diesen String ignorieren ? Mit S&H hab ich es versucht aber bekomme es nicht hin. Ziel ist es das ich zyklisch anfrage und der Messwert gehalten wird solange diese Antwort mit "=>" kommt, Danach kommt ja wieder ein aktueller Messwert und der "alte" soll überschrieben werden usw.
Ich hoffe ihr könnt folgen.
Danke und Gruß
Thommi
ich habe ein Problem und irgendwie komm ich nicht weiter.
Ich habe ein Fluke 8808A per RS232 angeschlossen und kann sauber damit kommunizieren.
Ich sende den String MEAS? und bekomme die Antwort mit dem Messwert und danach noch eine Antwort mit dem Inhalt "=>". Damit sagt mir das Fluke das alles io ist. Aber wie kann ich diesen String ignorieren ? Mit S&H hab ich es versucht aber bekomme es nicht hin. Ziel ist es das ich zyklisch anfrage und der Messwert gehalten wird solange diese Antwort mit "=>" kommt, Danach kommt ja wieder ein aktueller Messwert und der "alte" soll überschrieben werden usw.
Ich hoffe ihr könnt folgen.
Danke und Gruß
Thommi
- Dateianhänge
-
- SuH.jpg (100.98 KiB) 6260 mal betrachtet
Re: Botschaft ausfiltern
Probier es mal mit der Funktion $Delete unter Strings, Hilfe ist online dabei.
Das sollte zumindest gehen, wenn die Anzahl vor den Steuerzeichen immer gleich lang ist.
Falls nicht aber am Ende immer die 2 Zeichen stehen, kann man mit der Funktion $Length die Länge
herausfinden und dann mit $Delete den passenden Teil auswählen.
Das sollte zumindest gehen, wenn die Anzahl vor den Steuerzeichen immer gleich lang ist.
Falls nicht aber am Ende immer die 2 Zeichen stehen, kann man mit der Funktion $Length die Länge
herausfinden und dann mit $Delete den passenden Teil auswählen.
Ich bin der Müllmann und räume nur auf.
Re: Botschaft ausfiltern
Hi,
mit dem $Replace-Baustein kannst du die unerwünschten Zeichen gegen "nichts" ersetzen lassen, dann sind sie weg.
Gruß MM
mit dem $Replace-Baustein kannst du die unerwünschten Zeichen gegen "nichts" ersetzen lassen, dann sind sie weg.
Gruß MM
Re: Botschaft ausfiltern
Das kommt davon, wenn man sich von oben bis unten durch die Funktionen arbeitet und an der ersten möglichen Stelle stehen bleibt. Schon übersieht man die einfachste Möglichkeit mit $Replace.
Ich bin der Müllmann und räume nur auf.
Re: Botschaft ausfiltern
Hallo,
und Danke für die Antworten. Ich habe es jetzt mal versucht. Leider kommt es dann zum empfangen einer 0.
Also der MW wird angezeigt danach folgt eine 0 (wahrscheinlich als Platzhalter für den gelöschten String) dann kommt wieder der Messwert usw.
Ich möchte jedoch das der Messwert solange stehenbleibt, der String "=>" ignoriert wird und der stehengebliebene MW wieder überschrieben wird usw. Also die typische Sample and Hold Anwendung die aber hier irgendwie versagt...
Gruß
Thommi
und Danke für die Antworten. Ich habe es jetzt mal versucht. Leider kommt es dann zum empfangen einer 0.
Also der MW wird angezeigt danach folgt eine 0 (wahrscheinlich als Platzhalter für den gelöschten String) dann kommt wieder der Messwert usw.
Ich möchte jedoch das der Messwert solange stehenbleibt, der String "=>" ignoriert wird und der stehengebliebene MW wieder überschrieben wird usw. Also die typische Sample and Hold Anwendung die aber hier irgendwie versagt...
Gruß
Thommi
Re: Botschaft ausfiltern
Hallo Thommi77,
was ich an deiner zyklischen Abfrage nicht verstehe, du führst den Taktgeber G1 und die BSY-Meldung auf den CK-Eingang, warum ?
Setze doch mal versuchsweise nur einen Taster an den CK-Eingang und probier aus, ob jedes Mal eine brauchbare Meldung kommt.
Für eine zyklische Abfrage würde allein der Taktgeber ausreichen, der sollte nur nicht zu schnell sein.
Im Übrigen könnte man dir leichter helfen, wenn du das Programm hier hochlädst.
was ich an deiner zyklischen Abfrage nicht verstehe, du führst den Taktgeber G1 und die BSY-Meldung auf den CK-Eingang, warum ?
Setze doch mal versuchsweise nur einen Taster an den CK-Eingang und probier aus, ob jedes Mal eine brauchbare Meldung kommt.
Für eine zyklische Abfrage würde allein der Taktgeber ausreichen, der sollte nur nicht zu schnell sein.
Im Übrigen könnte man dir leichter helfen, wenn du das Programm hier hochlädst.
Ich bin der Müllmann und räume nur auf.
Re: Botschaft ausfiltern
Protokoll des Gerätes wäre ggf. auch hilfreich. Synchronzeichen korrekt eingestellt?
ABACOM support
Re: Botschaft ausfiltern
Hallo zusammen,
den Taktgeber habe ich nur als Anstoß drin. Normalerweise macht es ein Taster oder auch ein Power on Reset. Dann ist das Ding ein Selbstläufer und fragt immer neu an wenn er die Antwort komplett empfangen hat.
An sich ist das Abfragen des Fluke 8808A kein Ding. Es funktioniert wie gewünscht. Auch die Synchronzeichen sind korrekt und auch die üblichen Verdächtigen nämlich CR LF.
Ich sende :
MEAS? CR LF
und als Antwort kommt:
0,12358 CR LF
=> CR LF
Diese blöde "=>" soll bedeuten das das Messgerät alles verstanden hat und wieder bereit ist.
Bei einem Fehler würde es "=?" senden.
Ich habe testweise als Synchronzeichen für den Messwert das => einfach mit als Synchronzeichen deklariert, also als Synchronzeichen CR LF => CR LF eingetragen und siehe da ich kann mit voller Rate die Messwerte ohne Unterbrechung einwandfrei empfangen. Allerdings funktioniert das nur solange wie das Messgerät => (alles in Ordnung!) sendet. Bei einem Fehler (=?) würde die Übertragung stehenbleiben weil die Synchronzeichenkette ausbleibt.
Hier ist das Protokoll des 8808A:
Danke und Gruß
Thommi
den Taktgeber habe ich nur als Anstoß drin. Normalerweise macht es ein Taster oder auch ein Power on Reset. Dann ist das Ding ein Selbstläufer und fragt immer neu an wenn er die Antwort komplett empfangen hat.
An sich ist das Abfragen des Fluke 8808A kein Ding. Es funktioniert wie gewünscht. Auch die Synchronzeichen sind korrekt und auch die üblichen Verdächtigen nämlich CR LF.
Ich sende :
MEAS? CR LF
und als Antwort kommt:
0,12358 CR LF
=> CR LF
Diese blöde "=>" soll bedeuten das das Messgerät alles verstanden hat und wieder bereit ist.
Bei einem Fehler würde es "=?" senden.
Ich habe testweise als Synchronzeichen für den Messwert das => einfach mit als Synchronzeichen deklariert, also als Synchronzeichen CR LF => CR LF eingetragen und siehe da ich kann mit voller Rate die Messwerte ohne Unterbrechung einwandfrei empfangen. Allerdings funktioniert das nur solange wie das Messgerät => (alles in Ordnung!) sendet. Bei einem Fehler (=?) würde die Übertragung stehenbleiben weil die Synchronzeichenkette ausbleibt.
Hier ist das Protokoll des 8808A:
Danke und Gruß
Thommi
Re: Botschaft ausfiltern
Hier noch das Programm...
- Dateianhänge
-
- Fluke 8808A V2.prj
- (3 KiB) 169-mal heruntergeladen
Re: Botschaft ausfiltern
Hallo Thommi,
habe dein Testprogramm mal etwas erweitert, kann es aber nicht ausprobieren.
Es ist der Versuch, die beiden Strings (Messwert und Status) nacheinander zu lesen.
Das funktioniert natürlich nur, wenn im Zyklus immer zweimal CR LF gesendet wird,
also "Messwert" CR LF und z.B "=>" CR LF
Das Programm ließe sich auch erweitern, indem schon beim Request geprüft wird,
ob "?>" oder "!>" zurück kommt. In dem Fall sollte man den darauffolgenden
COM Stringempfang unterbinden.
Viel Spaß beim Probieren, Scorp
habe dein Testprogramm mal etwas erweitert, kann es aber nicht ausprobieren.
Es ist der Versuch, die beiden Strings (Messwert und Status) nacheinander zu lesen.
Das funktioniert natürlich nur, wenn im Zyklus immer zweimal CR LF gesendet wird,
also "Messwert" CR LF und z.B "=>" CR LF
Das Programm ließe sich auch erweitern, indem schon beim Request geprüft wird,
ob "?>" oder "!>" zurück kommt. In dem Fall sollte man den darauffolgenden
COM Stringempfang unterbinden.
Viel Spaß beim Probieren, Scorp
- Dateianhänge
-
- Fluke 8808A V3.prj
- (5.58 KiB) 196-mal heruntergeladen
Ich bin der Müllmann und räume nur auf.
Re: Botschaft ausfiltern
Hallo Müllmann,
also erstmal recht herzlichen Dank für deine Mühe und den Lösungsansatz.
Das mit der zweiten COM Abfrage -> da wäre ich nie drauf gekommen. Ich dachte immer man kann nur einen COM Baustein pro Programm verwenden weil die sich sonst gegenseitig beeinflussen.
Ich kann es leider erst Donnerstag probieren. Ich melde mich sobald ich Ergebnisse habe !
Vielen Dank nochmal und schönen Gruß
Thommi
also erstmal recht herzlichen Dank für deine Mühe und den Lösungsansatz.
Das mit der zweiten COM Abfrage -> da wäre ich nie drauf gekommen. Ich dachte immer man kann nur einen COM Baustein pro Programm verwenden weil die sich sonst gegenseitig beeinflussen.
Ich kann es leider erst Donnerstag probieren. Ich melde mich sobald ich Ergebnisse habe !
Vielen Dank nochmal und schönen Gruß
Thommi
Re: Botschaft ausfiltern
Hi Müllmann,
also ich muss schon sagen: Hut ab !
Das Ding hat auf Anhieb funktioniert .
Vielen Dank dafür !
Gruß
Thommi
also ich muss schon sagen: Hut ab !
Das Ding hat auf Anhieb funktioniert .
Vielen Dank dafür !
Gruß
Thommi