Hallo zusammen!
Folgendes Szenario:
Am RS232 hängt ein Teilnehmer. Dieser sendet irgendwann (also ich weiß wirklich nie, wann) ein Zeichenpaket. Also muß man am Port horchen.
Aber wie bekommt man das hin, ohne z.B. Timeouts zu bekommen?
Erster Versuch:
Timeoutzeit auf NaN.
Klappt.
Aber wenn READ auf Zeichen wartet, kann ich mein Programm nicht mehr beenden.
Also: klappt doch nicht.
Zweiter Versuch:
Timeout auf 0.
State Machine Lesen - beenden abfragen - lesen - beenden abfragen - lesen - ....
Also: irgendwie blöd und ich habe keinerlei Timeoutkontrolle mehr.
Gint es vielleicht etwas, dass mir sagt (EVENT oder sowas) "Schnittstelle hat Daten emfangen, sie stehen zur Abholung bereit"?
Gruß und Dank!
Ja, es gibt einen Event namens "Serial Character", siehe Bild.
Gruss
Erstmal Dank!
Das sieht gut aus.
Da ich sowas noch nicht gemacht habe (Events) dauert dann meine Umsetzung, aber ich zeige sie dafür dann auch allen.
Gruß!
Bei diesem Event musst du aber auch einen Timeout eingeben. Setze ihn z.B. auf 1 Sekunde und mach eine Whileschleife drum.
Gruss
Was mache ich falsch?
Ich habe erst eine Warnung die ab dem "Auf Ereignis warten" zum Fehler wird.
Warnung:
Warnung 1073676290 ist bei VISA: Ereignis aktivieren in Com1 Test.vi aufgetreten
Fehler:
Fehler -1073807339 ist bei VISA: Auf Ereignis warten in Com1 Test.vi aufgetreten
Gruß und Dank
Dieser Fehler sagt, dass die Zeit(Timeout) abgelaufen ist, aber das Ereignis noch nicht aufgetreten wurde, die kannnst du einfach ignorieren.
Übrigens, eine Sekunde = 1000 ms
Gruss
Ignorieren?
Mal blöde gefragt - macht man sowas?
Wenn ich im "Highlight" - Modus den Signalfluss verfolge, geht die eingestellte Zeit beim "Ereignis warten" überhaupt nicht ein.
Will sagen: das Ereignis-VI wartet die Sekunden (5s) nicht ab, sondern läuft direkt durch und nur die Timeout Zeit des READ läuft ab.
Das sollte doch nicht so sein - oder?
Komisch.
Jetzt habe ich mal übertriebene 5000000ms eigegeben. Nach dem dritten Durchlauf hat dann das "Ereignis" VI tatsächlich angefangen zu warten.
Dann habe ich den Prozess abgeschossen.
Jetzt gehen auch 200ms als Timeout. Also bin ich im Prinzip zufrieden und dankbar.
Vielen Dank Eugen.
Anbei das funktionierende VI.
Kannst Du Dir einen Reim auf das komische Verhalten machen?
Habe leider nur LV 7.1 und kann die Datei nicht öffnen. Kann mir die jemand mal bitte in LV 7.1 Format bringen und schicken?
Meine Email: chgoldmann@gmx.de
Vielen Dank
' schrieb:Ignorieren?
Mal blöde gefragt - macht man sowas?
Wenn ich im "Highlight" - Modus den Signalfluss verfolge, geht die eingestellte Zeit beim "Ereignis warten" überhaupt nicht ein.
Will sagen: das Ereignis-VI wartet die Sekunden (5s) nicht ab, sondern läuft direkt durch und nur die Timeout Zeit des READ läuft ab.
Das sollte doch nicht so sein - oder?
Komisch.
Jetzt habe ich mal übertriebene 5000000ms eigegeben. Nach dem dritten Durchlauf hat dann das "Ereignis" VI tatsächlich angefangen zu warten.
Dann habe ich den Prozess abgeschossen.
Jetzt gehen auch 200ms als Timeout. Also bin ich im Prinzip zufrieden und dankbar.
Vielen Dank Eugen.
Anbei das funktionierende VI.
Kannst Du Dir einen Reim auf das komische Verhalten machen?