LabVIEWForum.de - Geschwindigkeit von Desktop RT Targets

LabVIEWForum.de

Normale Version: Geschwindigkeit von Desktop RT Targets
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hi,
welche Abtastraten bzw PID Schleifen Raten bekommt man den so mit Desktop Pcs hin?
ich hab hier eine 2,4GHz Maschine mit ner DAQ PCI-6221. bei drei kanälen lesen, PID und einem schreiben stoße ich bei 400 Hz so langsam an die Grenze der Prozessorauslastung, was mache ich falsch?

das Vi gibts unten.
Bitte helft mir! (verdammtSmile

ciao.jeroen

(VI LV 8.2)
danke, der link ist sehr gut.

http://zone.ni.com/devzone/cda/tut/p/id/5423
nach dem benchmarking sollte mein system (s.o.) so ca 20kHz Abtastrate für Lesen, PID und Schreiben schaffen.
es schafft aber nur 2kHz. ist bei meinem code was falsch?!


ciao.jeroen

(VI LV 8.2)
Bau mal dein VI genau so auf: http://zone.ni.com/cms/images/devzone/tut/8daqmxbd1.PNG
(ohne tasks aus dem MAX)
' schrieb:Bau mal dein VI genau so auf: http://zone.ni.com/cms/images/devzone/tut/8daqmxbd1.PNG
(ohne tasks aus dem MAX)

Task is nicht notwendigerweise das Problem (das gezeigte Vorbild braucht implizit auch DAQmx Tasks), aber die Verwendung von High Level VIs die jedesmal den Kanal öffnen, Datenübertragung starten, ein Wert lesen, Kanal wieder schliessen! Minimal Intermediate Level wo der Kanal einmal geöffnet wird ausserhalb der Loop, in der Loop wird nur gelesen und geschrieben und das Schliessen ist auch wieder ausserhalb, macht den grossen Unterschied.

Ob DAQmx Scaling durch Verwendung von virtuellen Kanälen (die Du wohl mit MAX Tasks meinst) die in DAQmx selber konfiguriert sind das Ganze langsamer werden lässt, wage ich aber zu bezweiflen.

Rolf Kalbermatter
[attachment=8958]
(LV 8.2)

ok, ich habs gebaut. Jetzt gibt es Antworten!
mich muss allerdings die MAX Tasks nehmen, weil sonst die gelesenen Werte nicht stimmen, es wird dann immer 5,3V angezeigt, und das DAQmx leifert keinen Fehler. die Geschwindigkeit ist aber mit und ohne MAX Tasks gleich!

ich erreiche 12kHz. danach gibts Fehler bei der DAQ Karte.
man kann es allergings erheblich steigern, wenn man die Karte mit polling betreibt. fantastische 25kHz.
mit 3 Input und 1 Output sind es dann noch 18kHz. (1)
aber sollte mit nem 2,4GHz, 250MB RAM Pc mit NI PCI 6221, 250kS/s nicht noch mehr drin sein?

das heißt für mich, dass ich den weiteren code schlauer einbinden muss.etwa so wie dein link es zeigt.
zb.
- nur jeden 10ten wert an den host senden
- low level tasks für host communication
- umgebungsvariablen nicht so oft abfragen
- rt fifo verwenden

au backe. muss das echt alles so kompliziert sein? Kennt jemand schon ein fertiges grundgerüst für diese Aufgaben
Danke für die Hilfe soweit, bitte bleibt noch ein bisschen dabei, wir habes es bald gelöst!

PS: code für (1) ist in der Anlage.
' schrieb:muss das echt alles so kompliziert sein?
Find ich schon.

Du hast schließlich einen Desktop PC. Für den sind die 25kHz, das sind weniger als 50µs, schon bald Echtzeit. Du musst immerhin bedenken, dass der Prozessor neben deinem Prozess noch andere auch machen muss. Und so eine (graphische) Bildschirmausgabe und ein Frontpanel wollen ja auch noch gemanagert werden. Da ist es doch nicht zuviel verlangt, in das Blockdiagramm etwas mehr Gehirnschmalz zu investieren.
' schrieb:Du hast schließlich einen Desktop PC. Für den sind die 25kHz, das sind weniger als 50µs, schon bald Echtzeit. Du musst immerhin bedenken, dass der Prozessor neben deinem Prozess noch andere auch machen muss. Und so eine (graphische) Bildschirmausgabe und ein Frontpanel wollen ja auch noch gemanagert werden. Da ist es doch nicht zuviel verlangt, in das Blockdiagramm etwas mehr Gehirnschmalz zu investieren.

Also so schnell ist das auch nicht, schau mal bei PCI/ DAQmx auf http://zone.ni.com/devzone/cda/tut/p/id/5423#toc4
der macht die selbe Aufgabe mit 65kHz (ich schaffe wie gesagt 25kHz). ist nur die Frage, in wie weit ich mit diesem System mithalten muss. ich hab kein dual core und meine DAQ Karte ist eine günstige PCI 6221.

ich habe mich wahrscheinlich nicht deutlich ausgedrückt. mit Desktop RT Target meine ich, dass dort nur LabVIEW RT als Betriebsystem (Pharlab) läuft. also gibts dort nichts grafisches. nur Daten I/O über DAQ und Ethernet, sowie (PID) Berechnung.
' schrieb:mit Desktop RT Target meine ich
Ach tatsächlich, in der Überschrift steht RT Target. :blush:Dann erübrigen sich ja meine Bedenken.
Buersten
ich bedanke mich bei allen, die sich gedanken zu dem thema gemacht haben.

ich habe die lösung gefunden:

normale pcs, die als target verwendet werden sind mit die leistungsfähigsten systeme.
die ursache, warum mein programm so langsam lief, waren die netzwerk variablen (shares variables).
sobald man davon ein paar verwendet geht die performace in die knie.

ich habe jetzt einen communication loop gemacht, der nicht so oft läuft (mit 2 netzwerkvariablen) und den PID in einen schnellen loop gepackt.
zusätzlich habe ich die DAQ auf polling geschaltet und die uisamplingrate (konvertierungsrate der samples) manuell auf volle power gesetzt.
auf diese weise schaffe ich eine abtastrate von ca 13kHz

ciao.jeroen
Seiten: 1 2
Referenz-URLs