it-swarm.com.de

Warum wird LabVIEW nicht für andere Zwecke als Datenerfassung und Virtualisierung verwendet?

Dies ist eine subjektive Frage, aber ich hoffe, dass ich nicht zu viele Abstimmungen bekomme.

LV scheint eine schöne grafische Alternative zu herkömmlichen textbasierten Programmen zu bieten. Wie ich es verstehe, ist es keine reine Programmiersprache für Virtualisierung/Datenerfassung. Dennoch scheint dieses Paradigma an den Namen des Schöpfers gebunden zu sein.

Meine Frage erscheint, weil sie für Mehrzweckanwendungen nicht weit verbreitet zu sein scheint. Ich bin kein LV-Experte, ich bin eher ein Lernender. Ich gewöhne mich immer noch an LV.

20
Anzurio

Labview ist fantastisch, wenn Sie über Hardware von National Instruments verfügen und die Daten erfassen, plotten und protokollieren möchten.

Wenn Sie eine Schnittstelle zu benutzerdefinierten Geräten herstellen, wird die Verkabelung zwischen den Modulen kompliziert, und Sie müssen die gesamte String-Manipulationsarbeit für die Eingabe und Ausgabe eines Geräts ausführen.

An meinem Arbeitsplatz fanden wir heraus, dass wir uns darüber ärgerten, dass wir massive, komplizierte VIs erstellen mussten, um mit Geräten zu kommunizieren. Sie begannen, sie in .NET zu schreiben und mit Labview zu verbinden.

Am Ende haben wir Labview alle zusammengeschrottet und das NI Measurement Studio für Visual Studio verwendet, um uns alle hübsch aussehenden NI-Steuerelemente (Wellenformdiagramm, Tank, Messgeräte, Schalter usw.) mit der Flexibilität von C # zu geben.

Zusammenfassend kann gesagt werden, dass selbst bei einigen 24-Zoll-Bildschirmen die Verkabelung für Labview-Code manchmal zu komplex wird und es unmöglich wird, Kommentare, Debugging und Erweiterungen für zukünftige Änderungen vorzunehmen. Ich empfehle einen Blick auf Measurement Studio for Visual Studio und Verwenden Sie Ihre bevorzugte .NET-Sprache mit den hübschen NI-Steuerelementen.

26
Fuzz

Meine beiden Erfahrungen mit "grafischen Alternativen zur herkömmlichen textbasierten Programmierung" waren furchtbar. Ich finde solche Sprachen nur langsam zu benutzen, schwer zu bearbeiten und ausdruckslos. Das Debuggen ist ein Alptraum. Und sie bieten keine echten Vorteile.

Es ist zwar schon lange her, seit ich einen angeschaut habe, aber die Meinungen anderer, die ich nach ihnen gefragt habe, waren nur lauwarm, also habe ich mir nie die Zeit genommen, noch einmal nachzuschauen. Gründe zum erneuten Schauen sind willkommen und werden an Bord genommen ...

18
dmckee

Mit Labview können große, komplexe Softwareprojekte erstellt werden. Labview macht zweifellos viel mehr Spaß als eine auf Syntax basierende Sprache. Ich habe mathematisch dichte, dynamische Simulationen mit labview programmiert. Neuere Versionen von Labview enthalten viele aufregende Funktionen, insbesondere für die Verwendung mehrerer Prozessoren. Ich mag Labview sehr gerne. Aber ich kann es niemandem empfehlen.

Leider ist dies ein absoluter Albtraum für alles andere als die einfache Erfassung und Anzeige. Es kann eines Tages ausreichend entwickelt sein, um als Alternative zu textbasierten Sprachen betrachtet zu werden. Die Entwickler von NI haben sich jedoch konsequent dafür entschieden, die drei grundlegenden Probleme zu ignorieren, die labview plagen.

1) Es ist instabil und voller Fehler. Es gibt Tausende von Fehlern, die in den labview-Supportforen veröffentlicht wurden und noch behoben werden müssen. Einige davon sind ziemlich gravierend, z. B. Speicherlecks oder mathematische Fehler in Basisfunktionen.

2) Die Dokumentation ist grausam. Wenn Sie in der lokalen Hilfedatei nach einer Hilfe mit einer labview-Funktion suchen, finden Sie meistens einen Satz, der lediglich den Namen des Elements darstellt, zu dem Sie Details suchen. z.B. Ein Benutzer sucht in der Hilfedatei nach der Einstellung des Texturfiltermodus. Das einzige, was in der Hilfedatei geschrieben wird, ist "Texture Filter Mode - wählt den Modus für die Texturfilterung aus." Alter! Danke. Das klärt die Dinge richtig, nicht wahr? Das Problem geht dabei viel tiefer. Wenn Sie einen technischen Vertreter von nationalen Instrumenten nach kritischen Details über die Labview-Funktionalität oder das spezifische Verhalten mathematischer Funktionen fragen, wissen sie oft nicht, wie die Funktionen in ihrer eigenen Bibliothek funktionieren. Das mag sich übertrieben anhören, aber vertrau mir, das ist es nicht.

3) Obwohl es nicht unmöglich ist, grafischen Code sauber und gut dokumentiert zu halten, ist Labview darauf ausgelegt, diese Aufgaben sowohl schwierig als auch ineffizient zu gestalten. Um zu vermeiden, dass Ihr Code zu einem verwirrenden, verwirrenden Durcheinander wird, müssen Sie routinemäßig (alle paar Vorgänge) Strukturen wie Cluster und Sub-vis- und Riesentyp-Steuerelemente verwenden (die sich in einem großen Projekt über mehrere Bildschirme erstrecken können). Diese Strukturen verbrauchen Speicher und zerstören die Leistung, indem labview dazu gezwungen wird, mehrere Kopien von Daten im Speicher zu erstellen und umsonst Vorgänge durchzuführen. Dies alles, damit das grafische Diagramm nicht wie regenbogenfarbene Spaghetti aussieht und keine Kommentare oder Text sichtbar sind. Das Programmieren in labview ist wie mit dem Teufel zu spielen. Stellen Sie sich Ihr riesiges Softwareprojekt vor, das als wandgroßes Flussdiagramm ohne Worte geschrieben wurde. Stellen Sie sich nun vor, dass sich alle Linien tausend Mal kreuzen, so dass eine Verfolgung des Datenflusses völlig unmöglich ist. Sie haben sich gerade die natürlichste und effizienteste Art des Programmierens in labview vorgestellt.

Labview ist cool. Labview wird mit jeder neuen Version besser. Wenn National Instruments es weiter verbessert, wird es eines Tages als allgemeine Programmiersprache großartig. Im Moment ist dies eine äußerst schlechte Wahl als Softwareentwicklungsplattform für große oder logisch komplexe Projekte.

13

Ich schreibe seit fast 20 Jahren in LabVIEW. Ich entwickle automatisierte Testsysteme. Ich habe RF, Vison, High Speed ​​Digital und viele verschiedene Arten von Mixed-Signal-Testsystemen entwickelt. Ich war ein "C" -Programmierer, bevor ich zu LabVIEW wechselte. 

Es ist wahr, dass Sie einige Programme schnell in LabVIEW erstellen können, aber wie jede andere Sprache ist auch eine lange Schulung erforderlich, um eine große Anwendung zu erstellen, die einfach zu verwalten ist und wiederverwendbaren Code enthält. In 20 Jahren hatte ich noch nie einen LabVIEW-Fehler, der mich daran hinderte, ein Projekt zu beenden. 

Früher hatte NIWEEK jedes Jahr ein Software-Shootout. Die Programmierer von LabVIEW und LabWINDOWS (NIs Version von "C") bekamen dasselbe Problem und mussten wissen, welche Gruppe zuerst fertiggestellt wurde. Alle LabVIEW-Programmierer wurden jedes Jahr vor dem ersten LabWINDOW-Mitarbeiter fertiggestellt. Ich habe viele meiner engagierten textbasierten Programmierfreunde zu Shootouts herausgefordert, und alle geben zu, dass sie keine Chance haben, selbst wenn ich sie das Softwareproblem definieren lasse. 

Ich glaube, LabVIEW ist ein großartiges Programmierwerkzeug. Dies ist auf jeden Fall der richtige Weg, wenn Sie mit einer beliebigen Art von NI-Hardware arbeiten. Es ist nicht die Antwort auf alles, aber ich bin sicher, dass viele Leute es nicht verwenden, nur weil sie LabVIEW nicht als eine "echte Programmiersprache" betrachten. Immerhin verbinden wir nur ein paar Blöcke miteinander, oder? Ich finde es witzig, wie viele textbasierte Programmierer sich damit abmühen, weil sie so stolz auf das Durcheinander von Textcode sind, den sie erstellt haben, dass nur sie verstehen können. Ein guter Programmierer in jeder Sprache sollte Code schreiben, den andere leicht lesen können. Das Schreiben von zu komplexem Code, der nicht nachvollzogen werden kann, macht den Programmierer nicht zu einem Genie. Dies bedeutet, dass der Programmierer ein "Kompliator" ist (jemand, der ein einfaches Problem annehmen und komplizieren kann). Ich glaube an das KISS Prinzip (KEEP IT SIMPLE STUPID).

Jedenfalls gibt es meine zwei Cents! **

9
Dave

Ich dachte, LabVIEW sei ein Traum für die FPGA-Programmierung. Unabhängige ausführbare Blöcke funktionieren einfach. Im Allgemeinen verwende ich LabVIEW für verschiedene Aufgaben, die mit meiner DAQ- und FPGA-Hardware verbunden sind, aber das war es auch schon. Es scheint mir (wieder) für mich, dass dies die Stärke von LabVIEW ist und der Grund, warum es gebaut wurde, aber außerhalb dieser Arena fühlt es sich "umständlich" an. Was das Erreichen der Dinge angeht, ist dies wie jede andere Sprache mit einer Lernkurve - wenn Sie es erst einmal herausgefunden haben, ist es nicht zu schlimm, um die Arbeit zu erledigen. Ich habe mehrere Leute aufgegeben, bevor sie der Meinung waren, dass die Lernkurve dauerhaft ist oder so.

Einen 30-Zoll-Monitor in die Hand zu nehmen, machte einen großen Unterschied.

Ich weiß, eine Sache, die die Leute nicht mögen, ist die Integration der Versionskontrolle.

Edit: LabVIEW/Hardware ist hella teuer für "nur zum Spaß". Ich habe $ 10.000 auf ihre Hardware (Studentenpreise) gesenkt und die Software kostenlos von der Schule für die Herstellung von Spielzeug im ganzen Haus erhalten.

6
Sam Harwell

Unser Unternehmen verwendet LabVIEW seit 10 Jahren zur Messung, Überwachung und Berichterstellung unseres Themas (Züge).
Vor kurzem haben wir begonnen, LabVIEW als GUI für Datenbanken mit vielen Daten zu verwenden. Mit den neuen Funktionen (Classes, XControls) von LabVIEW können Sie diese Art von GUIs für einen Bruchteil der Entwicklungskosten auf anderen Plattformen erstellen. Zwar brauchen wir keine externen Programmierer mit Beratungsquote.

Tonne

6
Ton Plomp

Ich habe zuerst mit Labview in einem Physiklabor am College angefangen. Anfangs dachte ich, es sei langsam und schwerfällig im Vergleich zu anderen textbasierten Sprachen. Es war zu schwierig, eine komplexe Logik zu erstellen, und der Code wurde schnell sehr schnell (Drähte überall).

Dann, einige Jahre später, lernte ich die Verwendung von Sub-Vi's und Bundles. Was für ein Unterschied! Zu diesem Zeitpunkt verwendete ich labview für Funktionen auf sehr hohem Niveau. Ich habe rohe Eingaben von einer Kamera genommen und alle Arten von Bildfiltern und -verarbeitung verwendet, um letztendlich die Zeilen auf einer Straße zu analysieren, sodass ein Fahrzeug ohne Fahrer auf dieser Straße fahren konnte - dies war für die DARPA URBAN CHALLENGE. Ich habe auch Karten aus Textwegpunktdaten generiert, hochwertige Analysefunktionen erstellt und eine Vielzahl anderer Anwendungen erstellt, die nichts mit der Verarbeitung von Daten von Eingabegeräten zu tun hatten. Es hat wirklich viel Spaß gemacht. und schnell.

Nach dem Abitur verwende ich nun wieder textbasierte Sprachen. Ich habe verwendet: PHP, Javascript, VBA, C #, VBscript, VB.net, Matlab, Epson RC +, Codeigniter, verschiedene APIs, und ich bin mir sicher, einige andere. Ich bin oft sehr frustriert über die Menge an Syntax, die ich mir merken muss, um mit einer nennenswerten Geschwindigkeit zu programmieren. Ich finde es ärgerlich, die Denkrichtungen basierend auf der von mir verwendeten Sprache wechseln zu müssen ... wenn alle Programmiersprachen im Wesentlichen dasselbe tun! Ich brauche einen zweiten Monitor, um die Hilfe jederzeit aufzubewahren, damit ich die Syntax für die gleichen Funktionen in verschiedenen Sprachen finden kann. Ich vermisse Labview sehr, es ist zu schade, dass es so teuer ist, sonst würde ich es für alles verwenden.

Grafikbasierte Programmierung hat meiner Meinung nach ein enormes Potenzial. Wenn Sie nicht durch die Syntax eingeschränkt werden, können Sie sich auf die Logik statt auf den Code konzentrieren. Labview selbst steckt zwar noch in den Kinderschuhen, was Support und Debugging angeht, aber ich glaube, dass es konzeptionell die Konkurrenz übertrumpft. Es ist einfach eine intuitivere Art zu programmieren.

3
user1456420

Aber Leute verwenden LabView zu anderen Zwecken als Datenerfassung und -virtualisierung. Natürlich wird LabVIEW hauptsächlich in Laboren und Produktionsumgebungen eingesetzt, da es eines der Hauptzielgruppen von NI ist (oder war).

Mit LabVIEW können Sie jedoch viele verschiedene Dinge tun, z. B. einen Roboter programmieren, der viele Bildanalysen durchführen würde, und dann die Ergebnisse twittern. Schauen Sie sich Videos von der NI Week 2009 auf you-tube an und Sie werden sehen, wie mächtig dieses Tool ist. Zum Beispiel besteht die Möglichkeit, Code zu schreiben und auf ARM MCUs bereitzustellen (siehe diesen Artikel Dev Monkey ab 2009.08.10). 

Und zum Schluss noch diese LabVIEW-DIY-Gruppe

2
Jakub Czaplicki

Wir verwenden LabVIEW für unsere End-of-Line-Testgeräte und sind ideal für die Datenerfassung und -steuerung. Typischerweise werden 15 bis 80 Differenzspannungen gemessen und Umgebungskammern, Massendurchflussregler und verschiedene serielle Geräte gesteuert. LabVIEW ist mehr als fähig.

Die Schnittstelle zu benutzerdefinierten Geräten kann erheblich vereinfacht werden, indem Sie mit dem NI-Gerätetreiber-Assistent wiederverwendbare VIs erstellen und bei Bedarf eine Schnittstelle zu benutzerdefinierten DLLs herstellen. In einer Reihe von Projekten haben wir solche Treiber für benutzerdefinierte Hardware erstellt. Einmal erstellte Treiber können in zukünftigen Projekten ohne Änderungen wiederverwendet werden.

Durch ereignisgesteuerte Strukturen reagieren die Benutzeroberflächen und wir verwenden regelmäßig LabVIEW-Anwendungen, um eine Schnittstelle zu einer Datenbank herzustellen.

Welche Programmierumgebung auch immer Sie wählen, es ist der Prozess, bei dem die Anwendung am wichtigsten ist. Ich bin damit einverstanden, dass Sie in LabVIEW einige wirklich schreckliche und nicht lesbare Blockdiagramme erstellen können. In Visual Studio können Sie jedoch auch unlesbaren Code erstellen. Mit wenigen Überlegungen und Planungen kann ein LabVIEW-Blockdiagramm auf einen einzelnen 24-Zoll-Monitor angepasst werden, der ausreichend Platz für Kommentare bietet.

Ich würde LabVIEW für die meisten Projekte über Visual Studio verwenden.

2
Swinders

Ich habe seit Jahrzehnten über diese Frage nachgedacht (ja, seit 1989 ...).

Wie alle Programmiersprachen ist LabVIEW ein übergeordnetes Werkzeug zum Manipulieren des Elektronenflusses. Es sei denn, Sie sind ein Purist und wollen nichts anderes als ein Steckbrett und Kabel verwenden. Transistoren, integrierte Schaltkreise und Programmiersprachen sind wahrscheinlich eine gute Sache, wenn Sie etwas von Bedeutung bauen möchten.

Aber wie bei allen High-Level-Werkzeugen macht Sie die Verwendung eines Werkzeugs nicht zu einem professionellen Handwerker. Am Tag des Lötkolbens, der Operationsverstärker und der UARTs waren umfangreiche Untersuchungen erforderlich, bevor Sie ein System erstellen konnten, das tatsächlich funktioniert. Der moderne Bereich der textbasierten Sprachen ist so stark von der Syntax beherrscht, dass der Programmierer sie genau richtig machen muss, bevor er kompiliert und ausgeführt wird. Um Code zu schreiben, der funktioniert, muss der Programmierer sein Skill-Level erhöhen, um Systeme zu erstellen, die viel größer als "Hello World" sind.

LabVIEW wird nicht von der Syntax dominiert, sondern vom Datenfluss. Damals war es die Kunst und Schönheit, die Aufgabe zu ergreifen, nach einer Vorlage für Flussdiagramme zu suchen und das Diagramm eines ausgewogenen Informationssystems zu entwickeln. Erst nachdem Sie das überarbeitete Flussdiagramm in der Hand hatten, würden Sie sogar in Betracht ziehen, sich durch die Plackerei des Auslöschens des Codes zu kämpfen. (ja ... Lochkarten)

LabVIEW ist ein Entwicklungssystem, mit dem der Programmierer das vollständige Informationssystem mithilfe von Flussdiagramm-Tools darstellen und auf "Ausführen" klicken kann. LabVIEW "löscht den Code" und kompiliert ihn für Sie. Sie müssen sich nicht durch die Syntax der Textsprache A oder der Sprache B kämpfen.

Mit einem solch leistungsstarken Werkzeug können Neulinge schnell große Arbeitsprogramme erstellen, was ein gewisses Maß an professioneller Handwerkskunst impliziert, da es überhaupt läuft. Wenn das System jedoch nicht elegant arbeitet oder das Quellcodediagramm ein Durcheinander ist, liegt es nicht an LabVIEW.

Die Leute verweisen oft auf "LabVIEW eignet sich nur für die Entwicklung großer Datenerfassungssysteme." Vielleicht sollten diese Leute die Professionalität der Wissenschaftler und Ingenieure in Betracht ziehen, die an der Datenerfassung arbeiten. Wenn sie genug wissen, um die richtigen Kabel für die Sensoren und Aufnehmer zu erhalten, ist es wahrscheinlich eine gute Idee, dass sie auch Experten für die Entwicklung von LabVIEW-Schaltplänen sind.

1
user173849

Ich verwende LabVIEW seit etwa zwei Jahren für die Entwicklung der Automatisierung. Bei sorgfältiger Planung und korrektem Design können wir in LabVIEW eine wartungsfähige und wirklich gut aussehende Anwendung entwickeln. Ich denke, dass dies für alle anderen Sprachen gleich ist. Ich habe in LabVIEW gleichermaßen schlechten Code vor allem von Leuten gesehen, die ihn nur zur Entwicklung einer schnellen und schmutzigen Arbeitsautomatisierung verwenden. Die grafische Programmierung von IMHO ist viel einfacher zu codieren und zu verstehen, wenn dies richtig gemacht wird. Allerdings fühle ich mich bei textbasierter Programmierung "mächtiger". LabVIEW wird in erster Linie für die industrielle Automatisierung vermarktet, hat inhärente Unterstützung für eine Vielzahl von NI-Hardware und Sie können Hardware von Drittanbietern ziemlich schnell dazu bringen. Ich denke, das ist der Grund, warum Sie es nur im Automatisierungsbereich sehen. Außerdem ist es ziemlich teuer und Sie sind mit NI eingesperrt, da Sie Ihren Code nicht öffnen können, wenn Sie die Software nicht von ihnen kaufen!

0
Manoj

Ich habe LabView seit etwa 10 Jahren verwendet. Es ist großartig für wissenschaftliches Programmieren wie Matlab oder Simulink, aber 10-mal besser. Wenn Sie Probleme haben, machen Sie etwas falsch. Es braucht Zeit, um wie jede Sprache zu lernen. Stattdessen .Net zu verwenden - befinden sich diese Leute sogar auf demselben Planeten? Warum sollten Sie sich die Mühe machen, alles von Grund auf neu zu schreiben, wenn Sie sagen, ziehen Sie eine FFT usw. hoch und verwenden Sie einen vollständig geschriebenen Code. .NET eignet sich gut für einfache Programme, aber nicht für die wissenschaftliche Verarbeitung. Ja, Sie können es tun, aber nicht ohne Unmengen von Add-Ons für Grafiken usw. Das Prorgamming in G ist weitaus einfacher als Text für wissenschaftliche Probleme. Sie können natürlich in c programmieren, wenn Sie die DLL verwenden. Nun gibt es Dinge, für die ich LabView nicht verwenden würde - Spracherkennung kann zum Beispiel derzeit etwas unordentlich sein. Um es auf den Punkt zu bringen: Warum programmiert man gerne in veralteter Textform, wenn es eine einfache Alternative gibt? Es ist, als ob die Leute die Dinge kompliziert machen wollen, um ihren Job irgendwie zu rechtfertigen. Vereinfachen Vereinfachen Sie!

0
Tom

I do benutze LabView zu Hause, da es Teil von Lego Mindstorms ist, das mein Sohn liebt. Und ich mag es wirklich, solche Systeme zu komponieren.

In meiner Arbeit (eingebettete Systeme) ist es jedoch generell zu restriktiv. Aber auch hier versuche ich, in der Abstraktion voranzukommen: - Kontroll- und Zustandsverhalten: Modellbasiertes Design (d. H. Rhapsody) - Datenalgorithmen usw. Simulink

Manchmal erfordert ein grafisches Modell mehr Klicks als ein Stück Code. Dazu gehört aber auch die Arbeit, die ein guter Programmierer in den Bereichen Design und Dokumentation leisten muss. nicht nur die Code-Eingabe. Die grafische Notation nimmt viel Zeit in Anspruch und ist im Allgemeinen viel schneller, wenn das Tool für die jeweilige Komplexität leistungsfähig genug ist. Ich gehe davon aus, dass diese Tools in den nächsten Jahren immer beliebter werden, wenn sie älter werden und die Leute sich mit ihnen vertraut machen.

0
Adriaan

Jemand sagte, dass LabView nur im Automatisierungsbereich verklagt wird. Einfach gar nicht schreiben. Es hat Anwendungen in den Bereichen Digitale Signalverarbeitung, Steuersysteme, Kommunikation, Web Based, Mathematics, Bildverarbeitung und so weiter. Es begann als Datenerfassungsmethode und sie haben den Namen Virtual Instrumentation erfunden, aber es ist jetzt weit darüber hinaus gegangen. Es ist eine wissenschaftliche Programmiersprache mit einer unübertroffenen grafischen Benutzeroberfläche. Es ist weit mehr als Simulink und wenn Sie Matlab mögen, dann haben Sie eine Art Matlab-Scripting für diejenigen, die solche Programmierweisen mögen. Es entwickelt sich ständig weiter. Das einzige, was mir schwerfiel, war das Schreiben von Code für den Compact Rio - knifflig, aber viel einfacher als die Alternative. Es ist teuer, aber Sie erhalten ein Qualitätsprodukt. Ich persönlich habe keine Fehler in der normalen Programmierung gefunden. Es ist eine Ingenieursprache, aber jeder kann damit programmieren.

0
Tom