12.03.2010, 10:28
Hallo,
ich habe ein eher allgemeines Programmierproblem:
Ich habe eine Statemachine gebaut "Anfang" "Vergleich" "Ende". In "Anfang" wird überprüft, ob zwei Werte gleich sind. Sind diese gleich wechsel ich in den Zustand "Vergleich". Wenn nicht durchlaufe ich wieder "Anfang".
In "Vergleich" soll überprüft werden, ob die Werte für eine Zeitspanne von 5 Minuten gleich bleiben, danach wechsel ich zu Ende und mein Ursprungsprogramm läuft weiter.
Nun mein Problem mit dem Vergleich: Die Bedingung ist, dass die Werte gleich bleiben. Solange soll eine Schleife laufen. Ist das Ende der Zeitspanne erreicht soll der Wert True ausgegeben werden um in den nächsten Modus zu wechseln. Sollte der Wertevergleich eine Abweichung ergeben (False) soll insgesamt ein False ausgegeben werden um in den Modus "Anfang" zu wechseln. Ich habe jetzt mit diversen While- und Case-Konstruktionen rumgebastelt, aber ich bekomme es nicht hin....
Mein Problem bei Case ist, dass Case immer nur einmal am Anfang ausgelesen wird. Ich überlege jetzt ob ich zwei Whileschleifen benutze. In der einen läuft die Zeit und wird beendet wenn die Zeit abgelaufen ist. Ich habe dies mit der Funktion "Zeit in ms" und Schieberegistern gelöst. In der Zweiten Schleife wird Verglichen. Wenn der Vergleich False ist wird False ausgegeben, ist der Vergleich True und die Zeit True wird ein True ausgegeben, ist der Vergleich True und die Zeit ist True läuft die äußere Schleife um die beiden Schleifen weiter...
Geht das so? Geht das einfacher? Irgendwelche ideen? Gibt es ein VI für solche Fälle?
Gruß thomas
ich habe ein eher allgemeines Programmierproblem:
Ich habe eine Statemachine gebaut "Anfang" "Vergleich" "Ende". In "Anfang" wird überprüft, ob zwei Werte gleich sind. Sind diese gleich wechsel ich in den Zustand "Vergleich". Wenn nicht durchlaufe ich wieder "Anfang".
In "Vergleich" soll überprüft werden, ob die Werte für eine Zeitspanne von 5 Minuten gleich bleiben, danach wechsel ich zu Ende und mein Ursprungsprogramm läuft weiter.
Nun mein Problem mit dem Vergleich: Die Bedingung ist, dass die Werte gleich bleiben. Solange soll eine Schleife laufen. Ist das Ende der Zeitspanne erreicht soll der Wert True ausgegeben werden um in den nächsten Modus zu wechseln. Sollte der Wertevergleich eine Abweichung ergeben (False) soll insgesamt ein False ausgegeben werden um in den Modus "Anfang" zu wechseln. Ich habe jetzt mit diversen While- und Case-Konstruktionen rumgebastelt, aber ich bekomme es nicht hin....
Mein Problem bei Case ist, dass Case immer nur einmal am Anfang ausgelesen wird. Ich überlege jetzt ob ich zwei Whileschleifen benutze. In der einen läuft die Zeit und wird beendet wenn die Zeit abgelaufen ist. Ich habe dies mit der Funktion "Zeit in ms" und Schieberegistern gelöst. In der Zweiten Schleife wird Verglichen. Wenn der Vergleich False ist wird False ausgegeben, ist der Vergleich True und die Zeit True wird ein True ausgegeben, ist der Vergleich True und die Zeit ist True läuft die äußere Schleife um die beiden Schleifen weiter...
Geht das so? Geht das einfacher? Irgendwelche ideen? Gibt es ein VI für solche Fälle?
Gruß thomas