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 

Werte in SubVi laden



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!

20.08.2006, 10:08
Beitrag #1

DoubleU Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 51
Registriert seit: Jan 2006

8.01
2004
kA


Deutschland
Werte in SubVi laden
Hallo,

ich hab ein SubVi mit Init und run mode (Case).
Im Init mode will ich Werte in das SubVi laden, die ich dann bei jedem Aufruf im run-mode verwenden will. Zur Zeit verwende ich dabei nichtinitialisierte Shift-register, die ich im Init mode auf meine gewünscheten Werte setze. Das leuchtet mir auch ein wenn ich die Werte innerhalb des run modes verändern möchte, da ich sie ja bei jedem Aufruf wieder nach "aussen" schiebe.
Wenn die Werte jetzt aber die ganze Laufzeit über Konstant bleiben, denke ich ehr an sowas wie lokale Variablen (da ich ja nichts mehr nach aussen schieben muss). Wenn ich nun jedoch eine lokale variable von einem Control des Init modes erzeuge wird diese wieder auf 0 zurückgesetzt, sobald ich im run mode bin. (die Init-Eingänge sind im run mode ja nicht belegt).
Hättet ihr vielleicht einen Tip für mich wie man das sauber hinbekommt. Meine Anwendung soll performant sein, deswegen spielt die schnelligkeit eine große rolle. Desweiteren ist mir aufgefallen, dass ein VI in der Ausführung länger benötigt wenn nicht alle Eingänge angeschlossen sind, ist das Korrekt?
Vielen Dank

Gruss
Uli
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.08.2006, 07:08 (Dieser Beitrag wurde zuletzt bearbeitet: 21.08.2006 07:20 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
Werte in SubVi laden
Ja, ganz einfach. Du legst als Standardwert für das betreffende Bedienelement im Sub-VI einen Wert fest, der regulär nie vorkommt. Also z.B -1, wenn die normalerweise übergebenen Werte immer positiv sind. (Anmerkung: in jedem Falle würde es mit dem Wert NaN funktionieren, oder einem Leervektor bei Arrays). Wenn der Eingang nicht angeschlossen ist, wird also -1 gelesen, und das ist für Dich das Kriterium, statt dessen den im Schieberegister stehenden Wert zu benutzen. Vielleicht geht es noch eleganter, aber so habe ich es mir (in Anlehung an einschlägige VIs von NI) ausgedacht und es hat sich bestens bewährt.
Daß angeschlossenen Bedienelemente die Ausführung verlängern, ist leider mehr als richtig. Deshalb sollte man auch zur Zwischenspeicherung von Werten lieber Shift-Register statt verborgene Bedienelemente verwenden, und ich gehe davon aus, daß auch die Übergabe von Werten aus einem Sub-VI mit Meldern schneller ist als die Übergabe über ein angeschlossenes Anzeigeelement.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.08.2006, 11:29 (Dieser Beitrag wurde zuletzt bearbeitet: 21.08.2006 11:32 von DoubleU.)
Beitrag #3

DoubleU Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 51
Registriert seit: Jan 2006

8.01
2004
kA


Deutschland
Werte in SubVi laden
Danke für die Antwort Lucki,

so ganz beantwortet sie jedoch nicht meine Frage. Ich übergebe die Werte (Parameter für eine Auswertung) die ich im SubVi halten will nur einmal beim start meines Programmes (init Case des SubVIs). Deshalb ist diese Überprüfung auf -1 für mich eigentlich überflüssig, da sie im Run-mode immer zutrifft. Es geht mir nur darum die Werte nicht immer wieder nach aussen geben zu müssen, obwohl ich sie im run mode nie verändere. Das erscheint mir "overhead" zu sein.
D.h. ich habe jetzt die Controls im Init mode wieder auf ein Anzeigeelemet gegeben und daraus eine lokale Variable erstellt. Das schreiben wird sicher langsammer sein, aber intressant ist für mich nur die dauer im run-mode, sprich der Lesevorgang. Die Frage war also ob das so jetzt Sinn macht. Übersichtlicher finde ich es zu dem auch.


Hier bedarf es evt. noch einmal einer Erläuterung:
' schrieb:Desweiteren ist mir aufgefallen, dass ein VI in der Ausführung länger benötigt wenn nicht alle Eingänge angeschlossen sind, ist das Korrekt?
' schrieb:Daß angeschlossenen Bedienelemente die Ausführung verlängern, ist leider mehr als richtig.
Irgendwas stimmt hier nicht oderWink

Gruss
Uli
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.08.2006, 12:50 (Dieser Beitrag wurde zuletzt bearbeitet: 21.08.2006 12:56 von Lucki.)
Beitrag #4

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

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Werte in SubVi laden
Mein Tipp bezog sich auf den Fall, daß Du keinen booleschen Eingang "Init" am Sub-VI hast oder haben möchtest. Wenn Du diesen hast, wird der Tipp natürlich gegenstandslos.
Wegen der Laufzeit - ob mit oder ohne angeschlossenen Bedienelelmente schneller - habe ich in Deiner Frage das "nicht" übersehen. Ganz genau weiß ich es auch nur bei den Ausgängen, wenn nichts angeschlossen ist geht es wesentlich schneller. Die Frage kann aber ganz schnell durch Messung beantwortet werden: Das Sub-Vi in eine For-Schleife mit z.B. 10000 Iterationen stecken, Ausführungszeit mit verschiedenen Konfigurationen messen.

Ich kann Dir ohne VI nicht weiterhelfen, (und beim Tippen ist mir diese Signatur unten eingefallen, die ich künftig verwenden werde) denn trotz Deiner Erläuterungen sind bei mir erst mal alle Klarheiten beseitigt. Erst dachte ich, dieser zwischengespeierten Wert im VI ist so eine Art konstanter Parameter, den Du benutzt, um z.B. mit jedesmal neu eingehenden Daten etwas zu berechnen und das Ergebnis dann nach außen zu geben.

Jetz sagst Du, daß Du den eingegebenen Wert selbst immer wieder nach außen gibst. Warum tust Du Dir dann das SubVI dann überhaupt an? Wäre es nicht effektiver, gleich im Hauptprogramm ein Shift-Register zu haben, mit dem Dir der Wert immer verfügber ist ? Hier komme ich nicht mehr mit.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.08.2006, 13:32
Beitrag #5

DoubleU Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 51
Registriert seit: Jan 2006

8.01
2004
kA


Deutschland
Werte in SubVi laden
' schrieb:Erst dachte ich, dieser zwischengespeierten Wert im VI ist so eine Art konstanter Parameter, den Du benutzt, um z.B. mit jedesmal neu eingehenden Daten etwas zu berechnen und das Ergebnis dann nach außen zu geben.

Genau das ists was ich meine! Ich überprüfe mit dem konstanten Parameter bestimmte Kriterien der neu eingehenden Daten und gebe - nur im fehlerfall! - die Daten an ein log im SubVI weiter.
Mit dem nach aussen geben/schieben meinte ich lediglich das Shift register innhalb des SubVIs. Nach aussen ins HauptVI geht dabei nichts, richtig! Sorry für die umtsändliche Erklärung, ich dachte eigntlich es wär klar was ich meinte, aber wies halt so isWink

Vi kann ich dir gerne bereitstellen, aber ob dir das so richtig weiterhilft...

Gruss
Uli


Angehängte Datei(en)
Sonstige .vi  init_run.vi (Größe: 33,97 KB / Downloads: 207)
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
  Werte aus SubVI werden nicht aktualisiert McButch 24 13.621 13.10.2016 14:20
Letzter Beitrag: jg
  Wie Werte an SubVI in SubPanel (Unterpanel) übergeben? nemesismf 1 7.985 03.04.2012 11:36
Letzter Beitrag: GerdW
  SubVI Funktionen verwenden, ohne SubVI Frontpanel (AVT Kamera) Allyoucaneat 3 8.846 25.08.2011 15:18
Letzter Beitrag: GerdW
  alle Werte Bedienelemente speichern und wieder laden? schurzgasschweisser79 3 5.757 21.07.2010 12:15
Letzter Beitrag: Lucki
  Werte an SubVi übergeben m.wiederer 2 7.384 11.03.2010 14:49
Letzter Beitrag: m.wiederer
  Default Werte aus SubVI auslesen peterle 5 6.104 22.07.2009 07:56
Letzter Beitrag: rolfk

Gehe zu: