INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Messwerte schreiben (Zeitversetzung)



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

16.09.2013, 10:10 (Dieser Beitrag wurde zuletzt bearbeitet: 16.09.2013 10:10 von GerdW.)
Beitrag #11

GerdW Offline
______________
LVF-Team

Beiträge: 16.223
Registriert seit: May 2009

11SP1, 17SP1 (ab und zu 19)
1995
DE_EN

10×××
Deutschland
RE: Messwerte schreiben (Zeitversetzung)
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?

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
16.09.2013, 10:52
Beitrag #12

Justice18 Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: Sep 2013

2012
2013
DE



RE: Messwerte schreiben (Zeitversetzung)
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?


Angehängte Datei(en)
8.0 .vi  Vi + Sub VI.vi (Größe: 282,04 KB / Downloads: 49)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.09.2013, 11:44 (Dieser Beitrag wurde zuletzt bearbeitet: 16.09.2013 11:52 von GerdW.)
Beitrag #13

GerdW Offline
______________
LVF-Team

Beiträge: 16.223
Registriert seit: May 2009

11SP1, 17SP1 (ab und zu 19)
1995
DE_EN

10×××
Deutschland
RE: Messwerte schreiben (Zeitversetzung)
Hallo Justice,

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

Sowas hier:
   
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.:
   

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.09.2013, 12:36
Beitrag #14

Justice18 Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: Sep 2013

2012
2013
DE



RE: Messwerte schreiben (Zeitversetzung)
Hallo Gerd,

Im Anhang habe ich mal das sub vi reingepackt.

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


Angehängte Datei(en)
8.0 .vi  Steps.vi (Größe: 19,23 KB / Downloads: 45)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.09.2013, 12:49 (Dieser Beitrag wurde zuletzt bearbeitet: 16.09.2013 12:52 von GerdW.)
Beitrag #15

GerdW Offline
______________
LVF-Team

Beiträge: 16.223
Registriert seit: May 2009

11SP1, 17SP1 (ab und zu 19)
1995
DE_EN

10×××
Deutschland
RE: Messwerte schreiben (Zeitversetzung)
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:
   
(Der "Rampe"-Cluster wird in einem Schieberegister im MainVI gespeichert! Wenn du keine lineare Rampe, sondern Steps haben willst, musst du die Berechnung anpassen...)

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.09.2013, 15:31
Beitrag #16

Justice18 Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: Sep 2013

2012
2013
DE



RE: Messwerte schreiben (Zeitversetzung)
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?


Angehängte Datei(en)
8.0 .vi  Steuerung mit Inkrementierung.vi (Größe: 279,7 KB / Downloads: 48)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
16.09.2013, 15:36 (Dieser Beitrag wurde zuletzt bearbeitet: 16.09.2013 15:37 von GerdW.)
Beitrag #17

GerdW Offline
______________
LVF-Team

Beiträge: 16.223
Registriert seit: May 2009

11SP1, 17SP1 (ab und zu 19)
1995
DE_EN

10×××
Deutschland
RE: Messwerte schreiben (Zeitversetzung)
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!

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.09.2013, 17:14
Beitrag #18

Justice18 Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: Sep 2013

2012
2013
DE



RE: Messwerte schreiben (Zeitversetzung)
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?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.09.2013, 19:18
Beitrag #19

Trinitatis Offline
LVF-Guru
*****


Beiträge: 1.683
Registriert seit: May 2008

7.1 / 8.0 /2014-1, 18
2002
DE

18055
Deutschland
RE: Messwerte schreiben (Zeitversetzung)
(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
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Nur bestimmte Messwerte in Datei schreiben Olli169 6 1.640 16.08.2017 11:22
Letzter Beitrag: Olli169
  Messwerte in Datei schreiben antwort 2 2.271 12.12.2016 14:31
Letzter Beitrag: antwort
  Messwerte in Tabelle schreiben Margi 10 5.410 09.09.2015 09:18
Letzter Beitrag: GerdW
  Messwerte mit Zeitstempel in Tabelle schreiben versuch1 1 1.979 22.06.2014 20:22
Letzter Beitrag: GerdW
  Messwerte von Hand in Tabelle eintragen und in Excel schreiben refripo 2 2.220 12.05.2014 16:59
Letzter Beitrag: refripo
  Messwerte bei Ereignis in Array schreiben js89 14 6.342 18.08.2013 15:57
Letzter Beitrag: Trinitatis

Gehe zu: