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!
Ich hoffe ihr versteht englisch, habe keine Lust es nochmal zu übersetzen, ist ja bei LV sowie alles englisch oder deutsch/englisch Gemisch:
I continuously output analog voltage values with a DAQ card (NI-PCI 6713). To obtain a fast and reliable homogeneous sampling I use the sample clock of the board and a LabVIEW waveform signal. In the waveform for each time step of the sample time the output voltage value is saved.
As seen in the block diagram I can select whether the waveform content is outputted only once ("finite samples") or repetitiously ("continuous samples"). However I want to repeat it only for an exact defined number, let's say exact 100 times. Also If I stop it manually the output should stop at the end of a waveform cycle and not anywhere. I have three options:
To do this I can:
A) replicate 100 times the waveform itself ---> insufficient memory
or
B) output waveform only once and repeat this procedure 100 times --> no interruption-free voltage output as the device reinitializes every time
or
C) press stop --> incomplete cycle, output stops at any position of the waveform
No options works well as I need a homogeneous output of complete waveforms without interrupting device initialization procedures and avoidance of too long waveforms.
Anzeige
06.12.2008, 09:03 (Dieser Beitrag wurde zuletzt bearbeitet: 06.12.2008 13:27 von jg.)
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
Waveform Ausgabe mit Sample Clock
Hört sich irgendwie nach Crossposting an.
Wenn Du das schon machen musst (was hier aber nicht erwünscht ist), dann sag' doch wenigstens, wo Du noch gepostet hast (z.B. bei NI, LAVA,....).
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
06.12.2008, 09:10 (Dieser Beitrag wurde zuletzt bearbeitet: 06.12.2008 09:10 von Lucki.)
Ein entsprechendes Beispiel ist hier:
Beispiele/DAQmx/Signnalerf.. ..Hardware/Erzeugung.../Spannung/
Cont Gen Voltage Wfm-Int Clk-Non Regeneration.VI
Das Entscheidende ist der Modus "Continuous Sample" in Verbindung mit "Do Not Allow Regeneration".
Die Ausgabe ist unterbrechungsfrei kontinuierlich, aber du mußt in das DAQmx Write in einer Schleife laufend Daten nachschieben. (Das DAQmx wartet, bis es neue Daten braucht und synchronisiert die Schleife).
In Deinem Falle wären das zwar immer die gleichen Daten, aber dank der Schleife hast Du die Möglichkeit, die Ausgabe am Ende jedes Zyklus abzubrechen, also z.B nach N Zyklen oder wann immer Du willst.
Im Modus "Allow Regeneration" (= Default-Modus bei Kontinuierlicher Ausgabe) brauchtest Du zwar die Schleife nicht, ein einmaliger Aufruf von DAQmx Write würde genügen. Aber die Möglichkeit des kontrollierten Abbruches hättest Du dann nicht.
07.12.2008, 01:06 (Dieser Beitrag wurde zuletzt bearbeitet: 07.12.2008 01:11 von horatius.)
Danke "Lucki", dein Hinweis scheint vernünftig. Kann es aber erst in ein paar Wochen testen. werde mich gegegebenfalls nochmal hier melden.
Dass Crossposting nicht erwünscht ist bzw. als unhöflich empfunden wird, stimme ich nicht zu. Denn wenn ich in der einen Bibliothek ein Buch nicht bekomme, dann gehe ich zur nächsten. Warum sollte das nicht auch für Foren gelten? Nicht überall sind dieselben Leute und man erreicht dadurch eine viel größere Personenzahl. Allerdings sehe ich ein, dass man angeben sollte, wo man vorher schon nachgefragt hat. Vielleicht hilft mir jemand auf die Sprünge, warum es unhöflich sein soll (vorausgesetzt man hat auch die anderen Foren angegeben).
' schrieb:Danke "Lucki", dein Hinweis scheint vernünftig. Kann es aber erst in ein paar Wochen testen. werde mich gegegebenfalls nochmal hier melden.
Dass Crossposting nicht erwünscht ist bzw. als unhöflich empfunden wird, stimme ich nicht zu. Denn wenn ich in der einen Bibliothek ein Buch nicht bekomme, dann gehe ich zur nächsten. Warum sollte das nicht auch für Foren gelten? Nicht überall sind dieselben Leute und man erreicht dadurch eine viel größere Personenzahl. Allerdings sehe ich ein, dass man angeben sollte, wo man vorher schon nachgefragt hat. Vielleicht hilft mir jemand auf die Sprünge, warum es unhöflich sein soll (vorausgesetzt man hat auch die anderen Foren angegeben).
Weil die Hilfe hier im Forum (genauso wie bei LAVA) auf freiwilliger Basis erfolgt.
Es macht mich aber nicht glücklich, wenn schon woanders eine Antwort existiert, von der ich ohne Hinweis auf das Crosspossting nichts wissen kann. Weil dann hätte ich mir mglw. gar keine Gedanken machen müssen. Wenn ich jedoch davon weiss, kann ich selber kurz nachschauen.
Verstanden, wieso man Crossposting erwähnen sollte?
Übrigens, auch auf LAVA existiert diese Regel.
Also noch mal zusammengefasst:
Crossposting im Prinzip möglich, aber NUR unter Angabe des Links zum Crossposting, ansonsten ist es unhöflich gegenüber den freiwilligen Antwortern in den Foren.
Gruß, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
' schrieb:Ein entsprechendes Beispiel ist hier:
Beispiele/DAQmx/Signnalerf.. ..Hardware/Erzeugung.../Spannung/
Cont Gen Voltage Wfm-Int Clk-Non Regeneration.VI
Das Entscheidende ist der Modus "Continuous Sample" in Verbindung mit "Do Not Allow Regeneration".
Die Ausgabe ist unterbrechungsfrei kontinuierlich, aber du mußt in das DAQmx Write in einer Schleife laufend Daten nachschieben. (Das DAQmx wartet, bis es neue Daten braucht und synchronisiert die Schleife).
In Deinem Falle wären das zwar immer die gleichen Daten, aber dank der Schleife hast Du die Möglichkeit, die Ausgabe am Ende jedes Zyklus abzubrechen, also z.B nach N Zyklen oder wann immer Du willst.
Im Non-Regeneration Modus gebe ich Spannungen analog aus, (per Sample Clock mit NI PCI6713). Sample rate ist eigentlich 20000Hz, aber habe es mal auf 100000 Hz gestellt wegen der Meldung, die ja meint man soll die Sample Rate erhöhen. bekomme ich ein Bufferproblem. Siehe Bilder. Der Fehler hängt mit der Rechnerbelastung zusammen, d.h. wenn ich den Rechner anderweitig (auch nur wenig) belaste, kann er nicht mehr die Daten ausgeben. Nech einer Weile (wenige 1-2h) bringt er die Meldung, auch wenn man nichts am Rechner macht.
Meine Sample Rate ist hoch genug. Es gibt einen Property Node für Buffer mit Einstellung für (onboard)-Buffer. Ich weiß aber nicht, was ich da einstellen soll.