LabVIEWForum.de - Messwerte schreiben (Zeitversetzung)

LabVIEWForum.de

Normale Version: Messwerte schreiben (Zeitversetzung)
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo Frank,

Zitat:ich habe im Sub- VI dem Anschlussblock die entsprechenden Anschlüsse zugeordnet und abgespeichert. Wenn ich dieses Sub-VI im übergeordneten VI aufrufe und die entsprechenden Bedien/Anzeigeelemente hinzufüge, lässt sich zwar das übergeordnete VI ausführen. Jedoch ändern sich die Parameter des Sub - VI nicht...
Das hört sich nach einem DATAFLOW-Problem an...
(Es ist immer hilfreich, das nicht funktionierende Programm anzuhängen - da muss man nicht raten!)

THINK DATAFLOW!
Wenn du im MainVI einen Wert änderst, wird er erst ans subVI übertragen, wenn es erneut aufgerufen wird (z.B. mit der nächsten Iteration).
Hast du dir das mit Highlight-Debugging angeschaut?
Danke für die schnelle Antwort.

Habe es mir mal mit der Highlight Funktion angeschaut, die obere Schleife an die das Sub-VI angeschlossen ist, wird nicht ausgeführt, aber daraus werde ich nicht schlau...

Das VI, das ich angehängt habe, ist leider noch nicht aufgeräumt Blush. Zum Setpoint in der obersten Schleife sollen die Werte die mir das Sub VI generiert addiert werden.

Zum Dataflow: Das mit der Werteänderung im Main VI habe ich noch nicht verstanden. Im Prinzip soll einmal ein Setpoint im Mainprogramm eingestellt werden, welcher sich dann automatisch durch das Sub Vi ändert. Wie verstehst du das mit dem nächsten Iterationsschritt?
Hallo Justice,

du solltest erst einmal das "DATAFLOW"-Konzept verinnerlichen!

Sowas hier:
[attachment=46333]
entspricht nämlich nicht dem DATAFLOW, wie du ihn im Sinn hast!

DATAFLOW bedeutet: ein Knoten/eine Struktur wird abgearbeitet, wenn alle (nötigen) Daten zur Verfügung stehen!

Im Bild oben:
Die Schleife wird abgearbeitet, wenn das (fehlende) subVI darüber fertig ist! THINK DATAFLOW!
Wenn das (fehlende) subVI nun eine eigene Schleife hat und auf einen Abbruch wartet (übrigens dank DATAFLOW auch nicht so, wie es momentan verdrahtet ist), wartet die Schleife auch...

Wie sagte ich früher einmal:
Zitat:Dieses VI ist in seiner jetzigen Form nicht hilfreich: Steuerung über Event-Struktur, nicht reentrant, keine Verbindungen im ConPane...
Nur weil du das ConPane verdrahtet hast, soll das subVI nun plötzlich für dich nutzbar sein?

Packe doch einfach ein Schieberegister in die innere Schleife und addiere hier das Inkrement zum Setpoint hinzu. THINK DATAFLOW!
So z.B.:
[attachment=46334]
Hallo Gerd,

Im Anhang habe ich mal das sub vi reingepackt.

Was würde denn noch fehlen, damit das Sub - VI nutzbar wird?
Hallo Justice,

ich habe doch oben schon ein Bild mit einer möglichen Lösung eingefügt...

Zitat:Was würde denn noch fehlen, damit das Sub - VI nutzbar wird?
Momentan fehlen diverse Drähte, um das subVI sinnvoll werden zu lassen. "Default if unwired" ist selten eine gute Option in Statemachines wie dieser!

Abgesehen davon sind es eher die Dinge, die zuviel sind, um dieses subVI zu nutzen: Event-Struktur, Schleife, Frontpanel.
Willst du für jede parallele Schleife ein subVI-FP öffnen, damit der User dann darin herumklickt, damit die Messschleife weiterläuft? Doch wohl eher nicht...

Also empfehle ich dir wie schon oben: Nimm ein einfaches Inkrement in deine Messschleife (wie oben gezeigt) und packe, wenn nötig, noch deine "Param"-Struktur dazu. Erstelle dir dann daraus ein subVI - ohne das Brimborium drumherum!

So sah das in meiner PST-Software aus, bevor diese Funktionalität mit dem OOP-Schema "aufgebohrt" wurde:
[attachment=46336]
(Der "Rampe"-Cluster wird in einem Schieberegister im MainVI gespeichert! Wenn du keine lineare Rampe, sondern Steps haben willst, musst du die Berechnung anpassen...)
Danke Gerd für deine echt ausführlichen Antworten,

das mit der Inkrementierung klappt so wie du es mir vorgeschlagen hast.

Mein Problem ist nun, dass die durch die Inkrementierung erzeugten Werte nicht mehr von dem Gerät erfasst werden an welches es gesendet werden soll. (Die ursprüngliche Form ohne Inkrementierung ist in den unteren beiden Schleifen noch vorhanden, hier werden die Sollwerte noch vom Gerät erfasst)

Hat das damit zu tun, dass das Sub VI nicht mehr in einer true/false Schleife ist?
Hallo Justice,

Wie oft denn noch: THINK DATAFLOW!

Wann wird ein neuer Wert an Gerät gesendet? Wann läuft deine Messschleife eine Iteration weiter?
Hast du dir das mal mit Highlight-Debugging angeschaut?

Was hatte ich erst im letzten Beitrag geschrieben:
Zitat:Abgesehen davon sind es eher die Dinge, die zuviel sind, um dieses subVI zu nutzen: Event-Struktur, Schleife, Frontpanel.
Inzwischen hast du Eventstruktur und Frontpanel entfernt...

Also: THINK DATAFLOW!
Hab den Datenfluss mal mit der Highlight Funktion angeschaut, mein Gerät musste in die While Schleife jetzt klappts und das Instrument lässt sich zeitlich steuern was auch mein Hauptziel war, vielen Dank für die Hilfe Smile

So ganz blick ich mit dem Dataflow Prinzip aber noch nicht durch...
Wenn man das Programm startet werden ja die Schleifen von außen nach innen abgearbeitet. Es wird dann nur die innerste Schleife im Rhythmus der eingestellten Wartezeit unendlich lange ausgeführt... (so lange bis sie durch den Schalter ausgestellt wird) oder sehe ich das falsch?
(16.09.2013 17:14 )Justice18 schrieb: [ -> ]...
So ganz blick ich mit dem Dataflow Prinzip aber noch nicht durch...
Wenn man das Programm startet werden ja die Schleifen von außen nach innen abgearbeitet. Es wird dann nur die innerste Schleife im Rhythmus der eingestellten Wartezeit unendlich lange ausgeführt... (so lange bis sie durch den Schalter ausgestellt wird) oder sehe ich das falsch?

Hallo Justice,

Eine Schleife (jede Struktur) wird erst dann abgearbeitet, wenn alle Eingangstunnel mit Daten belegt sind. Insofern hast du in deinem konkreten Beispiel recht.
Zum besseren Verständnis des Datenflussprinzips trägt aber auch eine saubere Leitungsführung bei, auf die ich dich schonmal hingewiesen habe. Bei deiner Leitungsführung würde ich das Datenflussprinzip auch nicht verstehen!


Gruß, Marko
Seiten: 1 2
Referenz-URLs