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 aus Sub VI im Haupt VI anzeigen



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.09.2006, 16:35
Beitrag #11

StefanHH Offline
LVF-User
*


Beiträge: 35
Registriert seit: Aug 2006

7.0, 8.21, 8.5, 2013
2006
DE_EN

21220
Deutschland
Werte aus Sub VI im Haupt VI anzeigen
<div align="left">Hallo Achim,
Zitat:@ Stefan:
Irgendwie hab ich's nicht geblickt! Was bringt die Verdrahtung ins SubVÌ?
Dort wird die Referenz (Adresse) des Kontroll- bzw. Anzeigeinstruments der MainVI übergeben. Damit die zu repräsentierenden Werte aus der SubVI in den gewünschten Speicherbereich geschrieben werden können. (Ist analog zur Zeigerübergabe bei einem Funktionsaufruf in C. Die Funktion muss wissen, auf welchem Speicherbereich sie arbeiten soll!)

Zitat:Wenn im SubVI die Schleife läuft, wird das HauptVI, welches das SubVI enthält, auf jeden Fall so lange angehalten, bis das SubVI beendet ist. D.h. es werden vom HauptVI keine Eingaben ins SubVI übernommen!
Nicht ganz... es gibt da noch eine Waitfunktion von 500ms die auch der MainVI Prozessorzeit erlaubt. allerdings wird davon im Hauptprogramm kein Gebrauch gemacht ...
Die Referenzen, die mit der SubVI verdrahtet sind, werden beim Programmstart bzw. dem ersten Aufruf der SubVI übergeben. Sonst würden wir die Ergebnisse nicht auf der Anzeige der MainVI sehen! Danach läuft die Schleife alle 500ms.

Zitat:Kleiner Tip: Wenn du die Referenz des "stop from mainVI" mit gedrückter Strg-Taste vom Blockdiagramm des HauptVI aufs Frontpanel des SubIV ziehst, erhälst du eine "strict refnum" (sichtbar am Sternchen auf dem FP) und du kannst dir die "Variant to Data"-Wandlung sparen!
Danke für den Tip, allerdings ändert das in diesem Fall nichts an unserem Problem, da mit dieser Drag&Drop-Operation auch gleichzeitig ein neues Bedienelement erzeugt wird und somit auch eine neue Referenz. ...Und man sieht wieder nichts im Anzeigeinstrument der MainVI!
Die Typkonvertierung ist also zwingend. Zumindest bei dieser Variante. Vielleicht gibt es noch weitere, aber so geht es nicht.

Frage: Wie soll man ohne einen Zeiger auf den Speicherbereich des Anzeigeinstruments der MainVI aus einer SubVI heraus direkt Ergebnisse dort anzeigen!?

Anbei das Programm mit den erläuterten Änderungen.

Grüße,
Stefan


Sonstige .vi  MainVI.vi (Größe: 10,2 KB / Downloads: 374)


Sonstige .vi  SubVI.vi (Größe: 14,18 KB / Downloads: 365)
</div>

Unter Intuition versteht man die Fähigkeit gewisser Leute,
eine Lage in Sekundenschnelle falsch zu beurteilen.
-Friedrich Dürrenmatt-
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
26.09.2006, 19:25
Beitrag #12

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 aus Sub VI im Haupt VI anzeigen
Hier die Variante mit Melder, ist denke ich am einfachsten.
Stop: Wenn das Haup-VI gestoppt wird, wird der Melder freigegeben und zerstört. Dadurch gibt es eine Fehlermeldung im Sub-VI, die hier zum Programmabbruch auch des Sub-VIs führt.
Wichtig: Am Sub-VI dürfen im Haupt-Vi keine Ausgänge angeschlossen sein, da sonst das Haupt-VI auf diese Daten warten würde. Hier ist das Sub-VI völlig "freischwebend". Wichtig ist auch, daß man sich beim Meldernamen nicht verschreibt, etwas "Test" im Haupt-VI und "Tesst" im Sub-VI.
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.09.2006, 07:45
Beitrag #13

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


Beiträge: 4.223
Registriert seit: Nov 2005

20xx
2000
EN

978xx
Deutschland
Werte aus Sub VI im Haupt VI anzeigen
Hi zusammmen...

@Stefan:
War wohl ein Missverständnis...rein technisch (Referenzen etc.) hab ich's natürlich geblickt, allerdings hast du's ja genauso gemacht (machen müssen!) wie ich schon gesagt habe: Das SubVI muss parallel zur Hauptschleife laufen, ob die Parallel-Schleife jetzt im SubVI läuft, oder ob ne Schleife um das SubVI ist, ist ja mal egal...wenn sie außenrum läuft, find ichs allerdings wesentlich nachvollziehbarer!

Beim Drag@Drop entsteht natürlich ein neues Bedienelement, ist ja auch beabsichtigt ("Drop")! Dann schmeißt man das "alte" raus und schon erspart man sich die Typkonvertierung! Wenn du deine Variante anwendest, dann solltest du sie so abändern:


Sonstige .vi  MainVI_NEU.vi (Größe: 10,31 KB / Downloads: 507)

Sonstige .vi  SubVI_NEU.vi (Größe: 11,34 KB / Downloads: 451)




@Myjestic:
Ich hab hier mal nen Dummy-"Regler" in ne Statemachine eingebaut (Var. XX wird einfach immer inkrementiert), man kann ihn stoppen/starten (inkl. Reset)...und du sparst die Verdrahtung deiner Werte nach außen, d.h. du musst außen kein Schieberegister mitschleifen, weil das intern im "Regler" passiert! Wenn du noch Fragen hast, meld dich...


Sonstige .zip  regler.zip (Größe: 29,42 KB / Downloads: 338)




@Lucki:
Damit du die evtl. Schreibfehler vermeiden kannst, könntest du statt nem Notifier/Melder auch ne Queue mit nur einem möglichen Element erstellen. An die kannst du nämlich seit LV6 jeden beliebigen Datentyp anschließen (nicht nur Strings wie früher, bzw. wie beim Notifier). Dann schließt du eine Enum-Element (als strikte Typdefninition) an, und kannst dann nur noch zulässige Werte in den "Ersatz-Notifier" schreiben (am einfachsten mit "Create Contant"), siehe folgendes Bild! Allerdings muss natürlich der Name der Queue an allen "Abfragestellen" (genau wie beim Notifier) richtig geschrieben werden. Das kann man aber in beiden Fälllen mit ner globalen/lokalen Variable umgehen, siehe ebenfalls dass Bild!



   

Gruss
Achim

"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
27.09.2006, 10:18 (Dieser Beitrag wurde zuletzt bearbeitet: 27.09.2006 10:25 von Lucki.)
Beitrag #14

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 aus Sub VI im Haupt VI anzeigen
' schrieb:@Lucki:
Damit du die evtl. Schreibfehler vermeiden kannst, könntest du statt nem Notifier/Melder auch ne Queue mit nur einem möglichen Element erstellen. An die kannst du nämlich seit LV6 jeden beliebigen Datentyp anschließen (nicht nur Strings wie früher, bzw. wie beim Notifier). Dann schließt du eine Enum-Element (als strikte Typdefninition) an, und kannst dann nur noch zulässige Werte in den "Ersatz-Notifier" schreiben (am einfachsten mit "Create Contant"), siehe folgendes Bild! Allerdings muss natürlich der Name der Queue an allen "Abfragestellen" (genau wie beim Notifier) richtig geschrieben werden. Das kann man aber in beiden Fälllen mit ner globalen/lokalen Variable umgehen, siehe ebenfalls dass Bild!
Kenne zwar LV schon seit der V6, aber leider habe ich Melder (Identifiers) und Queues erst in der Version 8 für mich entdeckt - dem LVF seis gedankt.
Ich weiß jetzt also nicht, wie es in den Vorversionen war, aber für LV8 kann ich sagen: Melder und Queues sind bezüglich der Datentypen völlig identisch, man kann jeden Datentyp, den man mit einer Queue übertragen kann, genau so mit einem Melder übertragen. Auch die gesamte Funktionspalette für Melder und Queue ist weitgehend identisch (oder besser, weil Queues komplexer sind: Die Funktionen für Melder sind eine Untermenge der Queue-Funktionen). Deshalb würde ich sagen, daß wegen der größeren Einfachheit Melder in jedem Fall die bessere Alternative zu Queues mit Warteschlangenlänge 1 sind. Ich würde sogar so weit gehen zu sagen, daß in den meisten Fällen, in denen hier im LVF eine Queue empfohlen wurde, ein Melder die bessere Empfehlung gewesen wäre, weil es fast immer nur um die Kommunikation zwischen VIs geht, nicht aber darum, zwischen Sender und Empfänger außerdem noch eine Warteschlenge aufzubauen. Aber jetzt geht mir ein Licht auf, die Vorliebe für Queues hat also ihre historischen Wurzelen, weil früher in bezug auf die Datentypen Melder nicht so viel konnten wie Queues.

Zum Thema Schreibfehler: Ich wollte nur zeigen, daß die Kommunikaition sogar dann funktioniert, wenn das SUB-VI im Haupt-Vi überhaupt nicht angeschlossen ist. Für besser halte ich es, wenn das Su-VI einen Eingang hat, dann gibt es auch keine Schreibfehler mehr - und außerdem ist es einfacher.
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.09.2006, 10:32
Beitrag #15

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


Beiträge: 4.223
Registriert seit: Nov 2005

20xx
2000
EN

978xx
Deutschland
Werte aus Sub VI im Haupt VI anzeigen
@Lucki:
Ups, ich dachte mit Meldern gehen nur Strings...das hat mich eh schon immer gewundert...dass die Queues aufgebohrt werden, die Notifiers aber nicht...ansonsten: Gut gebrüllt, Löwe!

A.

"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
27.09.2006, 10:43 (Dieser Beitrag wurde zuletzt bearbeitet: 27.09.2006 10:45 von Lucki.)
Beitrag #16

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 aus Sub VI im Haupt VI anzeigen
@Achim
Danke für die Blumen. Retour: es könntest sogar Du gewesen sein, dem ich die ersten Hinweise auf die Nützlichkeit von Queues überhaupt verdanke.
Hänge mal noch die VIs hier an


Angehängte Datei(en)
Sonstige .vi  Main_WA.vi (Größe: 11,1 KB / Downloads: 417)

Sonstige .vi  Sub_Wa.vi (Größe: 8,42 KB / Downloads: 359)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.09.2006, 10:56
Beitrag #17

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


Beiträge: 4.223
Registriert seit: Nov 2005

20xx
2000
EN

978xx
Deutschland
Werte aus Sub VI im Haupt VI anzeigen
Hi,

den Hinweis auf die Queues/Notifiers hast du bestimmt von eugen graf, der ist da scheinbar ganz wild drauf ;-)

A.

"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
27.09.2006, 11:09
Beitrag #18

StefanHH Offline
LVF-User
*


Beiträge: 35
Registriert seit: Aug 2006

7.0, 8.21, 8.5, 2013
2006
DE_EN

21220
Deutschland
Werte aus Sub VI im Haupt VI anzeigen
@Achim

Ich glaube auch... danke für den Hinweis. So entwickelt man sich weiter...
So geht es!

Schöne Grüße,
Stefan

Unter Intuition versteht man die Fähigkeit gewisser Leute,
eine Lage in Sekundenschnelle falsch zu beurteilen.
-Friedrich Dürrenmatt-
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.09.2006, 12:18 (Dieser Beitrag wurde zuletzt bearbeitet: 22.01.2007 15:26 von eg.)
Beitrag #19

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
Werte aus Sub VI im Haupt VI anzeigen
' schrieb:Hi,

den Hinweis auf die Queues/Notifiers hast du bestimmt von eugen graf, der ist da scheinbar ganz wild drauf ;-)

A.


EDIT Sorry, hab das Offtopic-Schild weggemacht. Es war wirklich ein Missverständnis

Ich verwende meistens Queues, weil ich den Datenverlust beim Loggen der Daten vermeiden will (es kann z.B. sein dass die Festplattemit der Frequenz der Daten nicht nachkommt).
Zum Anzeigen der Daten würde ich aber auf jeden Fall Notifiers verwenden.

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.09.2006, 12:34
Beitrag #20

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


Beiträge: 4.223
Registriert seit: Nov 2005

20xx
2000
EN

978xx
Deutschland
Werte aus Sub VI im Haupt VI anzeigen
@ eugen graf:
Was meinst du mit "OFF TOPIC" in diesem Zusammenhang? Ich bin mir ziemlich sicher, dass ich Lucki den Hinweis nicht gegeben hab...und da ich bei deinen posts schon mal davon gelesen hatte, bist du mir als evtl. "Hinweisgeber" halt gleich in den Sinn gekommen!

A.

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


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Haupt-VI zu mehrfach gleichzeitig ausführbaren Sub-VI machen mez15 5 4.727 14.02.2017 08:32
Letzter Beitrag: GerdW
  Durch Schließen des SubVIs reagiert das Haupt VI nicht mehr?! C.Maier 2 3.956 07.10.2016 07:52
Letzter Beitrag: Lucki
  Öffnen des Haupt-VI's nach Initialisierungsfenster mit Ladebalken antonym 2 3.932 20.07.2015 09:39
Letzter Beitrag: antonym
  Mehrere Sub VI's in einem "Haupt" VI verwenden Timo86 4 4.741 05.11.2013 15:00
Letzter Beitrag: Timo86
  Werte anzeigen vor Programmausführung Philmo 1 2.892 06.05.2012 15:15
Letzter Beitrag: jg
  Werte eines Clusters im Array anzeigen lassen Flogge154 3 4.691 26.03.2012 15:31
Letzter Beitrag: jg

Gehe zu: