LabVIEWForum.de - Zeit des Schleifendurchlaufes messen

LabVIEWForum.de

Normale Version: Zeit des Schleifendurchlaufes messen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo zusammen,

ich möchte für mein Programm einen Fortschrittsbalken erstellen. Dazu benötige ich die Dauer, bis diese Schleife einmal durchlaufen ist. Idealerweise müsste diese Zeit immer dieselbe sein, die Schleife müsste also getimet werden?!
Habe schon ettliche Foreneinträge dazu durchstöbert aber für meinen Anwendungsfall nicht das Richtige gefunden.

Zum Programm: Es wird einmal die Case-Struktur aktiviert. Dabei wird der der Kanal der Spannungsquelle auf Output gesetzt. Ich benötige die Zeit vom Drücken des OK-Buttons bis zum Aktivieren des Kanals.

Vielen Dank :-)

Tatiana
man kann einfach die Startzeit von der Stopzeit subtrahieren und hat die Differenz in Sekunden. Du musst dir nur eine korrekte Datenabhängigkeit schaffen.

Und gewöhne dich bitte mal daran, deine Controls ordentlich zu beschriften und deren Beschriftung einzublenden. Du sprichst von einem OK-Button, den es bei dir aber gemäß Beschriftung gar nicht gibt.


Gruß, Marko
Hallo Tatiana,

da musst du in den DATAFLOW noch zwei Zeitfunktionen (TickCount) einfügen, einmal vor dem "error in" und einmal nach der "Output"-Funktion und dann die Differenz beider Angaben bilden.

Damit hast du aber nur die Laufzeit deines VIs, nicht aber die Zeit, die dein Gerät dann noch zum Verarbeiten der Befehle und dem tatsächlichen Schalten des Outputs benötigt…
So wie ich das verstanden habe, wird es nicht möglich und sinnvoll sein, einen Fortschrittsbalken zu erstellen. Um diesen zu skalieren, müßtest Du das Ende Zeit im Voraus wissen. Das ist doch hier nicht der Fall. Du kannst also nur die Zeit numerisch anzeigen - etwa so wie das Marko im Beispiel gezeigt hat.
(Typische Anwendung eines Fortschrittsbalkens: Schleife mit N Iterationen. Der Balken wird auf N skaliert. Der Balken zeigt die Iterationen an. Wenn der Balken 100% erreicht hat, ist die Zeit um.)
Zitat:So wie ich das verstanden habe, wird es nicht möglich und sinnvoll sein, einen Fortschrittsbalken zu erstellen. Um diesen zu skalieren, müßtest Du das Ende Zeit im Voraus wissen. Das ist doch hier nicht der Fall.

Wenn ich die Schleife timen würde, also eine Zeit vorgeben würde in der sie abgearbeitet wird, würde es doch funktionieren?
Hallo Tatiana,

was hat die Schleife damit zu tun, wie schnell der Inhalt deiner Case-Struktur abgearbeitet wird? Gar nichts…
Ist es möglich, also gibt es eine Funktion, mit der ich in irgendeiner Weise eine Meldung erhalte, wann einzelne Abschnitte einer Sequenz abgearbeitet wurden?

Ich habe mir gedacht, darüber einen Fortschrittsbalken zu generieren.
Hallo,

Zitat:Ist es möglich, also gibt es eine Funktion, mit der ich in irgendeiner Weise eine Meldung erhalte, wann einzelne Abschnitte einer Sequenz abgearbeitet wurden?

Um zu erkennen wann ein bestimmter Teil des Codes abgearbeitet ist braucht man nur folgendes: THINK DATAFLOW (was uns immer wieder in diesem Forum ans Herz gelegt wird).
Wenn der erste Abschnitt der Sequenz abgearbeitet ist, geht es weiter im zweiten... Ich weiß jetzt nicht was für eine Funktion du dafür suchst...
Alternativ würde sich zum Beispiel der Error-Draht anbieten um zu erkennen wann welcher Codeabschnitt abgearbeitet ist.

Ob sich deine Sequenzstruktur für einen Fortschrittsbalken anbietet sei mal dahingestellt, da es erstens nur 3 Abschnitte gibt und zweitens 99% der Zeit eines Schleifendurchlaufs vermutlich im mittleren Teil der Sequenzstruktur verbracht wird.


Gruß
Stefan
Zitat:Ob sich deine Sequenzstruktur für einen Fortschrittsbalken anbietet sei mal dahingestellt, da es erstens nur 3 Abschnitte gibt und zweitens 99% der Zeit eines Schleifendurchlaufs vermutlich im mittleren Teil der Sequenzstruktur verbracht wird.

Das habe ich gerade herausgefunden, als ich mit timed Sequenze herumexperimentiert habe.
Ich muss jedoch irgendwie einen Fortschrittsbalken generieren. Gibt es da nicht irgendeinen Weg?
Hallo Tatiana,

ein Fortschrittsbalken ist dann sinnvoll, wenn man mehrere kleine Arbeitsschritte absolviert, die mehr oder weniger gleichmäßig lang dauern.
Wenn das gegeben ist, würde sich z.B. eine Statemachine anbieten, um einerseits diese Schritte in der richtigen Reihenfolge abzuarbeiten und gleichzeitig den Fortschrittsbalken zu aktualisieren…
Seiten: 1 2
Referenz-URLs