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 

Viele Variablen in SubVI nutzen



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!

02.12.2016, 10:38
Beitrag #1

chrisw Offline
LVF-Neueinsteiger


Beiträge: 2
Registriert seit: Dec 2016

14
-
DE



Viele Variablen in SubVI nutzen
Hallo zusammen,

ich habe folgende Problemstellung: Ich habe ein komplexes Programm mit vielen Variablen (>20), die ich an SubVIs übergeben muss. Während des Laufens der SubVIs werden Variableninhalte verändert und müssen den SubVIs aktuell zur Verfügung stehen (z.B. Schleifenabbruchbedingungen).
Ich habe mich deshalb folgender Lösung bedient: Ich habe von allen Variablen, die ich übergeben muss, Referenzen erzeugt, diese in ein Array gepackt und dieses entweder per globaler Variable oder direkter SubVi-Zuleitung übergeben. Innerhalb des SubVIs lese ich dann die entsprechende Ref. aus dem Array aus und greif auf den Inhalt lesend/schreiben zu. Das ist allerdings nicht sehr komfortabel, da ich mir immer Arraynummern merken muss und den Typ wandeln muss.

Daher meine Frage: Kann man das irgendwie geschickter lösen? Und gibt es eventuelle Nachteile/Probleme meiner Vorgehensweise?

Viele Grüße
Chris

PS: Das ist meine erste Frage hier. Wirklich ein super Forum, hat mir schon viel geholfen!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
02.12.2016, 10:49 (Dieser Beitrag wurde zuletzt bearbeitet: 02.12.2016 10:59 von GerdW.)
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.480
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Viele Variablen in SubVI nutzen
Hallo chrisw,

herzlich willkommen im Forum!

Zitat:Kann man das irgendwie geschickter lösen?
Notifier, Queues, FGVs aka AEs, globale Variablen, UserEvents…

Zitat:Und gibt es eventuelle Nachteile/Probleme meiner Vorgehensweise?
- Zugriffe per Referenz/Propertynodes auf Werte erfordern Task-Switches, die dein Programm verlangsamen können…
- bei globalen Variablen kann es zu RaceConditions kommen…

Zitat:Ich habe ein komplexes Programm mit vielen Variablen (>20)
Du hast sehr wahrscheinlich keine "Variablen", sondern Datenwerte/Controls: in LabVIEW sollte man THINK DATAFLOW beachten. Dabei ist es für das Verständnis hilfreich, die korrekten Bezeichnungen zu verwenden. Smile
Wenn dein VI mit 20 Werten schon "komplex" ist, wie würdest du dann meine Prüfstandssoftware bezeichnen, in der schon allein 200-300 Werte im Logfile landen und im Programm überall parallel verwendet werden? Big Grin

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.12.2016, 11:22
Beitrag #3

chrisw Offline
LVF-Neueinsteiger


Beiträge: 2
Registriert seit: Dec 2016

14
-
DE



RE: Viele Variablen in SubVI nutzen
(02.12.2016 10:49 )GerdW schrieb:  
Zitat:Und gibt es eventuelle Nachteile/Probleme meiner Vorgehensweise?
- Zugriffe per Referenz/Propertynodes auf Werte erfordern Task-Switches, die dein Programm verlangsamen können…

Ok, das bedeutet, mein Ansatz könnte langsamer sein, als die Werte einfach in einer globalen Variable zu parken? Ich hatte extra ein Referenzenarray genutzt, weil ich dachte, damit schneller zu sein (wird nicht beim Zugriff auf globale Variablen im Hintergrund immer etwas kopiert?). Die meisten Datenwerte sind einfacher Natur (bool, int8 etc.), aber ein paar größere Arrays (ca. 50x10 double) sind auch dabei.

Zitat:Wenn dein VI mit 20 Werten schon "komplex" ist, wie würdest du dann meine Prüfstandssoftware bezeichnen, in der schon allein 200-300 Werte im Logfile landen und im Programm überall parallel verwendet werden? Big Grin

Das würde ich dann hyperkomplex nennen Wink
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.12.2016, 11:35
Beitrag #4

GerdW Offline
______________
LVF-Team

Beiträge: 17.480
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Viele Variablen in SubVI nutzen
Hallo chris,

Zitat:wird nicht beim Zugriff auf globale Variablen im Hintergrund immer etwas kopiert?
Ja.
Allerdings wird auch eine Datenkopie erstellt, wenn du per "Value"-Property Daten aus einem Control ausliest…

Zitat:Die meisten Datenwerte sind einfacher Natur (bool, int8 etc.), aber ein paar größere Arrays (ca. 50x10 double) sind auch dabei.
Wenn sich hinter einem Bool z.B. die STOPP-Bedingung verbirgt, könnte man auch mit einem Notifier arbeiten (oder eine FGV verwenden).
Wenn man z.B. Messdaten (Array, ca. 50×10 DBL) verwalten will, könnte man eine FGV verwenden.
Klar gehen auch globale Variablen - hängt immer vom konkreten Anwendungsfall ab…

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
Question (viele) Bedienelemente deaktivieren / aktivieren F.Bi 3 5.357 16.08.2018 12:59
Letzter Beitrag: GerdW
  Python Code in LabVIEW nutzen n4f3ts 7 12.424 17.03.2016 09:23
Letzter Beitrag: n4f3ts
  Ideeansatz gesucht: Viele Bedienelemente tuhpon 3 4.444 02.11.2015 13:58
Letzter Beitrag: Lucki
  Versionsverwaltung Tortoise GIT mit LabVIEW nutzen NEWBIE14 3 6.946 10.11.2014 13:01
Letzter Beitrag: Nordvestlys
Question Lokale Variablen wie in textbasierten Sprachen nutzen RobBoss 5 5.419 28.05.2014 11:59
Letzter Beitrag: Kiesch
  Icon Vorlage nutzen W-C 4 5.274 24.04.2013 12:27
Letzter Beitrag: W-C

Gehe zu: