Hi,
das Problem hat sich für mich erledigt
Auf die Idee mit dem VISA Find Resource bin ich auch schon gekommen - das Problem dabei ist anscheinend, dass ein COM-Port solange nicht aus dem VISA verschwindet, bis er gecloset wird! Das war auch das eigentliche Problem in meinem (bisher Test-)Programm: Bei einem Kommunikationsfehler (beim Lesen/Schreiben) wurde der Port nicht geschlossen, das Programm brach einfach nur mit nem Fehler ab - das ist fatal
.. Der Port konnte dann beim erneuten Programmstart nicht initialisiert werden, weil er bereits geöffnet war.. Erst nach dem Umstöpseln (andere COM-Nummer) kann VISA den neuen Port initialisieren (weil er nicht "in use" ist) und gleichzeitig den anderen schließen, so dass er freigegeben wird - beim Zurück-stöpseln passiert dann das gleiche..
VISA Find Resource kann nur dann detektieren, dass ein COM-Port "abgezogen" wurde, wenn dieser
vorher gecloset wird. Das ist der Timing-Knackpunkt, wenn man es "live" machen will (hast du ja auch gesagt), es dauert bei mir alles zusammen etwa 66ms - viel zu langsam.
Meine Lösung ist aber noch viel einfacher: Wenn man das Gerät abzieht, soll das Programm eh eine Fehlermeldung ausspucken (und natürlich aufhören zu messen) - es reicht also, wenn man bei einem Lese-/Schreibfehler einfach den Port schließt..
Dann wird z.B. gewartet bis er wieder verfügbar ist (mit VISA Find Resource) und die Messung fortgeführt.. So muss ich nicht vor jeder einzelnen Messung checken, ob der Port tatsächlich vorhanden ist..
Merke also: Führst du VISA weiter fort, schließe vorher deinen Port