17.02.2010, 13:11
(Dieser Beitrag wurde zuletzt bearbeitet: 17.02.2010 13:16 von Burning_Man.)
Beitrag #1
|
Burning_Man
LVF-Gelegenheitsschreiber
Beiträge: 84
Registriert seit: Nov 2009
2009
2009
de
7
Deutschland
|
ein SubVI mehrmals unabhängig ausführen
Hallo,
ich habe folgendes SubVI:
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
|
|
|
17.02.2010, 14:10
Beitrag #2
|
|
|
17.02.2010, 14:22
Beitrag #3
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
ein SubVI mehrmals unabhängig ausführen
' 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!
Einführende Links zu LabVIEW, s. GerdWs Signatur.
|
|
|
17.02.2010, 14:51
Beitrag #4
|
Andinger
LVF-Gelegenheitsschreiber
Beiträge: 65
Registriert seit: Feb 2010
7.1
2010
de_en
95447
Deutschland
|
ein SubVI mehrmals unabhängig ausführen
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.)
Beitrag #5
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
ein SubVI mehrmals unabhängig ausführen
' 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.)
Beitrag #6
|
|
|
17.02.2010, 15:24
Beitrag #7
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
ein SubVI mehrmals unabhängig ausführen
Vielleicht hätte ich mit meiner Aussage "eher nicht" genauer sein sollen. "Eher nicht" bezieht sich auf die Aussage
' schrieb:Das Problem ist deine Feedback-Node!
Das Problem ist nicht die Feedback-Node, sondern dass bei mehrfacher unabhängiger Ausführung eines VIs dieses als reentrant definiert sein muss.
Den Rest hat unicorn abgearbeitet, danke
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!
Einführende Links zu LabVIEW, s. GerdWs Signatur.
|
|
|
17.02.2010, 23:39
Beitrag #8
|
Andinger
LVF-Gelegenheitsschreiber
Beiträge: 65
Registriert seit: Feb 2010
7.1
2010
de_en
95447
Deutschland
|
ein SubVI mehrmals unabhängig ausführen
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 ?
Hoert sich irgendwie wie ein Shiftregister an..
|
|
|
18.02.2010, 07:36
Beitrag #9
|
|
|
18.02.2010, 10:46
|
Burning_Man
LVF-Gelegenheitsschreiber
Beiträge: 84
Registriert seit: Nov 2009
2009
2009
de
7
Deutschland
|
ein SubVI mehrmals unabhängig ausführen
Hallo,
da scheine ich ja in ein Wespennest gestochen zu haben
ich habe aber mein Problem dank eurer Hilfe lösen können !
|
|
|
| |