INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

So etwas wie eine FGV, nur an eine "Instanz" des SubVIs gebunden



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!

23.07.2010, 12:50 (Dieser Beitrag wurde zuletzt bearbeitet: 23.07.2010 12:51 von Matze.)
Beitrag #1

Matze Offline
LVF-Team
LVF-Team

Beiträge: 1.027
Registriert seit: Apr 2010

20xx
2010
DE_EN

7xxxx
Deutschland
So etwas wie eine FGV, nur an eine "Instanz" des SubVIs gebunden
Hallo zusammen,

ich habe mir zu Debug-Zwecken ein VI geschrieben, das ich einfach in eine Schleife ziehe und mir die durchschnittliche Dauer eines Schleifendurchlaufs ausgibt. Ich hatte keine Lust, mir jedesmal mit den Timern und Schieberegistern etwas zu basteln.

An sich funktioniert das VI erstaunlich gut.Smile

Nur ist es so, dass ich FGVs verwenden muss, wenn ich ein Schieberegister vermeiden möchte und der Aufruf des VIs somit mehr als einfach ist: Nur in der Schleife platzieren - fertig.

   

Schön wäre es, wenn ich dieses VI z.B. in eine weitere Schleife setzen kann, um die Zeit dort ausgeben zu lassen. Nur funktioniert das natürlich nicht, da die funktionale, globale Variable - wie der Name sagt - global ist und damit für alle VIs dieser Art gilt.

Gibt es so etwas wie FGVs, die nur innerhalb einer "Instanz" gültig sind, aber dennoch so global sind, dass beim nächsten Aufruf der Wert wieder zur Verfügung steht?

Hier noch das Debug-VI:

   

Grüße
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.07.2010, 12:57
Beitrag #2

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
So etwas wie eine FGV, nur an eine "Instanz" des SubVIs gebunden
Unter den VI-Properties unter Execution das VI auf Reentrant setzen.

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.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.07.2010, 13:03 (Dieser Beitrag wurde zuletzt bearbeitet: 23.07.2010 13:07 von Matze.)
Beitrag #3

Matze Offline
LVF-Team
LVF-Team

Beiträge: 1.027
Registriert seit: Apr 2010

20xx
2010
DE_EN

7xxxx
Deutschland
So etwas wie eine FGV, nur an eine "Instanz" des SubVIs gebunden
Hui, das ist genial! Danke.Smile

Nachtrag: Ist es normal, dass ich das FrontPanel dieses VI dann nicht mehr bearbeiten kann? Ich muss dazu erst wieder diese Einstellung rückgängig machen.

Grüße
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.07.2010, 13:19
Beitrag #4

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
So etwas wie eine FGV, nur an eine "Instanz" des SubVIs gebunden
' schrieb:Nachtrag: Ist es normal, dass ich das FrontPanel dieses VI dann nicht mehr bearbeiten kann?
Ja.
' schrieb:Ich muss dazu erst wieder diese Einstellung rückgängig machen.
Nein, musst du nicht. Short-Cut Strg-M hilft Abhilfe (im Menü unter Operate->Change to Run/Edit Mode).

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.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.07.2010, 13:24
Beitrag #5

Matze Offline
LVF-Team
LVF-Team

Beiträge: 1.027
Registriert seit: Apr 2010

20xx
2010
DE_EN

7xxxx
Deutschland
So etwas wie eine FGV, nur an eine "Instanz" des SubVIs gebunden
Hm ok, danke.
Gibt es denn einen Grund für dieses Verhalten?

Grüße
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.07.2010, 13:42
Beitrag #6

Achim Offline
*****
*****


Beiträge: 4.223
Registriert seit: Nov 2005

20xx
2000
EN

978xx
Deutschland
So etwas wie eine FGV, nur an eine "Instanz" des SubVIs gebunden
Ich bin mir nicht sicher, ob das mit dem "FirstCall.vi" immer funktioniert...Dessen Reset erfolgt doch erst dann, wenn das umgebende VI aus dem RAM verschwindet, oder?

"Is there some mightier sage, of whom we have yet to learn?"

"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
23.07.2010, 13:47 (Dieser Beitrag wurde zuletzt bearbeitet: 23.07.2010 13:49 von dimitri84.)
Beitrag #7

dimitri84 Offline
Astronaut
*****


Beiträge: 1.496
Registriert seit: Aug 2009

2020 Developer Suite
2009
DE_EN

