Und weiter geht's
Eventuell wartet schon das nächste LV Projekt. Im Moment bin ich dabei eine etwas universellere "Testumgebung" für meine Messhardware zu programmieren. Dazu hätte ich mal wieder zwei Fragen.
1. Die Applikation enthält sehr viele Zahlenfelder, deren Werte würde ich gerne mit einfachen Mitteln in eine Datei speichern und laden können. Anscheinend gibt es ein VI, an das "nur" Referenzen der Elemente angeschlossen werden und das den Rest selbst erledigt, leider finde ich es nicht. Mit INI-Dateien würde ich es nur sehr ungerne machen das spechern von ca. 30 Feldern einfach sehr viel "Platz" in der Arbeitsumgebung einnehmen würde.
2. Die Zweite Frage betrifft die zeitliche Koordination von Abläufen in LV. Bis jetzt steuere ich die Meisten Aktionen in LV über eine "Event structure". Beim verändern von Bedienelementen, z.B. Klick auf einen Button, wird ein entsprechendes Event ausgelöst, das eine Aktion enthält.
Nun geht es aber oft darum zu vordefinierten, bestimmten Zeitpunkten einzelne Aktionen auszuführen. Also beispielsweise 10 Sekunden nach setzen eines Ausgangs einen weiteren Ausgang setzen, 3 Sekunden später einen Eingang prüfen, usw...
Einfache Zeitliche Abläufe habe ich bis jetzt so gelöst daß ich mir den Wert des mSec Timers "gemerkt" habe. Wenn der Timer dann einen bestimmte höhere Werte erreicht hat, habe ich eine Aktion ausgelöst. Entweder als Event (lesen und schreiben des gleichen Elements mit signalling), oder direkt mit einer IF Bedingung. Der Vorteil ist, daß der Programmablauf durch "vergleichen" den mSecCounters mit einem Sollwert den übrigen Ablauf nicht blockiert.
Für Abläufe mit mehreren Aktionen ist dieser Weg jedoch recht mühselig, da muss es doch einen einfacheren Weg geben.
Bei meinen Mikrocontroller Projekten mache ich solche Abläufe ebenfalls mit Timern, die dann einer
State Machine Sollzustände zuweist. Innerhalb der einzelnen Zustände wird der Timer zurück gesetzt, und der folgende Schritt festgelegt.
Hoffentlich war das halbwegs verständlich erklärt
P.S. Mal nebenbei, es muss doch ein VI geben um ein Event in einer Event structure auszulösen, oder gibt es keinen anderen Weg als eine Variable zu schreiben, und darauf ein Event zu legen