LabVIEWForum.de
hohe Systemlast bei großen Abtastzeiten - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenerfassung (DAQ) (/Forum-Datenerfassung-DAQ)
+---- Thema: hohe Systemlast bei großen Abtastzeiten (/Thread-hohe-Systemlast-bei-grossen-Abtastzeiten)



hohe Systemlast bei großen Abtastzeiten - millock - 20.12.2005 20:42

Ich befasse mich seit kurzem mit der Programmierung einer Messoberfläche mit Hilfe von LabVIEW 6.1. Dabei sollen über eine DAQ Karte (NI 6014) Analoge Messwerte aufgenommen werden.
Nun habe ich festgestellt das die Systemauslastung von der eingestellten Abtastrate abhängig ist, was auch soweit nachvollziehbar ist. Allerdings ist die Systemauslastung bei einer eingestellten Abtastrate von 1ms nur etwa 8% während sie bei einer eingestellten Abtastrate von 500ms 100% beträgt. (Die Systemauslastung wurde im Taskmanager beobachtet)

Wie kann ich die Systemauslastung bei hohen Abtastraten >100ms reduzieren?

Ein VI mit dem Prinzipellen Aufabu meines Programms habe ich angehängt


hohe Systemlast bei großen Abtastzeiten - LV_Guy - 22.12.2005 09:03

Hallo Millock,

was du da geschrieben hast, dass die Abtastrate und die CPU- Auslastung einen direkten Zusammenhang haben, stimmt - allerdings nur bedingt.
Ein weiterer wichtiger Faktor ist wie du die Daten erfasst -
So ist eine gepufferete Erfassung wesentlich effizienter als eine Einzelwerterfassung, weil jeder Aufruf eines Einzelwerts jeweils die Aufmerksamkeit der CPU erfordert. Die 6014 hat einen DMA Kanal spendiert bekommen, den du für den direkten Datentransfer nutzen kannst, ohne dass die CPU dabei start herausgefordert wird (wird standardmäßig für gepufferte Erfassung verwendet)

Wirf doch mal einen Blick in die in LabVIEW mitgelieferten Beispiele - als Schlüsselwörter kannst du buffered analog input verwenden.

Hope it helps,

LV_guy

Big Grin


hohe Systemlast bei großen Abtastzeiten - millock - 22.12.2005 21:19

Hi LV_Guy

Danke LV_Guy für den Tip mit der gepufferten Datenerfassung. Allerdings denke ich das ich schon die gepufferte Datenerfassung verwende (siehe dazu auch Signaleingang.vi vom ersten Post). Ich vermute du denkst das ich jeden Schleifendurchlauf einen Wert mit der Funktion AI One PT lese (bei meinen ersten versuchen habe ich das tatsächlich getan), aber mittlerweile konfiguriere ich die Karte zu Messbeginn mit AI Config und starte dann mit AI Start. Anschließend frage ich noch abhängig von der Abtastzeit in Abständen von 0,25s oder 5*Ta die Pufferwerte mittels AI Read ab. Bei Messende führe ich dann noch ein AI Clear aus so wie ich es auch den den von dir beschriebenen Beispielen gefunden habe. Erst seit dem ich meine Oberfläche nach diesem Muster umgestaltet habe habe ich diesen komische Verhalten das ich bei schnellen Abtastraten eine kleine Systemlast habe und bei langsamen Abtastraten eine sehr hohe (100%). Vorher hatte ich das nachvollziehbare Verahlten das mit steigender Abtastrate auch die Systemlast stieg.
Nun suche ich eine Möglichkeit die Systemlast zu verringern.


hohe Systemlast bei großen Abtastzeiten - thomas.sandrisser - 23.12.2005 00:16

wenn du mit lv6.1 arbeitest, hast du auch noch den trad. daq in verwendung -> dieser war in hinsicht auf performance, handling und ressourcen absoult schwach!
die CPU last geht zwar rauf (passiert auch noch bei DAQmx 7.0 und 7.1), jedoch bleibt noch genuegend cpu zum arbeiten, denn der daq task laeuft in einem eigenen unabhaengigen thread!

ich habe leider kein lv6.1 mehr, jedoch kannst du mal folgendes versuchen -> lege deine datenerfassung in den daq-thread! -> lv-einstellungen - execution - preferred execution system ----> data acquisition!