' schrieb:@i2dx
Danke erst mal für die ausführliche Information. Ich werde Dein VI nochmal genau unter die Lupe nehmen und melde mich dann noch mal. Was mich stutzig macht ist, dass die CPU-Belastung, währen das VI ausgeführt wird, 100% beträgt.
sorry, dass ich mich erst jetzt dazu äußere, ich war auf Geschäftsreise und konnte mich nicht drum kümmern ...
die 100% Systemlast wundern mich etwas, ich hab's auf einem PXI getestet, da läuft es so wie von mir beschrieben. Ich hab leider grad keine PCI-M-Serie da, aber ich werde das ggf. nochmal nachprüfen.
Zum Thema Puffer, der beim Modul "timing" festgelegt wird: DAQmx bestimmt selbst, wie groß der Puffer ist. Auszug aus der Hilfe:
Output Tasks
For generations, the amount of data you write before starting a generation determines the size of the buffer. The first call to a Multiple Samples version of the Write function/VI creates a buffer and determines its size.
You also can use the Output Buffer Config function/VI to create an output buffer. If you use this function/VI, you must use it before writing any data.
The samples per channel attribute/property on the Timing function/VI does not determine the buffer size for output. Instead it is the total number of samples to generate. If n is your buffer size, setting samples per channel to 3×n generates the data in the buffer exactly three times. To generate the data exactly once, set samples per channel to n.
NI-DAQmx does not create a buffer when the sample mode on the Timing function/VI is set to hardware-timed single point.
Soweit ich mein VI nun selbst verstehe mache ich folgendes: Da ich den Task starte ohne vorher einen Puffer zu füllen, wird kein Puffer erstellt. Wenn ich das Array "reinschreibe" muss der Treiber also jedes Array Element einzeln abklappern weil kein Puffer da ist, wo der ganze Block gespeichert werden könnte und dadurch entsteht das gefühlte Hardware-Timing ...