Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
habe eine kurze Frage zur Implementierung von RS232 in LabVIEW:
Wie ist es machbar, mittels einer Event-Strucktur eine RS232-Abfrage zu implementieren, um auf eingehende Daten zu reagieren? Es wird in meiner HW in unregelmäßigen Abständen ein String gesendet, den ich ohne viel CPU-Overhead mit LAbView parsen und dann ausgeben will. Die Abfrage der seriellen Schnittstelle soll außerdem bei Programmbeendigung ordnungsgemäß geschlossen werden.
Du kannst ja mit dem Eigenschaftsknoten "Bytes at Port" herausfinden, ob an der seriellen Schnittstelle Daten anstehen und dann darauf programmatisch reagieren.
Eine Eventstruktur ist da aus meiner Sicht nicht notwendig.
Wenn Du die Visa-Session schließt, mit der die serielle Schnittstelle ausgelesen wird, dann ist diese damit wieder freigegeben.
habe mir im Forum mal ein Beispiel mit der Byte-Abfrage Instruction angesehen. Sie wurde von Admin gepostet und darin wird auf Zeichen am VISA gewartet. Solange nichts ankommt, wird im 250ms Takt gepollt, wie ich das verstanden habe. Kann man nicht mittels Event-Struktur auf die VISA-Komponente Reagieren???
Ja, VISA Advanced Palette->Wait On Visa Event. Als Event kannst du Serial Character definieren. Dann wartest deine Task solange, bis ein Zeichen eintrifft. Ich denke, es ist das was du wolltest.
Tja, wenn man früher in der FH Assembler gelernt und danach in C Mikrocontroller mit Interrupts programmiert hat, kann man nicht ohne solche Sachen leben.
Aber nicht vergessen, zuerst das Event einschalten (mit Enable) und dann darauf warten.
' schrieb:Ja, VISA Advanced Palette->Wait On Visa Event. Als Event kannst du Serial Character definieren. Dann wartest deine Task solange, bis ein Zeichen eintrifft. Ich denke, es ist das was du wolltest.
Das ist ja eine prima Lösung.
Nun habe ich eine Anwendung, bei der ich nicht weiß, wie viele Teilnehmer ich an den Coms habe - sprich, ob ich einen, zwei, drei oder X. Diese senden dann auch noch sporadisch etwas...welch Drama!
Ich frage mich, ob es möglich ist in einer Schleife auf X Teilnehmerevents zu warten - diese dann meinetwegen in eine query schieben, um sie dann nacheinander abzuarbeiten (denn die Daten können natürlich auch zeitgleich eintreffen).
Vielleicht geht es, nachdem die Anzahl der aktiven Teilnehmer "abgescannt" wurde und alle nötigen Ports geöffnet sind, ein Event zu bekommen, dass mir mitteilt, an welchem Port nun Daten abzuholen sind. Oder meint ihr, den Code von ib-berger in einer for Schleife ständig nacheinander zu durchwühlen ist gut genug?
Greez
B
31.01.2014, 18:44 (Dieser Beitrag wurde zuletzt bearbeitet: 31.01.2014 18:47 von Lucki.)
(31.01.2014 14:20 )Mr. B schrieb: Nun habe ich eine Anwendung, bei der ich nicht weiß, wie viele Teilnehmer ich an den Coms habe - sprich, ob ich einen, zwei, drei oder X.
Das kann ich Dir sagen: RS232 ist eine Punkt-zu-Punkt-Verbindung. Es gibt da zwei Teilnehmer.
Oder meinst Du RS485? Diese Schnittstelle ist busfähig, das Protokoll ist aber nicht genormt. Wenn ja, welches Protokoll wird da verwendet?
02.02.2014, 16:43 (Dieser Beitrag wurde zuletzt bearbeitet: 02.02.2014 16:44 von Mr. B.)