' schrieb:danke für deine hilfe! und die mühe die du dir machst.
Ach, mach ich doch gerne.
Zitat:aber um die knoten an den eingängen zu sparen muss ich dann dirket auf das eingangs vi (ohne den schalter) oder kann ich da die referenzen lassen?
Das verstehe ich jetzt nicht.
Welche Knoten (also Eigenschaftsknoten) an welchen Eingängen?
Den einen Eigenschaftsknoten, den ich gemeint habe, lässt du einfach weg. Dafür muss du natürlich den grünen Draht, der aus SubVI 9 herauskommt, direkt dort anschließen, wo jetzt der Ausgang des Propertys hingeht.
Zitat:das mit dem text-gesteuerten script klingt ja gut, sowas könnt ich brauchen. denn die programme sollten nicht zeitlich begrenzt sein, zumindest nicht in dem rahmen es sind auf jedenfall dauertests angedacht die mal übers wochenende oder so laufen sollen bzw. einige 1000 ein/aus zyklen haben sollen.
Auch mit meiner Methode kann man unendlich viele Zyklen fahren. Indem man ganz einfach einen Zyklus, der z.B. nur 30 Sekunden dauert, wiederholt.
Für sinnvoll halte ich es - ob nach meiner bisherigen Methode oder mit Script - dass man eine Schrittkette aufbaut, die genau einen Zyklus macht. Diese Schrittkette wird dann wiederholt.
Zitat:ich schreib ne datei in der ich alle ein, aus, sollwerte, wartezeiten und co vorgebe und diese datei les ich dann ein, und schreib das ganze in ein cluster array. oder?
Ja. Im Prinzip so.
Es würde folgende Möglichkeit geben: Jedes Array-Element enthält die für einen bestimmten Zeitpunkt notwendigen Daten. Ist der Zeitpunkt für dieses Array-Element gekommen, werden genau diese Daten ausgegeben.
Hinweis: Was ich hier geschrieben habe, ist ein prinzielles Vorgehen. Wie die genaue progammtechnische Ausführung aussieht, steht hier noch nirgends.
Zitat:aber wie steuer ich das ganze dann das er mir die schritte einzeln macht und dazu immer das array entlang wandert? da brauch ich ja wieder so ne art state machine die dann in jedem case ein array wert ließt? oder hab ich das falsch verstanden?
Das hast du genau richtig verstanden.
Ich gehe immer so vor. Ich überlege mir, wie der Ablauf ist: Zuerst das, dann das, dann das, dann das, usw. Genau in dieser Reihenfolge mach ich dann eine Statemachine mit genau dem Inhalt pro Case, der eben dem DAS entspricht. Jeder Case darf aber nur solchen Code enthalten, der innerhalb allerkürzester Zeit abarbeitbar ist. Ein Raster wird nicht innerhalb der Statemachine gemacht, sondern außerhalb. Dann kann man nämlich parallel zur Statemachine Sachen machen, die dann bei jedem Case gemacht werden (z.B. Daten lesen). Was tun bei einem Schritt, der 1 Sekunde warten soll? Diesen einen Case sooft durchlaufen (z.B. Schiebregister in While-Schleife) bis x mal das externe Raster die Wartezeit ergibt.
Zitat:die schleife ruckelt immer noch.
Das soll nicht sein. Es muss ohne ruckeln gehen.
Wie groß ist denn die Wiederholzeit in der While-Schleife? Wie lange deuern denn die beiden SubVIs? Die Ausführungsdauer des gesamten Codes in der While-Schleife sollte 50% der Schleifendauer (siehe Wait-VI) nicht überschreiten.
Zeitmessung kannst du so machen: Millisekundenzeitwert lesen, SubVI ausführen, Millisekundenzeitwert lesen, beide Zeiten subtrahieren und anzeigen. Diese vier Schritte mit einer Sequenzstruktur sequenzieren.