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 habe in meinem VI einige Diagramme und Bedien- sowie Anzeigeelemente.
Eins der Anzeigeelemente ist eine Lampe, die beim Auftreten bestimmter Störungen, die ich definiert habe, aufleuchten soll.
In der NI Dokumentation steht zur Option Synchrone Anzeige:
"Aktiviert bei TRUE die synchrone Anzeige, das heißt Sie sehen jede Aktualisierung eines Werts in einem Bedien- oder Anzeigeelement."
Was heißt Aktualsierung genau? Angenommen die Lampe ist in einer Schleife und wird vier mal hintereinander den Wert false erhalten und beim fünften mal den Wert true. Ist nur der Sprung von true auf false eine Aktualsierung oder ist der Sprung von false auf false ebenfalls eine Aktualisierung nur ebend
mit demselben Wert?
Bei der Synchronen Anzeige leuchtet das Lämpchen nämlich deutlich häufiger bei mir auf, als bei einer asynchronen Anzeigen.
Mit deutlich meine ich, dass das Lämpchen fast im Sekunden Takt aufleuchtet, während in der asynchronen vielleicht einmal in 20 Sekunden.
Die Störung wird hervorgerufen wenn meine Schleife eine bestimmte Zeit für die Berechnung einiger Operationen überschritten hat.
Kann es sein, dass die Synchrone Anzeige also den Sprung von false auf false ebenfalls als Aktualsierung ansieht und aus diesem Grund ein
neu Zeichnen der Bedienoberfläche veranlasst, was wiederum meine Schleifenausführung verzögert und damit mein Lämpchen auflackern lässt?
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
RE: Synchrone Anzeige
Lad' mal Dein Bsp. hoch. An der Anzeige habe ich noch nie irgendwas verstellt. Was willst Du damit bezwecken?
Gruß Markus
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Zitat:Was heißt Aktualsierung genau? Angenommen die Lampe ist in einer Schleife und wird vier mal hintereinander den Wert false erhalten und beim fünften mal den Wert true. Ist nur der Sprung von true auf false eine Aktualsierung oder ist der Sprung von false auf false ebenfalls eine Aktualisierung nur ebend mit demselben Wert?
Aktualisierung bedeutet: Wert in den Indicator schreiben.
Zitat:Bei der Synchronen Anzeige leuchtet das Lämpchen nämlich deutlich häufiger bei mir auf, als bei einer asynchronen Anzeigen.
Mit deutlich meine ich, dass das Lämpchen fast im Sekunden Takt aufleuchtet, während in der asynchronen vielleicht einmal in 20 Sekunden.
Dies hängt mehr davon ab, wie schnell hintereinander du in den Indicator schreibst...
Asynchrone Anzeige bedeutet: du schreibst Werte in Anzeigen und LabVIEW puffert diese Schreibvorgänge intern. Die Anzeige wird irgendwann erneuert, wenn gerade CPU-Zeit vorhanden ist oder andere Prozesse dies erzwingen.
Synchrone Anzeige heißt: Jedesmal, wenn ein Wert in eine Anzeige geschrieben wird, wird auch das Frontpanel erneuert. Dies führt bei häufigen Schreibvorgängen zu deutlich langsamer ablaufenden VIs, da viel Zeit mit dem Zeichnen des FP verbraten wird...
Kannst ja mal einen kleinen Test machen: In einer ungebremsten For-Schleife eine LED 1 Million mal an und ausschalten. Asynchron dauert das nur einen Augenblick, synchron wirst Du es vielleicht gar nlcht mehr erleben, bis das Programm beendet ist.
23.01.2013, 13:30 (Dieser Beitrag wurde zuletzt bearbeitet: 23.01.2013 13:31 von GerdW.)
(Synchrone Anzeige)
Das heißt wenn ich in einer Schleife vier mal den Wert False in das Boolsche Anzeigeelement (Lämpchen) schreibe,
wird das Frontpanel vier mal hintereinander akutalisiert und zwar sofort nachdem ein False Wert angekommen ist.
(Asynchrone Anzeige)
Der Wert False wird nicht jedes mal sofort aktualisiert, sondern erst gepuffert.
Nach irgendeiner bestimmten Zeitspanne wird das Anzeigeelemte in unregelmäßigen Abständen aber auch viermal
aktualisiert.
Erkennt Labview nicht, dass der Wert viermal False ist und damit eigentlich ein einmaliges Zeichnen ausreichnen würde,
bei der Asynchronen Anzeige?
Ich hätte es intelligenter gefunden, wenn bei der synchronen und asynchronen Anzeige das Frontpanel nur dann neu gezeichnet wird,
wenn der neue und der alte Wert des Anzeigeelementes voneinander abweichen.
Mit dem was ich grad geschrieben habe, habe ich das in etwa richtig wiedergegeben, was du mir grad gesagt hast, oder
hab ich da was missverstanden?
23.01.2013, 13:36 (Dieser Beitrag wurde zuletzt bearbeitet: 23.01.2013 13:39 von GerdW.)
bei der asynchronen Anzeige wird nur einmal aktualisiert, egal wie oft du zwischendrin Werte in die Anzeigen geschrieben hast - es wird der gerade aktuelle Zustand gezeichnet!
Zitat:Ich hätte es intelligenter gefunden, wenn bei der synchronen und asynchronen Anzeige das Frontpanel nur dann neu gezeichnet wird, wenn der neue und der alte Wert des Anzeigeelementes voneinander abweichen.
Was du "findest" ist irrelevant
- Die "synchrone Anzeige" erzwingt ein Neuzeichnen des FP, wenn ein Wert (egal welcher) geschrieben wird. Der Programmierer hat dies ja explizit eingestellt...
- Die "asynchrone Anzeige" zeichnet in unregelmäßigen Abständen das FP neu, unabhängig davon ob nur ein FP-Element sich ändert oder viele...
Beim Signalverlaufsdiagramm ist es auf alle Fälle so, das bei asynchroner Anzeige (default), wenn dann mal ein Zeitschlitz dafür bereitgestellt ist, nicht ein Wert aktualisiert wird, sondern alle Werte auf einmal die neu im Puffer sind.
Bei einer LED gehe ich davon aus, dass bei eine fälligen Aktualisierung nur der neueste Wert in die Graphik kommt. Wäre es anders, dann wäre die asynchrone Anzeige weitgehend sinnlos, da sonst bei einem kontinuierlich laufendem Programm letztlich keinerlei Zeit gespart würde, es also nicht schneller laufen könnte als asynchron.
Das hat keinerlei prinzipielle Nachteile: Denn Leute, die das so nicht mögen, können ja jederzeit auf den Modus "synchron" schalten.