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!
habe ein Programm, welches zum Schluss eine Waveform ausspuckt. Vorher kann man durch booleans einstellen welche Signale wirklich dargestellt werden sollen. Also ändert sich die Anzahl der Graphen und somit auch, die Anzahl der plotnames.
In meinem VI wird auf Knopfdruck immer zuerst die Waveform erstellt und danach die Beschriftung der Graphen, wobei meiner Meinung nach eigentlich alles richtig abläuft. Die richtigen plotnames erscheinen in der Waveform allerdings erst beim zweiten Drücken des Buttons, beim ersten Durchlauf werden die vorherigen Werte teilweise, aber nicht ganz überschrieben.
Hat irgendwer eine Idee woran das liegen könnte? Habe 2 Screenshots des Programms angefügt.
Danke im Voraus für die Hilfe!
Gruß Markus
23.08.2016, 08:35 (Dieser Beitrag wurde zuletzt bearbeitet: 23.08.2016 08:35 von Lucki.)
Dieses Verhalten kenne ich, das ist aber schon lange her, und ich vermute, dass es ein Bug war, der sich mit einer höheren Version von Labview dann erledigt hatte. Wenn Du das VI posten würdest, könnte man das mal prüfen.
was mich bei deinem VI wundert sind die "default if unwired"-Tunnel an der inneren Case-Struktur.
Bist du dir sicher, dass du immer den korrekten Plot für den jeweiligen Plotnamen auswählst?
Bin mir relativ sicher, dass das so stimmt. Das Programm liest immer den Index ein welcher auf true gesetzt ist und übernimmt dann aus dem zweiten Array vom jeweils gleichen Index den Plotnamen. Wenn kein Wert mit true mehr gefunden wurde, springt die case-structure in den true case und soll dann auch keinen Wert mehr ausgeben - deswegen das Default if unwired bei beiden Ausgängen.
Und das Ganze müsste eigentlich funktionieren, weil sobald ich den Button nochmal klicke, stimmt ja alles.
Lucki hochladen könnt ich's schon, wird aber nicht funktionieren da es mit anderen Programmen verbundne ist und eigene Files einliest - also würds wahrscheinlich zum testen auch nicht gehen.
Labview 15 hab ich noch zur Verfügung, morgen wird ich's mit dem mal testen.
Zitat:Das Programm liest immer den Index ein welcher auf true gesetzt ist und übernimmt dann aus dem zweiten Array vom jeweils gleichen Index den Plotnamen.
So weit, so gut…
Zitat:Wenn kein Wert mit true mehr gefunden wurde, springt die case-structure in den true case und soll dann auch keinen Wert mehr ausgeben - deswegen das Default if unwired bei beiden Ausgängen.
Und hier kann man nur schreiben: THINK DATAFLOW!
- Wenn ein Tunnel da ist, dann gibt es auch einen Ausgabewert. Und der unterscheidet sich deutlich von "soll keinen Wert ausgeben"!
- Wenn kein TRUE gefunden wird, dann wird zumindest der erste Plot immer wieder neu gesetzt. Willst du das?
Nochmal: THINK DATAFLOW!
Und: Debuggen mit Sonden ist auch immer hilfreich!
- Wenn ein Tunnel da ist, dann gibt es auch einen Ausgabewert. Und der unterscheidet sich deutlich von "soll keinen Wert ausgeben"!
- Wenn kein TRUE gefunden wird, dann wird zumindest der erste Plot immer wieder neu gesetzt. Willst du das?
Nochmal: THINK DATAFLOW!
Und: Debuggen mit Sonden ist auch immer hilfreich!
Ah ja stimmt, hast recht - den ersten Wert lass ich aber mit einer stacked sequence structure danach nochmal überschreiben - keine Musterlösung aber funktioniret immerhin. Also daran kanns leider auch nicht liegen.
Beim Debuggen fällt mir leider auch nichts auf, sieht alles so aus als würde es funktionieren wie es soll, nur die Werte stimmen dann doch leider immer erst beim zweiten Versuch. Vermute mittlerweile echt schon, dass das einfach ein Bug ist.
Ich stoße ins selbe Horn wie Gerd: THINK DATAFLOW: Leider kann man in deinen Screenshots nicht erkennen, wann und wo die Arrays "pinnames" und "boolean" gesetzt werden. Vielleicht wird da was parallel ausgeführt. Und wenn du im "FALSE"-Case gar keine Plotnamen setzen willst, dann mach das halt einfach nicht, somit sparst du dir die Stacked Sequence und das Überschreiben des Plot 0.
Gruß, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
Gleichzeitig ablaufen tut in diesem Fall garnichts, es wird wirklich nur die Waveform erstellt und danach die Plotnamen beschriftet - mehr läuft im Hintergrund auch nicht ab.
Dann bin ich also einem Trugschluß aufgesessen: Ich dachte, dar Bug wäre behoben. In Wirklichkeit hatte ich in den letzten drei Jahren nur nichts mehr mit dem Problem zu tun gehabt..