LabVIEWForum.de - Plotnamen Waveform

LabVIEWForum.de

Normale Version: Plotnamen Waveform
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Liebes Forum,

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
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.
Hallo Markus,

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. Huh


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.
Hallo Markus,

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!
(23.08.2016 11:41 )GerdW schrieb: [ -> ]Hallo Markus,


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!

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
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.

In Labview 2015 funktioniert das Ganze auch noch nicht - aber dürfte sich tatsächlich um einen Bug handeln:
http://forums.ni.com/t5/LabVIEW/bugs-in-...-p/3244498

Problem scheint aber noch nicht gelöst, hab zumindest den Bugfix in keinem bisherigen Patch gefunden.

Danke an alle für die Hilfe 2hands
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..
Referenz-URLs