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 

gemeinsam Konstanten in verschiedenen VIs



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!

26.01.2013, 09:11
Beitrag #1

gottfried Offline
LVF-Guru
*****


Beiträge: 1.735
Registriert seit: Mar 2007

2019
2004
EN

20**
Oesterreich
gemeinsam Konstanten in verschiedenen VIs
Schätze ich sehe den Wald vor lauter Bäumen nicht:

wenn ich in verschiedenen VIs gemeinsame Konstanden brauche ... ja da fällt mir nichts anderes ein als ein VI zu schreiben mit einem Ausgang.

Das kommt mir aber sehr ... gekünstelt vor.

Wie macht Ihr das?

Gottfried

mein wöchentlicher (eigenwilliger) Beitrag zur Innovation
http://innovation1.wordpress.com/
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
26.01.2013, 09:57 (Dieser Beitrag wurde zuletzt bearbeitet: 26.01.2013 10:22 von Lucki.)
Beitrag #2

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: gemeinsam Konstanten in verschiedenen VIs
Also für alle "Quasi-Konstanten" verwende ich globale Variable. Man kann sogar sagen, dass ich gobale Variable ausschließlich dafür verwende, aber niemals zum Datenaustausch.
Beispiel: Ein Targetabstand, der konstruktionsbedingt ist, bei dem aber nicht ganz auszuschließen ist, dass er sich mal ändern kann.
Abspeicherung in INI-Textfile, zu Programmbeginn Einlesen in Globale Variable, die dann in allen SubVIs zur Verfügung steht. Ein Schreibzugriff auf die Ini-File ist für diesen Parameter nicht erforderlich. Falls sich der Parameter ändert, wird das mit einen Texteditor gändert.
Man kann aber auch eine echte Konstante bei der Initialisierung des Programms in eine GB schreiben. Bei Änderung des Werte muss man dann nicht an mehreren Stellen (fehlerträchtig) den Wert ändern.
Tip: Der "Flächenverbrauch" einer GB im BD ist proportional der Namenslänge --> möglichst kurze Namen verwenden.
Edit: Bei der genauen "Textanalyse" deines Beitrages komme ich zu dem Schluss, dass Du der Manie verfallen bist, GBs zu vermeiden und grundsätzlich FGVs zu verwendeen. Diese Krankheit kommt davon, dass Du zu viel hier im Forum gelesen hast, wo diese Auffassung gepflegt wird. Lass Dich davon nicht anstecken!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.01.2013, 11:22 (Dieser Beitrag wurde zuletzt bearbeitet: 26.01.2013 11:27 von GerdW.)
Beitrag #3

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: gemeinsam Konstanten in verschiedenen VIs
Hallo,

Zitat:Bei der genauen "Textanalyse" deines Beitrages komme ich zu dem Schluss, dass Du der Manie verfallen bist, GBs zu vermeiden und grundsätzlich FGVs zu verwenden. Diese Krankheit kommt davon, dass Du zu viel hier im Forum gelesen hast, wo diese Auffassung gepflegt wird. Lass Dich davon nicht anstecken!
Da muss ich doch glatt einsteigen! Big Grin

Im Ernst:
Ich befürworte FGVs für solche Anwendungen, weil:
- ich zusammengehörende Einstellungen/"Konstanten" bündeln kann
- ich in der FGV gleich noch die passende (!) Lade-/Speicherroutine unterbringen kann, ohne dafür andere VIs pflegen zu müssen
- ich die FGV in mehreren Projekten verwenden kann, ohne mir Gedanken über die enthaltenen Größen zu machen

Beispiel:
Wir haben mehrere Prüfstände, die recht ähnliche Software nutzen: Hardware-Treiber unterscheiden sich, aber Anzeige/Logging/Setup/usw. sind identisch. Alle allgemeinen Einstellungen (Prüfstandskennung, Pfade zum Laden und Speichern von Dateien, etc.) landen in einer FGV. Ein Aufruf der FGV mit dem Parameter "load settings" lädt die zuletzt genutzten Einstellungen aus einer INI-Datei, ein entsprechender Aufruf der FGV am Programmende speichert die Settings. Vor dem Start der Messung darf der User nochmal die Settings überprüfen und ggfs. abändern, danach können alle Programmteile die (dann statischen) Settings nutzen. Die FGV wurde einmal entwickelt/getestet und nun auf allen unseren Prüfständen genutzt...

Diese Kapselung und Wiederverwendbarkeit ist es, die mich immer wieder dazu treibt, FGVs zu empfehlen...

D.h. nicht, dass ich keine globalen Variablen nutze - aber fast nur in dem recht klein abgesteckten Rahmen der "einmaligen" Nutzung ("nur ein Projekt"/"nur ein spezieller HW-Treiber mit verteilten VI-Aufrufen"). Und bei anderen Anforderungen mag man auch daran denken, LVOOP zu nutzen, um noch mehr oder viele unterschiedliche Daten in einem Objekt (mit entsprechenden Eigenschaften/Methoden) zu bündeln...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.01.2013, 19:55
Beitrag #4

gottfried Offline
LVF-Guru
*****


Beiträge: 1.735
Registriert seit: Mar 2007

2019
2004
EN

20**
Oesterreich
RE: gemeinsam Konstanten in verschiedenen VIs
Danke - super .... aber was ist ein GB?

Gottfried

mein wöchentlicher (eigenwilliger) Beitrag zur Innovation
http://innovation1.wordpress.com/
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.01.2013, 22:17 (Dieser Beitrag wurde zuletzt bearbeitet: 28.01.2013 09:59 von Lucki.)
Beitrag #5

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: gemeinsam Konstanten in verschiedenen VIs
(26.01.2013 19:55 )gottfried schrieb:  Danke - super .... aber was ist ein GB?
Nachdem ich drei Mal die Bezeichnung "Globale Variable" ausgeschrieben habe, hatte ich die Faxen dicke und habe einfach GB gechrieben. Aber Du hast Recht, eine gängige Abkürzung, die keiner Erklärung bedarf, ist das nicht.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.01.2013, 09:51
Beitrag #6

dali4u Offline
LVF-Stammgast
***


Beiträge: 298
Registriert seit: Aug 2008

12SP1, 14SP1
2007
DE


Deutschland
RE: gemeinsam Konstanten in verschiedenen VIs
Und wo wir schon dabei sind. Was sind "FGVs"?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
28.01.2013, 09:56 (Dieser Beitrag wurde zuletzt bearbeitet: 28.01.2013 09:57 von GerdW.)
Beitrag #7

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: gemeinsam Konstanten in verschiedenen VIs
Hallo dali,

FGV = Funktionale Globale Variable oder auch Functional global variable...

Oder auch so... Big Grin

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.01.2013, 10:25 (Dieser Beitrag wurde zuletzt bearbeitet: 28.01.2013 10:28 von Lucki.)
Beitrag #8

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: gemeinsam Konstanten in verschiedenen VIs
@Gerd
Ich lehne ja FGVs nicht ab und in den Szenarien Du Du beschreibst ( - die aber nicht richtig zu Gottfrieds Frage passen -) sind FGVs absolut sinnvoll. Es geht mir nur darum, dass hier im Forum manchmal globale Veriable rundweg abgelehnt werden und FGV grundsätzlich als die bessere Alternative beschrieben werden - so, als ob NI dämlich gewesen wäre, dass es GVs überhaupt einführte. Das führt dann dazu, dass Gottfried als fleißiger Forumsleser hier vielleicht seine persönliche Gehirnwäsche erfahren hat und er demzufolge gar nicht mehr auf die Idee kommen kann, dass für sein kleines Problem eine globale Variable die einfachste Lösung sein könnte.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.01.2013, 11:10
Beitrag #9

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: gemeinsam Konstanten in verschiedenen VIs
@Ludwig:
- Die INI-Dateien hast du selbst ins Spiel gebracht.
Zitat:Man kann aber auch eine echte Konstante bei der Initialisierung des Programms in eine GB schreiben. Bei Änderung des Werte muss man dann nicht an mehreren Stellen (fehlerträchtig) den Wert ändern.
Bei einer FGV hat man einen INIT-Case. Um den zu erreichen, muss man nicht erst im MainVI (oder in einem Init-VI) nachschauen, wie dort der Wert vorgegeben wurde, sondern man öffnet einfach die FGV, mit der man ja sowieso gerade arbeitet. Mit Ctrl-Doppelklick landet man direkt im BD - und findet dort den einen Ort, wo eine Konstante definiert wird...
Zitat:Tip: Der "Flächenverbrauch" einer GB im BD ist proportional der Namenslänge --> möglichst kurze Namen verwenden.
Die "kleinste" meiner FGVs hat ein Icon mit 8*32 Pixel Größe. Da der Standard-Aufruf auf "READ" gesetzt ist, wird kein weiterer Platz benötigt. Nur beim INIT (u.a.) wird etwas mehr Platz für das begleitende Enum benötigt...

Du siehst, man kann diese Argumente sowohl für globale Variablen als auch FGVs anwenden.

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.01.2013, 11:30 (Dieser Beitrag wurde zuletzt bearbeitet: 31.01.2013 10:52 von Y-P.)
Beitrag #10

Y-P Offline
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
LVF-Team

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
RE: gemeinsam Konstanten in verschiedenen VIs
Ich weiß nicht mal mehr, wie man globale Variablen anlegt. Blink Da müsste ich erst mal in meinen Unterlagen schauen, oder hier im Forum, da habe ich glaub' mal eine Anleitung gemacht. Big Grin
Für den Fall nehme ich jedenfalls immer FGV's, aber wie Lucki schon sagt, spricht nichts gegen eine globale Variable. Wenn Du aus dem Stehgreif weißt, wie man die anlegt, dann kannst Du sie ja verwenden. Bevor Du aber lange nachlesen musst, wie es geht, dann mach's mit FGV's. Das ist meiner Meinung nach wesentlich einfacher....

@Lucki: Da passt übrigens auch wieder die Geschichte mit dem Fuchs und den Trauben. Big Grin

Gruß Markus

EDIT: Hier ist übrigens meine Anleitung (6 1/2 Jahre alt). Weiß aber nicht, ob das heute auch noch so geht. Big Grin

--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Probleme mit Remote Panel auf verschiedenen PCs Odie 4 3.436 01.07.2019 09:28
Letzter Beitrag: Odie
  Mehrere DOs mit DAQmx in verschiedenen Modi ansteuern BennyGreb 2 3.408 10.12.2017 19:13
Letzter Beitrag: BennyGreb
  Strikte Typ-Def. & autom. Aktualisierung deren Konstanten _techniker_ 2 4.103 17.08.2016 07:47
Letzter Beitrag: _techniker_
  Anzeigeproblem mit unterschiedliche Text-Ring-Konstanten in Case/Ereignisstruktur I3erry 3 4.581 28.08.2015 08:50
Letzter Beitrag: Lucki
  globale Konstanten? Nordvestlys 6 5.916 20.02.2015 09:35
Letzter Beitrag: Nordvestlys
  Lokale Variablen in verschiedenen Schleifen MaxxPowers 8 7.637 23.04.2014 13:02
Letzter Beitrag: GerdW

Gehe zu: