LabVIEWForum.de - problem mit: "verbindung: ist teil eines kreises"

LabVIEWForum.de

Normale Version: problem mit: "verbindung: ist teil eines kreises"
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen!

Ich bin mit der Materie von LV noch nicht wirklich vertraut.
Jeden tag bissl was Neues.

Aber hier häng ich.

Mein Ziel ist es mit LabVIEW ein JF Flipflop mit separatem Setzen & Rücksetzen Eingang zu realisieren.
Aber bei der Rückführung des Ausgangssignals bekomme ich den Fehler:"Verbindung: ist Teil eines Kreises"

Wenn ich den Umweg über ein anzeigeelement nehme und wiederum den aktuellen wert über den eigenschaftsknoten auslese funktionierts wunderbar.

Also wie könnte ich meinen Aufbau anders realisieren? Ohne den Umweg über die LEDs.

danke schon mal!

cu[attachment=3867]
Hallo!

Ja, das geht bestimmt viel einfacher. Aber da es gerade so spät am Abend ist: Kannst Du eine Wahrheitstabelle anhängen?

Gruß
Oh verclickt!
Wow das geht ja echt fix hier mit den antworten!

Hier kommt die Tabelle

Und zusätzlich wird mit den separaten Setzten / Rücksetzen Eingängen unabhängig vom Takt oder J & K das FF in die entsprechende Lage versetzt.



[attachment=3877]
Das das mit der Rückführung nicht klappt ist ganz klar.

Du benutzt ja zur Berechnung deines Zustandes schon das Ergebnis. Dieses ist aber noch nicht vorhanden. Typischer Fall einer Rekursion.

Du brauchst also eine Möglichkeit, auf das Ergebnis des vorherigen Durschlaufs zuzugreifen. Mit den LEDs und den Knoten geht das, weil der LV bei dem Eigenschaftsknoten des LEDs einfach den Zustand dessen abruft. Und der ist immer gesetzt, auch wenn du das Vi zum ersten mal startest (default auf false).
Ohne der LED wäre dein Zustand noch nicht gesetzt, daher die Kreis Fehlermeldung.

Die eigentliche Variante um solch rekursive Probleme zu behandeln ist eine While Schleife mit Shiftregister. Das Shiftregister zieht dir immer den Wert des letzten Durchlaufs (Takts bei dir) mit. Das Shiftregister hat auch einen gesetzten Anfangszustand, den du mittels Konstante oder Bedienelement setzen kannst.

Ich habe dir dein Vi entsprechend modifiziert. Eleganter und übersichtlicher ist es dadurch allerdings nicht geworden. Rolleyes

Gruß

edit: Klassisch zuerst gearbeitet dann gedacht! Habe das Vi nun für v.7.1 angehängt und sicherheitshalber noch einen Screenshot dazu.
@Kvasir

Klasse Erklärung!
Ist verständlich und leuchtet ein!

Dein VI lässt sich öffnen allerdings entspricht die Funktion nicht ganz meiner Vorstellung.
Sobald ich das VI starte blinken bereits alles LEDs im gleichen Takt.
Und bei Betätigung der Buttons ändert sich das ganze geringfügig.

Aber dein VI hat mich auf eine Möglichkeit gebracht. Meine Lösung hängt an und ich bin eigentlich ganz zufrieden.

Danke an der Stelle!

Und wie das Leben so ist kommt auch gleich das Nächste Problem:

Wenn ich das ganze zweimal als SUB VI im gleich VI einbringe beeinflussen sich die SUB VIs gegenseitig:
also wenn der Ausgang des ersten auf HIGH steht wird der Ausgang des zweiten parallel auf HIGH gesetzt.

Ist das normal? Oder hab ich beim Generieren des SUB VI schon einen Fehler gemacht?
Bzw. wie kann ich zwei mal das gleich SUB VI verwenden wie es z.B. auch mit normalen "UND"-Gattern geht?

gruß & thx[attachment=3884]
Hi doc,

speichere dein FF mal als "Ablaufinvariante Ausführung" (Reentrant execution), das sollte dein Problem beheben. Rechtsklick aufs Icon >> VI Properties >> Execution. Dabei wird während der Code-Ausführung jeweils eine neue Instanz des VI im Speicher erzeugt!

Gruss
Achim
Ja genau so hab ich mir das vorgestellt!

Im Grundlagenbuch konnt ich nix davon finden!?

Danke! Hat mir erheblich weitergeholfen!

bis zum nächsten Mal (Ich hab da so ein Gefühl)
Referenz-URLs