LabVIEWForum.de - Warten auf DAQ?

LabVIEWForum.de

Normale Version: Warten auf DAQ?
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Habe folgendes Problem;

Servomotor fährt und ich nehme mit einem CompactDAQ insgesamt 7 Kanäle auf und schreibe sie in ein Array. Wobei das Array mit jedem Schleifen durchlauf um 1 Spalte erweitert wird.
Währenddessen werden 2 Messwertevektoren mittels XY-Graphen dargestellt.
Der wird jedoch nur alle 240ms aktualisert, weil die Schleife so lange braucht.

Jedoch sollte die Schleife nur knappe 30ms brauchen, wenn man größten und kleinsten Timerwert von einander abzieht.
Hast Du Dich schon mal mit dem Producer Consumer Modell auseinandergesetzt, d.h. mehrere parallele Schleifen, die per Queues miteinander kommunizieren, also z.B. eine Schleife zum Erfassen, eine Schleife zum Aufbereiten und eine Schleife zur Darstellung?

Gruß Markus
' schrieb:Hast Du Dich schon mal mit dem Producer Consumer Modell auseinandergesetzt, d.h. mehrere parallele Schleifen, die per Queues miteinander kommunizieren, also z.B. eine Schleife zum Erfassen, eine Schleife zum Aufbereiten und eine Schleife zur Darstellung?

Gruß Markus

Nein habe ich noch nicht, dazu noch ein Buch / gutes Tutorial
Hier ein grober Überblick:
http://zone.ni.com/devzone/cda/tut/p/id/3023

Gruß Markus
' schrieb:Hier ein grober Überblick:
http://zone.ni.com/devzone/cda/tut/p/id/3023

Gruß Markus

Habe mir gerade das Video von eg angeschaut über parallele Schleifen.

Was ich nicht verstehe inwiefern mir das bei dem Programm weiterhelfen kann.
Der Servomotor sollte zwar die ganze Zeit fahren nur irgendwie muss ich ja auch gleichzeitig die Daten aufnehmen und auch den Graph zeichnen.

Mir fehlt jetzt noch der Zusammenhang wie ich die Messwerte dann zeitgleich in ein Array spielen soll und darstellen?

Edith meint: Ich sollte mein Einführungsbuch mal genauer lesen Rolleyes
' schrieb:Habe mir gerade das Video von eg angeschaut über parallele Schleifen.

Was ich nicht verstehe inwiefern mir das bei dem Programm weiterhelfen kann.
Der Servomotor sollte zwar die ganze Zeit fahren nur irgendwie muss ich ja auch gleichzeitig die Daten aufnehmen und auch den Graph zeichnen.

Mir fehlt jetzt noch der Zusammenhang wie ich die Messwerte dann zeitgleich in ein Array spielen soll und darstellen?

Edith meint: Ich sollte mein Einführungsbuch mal genauer lesen Rolleyes

Y-P: Danke nochmals für den Hinweis, hab mir gestern noch parallele Schleifen und Synchronisation angeschaut.
Dazu habe ich jetzt frage zu meinem Programm:
Ich dachte an 3 Schleifen
Schleife 1: mit Ereignisstruktur, abgesehen von stop, ... gibt erreichen einer best. Kraft (bei Änderung einer BOOL) die Drehrichtung an den Motor aus.
Schleife 2: Producer; Hier werden nur die Messwerte aufgenommen und mittels Queue an Schleife 3 weitergereich
Schleife 3: Berechnen der Messwerte und Ausgabe in Array + XY-Graph. Weiters wird hier die Kraft ausgewertet.
zB.: Kraft größer 200N -> BOOL 1 auf TRUE und das dann in Wert (SGL) schreiben. Dadurch sollte doch dann das Ereignis aus Schleife 1 aktiv werden?

Oder habe ich da einen Denkfehler?
Hört sich gut an. Big Grin

Gruß Markus
Referenz-URLs