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 

DAQMx



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!

12.06.2007, 12:57
Beitrag #1

FlorianM Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 112
Registriert seit: Mar 2007

8.0 8.2
-
kA

89073
Deutschland
DAQMx
Hallo zusammen !!!

Habe mal wieder ein Problem, bei meinem DAQMx Assi hab ich auf kontinuierliche Auslese eingestellt, und die Speicherung erfolgt über eine Zeitdifferenz.

Wie kann ich nun die Speicherung so machen, dass immer exakt im Speicherintervall von n Sekunden abgespeichert wird.
Die Speicherung erfolg im Moment sehr unregelmäßig und in unterschiedlichen abständen.

Wäre für Tipps sehr dankbar.

Lg
FlorianM


Angehängte Datei(en)
Sonstige .vi  Beschriftung_der_Tabellenspalten_end.vi (Größe: 11,1 KB / Downloads: 226)

Sonstige .vi  Schreiben_in_die_einzelnen_Zeilen_mit_Datum_und_Uhrzeit_end.vi (Größe: 15,19 KB / Downloads: 220)

Sonstige .vi  Sudienarbeit_V2_Vorl_ufige_Endfassung.vi (Größe: 166,77 KB / Downloads: 247)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.06.2007, 15:28 (Dieser Beitrag wurde zuletzt bearbeitet: 12.06.2007 16:11 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
DAQMx
' schrieb:Hallo zusammen !!!

Habe mal wieder ein Problem, bei meinem DAQMx Assi hab ich auf kontinuierliche Auslese eingestellt, und die Speicherung erfolgt über eine Zeitdifferenz.

Wie kann ich nun die Speicherung so machen, dass immer exakt im Speicherintervall von n Sekunden abgespeichert wird.
Die Speicherung erfolg im Moment sehr unregelmäßig und in unterschiedlichen abständen.

Wäre für Tipps sehr dankbar.

Lg
FlorianM
Das Timing der Schleife erfolg mit dem DAQ.vi
Schließe erst mal am DAQ-Assistent Stop=false an.

Mache z.B. diese Enstellungen:

   

dann arbeitet das DAQ-VI so:
1.) Die Datenerfassung erfolgt kontinuierich.
2.) Bei Aufruf des VI in der Schleife werden immer 100 Werte gelesen. Fall die zum Zeitpunkt des Aufrufs noch nicht im Buffer sind (und davon ist in der Regel auszugehen) wartet das VI solange, bis die 100 Werte erreicht sind.
3.) Die Schleifen-Taktzeit ist #_of_Samples/Samplerate, hier also 100/100 = 1s. Du brachts also nur bei jedem Schleifendurchlauf abzuspeichern.

An Deinen Uhren sehe ich den Versuch, das Speicherintervall variabel zu machen. Hierfür gibt es zwei Möglichkeiten:
1) Speichern nur nach jedem n-ten Schleifendurchlauf, so daß Du dann wie hier im Bespiel alle 1,2,3s,, abspeichern kannst
2) Besser: Den DAQ-Assistenten in eine normale DAQ-Task umwandeln (rechte Maustaste). Damit hast Du dann vom Programm aus Zugriff auf Samplerate, Anzahl der Samples usw.

Anmerkung: Das Abspeichern und und Anzeigen der Werte wird bei Dir ein Mal pro Schleifendurchlauf ausgeführt, und zwar wird dazu (mit den Werten das Beispiels) der jeweils der Letzte der 100 Werte verwendet. Die anderen 99 Werte sind für die Katz. Besser wäre natürlich zumindest ein Mittelwertbildung über alle 100 Werte.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.06.2007, 16:08
Beitrag #3

canix Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 87
Registriert seit: Mar 2007

Labview8.2 / Studnik-Version 8.0.1
2007
kA

44807
Deutschland
DAQMx
' schrieb:...das Speicherintervall variabel zu machen. Hierfür gibt es zwei Möglichkeiten:

1) Speichern nur nach jedem n-ten Schleifendurchlauf, so daß Du dann wie hier im Bespiel alle 1,2,3s,, abspeichern kannst
2) Besser: Den DAQ-Assistenten in eine normale DAQ-Task umwandeln (rechte Maustaste). Damit hast Du dann vom Programm aus Zugriff auf Samplerate, Anzahl der Samples usw.

Zu 1.) Diesen Vorschlag hatte ich auch mal in einem anderen Thread von Florian gemacht. Da kam dann starke Kritik. Von daher habe ich mir nochmal Gedanken gemacht und mich für eine Mischung aus beidem für mein Messprogramm entschieden.

Sonstige .zip  Beispiel.zip (Größe: 78,03 KB / Downloads: 261)


In dem geposteten Beispiel dauert ein Schleifendurchlauf 250msec. Man kann nun auswählen, nach wievielen Zyklen gespeichert werden soll. Nehmen wir an alle 10 Schleifendurchläufe -> 2,5 Sekunden Speicherintervall. Gleichzeitig wird über eine Zeitdifferenzmessung die verstrichene Zeit ermittelt. Falls diese überschritten wird, muß gespeichert werden. Dadurch vermeide ich das Problem, daß zu lange Schleifendurchläufe die Speichertaktung verzögern.

Vorher aber auf jeden Fall den DAQ-Assi rausschmeißen!

Gruß
Jens

Hinweis: Meine Lösungsvorschläge sind immer mit Vorsicht zu geniessen! Es gibt vermutlich wesentlich elegantere Ansätze. Ich poste dennoch, da ich mir auf diese Weise das entsprechende Feedback erhoffe!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.06.2007, 17:31 (Dieser Beitrag wurde zuletzt bearbeitet: 12.06.2007 17:34 von FlorianM.)
Beitrag #4

FlorianM Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 112
Registriert seit: Mar 2007

8.0 8.2
-
kA

89073
Deutschland
DAQMx
' schrieb:Zu 1.) Diesen Vorschlag hatte ich auch mal in einem anderen Thread von Florian gemacht. Da kam dann starke Kritik. Von daher habe ich mir nochmal Gedanken gemacht
Vorher aber auf jeden Fall den DAQ-Assi rausschmeißen!

Gruß
Jens
Sorry Jens ich weiß Wub_anim
Wieso soll ich denn den DAQAssi rauschmeißen?
Kannst dein Bsp evtl auch auf 8.0 runterspeichern, dann kann ichs daheim jetzt auch mal ansehen, DANKE

@Lucki

Danke für deine Tipps werd sie mal durchdenken.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.06.2007, 17:46
Beitrag #5

FlorianM Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 112
Registriert seit: Mar 2007

8.0 8.2
-
kA

89073
Deutschland
DAQMx
Hey Lucki,

wenn ich den DAQ-Assi umwandle, dann muss ich die komplette verdarhtung da neu machen oder zumindest bis dahin dass die Daten ausgelesen werden.

Noch was, wenn ich den Stop auf Fals machen, was bringt mir das dann? Kann ich eigentlich die n-Schleicfen über das I auslesen und wie kann ich dann das machen dass ich alle min oder so Speicher? Wie kann ich denn da vorgehen? Das I liefert mir in meinem Fall vib 100 samples und 100 Hz ja jede sec nen Impuls.... Wie kann dann der Benutzer da eingreifen?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.06.2007, 19:57
Beitrag #6

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

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
DAQMx
' schrieb:wenn ich den DAQ-Assi umwandle, dann muss ich die komplette verdarhtung da neu machen oder zumindest bis dahin dass die Daten ausgelesen werden.

Von der "kompletten Verdrahtung" entfallen 90%, wenn man mit For-Schleifen statt mit Einzelbearbeitungen arbeitet. Hier ein paar Skizzen, wie es aussehen könnte:
1.) Die Signale habe ich in einen 2D-Array umgewandelt. (Wenn man kein Express-VI verwendet, hat man gleich von Anfang an diesen 2D-Array für die Daten. Ich denke aber, daß man auch bei Umwandlung des Express-Vi die dynamischen Signale retten könnte, wenn man darauf Wert legt. Der Vorteil ist, daß in der Graphendarstellung die Plots mit den Kanalnamen benannt werden)
   
2.) Vorschlag Kanäle ausblenden:
   
3.) Dir Registerkarten-Anwahl hätte ich eher so gemacht, aber vor allem hätte ich sie in einen Ereignisknoten gepackt
   


Zitat:wenn ich den Stop auf False machen, was bringt mir das dann?
Ohne den Stop auf false ist überhaupt keine kontinuierliche Datenerfassung über mehrere Scheifendurchläufe möglich, da das VI ansonsten bei jedem neuen Durchlauf immer wieder neu initialisiert und beendet wird. Es wäre allerdings gut, wenn bei Stopp des Haupprogramms auch das DAQ gestoppt würde.


Zitat:die n-Schleicfen über das I auslesen und wie kann ich dann das machen dass ich alle min oder so Speicher? Wie kann ich denn da vorgehen? Das I liefert mir in meinem Fall vib 100 samples und 100 Hz ja jede sec nen Impuls.... Wie kann dann der Benutzer da eingreifen?

Dazu wurden schon Vorschläge gemacht, und ich teile wie alle erfahrenen Benutzt hier im Board die Abneigung gegen solche Express-VI, weil man da eben nicht so eingreifen kann wie man will.

Wenn Du nicht jede Sample abspeichern und anzeigen kannst und willst, würde ich empfehlen, immer Mittelwerte von den zwischenzeitlich angefallenen Daten für Speicherung und Anzeige zu verwenden. (siehe Bild oben)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
12.06.2007, 20:34
Beitrag #7

FlorianM Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 112
Registriert seit: Mar 2007

8.0 8.2
-
kA

89073
Deutschland
DAQMx
' schrieb:Von der "kompletten Verdrahtung" entfallen 90%, wenn man mit For-Schleifen statt mit Einzelbearbeitungen arbeitet. Hier ein paar Skizzen, wie es aussehen könnte:
1.) Die Signale habe ich in einen 2D-Array umgewandelt. (Wenn man kein Express-VI verwendet, hat man gleich von Anfang an diesen 2D-Array für die Daten. Ich denke aber, daß man auch bei Umwandlung des Express-Vi die dynamischen Signale retten könnte, wenn man darauf Wert legt. Der Vorteil ist, daß in der Graphendarstellung die Plots mit den Kanalnamen benannt werden)
[attachment=33763:Haupt_VI.png]
2.) Vorschlag Kanäle ausblenden:
[attachment=33764:Ereignis.png]
3.) Dir Registerkarten-Anwahl hätte ich eher so gemacht, aber vor allem hätte ich sie in einen Ereignisknoten gepackt
[attachment=33765:Register.png]
Ohne den Stop auf false ist überhaupt keine kontinuierliche Datenerfassung über mehrere Scheifendurchläufe möglich, da das VI ansonsten bei jedem neuen Durchlauf immer wieder neu initialisiert und beendet wird. Es wäre allerdings gut, wenn bei Stopp des Haupprogramms auch das DAQ gestoppt würde.
Dazu wurden schon Vorschläge gemacht, und ich teile wie alle erfahrenen Benutzt hier im Board die Abneigung gegen solche Express-VI, weil man da eben nicht so eingreifen kann wie man will.

Wenn Du nicht jede Sample abspeichern und anzeigen kannst und willst, würde ich empfehlen, immer Mittelwerte von den zwischenzeitlich angefallenen Daten für Speicherung und Anzeige zu verwenden. (siehe Bild oben)

Puhh das hört sich aber nach viel Arbeit an, ich werds mir mal überlegen. Danke mal für die vielen Tipps !!!!!!!!!!!

Wub_anim
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.06.2007, 20:38
Beitrag #8

FlorianM Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 112
Registriert seit: Mar 2007

8.0 8.2
-
kA

89073
Deutschland
DAQMx
Wenn ich mal ganz offen reden darf, ich weiß das mein Aufbau net sooo toll ist und auch z.T. net so klar ist, aber da ich erst seit März mit LabVIEW arbeite, denke ich dass dies meinem Kenntnisstand entspricht. Helft mir nur noch bei meinem Zeitproblem, alles andere läuft ja.

Lg und versteht mich net falsch, alles andere komlexe oder so könnte ich nicht verantworten.

Florian
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.06.2007, 16:40
Beitrag #9

FlorianM Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 112
Registriert seit: Mar 2007

8.0 8.2
-
kA

89073
Deutschland
DAQMx
Hallo zusammen !

Habe mein Speicherproblem gelöst. Ich ziehe von der Zeit die der User eingibt immer 1 ab (dekrementiern) und somit erfolgt die Speicherung just in time.
Den rest hab ich so gelassen wie er ist, ich meine das ist meine Arbeit, die ich vertreten muss und kann.

Vielen vielen tausend Dank für Eure große Geduld und die vielen Tipps, die ihr mir gegeben habt.

Werde dann jetzt auch mal schauen, dass ich anderen hier weiterhlefen kann Wub_anim

Lg
FlorianM
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Gehe zu: