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!
Es müssen folgende Aspekte parallel laufen und das am beten zeitgleich:
- Parameter und Daten aus DAQ lesen
- Daten in txt-file speichern
- Daten asu txt-file lesen für die graphische Darstellung im XY-Graphen
- Steuerun der der Zyklen im Graph in Abhängigkeit von der Zeit in Sekunden
Bitte um Hilfe und vielleicht in Stichpunkten bzw. in einer Skizze den Lösungsansatz...
Ich habe dies zwar aber queues probiert, aber bisher ohne Erfolg, da die oben genannten Punkte auf einer Seite des Tabs laufen und gleichzeitig auf der anderen Seite Tabs Einstellungen bzw. DAQ Kanäle visualisiert werden.
Die Tabs steuere ich bisher über Events.
Du willst ein Problem realisieren?:hmm:Davon hat man doch auch so schon genug...
Zitat:- Parameter und Daten aus DAQ lesen ... ok.
- Daten in txt-file speichern ... ok.
- Daten asu txt-file lesen für die graphische Darstellung im XY-Graphen ... Moment.
Sind das die Daten aus DAQ? Wenn ja, wozu der Umweg über die Festplatte?
Zitat:- Steuerun der der Zyklen im Graph in Abhängigkeit von der Zeit in Sekunden
Erklär das bitte genauer.
Zitat:Bitte um Hilfe und vielleicht in Stichpunkten bzw. in einer Skizze den Lösungsansatz...
Wie wär's, wenn du den Anfang machst? VI?
Gruß dimitri
„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
[quote name='dimitri84' date='07.05.2010 , 12:14:46' post='97294']
Du willst ein Problem realisieren?:hmm:Davon hat man doch auch so schon genug...
yep das stimmt allerdings)
Sind das die Daten aus DAQ? Wenn ja, wozu der Umweg über die Festplatte?
Yep das sind daten aus DAQ, aber teilweise auch berechnete Werte...
Erklär das bitte genauer.
Es sind rechteckförmige Kurven. Diese haben im Minimum bzw. Maximum eine vorgegebene Zyklusdauer einhalten...Deshalb auch die Zyklussteuerung
Wie wär's, wenn du den Anfang machst? VI?
Das VI ist noch nicht ganz fertig...Ich möchte ja nur den bestmöglichen Ansatz stichpunktartig beschrieben bekommen) Wenn das VI soweit fertig ist, können wir ja die einzelnen Probleme durchgehen...
07.05.2010, 11:37 (Dieser Beitrag wurde zuletzt bearbeitet: 07.05.2010 11:41 von dimitri84.)
' schrieb:Yep das sind daten aus DAQ, aber teilweise auch berechnete Werte...
Dann kannst du dir das Lesen schon mal sparen! Du hast die Daten doch schon im Speicher...
Zitat:- Steuerun der der Zyklen im Graph in Abhängigkeit von der Zeit in Sekunden
...
Es sind rechteckförmige Kurven. Diese haben im Minimum bzw. Maximum eine vorgegebene Zyklusdauer einhalten...Deshalb auch die Zyklussteuerung
Du willst etwas im Graph steuern, das du eben erst aus DAQ gelsen hast?
Zitat:Das VI ist noch nicht ganz fertig...Ich möchte ja nur den bestmöglichen Ansatz stichpunktartig beschrieben bekommen) Wenn das VI soweit fertig ist, können wir ja die einzelnen Probleme durchgehen...
Das macht nix, wenn's nicht fertig ist. Man kann trotzdem viel besser helfen, wenn es vorliegt.
Also du hast zwei Möglichkeiten:
1) Producer-Consumer Struktur. Producer-Schleife macht die Datenerfassung. Eine Consumer-Schleife verarbeitet und stellt dar ... eine schreibt.
2) Alles in einer einzigen Schleife abarbeiten. Dann muss man aber eine geeignete Samplesanzahl pro Iteration abholen damit es keinen Stau im Puffer gibt. Da ich nicht weiß wie schnell und wie viel du misst respektive wie viel du zu berechnen hast, kann ich dir keine Empfehlung geben.
„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
' schrieb:Dann kannst du dir das Lesen schon mal sparen! Du hast die Daten doch schon im Speicher...
Du willst etwas im Graph steuern, das du eben erst aus DAQ gelsen hast?
Das macht nix, wenn's nicht fertig ist. Man kann trotzdem viel besser helfen, wenn es vorliegt.
Also du hast zwei Möglichkeiten:
1) Producer-Consumer Struktur. Producer-Schleife macht die Datenerfassung. Eine Consumer-Schleife verarbeitet und stellt dar ... eine schreibt.
2) Alle mit einer einzigen Schleife. Dann muss man aber eine geeignete Samplesanzahl pro Iteration abholen damit es keine Stau im Puffer gibt. Da ich nicht weiß wie schnell und wie viel du misst respektive wie viel du zu berechnen hast, kann ich dir keine Empfehlung geben.
Also folgendes:
Ich erhalte Druckwerte...Diese Druckwerte müssen als Rechtecksignal dargestellt werden...D.h. Ich steuere eine Maschine, die Druck und Zug ausübt...Diese Ausübgung muss allerdings über DAQ gesteuert werden....D.h. Druckhaltedauer und Zughaltedauer muss mit de Zeit in Sekunden dargestellt werden, je nachdem wie die Haltedauer parametriert worden ist...
"1) Producer-Consumer Struktur. Producer-Schleife macht die Datenerfassung. Eine Consumer-Schleife verarbeitet und stellt dar ... eine schreibt."
Ok ProducerSchleife ist für die Datenerfassung und Consumeschleife für die Verarbeitung (Txt-file lesen, Berechnungen von benötigten Werten, Graphische Darstellung, etc.)
Verstehe ich das richtig?
"...eine schreibt" <- Das habe ich nicht verstanden...
Eine einzige Schleife würde nicht ausreichen, denke ich...Die Auslastung der CPU muss möglichst gering gehalten werden...Da der Test über mehrere Tage laufen muss...
lg
honey
07.05.2010, 12:20 (Dieser Beitrag wurde zuletzt bearbeitet: 07.05.2010 12:31 von dimitri84.)
' schrieb:Also folgendes:
Ich erhalte Druckwerte...Diese Druckwerte müssen als Rechtecksignal dargestellt werden...D.h. Ich steuere eine Maschine, die Druck und Zug ausübt...Diese Ausübgung muss allerdings über DAQ gesteuert werden....D.h. Druckhaltedauer und Zughaltedauer muss mit de Zeit in Sekunden dargestellt werden, je nachdem wie die Haltedauer parametriert worden ist...
Also soll neben dem xy-Graph noch eine Anzeige die Druck-/Zugdauer in Sekunden darstellen?
Zitat:Ok ProducerSchleife ist für die Datenerfassung und Consumeschleife für die Verarbeitung (Txt-file lesen, Berechnungen von benötigten Werten, Graphische Darstellung, etc.)
Verstehe ich das richtig?
Richtig. Nur musst du die txt-File wirklich nicht lesen. Du hast die Daten doch schon im Speicher.
Zitat:"...eine schreibt" <- Das habe ich nicht verstanden...
Eine extra Consumer-Loop zum speichern. Im Übrigen, wenn du schon von mehreren Tagen sprichst, würde ich zu TDMS raten. TDMS hat gegeüber von txt-Files viele viele Vorteile.
Zitat:Eine einzige Schleife würde nicht ausreichen, denke ich...Die Auslastung der CPU muss möglichst gering gehalten werden...Da der Test über mehrere Tage laufen muss...
Eine einzige Schleife ist nicht zwangsläufig ressourcenfressender. Jedenfalls wüsste ich nicht warum. Allerdings ist die Producer-Consumer-Architektur robuster, da, wie IchSelbst immer betont, die Queue als zusätzlicher Puffer fungiert.
„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
' schrieb:Also soll neben dem xy-Graph noch eine Anzeige die Druck-/Zugdauer in Sekunden darstellen?
Richtig. Nur musst du die txt-File wirklich nicht lesen. Du hast die Daten doch schon im Speicher.
Eine extra Consumer-Loop zum speichern. Im Übrigen, wenn du schon von mehreren Tagen sprichst, würde ich zu TDMS raten. TDMS hat gegeüber von txt-Files viele viele Vorteile.
Eine einzige Schleife ist nicht zwangsläufig ressourcenfressender. Jedenfalls wüsste ich nicht warum. Allerdings ist die Producer-Consumer-Architektur robuster, da, wie IchSelbst immer betont, die Queue als zusätzlicher Puffer fungiert.
Es gibt nur eine Anzeige...
txt-File habe ich deshalb genommen, weil die Software bereits fertig programmiert war und ich die hohe CPU Auslastung verringern musste...Vorher wurde die ganze Datenmenge als 2D Array über Schieberegister geführt...Nachdem ich es jetzt über eine externe txt-file die Daten lese und schreibe, hat sich die Auslastung deutlich ausgebessert.
Die extra Consumer Loop? D.h. 3 While-Schleifen, die miteinander kommunizieren? Verstehe ich das richtig?
Mit TDMS habe ich noch nie bis jetzt was zu tun gehabt..Wo finde ich Beispiele...Bzw. Tutorials zu diesem? Damit ich mich näher damit befassen kann...
lg
honey
07.05.2010, 12:45 (Dieser Beitrag wurde zuletzt bearbeitet: 07.05.2010 13:18 von dimitri84.)
' schrieb:Es gibt nur eine Anzeige...
txt-File habe ich deshalb genommen, weil die Software bereits fertig programmiert war und ich die hohe CPU Auslastung verringern musste...Vorher wurde die ganze Datenmenge als 2D Array über Schieberegister geführt...Nachdem ich es jetzt über eine externe txt-file die Daten lese und schreibe, hat sich die Auslastung deutlich ausgebessert.
Es wird Zeit für das VI. Was du hier beschreibst hört sich sehr dubios an. Du behauptest Schieberegister wären langsamer als das Schreiben und Lesen einer Textdatei? Nie und nimmer. Deine Verbesserung muss eine andere Ursache haben.
Zitat:Die extra Consumer Loop? D.h. 3 While-Schleifen, die miteinander kommunizieren? Verstehe ich das richtig?
..., die über Queues kommunizieren. Richtig.
Zitat:Mit TDMS habe ich noch nie bis jetzt was zu tun gehabt..Wo finde ich Beispiele...Bzw. Tutorials zu diesem? Damit ich mich näher damit befassen kann...
Ich kann mein VI aus Datenschutzgründen nicht hochladen...Deshalb auch die abstrakte Ausdrucksweise...
Die Informationen bisher helfen mir auf jeden Fall erstmal weiter
Aber was ich noch gern wissen würde...
Diese Producer-Consumer-Struktur wird auf einer der Tabpageslaufen...Der Tabcontrol wird allerdings über die Event-Strutkur gesteuert...Würde das so laufen?
' schrieb:Aber was ich noch gern wissen würde...
Diese Producer-Consumer-Struktur wird auf einer der Tabpageslaufen...Der Tabcontrol wird allerdings über die Event-Strutkur gesteuert...Würde das so laufen?
Keine Ahnung. Leider stößt hier meine Vorstellungskraft respektive hellseherische Fähigkeit an ihre Grenzen. Wenn ich raten müsste, hört sich das nach einer weiteren Schleife an die nur Ereignisse registriert ... aber was weiß ich schon.
„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)