LabVIEWForum.de
Diagramm-Methode "Bild lesen" - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Signaldarstellung (/Forum-Signaldarstellung)
+---- Thema: Diagramm-Methode "Bild lesen" (/Thread-Diagramm-Methode-Bild-lesen)

Seiten: 1 2


Diagramm-Methode "Bild lesen" - Matze - 27.07.2010 16:13

Hallo,

ich speichere das Bild eines Signalverlaufsdiagramms über den Methodenknoten "Bild lesen".
Meist klappt das wie gewünscht, doch ab und zu sind die Hilfslinien vor den Messkurven.

Ich dachte erst, es könnte sich um eine Race-Condition handeln, aber das kann nicht sein, da ich sämtliche Fehlercluster seriell verdrahtet habe.
Womit kann das zusammenhängen?

[attachment=28246]


Diagramm-Methode "Bild lesen" - IchSelbst - 27.07.2010 18:07

' schrieb:Meist klappt das wie gewünscht, doch ab und zu sind die Hilfslinien vor den Messkurven.
Ist dem so nur auf dem Bild oder auch im FP, also auf dem Bildschirm?


Diagramm-Methode "Bild lesen" - Matze - 28.07.2010 05:25

Sehr gute Frage, darauf habe ich nicht geachtet.
Falls das heute nochmals auftreten sollte, werde ich Bescheid geben.

Es könnte jedoch sein, dass es auf dem Frontpanel nicht so aussieht, wie oben angehängt.


Diagramm-Methode "Bild lesen" - IchSelbst - 28.07.2010 08:36

' schrieb:Es könnte jedoch sein, dass es auf dem Frontpanel nicht so aussieht, wie oben angehängt.
Dann könnte folgendes passieren. Was natürlich rein spekulativ, aber möglich ist.

Du tust ja vor Bild holen den Graphen skalieren. Das aber dauert ein Weilchen - und geschieht im Hindergrund. Hintergrund heißt, dass in dem Moment, in dem das Skalier-Property an sich beendet wird, die Skalierung selbst noch nicht beendet ist. Die dauert noch etwas länger. Skalieren könnte nun aus mehreren Schritten bestehen. Letzter Schritt wäre z.B. die Reihenfolge Graph-Raster wieder zu berichtigen.

Wenn du das Bild nun holst bevor der letzte Schritt getan ist, ist das Bild falsch - das FP aber nicht.

Lösung, falls es denn so sein sollte: 250ms warten.


Diagramm-Methode "Bild lesen" - Matze - 28.07.2010 10:34

Ich habe wirklich alles probiert, aber der Fehler tritt aktuell nicht mehr auf.

Wenn es wirklich so ist, dass die Skalierung im Hintergrund läuft, ist das natürlich schlecht. Das widerspricht meiner Meinung nach dem Datenflussprinzip, denn dafür habe ich den Fehlercluster.

Was für deine Überlegung spricht ist folgendes:
Ganz selten fehlt die y-Achse, doch meistens ist sie da.

Dann werde ich eine Wartezeit einbauen, danke. Nur wenn das mal länger als 250 ms dauern sollte, tritt das Problem wieder auf ...

Edit: Kommando zurück: Selbst bei 500 ms tritt das Problem auf. Natürlich hatte ich das Bild-Speichern-VI gerade zu und konnte nicht sehen, ob das im Frontpanel auch so aussieht.

Hier noch ein Screenshot vom Blockdiagramm (ja, es ist sehr breit):
[attachment=28285]

"Wait" enthält nur einen Warten-VI mit Fehleranschlüssen.

Mir wäre wichtig, dass das zuverlässig läuft.


Diagramm-Methode "Bild lesen" - IchSelbst - 28.07.2010 11:27

' schrieb:Wenn es wirklich so ist, dass die Skalierung im Hintergrund läuft, ist das natürlich schlecht. Das widerspricht meiner Meinung nach dem Datenflussprinzip, denn dafür habe ich den Fehlercluster.
Das muss nicht unbedingt dem Datenfluss widersprechen.

Ein Graph ist hier wie ein Standalone-Objekt zu sehen, das seine Daten/Befehle per Queue bekommt. Warum die Applikation anhalten, wenn es lediglich darum geht ein FP zu refreshen? Das kann nebenbei geschehen. Natürlich muss der Graph beachten, dass Daten etc. konsistent bleiben. Ein FP-Refresh muss aber nicht zwangsläufig unter Konsistent-Erhaltung fallen.

Zitat:Ganz selten fehlt die y-Achse, doch meistens ist sie da.
Das kommt dann wie folgt: Neue Daten/Befehle (per Queue) an den Graph. Der ist aber gerade beim Refresh der Achsen, muss nun feststellen, dass dieser Refresh sich mit einem neuen Befehl (oder neuen Daten) beißt - und muss den Refresh zwangsweise abbrechen.

Zitat:Natürlich hatte ich das Bild-Speichern-VI gerade zu und konnte nicht sehen, ob das im Frontpanel auch so aussieht.
Schade.

Zitat:Mir wäre wichtig, dass das zuverlässig läuft.
Was natürlich schwierig wird, wenn das Graph-Objekt diverse Bugs hat.

Wenn das Problem relativ schnell reproduzierbar ist, könntest du folgendes probieren: Einfach das Skalieren (bei Nichterfolg dann weitere Funktionen) weglassen und kucken ob der Fehler noch immer vorhanden ist.


Noch was zum Probieren:
Mach mal den FarbeFeinGitter-Zugriff ganz an den Angang der Verarbeitungskette.


Diagramm-Methode "Bild lesen" - Matze - 28.07.2010 11:47

Hallo,

am Feingitter liegt es nicht, da ich das ers heute hinzugefügt habe.
Gibt es evtl. einen Eigenschafts- oder Methodenknoten wie "Frontpanel refreshed"?

Es ist nun reproduzierbar! Also schon ein Fortschritt, da so die Ursachensuche vernünftig beginnen kann.

Wenn ich das Frontpanel des Bild-Speichern-VIs geöffnet habe, dann ist das DIagramm immer korrekt. Wenn ich dieses geschlossen habe, immer falsch (= Plots hinter dem Gitter bzw. fehlende Achse).
Ich vermute, dass bei geöffnetem Frontpanel ein "Refresh" o.ä. gesendet wird und sonst nicht.

Daher habe ich das Diagramm im Frontpanel auch nie erwischt.
Selbst wenn ich alles entferne bis auf "Bild lesen" tritt der Fehler auf. Also Skalierung, Wertzuweisung etc. werden nicht durchgeführt.

Nachtrag: In der Hilfe steht dazu sogar etwas:

Zitat:Wenn ein Frontpanel nicht sichtbar ist, werden die Werte in den Frontpanel-Objekten auch nicht im Hintergrund angepasst. Beim Aufruf eines VIs, dessen Frontpanel nicht angezeigt wird, und auf das die Methode "Bild lesen" angewandt wird, um eine Abbildung von Frontpanel-Elementen zu erstellen, zeigt das Bild keine Wertänderungen an, die während der VI-Ausführung aufgetreten sind.

Wenn die Abbildung die neuesten Werte enthalten soll, öffnen Sie daher das Frontpanel. Wenn das Frontpanel nicht angezeigt werden soll, Wertänderungen jedoch auf der Abbildung sichtbar sein sollen, können Sie an irgendeinem Frontpanel-Element im Blockdiagramm des betreffenden VIs einen Eigenschaftsknoten erzeugen.
Welchen Eigenschaftsknoten soll ich denn verwenden? Eigentlich nutze ich doch viele davon.


Diagramm-Methode "Bild lesen" - GerdW - 28.07.2010 11:52

Hallo Mechatroniker,

damit hast du heute wieder etwas dazugelernt:
LabVIEW refresht Frontpanel-Elemente von nicht geöffneten Frontpaneln nur sehr ungern/zögerlich. Das ist durchaus so gewollt. Wieso Rechenzeit für etwas verschwenden, was eh nicht zu sehen ist?

Lösung:
Frontpanel öffnen, aber in den nicht sichtbaren Bereich deines Screens verschieben. Oder mal "minimized"/"hidden" probieren. Also irgendetwas, was das Frontpanel zwar öffnet, aber nicht sichtbar werden lässt...


Diagramm-Methode "Bild lesen" - Matze - 28.07.2010 11:55

Hallo Gerd,

vollkommen richtig. Versteckte Frontpanelelemente zu aktualisieren wäre verschwendete Rechenzeit. Doch bei einem direkten Zugriff wie "Bild lesen" hätte ich eine Aktualisierung erwartet.

Das mit dem nicht sichtbaren Bereich gefällt mir nicht.
Ich würde es gerne über den in der Hilfedatei angesprochenen Eigenschaftsknoten lösen. Nur ist die Frage: Wie?


Diagramm-Methode "Bild lesen" - SeBa - 28.07.2010 11:58

Versuch mal ob "Fortgeschritten->Achsen automatisch anpassen" Haken entfernen auf den FP Graph das Problem löst.

Beim Testen als Main VI hats bei mir auch geklappt, als SubVI war die Y-Achse teileweise verschoben (2 von 10)

Mit dem Haken weg, hats 30 mal richtig funktioniert.


Gruß SeBa


EDIT:

Ach ihr seid zu schnell... naja. Vielleicht Wert(SGL)?