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 

LV - Tapete verhindern



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!

14.05.2008, 08:35
Beitrag #1

Kvasir Offline
LVF-Freak
****


Beiträge: 642
Registriert seit: May 2006

10
2004
DE_EN

0000
Oesterreich
LV - Tapete verhindern
Guten Morgen liebes LV-Forum,

ich arbeite zur Zeit an einer komplexeren Aufgabenstellung, bei der es ein LV Programm zu realisieren gilt. Ich zweifle im Prinzip auch nicht daran, dass ich dies (früher oder später) hinbekomme, nachdem schön langsam endlich klar ist, was man von mir haben willSmile

Allerdings ist durch die Komplexität des ganzen die Gefahr gegeben, dass ich mir hier eine Tapete bastle, was ich vermeiden will, darum hätte ich gerne ein paar Tips, wie ich ein komplexeres Programm aufbauen soll. Ich bin zwar (so bilde ich mir ein) ein recht begabter Laienprogrammierer, aber mit fehlt eben doch eine professionelle Ausbildung auf diesem Thema.

Meine Hauptsorge ist folgende: Ich muss am Anfang (vor der Hauptschleife) etliche Parameter initialisieren, von denen ich dann an verschiedenen Stellen verschiedene wieder auslesen muss. Je nach Einstellung muss ich auch nicht immer auf die selben Parameter zugreifen. Meine Befürchtung ist, dass das ein undurchsichtiger Kabelsalat wird.

Ein Beispiel wäre z.B.: Ich initialisiere Anfangs eine Filterbank. Hier kann zwischen verschiedenen Filtern gewählt werden und je nachdem können auch Koeffizienten gewählt werden. Wie bringe ich nun diese Einstellung am Besten weiter? Dabei gilt es zu beachten, dass ja je nach Filterbankwahl die Koeffizienten unterschiedlich sind. Nicht nur in ihrem Wert, sondern auch andere Variablen/Anzahl/Typ.

- Soll ich doch Referenzen / lok. Variable verwenden von Zeit zu Zeit um den Drahtsalat zu lockern.
- Alles in einen Cluster packen und nur Teile auslesen (je nach Auswahl dann auch Daten im Cluster, die nie gelesen werden).

Über ein paar Anregungen würde ich mich freuen.
Als kleines Beispiel hänge ich noch einen Screenshot der Arbeit meines Vorgängers an. Wobei ich hoffe auch ohne Tips und Ratschläge hier im Forum derartiges zu verhindern.

Grüße


Angehängte Datei(en) Thumbnail(s)
   

A few weeks of developement and testing can save a WHOLE afternoon in the library!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.05.2008, 08:59 (Dieser Beitrag wurde zuletzt bearbeitet: 14.05.2008 09:31 von eg.)
Beitrag #2

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
LV - Tapete verhindern
Ich würde eindeutig einen Cluster mit allen Einstellungen vorschlagen. Am besten noch als Typedef, damit man leicht Änderungen an diesem Cluster vornehmen kann.

Du kannst auch VIs und SubVIs die zu einem Bestimmten Gerät (Objekt) gehören so gestalten, dass diese nur Teile (Cluster im Cluster) des gesammten Einstellungsclusters als Eingang haben. Vergiss diese SubCluster nicht auch als Typedefs zu definieren. Durch dieses Vorgehen, verhinderst du die unnötige Datenschieberei, behälst dabei aber den Überblick.

Hier im Beispiel habe ich den gesammten Einstellungen-Cluster genommen, da ich nicht zu viele Einstellungen habe. Ansonsten würde ich nur einen Teil davon nehmen.

   

Und das hier wäre das gleich Projekt, aber ein anderes Gerät (also andere Task). Du siehst ich nehme überall den gleichen Einstellungen-Cluster.

   

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.05.2008, 09:34
Beitrag #3

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.695
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
LV - Tapete verhindern
Man muss nicht unbedingt ein Wire zum Weiterleiten von Daten verwenden. Es geht auch mit einem sog. funktionalen VI. Ein solches VI speichert die Daten - welches Format auch immer - in einem Schieberegister. Gesteuert wird dieses VI durch einen Enumeratoreingang. Der kann folgende Funktionen (Propertys) haben: SetzeDaten, LeseDaten, SetzeTeilDaten, LeseTeilDaten, AddiereZuArray, ResetteDaten etc. Vorteil: Bei vielen und komplexen Daten kann man sich alle Wire sparen. Außerdem sind die Daten quasi global.

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
14.05.2008, 09:37
Beitrag #4

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
LV - Tapete verhindern
' schrieb:Man muss nicht unbedingt ein Wire zum Weiterleiten von Daten verwenden. Es geht auch mit einem sog. funktionalen VI. Ein solches VI speichert die Daten - welches Format auch immer - in einem Schieberegister. Gesteuert wird dieses VI durch einen Enumeratoreingang. Der kann folgende Funktionen (Propertys) haben: SetzeDaten, LeseDaten, SetzeTeilDaten, LeseTeilDaten, AddiereZuArray, ResetteDaten etc. Vorteil: Bei vielen und komplexen Daten kann man sich alle Wire sparen. Außerdem sind die Daten quasi global.


Das finde ich auch sehr interessant! Top1

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.05.2008, 12:23
Beitrag #5

Kvasir Offline
LVF-Freak
****


Beiträge: 642
Registriert seit: May 2006

10
2004
DE_EN

0000
Oesterreich
LV - Tapete verhindern
Erstmal danke für die Antworten soweit.

Ein einzelnen Cluster wäre auch mein Ansatz soweit gewesen. Die Idee mit den Clustern im Cluster wär mir nicht gekommen. Ist aber klasse.

Das funktionale Vi klingt auch wirklich gut.

A few weeks of developement and testing can save a WHOLE afternoon in the library!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.05.2008, 12:33
Beitrag #6

skywalker Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 154
Registriert seit: Jan 2007

2020
2007
DE

99310
Deutschland
LV - Tapete verhindern
' schrieb:Man muss nicht unbedingt ein Wire zum Weiterleiten von Daten verwenden. Es geht auch mit einem sog. funktionalen VI. Ein solches VI speichert die Daten - welches Format auch immer - in einem Schieberegister. Gesteuert wird dieses VI durch einen Enumeratoreingang. Der kann folgende Funktionen (Propertys) haben: SetzeDaten, LeseDaten, SetzeTeilDaten, LeseTeilDaten, AddiereZuArray, ResetteDaten etc. Vorteil: Bei vielen und komplexen Daten kann man sich alle Wire sparen. Außerdem sind die Daten quasi global.
Wie kann ich mir das mit sog. funktionalen VIs vorstellen? Kannst da mal bitte ein Beispiel machen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
14.05.2008, 12:34
Beitrag #7

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
LV - Tapete verhindern
http://forum.ib-berger.com/index.php?showtopic=5

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.05.2008, 16:09 (Dieser Beitrag wurde zuletzt bearbeitet: 14.05.2008 20:00 von jg.)
Beitrag #8

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.695
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
LV - Tapete verhindern
Ein Muster ohne Wert - sprich also ohne alle Unterprogramme, nur zum kucken.

Lv85_img


Angehängte Datei(en)
Sonstige .vi  Param_BasisKlasse.vi (Größe: 110,96 KB / Downloads: 298)

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
21.05.2008, 17:32
Beitrag #9

Kvasir Offline
LVF-Freak
****


Beiträge: 642
Registriert seit: May 2006

10
2004
DE_EN

0000
Oesterreich
LV - Tapete verhindern
Hallo,

inzwischen stecke ich mitten drinnen im Erstellen des Programmes und komme (nicht zuletzt) dank der 2 Tips hier auch gut voran. Für die Allgemeinheit, die vielleicht mal über die Suchfunktion hierauf stößt:

Hauptsächlich verwende ich Cluster in Clustern um meine Einstellungen kompakt zusammenzufassen. Dies hat vorallem auch den großen Vorteil, dass das Programm sehr einfach erweiterbar ist.
Gibt es z.B. eine Einstellmöglichkeit, bei der jede Option eigene Parameter braucht, so erstelle ich einen Cluster, der die gewählte Einstellung enthält, sowie für jede davon einen Cluster mit den Parametern.
Erweitere ich nun die möglichen Einstellungen (TypDefinition), so brauche ich nur einen weiteren Cluster hinzufügen und die CaseStruktur erweitern. Dabei ändert sich gar nichts für die bereits bestehenden Optionen.

Das funktionale Vi verwende ich gelegentlich um "Counter" umzusetzen. Ich habe diverse Arrays mit Parametern, die ich auslesen muss. Bei jedem Auslesen muss dabei der nächsthöhere Index ausgelesen werden. Mit einem funktionalen Vi läßt sich dies hervorragend lösen, ohne dass ich quer durch mein HauptVi einen Zähler mitschleppen muss.

Grüße und schönen Feierabend (den ich jetzt mache)


Angehängte Datei(en) Thumbnail(s)
       

A few weeks of developement and testing can save a WHOLE afternoon in the library!
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
  Energiesparmodus verhindern jan91 11 8.294 18.11.2024 11:39
Letzter Beitrag: TpunktN
  Windowszugriff verhindern seuk 1 3.137 28.03.2019 11:59
Letzter Beitrag: th13
  Verhindern von Befehlen mit falscher Bitlänge Praktikantin 1 2.697 25.09.2015 15:35
Letzter Beitrag: GerdW
  Springen des Cursors verhindern Lucki 6 5.513 15.08.2013 10:59
Letzter Beitrag: Y-P
  Kurzzeitige Unterbrechungen eines VI verhindern Hähnchen 11 9.416 09.08.2013 13:40
Letzter Beitrag: Hähnchen
  Automatischen Start der EXE verhindern HerTesla 8 6.260 06.03.2013 17:39
Letzter Beitrag: Lucki

Gehe zu: