20.08.2013, 11:46
Hallo liebes Forum,
ich habe ein kleines großes Problem und wäre wirklich sehr über Hilfe dankbar
Ich bereite gerade eine Messung vor und will hierzu zwei Task mit mehreren Kanälen messen (den einen Task mit ca 10kHz den Anderen mit 1 MHz) und speichern. Ich habe an anderer Stelle des Forums den Tipp bekommen einen Ringspeicher zu benutzen, dies hat mit nur einem einzigen Task super funktioniert aber bei einem zweiten nicht so ganz…
Ich zeige euch am besten mal mein Programm:
Ich erstelle zuerst die verschiedenen Kanäle. Ich benutze zwei Schleifen, da ich ja auch mit zwei unterschiedlichen Abtastraten messen will und es zwei verschiedene Mess-Devices sind. Den oberen Task will ich mit 10 kHz abtasten, den Unteren mit 1Mhz.
[attachment=45964]
So und jetzt fangen die Probleme an. Als nächstes lese ich in jeweils zwei Schleifen die zwei verschiedenen Kanalblöcke aus und schicke sie mit je einem Queue zu der jeweiligen Speicher-Schleife. Dort schreibe ich sie in eine TDMS-Datei rein. Damit die nicht allzu groß wird, will ich alle 600 „Umdrehungen“ eine neue Datei erstellen und beschreiben.
[attachment=45966]
Mein Problem liegt jetzt darin, dass ich das Gefühl habe, dass nur ein Queue erstellt wird. Ich überwache ebenfalls die Queue-Größe und die eine ist immer Null, während die Andere sehr sehr schnell anwächst.
Daher meine Frage:
1.) Ist es überhaupt möglich zwei Ringspeicher in einem VI zu benutzen?
2.) Wie sorge ich dafür, dass der Ringspeicher nicht so schnell eine sehr große Größe annimmt ohne einen „Out of Memory“-Fehler zu bekommen?
Ich hoffe ich konnte mein Problem einigermaßen verständlich skizzieren... Würde mich wirklich sehr über eine Antwort freuen :-)
Viele Grüße,
Gerald
ich habe ein kleines großes Problem und wäre wirklich sehr über Hilfe dankbar
Ich bereite gerade eine Messung vor und will hierzu zwei Task mit mehreren Kanälen messen (den einen Task mit ca 10kHz den Anderen mit 1 MHz) und speichern. Ich habe an anderer Stelle des Forums den Tipp bekommen einen Ringspeicher zu benutzen, dies hat mit nur einem einzigen Task super funktioniert aber bei einem zweiten nicht so ganz…
Ich zeige euch am besten mal mein Programm:
Ich erstelle zuerst die verschiedenen Kanäle. Ich benutze zwei Schleifen, da ich ja auch mit zwei unterschiedlichen Abtastraten messen will und es zwei verschiedene Mess-Devices sind. Den oberen Task will ich mit 10 kHz abtasten, den Unteren mit 1Mhz.
[attachment=45964]
So und jetzt fangen die Probleme an. Als nächstes lese ich in jeweils zwei Schleifen die zwei verschiedenen Kanalblöcke aus und schicke sie mit je einem Queue zu der jeweiligen Speicher-Schleife. Dort schreibe ich sie in eine TDMS-Datei rein. Damit die nicht allzu groß wird, will ich alle 600 „Umdrehungen“ eine neue Datei erstellen und beschreiben.
[attachment=45966]
Mein Problem liegt jetzt darin, dass ich das Gefühl habe, dass nur ein Queue erstellt wird. Ich überwache ebenfalls die Queue-Größe und die eine ist immer Null, während die Andere sehr sehr schnell anwächst.
Daher meine Frage:
1.) Ist es überhaupt möglich zwei Ringspeicher in einem VI zu benutzen?
2.) Wie sorge ich dafür, dass der Ringspeicher nicht so schnell eine sehr große Größe annimmt ohne einen „Out of Memory“-Fehler zu bekommen?
Ich hoffe ich konnte mein Problem einigermaßen verständlich skizzieren... Würde mich wirklich sehr über eine Antwort freuen :-)
Viele Grüße,
Gerald