LabVIEWForum.de
Frage zur Queued State Machine / Producer-Consumer-Struktur - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Frage zur Queued State Machine / Producer-Consumer-Struktur (/Thread-Frage-zur-Queued-State-Machine-Producer-Consumer-Struktur)

Seiten: 1 2


Frage zur Queued State Machine / Producer-Consumer-Struktur - eg - 20.08.2008 11:56

Gibt es keine anderen Alternativen? Mich würde es auch interessieren.

Gruß, eg


Frage zur Queued State Machine / Producer-Consumer-Struktur - IchSelbst - 20.08.2008 12:25

' schrieb:Also: Das Timeuet sei 10sec. Es wird auf 200ms verkürzt, und es werden bis zu 50 Versuche gemacht, eine Flanke zu lesen. Wenn alls 50 Versuche vergeblich waren, dann hat man ein echtes Timout.
So würde ich das machen. Allerdings verkürzt auf 50ms.

Was mir an den Countern- bzw. Frequenzmessern bei NI nicht gefällt, ist die Tatsache, dass ein Read eben so lange wartet, bis ein neuer Wert anliegt. Ich fände es besser, wenn der Read den aktuellen Stand liefern würde. Hat sich nichts geändern, hab ich wenigstens in einem festen Abtastraster (!) den aktuellen Wert. Auf Änderungen kann ich auch im Programm reagieren.

Hinweis:
Ob es z.B. ein Property gibt, um den aktuellen Stand zu lesen, weiß ich nicht. Mein Kollege befasst sich mit den Countern.


Frage zur Queued State Machine / Producer-Consumer-Struktur - Achim - 20.08.2008 13:03

' schrieb:Was mir an den Countern- bzw. Frequenzmessern bei NI nicht gefällt, ist die Tatsache, dass ein Read eben so lange wartet, bis ein neuer Wert anliegt. Ich fände es besser, wenn der Read den aktuellen Stand liefern würde.

Wenn du eine reine Puls-ZÄHLUNG machst, funktioniert das genauso! D.h. bei mehrmaligem Lesen kriegst du den gleichen Wert, wenn du schneller abfragst als neue Impulse kommen. Der Timeout greift hier nicht, es ist ja ein gültiger Zählerstand vorhanden!

Anders siehts eben bei der Pulsbreitenmessung aus...hier bezieht sich der Timeout wohl auf die Flanken...es wird auf eine neue Flanke gewartet und zwar so lange, bis der Timeout zuschlägt!


Frage zur Queued State Machine / Producer-Consumer-Struktur - Lucki - 21.08.2008 10:37

' schrieb:Anders siehts eben bei der Pulsbreitenmessung aus...hier bezieht sich der Timeout wohl auf die Flanken...es wird auf eine neue Flanke gewartet und zwar so lange, bis der Timeout zuschlägt!
Und wenn man das Warten unterbrechen möchte, dann sähe die Löung dafür prinzipiell so aus:

[attachment=14086]
(Statt des "DAQmx Wait until Done-VI" würde das Impulszähl-VI hinkommen)
Das Timeout ist kurz, es kommt also, solange kein neuer Impuls eingetroffen ist, immer wieder zum Timeout-Fehler. Die Schleife wird dann solange wiederholt, bis ein Impuls eintrifft. Wenn das zu lange dauert, dann hat man aber jederzeit die Möglichkeit zum Abbruch über die Stop-Taste.
Das Beispiel ist noch nicht richtig professionell, weil ein anderer Fehler als der Timeout-Fehler auch ein Hängenbleiben in der Schleife bewirken würde. Es sollte also noch eine differenziertere Fehlerbehandlung eingebaut sein.

Übrigen: Habe in den Tips und Tricks einen Tread über Stoppen eingerichtet, und immerhin einen Trick schon gepostet