INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

VISA USB-Serial "Plug&Play"?



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

09.06.2011, 23:24 (Dieser Beitrag wurde zuletzt bearbeitet: 10.06.2011 19:10 von Novgorod.)
Beitrag #1

Novgorod Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 65
Registriert seit: Oct 2008

2016
2006
EN

0
Sonstige
Question VISA USB-Serial "Plug&Play"?
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 Wink)..
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! Blink

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?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
13.06.2011, 14:07
Beitrag #2

rasta Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 245
Registriert seit: Oct 2006

LabVIEW 2009-2017
2006
EN

53909
Deutschland
RE: VISA USB-Serial "Plug&Play"?
Hi Novgorod,
interessantes Verhalten.
Bekannt ist mir das Problem nicht, Lösung somit leider auch nicht.
Als Workaround vielleicht:
Bevor auf die Schnittstelle lesend/schreibend zugregriffen wird mittels .net (WMI-Query - http://www.labviewforum.de/Thread-Name-v...#pid101388 Seba hatte hier mal Beispiele gepostet)
prüfen ob der USB-Port verfügbar ist und dementsprechend handeln.
Interessant für Dich sind bestimmt: Win32_SerialPort, Win32_SerialPortConfiguration, Win32_SerialPortSetting, Win32_USBController
Win32_USBControllerDevice

Gruß
Ralf
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.06.2011, 16:11 (Dieser Beitrag wurde zuletzt bearbeitet: 13.06.2011 16:13 von Novgorod.)
Beitrag #3

Novgorod Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 65
Registriert seit: Oct 2008

2016
2006
EN

0
Sonstige
RE: VISA USB-Serial "Plug&Play"?
Danke für den Tipp, das WMI klingt zumindest recht elegant.. Kleine Frage am Rande: Muss man bei sowas auf einem XP bzw. Win7 Rechner neben der Labview Runtime auch das .NET framework (1/2/3/4?) installiert haben (aus dem vi soll eine exe gemacht werden, die mit der kostenlosen Runtime auf jedem Rechner laufen sollte)?

Das einzige Problem, was ich da evtl. sehe, ist die Performance. Das Gerät macht ca. 300 Messungen pro Sekunde - mangels internem Cache (ist ein sehr simpler A/D-Wandler) sind das auch 300 COM-Port Zugriffe pro Sekunde (senden und empfangen). Ich weiß nicht wie schnell so eine WMI-Abfrage läuft, das query-Beispielprogramm braucht schon ne Weile (fragt aber auch viel mehr ab als ich für den Betrieb brauche)..

Naja, ich werde es auf jeden Fall ausprobieren Wink
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.06.2011, 19:04
Beitrag #4

rasta Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 245
Registriert seit: Oct 2006

LabVIEW 2009-2017
2006
EN

53909
Deutschland
RE: VISA USB-Serial "Plug&Play"?
Das .Net Framework wird meines Wissens bei der Windows-Installation mit installiert.
Aber 300* pro Sekunde ist schon mal eine Hausnummer.
Ich befürchte das die .net WMI Zugriffe nicht schnell genug sind.
Als Alternative im Anhang meine ersten Gehversuche mit der neuen System-Config -Palette. Lv10
Ich habe mal für das Beispiel auf VISA limitiert.
Wichtig - Filter vor die While-Schleife.
Ergebnis: Sollte schnell genug sein aber ob die Ports auch verschwinden kann ich hier und jetzt nicht testen.

Gruß
Ralf


Angehängte Datei(en) Thumbnail(s)
   

2010 .vi  System-Config-Visa.vi (Größe: 21,37 KB / Downloads: 251)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.06.2011, 03:53 (Dieser Beitrag wurde zuletzt bearbeitet: 17.06.2011 03:55 von Novgorod.)
Beitrag #5

Novgorod Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 65
Registriert seit: Oct 2008

2016
2006
EN

0
Sonstige
RE: VISA USB-Serial "Plug&Play"?
Danke für den Tipp, leider sehe ich da 2 Probleme:

1. Das sind wohl Funktionen vom MAX, die diesen voraussetzen. Zum einen weiß ich nicht, ob das auch bei Stand-alone Anwendungen (Labview Runtime) funktioniert, zum anderen muss die Hardware im MAX erstmal initialisiert werden, damit sie über die Find-Funktion gefunden werden kann! Wenn man noch nie die Hardware-Suche direkt im MAX gestartet hat, findet das Find.vi garnix...

2. Hinzukommende oder verschwindende Ports werden so natürlich nicht entdeckt Big Grin
Die Find.vi fragt offenbar nur die im MAX registrierte Hardware ab, aber das Registrieren selbst passiert ja nicht permanent "automatisch" im Hintergrund. Die Abfrage ist dadurch zwar super schnell, aber sie sucht nicht nach veränderter Hardware - sie fragt nur eine Datenbank an registrierter Hardware ab...

Naja, ich versuch mein Glück weiter mit dem VISA oder mit .NET...
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.06.2011, 08:25
Beitrag #6

rasta Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 245
Registriert seit: Oct 2006

LabVIEW 2009-2017
2006
EN

53909
Deutschland
RE: VISA USB-Serial "Plug&Play"?
Hallo,
die Probleme kann ich leider bestätigen.Erst wenn im MAX ein "aktualisieren" ausgelöst wird erfolgt ein VISA-Ressourcen-Update
mit diesen Vi´s.
Einen hab ich aber noch.Big Grin
GerdW hat hier "http://www.labviewforum.de/Thread-VISA-Find-Resource-braucht-8-Sekunden?page=2" ein schönes Snippet gepostet für die Ressourcenerkennung.
Problem hier ist das VISA-Close ~100ms benötigt.
Workaround: Du lässt dieses Vi im Init (bzw. Event bei COM-Port Wechsel) ausführen, dann bekommst du alle vorhandenen Ports,
jetzt benötigst Du die VisaResource z.B. für COM1 - ASRL1::INSTR.
Wenn Du jetzt in der Datenerfassung vor dem Schnittstellenzugriff ein VISA Find Resource einfügst und am Eingang "expression ("?*")" die ASRL1::INSTR anklemmst,
bekommst Du am "return count" eine 0 oder 1.

Gruß
Ralf
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
17.06.2011, 16:40
Beitrag #7

Novgorod Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 65
Registriert seit: Oct 2008

2016
2006
EN

0
Sonstige
RE: VISA USB-Serial "Plug&Play"?
Hi,

das Problem hat sich für mich erledigt Top1
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 Big Grin.. 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.. Smile 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 Wink
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
Tongue Agilent Plug-In 's aktualisiert. Muß neue .exe erstellt werden? kwz 0 1.777 18.11.2021 15:40
Letzter Beitrag: kwz
  Serial Port mit Continuous Serial Read Write Hoang Nguyen 2 6.866 15.04.2016 10:35
Letzter Beitrag: Hoang Nguyen
  Serial Read von Arduino in Chart darstellen lars1500 28 18.961 12.01.2015 19:29
Letzter Beitrag: lars1500
  VISA: (Hex 0xBFFF0015) bei VISA read und im VISA Test Panel rick 3 13.137 10.11.2013 12:16
Letzter Beitrag: Y-P
  Serial auslesen wenn COM-Port verfügbar lrt65492 7 11.018 20.05.2012 19:07
Letzter Beitrag: GerdW
  Serial VISA Session name vergeben? yasukatakaya 0 3.270 17.04.2012 09:59
Letzter Beitrag: yasukatakaya

Gehe zu: