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 

Datenfluss



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!

27.08.2010, 08:19
Beitrag #1

deicebear Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 72
Registriert seit: Jul 2010

8.5.1
2009
de_en

13
Deutschland
Datenfluss
Habt ihr ein paar kleinere Beispiele, wie man einen Datenfluss gezielt erzeugt und steuern kann? Also wie man eventuell ganz leicht sagen kann, erst kommt meine ForSchleife 1 und danach Die ForSchleife 2 und somit das umgekehrte ausführen verhindern?

Alles zum Thema "Datenfluss" kann auch gleich hier mit in den Thread.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
27.08.2010, 09:06
Beitrag #2

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.689
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Datenfluss
Es gibt eine Brachialmethode: einfach einen Draht durch alles durchlegen. Dann wird alles so verarbeitet, wie es der Draht vorschreibt.

Oder schöner: Das Blockdiagramm in logische Teile zerlegen und die dann in SubVIs auslagern. Diese SubVIs werden dann - wie es sich gehört - mit dem sogenannten Errorcluster sequenziert. Manche Sachen, wie z.B. das Reagieren auf einen Button, werden normalerweise nicht mit Datenfluss, sondern mit Ereignisstrukturen realisiert.

Ein Beispiel hab ich gerade nicht bei der Hand.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.08.2010, 09:37 (Dieser Beitrag wurde zuletzt bearbeitet: 27.08.2010 09:37 von Lucki.)
Beitrag #3

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Datenfluss
Ich mache es mit Labview so wie mit meinem Hund: den lasse ich gern ohne Leine laufen. Dies Forum ist voll von geposteten negativen Beispielen der anderen Art: Die wird - hauptsächlich mit massenhafter Anwendung von überflüssigen Sequenzstrukturen - der Progammablauf in ein künstliches Korsett hineingezwängt, der von der Datenabhängigkeit her gar nicht zu begründen ist.
Wenn dieser Thread dieser Tendenz vielleicht noch Auftrieb geben sollte, dann wäre ich dafür, daß er lieber gleich wieder geschlossen wird.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.08.2010, 11:07
Beitrag #4

deicebear Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 72
Registriert seit: Jul 2010

8.5.1
2009
de_en

13
Deutschland
Datenfluss
Oh nein, der Thread soll nichts Flamepushen oder die Leute in ihrer Programmieart gänzlich versauen. Nur habe ich den Begriff "Datenfluss" eingegeben und bin dafür, in einem ordentlichen Forum sollte dann auch ein Thread "Datenfluss" ganz oben stehen und dadrin erklärt werden, was ist ein Datenfluss, wie realisiert man diesen. Ich als Neuling bekomme es ja auch hin, mir meine Informationen soweit es geht zusammen zu suchen und daraus zu lernen, aber wenn ich in einen Thread namens Race Condition gehe und da wird über ein Problem geschrieben statt eine Erklärung, was ein Race Condition ist, dann hilft mir das nicht so richtig weiter. Somit versuche ich meine Wissenlücken zu füllen und gleichzeitig das Forum zu komplettieren. (sry, wenn das so eigentlich nicht gedacht ist, ich will nur nicht zu dem "Ich hab 20 Fragen in einen Thread"-Stil zurückWink)

Also wie muss ich mir das vorstellen, einfachen einen Draht durch alles zu ziehen?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.08.2010, 11:22
Beitrag #5

dimitri84 Offline
Astronaut
*****


Beiträge: 1.496
Registriert seit: Aug 2009

2020 Developer Suite
2009
DE_EN

53562
Deutschland
Datenfluss
Zitat:Also wie muss ich mir das vorstellen, einfachen einen Draht durch alles zu ziehen?
Hast du die Antwort von IchSelbst nicht gelesen?!

Datenfluss in LabVIEW heißt: An einem Knotenpunkt geht es erst weiter, wenn alle angeschlossenen Drähte mit einem Wert belegt sind. Ein Knotenpunkt kann z.B. ein subVI oder eine Struktur (Schleife, Case-Struktur etc.) sein.

D.h. nicht, dass es sonst keine Möglichkeit gibt, bestimmte Algorithmen zu sequenzieren - siehe z.B. State-Machine.



PS Bitte jetzt keinen Thread namens "State-Machine" öffnen!Wink

„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.08.2010, 11:30
Beitrag #6

Dommas Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 93
Registriert seit: Jul 2010

2010
2008
DE_EN

86741
Deutschland
Datenfluss
Der gößte Vorteil von LV ist, dass "quasi-parallele" Verarbeitung nicht nur möglich ist, sondern mehr oder weniger von vornerein gegeben ist.
Was Lucki sagen wollte war glaube ich, dass die meisten damit nicht zurecht kommen. Sie wollen in LV unbedingt so programmieren wie in C&Co. Deswegen nehmen sehr viele ständig die Sequenzstruktur (eine der einfachsten, aber wohl auch unschönsten Möglichkeiten, Datenfluss, also Abarbeitungsreihenfolge zu realisieren).
Ich LV sollte nur dann Datenfluss festgelegt werden, wenn ich das auch wirklich brauche (z.B. um die angesprochenen RaceConditions zu vermeiden) und nicht weil ich das von C oder C++ so gewohnt bin.

So, nun mal allgemein: Es gibt verschiedene Möglichkeiten Datenfluß sicherzustellen:

1. Sequenz (nur im Notfall nutzen; die geschachtelte am besten gar nicht! Da blickt keiner auf die schnelle durch, der ein Programm das erste mal sieht)

2. Drähte

Eine Schleife oder ein SubVI wird erst ausgeführt wenn alle Drähte Daten anliegen haben. D.h. wenn einer noch nicht so weit ist, wird einfach gewartet, und an anderer Stelle des Programms weitergearbeitet.
Ich kann einen Draht auch an eine Schleife anlegen, und ihn innen gar nicht nutzen oder nur durchschleifen, aber so habe ich den Datenfluß.
Für SubVIs sollte immer mit Fehler-Clustern gearbeitet werden. 1. Muss ich das VI vielleicht gar nicht mehr ausführen wenn vorher schon ein Fehler war, 2. wissen alle SubVIs und das MainVI wenn ein Fehler auftritt und 3. habe ich schon wieder Datenfluß und -sicherheit, wenn ich das brauche.


Hilft Dir das erstmal weiter?
Ich glaube nicht das das was ich hier jetzt von mir gegeben habe vollständig ist, aber es sollte zumindest nichts falsches dabei stehen, und bildet zu 100% meine Meinung abWink
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
27.08.2010, 12:26
Beitrag #7

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.689
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Datenfluss
Hab ich halt mal ein Bild gemacht.


Angehängte Datei(en) Thumbnail(s)
   

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.08.2010, 12:41 (Dieser Beitrag wurde zuletzt bearbeitet: 27.08.2010 12:54 von Falk.)
Beitrag #8

Falk Offline
ja, das bin ich...
***


Beiträge: 343
Registriert seit: Jan 2006

8.0 :: 201x ::202x
2006
DE_EN


Deutschland
Datenfluss
Ich muss mich da IchSelbst voll anschließen. Der korrekte Datenfluss entsteht in den meisten Fällen schon ganz von selbst wenn man konsequent und sauber den Fehlercluster verdrahtet. Gerade die korrekte Fehlerbehandlung erzwingt Datenfluss in meinen Augen von ganz allein. Wann soll was unter welchen Bedingungen ausgeführt werden. Man brauch keine serielle Schnittstelle auslesen, wenn die Initialisierung dieser vorher schief gegangen ist. Oder anderes herum gesagt, wenn die Initialisierung ohne Fehler von statten ging, dann lese die serielle Schnitstelle aus. Und woher weiß ich ob es klappte? Aus den Daten des Fehlerclusters. (ok da wäre noch die VISA SessionWink, aber zur Anschauung sollte es reichen.) Auch bei parallel laufenden Prozessen kann man dieses Vorgehen teilweise anwenden. Ich lese zwei Geräte parallel und zunächst abhängig voneinander aus. Anschließend muss ich irgendwann einmal beide Messwerte für eine Berechnung heranziehen. Diese lohnt aber auch nur, wenn beide Messungen korrekt von statten gingen, ansonsten ist das Ergebnis irgendwie Müll. Spätestens nach den Messungen sollte man dann die Fehlercluster beider Prozesse zusammenfassen "Merge Errors.vi" und ab dieser Stelle greift dann wieder das Datenflussprinzip.

Schöne Grüße
Falk

Currently: zzzZZZZZZZZ
Webseite des Benutzers besuchen 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
  Datenfluss zwischen VI und subVI lumaxo 7 7.223 07.04.2014 15:34
Letzter Beitrag: lumaxo
  Problem mit Datenfluss Sandisk 2 3.263 10.11.2011 10:37
Letzter Beitrag: Sandisk
  SubVIs und Datenfluss RomanT 11 10.002 01.02.2011 10:58
Letzter Beitrag: aptiva
  Sub-VI Datenfluss funktioniert nicht VisionaryS 8 6.464 19.01.2009 15:34
Letzter Beitrag: VisionaryS
  datenfluss kontrolle sammy 4 4.803 01.11.2005 10:11
Letzter Beitrag: Buhrz

Gehe zu: