ein SubVI mehrmals unabhängig ausführen - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +--- Thema: ein SubVI mehrmals unabhängig ausführen (/Thread-ein-SubVI-mehrmals-unabhaengig-ausfuehren) Seiten: 1 2 |
ein SubVI mehrmals unabhängig ausführen - Burning_Man - 17.02.2010 13:11 Hallo, ich habe folgendes SubVI: [attachment=24480] 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 ein SubVI mehrmals unabhängig ausführen - M Nussbaumer - 17.02.2010 14:10 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! ein SubVI mehrmals unabhängig ausführen - jg - 17.02.2010 14:22 ' schrieb:Das Problem ist deine Feedback-Node!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 ein SubVI mehrmals unabhängig ausführen - Andinger - 17.02.2010 14:51 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? ein SubVI mehrmals unabhängig ausführen - Lucki - 17.02.2010 15:06 ' 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. ein SubVI mehrmals unabhängig ausführen - unicorn - 17.02.2010 15:12 ' 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. ein SubVI mehrmals unabhängig ausführen - jg - 17.02.2010 15:24 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 ein SubVI mehrmals unabhängig ausführen - Andinger - 17.02.2010 23:39 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.. ein SubVI mehrmals unabhängig ausführen - Achim - 18.02.2010 07:36 ' schrieb:Hoert sich irgendwie wie ein Shiftregister an.. Mach mal nen Rechtsklick auf den FeedbackNode...und guck ziemlich weit unten! ein SubVI mehrmals unabhängig ausführen - Burning_Man - 18.02.2010 10:46 Hallo, da scheine ich ja in ein Wespennest gestochen zu haben ich habe aber mein Problem dank eurer Hilfe lösen können ! |