LabVIEWForum.de - Zeitgesteuerte Schleifen blockieren sich

LabVIEWForum.de

Normale Version: Zeitgesteuerte Schleifen blockieren sich
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo,

ich habe ein großes Programm auf einem cRio 9035. auf diesem habe ich 4 Zeitegesteuerte Schleifen jeweils 2 mit 25ms und zwei mit 50ms (alle unterschiedliche Prioritäten). Des weiteren habe ich andere Schleifen die normal laufen, meistens so mit 30ms +-(Kommunikation zu Umrichter oder anderen Ethernet Teilnehmern)! Jetzt habe ich ein Benschmark durchgeführt und immer mal wieder zeigt mir dieser, das meine Schleifen mit bis zu 500ms laufen, statt den vorgegeben 25ms.

Hat damit schon jemand erfahrung? Kann das sein, das das cRio das nicht schafft alles zu verarbeiten??

Mfg Romano
Hallo Romano,
Parallelschleifen, hier wird genau das gleiche Thema behandelt.

Gruß
Freddy
Hallo, der Link führt genau zu meinem Eintrag??
Parallelschleifen
hab es korrigiert.
ok danke, hatte es selber schon gefunden. Das Problem ist daber dabei, das ich genau so arbeite. Also eigene gekappselte VI's mit Queue und Melder. Diese Zwei Schleifen sind "eigentlich" nicht voneinander abhängig. Es wird in dieser Schleife jeweils ein FIFO zum beispiel gelsen, welche vom FPGA kommt. Klar werden auch damit gleich Berechnungen gemacht, aber diese jeweils autonom in der jeweiligen Schleife.
Zitat: Klar werden auch damit gleich Berechnungen gemacht
Das liegt an der Einstellung des VI.

Datei -> VI Einstellungen -> Kategorie "Ausführung" -> Ablaufinvarianz
hier wird "Ablaufinvariante Ausführung mit vorbelegter Kopie" eingestellt.

Der Unterschied zur normalen Einstellung ist:
wenn ein VI im Speicher ist, wird es von allen verwendet. D.h. ein Programmteil muss warten bis das VI frei ist. Da kommen die Verzögerungen her.

Aber ACHTUNG Du verbrauchst mehr Speicher.

Gruß
Freddy
Danke, für diesen Hinweis. Darauf achte ich aber schon bei der Programierung. Also daran kann es leider auch nicht liegen. Ich habe keine VI's die in anderen Verwendet werden. Wenn doch setze ich sie immer auf invariant. der Speicher spielt zum Glück noch keine Rolle.

Es ist ja auch so, das es manchmal funktioniert, und manchmal die Zeit einfach hoch schnellt.

Wenn es an einem VI liegen würde, wäre die Zeit ja immer sehr groß, und nicht nur manchmal
Kannst Du das VI hochladen?

Gruß
Freddy
Leider nein, ist zu komplex.

Ist es denn allemein möglich, das die diese Schleifen so extrem behindern, das es zu solch exorbitanten Zeitsprüngen kommen kann? Wir reden ja immerhin auch von einem cRio. Das ist ja ein Echtzeit-System und sollte sowas ja eigentlich schon verarbeiten können!
Hast du schon mal geschaut, wie es mit der CPU-Auslastung und Speicherauslastung aussieht?

4 Timed Loops auf einem Dual-Core-Target, davon ist abzuraten. Die Empfehlung lautet eigentlich max. 1 Timed-Loop pro Core.

Verwendest du RT-FIFOs, die können bei falscher Verwendung die CPU-Auslastung gnadenlos in die Höhe jagen.

Gruß, Jens
Seiten: 1 2
Referenz-URLs