LabVIEWForum.de
VISA Close geht teilweise nicht - 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: VISA Close geht teilweise nicht (/Thread-VISA-Close-geht-teilweise-nicht)



VISA Close geht teilweise nicht - Hughes - 05.01.2011 08:45

Hallo,

ich habe ein kleines Problem mit den VISA Kommandos. Bin noch recht frisch in LabVIEW, daher etwas Rücksicht, wenn ich mich blöde ausdrücke Lol
In einem Testaufbau habe ich drei GPIB Geräte angeschlossen, die alle über das selbe Programm angesprochen werden. Das klappt soweit auch recht gut. Allerdings habe ich ab und zu das Problem, dass Labview diesen Fehlercode rausgibt:

-1073807338 (LabVIEW 8.6)

VISA: (Hex 0xBFFF0016) The VISA driver failed to properly close the session or object reference. This might be due to an error freeing internal or OS resources, a failed network connection, or a lower level driver or OS error.

Ich habe inzwischen herrausgefunden, dass sich dieser Fehler auf den "VISA Close" Baustein von nur zwei der drei GPIB Instrumente bezieht. Alle drei Geräte werden vom Hauptprogramm über jeweils ihre eigene SubVI angesprochen. In jeder dieser VI's öffne ich erst die Season (VISA open) zur Schnittstelle und schließe (VISA Close) sie dann wieder am Ende. Nur dieses schließen am Ende scheint nicht immer zu klappen.

Vom Programm her kann es auch passieren, das zwei Geräte zur selben Zeit angesprochen werden, was in meinen Augen aber kein Problem darstellen sollte, da es ja über den GPIB Bus mit unterschiedlicher ID der Geräte geht.

So, nun das seltsame, wenn ich das Gerät, das diesen Fehler nicht zeigt, abklemme und nur die anderen beiden dran sind, habe ich überhaupt keinen Fehler.

Der Vollständigkeit halber, soll erwähnt sein, dass an diesem Testaufbau auch noch Geräte über RS232 dran sind. Diese haben aber keine Probleme (werden auch über VISA open und close angesprochen) und scheinen es auch nicht zu beeinflussen.

Jetzt meine Frage:
Ist es weiter schlimm, das die Season nicht geschlossen wird? Da ich ja später diese Gerät wieder anspreche und theretisch wieder eine neue Season öffne, müsste LabVIEW doch erkennen, dass bereits eine offen ist und diese nutzen, oder?
Zumindest funktioniert das Programm, wenn ich die Fehler ignoriere. Die Frage ist halt wie lange Wink

Oder kann mir sogar jemand einen Hinweis geben, was der Fehler sein könnte und ich kann ihn ganz aus der Welt schaffen?

Wenn ich mich unklar ausgedrückt habe, bitte einfach nachfragen.
Danke Big Grin


VISA Close geht teilweise nicht - GerdW - 05.01.2011 09:16

Hallo Hughes,

üblicherweise sollte man alle Referenzen, die man öffnet, auch wieder schließen... Sonst erhält man über kurz oder (eher) lang einen Fehler in der Art von "buffer overflow" oder "out of memory"!

LabVIEW schließt standardmäßig Referenzen, wenn ein Programm beendet wird (oder spätestens beim Schließen des letzten offenen VIs).

Bei GPIB hatte ich ab und zu Probleme mit Wackelkontakten aufgrund alter Kabel, die sich ebenfalls in VISA-Fehlermeldungen aller Art (nicht nur TimeOut) äußerten. Schon mal in diese Richtung geprüft? Dafür spricht auch deine Aussage "wenn ich das Gerät, das diesen Fehler nicht zeigt, abklemme und nur die anderen beiden dran sind, habe ich überhaupt keinen Fehler." Vielleicht stört das eine Gerät aber auch den GPI-Bus aufgrund einer nicht standardkonformen Implementierung des Protokolls (sowas hatten wir im Dezember schon mal im Forum)?


VISA Close geht teilweise nicht - Hughes - 05.01.2011 10:28

Danke schon mal für die schnelle Antwort.

Die Idee ist simpel aber irgendwie gut Wink
Ich lasse gerade eine Test laufen in dem ich eins der GPIB Kabel getauscht habe. Mal schauen was dabei raus kommt.

Noch mal prinzipel gefragt, du meintest ja das ich über kurz oder lang einen Buffer Overflow bekomme. Gehe ich dann davon aus, dass ein nicht geschlossene Season offen bliebt und eine neue geöffnet wird?

Und eine andere Frage, wenn ich LabVIEW die VISA com automatisch schließen lasse über die Optionen. Schließt LabVIEW sie dann wenn die Sub VI fertig ist oder muss die Haupt VI beendet werden? Das konnte ich irgendwie aus der Hilfe nicht rauslesen.


VISA Close geht teilweise nicht - GerdW - 05.01.2011 10:34

Hallo Hughes,

Zitat:Schließt LabVIEW sie dann wenn die Sub VI fertig ist oder muss die Haupt VI beendet werden?

Siehe mein Beitrag #2: spätestens beim Schließen des letzten offenen VIs...


VISA Close geht teilweise nicht - Hughes - 05.01.2011 15:04

Tja, in den letzten drei Stunden ist kein Fehler aufgetreten. Sonst hatte ich alle 5 bis 10 Minuten einen Fehler.
Wird wohl das Kabel gewesen sein. Big Grin

Danke für die Hife.