LabVIEWForum.de
Zeitschaltuhr - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Zeitschaltuhr (/Thread-Zeitschaltuhr)

Seiten: 1 2


Zeitschaltuhr - speedy82 - 23.11.2006 12:57

Wie kann ich eine Zeitschaltuhr in mein Porgramm einbauen, so das nach betaedigung eines Schalters die Zeit t ablaeuft. Und nach Ablauf der Zeit das Signal weitergegeben wird?


Zeitschaltuhr - Y-P - 23.11.2006 13:14

Hallo,

Du kannst eine Statemachine mit einer Event-Struktur im Leerlauf-Case bauen, wo Du den Taster abfragst. Wird er gedrückt gehst Du z.B. in den Case "Warten", wo Deine Verzögerung ist und von da dann z.B. in den Case "Signal weitergeben". Von da aus musst Du dann wieder in den Leerlauf-Case.

Gruß Markus

' schrieb:Wie kann ich eine Zeitschaltuhr in mein Porgramm einbauen, so das nach betaedigung eines Schalters die Zeit t ablaeuft. Und nach Ablauf der Zeit das Signal weitergegeben wird?



Zeitschaltuhr - speedy82 - 23.11.2006 14:42

Kann mir einer das ganze mal VI posten!


Zeitschaltuhr - Y-P - 23.11.2006 15:18

Hallo,

schau Dir mal die State-Machine an:
http://www.LabVIEWforum.de/index.p...ost&p=16642

Die kannst Du so umwandeln, wie Du sie brauchst. Statt den beiden Rechnung-Cases kannst Du "Warten" und "Signal senden" einfügen. Aus dem "Signal senden" kannst Du dann über die Enumerationskonstante auf "Warten" und von dort auf "Leerlauf", nicht wie hier im Beispiel aus einer Rechnung direkt in den Leerlauf.

Leider habe ich nur LabVIEW 8.20 und kann maximal noch auf LabVIEW 8.0 abspeichern.

Gruß Markus

' schrieb:Kann mir einer das ganze mal VI posten!



Zeitschaltuhr - Kvasir - 23.11.2006 15:25

Hab dir ein kleines Beispiel geschrieben.

Ist ein wenig anders, als das, was Markus vorgeschlagen hat.
Hier läuft eine vom Hauptprogramm unabhängige Schleife, die auf deine Eingabe wartet und sendet das Signal dann per Melder an die Hauptschleife.

Ich habe jetzt ein Timeout von 1s für das Warten auf die Meldung eingebaut. Stellst du das auf 1ms, dann wird dein Hauptprogramm durch den Melder nicht aufgehalten.

Kann nur auf 7.1 speichern, hoffe das geht bei dir?

Gruß


Zeitschaltuhr - Y-P - 23.11.2006 17:16

.... oder Du machst es so wie in den Anhängen (LabVIEW 8.2).

Gruß Markus

' schrieb:Hallo,

Du kannst eine Statemachine mit einer Event-Struktur im Leerlauf-Case bauen, wo Du den Taster abfragst. Wird er gedrückt gehst Du z.B. in den Case "Warten", wo Deine Verzögerung ist und von da dann z.B. in den Case "Signal weitergeben". Von da aus musst Du dann wieder in den Leerlauf-Case.

Gruß Markus



Zeitschaltuhr - dresdner - 05.02.2007 12:00

' schrieb:Hab dir ein kleines Beispiel geschrieben.

Ist ein wenig anders, als das, was Markus vorgeschlagen hat.
Hier läuft eine vom Hauptprogramm unabhängige Schleife, die auf deine Eingabe wartet und sendet das Signal dann per Melder an die Hauptschleife.

Ich habe jetzt ein Timeout von 1s für das Warten auf die Meldung eingebaut. Stellst du das auf 1ms, dann wird dein Hauptprogramm durch den Melder nicht aufgehalten.

Kann nur auf 7.1 speichern, hoffe das geht bei dir?

Gruß



Zeitschaltuhr - dresdner - 05.02.2007 12:08

' schrieb:.... oder Du machst es so wie in den Anhängen (LabVIEW 8.2).

Gruß Markus


Hi Markus

kann mir jemand dieses Beispiel für Version 7 geben?
Ich schnall es einfach nicht! Habe alle anderen Beispiele probiert und bekomme es einfach nicht hin?
Bin Anfänger brauche also was einfaches und Idiotensicheres!
Ich will ein Schalter einschalten und ein paar Sekunden später will ich dieses boolesches Signal wieder haben - fertig.
Auch und das soll so sein, das ich das einfach in mein Programm reinsetzten kann ohne auf Schleifen usw. achten zu müssen!
Am besten als VI mit Boolesch - Eingang und Boolesch - Ausgang.

Ich drehe sonst durch!

Jan


Zeitschaltuhr - Kvasir - 05.02.2007 12:27

Ganz so einfach ist das Problem ja leider nicht.

Einfach ist es nur dann, wenn während der Wartezeit dein Programm nichts tun soll. Du also auf die Taste drückst, dann steht alles still und ein paar Sekunden später kommt dein Boolean.
Wie bei einem Selbstauslöser bei einem Fotoapparat also.

Willst du aber, dass während der Wartezeit dein Programm weiterläuft, wird das ganze komplizierter. Dann brauchst du nämlich auf jeden Fall etwas, was parallel läuft. Einmal der Timer, der die Zeit zählt und einmal dein Programm.
Du musst dann also entweder eine parallele Schleife einführen, oder zumindest die Timerstruktur in deine Schleifenstruktur des Programmes einfügen.

Für den einfachen Fall hab ich dir mal ein SubVi angehängt. Startet mit einem Boolean und gibt dir verzögert das Signal aus. Aber ich fürchte, das wird dir nicht genügen (ist ja wirklich trivial eigentlich, da wärst du sicher selbst drauf gekommen).


Zeitschaltuhr - dresdner - 05.02.2007 12:41

' schrieb:Ganz so einfach ist das Problem ja leider nicht.

Einfach ist es nur dann, wenn während der Wartezeit dein Programm nichts tun soll. Du also auf die Taste drückst, dann steht alles still und ein paar Sekunden später kommt dein Boolean.
Wie bei einem Selbstauslöser bei einem Fotoapparat also.

Willst du aber, dass während der Wartezeit dein Programm weiterläuft, wird das ganze komplizierter. Dann brauchst du nähmlich auf jeden Fall etwas, was parallel läuft. Einmal der Timer, der die Zeit zählt und einmal dein Programm.
Du musst dann also entweder eine parallele Schleife einführen, oder zumindest die Timerstruktur in deine Schleifenstruktur des Programmes einfügen.

Für den einfachen Fall hab ich dir mal ein SubVi angehängt. Startet mit einem Boolean und gibt dir verzögert das Signal aus. Aber ich fürchte, das wird dir nicht genügen (ist ja wirklich trivial eigentlich, da wärst du sicher selbst drauf gekommen).


Hi
DANKE DANKE
das ist so trivial, da bin ich einfach nicht drauf gekommen! Nee spiel erst seit 2 Tagen mit LabVIEW rum und bin also der totale Anfänger!
Danke
Jan