21.08.2008, 14:35
Beitrag #1
|
Curtis Newton
LVF-Gelegenheitsschreiber
Beiträge: 132
Registriert seit: Apr 2008
8.5
2008
de
14***
Deutschland
|
Producer-Consumer-Struktur - richtig
Hallo,
da meine Programme jetzt etwas größßer werden, muss ich mir ja mal Gedanken um die Struktur machen. Für größere Programme geeignet erscheint mir die Producer-Consumer-Struktur. Ich habe mal ein Beispiel, um mir das Konzept zu verdeutlichen, erstellt. Anbei. Ist das soweit richtig?
Zwei Fragen habe auch zusätzlich noch:
1. Ich bekomme für die beiden Buttons folgende Warnmeldung: "Der Anschluss für dieses Bedien- oder Anzeigeelement auf dem Frontpanel ist nicht verbunden." Ja, wohin soll ich es denn verbinden? Ich brauche den Wert doch garnicht, sondern nur die beiden Dinger als Buttons.
2. Immer, wenn ich einen Case bei dem enum "Queue anfordern" hinzufüge, muss ich alle enums bei "Element einfügen" (also in der oberen while-Schleife) neu erstellen. Geht das auch komfortabler?
Danke!
C.
ProducerConsumerEvents.vi (Größe: 26,89 KB / Downloads: 475)
(LV 8.51)
|
|
|
21.08.2008, 14:50
Beitrag #2
|
Y-P
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
Beiträge: 12.612
Registriert seit: Feb 2006
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
|
Producer-Consumer-Struktur - richtig
Sieht doch schon mal gut aus.
Dein Problem mit dem Enum kannst Du mit einer Typedef lösen. Dazu gibt's auch hier im Forum Beispiele.
Gruß Markus
--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
|
|
|
21.08.2008, 14:51
Beitrag #3
|
|
|
21.08.2008, 14:53
(Dieser Beitrag wurde zuletzt bearbeitet: 21.08.2008 14:55 von Y-P.)
Beitrag #4
|
Y-P
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
Beiträge: 12.612
Registriert seit: Feb 2006
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
|
Producer-Consumer-Struktur - richtig
........ und hier ist ein Bsp. dazu in Verbindung mit einer State Machine.
Gruß Markus
--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
|
|
|
21.08.2008, 14:59
Beitrag #5
|
|
|
21.08.2008, 18:55
Beitrag #6
|
Curtis Newton
LVF-Gelegenheitsschreiber
Beiträge: 132
Registriert seit: Apr 2008
8.5
2008
de
14***
Deutschland
|
Producer-Consumer-Struktur - richtig
' schrieb:Speichere dein Enum als StrictTypeDef (Advanced...Customize)
Wo? Finde ich nicht. Ich habe ein dt. LabVIEW...
C.
|
|
|
21.08.2008, 21:07
Beitrag #7
|
Y-P
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
Beiträge: 12.612
Registriert seit: Feb 2006
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
|
Producer-Consumer-Struktur - richtig
Hier.... (ist zwar englisch, aber so müsstest Du es finden).
Gruß Markus
' schrieb:Wo? Finde ich nicht. Ich habe ein dt. LabVIEW...
C.
--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
|
|
|
22.08.2008, 09:32
Beitrag #8
|
Curtis Newton
LVF-Gelegenheitsschreiber
Beiträge: 132
Registriert seit: Apr 2008
8.5
2008
de
14***
Deutschland
|
Producer-Consumer-Struktur - richtig
' schrieb:Sieht doch schon mal gut aus.
Dein Problem mit dem Enum kannst Du mit einer Typedef lösen. Dazu gibt's auch hier im Forum Beispiele.
Gruß Markus
Wie mache ich das denn, wenn sich Daten ändern und in Controls neu geschrieben werden? In meinen Beispiel werden ja immer beide Controls (Number und String) neu mit Daten gefüllt, wenn die Consumer-Schleife was gemacht hat. Packe ich dann die Controls in die Case-Struktur? Aber was ist, wenn mehrere Cases das gleiche Control füllen? Operiere ich dann mit lokalen Variablen?
Danke!
C.
|
|
|
22.08.2008, 11:59
Beitrag #9
|
|
|
22.08.2008, 12:29
|
Curtis Newton
LVF-Gelegenheitsschreiber
Beiträge: 132
Registriert seit: Apr 2008
8.5
2008
de
14***
Deutschland
|
Producer-Consumer-Struktur - richtig
' schrieb:Ich verstehe deine Frage nicht.
Machs so wie im Bild (untere Schleife) in deinem ersten Beitrag, also Controls außerhalb der Case-Sequenz. Dann kannst du von mehreren Cases aus auf die Controls schreiben. Nämlich immer dann, wenn die Sequenz beendet wird.
Aber dann schreibe ich doch immer in alle Controls, auch wenn sich die betreffenden Daten nicht geändert haben (in meinem Beispiel wird auch in Number geschrieben, auch wenn sich nur String geändert hat). Oder macht das nichts, weil LabVIEW merkt, wenn sich die Daten nicht geändert haben und ensprechend nichts tut?
Danke!
C.
|
|
|
| |