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!
ich möchte im Rahmen einer Softwareentwicklung, mit hilfe von LabVIEW 2009, die Programmierung von Legenden ermöglichen.
Es geht um das Einlesen von 1 bis 4 Signalen. Jedes Signal entspricht zu einem bestimmten Kanal. D.h., man hat auch für 4 Signale insgesamt 4 Kanäle. (Jeder Kanal wird in unserem Fall mit einem bestimmten Knopf bezeichnet).
Die Kanäle (1, 2, 3, 4) müssen also jeweils mit den Signalen (0, 1, 2, 3) festgelegt werden. Mit anderen Wörtern muss man immer auf diese vier (04) folgenden Bedingungen achten :
Activ.Plot 0 muss immer zu "Kanal 1" und Signal 0 entsprechen. (Der eingegebene Plot.Name muss auch immer "Kanal 1" für Activ.Plot 0 ausliefern)
Activ.Plot 1 muss immer zu "Kanal 2" und Signal 1 entsprechen. (Der eingegebene Plot.Name muss auch immer "Kanal 2" für Activ.Plot 1 ausliefern)
Activ.Plot 2 muss immer zu "Kanal 3" und Signal 2 entsprechen. (Der eingegebene Plot.Name muss auch immer "Kanal 3" für Activ.Plot 2 ausliefern)
Activ.Plot 3 muss immer zu "Kanal 4" und Signal 3 entsprechen. (Der eingegebene Plot.Name muss auch immer "Kanal 4" für Activ.Plot 3 ausliefern)
Ich habe also einige VI und Sub-VI geschrieben. Ich habe drei (03) Codes mit verschiedene Denksweise geschrieben und getestet.
Bei dem Code "old_legend_test.llb" läuft die Legende programmatisch richtig, aber die dargestellten Kurven erfüllen leider nicht immer die (04) Bedingungen. In diesem Code habe ich nicht Activ.Plot mit dem entsprechenden Signalswert (0 oder 1 oder 2 oder 3) verbunden sondern mit dem Wert [i] der Schleife.
Bei dem Code "new_legend_test.llb" liefert die Legende nicht die gewünschten Ergebnisse, obwohl, ich nur eine einzige Änderung im Vergleich zu "old_legende_test.llb" gemacht habe, in dem ich Activ.Plot mit dem entsprechenden Signalswert verbunden habe.
Bei dem Code "new_legend_test2.llb", die mit einer anderen Denksweise programmiert wurde, liefert die Legende ähnliche Ergebnisse wie bei dem Code "new_legend_tes.llb", obwohl die gewünschten Werte für Aktiv.Plot, Plot.Name und Plot.Farbe eingegeben wurden.
Fazit: Ich bin mit keiner Lösung zufrieden. Die Legende bei dem Code "old_legend_test.llb" liefert richtige Ergebnisse aber die Darstellung von Signalen erfüllt nicht immer die vier (04) angegebenen Bedingungen.
Beispiele mit dem Code "old_legend_test.llb" :
Wenn ich z.B. nur Kanal 2 auswähle wird Signal 0 (wegen Activ.Plot [i=0]) eingelesen anstatt von Signal 1 (wie nach den (04) Bedingungen).
Ebenso wählt man Kanal 3 und 4 aus, werden Signal 0 (wegen Activ.Plot[i=0]) und Signal 1 (Activ.Plot[i=1]) eingelesen anstatt von Signal 2 und Signal 3 (wie nach den (04) Bedingungen). Siehe dazu Bild: Frontpanel_main_of_old_legend_test.jpg.
Das Problem ist mit Rot gekennzeichnet und alles, mit Grün gekennzeichnet, ist richtig erwartet.
Ich bemerke, dass wenn ich versuche die vier (04) Bedingungen zu betrachten wie mit den Coden: "new_legend_test.llb" und "new_legend_test2.llb", die Legende funktionieren nicht mehr richtig.
Kann jemand mir helfen? Wo sehen Sie mein Fehler? Ist es überhaupt möglich Signale 1 oder 2 oder 3 einzulesen ohne Signal 0 vorher zu plotten?
Ich bedanke mich im Voraus für Ihre Antworte und Lösungen.
Mit freundlichen Grüßen,
N.B.
Alle LabVIEW Dateien sind mit LabVIEW 2009 gespeichert worden.
Deine Idee läßt sich selbstverständlich umsetzen, und vor Jahren habe ich das als Gedankenspielerei auch mal gemacht. Mein Ergebnis war aber: Dieser Aufwand lohnt sich nicht. Die unten gezeige ganz einfache Lösung betrachte ich als gleichwertig. Schau Dir das erst mal an.
lv2009
Legende.vi (Größe: 15,46 KB / Downloads: 349)
ich bedanke mich bei dir für deine schnelle Antwort. Dein Vorschlag finde ich hilfreich, obwohl ich gehofft hätte, dass man die Legende programmatisch mit bestimmten Daten kontrollieren konnte.
Schade aber viel dank nochmal für deinen Vorschlag.