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!
ist es möglich mit dem NI USB6003 kontinuierlich Messdaten abzuspeichern?
Die maximale Samplerate beträgt 100kHZ.
Beim Testen ist mir aufgefallen, dass ich die "Rate" und die "Samples to Read" unabhängig von einander einstellen kann.
Die Samples to Read sind letztlich meine Anzahl der aufgenommenen Datenpunkte. Kann ich diese beliebig erhöhen?
Ich hatte diese von 20k auf 5M erhöht --> Fehler, da noch nicht alle Samples aufgenommen worden - logisch.
Aber ist es möglich diese Samples to Read zu ignorieren und einfach so lange zu loggen, bis die Messung vorbei ist?
Ich weiß, dass es irgendwann zu Speicherproblemen kommen wird.. aber das muss doch irgendwie zu lösen sein
Die Beispiele habe ich mal ausprobiert.
Beispielsweise die VI "Current - Continious Input.vi":
Ich stelle die Sample Rate auf 10k und die Samples per Loop ebenfalls.
Ich nehme also 10k Werte pro Sekunde auf. Wenn ich nun etwas länger als eine Minute loggen lasse und 1048575 Samples überschreite, werden die darauf folgenden Werte in Excel per TDMS nicht mehr angezeigt.
Die Länge des Vektors wird jedoch mit 1810000 angegeben, weshalb ich vermuten würde, dass die Werte in der TDMS Datei eigentlich enthalten sind.
Ist dies überhaupt der richtige Weg für meine Anforderung?
Ich würde gerne Strom und Spannung mit möglichst hoher Samplerate (>1 Sa/ms) quasiparallel messen und die Daten dann wegspeichern.
1) Aufnahme der Messwerte durch "Current - Continuous Input.vi"
2) TDMS-File mit "ConvertTdmsFileToNoDaxMxRaw.vi" konvertieren
und anschließend "simpleConvertTDMS.m" den Datensatz in Matlab einlesen.
Das kann doch nicht die gängige Lösung sein, Datensätze aus Labview, die mit einem NI USB 6003 aufgenommen wurden, weiter zu verarbeiten..
04.01.2017, 16:23 (Dieser Beitrag wurde zuletzt bearbeitet: 04.01.2017 16:23 von GerdW.)
ursprünglich war ich auf der Suche nach einem Matlabscript, mit dem ich die TDMS-Datei in Matlab einlesen kann.
--> Convert TDMS to Matlab
Nachdem ich bemerkt habe, dass das TDMS-file, welches Labview erzeugt nicht direkt für dieses Script nutzbar ist hab ich in der Beschreibung zu dem Convert TDMS.vi einen Link zu dem von dir gesuchten vi gefunden.
--> ConvertTdmsFileToNoDaxMxRaw
Nachdem ich mir die Examples gestern nochmal angeschaut habe, habe ich heute versucht aus diesen ein VI zu machen, welches Strom + Spannung parallel messen soll. Dieses habe ich als .vi angehängt.
Leider tritt folgender Fehler beim Ausführen auf:
"Error -50103 occurred at DAQmx Start Task.vi:7220007"
Da kommt sich anscheinend irgendetwas in die Quere.. kann mir jemand einen Hinweis geben, wie ich das lösen könnte? Leider gibt es in den Examples keine Beispiele zu Messungen an mehreren analogen Eingängen.
"Error -50103" bedeutet, dass du auf eine schon verwendete Resource noch einmal zugreifen willst.
Was hast du denn doppelt benutzt?
Wenn ich dein VI öffne, versuchst du mit beiden DAQmx-Tasks auf dev1/ai0 zuzugreifen, was so aber nicht funktionieren wird!
Zitat:Leider gibt es in den Examples keine Beispiele zu Messungen an mehreren analogen Eingängen.
Man fügt einfach mehrere Kanäle zu einem Task hinzu: entweder über mehrfachen Aufruf von CreateVirtualChannel oder durch entsprechende Auswahl in der DAQmxChannel-Konstante…
Tschuldige,
Die Version war nicht ganz aktuell.
Ich hatte die Channel als Dev3/ai0 undDev3/ai1 angegeben.
In dieser aktuellen Version habe ich den mehrfachen Aufruf über CreateVirtualChannel und will dabei auch auf 2 verschiedene Channel zugreifen.. trotzdem bleibt das Problem.
EDIT: Ich habe das Ganze jetzt sozusagen alles in eine Reihe gepackt. Vielleicht meintest du das auch so, als du von einem mehrfachen Aufruf in einem Task sprachst.
Das Ganze wird auch ausgeführt und ich kann sowohl Strom als auch Spannung im Graphen sehen.
Wenn ich die Schleife allerdings beende kommt folgender Fehler, den ich als Bild in den Anhang gepackt habe.
EDIT2: In einigen VI's bei denen mehrere Channel angesprochen werden, habe ich gesehen, dass die Physical Channels (sofern mehrere angesprochen werden sollen) mit Dev3/ai0:1 benannt werden um so Channel 0 und 1 anzusprechen.
Das funktioniert in der Beispiel-VI "Voltage - Continuous Input" schon mal super.
Allerdings frage ich mich, wie ich diese Information in mein VI übertragen soll. Notfalls würde ich einfach beide Spannungen mit dem Example aufnehmen und den Strom über den Shunt selbst ausrechnen. Aber mich würde interessieren wie ich mein Programm anpassen könnte.