LabVIEWForum.de
Probleme bei der Flanken Auswertung - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Probleme bei der Flanken Auswertung (/Thread-Probleme-bei-der-Flanken-Auswertung)



Probleme bei der Flanken Auswertung - Hubert R. - 24.06.2024 08:51

Hallo zusammen,

im Anhang habe ich ein Vi mit dem ich probiere im einem Boolean Array Flanken auszuwerten.

Mal klappt es mal nicht.

Im Vi habe ich beschrieben wie ich das Vi getestet habe und wann es funktioniert und wann nicht.

Vielleicht kann mir jemand einen Tipp geben wie ich das Vi sauber zum Laufen bekomme.

Gruß Hubert


RE: Probleme bei der Flanken Auswertung - GerdW - 24.06.2024 09:47

Hallo Hubert,

Zitat:Mal klappt es mal nicht.
Weil du nicht-initialisierte Feedback-Nodes verwendest: mal passt der Zustand nach dem Start, mal nicht…

Die meisten lokalen Variablen in deinem VI sind sinnfrei - und sie haben keinerlei Einfluss auf den Init-Zustand der Feedback-Nodes. Noch schlimmer: nach VI stoppen und erneut starten merken sich die Feedback-Nodes auch gern den letzten Zustand…

Tipp:
Verwende statt der Feedback-Nodes im Consumer besser Schieberegister - und initialisiere diese im INIT-State auch korrekt.

Btw: Warum benötigst du zwei Feedback-Nodes, um exakt den gleichen Wert zu speichern? Eine würde auch ausreichen…


RE: Probleme bei der Flanken Auswertung - Hubert R. - 24.06.2024 11:16

Hallo Gerd,
Schieberegister war der Denkanstoß. Die Feedback-Nodes habe ich entfernt. Den OK Button auch. Event durch Array.

Und ich denke mir, warum kompliziert, wenn es auch einfach geht.

Jetzt macht das Vi was es soll.

Schönen Tag noch Gruß Hubert


RE: Probleme bei der Flanken Auswertung - GerdW - 24.06.2024 11:38

Hallo Hubert,

Zitat:Und ich denke mir, warum kompliziert, wenn es auch einfach geht.
In der Producer-Schleife:
- Schieberegister für das boolsche Array ist unnötig und kann weg!
- Die FALSE-Konstante für das Stop sind unnötig und können weg. Dafür den Tunnel auf "default if unwired" setzen.

In der Consumer-Schleife:
- Die Zeit-Array-Terminals gehören hinter die Case-Struktur, dann brauchst du auch keine lokalen Variablen davon!
- Die FALSE-Konstante für STOP sind unnötig, Tunnel wieder auf "default if unwired" setzen!
- Mir gefallen bei boolschen Operationen AND/OR besser als ">" oder "<"…
- Im "Start"-Case gehören die GetDateTime-Funktionen außerhalb der FOR-Loops. Und eine einzige reicht auch aus!
- Die Case-Struktur innerhalb der FOR-Loops würde ich hier (der Code-Readability wegen) durch ein Select ersetzen.

Beispiel:
[attachment=62791]