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 

Ereignisstruktur mit Referenz-Wertänderung



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!

13.10.2010, 15:29
Beitrag #1

mcbrain Offline
LVF-Grünschnabel
*


Beiträge: 11
Registriert seit: Oct 2010

2010 Eval
-
de


Deutschland
Ereignisstruktur mit Referenz-Wertänderung
Hallo Forum!
Habe schon einige Themen durchgelesen, aber bin zu keiner zufriedenstellenden Lösung meines Problems gekommen...

Das Problem:
Ich habe ein SubVI, welches parallel zum HauptVI laufen soll.
Das SubVI besteht aus einer Initialisierungs- und einer Ausführungs-Phase (Flache Sequenzstruktur). Die Init-Phase soll nur 1x ausgeführt werden und danach verweilt das SubVI in der Ausführungsphase. Die Ausführungsphase besteht aus eine While-Schleife, die eine Ereignis-Struktur enthält. Die Ereignis-Struktur soll busy-waiting vermeiden.
Im HauptVI wird ein Wert verändert, der über eine Referenz ins SubVI gelangt. Diese Änderung wird jedoch nicht erkannt von der Ereignisstruktur. Auf welche Art muss ich das basteln, damit das funktioniert?

Ich habe bereits einige Varianten versucht, z.b. Wertänderung des Anzeigeelements "Wert" zu nutzen, oder auch direkt von der Referenz (ohne die Ereignisregistrierung).

Anbei ein Bild (LV 2010 eval deutsch).

Danke schonmal für Eure Hilfe!


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
13.10.2010, 16:35
Beitrag #2

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

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
Ereignisstruktur mit Referenz-Wertänderung
Hallo,

schau' Dir mal das Bsp. zu dynamischen Events an:

Sonstige .vi  Dynamisches_Event.vi (Größe: 12,87 KB / Downloads: 774)

Lv86_img

Dann siehst Du, was Du falsch gemacht hast, bzw. was noch fehlt.

Gruß Markus

--------------------------------------------------------------------------
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
14.10.2010, 07:53
Beitrag #3

mcbrain Offline
LVF-Grünschnabel
*


Beiträge: 11
Registriert seit: Oct 2010

2010 Eval
-
de


Deutschland
Ereignisstruktur mit Referenz-Wertänderung
' schrieb:schau' Dir mal das Bsp. zu dynamischen Events an:

Hey Markus, danke.
Ich denke ich habe das Prinzip verstanden:
Benutzerereignis 1x erstellen, beliebig oft erzeugen und letztendlich löschen.
Für dieses Ereignis irgendwo registrieren und das dann als Trigger für die Eventstruktur benutzen.

Mein Problem ist dadurch nun aber nur einen Schritt weiter verschoben: Das Erzeugen, Erstellen und Löschen muss ja in meinem HauptVI passieren. Wie kann ich mich nun aber im SubVI dafür registrieren? Sprich: Wie leite ich nun dieses Ereignis ans SubVI weiter?
Ich habe versucht aus meiner eingehenden Referenz im SubVI nochmal ein Ereignis zu erzeugen, jedoch brachte das (wie erwartet) keinen Erfolg.

Hier mein HauptVI:


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.10.2010, 08:35
Beitrag #4

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Ereignisstruktur mit Referenz-Wertänderung
So aus dem Bauch heraus wird hier mit Kanonen auf Spatzen geschossen.

Ist von deinem SubVI das Frontpanel zur Laufzeit sichtbar? Kann da der User überhaupt etwas bedienen?
Wenn nein, dann ist deine Idee, über die Eventstruktur Stati im SubVI zu steuern, viel zu umständlich.

Bau dein SubVI in eine vernünftige State-Machine um, die du dann per Notifer oder Queue aus dem Haupt-VI heraus steuerst.

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
14.10.2010, 09:41 (Dieser Beitrag wurde zuletzt bearbeitet: 14.10.2010 09:46 von mcbrain.)
Beitrag #5

mcbrain Offline
LVF-Grünschnabel
*


Beiträge: 11
Registriert seit: Oct 2010

2010 Eval
-
de


Deutschland
Ereignisstruktur mit Referenz-Wertänderung
' schrieb:Ist von deinem SubVI das Frontpanel zur Laufzeit sichtbar? Kann da der User überhaupt etwas bedienen?
Nein, das SubVI soll einfach nur im Hintergrund laufen und auf eine Änderung Im Frontpanel des HauptVIs reagieren. Ich denke in Zukunft brauche ich das noch viel häufiger, da man doch ständig Dinge in SubVIs auslagert und dort (vor allem auch asynchron/nebenläufig) weiterverarbeitet. Mein Ziel insgesamt ist es, ein VI zu bauen, das man (unabhängig von den Ausführungszeiten) mit anderen VIs zusammen ausführt. Beispiel dafür ist diese Relais-Karten-Ansteuerung. Ich will später in einem HauptVI nur noch den Frontpanel davon haben und die restliche Logik in 1 SubVI, sodass das HauptVI-Diagramm möglichst einfach bleibt, da hier wohl noch viele andere Sachen reinkommen.

Hierzu eine neue Frage: Wie schaffe ich es, ein SubVI zu erstellen, sodass wenn man es in ein anderes VI einfügt, auch ein spezifiziertes Frontpanel-Objekt mit übernommen wird? Sprich: Ich hätte gerne, dass ich meine eigenen SubVIs so benutzen kann, wie die nativen LabView-Komponenten, die ja immer (bzw. oft) eine graphische Entsprechung im Frontpanel haben. Geht das?

' schrieb:Bau dein SubVI in eine vernünftige State-Machine um, die du dann per Notifer oder Queue aus dem Haupt-VI heraus steuerst.
Ich will ja nur 2 States im Endeffekt und der eine wird IMMER 1x zu Beginn ausgeführt. Das habe ich mit der Sequenz im SubVI doch schon erschlagen, oder nicht?
Ich versuche es mal mit den Notifiern, das kannte ich bis jetzt noch nicht.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.10.2010, 10:09 (Dieser Beitrag wurde zuletzt bearbeitet: 14.10.2010 10:10 von jg.)
Beitrag #6

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Ereignisstruktur mit Referenz-Wertänderung
' schrieb:Nein, das SubVI soll einfach nur im Hintergrund laufen und auf eine Änderung Im Frontpanel des HauptVIs reagieren.
So, also ist das FP des SubVI nicht notwendigerweise sichtbar. Die Bedienung und Eventsteuerung liegt im HauptVI. Dann ist es doch sinnvoll, das Event im Haupt-VI abzuarbeiten, und dann per Notifier oder Queue eine entsprechende Nachricht an das SubVI zu schicken -> "Tue bitte dies oder das"

Quasi das Konzept Producer-Consumer-Struktur, bloß dass der Consumer in deinem Fall in einem SubVI liegt.

Zwecks Producer-Consumer, als Bsp findest du das unter "File->New..."

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
Anzeige
14.10.2010, 11:31 (Dieser Beitrag wurde zuletzt bearbeitet: 14.10.2010 11:33 von mcbrain.)
Beitrag #7

mcbrain Offline
LVF-Grünschnabel
*


Beiträge: 11
Registriert seit: Oct 2010

2010 Eval
-
de


Deutschland
Ereignisstruktur mit Referenz-Wertänderung
' schrieb:Dann ist es doch sinnvoll, das Event im Haupt-VI abzuarbeiten, und dann per Notifier oder Queue eine entsprechende Nachricht an das SubVI zu schicken

Yeah, cool!:)Das hat funktioniert. Und zwar wesentlich (!) einfacher und performanter als das mit den Referenzen.

Gibt es hierbei auch sowas wie ein Callback? Dass das SubVI wiederum eine Meldung an sein ParentVI zurückgeben kann? Ich würdem z.B. gleich nach meiner Init-Phase eine boolsche Rückmeldung geben, dass die Phase erfolgreich beendet wurde.
€dit: Alternativ würde auch gehen, wenn ich auf dem Frontpanel ein bool-LED des SubVIs integrieren könnte. Das führt wiederum zu der Frage, die ich oben schon zwischenrein geschoben hatte:

' schrieb:Hierzu eine neue Frage: Wie schaffe ich es, ein SubVI zu erstellen, sodass wenn man es in ein anderes VI einfügt, auch ein spezifiziertes Frontpanel-Objekt mit übernommen wird? Sprich: Ich hätte gerne, dass ich meine eigenen SubVIs so benutzen kann, wie die nativen LabView-Komponenten, die ja immer (bzw. oft) eine graphische Entsprechung im Frontpanel haben. Geht das?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.10.2010, 11:45
Beitrag #8

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Ereignisstruktur mit Referenz-Wertänderung
' schrieb:Yeah, cool!:)Das hat funktioniert. Und zwar wesentlich (!) einfacher und performanter als das mit den Referenzen.

Gibt es hierbei auch sowas wie ein Callback? Dass das SubVI wiederum eine Meldung an sein ParentVI zurückgeben kann?
Eine zweite Queue/Notifer, der Rückmeldungen macht?!
' schrieb:Ich würdem z.B. gleich nach meiner Init-Phase eine boolsche Rückmeldung geben, dass die Phase erfolgreich beendet wurde.
€dit: Alternativ würde auch gehen, wenn ich auf dem Frontpanel ein bool-LED des SubVIs integrieren könnte. Das führt wiederum zu der Frage, die ich oben schon zwischenrein geschoben hatte:
Referenz eines Controls om Main-VI an das SubVI übergeben, dann kann per PropertyNode eine Eigenschaft (z.B. Value) im SubVI gesetzt werden.

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
14.10.2010, 15:14 (Dieser Beitrag wurde zuletzt bearbeitet: 14.10.2010 15:16 von mcbrain.)
Beitrag #9

mcbrain Offline
LVF-Grünschnabel
*


Beiträge: 11
Registriert seit: Oct 2010

2010 Eval
-
de


Deutschland
Ereignisstruktur mit Referenz-Wertänderung
' schrieb:Referenz eines Controls vom Main-VI an das SubVI übergeben, dann kann per PropertyNode eine Eigenschaft (z.B. Value) im SubVI gesetzt werden.

Das hat ebenfalls geklappt, danke.

Jedoch bleibt noch, ob es möglich ist, ein VI mit einem GUI-Objekt für den Frontpanal zu assoziieren, bzw. ein Frontpanel-Element auszuwählen, welches bei Benutzung des VIs innerhalb eines anderen ParentVIs sofort angezeigt wird.

Ich habe nun die Steuerung für meine Relaiskarte fertig, die sieht so aus wie im Bild.
Wenn ich dieses VI nun als SubVI in ein anderes VI lade, will ich genau diese gesamte Steuerung haben.


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.10.2010, 18:45
Beitrag #10

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Ereignisstruktur mit Referenz-Wertänderung
Such mal (z.B. im NI-Examplefinder) nach dem Schlagwort SubPanel. Nicht unbedingt das Einsteiger-Thema, aber du gleich so komplizierte Themen vor hast...Wink

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
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Eventzähler bei Wertänderung 1990 8 6.279 22.05.2017 16:08
Letzter Beitrag: Freddy
Question Mit Wertänderung eine Case-Struktur ansteuern ChrisR_ 9 7.414 05.09.2016 11:21
Letzter Beitrag: TSC
  Ereignis "Wertänderung" verzögern aw 3 4.893 11.08.2016 16:08
Letzter Beitrag: Trinitatis
  Schieberegler Wertänderung Hydrogencarbonat 37 20.531 12.11.2015 19:14
Letzter Beitrag: Lucki
  Wertänderung NUR durch Enterbestätigung Scuba 3 4.160 06.10.2015 12:18
Letzter Beitrag: Scuba
  Ereignis Wertänderung nur bei Eingabe über Frontpanel JanBurg 5 4.919 25.08.2015 09:06
Letzter Beitrag: JanBurg

Gehe zu: