LabVIEWForum.de - kontinuierliche Laufzeitmessung wie umsetzen?

LabVIEWForum.de

Normale Version: kontinuierliche Laufzeitmessung wie umsetzen?
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo,
in meinem LV Programm werden kontinuierlich in einer Whileschleife Temperaturwerte und boolsche Daten erfasst.
Ich würde jetzt gerne eine Zeiterfassung einbauen, welche mir immer die aktuelle Laufzeit einer Prozessphase anzeigt.
Dazu wollte ich die Stoppuhr hier aus dem Forum verwenden.

Wie kann ich die Stoppuhr in mein Programm einbauen, das eine kontinuierliche Laufzeiterfassung funktioniert?

Wenn ich das SubVI innerhalb der Whileschleife plaziere stoppen ja die anderen aufzeichnungen, bis das Stoppuhr VI einmal durchgelaufen ist.
Wenn das SubVI außerhalb der Schleife palziere wird es ja erst nach beendigung der Schleife ausgeführt....
Bei Deinem letzen Thema hast Du Dich nach einer Antwort von NWOmason grußlos davongeschlichen. Wirst Du das jetzt wieder so machen?
Hallo cbrmarcel,

da möchte ich Lucki gern Recht geben - es ist eine Unsitte, die man hier oft antrifft im Forum, dass um Hilfe gebeten wird und auf diese dann in keinster Weise reagiert wird.

zu deinem Problem aber:
Prozesse laufen in nebeneinenderliegenden Schleifen, die keine Datenabhängigkeit aufweisen, auch parallel ab. Synchronisieren lässt sich das ganze über Rendezvous-Funktionen, so dass alle Teilnehmer aufeinander warten.


Gruß, Marko
Ja da habt ihr beiden schon echt recht das ist nicht wirklich nett, dafür möchte ich mich entschuldigen.

@Marko:
dann werde ich jetzt mal versuchen die Boolvariablen für die Stoppuhr in einer separaten Schleife aus zu lesen.

Ich melde mich dann wieder sobald ich weiter gekommen bin oder wenn´s noch Probleme gibt.

Bis dahin.
Ich habe die Zeiterfassung ausgegliedert und in eine separate Schleife gepackt, allerdings funktioniert es so nicht weil das stopwatch VI erst einen Wert ausgibt wenn Stop betätigt wird.
Meine Variablenübergabe funktioniert so iwie nicht.
Ich habe jetzt als nächstes versucht meine Boolvariablen welche ich mit dem Datasocket lese, direkt in die Case Struktur zu Implementieren. jetzt weiß ich nicht genau was ich alles anpassen muss...

Ich kann ja nicht nur in den ersten Case meine zwei benötigten Datasockets packen ohne diese irgendwo anzuschließen oder?
Allerdings sind der "OK" und der "Stop" Button ja auch nirgends angeschlossen?

Die Funktionen für die Beschriftung des Startknopes habe ich einfach raus gelöscht.

Hier nochmal das Stopwatch VI
Hallo,

Zitat:Ich kann ja nicht nur in den ersten Case meine zwei benötigten Datasockets packen ohne diese irgendwo anzuschließen oder?
Allerdings sind der "OK" und der "Stop" Button ja auch nirgends angeschlossen?

Die Funktionen für die Beschriftung des Startknopes habe ich einfach raus gelöscht.


Also aus diesen Assagen werde ich nicht so recht schlau - ich wage auch zu bezweifeln, dass da irgendjemand weiß, was jetzt genau dein Problem ist.


PS:
speicher dein VI mal <= 2011 ab, das erhöt die Chance, dass es sich jemand ansehen kann.



Gruß, Marko
Hi,

ohne dass ich mir das VI angeschaut habe: hab es mal heruntergespeichert.
[attachment=45325]
Zitat:Ich habe die Zeiterfassung ausgegliedert und in eine separate Schleife gepackt, allerdings funktioniert es so nicht weil das stopwatch VI erst einen Wert ausgibt wenn Stop betätigt wird.
Meine Variablenübergabe funktioniert so iwie nicht.
Ich habe jetzt als nächstes versucht meine Boolvariablen welche ich mit dem Datasocket lese, direkt in die Case Struktur zu Implementieren. jetzt weiß ich nicht genau was ich alles anpassen muss...

Hi,
dass dein stopwatch-VI erst einen Wert ausgibt, wenn es fertich ist, das ist mal so bei LabView. Wenn du zur Laufzeit eines VIs aus diesem Daten lesen möchtest, dann musst du diese über geeignete Datenverbindungen übertragen (Queues, Melder, Referenzen etc.)
Dann weiß ich auch nicht, welche Bool-Variable bei dir mit welcher DS gelesen wird - ich kann im VI keine DS finden.


Was soll denn dieses stopwatch-VI genau machen?


Gruß, Marko
Warum eigentlich so kompliziert? Einfacher wäre es doch z.B. das "Elapsed Time" Express VI zu verwenden. Das setzt du zu Prozessbeginn zurück (Reset) und das gibt dir bei jedem Aufruf aus wieviel Zeit seit dem Reset vergangen ist, vorrausgesetzt der Autoreset ist deaktiviert.
Wenn ich dich richtig verstehe möchtest du ja keine typische Stoppuhr-Funktionalität sondern einfach nur wissen wie lange ein Prozess schon läuft.
Andere einfache Variante ist auch einen Zeitstempel zu Beginn des Prozesses merken und bei jeder zyklischen GUI Aktualisierung einfach die Differenz aus aktuellem Zeitstempel und dem Startzeitpunkt bilden und anzeigen.
@Trinitatis:Die zwei DS sind noch nicht in dem VI, die hätte ich jetzt in der nullten Sequenz eingebaut anstelle der dort hinterlegten Boolvariabeln.

Ich versuche mein anliegen nocheinmal genau zu erklären:

Ich habe einen Prozess welcher aus verschiedenen Phasen besteht.
Ich möchte jetzt mit Hilfe der Boolvariablen, welche ich mit dem DS aus einer SPS auslese eine Laufzeit jeder einzelnen Prozessphase haben.
So das während das Progamm läuft und mir meine Temperaturwerte etc. aufzeichnet, nebenbei die aktuell verstrichene Zeit für jede einzelne Phase angezeigt wird.

Für jede unterschiedliche Phase habe ich zwei Boolvariablen, eine zum Starten der Laufzeit und eine wieder zum Beenden, deswegen reicht mir eine Programmstruktur mit einer Start- und einer Stopvariablen, diese würde ich dann für jede einzelne Phase in mein Programm einbauen.

@Holy:
Mit dem Elapsed Time VI habe ich noch nicht gearbeitet, werde das heute mittag mal ausprobieren...
Kannst du mir noch sagen was eine GUI Aktualisierung ist?

schonmal vielen Dank für eure Bemühungen Smile
Seiten: 1 2
Referenz-URLs