LabVIEWForum.de
Zeitzähler starten und stoppen mit Schalter - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Zeitzähler starten und stoppen mit Schalter (/Thread-Zeitzaehler-starten-und-stoppen-mit-Schalter)



Zeitzähler starten und stoppen mit Schalter - musclecar - 08.07.2014 13:54

Hallo,
ich schreibe aktuell meine Diplomarbeit und habe zum ersten mal mit Labview zu tun. Ich habe schon in "Erste Schritte in Labview" von NI und dem Buch "Einführung in Labview" versucht eine Lösung zu finden, aber ohne Erfolg.
Das was ich bisher hingekriegt habe seht ihr in dem VI "Messaufnahme durch Schalterbetätigung". Die Aufgaben sind:

1.
Das Eingangssignal soll erst durch Betätigung des Schalters "Boolesch" in eine Tabelle geschrieben werden. Das habe ich mit einem Relais gemacht, habt Nachsicht wenn es nicht die saubere Variante ist, aber nach mehreren Stunden rumprobieren hat es nur mit Relais geklappt.

2.
Gleichzeitig soll durch die Betätigung des Schalters "Boolesch" die Zeit gestartet werden und am Pannel angezzeigt werden, wie lange die Daten schon gespeichert werden. Wenn ich den Schalter wieder umschalte, soll die Datenspeicherung in der Tabelle und die Zeit gestoppt werden.

Wie kriege ich diese Zeitzählung hin? Ich habe schon Timer und flache Sequenzen ausprobiert, angelehnt an eine Übung aus dem Buch "Einführung in Labview", aber das klappt nicht.
Dann habe ich hier im Forum ein Stoppuhr-VI gefunden und es probiert einzufügen, aber dann hatte ich das Problem, dann nach Betätigung des Schalters die Uhr zwar loslief, aber die Datenspeicherung nicht mehr startete.

Danke im voraus
gruß musclecar


RE: Zeitzähler starten und stoppen mit Schalter - GerdW - 08.07.2014 14:14

Hallo musclecar,

zu 2.:
[attachment=50209]

zu 1.:
Wenn man etwas in Abhängigkeit einer Bedingung (=Schalter) ausführen will, dann sollte man kein "Relais", sondern eine Case-Struktur verwenden.
In Pseudocode sieht das so aus:
Code:
IF Bedingung THEN
   tue etwas!
ENDIF



RE: Zeitzähler starten und stoppen mit Schalter - musclecar - 08.07.2014 16:47

hallo GerdW,
danke für die Antwort. Damit zählt er die Zeit sobald der Schalter auf "True" ist. Ist es jetzt noch möglich die Zeit zu speichern und nicht wieder auf 0 zu stellen, wenn man den Schalter wieder auf "False" stellt?
Ich habe zwar rumprobiert aber bisher nicht hingekriegt.

gruß musclecar


RE: Zeitzähler starten und stoppen mit Schalter - GerdW - 08.07.2014 20:07

Hallo Musclecar,

Zitat:Ist es jetzt noch möglich die Zeit zu speichern und nicht wieder auf 0 zu stellen, wenn man den Schalter wieder auf "False" stellt?
Ja.

PseudoCode:
Zitat:IF Button[n]==FALSE AND Button[n-1]==TRUE THEN
store last dt in shift register
ENDIF
Da du dich ja jetzt mit Schieberegistern beschäftigst, sollte das eine leichte Übung sein. Falls die Lernkurve immer noch zu steil ist, kannst du nach der Funktion PtByPt-BooleanCrossing suchen. Was du hier brauchst, ist nämlich die Erkennung einer fallenden Flanke…


RE: Zeitzähler starten und stoppen mit Schalter - musclecar - 12.07.2014 15:14

Hallo,
konnte mich erst gestern wieder dem Thema widmen.

Heißt die Funktion PtByPt-BooleanCrossing im deutschen Labview genauso? Ich kann sie nähmlich nicht finden, was aber auch daran liegen kann, dass ich nur die Testversion von Labview habe. Die vollwertige Lizenz für mich, von der Universität genehmigt, lässt auf sich warten.

Könntest du mir noch ein paar weitere Tipps geben? Ich stehe immer noch auf dem Schlauch.

Ich habe noch zwei Fragen:
-Diese beiden Timer-VI liegen beim Start von dem Programm schon bei relativ hohen Werten. Ist das die Zeit die mein Rechner schon hochgefahren ist, oder wo kommen sie her?
-Das Schieberegister am Ausgang gibt ja seinen Wert nach einem Schleifendurchlauf an das Schieberegister am linken Rand zurück. Wird der Wert vom linken Schieberegister aber nicht von dem Timer am linken Rand überschrieben, oder gibt dieser Timer nur den Anfangswert vom linken Schieberegister vor und ist danach nicht mehr von Bedeutung?

gruß musclecar


RE: Zeitzähler starten und stoppen mit Schalter - musclecar - 12.07.2014 17:28

Hab es jetzt doch geschafft, aber mit einer Case-Struktur.
Wenn das Ergebnis nach der Division durch 1000 (bezogen auf den Post von GerdW am 08.07.2014) größer Null ist und somit die Messzeit in Sekunden ergibt, wird im True-Case dieser Wert an eine Nummerische Anzeige gegeben. Wenn aber nach der Division eine Null rauskommt, wird im False-Case das Ergebnis von der eben erwähnten Nummerischen Anzeige an sich selber gegeben und somit mit dem letzten Zeitwert, der noch größer 0 war, überschrieben. Ist vielleicht nicht die saubere Lösung, aber wenigstens verstehe ich wie es funktioniert^^.

Danke für die Hilfe
gruß musclecar