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 

Speichern von definierter Anzahl von Messwerten?



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!

03.08.2010, 12:22 (Dieser Beitrag wurde zuletzt bearbeitet: 03.08.2010 12:23 von WolfiB.)
Beitrag #1

WolfiB Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 88
Registriert seit: Jul 2007

8.5
2007
de

711xx
Deutschland
Speichern von definierter Anzahl von Messwerten?
Hallo,

über eine analoge Karte erfasse ich mehrere Signale kontinuierlich mit 1kHz. Diese Teile ich durch die Indizes auf, so dass ich
einzelne Signale habe.

In einer State-Machine läuft mein Ablauf ab. Wenn ich nun in einem bestimmten Case bin soll die Messung genau wie möglich gestartet
werden und dann eine definierte Anzahl an Messwerten (Bsp. 12000) aufnehmen. Bei der Abtastrate von 1kHz würde dies dann genau
12 Sekunden dauern. Die Messwerte sollen dann in einem Array-gespeichert werden.

Reicht es wenn ich hier eine ForSchleife mit Wartezeit 1ms einfüge? Das wird aber nicht genau genug sein, oder?
Wie kann ich dies noch anders, sicherer erstellen?


Vielen Dank.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.08.2010, 12:36 (Dieser Beitrag wurde zuletzt bearbeitet: 03.08.2010 12:37 von Y-P.)
Beitrag #2

Y-P Offline
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
LVF-Team

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
Speichern von definierter Anzahl von Messwerten?
Hi Wolle,

hast Du das Bsp. im "Example Finder" schon mal angeschaut (Finite Samples)?

Sonstige .vi  Acq_Graph_Voltage_Int_Clk.vi (Größe: 28,96 KB / Downloads: 332)

Lv85_img

Gruß Markus

--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.08.2010, 12:43
Beitrag #3

Matze Offline
LVF-Team
LVF-Team

Beiträge: 1.027
Registriert seit: Apr 2010

20xx
2010
DE_EN

7xxxx
Deutschland
Speichern von definierter Anzahl von Messwerten?
Hallo,

um welches System geht es denn? Bei einem echtzeitfähigen System kann man es grob so machen, unter Windows nicht. Da wirst du nie exakt eine Millisekunde erreichen.

Wenn es z.B. um DAQmx geht, dann liest deine Karte die Werte mit 1 kHz ein und du kannst davon mehrere Werte auf einmal in deine Anwendung holen (z.B. alle 100 Werte eine Übertragung). Die Werte haben dann einen exakten zeitlichen Abstand von 1 ms.

Wenn du das über DAQmx lösen solltest, musst du beachten, dass beim Start der Messung recht viel Zeit vergeht bis zu den ersten Messwert erhältst, sofern du den DAQmx-Task beim Start der Messung erst erstellst. Du kannst her gehen und die Werte kontinuierlich einlesen und in deinem bestimmten Fall die Auswertung vornehmen bzw. die Zuweisung in ein Array. Trifft deine Bedinung nicht zu, ignorierst du die eingelesenen Werte einfach.
Pro Schleifendurchlauf kannst du auch die eingelesenen Werte durchlaufen und ab einem bestimmten Wert die Daten einem Array zuweisen o.ä.

Ich denke, genauere Angaben zur Aufgabenstellung sind hier sinnvoll.

Grüße
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.08.2010, 12:54
Beitrag #4

WolfiB Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 88
Registriert seit: Jul 2007

8.5
2007
de

711xx
Deutschland
Speichern von definierter Anzahl von Messwerten?
Hallo,

wie das Beispiel von YP hatte ich es bisher gemacht.
Ich verwende auch DAQmx.


LV V8.5

Sonstige .vi  Aufnahme_Analogeing_nge.vi (Größe: 161,02 KB / Downloads: 269)


Das ging aber nur mit einem Signal gut. Als ich dies auf 3 erweitert habe kam ab und zu eine Fehlermeldung.
Dann hatte ich gelernt, dass es nur einen Task pro Karte geben darf. Daraufhin hatte ich versucht das ganze in 1 Task zu packen.


Sonstige .vi  AnalogeAufnahme1.vi (Größe: 44,85 KB / Downloads: 250)


Allerdings ist mit hier die Vorgangsweise zu:
- der Trennung der Signale
- sowie die Vorgehensweise zur Aufnahme in ein Array für den definierten Zeitpunkt mit bestimmter Anzahl an Messwerten nicht bekannt.

Die Werte können von mir aus ständig aufgenommen werden, aber nur ab dem Startzeitpunkt in ein Array geschrieben werden.

Wie muss allein die Whileschleife definieren??? Welche Wartezeit???

Steh da grad völlig auf dem Schlauch.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.08.2010, 13:22 (Dieser Beitrag wurde zuletzt bearbeitet: 03.08.2010 13:28 von dimitri84.)
Beitrag #5

dimitri84 Offline
Astronaut
*****


Beiträge: 1.496
Registriert seit: Aug 2009

2020 Developer Suite
2009
DE_EN

53562
Deutschland
Speichern von definierter Anzahl von Messwerten?
Ein paar Stichpunkte:

-Deine 3 Kanäle in einen Task packen geht z.B. so:
   
... dann brauchst du auch nur eine Schleife.

-Du musst unbedingt die
1) Initialisierung des Tasks
2) Datenerfassung
3) Löschen des Task
in verschiedenen States deiner State-Machine durchführen. Also pro Messung nur einmal Initialisierung und Löschung des Tasks.

-Du musst, wie du schon geahnt hast, N Samples und N Chans bei DAQRead einstellen und z.B. 100 Samples pro Lesezyklus abholen.

-Du brauchst kein Wait.vi! Weg mit dem Metronom - das macht alles der DAQ-Treiber.

-Wieso benutzt du lokale Variablen und platzierst die Controls gefühlte 3 Meter neben dem eigentliche Blockdiagramm. Nimm direkt die Controls!

-Du musst einen Stop-Button erstellen der alles in deinem Programm zum Stillstand bringt. Wenn du mit deinem Auto anhalten willst, betätigst du ja auch ganz normal die Bremse anstatt mit 120 Sachen vorn Baum zu fahrenWink

... als ersten Ansatz

„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.08.2010, 13:43
Beitrag #6

WolfiB Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 88
Registriert seit: Jul 2007

8.5
2007
de

711xx
Deutschland
Speichern von definierter Anzahl von Messwerten?
Hey,

ich muss aber die jeweiligen Signalkanäle einzeln und zu verschiedenen Zeitpunkten starten können.
Denn die Aufnahme muss teilweise parallel ablaufen.

Zur weiteren Erklärung:
- Es handlet sich um eine Station mit 3 Prüfplätzen
- jeder Prüfplatz macht das gleiche, ist aber völlig autark voneinander
- Die Messung an einem jeweiligen Platz dauert z.B. 15s (Über Frontpanel vorgebbar)
- Daher kann es auch vorkommen, dass P1 startet, 7s später P3, 5s später P2.


Was soll ich da mit einem Stop anfangen? Muss doch die ganze zeit laufen oder?

Nun müssen einfach die Werte der eingelesenen Analogkarte vom Startsignal ab, hierfür setze ich eine Variable in
dem Case davor, in ein Array geschrieben werden. Dies müssen dann ziemlich genau 15000 Werte für 15s Zeit bei
einer Abtastung von 1kHz sein.

Denn aus dem Array heraus muss ich dann Bsp.weise den 7000 Wert auswerten und mit Grenzwerten vergleichen und
gleichzeitig sollen die ganzen Werte noch auf einem Graphen angezeigt werden. Diese Punkte stellen keine Problem dar.
Aber die genaue Aufnahme.


Braucht ihr noch mehr Infos? Würde gerne den noch fehlenden Punkt erklären, wenn noch was fehlen sollte.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
03.08.2010, 14:59
Beitrag #7

WolfiB Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 88
Registriert seit: Jul 2007

8.5
2007
de

711xx
Deutschland
Speichern von definierter Anzahl von Messwerten?
Hallo,

kann ich dies so machen wie in diesem Beispiel mit dem 3 Signal (1+2 Signal muss natürlich auch entsprechende ändern)?
Ist dies für die AUfgabe korrekt oder bekomme ich so zeitliche Probleme???

V8.5

Sonstige .vi  AnalogeAufnahme3.vi (Größe: 109,04 KB / Downloads: 292)



Danke
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.08.2010, 19:08 (Dieser Beitrag wurde zuletzt bearbeitet: 03.08.2010 19:14 von Lucki.)
Beitrag #8

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

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Speichern von definierter Anzahl von Messwerten?
' schrieb:ich muss aber die jeweiligen Signalkanäle einzeln und zu verschiedenen Zeitpunkten starten können.
Denn die Aufnahme muss teilweise parallel ablaufen.

Zur weiteren Erklärung:
- Es handlet sich um eine Station mit 3 Prüfplätzen
- jeder Prüfplatz macht das gleiche, ist aber völlig autark voneinander
- Die Messung an einem jeweiligen Platz dauert z.B. 15s (Über Frontpanel vorgebbar)
- Daher kann es auch vorkommen, dass P1 startet, 7s später P3, 5s später P2.

Es gibt nur einen internen Timer für ai, dehalb können nicht mehrere ai-Tasks gleichzeitig laufen. Allerdings kann man mehrere ai-Tasks (mit jeweils verschiedenen Kanälen) gleichzeitig initialisieren, und man kann sie auch einzeln starten, ohne daß man immer die Tasks neu initialisieren muß. Sie dürfen nur nicht gleichzeitig laufen, d.h. gleichzeitig den Timer beanspruchen wollen.
Deine Aufgabe läßt sich also so nicht lösen. Eine Möglichkeit sehe ich aber: Die Tasks müßten sich gegenseitig verriegeln. D.h. wenn Task 1 läuft, dann wird der Start - falls innerhalb dieser Zeit ein weiterer Startknopf gedrückt wird - von Task 2 oder 3 so lange verzögert, bis Task 1 beendet ist.
Lv85_img
Sonstige .vi  AnalogeAufnahme3.vi (Größe: 28,41 KB / Downloads: 269)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.08.2010, 06:44
Beitrag #9

WolfiB Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 88
Registriert seit: Jul 2007

8.5
2007
de

711xx
Deutschland
Speichern von definierter Anzahl von Messwerten?
Hallo,

@Lucki: Dies ist aber nur so, wenn ich verschiedene Tasks benutze, oder? Dann kann ich also nicht mehrere AI
parallel messen, denn so schnell schalten die ja nicht hin und her, dass ich ohne Wertverluste parallele Messungen erhalte.
Eine "Nacheinanderbearbeitung" ist für diese Anwendung bzw. Anlage nicht tragbar.


Wenn ich aber wie in den Berichten zuvor nur einen Task verwende der alle 3 AI-Signale ständig ausliest, und nur zu den
Messzeiten die Werte in ein Array schreibe, sollte es doch funktionieren, oder?
Wenn ja geht es mir vorallem um die sicherstellung, dass ich genau die Werte ab Start der Messung erhalte, und hier nicht mit
einer Zeitverzögerung und somit verschobenem Wertbild arbeite.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.08.2010, 07:03
Beitrag #10

Matze Offline
LVF-Team
LVF-Team

Beiträge: 1.027
Registriert seit: Apr 2010

20xx
2010
DE_EN

7xxxx
Deutschland
Speichern von definierter Anzahl von Messwerten?
Was hast du denn für eine Startbedingung?
Wenn diese in einer Schleife überprüft wird, wirst du eher schlechte Karten haben. Das liegt daran, dass du bei der hohen Abtastrate mit DAQmx vermutlich nicht jeden einzelnen Wert übertragen kannst, sonder nur blockweise.
Ist das Triggersignal z.B. eine Überschreitung eines bestimmten Messwerts, ab dem du die Werte dann in dein Array schreibst, dann ist dein Vorhaben möglich.

Oder arbeitest du mit einem externen Trigger?

Grüße
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
  Schleife definierter Zeitdauer LabViewPete 4 4.020 17.12.2015 15:02
Letzter Beitrag: jg
  Array nur bei definierter Bedingung fuellen Hosenscheisser 4 4.355 17.08.2015 14:50
Letzter Beitrag: GerdW
  Schnellere Skalierung von Messwerten Michael1984 2 3.831 16.05.2014 06:07
Letzter Beitrag: Michael1984
  Kalibrierung von Messwerten juhuu 5 8.236 16.05.2012 13:07
Letzter Beitrag: juhuu
  Graph aus Messwerten, X-Scal mike8080 22 14.472 24.11.2010 16:00
Letzter Beitrag: Andora
  Erzeugung eines Signals aus Messwerten in einer Datei bhopke 4 5.570 19.10.2010 12:19
Letzter Beitrag: bhopke

Gehe zu: