Botschaft ausfiltern

Antworten
Thommi77
Beiträge: 27
Registriert: Sonntag 11. Dezember 2016, 13:11

Botschaft ausfiltern

Beitrag von Thommi77 » Freitag 10. August 2018, 07:22

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
Dateianhänge
SuH.jpg
SuH.jpg (100.98 KiB) 5913 mal betrachtet

Müllmann
Beiträge: 64
Registriert: Sonntag 2. Februar 2014, 10:53

Re: Botschaft ausfiltern

Beitrag von Müllmann » Freitag 10. August 2018, 16:49

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.
Ich bin der Müllmann und räume nur auf.

tmm
Beiträge: 392
Registriert: Montag 23. Februar 2009, 06:38

Re: Botschaft ausfiltern

Beitrag von tmm » Samstag 11. August 2018, 07:40

Hi,

mit dem $Replace-Baustein kannst du die unerwünschten Zeichen gegen "nichts" ersetzen lassen, dann sind sie weg.

Gruß MM

Müllmann
Beiträge: 64
Registriert: Sonntag 2. Februar 2014, 10:53

Re: Botschaft ausfiltern

Beitrag von Müllmann » Samstag 11. August 2018, 09:30

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.

Thommi77
Beiträge: 27
Registriert: Sonntag 11. Dezember 2016, 13:11

Re: Botschaft ausfiltern

Beitrag von Thommi77 » Montag 13. August 2018, 15:45

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

Müllmann
Beiträge: 64
Registriert: Sonntag 2. Februar 2014, 10:53

Re: Botschaft ausfiltern

Beitrag von Müllmann » Dienstag 14. August 2018, 05:12

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.
Ich bin der Müllmann und räume nur auf.

abacom
Site Admin
Beiträge: 3917
Registriert: Dienstag 23. September 2008, 10:54
Kontaktdaten:

Re: Botschaft ausfiltern

Beitrag von abacom » Mittwoch 15. August 2018, 12:35

Protokoll des Gerätes wäre ggf. auch hilfreich. Synchronzeichen korrekt eingestellt?
ABACOM support

Thommi77
Beiträge: 27
Registriert: Sonntag 11. Dezember 2016, 13:11

Re: Botschaft ausfiltern

Beitrag von Thommi77 » Donnerstag 16. August 2018, 19:03

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:
8808a___umger0100.pdf
(1.96 MiB) 168-mal heruntergeladen
Danke und Gruß
Thommi

Thommi77
Beiträge: 27
Registriert: Sonntag 11. Dezember 2016, 13:11

Re: Botschaft ausfiltern

Beitrag von Thommi77 » Freitag 17. August 2018, 09:33

Hier noch das Programm...
Dateianhänge
Fluke 8808A V2.prj
(3 KiB) 158-mal heruntergeladen

Müllmann
Beiträge: 64
Registriert: Sonntag 2. Februar 2014, 10:53

Re: Botschaft ausfiltern

Beitrag von Müllmann » Samstag 18. August 2018, 16:29

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
Dateianhänge
Fluke 8808A V3.prj
(5.58 KiB) 180-mal heruntergeladen
Ich bin der Müllmann und räume nur auf.

Thommi77
Beiträge: 27
Registriert: Sonntag 11. Dezember 2016, 13:11

Re: Botschaft ausfiltern

Beitrag von Thommi77 » Dienstag 21. August 2018, 19:48

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

Thommi77
Beiträge: 27
Registriert: Sonntag 11. Dezember 2016, 13:11

Re: Botschaft ausfiltern

Beitrag von Thommi77 » Freitag 24. August 2018, 15:32

Hi Müllmann,

also ich muss schon sagen: Hut ab !
Das Ding hat auf Anhieb funktioniert .
Vielen Dank dafür !
Gruß
Thommi
Klasse.png
Klasse.png (40.92 KiB) 5739 mal betrachtet

Antworten

Zurück zu „Thema RS232“