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 

Dieses Thema hat akzeptierte Lösungen:

Zeitsteuerung Sequenz



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!

15.12.2015, 17:14 (Dieser Beitrag wurde zuletzt bearbeitet: 15.12.2015 17:15 von GerdW.)
Beitrag #11

GerdW Offline
______________
LVF-Team

Beiträge: 17.465
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Zeitsteuerung Sequenz
Hallo Pete,

Zitat:Im linken Teil wird das Array ausgelesen, dann transponiert und indiziert auf jedes Elment einer Spalte zugegriffen.
Warum keine autoindizierende FOR-Loop?
(Warum keine geraden Drähte? Warum drei einzelne IndexArray-Aufrufe?)

Zitat:Die extrahierten Befehle werden anschließend durch eine Case-Struktur geführt, in denen auch eine Wartezeit von 10s programmiert ist. Danach werden sie versendet.
Ja, so ist das…

Zitat:Leider werden die Funktionen zum Versenden erst ausgeführt, wenn beide Waitbefehle in der Case-Struktur abgearbeitet worden.
Beide warten (ca.) gleich lange, beide werden (mehr oder weniger) nach den beiden Warte-Befehlen ausgeführt. So hast du es programmiert, hast du doch selbst so beschrieben!

Zitat:Was mache ich verkehrt?
Du beschreibst, was du programmiert hast. Und wunderst dich dann, das es genau so funktioniert?

Zitat:Ich schätze, ich verstehe ich die Grundlagen nicht richtig.
Scheint so, siehe auch Anmerkungen beim ersten Punkt. THINK DATAFLOW!
(Ab und zu mal Ctrl-U schadet auch nicht…)

Zitat:Nun möchte ich zwischen den Versenden jedes Befehls eine Verzögerung einbauen, die 0 oder 1 Sekunde sein soll.
Wenn du das so willst, musst du es auch so programmieren. Zu sehen ist davon jedenfalls noch nichts!
Du willst "zwischen den Versenden jedes Befehls" warten, als sollte die Wartezeit "zwischen den Versendebefehlen" angeordnet sein!
Momentan wartest du nur "vor dem Versand"…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
15.12.2015, 18:09 (Dieser Beitrag wurde zuletzt bearbeitet: 15.12.2015 18:22 von LabViewPete.)
Beitrag #12

LabViewPete Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 74
Registriert seit: Jul 2015

7.1
2015
DE



RE: Zeitsteuerung Sequenz
Ich weis es nicht....entschuldige. Ich lese aus deiner Dataflow-Hilfe nur raus, dass an einer Funktion alle Input Variablen anliegen sollten, bevor sie aussgeführt wird. Und in der Hilfe von NI finde ich auch nichts zum Stichwort Datenfluss, Programmfluss....Wenn ich den Wait-Befehl zwischen meinen Funktionen zum Versenden im Raum platziere, dann wird er auch erst dann ausgeführt, wenn alle Funktionen schon ausgeführt worden?
Sicherleich ließe es sich gut mit einer Seuqenz realisieren....trotzdem suche ich eine andere Möglichkeit
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.12.2015, 19:17
Beitrag #13

GerdW Offline
______________
LVF-Team

Beiträge: 17.465
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Zeitsteuerung Sequenz

Akzeptierte Lösung

Hallo Pete,

Zitat:Ich lese aus deiner Dataflow-Hilfe nur raus, dass an einer Funktion alle Input Variablen anliegen sollten, bevor sie aussgeführt wird.
Korrekt. DATAFLOW = eine Funktion wird erst dann ausgeführt, wenn allle benötigten Inputs bereit stehen…

Zitat:in der Hilfe von NI finde ich auch nichts zum Stichwort Datenfluss, Programmfluss....
Mein Link verweist doch direkt in die LabVIEW-Hilfe, genau auf dein Artikel zum DATAFLOW…

Zitat:Wenn ich den Wait-Befehl zwischen meinen Funktionen zum Versenden im Raum platziere, dann wird er auch erst dann ausgeführt, wenn alle Funktionen schon ausgeführt worden?
THINK DATAFLOW!
Wenn du den WAIT-Befehl einfach nur hineinschmeißt, OHNE irgendeine DATAFLOW-Abhängigkeit, wird er natürlich parallel zum Rest des Codes ausgeführt! (DATAFLOW: Eine Funktion wird ausgeführt, wenn alle Inputs bereit stehen!)
Wenn du aber Freddys Vorschlag aufgreifen würdest und dem WAIT durch die ErrorIO-Anschlüsse zusätzliche Möglichkeiten geben würdest, den DATAFLOW zu erzwingen, könntest du das WAIT NACH dem ersten und VOR dem zweiten Versenden ausführen lassen…

Beispiel:
   
Das grüne Icon entspricht Freddys Vorschlag, stammt aber aus meiner user.lib…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.12.2015, 08:46
Beitrag #14

Freddy Offline
Oldtimer
****


Beiträge: 729
Registriert seit: Aug 2008

2019, 2020, 2021
1996
DE

76275
Deutschland
RE: Zeitsteuerung Sequenz
In LabView werden innerhalb einer Schleife immer alle Funktionen parallel abgearbeitet. Dies kann man nur verhindern in dem man durch Verbindungen den Weg vorgibt.
Wenn Du das Programm mit der Highlight-Funktion laufen lässt, wirst Du sehen wie der parallel Ablauf funktioniert.
In Deinem Fall werden zuerst die 3 Arrays ausgelesen, dann kommt die erste Zeitschleife, die Ausgabe und dann die zweite Zeitschleife. Erst jetzt wird Versenden 1 und dann Versenden 2 ausgeführt.

Bei LabView wird in einer Schleife von links oben angefangen ab zu arbeiten.

Wenn Du einen VI erstellst mit Array Auswahl Zeit und Versenden, kannst Du den zweimal verwenden.
Ich habe mal ein Muster angehängt, die Versendenfunktion muss natürlich wie bei Dir angeschlossen werden.

Gruß
Freddy


Angehängte Datei(en) Thumbnail(s)
   
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.12.2015, 08:55 (Dieser Beitrag wurde zuletzt bearbeitet: 16.12.2015 08:55 von GerdW.)
Beitrag #15

GerdW Offline
______________
LVF-Team

Beiträge: 17.465
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Zeitsteuerung Sequenz
Hallo Freddy,

Zitat:Bei LabView wird in einer Schleife von links oben angefangen ab zu arbeiten.
Diese Aussage halte ich für grob fahrlässig bis grundlegend falsch…

Bei einem LabVIEW-VI ist es egal, wo welche Funktion auf dem BD angeordnet ist: der DATAFLOW bestimmt die Ausführungsreihenfolge!

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.12.2015, 09:24
Beitrag #16

Freddy Offline
Oldtimer
****


Beiträge: 729
Registriert seit: Aug 2008

2019, 2020, 2021
1996
DE

76275
Deutschland
RE: Zeitsteuerung Sequenz
Hallo GerdW,
Du hast natürlich recht. ich habe mich völlig falsch Ausgedrückt.
Es ist richtig, der Datenfluss bestimmt die Ausführung.
Der Versuch meiner Erklärung war wohl nichts. Blush

Gruß
Freddy
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Sequenz wird zweimal durchlaufen mprocket 7 5.683 21.01.2018 18:59
Letzter Beitrag: mprocket
  Sequenz zur Dokumentation, Einfluss auf das Timing TSC 7 5.181 19.10.2016 07:08
Letzter Beitrag: TSC
  Auf Wunsch zusätzliche Sequenz erstellen Rayid 7 5.936 29.09.2016 11:50
Letzter Beitrag: GerdW
  Zeitsteuerung von Ventilen dr.deejay 6 10.227 23.01.2015 09:13
Letzter Beitrag: Labview Anfänger
  Flache Sequenz/Zustandsautomat C.R. 3 5.035 20.09.2014 16:05
Letzter Beitrag: Lucki
  Struktur/Sequenz zurückspringen Protest 12 12.039 11.02.2014 18:04
Letzter Beitrag: Trinitatis

Gehe zu: