19.08.2008, 11:29
|
Mueller
LVF-Grünschnabel
Beiträge: 29
Registriert seit: Mar 2008
2009
2006
de
1036*
Deutschland
|
Probleme mit dem Signalverlaufsdiagramm
So... Danke für eure Hilfe... das ist ja nicht selbstverständlich!
In meinem VI hab ich jetzt einfach die Skalierung des Diagramms in eine andere Whileschleife verlegt. Datenaustausch erfolgt via Queue.
Hab mir das immer Etwas komplizierter vorgestellt...aber ging doch ganz gut.
Aber mal so eine Frage am Rande, nimmt diese Queue-Funktion weniger Ressourcen in Anspruch als eine Lokale Variable? Oder bemerkt man das beim heutigen Stand der Computer einfach nicht mehr?
Noch was zum Beispiel mit der Farbänderung des Plots: Clever einfach zwei Plots übereinander zu legen! Das hilft mir aber leider nicht, da mein Eingangssignal zum Signalverlaufsdiagramm in WDT (Wafeform Data Typ) vorliegt... das kann ich nicht bündeln.
|
|
|
19.08.2008, 12:06
|
Mueller
LVF-Grünschnabel
Beiträge: 29
Registriert seit: Mar 2008
2009
2006
de
1036*
Deutschland
|
Probleme mit dem Signalverlaufsdiagramm
' schrieb:Man verwendet keine Lokalen Variablen.
OK.... aber wie realisierst du eine Kommunikation über zwei (oder mehr) parallel laufende Whileschleifen??? Immer mit Queue?
|
|
|
19.08.2008, 13:21
(Dieser Beitrag wurde zuletzt bearbeitet: 19.08.2008 13:22 von IchSelbst.)
|
IchSelbst
LVF-Guru
Beiträge: 3.697
Registriert seit: Feb 2005
11, 14, 15, 17, 18
-
DE
97437
Deutschland
|
Probleme mit dem Signalverlaufsdiagramm
' schrieb:OK.... aber wie realisierst du eine Kommunikation über zwei (oder mehr) parallel laufende Whileschleifen??? Immer mit Queue?
Immer mit Queue. Oder mit Melder. Eben je nach dem.
Eine Queue verwende ich, wenn ich eine Aufgabe vergebe, die genau einmal abgearbeitet werden muss. Eine bestimmte Aufgabe darf ja eben nur genau einmal gemacht werden: Init, Create etc. Einmal aus der Queue herausen, gilt die Aufgabe als erledigt. Queue-Inhalte kann man (per Definition) nicht überschreiben.
Ein Melder verwende ich, wenn ich Daten für die Allgemeinheit so mal eben in den Raum stellen will. Wen die Melderdaten nicht interessieren, der muss sie ja nicht ansehen. Wer sie brauchst, hat - per Definition - immer die aktuellen Daten. Daten, sie aus einem Melder gelesen werden, bleiben im Melder erhalten, sodass sie von mehreren gelesen werden können. Melder-Inhalte können überschrieben werden.
Man kann zwischen unabhängigen While-Schleifen Daten auch per Lokaler (innerhalb VI) oder Globaler (zwischen verschiedenen VIs) Variablen übertragen. Das geht zwar schneller zu programmieren, hat aber prinzpielle Nachteile: Race-Condition! (<= mach dich mal schlau, wichtiger Punkt in Datenfluß (wie auch in textbasiert)).
Gegen mal eben schnell eine Lokale Variable - so z.B. Stopp - hab ich ja nix einzuwenden - außer den Styleguide.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
|
|
|
19.08.2008, 16:21
(Dieser Beitrag wurde zuletzt bearbeitet: 20.08.2008 18:49 von jg.)
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
Probleme mit dem Signalverlaufsdiagramm
' schrieb:Aber mal so eine Frage am Rande, nimmt diese Queue-Funktion weniger Ressourcen in Anspruch als eine Lokale Variable? Oder bemerkt man das beim heutigen Stand der Computer einfach nicht mehr?
Wie schon gesagt, spielt das Preformance-Unterschied in der Regel überhaupt kein Rolle. Die Unterschiede liegen woanders:
Vorteil lokale Variable: Die erstellst sie mit der rechten Maustaste, fertig. Bei Queues oder Meldern brauchst Du mehrere Funktionen, um erst einmal so weit zu kommen. Wenn sich eine Aufgabe mit einer Lokalen Variablen sauber lösen läßt, würde ich niemals auf die Idee kommen, nur um der reinen Lehre willen Melder oder Queues verwenden.
Vorteil Melder/Queues: a) Es funktioneit VI-übergreifend, so wie globale Variablen. b) Das Allerwichtigste ist aber: Die Übergabe eines Wertes vom Sender zum Empfänger erfolgt mit so einer Art Handshaking. Sender und Empfängerschleife synchronisieren sich von selbst. Der Melde-/Queue- Empfänger wartet, bis bis ein neuer Wert ankommt. Bei lokalen oder globalen Variablem weiß man auf der Empfängerseite hingegen überhaupt nicht, ob ein aus der lokalen Variablen gelesener Wet neu ist, ob es immer noch der alte ist, oder ob seit Programmstart überhaupt noch kein Schreibvogang in die Variable stattgefunden hat.
Zitat:Noch was zum Beispiel mit der Farbänderung des Plots: Clever einfach zwei Plots übereinander zu legen! Das hilft mir aber leider nicht, da mein Eingangssignal zum Signalverlaufsdiagramm in WDT (Wafeform Data Typ) vorliegt... das kann ich nicht bündeln.
Ich würde eher sagen, das vereinfacht die Sache, siehe dieses einfache Beispiel
Graph_Farben_3_2__1_.vi (Größe: 16,22 KB / Downloads: 180)
|
|
|
20.08.2008, 10:59
|
Mueller
LVF-Grünschnabel
Beiträge: 29
Registriert seit: Mar 2008
2009
2006
de
1036*
Deutschland
|
Probleme mit dem Signalverlaufsdiagramm
' schrieb:siehe dieses einfache Beispiel
Kann es sein, dass das noch LV Version 8.2 ist? Kann es leider nicht öffnen!?
|
|
|
20.08.2008, 11:17
|
Y-P
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
Beiträge: 12.612
Registriert seit: Feb 2006
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
|
Probleme mit dem Signalverlaufsdiagramm
Hab's Dir runtergespeichert.
Probier's mal.
Graph_Farben_3_2_.vi (Größe: 15,92 KB / Downloads: 178)
Gruß Markus
' schrieb:Kann es sein, dass das noch LV Version 8.2 ist? Kann es leider nicht öffnen!?
--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
|
|
|
20.08.2008, 15:22
|
Mueller
LVF-Grünschnabel
Beiträge: 29
Registriert seit: Mar 2008
2009
2006
de
1036*
Deutschland
|
Probleme mit dem Signalverlaufsdiagramm
Nochmal danke für die Hilfe!
Da ich ja jetzt Queues benutze, kommt ab und zu diese Warnmeldung:
Kan mir jemand sagen wie diese beheben kann?
|
|
|
20.08.2008, 18:36
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
Probleme mit dem Signalverlaufsdiagramm
' schrieb:Kann es sein, dass das noch LV Version 8.2 ist? Kann es leider nicht öffnen!?
Entschuldigung, habe es oben editiert, ich hoffe daß es jetzt 80 ist.
|
|
|
| |