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:

Case-Auswahl im SubVI abhängig vom Aufrufer



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!

10.02.2016, 22:31
Beitrag #7

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.697
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
RE: Case-Auswahl im SubVI abhängig vom Aufrufer
(10.02.2016 21:37 )aw schrieb:  So oder so ist die Wiederverwendbarkeit bei beiden nicht ohne weiteres gegeben!?!

Bei der Verwendung der Aufrufkette tritt folgendes Problem auf - ein sehr gefährliches Problem: Wenn du das SubVI (im Allgemeinen: ein Modul) in eine neues Projekt integrierst, also in ein neues VI platzierst - wird zur Entwicklungszeit kein Fehler (<= das ist das Problem) auftreten. Warum auch sollte ein Fehler auftreten: Im SubVI machst du einen String-Vergleich, der erst zur Laufzeit relevant ist. Um das Problem zu umgehen, musst du also von vorne herein einen Case im SubVI haben, der eine Meldung macht, wenn das aufrufende VI unbekannt ist. Würde hier jetzt zur Entwicklungszeit ein Fehler auftreten, wäres du nämlich daran erinnert, dass du Strings im SubVI ändern musst. Mag sein, dass dieses Problem in deinem Falle nicht so gravieren ist - aber es besteht.

Wenn du einen Enumerator nimmst, kann überhaupt nichts passieren - da gibt es per se keine Probleme (nur Arbeiten). Zum Modul "SubVI" gehört nämlich auch der Enumerator. Wenn du also das SubVI in ein neues Projekt integrierst ("wiederverwendest"), musst du auch den Enumerator kopieren. Ohne den Enumerator wird zur Entwicklungszeit angezeigt, dass er fehlt! Spätestes dann wirst du ihn kopieren. Zur Integration eines Modules gehört auch immer der Aufruf des Moduls in einem aufrufenden Objekt. Und bei der Platzierung des Modules auf dem BD wirst du bereits zur Entwicklungszeit durch die IDE daran erinnert, dass du einen Eingangsparameter entsprechend belegen musst. Wenn jetzt im Gegensatz zu oben das Programm als ablauffähig angezeigt wird, wird es auch funktionieren (es sei denn du hast dich bei der Auswahl des Enumerators vertippt etc.).

Es gibt auch noch einen programmier-theoretischen Grund, es ohne Aufrufkette und mit Enumerator zu machen: Ein Modul, das wiederverwendet werden soll, muss ein "gekapseltes Objekt" sein. Als solches hat es interne Daten und Funktionen, die nach außen hin nicht sichtbar und nicht zugreifbar sind. Diese internen Daten und Funktionen sind naturgegeben projektunabhängig (das ist zwar sehr schwierig - wenn dem aber nicht so währe, würde man es nicht wiederverwenden wollen). Interes in einem SubVI ist das komplette BD (enthält Daten!) und das FP. Nach außen hin hat ein Objekt eine Schnittstelle - im Falle eines VIs sind das die Ein- und Ausgänge.

Und was meinst du wohl ist mit der Aufrufkette: Der Inhalt der Aufrufkette ist projektabhängig! Es befinden sich innerhalb des Objektes also Daten, die nicht unabhängig sind, aber auch nicht zugreifbar! Aufrufkette widerspricht also dem Paradigma "gekapselt". Mit dem Enumerator ist das ganz einfach: der gehört zur Schnittstelle.

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
Antwort schreiben 


Nachrichten in diesem Thema
RE: Case-Auswahl im SubVI abhängig vom Aufrufer - IchSelbst - 10.02.2016 22:31

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Case-Struktur: Angegebener Case nicht vorhanden braendy 10 6.835 02.02.2021 15:05
Letzter Beitrag: Lucki
  Event Case Ignoriert Tastendruck wenn in Gegenwart eines anderen "Leeren" Event Case Ksanto 8 8.261 23.10.2017 09:08
Letzter Beitrag: Ksanto
  Combobox Fallabhängige Auswahl ichmaglachs 4 5.522 29.11.2015 14:24
Letzter Beitrag: ichmaglachs
  Case Strukture mit 3 Case lola2014 13 11.496 23.10.2014 14:17
Letzter Beitrag: GerdW
  Case Auswahl mittels Digitaleingängen voldulum 2 3.387 24.07.2014 13:24
Letzter Beitrag: voldulum
  Subvi in Case beenden Michael26 10 8.575 28.05.2014 11:07
Letzter Beitrag: Michael26

Gehe zu: