Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
17.02.2010, 13:11 (Dieser Beitrag wurde zuletzt bearbeitet: 17.02.2010 13:16 von Burning_Man.)
damit will ich bei Überschreiten einer bestimmten Temperaturdifferenz erreichen dass eine LED dauerhaft leuchtet (auch bei Temperaturabfall).
Dies soll dann manuell durch einen RESET Button rückgesetzt werden können.
Das funktioniert auch aber ich möchte das SubVI mehrmals im HauptVI ausführen (ich habe mehrer Datenkanäle zur Temperaturerfassung).
Das Problem ist jetzt wenn ein Kanal eine Temperaturüberschreitung signalisiert, habe ich den Alarm bei allen Kanälen.
Ich dachte das SubVI sei in sich geschlossen, wie kann das dann sein? Ich benutze ja auch keine globalen Variablen
Das Problem ist deine Feedback-Node!
Diese wird nirgends neu initialisiert und funktioniert dadurch wie eine FGV sprich:
Der Wert bleibt auch für die nächste Ausführung erhalten!
' schrieb:Das Problem ist deine Feedback-Node!
Diese wird nirgends neu initialisiert und funktioniert dadurch wie eine FGV sprich:
Der Wert bleibt auch für die nächste Ausführung erhalten!
Eher nicht. Es geht doch um mehrfache parallele Ausführung eines VIs, ohne dass sich die Aufrufe gegenseitig in die Quere kommen.
@Burning_Man: Such mal im Forum nach dem Schlagwort "ablaufinvariant" oder "reentrant".
Gruß, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
Ein Feedback-Node behaelt den Wert von zuvor? Und solange bis was(?) passiert? Ich hab sowas noch nie benutzt.
Wenn ich mehrere gleiche SubVIs an verschiedenen Stellen im Programm einbaue, ist das aequivalent zu jeweils unabhaengigem neuem code im Programm (also waere es dasselbe, wenn ich den eigentlichen Code vom SubVI immer an die entsprechende Stelle manuell reinkopiere), oder merkt sich das SubVI Sachen, die beim naechsten Aufruf dann wieder da sind.
Wenn letzteres wahr waere und ein Feedback-Node den Wert behaelt, dann waere es ja klar, dass alle Alarme angehen.
Jens ist nicht der Meinung. Das bedeutet mindestens eine meiner Aussagen hier ist falsch, weil Jens wahrscheinlich meistens Recht hat- was ist falsch?
17.02.2010, 15:06 (Dieser Beitrag wurde zuletzt bearbeitet: 17.02.2010 15:09 von Lucki.)
' schrieb:Ein Feedback-Node behaelt den Wert von zuvor? Und solange bis was(?) passiert?
Durch den Feedback enthält das Sub-VI so eine Art Flip.Flip, es ist schaltungstechnisch gesprochen eine "sequentielle Schaltung" mit internem Speicher. Das VI hat nur einen solchen Speicher, auch wenn es von verschiedenen Ikons für unterschiedliche Aufgaben aufgerufen wird. Es bringt in diesem Fall dann alles durcheinander.
Die unelegante Methode, das aus der Welt zu schaffen ( - also so wie ich es als blutiger Anfänger selbst mal gemacht hatte - ) wäre: Von dem Sub-VI durch Kopieren Clones mit unterschiedlichen Namen zu erzeugen, also SUB1.vi, SUB2.vi..., und für jedes Ikon im Haupt.vi einen anderen Clon verwenden.
Genau das wird aber intern gemacht, ohne daß du davon etwas merkst, wenn Du in den VI-Eigenschaften das VI "reentrant" machst.
17.02.2010, 15:12 (Dieser Beitrag wurde zuletzt bearbeitet: 17.02.2010 15:16 von unicorn.)
' schrieb:Ein Feedback-Node behaelt den Wert von zuvor?
von der vorherigen Abarbeitung des Knotens
' schrieb:..Wenn ich mehrere gleiche SubVIs an verschiedenen Stellen im Programm einbaue, ist das aequivalent zu jeweils unabhaengigem neuem code im Programm (also waere es dasselbe, wenn ich den eigentlichen Code vom SubVI immer an die entsprechende Stelle manuell reinkopiere),
Nein
' schrieb:oder merkt sich das SubVI Sachen, die beim naechsten Aufruf dann wieder da sind.
Ja.
' schrieb:Wenn letzteres wahr waere und ein Feedback-Node den Wert behaelt, dann waere es ja klar, dass alle Alarme angehen.
Jens ist nicht der Meinung. Das bedeutet mindestens eine meiner Aussagen hier ist falsch, weil Jens wahrscheinlich meistens Recht hat- was ist falsch?
Ah, ok- Danke fuer diese Worte der Erklaerung
Ich glaube naemlich bei meiner alten LabVIEW Version gibt es die Feedbackknoten noch gar nicht. Deshalb wollte ich mal wissen was die machen... Ich brauch echt ein Update
Ganz konkret heisst das also: Wenn beim ersten Aufruf eine eins am Feedbackknoten ankommt kommt hinten eine 1 raus.
Egal was beim naechsten mal ankommt (sagen wir mal eine zwei) - es kommt die eins von zuvor heraus.
Bei dritten Aufruf kommt dann die zwei ?