09.06.2011, 23:24
Hiho,
ich habe ein Gerät, das über eine USB-zu-Serial Schnittstelle betrieben wird, also einen virtuellen COM-Port erzeugt. Es funktioniert an sich auch prima mit dem VISA, nur eine Kleinigkeit verwundert mich ein wenig:
Ich will mein Programm "idiotensicher" machen, also z.B. auch den Fall berücksichtigen, dass die USB-Verbindung abgezogen werden kann.. In diesem Fall verschwindet der COM-Port komplett aus dem System und das Programm bricht (natürlich) mit einem Fehler ab. Nun wenn ich den USB-Stecker wieder reinstecke (der COM-Port ist wieder da, z.B. im Gerätemanager) und das Programm wieder starte, wird der COM-Port vom VISA nicht gefunden! Das VISA bekommt es irgendwie nicht mit, dass der COM-Port wieder da ist (oder vielleicht sogar dass er weg war )..
Interessanterweise funktionierts, wenn ich ihn in einen anderen USB-Port stecke und er dadurch von Windows eine andere COM-Port Nummer bekommt. Der "neue" COM-Port wird dann tatsächlich dynamisch vom VISA erkannt und kann angesprochen werden. Danach kann ich dasselbe nochmal machen und den Stecker wieder in den ersten USB-Port stecken (ursprüngliche COM Nummer) und er wird vom VISA erkannt!
Also es funktioniert "dynamisch" nur beim umstecken, jedoch nicht beim wieder reinstecken in denselben USB-Port. Es hilft nichtmal Labview komplett neuzustarten, der Stecker muss umgesteckt werden, sonst läufts nicht mehr. Das Problem tritt nur auf, wenn im laufenden Programm der Stecker abgezogen wird (Lese-/Schreibkommandos). Wenn nicht auf den Port zugegriffen wird, kann man ihn belibig ein- und ausstecken und er wird immer erkannt...
Das Verhalten habe ich sowohl unter XP 32bit, als auch Win 7 64bit beobachtet (Labview 2010 SP1 32bit bzw. 64bit). Ist das Problem bekannt? Gibts da eine Lösung?
ich habe ein Gerät, das über eine USB-zu-Serial Schnittstelle betrieben wird, also einen virtuellen COM-Port erzeugt. Es funktioniert an sich auch prima mit dem VISA, nur eine Kleinigkeit verwundert mich ein wenig:
Ich will mein Programm "idiotensicher" machen, also z.B. auch den Fall berücksichtigen, dass die USB-Verbindung abgezogen werden kann.. In diesem Fall verschwindet der COM-Port komplett aus dem System und das Programm bricht (natürlich) mit einem Fehler ab. Nun wenn ich den USB-Stecker wieder reinstecke (der COM-Port ist wieder da, z.B. im Gerätemanager) und das Programm wieder starte, wird der COM-Port vom VISA nicht gefunden! Das VISA bekommt es irgendwie nicht mit, dass der COM-Port wieder da ist (oder vielleicht sogar dass er weg war )..
Interessanterweise funktionierts, wenn ich ihn in einen anderen USB-Port stecke und er dadurch von Windows eine andere COM-Port Nummer bekommt. Der "neue" COM-Port wird dann tatsächlich dynamisch vom VISA erkannt und kann angesprochen werden. Danach kann ich dasselbe nochmal machen und den Stecker wieder in den ersten USB-Port stecken (ursprüngliche COM Nummer) und er wird vom VISA erkannt!
Also es funktioniert "dynamisch" nur beim umstecken, jedoch nicht beim wieder reinstecken in denselben USB-Port. Es hilft nichtmal Labview komplett neuzustarten, der Stecker muss umgesteckt werden, sonst läufts nicht mehr. Das Problem tritt nur auf, wenn im laufenden Programm der Stecker abgezogen wird (Lese-/Schreibkommandos). Wenn nicht auf den Port zugegriffen wird, kann man ihn belibig ein- und ausstecken und er wird immer erkannt...
Das Verhalten habe ich sowohl unter XP 32bit, als auch Win 7 64bit beobachtet (Labview 2010 SP1 32bit bzw. 64bit). Ist das Problem bekannt? Gibts da eine Lösung?