53562
Deutschland
So etwas wie eine FGV, nur an eine "Instanz" des SubVIs gebunden
' schrieb:Ich bin mir nicht sicher, ob das mit dem "FirstCall.vi" immer funktioniert...Dessen Reset erfolgt doch erst dann, wenn das umgebende VI aus dem RAM verschwindet, oder?
Jo, ich wollt's erst selbst schreiben aber hab's mir dann doch verkniffen, weil ich jedes mal dieses VI verunglimpfe. First-Call gibt nur einmal ein True pro Applikationsstart mit dem Pfeil in der Menüleiste aus, nicht mehr. Aber, wenn er keinen "Idle-Mode" hat ist's so ok.

Einen First-Run-Flag baue ich mir deshalb immer selbst, wo ich jederzeit selbst resetten kann. Ist halt ein Eingang mehr im subVI ...

„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.07.2010, 13:53
Beitrag #8

Matze Offline
LVF-Team
LVF-Team

Beiträge: 1.027
Registriert seit: Apr 2010

20xx
2010
DE_EN

7xxxx
Deutschland
So etwas wie eine FGV, nur an eine "Instanz" des SubVIs gebunden
' schrieb:Ist halt ein Eingang mehr im subVI ...
Und ein Schieberegister, damit der Wert im nächsten Durchlauf "false" ist.

Für Debugzwecke wollte ich jedoch ein VI, dass ich mal eben aufs Blockdiagramm ziehen kann ohne groß etwas zu verdrahten. Und dafür ist das ausreichend.

Grüße
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.07.2010, 13:59
Beitrag #9

dimitri84 Offline
Astronaut
*****


Beiträge: 1.496
Registriert seit: Aug 2009

2020 Developer Suite
2009
DE_EN

53562
Deutschland
So etwas wie eine FGV, nur an eine "Instanz" des SubVIs gebunden
... jaja ist das ok. Wenn überhaupt, ist eh nur der erste Wert dann falsch. Deswegen hab ich's mir ja auch verkniffenSmile

„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.07.2010, 14:10
Beitrag #10

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.696
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
So etwas wie eine FGV, nur an eine "Instanz" des SubVIs gebunden
' schrieb:Gibt es denn einen Grund für dieses Verhalten?
Klar.

Reentrante SubVIs liegen so oft im Speicher, wie sie auf dem BD positioniert wurden. Hast du also 7 gleiche SubVIs platziert, gibt es das SubVI also 7 mal.

Du kannst jetzt alle diese 7 SubVIs während der Ausführung öffnen (FP anzeigen lassen) z.B. um Sonden zu setzen und Anzeigeelemente anzusehen. Jedes der 7 FP zeigt dann spezifische Daten an. Das gleichzeitige Anzeigen der 7 SubVIs geht aber logischerweise nur im sog. Ausführungsmodus. Nachdem das Programm beendet wurde, verbleiben die reentranten SubVIs im Ausführungsmode, weil man ja die Daten noch ansehen könnten möchte. Willst du das SubVI nun ändern, musst du in den Bearbeitungsmodus umschalten. Im Bearbeitungsmodus gibt es aber nur ein einziges SubVI - keine 7 mehr, da die 7 ja "die selben" sind.

Man kann jetzt natürlich Tricks machen: ein 8. SubVI in einen Deaktivierungsrahmen legen. Dieses SubVI läuft nämlich nicht und wird beim Anklicken also im Bearbeitungsmodus geöffnet. Jetzt könnte man da Änderungen machen, die dann zur Folge haben, dass die 7 anderen sich von selbst in den Bearbeitungsmodus schalten - dumm nur, dass LabVIEW (LV 85 SE) dabei abstürzt.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Daten in eine Tabelle speichern Gottimp 4 3.523 28.07.2021 16:47
Letzter Beitrag: jg
  Messwert für eine gewisse Zeit (~5sek.) speichern und dann erst ausgeben niklas2016 8 5.220 31.03.2021 09:35
Letzter Beitrag: GerdW
  Auf Eigenschaften eines Textrings zugreifen, der eine Array-Indexanzeige ersetzt Horst 4 4.008 08.08.2019 08:00
Letzter Beitrag: Horst
  FPGA Instanz verschwindet Ressless 7 5.273 18.12.2017 15:12
Letzter Beitrag: Ressless
  Nur eine Leitung in digitalem Signalverlaufsgraph darstellen? dulfried 10 6.912 21.09.2017 06:29
Letzter Beitrag: RMR
  "Pfeilmodus" beim ausführen eine VI´s Phinn 5 7.681 07.03.2017 14:27
Letzter Beitrag: jg

Gehe zu: