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 

zwei unterschiedliche Datenraten / Abbruch bei äußerem Ereignis



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!

11.10.2007, 08:27
Beitrag #1

gottfried Offline
LVF-Guru
*****


Beiträge: 1.735
Registriert seit: Mar 2007

2019
2004
EN

20**
Oesterreich
zwei unterschiedliche Datenraten / Abbruch bei äußerem Ereignis
Hallo,

Datenerfassung mit einer mx Karte aber mit 2 unterschiedlichen Datenraten. Kann ich da einfach 2 timed-Loops mit jeweils einer unabhängigen Datenerfassung (unterschiedliche Kanäle) programmieren (oder falle ich auf die Nase)?

Im Forum habe ich auch gelesen dass die Verwendung einer lokalen Variablen zum Abbruch einer Schleife ein "Programmierfehler" ist - ähhh was sonst wenn ich nicht bestimmen kann wie lange gemessen werden soll und die Abbruchentscheidung ganz wo anders fällt?

Danke

Gottfried

mein wöchentlicher (eigenwilliger) Beitrag zur Innovation
http://innovation1.wordpress.com/
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
11.10.2007, 12:31 (Dieser Beitrag wurde zuletzt bearbeitet: 11.10.2007 12:33 von monoceros84.)
Beitrag #2

monoceros84 Offline
LVF-Stammgast
***


Beiträge: 445
Registriert seit: Oct 2006

2011
2006
EN


Deutschland
zwei unterschiedliche Datenraten / Abbruch bei äußerem Ereignis
Also paralleles Messen bei analogen Kanälen ist nicht möglich. Alle Kanäle, die du Messen willst, müssen in einem Task stecken. Wie du dann allerdings die unterschiedlichen Datenraten realisierst, weiß ich nicht. Es könnte aber sein, ich ich nächste Woche vor dem gleichen Problem stehe. Es zeichnet sich gerade ab;)Also bin ich ebenfalls sehr an der Lösung interessiert.

Zum Thema Schleifenabbruch: Zu kannst z.B. die Notifier (einfach mal in der Function Palette suchen) verwenden, das funktioniert sehr gut. Oder du nimmst ein VI mit nicht-initialisierten Schieberegistern, um eine globale Variable "zu simulieren". Das findet in meine aktuellen Projekt Anwendung und läuft auch einwandfrei.

Edit: "Programmierfehler" soll wohl nicht heißen, dass es einen logischen Fehler in deinem Programm gibt. Nur verzögerst du deine Schleife enorm duch das ständige Abfragen der Variable bei jedem Durchlauf. Selbstverständlich hängt der Einflus auch immer noch vom Schleifeninhalt ab. Wenn deine Schleife sehr rechenintensiv ist oder sowieso einen Timeout hat, dann ändert wohl die lokale Variable auch nicht mehr viel daran.

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.10.2007, 13:12
Beitrag #3

gottfried Offline
LVF-Guru
*****


Beiträge: 1.735
Registriert seit: Mar 2007

2019
2004
EN

20**
Oesterreich
zwei unterschiedliche Datenraten / Abbruch bei äußerem Ereignis
' schrieb:Zum Thema Schleifenabbruch: Zu kannst z.B. die Notifier

das ist genial - habe ich noch nicht bedacht

Danke

PS.: wie geht das mit dem "nicht initialiserten Schiebregister"?

mein wöchentlicher (eigenwilliger) Beitrag zur Innovation
http://innovation1.wordpress.com/
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.10.2007, 15:09 (Dieser Beitrag wurde zuletzt bearbeitet: 08.12.2007 13:47 von jg.)
Beitrag #4

monoceros84 Offline
LVF-Stammgast
***


Beiträge: 445
Registriert seit: Oct 2006

2011
2006
EN


Deutschland
zwei unterschiedliche Datenraten / Abbruch bei äußerem Ereignis
' schrieb:das ist genial - habe ich noch nicht bedacht

Danke

PS.: wie geht das mit dem "nicht initialiserten Schiebregister"?

Das macht mich wahnsinnig. Ich weiß genau, dass wir das heute erst hier im Forum hatten, aber ich finde es nicht mehr... Habe das nämlich selbst das erste mal gesehen und gleich alle meine Globals im Projekt damit ersetztWink
Wie auch immer, hab es eben selbst nochmal zusammengebaut...


Sonstige .vi  Global_IoReadStatus.vi (Größe: 8,42 KB / Downloads: 649)
(LV 8.2)

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.10.2007, 08:15
Beitrag #5

gottfried Offline
LVF-Guru
*****


Beiträge: 1.735
Registriert seit: Mar 2007

2019
2004
EN

20**
Oesterreich
zwei unterschiedliche Datenraten / Abbruch bei äußerem Ereignis
Hallo Mathias

danke - werde ich auch verwenden.

Gottfried

mein wöchentlicher (eigenwilliger) Beitrag zur Innovation
http://innovation1.wordpress.com/
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.10.2007, 09:00
Beitrag #6

gottfried Offline
LVF-Guru
*****


Beiträge: 1.735
Registriert seit: Mar 2007

2019
2004
EN

20**
Oesterreich
zwei unterschiedliche Datenraten / Abbruch bei äußerem Ereignis
Hallo monoceros84

' schrieb:Alle Kanäle, die du Messen willst, müssen in einem Task stecken.

das verstehe ich inhaltlich nicht - gibt es irgendwo einen Text der das erläutert?

' schrieb:Wie du dann allerdings die unterschiedlichen Datenraten realisierst, weiß ich nicht.

Ich habe Lava & den Support auch bemüht (meine Meinung zum Support ist bestätigt worden :-) einheitliche Meinung: es geht nicht. Und meines Voters Sohn glaubt es immer noch nicht. Ich denke ich kann 2 Triggersignale generieren und damit auf 2 Kanälen unterschiedlich einlesen - die Linie ist aber auf Eis

' schrieb:Es könnte aber sein, ich ich nächste Woche vor dem gleichen Problem stehe. Es zeichnet sich gerade ab;)Also bin ich ebenfalls sehr an der Lösung interessiert.

Ich habe 2 Lösungswege gesammelt:

A.) mit der höheren Rate Alles messen und dann die überfüssigen Bits wieder Downsamplen oder vergessen - gut, aber nicht sehr intelligent

B.) ich verwende die Soundkarte als zweiten Eingang - funktioniert problemlos - das habe ich realisiert

Viele Grüße

Gottfried

mein wöchentlicher (eigenwilliger) Beitrag zur Innovation
http://innovation1.wordpress.com/
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
12.10.2007, 11:11
Beitrag #7

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
zwei unterschiedliche Datenraten / Abbruch bei äußerem Ereignis
' schrieb:Hallo monoceros84
das verstehe ich inhaltlich nicht - gibt es irgendwo einen Text der das erläutert?
Ich habe Lava & den Support auch bemüht (meine Meinung zum Support ist bestätigt worden :-) einheitliche Meinung: es geht nicht. Und meines Voters Sohn glaubt es immer noch nicht. Ich denke ich kann 2 Triggersignale generieren und damit auf 2 Kanälen unterschiedlich einlesen - die Linie ist aber auf Eis

Der Grund ist zweifach.

1) sind die meisten analogen Eingagskarten gemultiplext. D.h. es gibt nur einen AD Konverter und alle Eingänge die Du lesen willst werden nacheinander an diesen AD Konverter gelegt und gemessen. Solange das von einem Task geschieht der immer dieselben Anzahl Kanäle hat, geht das recht gut aber wenn da zwei Task einander ins Gehege zu pfuschen versuchen, bekommst Du unweigerlich Müll, und deshalb kann ein Task keinen AD Konverter benützen der von einem anderen Task schon reserviert/benützt ist.
Warum verwenden die dann nicht einen AD Konverter per Eingang? Ganz einfach, AD Konverter sind so ziemlich das teuerste Teil auf einer DAQ Karte. Karten mit einem AD Konverter per Eingang gibt es zwar aber die bekommst Du echt nicht als Low-Cost Version, nicht mal wenn deren gemessenen Werte bestenfalls als Schätzwerte klassiert werden können, da die billigsten AD Konverter verwendet wurden Du man kaufen kann.

2) Zur Erzeugung des Taktes des AD Konverters und Multipexers sind mindestens zwei Taktgeber nötig. Eine DAQ Karte hat nur eine beschränkte Anzahl von Taktgebern zur Verfügung und die können normalerweise nicht beliebig für alle möglichen Funktionen verwendet werden, da die entsprechende Routing Logik anders sehr komplex (und teuer wird). Und Programmierung davon ist eines der komplexeren Meisterstücke in der DAQ Programmierung. Indem die HArdware zur Takterzeugung einigermassen einfach gehalten wird, kann der DAQ Treiber in den meisten Fällen die Ganze Programmierung davon übernehmen. Wer schon mal versucht hat komplexere Routings von Taktsignalen selber zu programmiern (Synchronisation von analogem Eingang und Ausgang möglichst noch über mehrere Karten hinweg) weiss die automatische Taktprogrammierung von gewöhnlichen DAQmx Tasks sehr zu schätzen.

Zitat:Ich habe 2 Lösungswege gesammelt:

A.) mit der höheren Rate alles messen und dann die überfüssigen Bits wieder Downsamplen oder vergessen - gut, aber nicht sehr intelligent

So tue ich es immer. Ist am einfachsten und funktioniert sehr gut.

Zitat:B.) ich verwende die Soundkarte als zweiten Eingang - funktioniert problemlos - das habe ich realisiert

Der Soundkarteneingang ist alles ausser ein Messeingang. Er ist optimalisiert um so günstig möglich eine erträgliche Soundqualität zu ermöglichen. Als Messeingang ist er aus verschiedenen Gründen nicht geeignet:

1) AC Coupling: Messung von Gleichspannungen ist nicht möglich da Soundkarten normalerweise eine untere Grenzfrequenz von ~20Hz haben.

2) Genauigkeit: Tja diese Karten müssen billig sein. Eine typische Soundkarte kostet weniger als der AD Konverter auf einer einigermassen guten Messkarte. Die entsprechenden Messwerte sind dann auch im Vergleich eher Schätzwerte dann Messwerte. Für eine rein dynamische Messung eines Signals innerhalb des Audiobereiches 20Hz-20kHz könnte es aber manchmal reichen.

Rolf Kalbermatter

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.10.2007, 14:50
Beitrag #8

gottfried Offline
LVF-Guru
*****


Beiträge: 1.735
Registriert seit: Mar 2007

2019
2004
EN

20**
Oesterreich
zwei unterschiedliche Datenraten / Abbruch bei äußerem Ereignis
Hallo Rolf,

danke für Deine Erläuterung - nun sehe ich einigermassen klarer. Die hohe Taktrate ist von einem Geräusch - deswegen die Lösung mit der Soundkarte.

Rein begrifflich habe ich ein Problem mit "Task" - was in diesem Zusammenhang ist ein Task? Ich bin auch bei einigermassen komplexen Aufganen noch immer ohne ausgekommen.

Danke

Gottfried

mein wöchentlicher (eigenwilliger) Beitrag zur Innovation
http://innovation1.wordpress.com/
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.10.2007, 15:10
Beitrag #9

monoceros84 Offline
LVF-Stammgast
***


Beiträge: 445
Registriert seit: Oct 2006

2011
2006
EN


Deutschland
zwei unterschiedliche Datenraten / Abbruch bei äußerem Ereignis
Naja, wörtlich übersetzt ist "Task" eine "Aufgabe" - und mehr ist es wohl auch nicht. Ein Task enthält Informationen über Kanäle, Art der Erfassung, Trigger usw. Eben alles, was alle Kanäle betrifft. Wenn du das VI "Task erstellen" nicht explizit einbaust, sondern gleich mit "Kanal erstellen" anfängst, wird trotzdem im Hintergrund ein neuer Task gebildet. Deswegen hast du auch zwei parallele Tasks, wenn du einfach 2x das VI "Kanal erstellen" benutzt. Und das geht nichtWink

Tip: Erstelle mal im MAX unter Data Neighborhood einen Task und einen virtuellen Kanal. Dabei wirst du den Unterschied schnell feststellen.

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


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Unterschiedliche Abtastraten bei NI USB 6001 bachatero18 8 7.483 31.03.2020 06:33
Letzter Beitrag: bachatero18
  Unterschiedliche Ergebisse im MAX und DAQ Philipp841 5 5.427 29.05.2018 13:28
Letzter Beitrag: Philipp841
  Unterschiedliche timing-anforderungen vereinigen serge_franke 16 11.063 26.03.2018 12:49
Letzter Beitrag: serge_franke
  Speisespannung Druckbox / unterschiedliche Werte in MAX und Labview Code Alischinski 14 12.735 23.04.2015 21:39
Letzter Beitrag: Alischinski
  Unterschiedliche Messergebnisse radnaib 4 4.327 10.01.2013 12:59
Letzter Beitrag: jg
  Unterschiedliche Aufzeichnungszeit Chris123 4 5.223 13.06.2012 13:32
Letzter Beitrag: Schwand

Gehe zu: