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 

Hilfe bei einfacher Stoppuhr



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!

17.07.2010, 14:50 (Dieser Beitrag wurde zuletzt bearbeitet: 17.07.2010 20:41 von jg.)
Beitrag #1

HansWerner
Unregistered


 







Hilfe bei einfacher Stoppuhr
Ich habe versucht eine einfache Stoppuhr zu entwerfen.
Das Hochladen der Zip-Datei (7z) hat leider nicht funktioniert.
Die Uhr ist entweder im Zustand "Idle" oder im Zustand "Running".
Das Umschalten zwischen beiden Zuständen soll über einen "Start-Stop-Button" erfolgen.
Das funktioniert auch.
Zusätzlich soll es möglich sein im Zustand "Idle" die Uhr über einen "Zurücksetzen" Button
neu zu initialisieren, also die Uhrzeit auf 0:0:0 zurückzusetzen.
Die Betätigung des "Zurücksetzen" Buttons im Zustand "Running" soll keine Wirkung zeigen.
Das funktioniert auch.
Wenn ich jedoch im Zustand "Running" den Button "Zurücksetzen" betätige, funktioniert
danach nicht mehr der "Start-Stop-Button", d.h. die Uhr läßt sich nicht mehr stoppen.
Das Subvi Tick realisiert nur den eigentlichen Zähler für Sekunden, Minuten, Stunden.

Wo liegt das Problem (Ja, zwischen den Augen) ?
Wie kann man das besser programmieren ?
Lv86_img


Angehängte Datei(en)
Sonstige .vi  Clock.vi (Größe: 12,6 KB / Downloads: 439)

Sonstige .ctl  Idle_Running_Enum.ctl (Größe: 3,78 KB / Downloads: 297)

Sonstige .vi  Tick__SubVI_.vi (Größe: 7,44 KB / Downloads: 367)
Diese Nachricht in einer Antwort zitieren to top
17.07.2010, 20:29
Beitrag #2

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.687
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Hilfe bei einfacher Stoppuhr
Zwei Eventstrukturen soll man nicht macht. Führt zu diversen Fehlern. Hier nun mal ein Musterfehler: Im Running-Case wird die rechte Eventstruktur nicht ausgeführt, da die im Idle-Case liegt. Klickt jetzt einer auf Reset, wird gewartet, bis dieses Event (Klick auf Reset) ausgeführt wird. Wird aber nicht, da ja nicht im aktiven Case. Auf Start/Stopp kann man zwar Klicken, es tut sich aber nichts, da erst das Event RESET ausgeführt werden muss ...

Dass dieser Effekt nur auftritt, weil "Frontpanel sperren ..." aktiviert ist, spielt nur eine untergeordnete Rolle.

Für besser halte ich, alles in einer Event-Struktur zu machen. Das kommt nämlich einer Statemachine nahe.

Lv86_img


Angehängte Datei(en)
Sonstige .vi  Clock_Neu.vi (Größe: 12,34 KB / Downloads: 841)

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.07.2010, 21:45
Beitrag #3

HansWerner
Unregistered


 







Hilfe bei einfacher Stoppuhr
IchSelbst, du bist mein Held.
Das funktioniert so wie gedacht.
Sieht schon mehr nach Zustandsmaschine aus.
Jetzt noch als weitere Übung das ganze mit einer Zustand-Übergangs-Matrix.
Und dann bauen wir das ganze weiter aus (Schreck laß nach !).
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Stoppuhr mit "Verstrichene Zeit" Barq 5 11.991 07.08.2013 07:26
Letzter Beitrag: Y-P
  Probleme bei meiner Stoppuhr LabView_Hopsing 4 5.445 18.04.2012 12:47
Letzter Beitrag: Y-P
  Stoppuhr Reset psutester 2 5.623 22.09.2011 20:48
Letzter Beitrag: Y-P
  Stoppuhr holistic 2 6.339 11.11.2010 12:50
Letzter Beitrag: holistic
  Einfacher Fehlerbehandler - dynamisch dimitri84 3 5.166 06.08.2010 09:38
Letzter Beitrag: dimitri84
  Event Struktur verlassen/Stoppuhr fabi84 6 7.098 17.04.2009 13:27
Letzter Beitrag: IchSelbst

Gehe zu: