LabVIEWForum.de - VISA timeout

LabVIEWForum.de

Normale Version: VISA timeout
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,
ich hab mal wieder eine Frage. ich möchte in meinem Programm am Anfang alles initialisieren, also zB öffne ich meine Visa-Sitzung. Dann kommen noch ein paar berechnungen, und je nach Fall (Taste angeklickt oder nicht) soll dann etwas gelesen bzw geschrieben werden. Nun meldet mir das Programm immer den Fehler -1073807339. Heisst so viel wie timeout, in der Hilfe steht dazu nicht viel. Wenn man das in ein kleines Programm packt und das Visa-öffnen und Visa-schreiben in 2 schleifen trennt, dann funktioniert das wunderbar. Manchmal funktioniert das große Programm auch, wenn man das timeout (über den property node) auf 10s setzt (was aber nacher für der Programm quatsch ist).
Wozu ist dieser Timeout? Zwischen welchen funktionen braucht das VISA diesen Timeout?
Und dann gibts da ja noch nen 2. Timeout. (Das Visa-open-timeout). Was macht der?
Ich freue mich über jede art von hilfe!!
Danke
Hallo,

der Timeout gibt die maximale Zeit an, die VISA (bzw. die VISA-Treiber) nach gesendeteter Anfrage auf eine Antwort eines angeschlossenen Messgeraetes wartet. Sollte das Messgeraet in der angegebenen Zeit keine Daten an VISA zurueck senden, kommt eine Fehlermeldung.

Das Problem bei der Automatisierung und Steuerung von Messgeraeten ist, dass LabVIEW die Daten bzw. Reaktion eines Messgeraetes braucht, um das Programm weiterauzufuehren. LabVIEW muss sozusagen solange auf das Messgeraet warten, bis es mit seiner Arbeit "fertig" ist.

Normalerweise sind Timeouts kein grosses Problem. Nach meiner Erfahrung bereiten v.a. alte Geraete oder auch solche mit serieller Schnittstelle grosse Probleme und brauchen recht lange, bis sie Befehle und Daten uebertragen haben. Ein laengerer Timeout kann da Wunder bewirken.

In deinem Beispiel scheint das Messgeraet auch nicht schnell genug fuer dein LabVIEW-Programm zu sein. Deswegen macht es durchaus Sinn, einen laengeren Timout festzulegen.

Viele Gruesse,
Mirko
Hi,
Danke schön. Das komische ist ja nur, dass es bei einem "kleinen" Programm funktioniert. Nur bei meinem Großen Programm eben nicht. Aber so wie du das beschrieben hast muss es ja wurscht sein, was hinten in dem Programm steht, wenn es sowieso erst wartet, bis es eine Antwort vom Gerät bekommt.. Ist das was du beschrieben hast der VISA-Open timeout?
und was ist dann der Timeout, den ich über den property node einstellen kann??

Gruß,
tante
Hallo,

der Timeout, den ich beschrieben habe, ist der VISA Timeout. Es gibt einen Standardtimeout (sehr kurz) fuer VISA und den kannst du mit einem Propertynode veraendern und anpassen.

Warum es bei deinem grossen Programm nicht funktioniert, laesst sich schwer sagen. Wahrscheinlich fuehrt dein Geraet mehr Befehle aus oder du einiges anders programmiert. Am Besten probierst du verschiedene Timeout-Werte aus und optimierst so dein Programm.

Viele Gruesse,
Mirko
Referenz-URLs