FrontPanel aktualisiert Indikator nicht - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +--- Thema: FrontPanel aktualisiert Indikator nicht (/Thread-FrontPanel-aktualisiert-Indikator-nicht) Seiten: 1 2 |
FrontPanel aktualisiert Indikator nicht - th13 - 22.07.2014 09:10 Hallo zusammen, ich habe hin und wieder ein Problem, das ich mir nicht erklären kann. Es kommt ab und zu vor, das nach dem Start unserer Software (im Entwicklungsmodus) Indikatoren im FrontPanel nicht aktualisiert werden. Zur Erläuterung ein Ausschnitt aus einer StateMaschine. Das vi selber darf ich leider nicht hochladen. [attachment=50349] Probe 4 ist ganz links in der kleinen Sequence und Probe 5 rechts in der Mitte vor der Zuweisung zu Messages. Im grauen Fenster im Hintergrund sieht man die dazugehörigen Indikatoren, die große Textbox im weißen Rahmen links und den aktuellen State rechts. Das Bild wurde nach der Zuweisung an Messages aufgenommen und wie man sieht, zeigt die Probe einen Wert an, aber die Textbox im FrontPanel bleibt leer. Ebenso bei State: die Probe zeigt den aktuellen Wert "AdjustValves", aber im FrontPanel steht noch "Init". Die beiden Sequenzen sind übrigens nur testhalber eingefügt, um zu versuchen die Aktualisierung beim Verlassen dieser zu erzwingen. Wie man sieht leider ohne Erfolg. Grundsätzlich funktioniert das vi, wir haben damit schon einige Messungen durchgeführt. Das Aktualisierungsproblem trat erst selten auf und war nach einem Neustart des Rechners "weg". Mittlerweile tritt es aber fast immer auf. Das vi läuft immer noch ordentlich bis zum Ende durch, steuert die Hardware und führt die Messung durch - es wird eben nur das FrontPanel nicht aktualisiert. Hat jemand eine Idee was der Grund für dieses Verhalten sein kann? Kann in den Einstellungen des vi irgended etwas vermurkst sein? Ich hoffe ihr könnt helfen. Thomas RE: FrontPanel aktualisiert Indikator nicht - jg - 22.07.2014 09:24 Möglicherweise hat dein VI einfach zu viel zu tun. Das Setzen einer lokalen Variable oder eines Terminals führt nicht zwangsläufig zu einem Frontpanel-Update. Das erreichst du nur durch das Schreiben der Property-Node "Value". Das soll dich jetzt aber nicht dazu verleiten, die Property-Node "Value" andauernd zu verwenden!!! Vielleicht hast du auch irgendwo im Programm-Code die Property-Node "Defer Panel Update" auf TRUE gesetzt?! [attachment=50350] Laut Hilfe-Beschreibung führt das Setzen dieser Property-Node auf FALSE ebenfalls zu einem Frontpanel-Update. Vielleicht ist es einen Versuch Wert, diese Eigenschaft jede Sekunde 1x zu setzen, um aktuelle Werte zu erzwingen. Performance-Killer im Frontpanel sind: - Graphen mit vielen Datenpunkten - Elemente der Silver-Palette (vor allem als Elemente von Arrays oder Clustern) - Übereinander liegende Elemente Gruß, Jens RE: FrontPanel aktualisiert Indikator nicht - th13 - 22.07.2014 10:46 (22.07.2014 09:24 )jg schrieb: Möglicherweise hat dein VI einfach zu viel zu tun.Der Fehler tritt bereits am Anfang auf, wo einfache Initialisierungen durchgeführt werden und auf Benutzereingaben gewartet wird. (22.07.2014 09:24 )jg schrieb: Das soll dich jetzt aber nicht dazu verleiten, die Property-Node "Value" andauernd zu verwenden!!!Ich habe das mal bei Messages getan und es löst (ich räume ein: anscheinend) mein Problem. Aber ich sehe deine 3 Aufrufzeichen und will sie nicht ignorieren. Geht es darum, dass ich damit nur die Symptome und nicht das zu Grunde liegende Problem löse? (22.07.2014 09:24 )jg schrieb: Vielleicht hast du auch irgendwo im Programm-Code die Property-Node "Defer Panel Update" auf TRUE gesetzt?!Nein, ich verwende die Property nicht und ein Auslesen am Anfang des vi zeigt, das sie den Wert FALSE hat. Auch bei einer projektweiten Suche wird sie nicht gefunden. (22.07.2014 09:24 )jg schrieb: Performance-Killer im Frontpanel sind:- keine Graphen, nur Indikatoren, Dekoratoren und Labels - die Silver-Palette nutze ich auch nicht - nur sich kreuzende Wires Danke für deine Tipps. Thomas RE: FrontPanel aktualisiert Indikator nicht - GerdW - 22.07.2014 10:58 Hallo Thomas, Zitat:Ich habe das mal bei Messages getan und es löst (ich räume ein: anscheinend) mein Problem. Aber ich sehe deine 3 Aufrufzeichen und will sie nicht ignorieren. Geht es darum, dass ich damit nur die Symptome und nicht das zu Grunde liegende Problem löse?Du treibst den Teufel mit dem Beelzebub aus… Wie du bemerkt hast, erzwingen lokale Variablen kein Update des FP - PropertyNodes dagegen schon. Dies löst dein Problem des nicht aktualisierten FP. Aber: PropertyNodes erzwingen einen Threadwechsel im Programmablauf, welcher für sich genommen schon die CPU-Last erhöht. Nimmt man dann noch die erzwungenen FP-Updates hinzu, erhöht sich die CPU-Last noch einmal (drastisch)… Lessons learned: THINK DATAFLOW! Verzichte auf lokale Variablen und verdrahte direkt! (Ich sehe z.B. keinen Grund, warum man im Bild oben für "Testdata" lokale Variablen verwenden muss…) RE: FrontPanel aktualisiert Indikator nicht - th13 - 22.07.2014 12:22 Hallo Gerd, also auch mit den PropertyNodes sehe ich keine drastischen CPU-Anstiege. Während das vi läuft, pendelt die CPU-Last zwischen 12% und 16%. Das vi hat nicht wirklich etwas Ressourcen verschlingendes zu tun. Lokale Variablen habe ich in der Tat einige, ca 100. Es werden viele Werte berechnet, aber immer nur wenige Berechnungen pro State, so dass die Taktzeit von 100 ms mehr als ausreicht. Und alle berechneten Werte als Ausgänge aus der StateMachine zu leiten ist einfach zu unübersichtlich, selbst mit Clustern. Aber es kann nicht daran liegen dass das vi nicht zum Update des FrontPanel kommt, es wird ja auch in den ersten States nicht aktualisiert, wo nur simple Initialisierungen gemacht werden und auf Benutzereingaben gewartet wird. Thomas RE: FrontPanel aktualisiert Indikator nicht - GerdW - 22.07.2014 12:26 Hallo Thomas, ohne VI keine tiefergehende Beurteilung… Zitat:Und alle berechneten Werte als Ausgänge aus der StateMachine zu leiten ist einfach zu unübersichtlich, selbst mit Clustern.Ein typdefinierter Cluster in einem Schieberegister reicht aus… RE: FrontPanel aktualisiert Indikator nicht - th13 - 22.07.2014 12:47 (22.07.2014 12:26 )GerdW schrieb: ohne VI keine tiefergehende Beurteilung…Ist schon klar, aber das geht leider nicht. Und da das Problem wohl am vi liegt, hilft auch kein Beispiel. (22.07.2014 12:26 )GerdW schrieb: Ein typdefinierter Cluster in einem Schieberegister reicht aus…Evtl. probiere ich das noch aus wenn ich etwas Zeit übrig habe. Prinzipiell kann ich aber sagen das in fast allen unserer Projekten immer wieder Tests (automatische Messungen) vorkommen, die sehr viele lokale Variablen enthalten und dieses Problem ist in all den Jahren noch nicht vorgekommen. Thomas RE: FrontPanel aktualisiert Indikator nicht - Lucki - 22.07.2014 13:03 Dasselbe Problem hatte ich kürzlich bei einem Freund, der mich deswegen um Rat fragte. Die Lösung war: Sofort nach dem Beschreiben der Anzeige wurde (- im gleichen State oder einem anderen, das weiß ich jetz nicht mehr -) ein Leerstring in die Anzeige geschrieben, so dass man den "richtigen" String überhaupt nicht mehr sah. Also mach mal überall, wo die Anzeigen beschrieben werden, Testpunkte hin. Evtl. ist es auch hilfreich, den String vorher zu prüfen und die Anzeige nur dann zu beschreiben, wenn es kein Leerstring ist. Gruß Ludwig PS: Das Beschreiben der Anzeige über ein lokale Veriable ist nach meiner Erfahrlung nicht die Ursache das Problems. Alerdings sehen im Forum bei jeder lokalen Variablen sofort Einige rot und vermuten dort die Ursache von allen möglichen Übeln. Daran mußt Du dich halt gewöhnen. RE: FrontPanel aktualisiert Indikator nicht - th13 - 22.07.2014 13:18 Hallo Lucki, dieses Verhalten wäre beim Debuggen aber aufgefallen, da nach Ausführung der Zuweisung der String ja erstmal im FrontPanel hätte stehen müssen, oder? Messages wird auch nur innerhalb der States geändert und immer nur, wenn ein neuer Text erscheinen soll, also nicht permanent geschrieben. Und das erklärt auch nicht das Verhalten des State-Indikators, der den aktuellen Zustand anzeigen soll. Der hat keine weiteren lokalen Variablen oder PropertyNodes. Trotzdem danke für deine Überlegungen. Thomas RE: FrontPanel aktualisiert Indikator nicht - Lucki - 22.07.2014 13:40 Wenn Du der Anzeige "Messages" nur an dieser Stelle einen Wert zuweist, warum verwendest Du dann überhaupt eine Lokale Variable und nicht die Anzeige selbst? Im Bild hast Du einen Haltepunkt. Wenn das VI also an dieser Stelle hält, dann muss doch das was imTestpunkt steht auch in der Anzeige stehen. Ist das so? Wenn nicht: Gibt es vielleicht mehrere Objekte mit Beschriftung "Messages", und ist die Lokale Variable mit dem richtigen Objekt verknüpft? (Klingt verrückt, aber gibt es alles). Test mit rechte Maustaste/Objekt auswählen. Oder hast Du als Schriftfarbe weiß auf weißem Grund gewählt? |