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!
04.09.2008, 19:16 (Dieser Beitrag wurde zuletzt bearbeitet: 04.09.2008 19:21 von Lucki.)
' schrieb:jap, das befürchte ich jetzt auch. Geht es nicht vielleicht über das "Elapsed Time" ?
Habe jetzt nicht alles was vorher war gelesen, aber das Stichwort elapsed Time passt gut hierhin. Vielleicht möchtst Du, daß es so funktioniert:
(Die beiden Shift-Register dienen zur Erkennen der positiven Flanken von Schalter und Elapsed Time)
' schrieb:Habe jetzt nicht alles was vorher war gelesen, aber das Stichwort elapsed Time passt gut hierhin. Vielleicht möchtst Du, daß es so funktioniert:
[attachment=41771:Warten.png]
(Die beiden Shift-Register dienen zur Erkennen der positiven Flanken von Schalter und Elapsed Time)
[attachment=41772:Warten.vi]
ähm ne, da ist ja wieder das Problem das der Rest der schleife verzögert wird.
Ich will "einfach" nur ein Signal erst dann als true ausgeben wenn es schon eine gewisse Zeit true war, und das in einem größeren Programm ohne die parallel laufenden Sachen zu stören.
' schrieb:Ich will "einfach" nur ein Signal erst dann als true ausgeben wenn es schon eine gewisse Zeit true war, und das in einem größeren Programm ohne die parallel laufenden Sachen zu stören.
Da nimmt man am besten 2 unabhängige Schleifen: 1 Schleife für die Verzögerung, und davon unabhängig die Haupschleife
Benutzung des VIs Elapsed Time lohnt sich auch hier, denn nur so hat man die Möglichkiet, das Einschalten, noch bevor die Verzögerung einsetzt, wieder abzubrechen, und auch das ganze Progamm in jedem Stadium sofort zu beenden
' schrieb:Da nimmt man am besten 2 unabhängige Schleifen: 1 Schleife für die Verzögerung, und davon unabhängig die Haupschleife
[attachment=41776:Warten3.png]
Benutzung des VIs Elapsed Time lohnt sich auch hier, denn nur so hat man die Möglichkiet, das Einschalten, noch bevor die Verzögerung einsetzt, wieder abzubrechen, und auch das ganze Progamm in jedem Stadium sofort zu beenden
[attachment=41777:Warten3.vi]
Was genau passiert den da vor dem Vergleicht? Mit der Rückführung???
Ich hatte gerade eine Eingebung. Man kann doch einfach den Schalter mit einem "nicht" versehen und auf "zurücksetzen" legen. So läuft die Zeit erst los wenn der Schalter gedrückt ist. Und mit dem ersten Test scheint das auch schon die Lösung des Problems zu sein.
Ich glaub manchmal denk man einfach zu kompliziert. Oder seht ihr in dieser Lösung ein Problem das auftreten könnte?
' schrieb:Was genau passiert den da vor dem Vergleicht? Mit der Rückführung???
Ich hatte gerade eine Eingebung. Man kann doch einfach den Schalter mit einem "nicht" versehen und auf "zurücksetzen" legen. So läuft die Zeit erst los wenn der Schalter gedrückt ist. Und mit dem ersten Test scheint das auch schon die Lösung des Problems zu sein.
Ich glaub manchmal denk man einfach zu kompliziert. Oder seht ihr in dieser Lösung ein Problem das auftreten könnte?
Falls Du mich meinst, dann geht mir jetzt ehrlich gesagt die Geduld aus, denn Du scheinst hier völlig übersehen zu haben, daß ich außer dem Bild auch das VI gepostet hatte, daß Du damit alles selbst hättest ausprobieren könnten und nicht auf weiteres herumraten und -fragen angewiesen wärest.
Die Zeit wird genau so rückgesetzt, wie es gefordert ist, nämlich dann, wenn der Schalter, der das verzögerte Einschalten bewirken soll, auf On gesetzt wird. Wenn Du das VI mal aufgerufen hättest (das zu seiner Erstellunge immerhin seine Zeit gekostet hat, um es Dir hier mundgercht zu Füßen zu legen), wäre das überhaupt nicht zu übersehen gewesen.
Rückführung: Sie dient der Erkennung der Einschaltflanke des Schalters. Diese Einschaltflanke setzt das elapsed-time-VI zuück.
Ich habe mir das VI angeguckt, und ich bin dir und den anderen hier mehr als Dankbar führ ihre Hilfe.
Ich lerne och das Programmieren mit LabVIEW, und deswegen habe ich halt auch schon mal die eine oder andere Rückfrage um wirklich zu verstehen was in dem VI passiert. Denn meiner Meinung nach bringt es nicht viel einfach Fragen zu stellen, auf die Lösung zu warten und das dann einfach in sein Programm zu kopieren.
Es tut mir Leid wenn ich dich verärgert habe, das war nicht meine Absicht.
Ich habe halt einfach nicht verstanden was in einem Vergleicher passieren soll, der Augenscheinlich an beiden EIngängen das gleiche Signal hat.
Anzeige
07.09.2008, 10:13 (Dieser Beitrag wurde zuletzt bearbeitet: 07.09.2008 10:16 von Lucki.)
' schrieb:Ich habe halt einfach nicht verstanden was in einem Vergleicher passieren soll, der Augenscheinlich an beiden Eingängen das gleiche Signal hat.
Es ist zwar das gleiche Signal, aber es ist der Signalzustand zu verschiedenen Zeiten: Einmal ist es der momentane Zustand, und einmal ist es der Zustand im Schleifendurchlauf zuvor. Die Zustände sind fast immer gleich, also im eingeschlalteten Zustand beide 1 und im ausgeschalteten Zustand beide 0. Nur im Moment des Bedienens passiert es ein einziges Mal, daß die Zustände ungleich sind: 01 bei Einschalten oder 10 beim Ausschalten. Man kann nun mit boolscher Logik die Einschaltflanke 01 herausfilteren. Ich bevorzuge allerdings hier die Vergleichoperatoren "kleiner als" usw. Das ist anschaulicher und selbst-dokumentierend, man muß sich nicht erst überlegen, welche Wahrheitstabelle in welchem boolschen Operator steckt. Die Vergleichsoperatoren sind eigenlich keine boolschen Funktionen, aber dank Polymorphie funktioniert es doch, und es gilt: "low" < high" (Die boolschen Zustände sind Aufzähltypen mit nur den beiden Elementen low und high).