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 

DAQ Datenoutput an zwei Ziele mit unterschiedlichen Intervallen



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!

05.05.2016, 12:09
Beitrag #1

moTo Offline
LVF-Grünschnabel
*


Beiträge: 10
Registriert seit: Apr 2016

2015
2015
EN



DAQ Datenoutput an zwei Ziele mit unterschiedlichen Intervallen
Hallo zusammen,

ich bräuchte ein wenig Hilfe bei folgendem Problem:

Ich habe eine DAQ Express VI, aus der ich gerne Werte auf 2 Wegen auslesen möchte. Der erste Weg ist recht einfach, dort sollen die Werte einfach kontinuierlich an einen Chart gesendet werden (also eine Art Live Ansicht).
Gleichzeitig möchte ich aber genau alle x Sekunden (das x wird vorher vom User eingegeben und reicht von 0,1s bis 300s) einen Wert in ein Array bzw. in einen Indexing Tunnel schreiben, der dann später in einem Array gespeichert wird. Dabei soll auch der Zeitpunkt der Datenaufzeichnung der einzelnen Messpunkte mit rausgeschrieben werden, damit man das im Array später auch sehen kann.

Mein erster Ansatz war das über eine Wait Funktion zu lösen, die genau den vom User gewählten Zeitintervall abwartet und dann einen einzigen Wert vom DAQ ausliest. Leider lassen sich dabei nicht parallel weitere Werte auslesen und in den Chart schreiben.

Noch eine allgemeine Frage zum DAQ:
Wenn ich im DAQ Express VI kontinuierlich messen auswähle und z.B. 100Hz einstelle, und zB. 50000 Samples einstelle, läuft dann das DAQ Express VI solange bis diese Zahl erreicht ist, oder muss sich das Express VI dazu in einer Schleife befinden? Was mache ich, wenn ich nicht weiß, wie viele Samples ich brauchen werde?

Mein Ziel wäre also folgendes:
Ein DAQ Express VI, dass mit Hardware Timing kontinuierlich Werte rausschreibt von denen alle x Sekunden ein Signal mit allen Sensorwerten, die am DAQ angeschlossen sind, abgegriffen und in ein extra Array gespeichert werden. Parallel dazu soll eine Schleife laufen, die Abbruchkriterien überprüft, die ebenfalls vom User vorgegeben werden können (max. Messzeit, Stop Button, Anzahl Messwerte im Array). Auch parallel dazu soll zum gleichen Zeiptunkt wie ein Messwert rausgeschrieben wird auch ein Bild mit einer Kamera gemacht werden.

Das ganze findet in einer State Machine statt.

Wie setze ich das am besten um?

Vielen Dank im Voraus für eure Rückmeldung!

PS Im Anhang habe ich meinen Versuch angehängt, die zwar die Werte im richtigen Intervall rausschreibt, aber keine Live Ansicht parallel dazu erlaubt.


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
06.05.2016, 08:54 (Dieser Beitrag wurde zuletzt bearbeitet: 06.05.2016 08:55 von GerdW.)
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.480
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: DAQ Datenoutput an zwei Ziele mit unterschiedlichen Intervallen
Hallo moto,

Zitat:Im Anhang habe ich meinen Versuch angehängt
Du hast ein Snippet angehangen, in dem ein Großteil der Drähte "broken" ist…
Wie soll man damit irgendetwas anfangen?

Zitat:Ich habe eine DAQ Express VI, aus der ich gerne Werte auf 2 Wegen auslesen möchte. Der erste Weg ist recht einfach, dort sollen die Werte einfach kontinuierlich an einen Chart gesendet werden (also eine Art Live Ansicht). Gleichzeitig möchte ich aber genau alle x Sekunden (das x wird vorher vom User eingegeben und reicht von 0,1s bis 300s) einen Wert in ein Array bzw. in einen Indexing Tunnel schreiben, der dann später in einem Array gespeichert wird.
Einfach alle x Sekunden den gerade erst gelesenen Wert nicht nur anzeigen, sondern auch abspeichern!

Zitat:Mein erster Ansatz war das über eine Wait Funktion zu lösen, die genau den vom User gewählten Zeitintervall abwartet und dann einen einzigen Wert vom DAQ ausliest.
Korrekt erkannt: Parallel Werte aus dem identischen DAQmx-Kanal lesen geht nicht. Brauchst du aber auch nicht: wenn du den Wert schon gelesen hast, kannst du ihn doch beliebig oft weiterverwenden…

Zitat:Wenn ich im DAQ Express VI kontinuierlich messen auswähle und z.B. 100Hz einstelle, und zB. 50000 Samples einstelle, läuft dann das DAQ Express VI solange bis diese Zahl erreicht ist, oder muss sich das Express VI dazu in einer Schleife befinden?
Das ExpressVI macht genau das, was du konfigurierst! Wenn du 50k Samples bekommen willst, dann wird das ExpressVI diese auch liefern - ohne "Schleife drumherum"!
(Das dauert bei 100Hz Samplerate dann eben mal 500s oder 8m20s - blöd, wenn man dann den falschen Timeout setzt…)

Zitat:Mein Ziel wäre also folgendes: Ein DAQ Express VI
Mein Ziel (und mein Vorschlag an dich) wäre immer, auf einen DAQAssi zu verzichten und die normalen DAQmx-Funktionen zu verwenden.
LabVIEW kommt mit jeder Menge BeispielVIs zum Thema DAQmx und es gibt einen prima Einsteiger-Hinweis zu DAQmx (siehe meine Signatur)!

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.05.2016, 17:03 (Dieser Beitrag wurde zuletzt bearbeitet: 07.05.2016 12:15 von Lucki.)
Beitrag #3

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

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: DAQ Datenoutput an zwei Ziele mit unterschiedlichen Intervallen
Das grundlegende Prinzip bei der Datenerfassung ist: Der Datenverkehr zwischen Messmodul (Enthält Echtzeit-System zur autarken Datenerfassung) ) und PC (Windows, kein Echtzeitystem) erfolgt nicht direkt, sondern über Puffer.
Bei Kontinuierlicher Erfassung (und nicht nur da) heißt das: Die Datenerfassung wird nach der Konfigurierung mit "Start" (oder dem ersten Lesezugriff auf den Puffer) angestoßen. DAQmxRead hat mit der Datenerfassung selbst nichts zu tun. Es liest nur die Daten aus dem Puffer, und zwar so: Es wartet, bis die angegebene Anzahl von Samples im Puffer sind. Die Schleife, in der es sich befindet, wird so lange blockiert. Ist die Anzahl erreicht, liest es die Daten mit einem Mal aus. Die Schleife ist dann nicht mehr blockiert, man kann die Daten auswerten, speichern oder was weiß ich. Und da die Kontinuierliche Datenerfassung zeitlich nicht begrenzt ist, kann man bei dieser Gelgenheit auch entscheiden, ob man die Erfassung stoppen möchte. (Wichtig: kein "Wait" in der Schleife, es kann sonst zum Pufferüberlauf kommen)
Vorsschlag für Deinen Fall:
Ich würde immer 10 Samples auslesen, dann macht bei fs=100 Hz die Schleife alle 100ms einen Durchlauf.
Herausziehen der Einzelsamples: bei dt=100 ms entspricht das einem Schleifendurchlauf. Also bei jedem Durchlauf aus dem Array einen Einzelwert herausziehen. (besser:Den Mittelwert der 10 Samples).
Entsprechend bei dt=300s nur bei jedem 3000sten Schleifendurchlauf eine Sample aus dem Array herausziehen.
(Dein Express-Vi funktioniert beim Lesen auch so wie beschrieben).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.05.2016, 17:48
Beitrag #4

moTo Offline
LVF-Grünschnabel
*


Beiträge: 10
Registriert seit: Apr 2016

2015
2015
EN



RE: DAQ Datenoutput an zwei Ziele mit unterschiedlichen Intervallen
Hallo zusammen,

vielen Dank erstmal für eure Rückmeldungen.

Könntet ihr mir einen Denkanstoß oder ein Snippet geben, wie das Herausziehen der Einzelsamples am besten und effektivsten umzusetzen ist?

Vielen Dank nochmal!

Beste Grüße,
moTo
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.05.2016, 20:05
Beitrag #5

GerdW Offline
______________
LVF-Team

Beiträge: 17.480
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: DAQ Datenoutput an zwei Ziele mit unterschiedlichen Intervallen
Hallo moto,

Zitat:Könntet ihr mir einen Denkanstoß oder ein Snippet geben, wie das Herausziehen der Einzelsamples am besten und effektivsten umzusetzen ist?
Das hat Ludwig doch schon gesagt: ein Mittelwert über den gerade gelesenen Sampleblock ist üblich.
Oder eben per IndexArray eines der Samples auswählen…

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
  2 Parallele While-Schleifen mit unterschiedlichen Timer beenden Tomate27 3 2.976 18.08.2020 13:29
Letzter Beitrag: GerdW
  zwei Plots in einem X-Y Graphen mit zwei Achsen bachatero18 7 5.502 20.11.2019 15:06
Letzter Beitrag: Lucki
  For-Scheife zu unterschiedlichen Zeitpunkten unterbrechen? Stefan_r 6 4.931 03.11.2014 10:12
Letzter Beitrag: Stefan_r
Question Y-Achse mit unterschiedlichen Farben im Label LazyBoNe 2 3.797 02.07.2014 08:28
Letzter Beitrag: LazyBoNe
  Umgang mit vielen Variablen unterschiedlichen Typs dummyuser 6 5.639 13.01.2014 12:19
Letzter Beitrag: dummyuser
  Probleme mit unterschiedlichen Datentypen Hasenfuss 4 5.231 22.04.2013 13:02
Letzter Beitrag: Kiesch

Gehe zu: