(08.04.2011 20:14 )Schüler92 schrieb: Ich wollte fragen was in der Ereignisstruktur passiert.
Eine Event-Struktur ist dazu da, um auf Benutzeraktionen zu reagieren. Benutzeraktionen sind z.B. das Betätigen eines Buttons (Click) oder das Ändern eines Wertes etc. In deinem Falle wird auf die Auswahl des Entnahmetanks (Bedienelement "Entnahme Methanol" aus Tank 1 oder Tank 2) reagiert. Sobald du also einen Tank zur Entnahme wählst, wird in die Event-Struktur verzweigt.
Es gibt ein SubVI namens "Volumen steuern". Dieses SubVI ist als Modul ausgelegt und läuft selbständig im Hintergrund. Es macht nichts weiter, als (mehrere) Volumen zu entleeren oder zu befüllen. Was (mit einem Volumen) gemacht werden soll, kann man dem Modul von außerhalb des Moduls vorgeben. Man kann also vorgeben, ob ein bestimmtes Volumen (z.B. "Methanol Tank 1") ab jetzt geleert oder befüllt werden soll. Wie bekommt man nun diese Vorgaben (Vorgaben sind Parameter, also Daten und fallen im allgemeinen unter Property), in das Modul? Ganz einfach: Das Modul besitzt zum Steuern eine "Steuer-Queue". Will man also Daten in das Modul hineinbekommen - beachte: das SubVI selbst ist ja in keinen Datenfluß eingebunden - sendet man die Daten ganz einfach per Queue. Das Modul fragt ständig die Queue ab, ob was neues anliegt: Wenn nein, naja Gott. Und wenn ja, dann halt das neue beachten. Daten kann man natürlich auch aus dem Modul nach außen "senden": per Melder.
Jetzt können wir wieder bei dem Event-Case weitermachen: Hier wird die Queue beschrieben, damit das Modul weis, was der Anwender ab jetzt machen will.
Zitat:Wozu sind die Funktionen Queue anfordern und Melder anfordern notwendig?
Um Daten per Queue zwischen zwei selbständigen, also nicht per Datenfluß verbundenen SubVIs auszutauschen, muss natürlich zuerst einmal eine Queue definiert werden. Mit "Queue anfordern" wird nichts weiter gemacht als eine Queue zur Verfügung gestellt. Ohne "Queue anfordern" kann man nicht per Queue kommunizieren. Gleiches gilt für Melder.
Noch ein Hinweis:
Man muss natürlich nicht unbedingt Queues und Melder nehmen. Man kann das Modul auch als LVOOP-Klasse aufbauen. Klassen haben per se Propertys ...