INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Graph über Eigenschaftsknoten beschreiben



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!

08.12.2011, 21:49
Beitrag #1

gentos Offline
LVF-Grünschnabel
*


Beiträge: 46
Registriert seit: Dec 2011

2011
2007
DE

41462
Deutschland
Graph über Eigenschaftsknoten beschreiben
Hallo Leute,

zunächst freue ich mich endlich einen Grund gefunden zu haben, in diesem Forum einzusteigen.

Zurzeit arbeite ich an einem relativ komplexen LV-Projekt (LV 2011, DE), bei dem die Darstellung von aufgezeicheneten Daten in Echtzeit eine große Rolle spielt. Da es ziemlich bequem ist, Graphen aus "Programm 1" mit Daten Aus "Programm 2" über Referenzen und Eigenschaftsknoten (Werte) zu beschreiben, habe ich dieses Verfahren "gnadenlos" in meiner Software implementiert.

Heute habe ich festgestellt, dass die Darstellung die Echtzeitanforderungen bei weitem nicht erfüllt. Bei der Suche nach dem Grund habe ich das im Anhang eingefügte Testprogramm zusammengeklickt.

   

Aus den Ergebnissen des Programms schließe ich, dass das Beschreiben der Graphen über Eigenschaftsknoten eine relativ hohe Zeitverzögerung verursacht (im Vergleich zum direkten Beschreiben).

Sollte sich jemand finden, der mir die genaue Ursache eines solchen Verhaltens von LabVIEW erklären kann, wäre ich echt glücklich um in Zukunft nicht mehr die Hälfte eines fast fertigen Projektes ändern zu müssen.

Noch Glücklicher wäre ich natürlich, wenn jemand weiß, wie man mit Referenzen und/oder Eigenschaftsknoten arbeitet, ohne so viel Rechenzeit zu verbraten.

Beste Grüße
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
08.12.2011, 22:43
Beitrag #2

unicorn Offline
LVF-Freak
****


Beiträge: 680
Registriert seit: Jul 2009

8.6.1, 2010 - 2012
1994
EN

10xxx
Deutschland
RE: Graph über Eigenschaftsknoten beschreiben
Neuen Rechner kaufen? Wink

Mein Aldi Notebook mit i3 M350 braucht kaum 1 ms für das Schreiben mit Referenzen.

Schneller als die Referenzen sind lokal Variablen, die allerdings nicht in anderen VIs als der Graph sein können.

Um Daten von VI 1 zu VI 2 zu schicken bietet sich noch eine Queue an. Dann kannst Du den Graphen wieder direkt beschreiben.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.12.2011, 00:00
Beitrag #3

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Graph über Eigenschaftsknoten beschreiben

Akzeptierte Lösung

(08.12.2011 21:49 )gentos schrieb:  Sollte sich jemand finden, der mir die genaue Ursache eines solchen Verhaltens von LabVIEW erklären kann, wäre ich echt glücklich um in Zukunft nicht mehr die Hälfte eines fast fertigen Projektes ändern zu müssen.
Setzen von Werten über Eigenschaftsknoten, überhaupt die Verwendung von Eigenschaftsknoten, war schon immer "langsam" in LabVIEW.
Hintergrund:
1) Eigenschaftsknoten werden zwingend im User-Interface-Thread abgearbeitet.
2) Jede Veränderung per Eigenschaftsknoten erzwingt ein Frontpanel-Update!

Bei Setzen einer Variable per Terminal oder lokaler Variablen ist dagegen das FP-Update nicht sofort zwingend.

Bei Schreiben von vielen Werten in einen Graphen fällt dies besonders stark auf, da ja noch das gesamte Rendering der Plot-Linie hinzukommt.

Gruß, Jens

P.S.: Darstellung eines Graphen in "Echtzeit", das ist auch so eine Sache. Ein heute üblicher TFT-Monitor hat eine Wiederholfrequenz von 60 Hz. Das ist nicht viel.

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.12.2011, 07:57
Beitrag #4

gentos Offline
LVF-Grünschnabel
*


Beiträge: 46
Registriert seit: Dec 2011

2011
2007
DE

41462
Deutschland
RE: Graph über Eigenschaftsknoten beschreiben
Vielen Dank für Eure Antworten!

@unicorn:

nutze einen i5 für die Software, sollte also Deinem i3 in nichts nachstehen. Kannst Du eventuell deinen Code dazu veröfentlichen?

Etwas mehr zum Projekt:

Die Frontpanels mit den Graphen werden im ersten Schritt geladen und zwar soviele wie der User braucht. Das heißt die VI's
mit den Graphen sind nicht im running mode sondern nur geladen. Somit kann ich sie nicht über eine Queue beschreben, sondern ausschließlich über die Referenzen.

@jg:

Vielen Dank für die Aufklärung. Man lernt nie aus! wie ich sehe.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.12.2011, 08:48 (Dieser Beitrag wurde zuletzt bearbeitet: 09.12.2011 08:51 von Lucki.)
Beitrag #5

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: Graph über Eigenschaftsknoten beschreiben
Die Ergebnisse Deiner 3 Tests sind plausibel und mit "an Sicherheit grenzender Wahrscheinlichkeit" richtig, aber ganz sicher eben nicht, weil ein methodischer Fehler drin ist. Sie werden nämlich parallel, d.h gleichzeitig ausgeführt. Um ganz wasserdicht zu sein, solltest Du z.B. im ersten Test eine boolsche Konstante erzeugen und herausführen, durch den zweiten Test hindurchschleifen und an den dritten Test anschließen. Oder die drei Tests in eine Sequenz mit 3 Cases packen. Oder... usw.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.12.2011, 09:55
Beitrag #6

gentos Offline
LVF-Grünschnabel
*


Beiträge: 46
Registriert seit: Dec 2011

2011
2007
DE

41462
Deutschland
RE: Graph über Eigenschaftsknoten beschreiben
Hallo Lucki,

zunächst Mal danke für Dein Interesse.

Hier die serielle Ausführung des Testprogramms:

   
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.12.2011, 12:16
Beitrag #7

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: Graph über Eigenschaftsknoten beschreiben

Akzeptierte Lösung

Leider bist Du an einen chronischen Nörgeler geraten, denn mit gefällt das Test-VI immer noch nicht. Der Unterschied zwischen 2 und 3 darf einfach nicht sein, es handelt sich doch um das Gleiche. Es kann z.B sein, daß der Graphikchip mit 2 noch nicht fertig ist, während 3 schon abgearbeitet wird. D.h. bei Änderung der Test-Reihenfolge würde es ganz anders aussehen. Noch bessere wären Pausen zwischen den Tests, aber dann brauchte man mehr Uhren und mehr Cases - zu viel Mühe.
Auf alle Fälle empfielt es sich, jeden Test in eine For-Schleife zu packen und die Zeit zu mitteln. dann ist es genauer.
Habe das unten mal gemacht.
Auf Grund einschlägiger Erfahrung habe ich mir seit Langem diese Faustregel zurechtgelegt:
Lokale Variable: Unwesentlich länger als direkt
Globale Variable: 2 Mal länger als direkt
Eigenschaftsknoten Wert: 100 mal länger als direkt.
   

11.0 .vi  test.vi (Größe: 22,89 KB / Downloads: 243)

11.0 .vi  Global 1.vi (Größe: 4,38 KB / Downloads: 241)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.12.2011, 12:53
Beitrag #8

gentos Offline
LVF-Grünschnabel
*


Beiträge: 46
Registriert seit: Dec 2011

2011
2007
DE

41462
Deutschland
RE: Graph über Eigenschaftsknoten beschreiben
@ Lucki

Besten Dank für Deinen Beitrag und Dein Beispielprogramm.

Ich bin mir sicher, dass es manchen dabei helfen wird, Zeitabschätzungen für den Einsatz der einzelnen Möglichkeiten (Property/lokale Variable/globale Variable) zu machen und Zeitverluste an zeitkritischen Programmstellen zu vermeinden.
Der Zeitunterschied in meinem Beispielrogramm zwischen Schritt 2 und Schritt 3 ist nicht immer gegeben (so alle 10 Mal ist er da). Ich denke es hängt davon ab (wie Du auch sagst), ob Schritt 2 wirklich verarbeitet wurde.

Lösung für mich:

Ich bin bereits dabei mein Projekt umzustrukturieren, sodass ich die Graphen direkt beschreibe.

Thema:

Meine Fragen sind somit geklärt. Vielen Dank an alle Beteiligten
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.12.2011, 23:02
Beitrag #9

unicorn Offline
LVF-Freak
****


Beiträge: 680
Registriert seit: Jul 2009

8.6.1, 2010 - 2012
1994
EN

10xxx
Deutschland
RE: Graph über Eigenschaftsknoten beschreiben
(09.12.2011 07:57 )gentos schrieb:  .. Kannst Du eventuell deinen Code dazu veröfentlichen?
..

Ich habe das nachprogrammiert, was Du in dem Bild in Deiner Frage gezeigt hattest. In einer Schleife habe ich eine lokale Variable statt der Referenz mit Eigenschaftsknoten verwendet.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
10.12.2011, 15:49
Beitrag #10

gentos Offline
LVF-Grünschnabel
*


Beiträge: 46
Registriert seit: Dec 2011

2011
2007
DE

41462
Deutschland
RE: Graph über Eigenschaftsknoten beschreiben
(09.12.2011 23:02 )unicorn schrieb:  
(09.12.2011 07:57 )gentos schrieb:  .. Kannst Du eventuell deinen Code dazu veröfentlichen?
..

Ich habe das nachprogrammiert, was Du in dem Bild in Deiner Frage gezeigt hattest. In einer Schleife habe ich eine lokale Variable statt der Referenz mit Eigenschaftsknoten verwendet.

Wie Lucki bereits gepostet hat führt eine lokale Variable kaum zu einer Zeitverzögerung gegenüber dem direkten Beschreiben. Die Referenz benötigt dagegen so etwa das 100-fache an Zeit...

Damit steht fest, dass das Beschreiben von Graphen über Referenzen keine besonders gute Wahl ist.

In meinem Projekt nehme ich mit 51.200 kSamples/s abgetastete Signale auf und muss sie in bestimmten Blocklängen in den Graphen schreiben. Bei einer Blocklänge von 1024 Samples, muss sich der Graph alle 0,02 s (20 ms) aktualisieren. Wenn ich aber allein für das schreiben eines Blocks 80 ms benötige und das ganze in z.B 10 Graphen schreiben will (parallele Verarbeitung projektbedingt nich möglich), dann liege ich zeitlich bei 800 ms pro Block und verpasse somit 800ms / 20ms = 40 Blöcke á 1024 Werte.

zu den 60 Hz Bildwiederholfrequenz des Monitors, die du angesprochen hast:

bei 60 Hz habe ich eine zeitliche Auflösung von 1/(60Hz) = 0,016 s (= 16ms) und bin somit mit meinen 20ms immer noch in dem Bereich wo mein Monitor die Änderung auflösen kann. Das menschliche Auge kann es auch!

Zum Projekt:

habe mein Projekt nun umstrukturiert und beschreibe die Graphen direkt. Die Beschreibung samt Signalanalysen kostet jetzt keine 2ms mehr.
Die dazu parallel ablaufenden Funktionen zur Skalierung der Graphengrößen bei Fenstergrößenänderung scheint keine auswirkung auf die Berarbeitungsdauer zu haben (obwohl sie über Referenzen läuft).
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Mehrere Plots in XY-Graph über einen Eigenschaftsknoten anzeigen tsa 2 6.679 22.01.2016 14:09
Letzter Beitrag: Lucki
  Skala->Bereich->Min/Max zur Laufzeit beschreiben andrepf 3 3.824 22.10.2014 10:11
Letzter Beitrag: GerdW
  Graph 0-10V über 10s auslesen Marco86 5 4.982 22.09.2011 08:14
Letzter Beitrag: jg
  2 Achsen im xy-Graph unterschiedlich skalieren (mit Eigenschaftsknoten) 206racer 2 7.880 26.04.2011 13:02
Letzter Beitrag: 206racer
  XY-Graph Plot2 auf eine Andere Y-Achse mit Eigenschaftsknoten pyrates 1 3.894 21.04.2011 07:51
Letzter Beitrag: GerdW
  Graph an Control anschließen VS über locale Variable NicoB 13 10.372 30.05.2010 15:33
Letzter Beitrag: jg

Gehe zu: