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 

Parallelverarbeitungsproblem



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!

11.11.2009, 10:17
Beitrag #11

tt-web Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 123
Registriert seit: Jul 2009

8.6
2008
de

64354
Deutschland
Parallelverarbeitungsproblem
Hallo!
ich muss sagen, ich bekomme es nicht hin...
Ich würde gerne die Struktur nehmen, die du in deinem Bild rechts unten deaktiviert hast. Wie mache ich das? Ich muss ja bei einer Menüaktion dann auch irgendwie die einzelnen Fälle abarbeiten. Leider finde ich hierzu nicht wirklich Informationen. Hast du einen Tipp? Einen Link, oder kannst es mir vlt. selbst erklären?

Liebe Grüße Thomas
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
11.11.2009, 11:50
Beitrag #12

SeBa Offline
LVF-Guru
*****


Beiträge: 2.025
Registriert seit: Oct 2008

09SP1 & 10 FDS
2008
DE

65xxx
Deutschland
Parallelverarbeitungsproblem
Die Eventstruktur liefert ja den Menüpunkt, den der User ausgewählt hat. Statt das per Eigenschaftenknoten in ein Stringcontrol zu schreiben, kannst du dort ja auch eine Case-Struktur anschließen. In jedem Case wird dann ein Menüpunkt bearbeitet.

Gruß SeBa

Dieser Beitrag soll weder nützlich, informativ noch lesbar sein.

Er erhebt lediglich den Anspruch dort wo er ungenau ist, wenigstens eindeutig ungenau zu sein.
In Fällen größerer Abweichungen ist es immer der Leser, der sich geirrt hat.

Rette einen Baum!
Diesen Beitrag nur ausdrucken, wenn unbedingt nötig!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.11.2009, 12:04
Beitrag #13

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

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Parallelverarbeitungsproblem
Etwas Grundsätzliches zur Ereignisbehandlung. Die beiden Hauptkonfigurationen wie man es einsetzt sind:
1) Innerhalb der Haupt-Whileschleife. (Ich mache es dann wegen der besseren Platzausnutzung meist so, daß ich die Ereignisstruktur als einziges Element ganz groß bis zu den Rändern in die Haupschleife stelle und das ganze Hauptprogamm im Timeout-Ereigniscase ablaufen lassen.)
In diesem Fall muß der Timeout Null oder kurz sein. Der Timeaut tritt an Stelle des in der Whileschleife ohnehin üblichen Waits.
2) In einer parallel laufenden Ereignisbehandlungs-Schleife. In diesem Fall kann der Timeout unendlich (-1, nicht angeschlossen) sein bzw. der Timeout-Case kann gelöscht werden.

Für eine der Möglichkeiten sollte man sich klar eintscheiden. Ich habe im Beispiel einen Mix gemacht, um beides zu zeigen. Das ist aber nicht unbedingt zu empfehlen.

Lv85_img
Sonstige .vi  Event2.vi (Größe: 17,45 KB / Downloads: 188)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.11.2009, 12:07
Beitrag #14

tt-web Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 123
Registriert seit: Jul 2009

8.6
2008
de

64354
Deutschland
Parallelverarbeitungsproblem
Hallo!
Damit habe ich es jetzt hinbekommen. Dennoch bleibt das PRoblem bestehen: Sobald das Menü aktiviert ist, steht das Frontpanel solange bis ich das Menü wieder verlasse. Ich verstehe das einfach nicht. Beide While-Schleifen sind doch unabhängig voneinander....oder?
Gruß Thomas
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.11.2009, 12:11
Beitrag #15

tt-web Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 123
Registriert seit: Jul 2009

8.6
2008
de

64354
Deutschland
Parallelverarbeitungsproblem
' schrieb:Etwas Grundsätzliches zur Ereignisbehandlung. Die beiden Hauptkonfigurationen wie man es einsetzt sind:
1) Innerhalb der Haupt-Whileschleife. (Ich mache es dann wegen der besseren Platzausnutzung meist so, daß ich die Ereignisstruktur als einziges Element ganz groß bis zu den Rändern in die Haupschleife stelle und das ganze Hauptprogamm im Timeout-Ereigniscase ablaufen lassen.)
In diesem Fall muß der Timeout Null oder kurz sein. Der Timeaut tritt an Stelle des in der Whileschleife ohnehin üblichen Waits.

Das bedeutet, dass ich keine zwei Schleifen habe, sondern eine, die aus einer einzigen ereignisbehandlungsroutine besteht. Demnach muss ich also mein komplettes "Programm" in diese Ereignisbehandlungsroutine einfügen. Korrekt?
Gruß Thomas
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.11.2009, 12:15
Beitrag #16

SeBa Offline
LVF-Guru
*****


Beiträge: 2.025
Registriert seit: Oct 2008

09SP1 & 10 FDS
2008
DE

65xxx
Deutschland
Parallelverarbeitungsproblem
Hab dann auch mal ein Bsp. gemacht...

Ich verstehe aber nicht warum dein Programm hängen bleibt, wenn du das Menü aufrufst.
In meinem Bsp. läuft der Main-Counter ja weiter, auch wenn das Menü offen ist und noch nichts ausgewählt wurde.


So stelle ich mir das vor:
       

Lv09_img2
Sonstige .vi  menue.vi (Größe: 15,93 KB / Downloads: 144)


Sonstige .txt  menue.rtm.txt (Größe: 492 Bytes / Downloads: 159)
.txt entfernen

Gruß SeBa

Dieser Beitrag soll weder nützlich, informativ noch lesbar sein.

Er erhebt lediglich den Anspruch dort wo er ungenau ist, wenigstens eindeutig ungenau zu sein.
In Fällen größerer Abweichungen ist es immer der Leser, der sich geirrt hat.

Rette einen Baum!
Diesen Beitrag nur ausdrucken, wenn unbedingt nötig!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.11.2009, 12:35
Beitrag #17

tt-web Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 123
Registriert seit: Jul 2009

8.6
2008
de

64354
Deutschland
Parallelverarbeitungsproblem
Hallo....
tja, das ist eine sehr gute Frage. Dein Beispiel läuft soweit ja auch ganz gut. Ich habe den vorherigen Tipp beachtet und mein ganzes Hauptprogramm in den Timeout gepackt. Witzig ist nun, dass kein einziger Wert gelesen wird, gerade so als würde der Timeout nie eintreten. Um ganz sicher zu gehen, habe ich das Hauptprogramm wiederum im Timeout mit einer Whileschleife umgeben, auch mit null Effekt. Ich lese in meinem Hauptprogramm permanent Werte von einem OPC-Server ein. In meinem Beispiel noch den des Demoservers, somit bekomme ich immer schöne Sinuskurven ;-)

Ich beschreibe vielleicht nochmal was meine Anwendung macht:

Ich habe eine Pumpe, die einen eingebauten OPC-Server hat, diese kann ich via OPC ein und ausschalten, ich kann Werte von Temperatur, Druck, Dichte, Massenfluss und aktueller Pumpenleistung abfragen und kann einstellen, wie groß mein Massenfluss sein soll.
Das Benutzerdefinierte Menü hat später wichtige Aufgaben, im Moment ist das noch einfach: Ich kann in einem Punkt anklicken, dass ich gerne eine Auswahl der vorhandenen Bedienungsanleitungen haben möchte. Daraufhin öffnet sich ein Fenster im Dialogstil, in dem ich dann die Anleitungen auswählen kann, diese werden dann im Acrobat geöffnet. Super, klappt. Nur hat eben die Messung an sich eine hohe Priorität, ich möchte hinterher auswerten können, wie die Verhältnisse bei meinen Versuchen mit dem Gerät waren, darum will ich jede Sekunde einen kompletten Satz an Messwerten einlesen und auch zum Beispiel in Kurven am Bildschirm sehen. Eben die Anzeige der Messwerte funktioniert aber nicht, solange das Menü aktiviert, oder einer der Ausgwewählten Menüpunkte (in Form kleiner SubVI's) noch aktiv sind. Ich habe auch schon versucht, die Priorität der betroffenen Subvi's auf unter normal zu stellen und das Hauptvi auf Zeitkritisch... juckt LabVIEW nicht.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.11.2009, 12:45
Beitrag #18

tt-web Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 123
Registriert seit: Jul 2009

8.6
2008
de

64354
Deutschland
Parallelverarbeitungsproblem
' schrieb:Hab dann auch mal ein Bsp. gemacht...

Ich verstehe aber nicht warum dein Programm hängen bleibt, wenn du das Menü aufrufst.
In meinem Bsp. läuft der Main-Counter ja weiter, auch wenn das Menü offen ist und noch nichts ausgewählt wurde.
So stelle ich mir das vor:
[attachment=50616:bd2.png][attachment=50617:fp2.png]

Lv09_img2[attachment=50613:menue.vi]
[attachment=50614:menue.rtm.txt] .txt entfernen

Gruß SeBa

Hallo,
das Problem mit deinem Beispiel ist, dass es gar nicht parallel laufen muss. Du gibst etwas ein und wählst aus dem Menü aus, danach wird ein Ergebnis berechnet. Ich erfasse ja kontinuierlich Daten und will währenddessen im Menü irgendwas fummeln können, ohne, dass die Datenverarbeitung der Hauptschleife gestört wird.
Gruß Thomas
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.11.2009, 12:49
Beitrag #19

SeBa Offline
LVF-Guru
*****


Beiträge: 2.025
Registriert seit: Oct 2008

09SP1 & 10 FDS
2008
DE

65xxx
Deutschland
Parallelverarbeitungsproblem
Hmm, wenn ich das jetzt auf mein Beispiel übertrage...
...dann ist das Anzeigen des Stringcontrols "Menü?" dein Einlesen von Messwerten. Und in der selben Schleife hast du nun die SubVIs zum anzeigen der Anleitung ect.pp. ?

In meinem Bsp. wiederum ist die Menübedingte Aktion des Rechnens in die Menüschleife ausgelagert. Die Mainschleife jucket es dann doch eigentlich nicht was ich in der Menüschleife mache... ergo der Counter läuft munter weiter.

Hast du versucht dieses Prinzip auf dein Programm anzuwenden? ...Ich kann natürlich auch daneben liegen. k.A.

-> Eine Schleife nur zum Lesen der OPC Daten, sonst nix. Kommunikation zwischen den Schleifen wenn nötig per Queue o.Ä.

-> Eine Schleife für den RestBig Grin

Gruß SeBa

Dieser Beitrag soll weder nützlich, informativ noch lesbar sein.

Er erhebt lediglich den Anspruch dort wo er ungenau ist, wenigstens eindeutig ungenau zu sein.
In Fällen größerer Abweichungen ist es immer der Leser, der sich geirrt hat.

Rette einen Baum!
Diesen Beitrag nur ausdrucken, wenn unbedingt nötig!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.11.2009, 13:20
Beitrag #20

SeBa Offline
LVF-Guru
*****


Beiträge: 2.025
Registriert seit: Oct 2008

09SP1 & 10 FDS
2008
DE

65xxx
Deutschland
Parallelverarbeitungsproblem
' schrieb:Hallo,
das Problem mit deinem Beispiel ist, dass es gar nicht parallel laufen muss. Du gibst etwas ein und wählst aus dem Menü aus, danach wird ein Ergebnis berechnet. Ich erfasse ja kontinuierlich Daten und will währenddessen im Menü irgendwas fummeln können, ohne, dass die Datenverarbeitung der Hauptschleife gestört wird.
Gruß Thomas

Ich denke ich stehe auf'm Schlauch. Genau das mach das Beispiel doch...

Kontinuierlich die Mainschleife ausführen, unabhängig davon was du im Menü machst.

Hmm Help

Gruß SeBa

Dieser Beitrag soll weder nützlich, informativ noch lesbar sein.

Er erhebt lediglich den Anspruch dort wo er ungenau ist, wenigstens eindeutig ungenau zu sein.
In Fällen größerer Abweichungen ist es immer der Leser, der sich geirrt hat.

Rette einen Baum!
Diesen Beitrag nur ausdrucken, wenn unbedingt nötig!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Gehe zu: