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 

Mehrere Signale via DAQ einlesen, darstellen und speichern



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!

02.12.2009, 15:57
Beitrag #1

Viewer2000 Offline
LVF-Grünschnabel
*


Beiträge: 14
Registriert seit: Dec 2009

8.5
-
de

73563
Deutschland
Mehrere Signale via DAQ einlesen, darstellen und speichern
Hallo LabVIEW-Freunde,

ich bin noch recht neu in der Materie und hänge derzeit beim programmieren fest...Wink

Ich möchte über das "NI USB-6216" mehrere Temperaturen und einen Widerstand über die Zeit messen. Dazu versuchte ich bisher mit dem "DAQ-Assistenten" die Signale einzulesen und mit "Signale auswählen" zu separieren.
Über einen "Channel Delay" innerhalb einer While Struktur soll daraufhin eine Abtastrate ermöglicht werden (machbar?!?), um anschließend mit "Signalverlaufserzeugung_mit_Einheit.vi" den Werten der Name, der Zeitpunkt und die Einheit anzuhängen. Nach "Signale zusammenfassen" soll dann die "Messwerte in Datei schreiben" möglich sein.

Hat mir jemand einen Tipp, oder ne bessere Lösung zu meinem Problem.
Besten dank im Voraus !! Rolleyes
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
02.12.2009, 16:21
Beitrag #2

dimitri84 Offline
Astronaut
*****


Beiträge: 1.496
Registriert seit: Aug 2009

2020 Developer Suite
2009
DE_EN

53562
Deutschland
Mehrere Signale via DAQ einlesen, darstellen und speichern
' schrieb:Über einen "Channel Delay" innerhalb einer While Struktur soll daraufhin eine Abtastrate ermöglicht werden (machbar?!?)
Die Abtastrate stellst du bei der Abtastrate ein. Die befindet sich in den Timing-Einstellungen unten rechts und heißt Rate (Hz).

Zitat:,um anschließend mit "Signalverlaufserzeugung_mit_Einheit.vi" den Werten der Name, der Zeitpunkt und die Einheit anzuhängen.
Diese Informationen hast du deinem DAQ-Assistenten doch schon gegeben beim konfigurieren.

Zitat:Nach "Signale zusammenfassen" soll dann die "Messwerte in Datei schreiben" möglich sein.
... wieso nicht ...

Überleg' dir nochmal, ob du die Signale wirklich aufdröseln und dann wieder bündeln musst. Kannste glaub' ich einfach zusammen lassen.


Wenn du auch öfter mal was mit LabVIEW und DAQmx machen willst, solltest du dir vielleicht direkt die ganzen Express VIs sparen und es zu Fuß lernen. Ist nicht viel schwerer.



Gruß dimitri

„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.12.2009, 16:25
Beitrag #3

Viewer2000 Offline
LVF-Grünschnabel
*


Beiträge: 14
Registriert seit: Dec 2009

8.5
-
de

73563
Deutschland
Mehrere Signale via DAQ einlesen, darstellen und speichern
hey, vielen Dank für Deine flinke Antwort

aber die DAQ Assistent-interne Abtastregelung der Messpunkte bereitet mir noch Schwierigkeiten: ich möchte eine Abtastung von einem Hertz und weniger erreichen. Dabei erscheint der Fehler: "Es wurden einige oder alle der angeforderten Abtastwerte noch nicht erfasst."
(bei hohen Frequenzen wie 1k bestanden keine Probleme)

Ein heraufsetzen des time out Wertes war erfolglos. Mein Verdacht, dass Sample-Anzahl, Rate und timeout aufeinander abgestimmt sein müssen hat sich leider nicht erhärtet.

Hat hier jemand ne Idee?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.12.2009, 10:57
Beitrag #4

dimitri84 Offline
Astronaut
*****


Beiträge: 1.496
Registriert seit: Aug 2009

2020 Developer Suite
2009
DE_EN

53562
Deutschland
Mehrere Signale via DAQ einlesen, darstellen und speichern
Versuch' dann mal den Modus '1 Sample (HW-getaktet)'. Dann kannst du auch Abtastraten kleiner 1 Hz angeben ohne die besagte Fehlermeldung. (Hoffe ich doch.)

Gruß dimitri

„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.12.2009, 11:19
Beitrag #5

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.689
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Mehrere Signale via DAQ einlesen, darstellen und speichern
' schrieb:"Es wurden einige oder alle der angeforderten Abtastwerte noch nicht erfasst."
Das ist aber kein Problem - sondern nur ein Hinweis. Du hast schlicht und einfach zu schnell nachgefragt, ob ein neuer Wert anliegt. Und da nur mit 1Hz abgetastet wird, war halt kein neuer da.

Fazit: Entweder eine Schleife rum machen und erst dann beenden, wenn dieser Hinweis nicht mehr erscheint, oder einfach erst dann einen Wert abholen, wenn was im Puffer ist. Guckst du Puffer-Propertys einer Task.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.12.2009, 12:28
Beitrag #6

dimitri84 Offline
Astronaut
*****


Beiträge: 1.496
Registriert seit: Aug 2009

2020 Developer Suite
2009
DE_EN

53562
Deutschland
Mehrere Signale via DAQ einlesen, darstellen und speichern
Ja ist denn der von mir vorgeschlagene Modus nicht prädestiniert für solche Abtastraten? Da wird erst gar nicht mehr gepuffert ... man muss sich keine Gedanken darüber machen und alles funktioniert (jedenfalls der kurze Versuch von mir).

' schrieb:Fazit: Entweder eine Schleife rum machen und erst dann beenden, wenn dieser Hinweis nicht mehr erscheint,
Wie macht man denn sowas konkret? Fehlercluster abfragen?

Zitat:oder einfach erst dann einen Wert abholen, wenn was im Puffer ist. Guckst du Puffer-Propertys einer Task.
Und wie macht man das? Und wo finde ich besagte Puffer-Probertys? Und was soll man dann dort einstellen? Meinst du den Eigenschaftsknoten DAQmx - Puffer? Aber da kann man doch nur die Mindestgröße des Puffer angeben, was sollte das ändern?

„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.12.2009, 13:43
Beitrag #7

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.689
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Mehrere Signale via DAQ einlesen, darstellen und speichern
' schrieb:Ja ist denn der von mir vorgeschlagene Modus nicht prädestiniert für solche Abtastraten? Da wird erst gar nicht mehr gepuffert ... man muss sich keine Gedanken darüber machen und alles funktioniert (jedenfalls der kurze Versuch von mir).
"1 Sample (HW-getaktet)" ist in diesem Falle an sich geeignet. Aufgrund des nicht vorhandenen Puffers muss alles die übergeordnete Software (While-Schleifen-Dauer!) machen. Da hier nur 1Hz gemacht wird, schafft die das allemal.
Voraussetzung ist aber (davon gehe ich mal aus, mit diesem Mode arbeite ich nicht) folgendes: Am DAQmx-Rd muss als auszulesende Anzahl 1 eingegeben werden und der Timeout muss groß genug sein. Lässt man den 1er weg, passiert auch hier genau das, was beim Standard-Sample-Mode passiert ist: "Es liegen noch keine neuen Samples vor". Kommt im Mode "1 Sample (HW-getaktet)" der DAQmx-Rd zu spät (bei 1Hz z.B. erst nach 5 Sekunden) dann kommt die Meldung sinngemäß "Anwendersoftware zu langsam". Die 1 bei DAQmx-Rd hat aber einen Nachteil: Möglicherweise bleibt das ganze Programm eine Sekunde (1Hz) stehen und ist während dieser Zeit nicht bedienbar (Folge: nicht abbrechbar etc.)

Zitat:Wie macht man denn sowas konkret? Fehlercluster abfragen?
Top1
Auch wenn das Teil Errorcluster heißt steht manchmal nur eine Meldung drinnen.

Zitat:Und wo finde ich besagte Puffer-Probertys?
Das sind die Eigenschaftsknoten, die sich auf der Palette befinden, auf der auch DAQmx-Rd etc. steht. Schau mer mal, ob ich nachher ein Bild mache.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.12.2009, 14:15
Beitrag #8

dimitri84 Offline
Astronaut
*****


Beiträge: 1.496
Registriert seit: Aug 2009

2020 Developer Suite
2009
DE_EN

53562
Deutschland
Mehrere Signale via DAQ einlesen, darstellen und speichern
' schrieb:Voraussetzung ist aber (davon gehe ich mal aus, mit diesem Mode arbeite ich nicht) folgendes: Am DAQmx-Rd muss als auszulesende Anzahl 1 eingegeben werden und der Timeout muss groß genug sein.
Wir reden hier ja primär vom DAQ-Assistenten, denn damit arbeitet der Autor. Und hier wird einem diese Entscheidung abgenommen ...
   
... denn sobald dieser Modus gewählt wird, ist besagter Parameter ausgegraut. Timeout scheint dort standardmäßig auf 10s zu stehen.

Zitat::top1:Auch wenn das Teil Errorcluster heißt steht manchmal nur eine Meldung drinnen.
Du überschätzt mich hier ein bisschen. Das reicht mir nicht als Info:huh:Wie verzögere ich denn eine Schleife auf "unbestimmte" Zeit. Die normale Wait.VI kommt da ja wohl nicht in Frage. Sag' bloß da kommt wieder die Sync-Palette ins Spiel Dry

Zitat:Das sind die Eigenschaftsknoten, die sich auf der Palette befinden, auf der auch DAQmx-Rd etc. steht. Schau mer mal, ob ich nachher ein Bild mache.
Ja die meine ich doch auch...
   
... aber was soll man jetzt beim Puffer-Knoten einstellen um das beschriebene Problem zu beheben?
   


Beste Grüße dimitri

„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.12.2009, 14:45
Beitrag #9

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.689
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Mehrere Signale via DAQ einlesen, darstellen und speichern
' schrieb:Wir reden hier ja primär vom DAQ-Assistenten,
Was? Wer macht denn sowas? Naja, gut.
Der Assistent macht doch bloß die Initialisierung einer Task. Liest man auch mit dem Assistenten einen Wert aus?

Zitat:Sag' bloß da kommt wieder die Sync-Palette ins Spiel
Bloß nicht!

Zitat:Ja die meine ich doch auch...
Genau.
Hier suchst du jetzt den Knoten, der dir angibt, wie viele Zeichen sich im Lesepuffer (!) einer Task befinden. Du sollat ja nichts einstellen, sondern feststellen, wie viele Zeichen sich im Eingangspuffer befinden.

Ob dieser Knoten oder die Auswertung des Errorclusters, beides würde prinzipiell gleich ablaufen: Abfrage und Testen, ob ok. War OK, dann den Messwert weiterverarbeiten. Sonst: eben nicht weiterverarbeiten und Warten mit Wait.VI (z.B. 50ms).


Noch was zum Assistenten:
Ich würde den Assistenten nicht verwenden. Lieber im MAX (das ist nämlich genau das selbe wie der Assistent) eine Task erstellen. Diese Task dann in LV auswählen. Dann wird auch nur einmal im Programm die Task geöffnet und gestartet. Daten abfragen (DAQmx-Rd) kann man dann so lange man will. Gestoppt und beendet wird die Task dann wieder nur eineinziges Mal. Ich befürchet beinahe, dass der Anwender hier wieder alles - Öffnen, Starten, Lesen, Stoppen, Schließen - kontinuierlich macht. Das ist schlecht.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.12.2009, 15:00 (Dieser Beitrag wurde zuletzt bearbeitet: 04.12.2009 15:02 von dimitri84.)
Beitrag #10

dimitri84 Offline
Astronaut
*****


Beiträge: 1.496
Registriert seit: Aug 2009

2020 Developer Suite
2009
DE_EN

53562
Deutschland
Mehrere Signale via DAQ einlesen, darstellen und speichern
' schrieb:Was? Wer macht denn sowas? Naja, gut.
Der Assistent macht doch bloß die Initialisierung einer Task. Liest man auch mit dem Assistenten einen Wert aus?
Jo, tut er. Gibt kein DQrd.

Zitat:Bloß nicht!
Puh! Glück gehabt.

Zitat:Genau.
Hier suchst du jetzt den Knoten, der dir angibt, wie viele Zeichen sich im Lesepuffer (!) einer Task befinden. Du sollat ja nichts einstellen, sondern feststellen, wie viele Zeichen sich im Eingangspuffer befinden.

Ob dieser Knoten oder die Auswertung des Errorclusters, beides würde prinzipiell gleich ablaufen: Abfrage und Testen, ob ok. War OK, dann den Messwert weiterverarbeiten. Sonst: eben nicht weiterverarbeiten und Warten mit Wait.VI (z.B. 50ms).
Also doch normal "waiten". Alles klar, verstanden und gesichert. Ausprobieren werd' ich's aber nicht, da such ich mich ja dumm und duselig ... erst wenn ich's brauchen sollte. Wink


Vielen Dank DirSelbst

„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
Webseite des Benutzers besuchen 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
  Mehrere Signale von NI-6009 erfassen braendy 12 8.135 10.01.2022 22:28
Letzter Beitrag: Kiesch
  Mehrere Messungen Hintereinander Darstellen. LV_Vladi 20 13.781 06.12.2015 10:57
Letzter Beitrag: LV_Vladi
  Mehrere Signale in einem Schaubild darstellen Fuchsi 6 6.072 19.11.2015 14:28
Letzter Beitrag: Fuchsi
  Mehrere Queues für mehrere Tasks Gerald85 4 7.958 21.08.2013 13:18
Letzter Beitrag: Gerald85
  mehrere Signale gleichzeitig messen SebJoh 9 10.729 16.03.2013 12:07
Letzter Beitrag: GerdW
  mehrere Tasks gleichzeitig einlesen RockyIV 7 12.522 12.03.2013 13:29
Letzter Beitrag: Peter04

Gehe zu: