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 

Einlesen von Daten



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!

10.08.2007, 17:57
Beitrag #1

baal Offline
LVF-Grünschnabel
*


Beiträge: 20
Registriert seit: May 2007

8.2
2005
kA

90408
Deutschland
Einlesen von Daten
Hallo ich habe folgende Frage,


ich lese einige Signale von einem DAQ aus. Die Signale werden mit einer While Schleife ausgelesen, also praktisch eine Dauermessung....

Konfiguration:[list]
[*]Rate:10.000<>
[*]Samples: 1000<>
[st]Anschließend lese ich die Daten aus:

Number of samples:[list]
[*]12000<>
[st]Der Rechner braucht also ca. 1,2 sec. um ein zyklus durchzuführen.

Anschließend werden ja die Signale verarbeitet - die Verzögerungszeit ist also zu lange.

Wie kann ich den Algorithmus also so optimieren, dass die Daten für das Hauptprogramm bereitstehen und die Verzögerungszeit minimiert wird?

Danke!!!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.08.2007, 08:47 (Dieser Beitrag wurde zuletzt bearbeitet: 11.08.2007 08:59 von Lucki.)
Beitrag #2

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Einlesen von Daten
Sende doch mal das VI, aus Deinem Text werde ich nicht schlau: "..ich lese einige Signale von einem DAQ aus....praktisch eine Dauermessung..". Ist es nur eine Dauermessung oder keine?

Allgemein kann man man nur sagen: die Messwerterfassung erfolgt autark in der Messkarte, die Werte werden in einen Buffer geschrieben. Die Datenerfassung selbst nimmt praktisch überhaupt kein CPU-Zeit in Anspruch, diese steht Dir voll für die Verarbeitung der Daten zu Verfügung. Das Dilemma, das man sowohl Zeit für die Datenerfassung als auch für die Datenverarbeitung haben muß, existiert gar nicht. Beides geschieht parallel.

Damit der Buffer nicht überläuft, ist natürlich Bedingung, daß die Verarbeitung etwas schneller sein muß als die Erfassung. Die Synchronisation in der Schleife erfolgt dadurch, daß DAQmx Read bei jedem Zyklus wartet, bis sich die eingestellte Anzahl von Werten im Buffer angesammelt hat.

Die Formulierung "Der Rechner braucht also ca. 1,2 sec. um ein zyklus durchzuführen" ist falsch. Ja, es muß 1.2 s auf neue Daten im Buffer gewartet werden, aber in dieser Zeit kann sich die CPU voll mit der Verarbeitung der vorangegangenen Daten beschäftigen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.08.2007, 13:24
Beitrag #3

baal Offline
LVF-Grünschnabel
*


Beiträge: 20
Registriert seit: May 2007

8.2
2005
kA

90408
Deutschland
Einlesen von Daten
' schrieb:Sende doch mal das VI, aus Deinem Text werde ich nicht schlau: "..ich lese einige Signale von einem DAQ aus....praktisch eine Dauermessung..". Ist es nur eine Dauermessung oder keine?

Allgemein kann man man nur sagen: die Messwerterfassung erfolgt autark in der Messkarte, die Werte werden in einen Buffer geschrieben. Die Datenerfassung selbst nimmt praktisch überhaupt kein CPU-Zeit in Anspruch, diese steht Dir voll für die Verarbeitung der Daten zu Verfügung. Das Dilemma, das man sowohl Zeit für die Datenerfassung als auch für die Datenverarbeitung haben muß, existiert gar nicht. Beides geschieht parallel.

Damit der Buffer nicht überläuft, ist natürlich Bedingung, daß die Verarbeitung etwas schneller sein muß als die Erfassung. Die Synchronisation in der Schleife erfolgt dadurch, daß DAQmx Read bei jedem Zyklus wartet, bis sich die eingestellte Anzahl von Werten im Buffer angesammelt hat.

Die Formulierung "Der Rechner braucht also ca. 1,2 sec. um ein zyklus durchzuführen" ist falsch. Ja, es muß 1.2 s auf neue Daten im Buffer gewartet werden, aber in dieser Zeit kann sich die CPU voll mit der Verarbeitung der vorangegangenen Daten beschäftigen.


Danke für die Antwort, ich bin jetzt nicht in der Fa., kann deswegen das VI nicht hochladen. Werde es dann morgen tun.
Bezüglich der Zeit, es ist so: im Programm werde die Schritte sequentiell abgearbeitet -

Konfiguration--> Einlesen von 12000 Werten (dauert am längsten (ca. 1,2 sec)) --> Verarbeiten der Daten.
und dann vom Anfang an...

Da ich immer die aktuellen Messergebnisse brauche, kann ich die Werte nicht irgendwo (z.B. Buffer) speichern...
Die Verarbeitung erfolgt sehr schell (msec Bereich) und dann muss man darauf warten bis die 12000 Werte wieder eingelesen werden.

Ich hoffe, cih konnte das Problem einigermaßen verständlich darstellen, danke!
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
  Daten von 2 Quellen gleichzeitig einlesen Graf_Zahl 5 6.286 01.02.2013 07:39
Letzter Beitrag: RMR
  Daten von PCI-1200 in LV einlesen pgl_bear 4 5.126 14.04.2010 20:27
Letzter Beitrag: jg
  Daten von AD-Wandler einlesen Nschnitzler 1 4.282 30.04.2008 21:52
Letzter Beitrag: rolfk
  Daten von 2 DAQ Managern einlesen und in Array speichern maier_m 2 4.054 27.11.2005 11:56
Letzter Beitrag: maier_m

Gehe zu: