13.04.2013, 15:37
Beitrag #1
|
Hasenfuss
LVF-Stammgast
Beiträge: 331
Registriert seit: Dec 2012
2012
2012
DE
|
wie Blockdiagramm vereinfachen
Ich möchte gerne ein Blockdiagramm vereinfachen. Nehmen wir mal an, ich habe ein Frontpanel mit drei Signalanzeigen. Zu jeder Signalanzeige gehören diverse Operationen und es sind einige Steuerknöpfe vorhanden, die mittels Eventstruktur verarbeitet werden.
Die Funktion "SubVI erstellen" ist ansich sehr schön. Wenn ich aber z.B. eine while-Schleife habe, um ein Signalverlaufsgramm zu aktualisieren, dann kann ich daraus nicht mehr so einfach ein SubVI erstellen, denn das SubVI bleibt dann so lange stehen, bis es beendet wird. Ausserdem ist ja dann das Signalverlaufsdiagramm auch im SubVI.
Es geht also jetzt hierbei darum, Daten zwischen Hauptprogramm und Unterprogramm auszutauschen. Ich könnte für verschiedene Anzeigewerte unterschiedliche funktionale globale Variablen verwenden, aber ich bin mir grad nicht so sicher, ob FGVs gut sind, um schnell Messwerte hin- und herzuschieben?
Vielleicht wäre das Arbeiten mit Referenzen eine Alternative? Dann könnte ich aus einem SubVI die Daten dierekt in das Diagramm im Hauptprogramm heraus aktualisieren?
Ich erstelle ein SubVI mit eigenem Frontpanel, dass ich in das Hauptprogramm einbinde (mittels Unterpanel)?
XControls scheiden da für mich aus, weil die erstmal ohne weiteres nicht sich selbst aktualisieren.
Was macht Ihr denn so?
|
|
|
14.04.2013, 19:31
Beitrag #2
|
Trinitatis
LVF-Guru
Beiträge: 1.694
Registriert seit: May 2008
7.1 / 8.0 /2014-1, 18
2002
DE
18055
Deutschland
|
RE: wie Blockdiagramm vereinfachen
Hallo Hasenfuss,
ich hab mal eine Grundsatzfrage an dich:
Es kommt mir manchmal so vor, als wolltest du die Forumsmitglieder irgendwie beschäftigen. Es gibt hier viele Fragesteller, die ein für sie ernstzunehmendes LabView-Problem haben, das sie lösen möchten / müssen - da hängen dann oft sicher auch deadlines dran, was ihr Problem zudem verschärft.
Bei dir kommt es mir so vor, als suchtest du manchmal nach Fragen, die du noch stellen könntest.
Nimm mir diesen post bitte nicht übel, aber ich fürchte, irgendwann verliert auch der geduldigste poster die Lust, dir zu antworten!
In deiner aktuellen Anfrage ist es wieder so: Da sind Sätze wie "Nehmen wir mal an..." oder "was macht ihr denn so" zu lesen. Du präsentierst allerdings dann auch mehrere Lösungsvorschläge - probier doch einfach mal etwas herum, dann bekommst du viel besser ein Gefühl dafür, was die beste Methode für deine Anwendung ist, als wenn dir jetzt irgend jemand beispielsweise antwortete: Versuch´s mal mit queues.
Gruß, Marko
|
|
|
14.04.2013, 20:11
Beitrag #3
|
Holy
LVF-Stammgast
Beiträge: 339
Registriert seit: Sep 2008
2014
2007
EN
09XXX
Deutschland
|
RE: wie Blockdiagramm vereinfachen
(13.04.2013 15:37 )Hasenfuss schrieb: Ich möchte gerne ein Blockdiagramm vereinfachen. Nehmen wir mal an, ich habe ein Frontpanel mit drei Signalanzeigen. Zu jeder Signalanzeige gehören diverse Operationen und es sind einige Steuerknöpfe vorhanden, die mittels Eventstruktur verarbeitet werden.
Die Funktion "SubVI erstellen" ist ansich sehr schön. Wenn ich aber z.B. eine while-Schleife habe, um ein Signalverlaufsgramm zu aktualisieren, dann kann ich daraus nicht mehr so einfach ein SubVI erstellen, denn das SubVI bleibt dann so lange stehen, bis es beendet wird. Ausserdem ist ja dann das Signalverlaufsdiagramm auch im SubVI.
Es geht also jetzt hierbei darum, Daten zwischen Hauptprogramm und Unterprogramm auszutauschen. Ich könnte für verschiedene Anzeigewerte unterschiedliche funktionale globale Variablen verwenden, aber ich bin mir grad nicht so sicher, ob FGVs gut sind, um schnell Messwerte hin- und herzuschieben?
Vielleicht wäre das Arbeiten mit Referenzen eine Alternative? Dann könnte ich aus einem SubVI die Daten dierekt in das Diagramm im Hauptprogramm heraus aktualisieren?
Ich erstelle ein SubVI mit eigenem Frontpanel, dass ich in das Hauptprogramm einbinde (mittels Unterpanel)?
XControls scheiden da für mich aus, weil die erstmal ohne weiteres nicht sich selbst aktualisieren.
Was macht Ihr denn so?
Die besten Tipps dürfte es geben wenn du ein Bild deines Blockdiagramms zeigen könntest, weil deine Angaben sind viel zu allgemein. Aber im Allgemeinen würde ich dir folgende Tipps/Ansätze geben.
Wenn du identischen Code für die Aktualisierung der Graphen hast dann mach ein SubVI daraus. FGVs sind (im allgemeinen) performancetechnisch kein Problem. Bei der Arbeit mit Front Panel Referenzen sollte man immer darauf achten die Trennung zwischen GUI und dem restlichen Code beizubehalten. Das erspart einem langfristige Probleme.
|
|
|
15.04.2013, 05:50
Beitrag #4
|
NWOmason
Simultator
Beiträge: 1.078
Registriert seit: Dec 2010
2012.SP1
2008
EN
93047
Deutschland
|
RE: wie Blockdiagramm vereinfachen
(13.04.2013 15:37 )Hasenfuss schrieb: Die Funktion "SubVI erstellen" ist ansich sehr schön. Wenn ich aber z.B. eine while-Schleife habe, um ein Signalverlaufsgramm zu aktualisieren, dann kann ich daraus nicht mehr so einfach ein SubVI erstellen, denn das SubVI bleibt dann so lange stehen, bis es beendet wird. Ausserdem ist ja dann das Signalverlaufsdiagramm auch im SubVI.
Solange der Beendigungsprozess der einzelnen SubVIs sauber implementiert ist, stellen parallel Schleifen, die sich in einem SubVI befinden kein Problem dar. Datenaustauschmethode wie FGVs oder Queues eignen sich dafür hervorragend.
(13.04.2013 15:37 )Hasenfuss schrieb: Es geht also jetzt hierbei darum, Daten zwischen Hauptprogramm und Unterprogramm auszutauschen. Ich könnte für verschiedene Anzeigewerte unterschiedliche funktionale globale Variablen verwenden, aber ich bin mir grad nicht so sicher, ob FGVs gut sind, um schnell Messwerte hin- und herzuschieben?
Die logische Gegenfrage lautet hier: Wie schnell und wieviele Daten sollen den aktualisiert werden? Bitte immer an die Trägheit und Auflösung des menschlichen Auges denken
(13.04.2013 15:37 )Hasenfuss schrieb: Ich erstelle ein SubVI mit eigenem Frontpanel, dass ich in das Hauptprogramm einbinde (mittels Unterpanel)?
Ich spreche hier auch immer gerne vom 'eigenen Modul'. Wenn z.B. die nötigen Werte mittels FGVs übergeben werden, dann kann das SubVI, welches im SubPanel angezeigt wird, vom MainVI erstmal komplett unabhängig laufen.
Beste Grüße,
NWO
|
|
|
| |