LabVIEWForum.de
Auslesen von Messdaten über USB - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Instrument IO & VISA (/Forum-Instrument-IO-VISA)
+---- Thema: Auslesen von Messdaten über USB (/Thread-Auslesen-von-Messdaten-ueber-USB)

Seiten: 1 2


Auslesen von Messdaten über USB - Y-P - 26.09.2008 18:31

Als aller erstes möchte ich Dir das "Du" anbieten, weil sich hier jeder duzt, ausser Du (Sie?) willst es nicht.

Ich bin davon ausgegangen, dass ein Gerät über SCPI-Befehle angesteuert wird und da enden Lesebefehle mit "?".

1.) Ja, das verstehst Du richtig.
2.) Gekoppelt heißt als "Paket", also ein String, der alle Befehle mit Trennzeichen enthält.
Ich schicke sie immer einzeln, d.h. ich schicke z.B. einen "einzelnen" Befehl zum Einstellen, dann den nächsten Befehl zum Einstellen, dann einen Befehl zum Auslesen,..... also ein String pro Befehl.

Was bei einem µC sonst noch zu Problemen führt, kann ich leider nicht sagen.

Eine Frage, die mich interessiert. Wie hast Du den USB-Zugriff auf Deinen µC im MAX geschafft? Mit der Anleitung von NI zur Erstellung eines USB-Treibers? Und was meinst Du mit Endpunkte und Adressen vom Lesen und Schreiben? Ich kann mir darunter nichts vorstellen.


Gruß Markus


' schrieb:Hi!

Weis zwar grad' nicht ob es einen Unterschied macht, aber ich schicke Daten zu einem Controller. Auf dem Controller, habe ich die Desrkriptoren und Schreibe & Lesefunktionen herkömmlich in C programmiert. Von LV weis der µC nix. Ich bekomme alles im MAX wiedergegeben, also die Endpunkte & die Adressen vom Lesen bzw. scheiben & den Status und das alles. Ohne Probleme. Auch wärhend des Programmablaufs.
Also schicke ich zum µC mit viWrite & empfange mit viRead. Soweit die Theorie.

1.) Jetzt verstehe ich ihr "?" gerade nicht. Also schicken sie Daten mit einem '?' an das zu beschreibende Gerät & Read liest die ankommenden daraus resultierenden Daten??? Verstehe ich das richtig?

2.) Mit gekoppelt meinen sie direkt hintereinander ausgeführt ???
Ich habe sie in ein Ereignis geschrieben, das auf 'Knopfdruck' die VI's anspricht. Naja, ansprechen soll.



Auslesen von Messdaten über USB - bizkwie - 29.09.2008 15:39

' schrieb:Als aller erstes möchte ich Dir das "Du" anbieten, weil sich hier jeder duzt, ausser Du (Sie?) willst es nicht.

Ich bin davon ausgegangen, dass ein Gerät über SCPI-Befehle angesteuert wird und da enden Lesebefehle mit "?".

1.) Ja, das verstehst Du richtig.
2.) Gekoppelt heißt als "Paket", also ein String, der alle Befehle mit Trennzeichen enthält.
Ich schicke sie immer einzeln, d.h. ich schicke z.B. einen "einzelnen" Befehl zum Einstellen, dann den nächsten Befehl zum Einstellen, dann einen Befehl zum Auslesen,..... also ein String pro Befehl.

Was bei einem µC sonst noch zu Problemen führt, kann ich leider nicht sagen.

Eine Frage, die mich interessiert. Wie hast Du den USB-Zugriff auf Deinen µC im MAX geschafft? Mit der Anleitung von NI zur Erstellung eines USB-Treibers? Und was meinst Du mit Endpunkte und Adressen vom Lesen und Schreiben? Ich kann mir darunter nichts vorstellen.
Gruß Markus


Hi!!

Klar, Du ist besser .... Big Grin

Wie ich den Zugriff auf den µC geschafft habe??

Erst mal den VISA-Treiber zur RAW-Klasse erstellt. Dann sieht man schon im MAX, das was da ist. Besser gesagt sein sollte, weil am anfang wollte der auch net so ganz. Hat man das geschafft, gehts daran dein µC so zu konfigurieren, das LV auch weis wie die Übertragung stattfinden soll!

Deswegen ein kleiner, vereinfachter USB-Crashkurs zum besseren Verständnis und Nachvollziehbarkeit:

Man hat verschiedene Übertragungswege für USB. Interrupt, Bulk, Control & Isochron Transfer.
Von denen hat jeder 'ne spezielle aufgabe & daseinsberechtigung. Ich verwende mit meinem Controller Interrupt-Transfer nach der HID. Die HID (Human Interface Device) wird für Mäuse, Tastaturen und so zeugs verwendet. Sie bestimmt wie der Transfer ablaufen soll. Dazu werden in verschiedenen Deskriptoren Einstellungen vorgenommen, die besagen wie der Transfer abläuft, die Schnittstelle konfiguriert ist & wie der Datenstrom aufgebaut ist.
Diese müssen alle richtig eingestellt sein, damit sich was tut.

USB-Schnittstellen an sich, haben 15 Endpunkte. Der Endpunkt bestimmt entweder, welches Gerät angesteuert wird (falls mehrere angesschlossen sind) bzw. liest die ankommenden/ausgehenden Signale ein/aus. Im Endeffekt ist der Endpunkt 'ne Adresse wohin der Datenfluss in der USB-Schnittstelle geschrieben wird.
Die HID unterstützt aber nur EINEN Endpunkt. Das bedeutet das in dem Endpunkt eine Fallunterscheidung gemacht wird, und eine Adresse (meist 0x01 für OUT bzw. 0x81 für IN ) bestimmt, wo man sich die Daten abholen kann!

Man KANN auch zwei Endpunkte machen & in einem dann auslesen & in dem anderen schreiben. Das muss man dann halt in den Deskriptoren alles berücksichtigen & die dann auch richtig einstellen, das das dann funktioniert. Dann ist man allerdings nicht mehr HID Konform und braucht nen anderen Übertragungstyp bzw. kann die HID nicht mehr verwenden.

Die HID ist ne tolle Sache und kann eigentlich für die meisten/alle Steuerungssachen verwendet werden & sollte für Regeltechnische & Ansteuerungssachen mit USB das Ding schlecht hin sein.

Tipps & Hilfe für USB:
USB 2.0 von Jan Axelson im mitp-Verlag (wirklich super Buch)
HID 1.1 auf der usb.org
usbTrace (Programm zum capturen/identifizieren der USB Schnittstelle )



Hoffe, es nachvollziehbar beschrieben zu haben ....

gruuß biz


RE: Auslesen von Messdaten über USB - Rammenstein - 04.04.2011 14:37

Hallo,
ich versuche gerade ein Netzteil (Chroma 62100H 40-250) über die USB Schnittstelle mit der Software LabView 2010 zu verbinden, sodass ein Datenaustausch erfolgen kann.
Gibt es schon ein Funktionsfähiges Programm womit man Daten schreiben und lesen kann?
Das Beispiel vom Tutorium zu USB-basierten Geräten mit NI-VISA funktioniert leider nicht. Ich bekomme als die Fehlermeldung zur Zeitüberschreitung. Das Netzteil wird im MAX richtig angezeigt. Könnte es daran liegen, dass ich nicht genau die Anzahl der Bytes im Eingangspuffer angegeben habe?
Vielen Dank im Voraus!


RE: Auslesen von Messdaten über USB - GerdW - 04.04.2011 14:51

Hallo Rammenstein,

wird die USB-Verbindung als (virtueller) COM-Port eingebunden? Kannst du die Beispiele zum "Basic Serial Read and Write" benutzen?


RE: Auslesen von Messdaten über USB - Rammenstein - 05.04.2011 07:14

Hallo,
vielen Dank für die schnelle Antwort. Ich benutze keinen virtuellen COM Port.
Direkte USB-Anbindung.
Die Beispielprogramme hatte ich bereits ohne erfolg verwendet.


RE: Auslesen von Messdaten über USB - Lucki - 05.04.2011 10:02

Wenn ich mal ganz allgemein meine USB - Erfahrungen einbringen darf:
Ich habe schon mehrere Geräte mit USB-Anschluß - darunter auch einen selbstgestrickten Mikroprozessor - mit Labview-Programmen zum Kommunizieren gebracht - und zwar ohne daß ich die geringsten Kenntnisse über USB habe.
Es ist außerhalb meine Vorstellungskraft, daß ein kommerzielles Gerät mit USB-Schnittstelle ohne Treiber-Software daherkommt. Der Treiber nimmt einem die Arbeit auf der niederen Ebene der USB-Schnittstellen-programmierung doch vollkommen ab. Entweder wird ein Virtueller COMPort eingerichtet, oder aber es wird eine DDL-Installiert. In beiden Fällen hat man dann bei der Programmierung nicht mehr mit USB direkt zu tun.
Und wenn man ein Gerät mit µC selbst entwickelt, dann integriert man doch dort einen USB-Chip, z.B von FTDI. Zu dem gehören Treiber, und zwar mehrere. Man kann wieder wählen, ob man auf dem PC einen Virtuellen COM-Port haben will, oder eine DLL. Es ist das nichts anderes, als was die kommerziellen Geräteherstelle in ihren Innereien auch als Hardware benutzen.
So ein Buch über USB durchzuarbeiten - danke trotzdem für den Hinweis - kommt doch nur für jemanden in Frage, der sich trotzig zum Ziel gesetzt hat, auf seiner µC-Platine statt 15 Euro für den USB-Chip lieber 200 Ingenieurstunden für die Entwicklung der USB-Schnittstelle aufzuwenden