SubVI oeffnen lassen?

Design, Gestaltung, Ergonomie, Farbauswahl, Fenster- und Elementenskalierung, Schriften
Ответить
Andband
assistant
assistant
Сообщения: 132
Зарегистрирован: 26 окт 2009, 23:05
Версия LabVIEW: 7.1
Контактная информация:

SubVI oeffnen lassen?

Сообщение Andband »

Hallo
ich habe hier eine unschoene grosse (natuerlich parallel zum Mainloop laufende :) ) Schleife, welche Messwerte aufzeichnet. Sie ist bis auf einen Notifier zum Starten und Stoppen unabhaengig vom Mainloop.
Ich wuerde das Ding gerne in ein SubVI packen um mehr uebersicht zu gewaehrleisten. Bloederwiese moechte ich mir aber auch die aufgezeichneten Messwerte life in einem Chart anzeigen lassen.
Naja und Indicatoren in Schleifen in Subvis kann man ja ausserhalb des SubVis nicht sehen, soweit ich weiss.

Ich koennte natuerlich versuchen die Messwerte ueber eine globale Variable zurueckzuschicken (Notifier geht denk nicht, da das Mainloop viel schneller laueft und dann dauernd warten wuerde) und dann im Mainloop Charts dafuer zu erstellen.

Am einfachsten waere es aber wahrscheinlich, wenn man das SubVI dazu bekommen wuerde, sich bei Programm Start selbststaendig im Vordergrund zu oeffnen. Geht sowas? Wie ?
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: SubVI oeffnen lassen?

Сообщение Eugen Graf »

Du kannst wohl Notifier/Queue benutzen um die Werte ausm Sub :vi: zurück zum Main zu verschicken. Dazu brauchst du im Main noch eine "Anzeige-Schleife", die über die Queue Werte empfängt und anzeigt.
Main besteht (zumindest bei mir) aus zwei parallelen Schleifen. Die eine ist für die User-Eingaben und die andere für die Anzeige der Daten auf dem Front Panel. Dazu habe ich mehrere parallallaufende Sub :vi:s, die irgendwo von anderen Geräten Messwerte aufnehmen oder überhaupt mit anderen Geräten kommunizieren.

Alternativ kannst du natürlich einfach das Front Panel des parallellaufenden Sub :vi: öffnen. Somit hast du dann zwei Fenster. Oder sogar das SubPanel benutzen, um das FP des SubVIs ins FP des MainVIs zu integrieren.
Andband
assistant
assistant
Сообщения: 132
Зарегистрирован: 26 окт 2009, 23:05
Версия LabVIEW: 7.1
Контактная информация:

Re: SubVI oeffnen lassen?

Сообщение Andband »

Aso, jetzt check ichs, ein weiteres paralleles Loop im Main. Gute Idee. Sehr cool.

Das mit dem Subpanel waere natuerlich auch interessant :)
Andband
assistant
assistant
Сообщения: 132
Зарегистрирован: 26 окт 2009, 23:05
Версия LabVIEW: 7.1
Контактная информация:

Re: SubVI oeffnen lassen?

Сообщение Andband »

Nochwas:
Du sagst du hast ein Loop fuer Usereingaben, eins fuer Anzeigen.
Alles andere machen SubVIs. Schickst du dann im Mainloop dauern einen Notifier mit dem aktuellen Status von allen Controls an alle Subvis, bzw. dauernd verschiedene Notifier mit den jeweiligen spezifischen Informationen an verschiedene SubVIs oder schickst du nur Notifier wenn sich was geaendert hat.

Ich z.B. moechte gerne eine Ausgangsspannung auf einen anderen Wert setzen. Momentan wird dazu im Mainloop der Wert eingelesen und dann sofort jedesmal ein Subvi ausgefuehrt, dass den Analogen Output Task initialisiert, den Wert schreibt und den Task wieder schliesst.

Besser bzw. Resourcenschonenender waere es wahrscheinlich, ueber ein Schieberegister im Mainloop immer zu pruefen, ob der Wert ueberhaupt vom User geaendert worden ist und nur wenn das der Fall ist das Subvi starte.
Allerdings schaut dann das Mainloop schnell sehr chaotisch aus, weil ueberall die Schieberegister rumhaengen if-Abfragen ob sich der jeweilige Wert geaendert hat. Gibts da was eleganteres?
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: SubVI oeffnen lassen?

Сообщение Eugen Graf »

Habe keine Angst mehrere parallele Loops zu benutzen. Hauptsache du kannst damit umgehen und wenn, dann sind fast keine Grenzen gesetzt.
Andererseits kann man alles in einer Loop erledigen, dann übernimmst du die Aufgabe des Verteilers, du musst mit Timeouts und Puffer arbeiten, aber :labview: macht es sehr gut.
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: SubVI oeffnen lassen?

Сообщение Eugen Graf »

Habe zwar oben was geschrieben, will es aber für dich nicht zu komplex machen, alles kommt mit der Zeit, man muss auch nicht übertreiben. Kleine Aufgaben kann man auch schnell lösen.
Die Antworten auf deine Fragen kommen später.

Gruß, eg

P.S. hoffentlich benutzt du Event-Struktur in der Eingabe-Loop.
Andband
assistant
assistant
Сообщения: 132
Зарегистрирован: 26 окт 2009, 23:05
Версия LabVIEW: 7.1
Контактная информация:

Re: SubVI oeffnen lassen?

Сообщение Andband »

Wenn man keine parallelen Loops verwendet, dann muesste man sich aber wirklich jedes Timeout genau ueberlegen, ich glaub ich bin also eher ein Fan von den parallelen.

Und nein, ich benutze keine Event-Struktur. Davon hab ich bisher keine Ahnung. Ist das der richtige Weg, dass Sachen nur dann verarbeitet werden wenn sie geaendert worden sind - also ein EVENT stattgefunden hat?

Auf Antworten gespannt :)
Andi
Ответить

Вернуться в «Front panel»