LabVIEWForum.de - Diagramm-Aktualisierung "auf einmal"

LabVIEWForum.de

Normale Version: Diagramm-Aktualisierung "auf einmal"
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hi zusammen,

ich habe ein SubVI, dem ich die Referenz eines Graphen übergebe.
In diesem SubVI nutze ich einige Property Nodes, um den Graphen zu verändern (z.B. die Farbe). Zum Teil läuft das innerhalb von Schleifen und da beginnt der Graph kurz zu flackern während das SubVI läuft (geschätzte 30 - 50 Aufrufe der Property Nodes).

Nun gibt es ja "Defer Panel Updates", um die Aktualisierung eines Frontpanels zu verzögern:

[attachment=29230]

Da ich so etwas nicht im Blockdiagramm des Haupt-VIs haben möchte, müsste ich die Referenz des HaupVIs an ein SubVI übergeben und kann die Eigenschaften dort entsprechend setzen.
D.h. das gezeigte BD ist so nicht richtig und "Dieses VI" muss in ein Bedienelement geändert werden. Sonst bezieht sich die VI-Referenz auf das Frontpanel des SubVIs und das bringt natürlich nichts.

Geht das auch schöner, z.B. mit eine Eigenschaft direkt für einen Graphen?

Grüße
' schrieb:Hi zusammen,

ich habe ein SubVI, dem ich die Referenz eines Graphen übergebe.
In diesem SubVI nutze ich einige Property Nodes, um den Graphen zu verändern (z.B. die Farbe). Zum Teil läuft das innerhalb von Schleifen und da beginnt der Graph kurz zu flackern während das SubVI läuft (geschätzte 30 - 50 Aufrufe der Property Nodes).
Genau! Denn jede PropertyNode erzwingt ein FP-Update.
' schrieb:Nun gibt es ja "Defer Panel Updates", um die Aktualisierung eines Frontpanels zu verzögern:
Da ich so etwas nicht im Blockdiagramm des Haupt-VIs haben möchte, müsste ich die Referenz des HaupVIs an ein SubVI übergeben und kann die Eigenschaften dort entsprechend setzen.
D.h. das gezeigte BD ist so nicht richtig und "Dieses VI" muss in ein Bedienelement geändert werden. Sonst bezieht sich die VI-Referenz auf das Frontpanel des SubVIs und das bringt natürlich nichts.
Alles genau richtig erkannt und beschrieben. Deshalb musst du die Refnum des MainVI als Control übergeben.
' schrieb:Geht das auch schöner, z.B. mit eine Eigenschaft direkt für einen Graphen?
Nö, zumindest nicht meines Wissens nach. Ich mache es genauso.

Gruß, Jens
Vielen Dank. Dann mache ich es auch so.

Edit: Ich sehe gerade, dass ich im gezeigten Blockdiagramm die falsche Referenz schließe. Ich wollte eigentlich die der ersten Property Node, also die Referenz auf "Dieses VI", schließen.
Nicht, dass das Anfänger nun einfach übernehmen und dann falsch machen.

Edit 2: Ich lass es flackern, da ein RT-System angeblich kein echtes Frontpanel hat, auch wenn man sich das anzeigen lassen kann ...
Naja, aber das stört auch nicht großartig.
' schrieb:Edit 2: Ich lass es flackern, da ein RT-System angeblich kein echtes Frontpanel hat, auch wenn man sich das anzeigen lassen kann ...
Naja, aber das stört auch nicht großartig.
Ui, RT, da gibt es die PropertyNode "Defer FP Update" sowieso nicht. Da bekommst du schon beim Erstellen der RT-Exe eine Fehlermeldung.
Wobei ich mich dann frage, wieso willst du auf einem RT-System ein aufwendiges FP mit Graph-Updates per Refnum machen? Das widerspricht sich doch.

Gruß, Jens
' schrieb:Wobei ich mich dann frage, wieso willst du auf einem RT-System ein aufwendiges FP mit Graph-Updates per Refnum machen? Das widerspricht sich doch.
Nein, das widerspricht sich eigentlich nicht.
Es werden Messdaten erfasst und ausgewertet. Je nach Messergebnis muss im Graph angezeigt werden, was nicht passt. Daher diese Aktualisierungen.
Also ich würde eine aufwändige graphische Darstellung von Daten nach Möglichkeiten auf das Host (sprich PC-) System verlagern, und nicht auf das RT-System. Deshalb aus meiner Sicht schon ein WiderspruchWink

Gruß, Jens
Hi Jens,

auch noch so spät im LVF aktiv.Wink

Hm, also ich habe die Berechnungen komplett von der Grafischen Ausgabe getrennt.
D.h. ich berechne Dinge in SubVIs und liefere dann u.a. boolsche Werte zurück, die dafür da sind, die Visualisierung zu steuern. Diese Werte werden dann von meinen sog. GUI-SubVIs ausgewertet und je nach boolschem Wert wird etwas eingefärbt.
Also das ich recht ordentlich getrennt alles, würde ich sagen.
Theoretisch könnte ich schon eine Host-Anwendung schreiben, in die ich diese GUI-SubVIs ausgliedere.

Aber die ganzen Messdaten müssen auch übertragen werden für die Kurve. Die Werte muss man auch nicht ständig sehen. Nur wenn irgendwas nicht passt, dass man dann per Browser auf das RT-System zugreifen und die letzten Messergebnisse visualisiert erhält.
Also da steht niemand die ganze Zeit davor und schaut die Werte an, wobei das theoretisch auch möglich sein solle.

Die erfassten Messwerte puffere ich alle in FIFOs und nehme von dort die Auswertung vor. D.h. wenn die grafische Anzeige mal etwas länger brauchen sollte, müssten dennoch alle Werte zuverlässig verarbeitet werden können.
Wobei ich nach einigen Optimierungen heute recht zügig bei der Visualisierung bin.

Heute konnte ich mich das erste Mal selbst davon überzeugen, das Property Nodes richtig langsam sind. Davor habe ich das nur über Bücher, Schulungen etc. mitbekommen.Wink
Aber klar, Property-Nodes haben bei Berechnungen auf einem RT-System meiner Meinung nach auch nichts verloren. Nur bei der Visualisierung kommt man nicht durm rum.
Ich hatte einiges aus einer Windows-Anwedung übernommen und das damals mit Property-Nodes gelöst. Heute wunderte ich mich, wieso das RT-System so lange braucht (Sekunden bis Minuten, je nach Anzahl der Durchläufe). Als ich das änderte, dauerte es wenige Millisekunden.
Referenz-URLs