Hallo wubs
(16.01.2016 16:51 )wubs schrieb: x ist eine unbestimmte Zeit für ein True bzw. False Zustand.
Eigentlich ist diese Aussage für die Programmiersprache LabVIEW ideal - weil deklarativ: Diese Aussage beschreibt genau das, was getan werden soll.
Dein Problem allerdings besteht darin, dass du die Funktionsweise und Mittel von LabVIEW noch nicht kennst, um genau diese Aussage in ein Programm umzusetzen.
Mein Problem besteht darin, dir fernschriftlich ohne ein Programm zu schreiben mitzuteilen, wie es (vielleicht) funktionieren könnte.
Nimm schon mal keine For-Schleife, die 2000 Mal durchläuft, sondern eine While-Schleife, die du mit einem Stopp-Button auf dem Frontpanel FP beenden kannst. Damit sparst du dir schon mal den brachialen Abbruch.
Wenn du dein Blockdiagramm BD betrachtest, wirst du
sehen, dass es in einer bestimmten Weise unübersichtlich ist. Die Drähte, deren Anfang die Eingänge, deren Ende die Ausgänge sind, ziehen sich über einen ganzen Bildschirm. Das ist nicht gut.
Ich würde das so machen:
* Ein Cluster enthält alle Eingänge (Temperaturen, Schalter etc) in Form von Bedienelementen (die linke Seite deines BDs).
* Ein Cluster enthält alle Ausgänge (Leds etc) sowie Steuerungsdaten (z.B. die Zeiten und letzten Zustände) in Form von Anzeigeelementen (die rechte Seite deines BDs).
* Die Steuerungsdaten kann man auch in einen extra Cluster führen.
* Beide Cluster liegen in Schieberegistern, die selbst wieder in einer While-Schleife liegen.
* Innerhalb der While-Schleife befindet sich eine Case-Struktur, die in Form einer Schrittkette durchlaufen wird.
* Im ersten Case wird das Bedienelement ausgelesen => Draht ins Schieberegister.
* Jeder einzelne weitere Case bearbeitet genau einen Ausgang - und fürs Erste selbst dann, wenn viele Operationen dann doppelt oder gar mehrfach durchgeführt werden.
* Im vorletzten Case wird der Ausgangscluster auf ein entsprechenden Anzeige-Cluster geschrieben.
* Im letzten Case wartest du 100ms (nicht eine Sekunde) und zählst gegebenenfalls die Zeiten hoch.