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!
in zahlreichen Foren-Beiträgen steht, dass Express-VIs vermieden werden sollen. Es wird geraten, sie durch die "klassischen" Blöcke zu ersetzen. Manche von euch reagieren ganz schockiert, wenn ein VI angehängt wird, dass Express-VIs enthält.
Eine Begründung konnte ich keine finden. Mir persönlich gefallen die Express-VIs auf den ersten Blick ganz gut.
Gibt es hier ein FAQ-Thema, in dem das erklärt ist oder wäre jemand bereit, mir das zu erklären?
Gibt es sonst Ratschläge, die man befolgen sollte (keine Express-VIs, ...), damit ich es mir gar nicht falsch angewöhne?
Express-VIs:
- erzeugen viel größere VIs (in Hinsicht auf den Speicherplatz auf der Festplatte), da sie viel Ballast im Hintergrund mitschleppen
- der Ballast (s.o.) kann zu längeren Laufzeiten führen
- verstecken viele Einstellungen in ihren KonfigDialogen, was zu nicht übersichtlichen Blockdiagrammen führt (man muss sich erst überall reinklicken, um zu wissen was dort eingestellt/gemacht wird)
- verwenden oft den gar nicht "verständlichen" Datentyp "DynamicDataType" - da weiß man gar nicht mehr, womit das Programm gerade arbeitet
- haben einen genau definierten Einsatzzweck, sobald der für dich nicht mehr zutrifft, musst du eh auf "normale" Funktionen ausweichen (schon mal versucht eine Datei mit bestimmtem Header mittels ExpressVIs zu schreiben?)
- machen viele Operationen, die unnötig/fehl am Platz sind (wie Datei öffnen/schreiben/schließen, wo auch ein Datei schreiben ausreichen würde), s.o. Ballast und so...
mal sehen was noch so für Gründe genannt werden...
Ich kann mich dem von GerdW gesagten nur anschliessen. Express VIs sind grossartig wenn man schnell etwas ausprobieren will. Um eine richtige Applikation zu schreiben sind sie aber viel zu speziell, unflexible, und aufgebläht als dass man sie sinnvoll einsetzen kann.
Aber ich verwende schon mal ein Express VI, um etwas auszuprobieren und kehre das dann in eine normales VI um wo ich mir die interessanten Dinge rauskopiere und damit ein eigenes VI erstelle. So zum Gedankenklau und so sind die manchmal nicht ganz schlecht .
Wie steht NI denn zu den Express-VIs?
Ich könnte mir vorstellen, dass NI diese empfiehlt, da vermutlich einiges an Entwicklungsarbeit darin steckt.
Ich habe gesehen, dass wir in ersten Tests u.a. Express-VIs wie "DAQ Assistant" verwenden.
Gibt es eine Übersicht, wie die Express-VIs durch die klassischen VIs ersetzt werden können?
Per Doppelklick öffnet sich immer ein Dialogfenster, d.h. ich kann mir das Blockdiagramm der Express-VIs nicht ansehen, zumindest nicht auf diesem Weg.
Grüße
28.04.2010, 10:06 (Dieser Beitrag wurde zuletzt bearbeitet: 28.04.2010 10:10 von Achim.)
' schrieb:Per Doppelklick öffnet sich immer ein Dialogfenster, d.h. ich kann mir das Blockdiagramm der Express-VIs nicht ansehen, zumindest nicht auf diesem Weg.
Spielen hilft!
Rechtsklick...Open Front Panel
' schrieb:Ich könnte mir vorstellen, dass NI diese empfiehlt, da vermutlich einiges an Entwicklungsarbeit darin steckt.
Marketing-Ramsch! Das sind nur "Lockangebote" ..."Schnelle Ergebnisse ohne Programmierkenntnisse"...stimmt ja auch...wenn's aber ans Eingemachte geht, kommt man nicht weit!
' schrieb:Ich habe gesehen, dass wir in ersten Tests u.a. Express-VIs wie "DAQ Assistant" verwenden.
Ich nehm den oft um mir ne Messung zu konfigurieren...und dann lass ich mir per Rechtsklick den richtigen Code erzeugen, den man dann nach Bedarf anpassen kann!
"Is there some mightier sage, of whom we have yet to learn?"
"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
28.04.2010, 10:10 (Dieser Beitrag wurde zuletzt bearbeitet: 28.04.2010 10:12 von Matze.)
also ich vermeide Express VIs aus folgendem Grund:
immer wenn ich mal was mit Express VIs mache stelle ich irgendwann fest, dass mir die eingebaute Funktionalität doch nicht reicht. Für "schnell und schmutzig" oder "eben mal was messen" reichen sie durchaus, aber sie haben halt ihre Grenzen. Und da ich meistens dann irgendwann doch auf Standard-VIs umbauen musste lass ich es halt gleich. Wenn man sich sicher ist, dass die Funktionalität, die bereitgestellt wird, für das zu lösende Problem ausreichend ist, dann sollte man sie auch benutzen!
Was mich im Forum an Express-VIs stört ist: irgendjemand pappt 2 Express VIs hintereinander, postet diesen "Code" mit dem Kommentar "ich hab alles versucht, aber es geht nicht" und bittet um Hilfe. Da kann ich nur dreckig lachen. Express VIs können eine große Hilfe sein, wenn man weiß was man tut. Wenn man keinen Plan hat, wie z.B. eine Datenerfassung funktioniert, wie Blockgröße, Sample-Rate und Schleifen-Timing zusammenhängen, dann hilft einem auch ein Express VI nix. So ein Verhalten bewerte ich persönlich als "Faulheit" in Verbindung mit "Dreistigkeit" und auf die Art gewinnt man bei mir keinen Blumentopf.
Last but not least: ich mag den Datentyp "dynamische Daten" nicht. Obowhl er notwendig ist, damit man Express VIs allgemein halten kann, fehlt mir halt einfach die Information, was sind das für Daten, und was passiert damit. Das mag für andere völlig unwichtig sein, aber ich bin nun mal einfach dran gewöhnt dass ich selbst dafür verantwortlich bin was mit "meinen" Daten passiert, und da geht mir das gegen den Strich wenn das vor mir "versteckt" wird ...
Ich habe mich nun durch "Read From Measurement File" geklickt und das hat mich überzeugt, Express-VIs im produktiven Einsatz sehr vorsichtig zu verwenden.
Wenn ich beispielsweise nur LVM-Dateien einlesen möchte, dann ist der ganze Code zur Verarbeitung von TDM-Dateien im Programm enthalten, obwohl er überflüssig ist. Und dann sind das Blockdiagramme, die kaum nachvollziehbar sind und zig Bildschirmgrößen umfassen. Das ist ein Herumgescrolle, verrückt.
Express-VIs wie "File Dialog" und "Elapsed Time" sind jedoch recht übersichtlich und da würde ich sagen, die zu verwenden geht in Ordnung. Es ist auch kein zu großer Aufwand, diese Express-VIs in normale VIs zu konvertieren und selbst zu erweitern.