LabVIEWForum.de
Optimierung ?! - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenerfassung (DAQ) (/Forum-Datenerfassung-DAQ)
+---- Thema: Optimierung ?! (/Thread-Optimierung)



Optimierung ?! - Mueller_BT - 09.02.2011 11:00

Hallo,

ich habe hier einen kleinen Prüfstand für Zähler. Drei Zähler werden dabei mit einem Vergleichszähler verglichen.
Der Vergleichszähler hängt am Hardwarezähler meines USB-6008, die drei Prüflinge werden per Software in drei
identischen Schleifen gezählt. Es funktioniert soweit auch ganz gut, jedoch habe ich immer mal wieder eine Messung dazwischen in der es zu großen Abweichungen kommt, vermutlich durch den Programmablauf. Hat da vielleicht jemand eine Idee oder
einen Verbesserungsvorschlag ?

Schleife Vergleichszähler
[attachment=32200]

Schleife Prüfling (eine von drei)
[attachment=32201]


RE: Optimierung ?! - Falk - 09.02.2011 19:43

Moin,

ich überblicke nicht ganz was du machen willst. Aber für meines Erachtens benutzt du eindeutig zu viele globale Variablen. Als Beispiel in der Prüflingsschleife: Du schreibst und liest innerhalb eines Schleifendurchlaufes die Variable "Impulse Zähler 1". Wie schauen dabei die Abhängigkeiten aus? Ich bin jetzt nicht der Experte in den globalen Variablen von LabVIEW (ich baue mir meine selbst), aber unter bestimmten Umständen kann es eventuell vorkommen das erst aus der Variablen gelesen und anschließend geschrieben wird. Aber es kann auch anders herum sein, also aus meiner Sicht völlig unbestimmt. Darum meine Frage welche Abhängigkeiten zwischen dem oberen und unteren Teil der Prüflingsschleife bestehen.

Schöne Grüße
Falk


RE: Optimierung ?! - Richard - 09.02.2011 20:19

Hallo,

du generierst dir Race Conditions vom Feinsten. Brauchst du die ganzen Globalen Variablen?

Wenn ja, dann musst du irgendwie, normal über Fehlercluster. Da würde sich auch eine GFV anbieten.

Der Datenfluss ist bei dir nicht festgelegt.

Wie beendest du eigentlich das VI, eine While-Schleife mit angeschlossener Konstante kann ja nicht sauber beendet werden.

Was bringt das i<0 in der ersten Schleife? Das ist doch immer False Undecided

Gruß Richard