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-Gerätetreiber mehrfach verwenden?



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!

12.01.2015, 13:24
Beitrag #1

LVuser85 Offline
Basiswissen


Beiträge: 6
Registriert seit: Jan 2015

2014
2011
DE

25337
Deutschland
VISA USB-Gerätetreiber mehrfach verwenden?
Hallo LabVIEW Forumgemeinde,
für folgende Aufgabe finde ich leider keinen Lösungsansatz und hoffe dass ihr mich dabei unterstützen könnt:

Ich möchte ein USB I/O Gerät welches unter Windows als Standardmaus (HID-Treiber) erkannt wird, ansprächen um die Inputs bzw. Outputs des USB-Geräts lesen bzw. setzen zu können.

Mit den in LabVIEW bereits vorhandenen VIs (Steuerung von Eingabegeräten), kann ich nicht alle Inputs abfragen und Outputs setzen funktioniert ja sowieso nicht. Daraufhin habe ich mit NI-VISA Driver Wizard ein Treiber erzeugt, damit funktioniert das jetzt soweit ganz gut.

Jedoch habe ich sehr viele von diesen identischen (abgesehen von der S/N) USB-Geräten, bei den ich die Funktion testen möchte. Mit dem bereits erzeugten VISA-Treiber, werden die anderen Geräte nicht erkannt, was für mich auch einigermaßen verständlich ist, da der VISA-Ressourcenname, wegen der Seriennummer anders ist.
Mit dem Fertigen Programm möchte ich nur kurz die I/O-Funktionen der Geräte testen, dafür ständig neue VISA-Treiber anzulegen wäre viel zu zeitrauben.

Nach langem recherchieren fällt mir aber auch keine Alternative zu VISA ein, also wenn ihr Vorschläge für mein Problem habt, wäre ich sehr dankbar.

Im USB-Gerät verbauter Mikrocontroller: PIC18F4550 (PID, VID usw. habe ich)
Inputs am Mikrocontroller = Taster
Outputs am Mikrocontroller = LEDs
Meine LV Version = 2014

Viele Grüße
LVuser85
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
12.01.2015, 15:10 (Dieser Beitrag wurde zuletzt bearbeitet: 12.01.2015 15:10 von dali4u.)
Beitrag #2

dali4u Offline
LVF-Stammgast
***


Beiträge: 298
Registriert seit: Aug 2008

12SP1, 14SP1
2007
DE


Deutschland
RE: VISA USB-Gerätetreiber mehrfach verwenden?
1.
Jedes USB Device wird eindeutig über die PID und VID erkannt.
Wenn Du mehrere Geräte hast, die den gleichen Treiber nutzen, kannst Du
die erzeugte INI ändern und die anderen PID und VID Kombinationen
hinzufügen.

2. Das die VISA-Ressourcenname unterschielich sind ist auch gut so. Aber Du
kannst auch nach Ressourcennamen suchen die dann in ein 1D Array geschrieben
werden.

3. Deine Angaben sind, zumindestens für mich, etwas schwammig. Es ist nicht 100%ig klar
was Du genau willst und vor allem bei was für "Geräten"?

Gruß
Stefan
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.01.2015, 08:14
Beitrag #3

LVuser85 Offline
Basiswissen


Beiträge: 6
Registriert seit: Jan 2015

2014
2011
DE

25337
Deutschland
RE: VISA USB-Gerätetreiber mehrfach verwenden?
Hallo Stefan,
vielen Dank schon mal für deine Unterstützung.

Zu 1. Mit dem VISA Driver Wizard erzeuge ich eine inf-Datei, die ich anschließend installiere. Dann wird das Gerät auch in MAX erkannt, damit war das Thema für mich erledigt.
Aber ich weiß nicht von einer INI-Datei, beim „USB-basierten Geräten mit VISA“ Tutorium wird die auch nicht erwähnt. Kannst du bitte mir mehr Informationen dazu geben.

Zu 3. Es ist ein Bedienelement mit beleuchteten Tasten und ich möchte im Grunde „nur“ Testen ob die drei Taster (Controller-Eingang) und die drei LEDs (Controller-Ausgang) funktionieren.

Gruß
LVuser85
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.01.2015, 09:59
Beitrag #4

dali4u Offline
LVF-Stammgast
***


Beiträge: 298
Registriert seit: Aug 2008

12SP1, 14SP1
2007
DE


Deutschland
RE: VISA USB-Gerätetreiber mehrfach verwenden?
(13.01.2015 08:14 )LVuser85 schrieb:  Zu 1. Mit dem VISA Driver Wizard erzeuge ich eine inf-Datei, die ich anschließend installiere. Dann wird das Gerät auch in MAX erkannt, damit war das Thema für mich erledigt.
Aber ich weiß nicht von einer INI-Datei, beim „USB-basierten Geräten mit VISA“ Tutorium wird die auch nicht erwähnt. Kannst du bitte mir mehr Informationen dazu geben.

Ups, INF natürlich und nicht INI (habe bei der gestrigen Antwort gerade an einer INI Datei in LabVIEW gearbeitet).

Aber ist nicht klar warum Du einen USB Treiber mehrfach verwenden willst? Du schließt doch
ein Bedienelement an das Du testen willst, oder nicht. Ich erkenne Dein Problem immer noch
nicht.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.01.2015, 10:51
Beitrag #5

LVuser85 Offline
Basiswissen


Beiträge: 6
Registriert seit: Jan 2015

2014
2011
DE

25337
Deutschland
RE: VISA USB-Gerätetreiber mehrfach verwenden?
Das Problem ist, dass ich rund 200 Teile habe, aber ich will nicht 200-mal eine neue inf-Datei erzeugen da die Teile eh alle gleich sind (außer S/N).

Ich habe für ein Bedienelement (S/N:1) eine inf Datei angelegt, das Teil kann ich auch mit LV testen.
Wenn ich aber ein identisches Bedienelement mit S/N:2 anschließe (auf demselben Port), wird es als Standartmaus erkannt und in MAX wird es auch nicht angezeigt.

Gibt es die Möglichkeit, die inf-Datei soweit zu verändern, dass alle Geräte mit der gleichen VID und PID den bereits angelegten Treiber verwenden?

Mein VI wäre von der Idee her wie auf dem angehängten Bild vereinfacht dargestellt.


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.01.2015, 10:53
Beitrag #6

dali4u Offline
LVF-Stammgast
***


Beiträge: 298
Registriert seit: Aug 2008

12SP1, 14SP1
2007
DE


Deutschland
RE: VISA USB-Gerätetreiber mehrfach verwenden?
(13.01.2015 10:51 )LVuser85 schrieb:  Gibt es die Möglichkeit, die inf-Datei soweit zu verändern, dass alle Geräte mit der gleichen VID und PID den bereits angelegten Treiber verwenden?

Ja, aber ohne die INF gehts nicht. Poste die hier bitte mal.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
13.01.2015, 12:06
Beitrag #7

LVuser85 Offline
Basiswissen


Beiträge: 6
Registriert seit: Jan 2015

2014
2011
DE

25337
Deutschland
RE: VISA USB-Gerätetreiber mehrfach verwenden?
So, hab die Datei als .txt angehängt.


Angehängte Datei(en)
0.0 .txt  SCW1_vista&7.txt (Größe: 3,5 KB / Downloads: 339)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.01.2015, 12:56
Beitrag #8

dali4u Offline
LVF-Stammgast
***


Beiträge: 298
Registriert seit: Aug 2008

12SP1, 14SP1
2007
DE


Deutschland
RE: VISA USB-Gerätetreiber mehrfach verwenden?
Die INF ist soweit OK und sollte auch für mehrere Geräte funktionieren, sofern die Kombination
aus für PID und VID stimmt (USB\VID_04D8&PID_FA23). Ein feste SN ist nicht eingetragen (hätte mich
auch stark gewundert) und wird nun durch den USB Stack im Gerät bestimmt und liegt damit
nicht mehr in Deiner Hand (außer Du programmierst die Geräte auch selber).
In jedem USB Stack kann die VID, PID und eine Seriennummer eingetragen werden. Wenn
bei der Seriennummer etwas eingetragen ist, findest Du das unteranderem in der Registry.

HKLM\SYSTEM\CurrentControlSet\Enum\USB

Hier ist eine Auflistung aller bisher am System angeschlossener USB Geräte. Hier solltest Du
auch ein Eintrag der Form "VID_04D8&PID_FA23" finden. Wenn Du den öffnest findest Du
weitere Untereinträge.

1)
Wenn diese die Form einer Seriennummer haben, z.B.
"000000000000"
"TUSB3410_____"
"123987129387"
etc., ist im USB Stack Deiner Geräte eine Seriennummer eingetragen. Wenn die von Geräte
zu Gerät jetzt verschieden ist, sollte es keine Probleme geben und Du kannst sogar gleichzeitig
mehrere Geräte anschließen.

2)
Wenn Du jetzt mal 2 Geräte hintereinander angeschlossen und wieder abgezogen hast, und
nur ein Eintrag auftaucht, z.B. "00000000000" oder ähnliches, haben alle Geräte die gleiche
Seriennummer im USB Stack eingetragen. Dann kannst Du nur EIN Gerät zur Zeit anschließen,
weil Windows sonst nicht mehr unterscheiden kann mit welchem es kommunizieren soll.

3)
Wenn die Einträge folgende Form haben (Zahlen und Buchstaben ändern sich, aber Syntax muss stimmen):
"6&174c607c&0&3"
"6&23938f4b&0&4"
In dem Fall ist im USB Stack Deiner Geräte bei der Seriennummern ein s.g. NULLSTRING enthalten und
Windows vergibt ein zufällige Seriennummer um mehrere Geräte gleichzeig anschließen zu können.


Fragen:
1. Hast Du schonmal zwei Geräte gleichzeitig bzw. nacheinander angeschlossen? Fehlermeldung?

Stefan
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.01.2015, 14:48
Beitrag #9

LVuser85 Offline
Basiswissen


Beiträge: 6
Registriert seit: Jan 2015

2014
2011
DE

25337
Deutschland
RE: VISA USB-Gerätetreiber mehrfach verwenden?
Ja, ich hab die schonmal nacheinander angeschlossen.
Das eine Gerät (mit dem ich die inf Datei erstellt habe) wird gefunden und das Schreiben ins Gerät funktioniert.
Wenn ich ein neues Gerät anschließe und das VI ausführe, wird kein Gerät gefunden und ich bekomme folgende Fehlermeldung:

Fehler -1073807343 bei VISA: Ressource suchen in LEDs setzen.vi
Mögliche Ursachen:
VISA: (Hex 0xBFFF0011) Unzulängliche Information zum Speicherort, oder das Gerät bzw. die Ressource ist nicht im System vorhanden.


Das erste Gerät greift auf die winusb.sys Treiber zu und das andere (welches nicht gefunden wird) auf mouclass.sys und mouhid.sys

Die Bedienelemente werden nach S/N in dem VID Ordner angelegt (siehe „RegistBild“).

Gruß


Angehängte Datei(en) Thumbnail(s)
       
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.01.2015, 11:03
Beitrag #10

LVuser85 Offline
Basiswissen


Beiträge: 6
Registriert seit: Jan 2015

2014
2011
DE

25337
Deutschland
RE: VISA USB-Gerätetreiber mehrfach verwenden?
Ich erzeuge die Inf-Datei mit VISA Driver Version 4.1
Es ist egal ob ich die Datei „manuell“ oder „automatisch“ erzeuge, der Inhalt der Inf-Datei ist immer gleich.
In MAX wird aber trotzdem nur das „automatisch“ erzeugte Gerät erkannt.

Demnach passiert viel mehr im Hintergrund als nur Erzeugung einer INF Datei, oder?

Manuell= Gerät trennen und VID & PID eingeben
Automatisch = Gerät verbinden und aus der Liste auswählen

Viele Grüße
LVuser85
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Mehrfach Vergleich auf Gleichheit MicroScoop 7 6.224 13.08.2019 14:21
Letzter Beitrag: MicroScoop
  Haupt-VI zu mehrfach gleichzeitig ausführbaren Sub-VI machen mez15 5 4.725 14.02.2017 08:32
Letzter Beitrag: GerdW
  Kommunikation bei mehrfach ausgeführten SubVis (Melder) I3erry 3 3.972 24.06.2015 13:01
Letzter Beitrag: GerdW
  Hintergrundfarbe Frontpanel mehrfach ändern alan 6 5.440 25.02.2015 10:44
Letzter Beitrag: jg
  Frage zu Message Queues, Queue Cluster mehrfach aufschlüsseln dali4u 8 8.065 11.12.2014 09:07
Letzter Beitrag: Lucki
  State mehrfach im Queue ehrnst 3 4.250 29.09.2014 11:30
Letzter Beitrag: Flemmy

Gehe zu: