LabVIEWForum.de
Seriellen Port beim Beenden des VI sauber schließen? - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Instrument IO & VISA (/Forum-Instrument-IO-VISA)
+---- Thema: Seriellen Port beim Beenden des VI sauber schließen? (/Thread-Seriellen-Port-beim-Beenden-des-VI-sauber-schliessen)



Seriellen Port beim Beenden des VI sauber schließen? - tron - 14.12.2006 09:25

Hallo Leute,

Ich habe mal eine Frage zum Öffnen und Schließen von seriellen (VISA) Ports:

ich habe bisher in meinem Sub-VI, welches die serielle Kommunikation steuert, den Port geöffnet, reingeschrieben, ihn ausgelesen und dann geschlossen. Dieses Sub-VI wird mehrfach pro Sekunde ausgelesen. Eigentlich wäre es ja effektiver, den Port ganz zu Beginn zu initialisieren, zu öffnen und dann im Sub-VI jeweils nur zu schreiben und zu lesen. Ich habe das VI dann mal umgeschrieben.

Initialisiert & geöffnet wird die Schnittstelle in einem vorgelagerten Einstellframe. Das "Close VISA" habe ich dann an den Stop-Schalter meines Schleifenframes gekoppelt, d.h. beim Stoppen des VI wird dann auch der Port geschlossen.

Das klappt nur leider nicht ganz - das VI läuft zwar, gibt den Port aber nicht wieder frei. D.h., solange das VI noch offen ist, ist der Port gesperrt. Wenn man es schließt, den Port dann manuell (über ein kleines Portschließ-VI) ebenfalls schließt, dann erst ist der Port wieder frei.

Wie kriege ich das denn hin, daß das Beenden des VI (bzw. des Hauptschleifenframes via eines Stop-Buttons) den Port korrekt schließt?


Seriellen Port beim Beenden des VI sauber schließen? - Dennis.Moser - 14.12.2006 09:28

Hallo,

warum schliesst du den port nicht, wenn die schleife beendet wurde ?

Ref aus Loop rausführen und dort port schliessen ?

Gruß Dennis


Seriellen Port beim Beenden des VI sauber schließen? - tron - 15.12.2006 17:53

' schrieb:Ref aus Loop rausführen und dort port schliessen ?
Mmmh, also die VISA-Kommunikation findet in einem Sub-VI statt. Da könnte ich natürlich das Ref auch rausführen, aber dieses Sub-VI wird mehrfach (über eine stacked sequence) ausgeführt. Ich war halt am überlegen, ob es nicht aus Performancegründen besser sei, den Port zu Beginn zu öffnen und ganz am Ende des Programms erst zu schließen. Eben nicht nach jedem Schleifendurchlauf. Und das Abbruchkriterium der Hauptschleife ist das Drücken des Stop-Buttons. Daran habe ich eine Case-Struktur angeknüpft, die genau dann die Ports schließt. Nur das funktioniert leider nicht, die Ports bleiben offen.


Seriellen Port beim Beenden des VI sauber schließen? - MWS - 18.12.2006 16:45

' schrieb:Mmmh, also die VISA-Kommunikation findet in einem Sub-VI statt. Da könnte ich natürlich das Ref auch rausführen, aber dieses Sub-VI wird mehrfach (über eine stacked sequence) ausgeführt. Ich war halt am überlegen, ob es nicht aus Performancegründen besser sei, den Port zu Beginn zu öffnen und ganz am Ende des Programms erst zu schließen. Eben nicht nach jedem Schleifendurchlauf. Und das Abbruchkriterium der Hauptschleife ist das Drücken des Stop-Buttons. Daran habe ich eine Case-Struktur angeknüpft, die genau dann die Ports schließt. Nur das funktioniert leider nicht, die Ports bleiben offen.

Das würde ich nicht so machen, da Du dann den Port die ganze Zeit für diede Referenz reservierst!
So kannst Du mit der seriellen nichts mehr machen......!

Ich würde nach der Schleife den Port schliessen und vor der Schleife wieder öffnen!
So mache ich es jedes mal wenn ich die serielle brauche!

Cheeeerzs
MWS


Seriellen Port beim Beenden des VI sauber schließen? - tron - 18.12.2006 17:57

' schrieb:Ich würde nach der Schleife den Port schliessen und vor der Schleife wieder öffnen!
Also die Hauptschleife in eine "stacked sequence" einbauen und vorher öffnen und nachher wieder schließen? Das könnte ich mal probieren...