Domanda

Sto imparando ad usare LabVIEW come parte del mio progetto onori, e mi chiedevo quali benefici ha il linguaggio di programmazione grafico rispetto a quello testuale?

È stato utile?

Soluzione

Tutto riguarda i driver dell'apparecchiatura e le capacità dell'utente. NI (Labview) ha un set ben supportato di driver di apparecchiature di laboratorio che possono essere facilmente interfacciati. Un operatore di test (non uno sviluppatore) ha bisogno di una GUI con un grande pulsante Pass / Fail verde / rosso. Ho implementato un'automazione complicata tramite Python in Cygwin. Uno sviluppatore di Labview è stato in grado di invocare il sistema cygwin / python e di estrarre i dati dai file di registro. Quindi puoi fare entrambe le cose. Il sistema Python è portatile, mantenibile, estensibile, utilizzabile e, soprattutto, gratuito.

Altri suggerimenti

Per me, il vantaggio di LabVIEW non è in termini grafici vs. testuali.

È flusso di dati vs. imperativo.

Programmazione del flusso di dati si presta alla concorrenza, perché la tua esecuzione è modellata come scatole nere che si eseguono quando i loro ingressi sono validi, i cui ingressi / uscite sono collegati insieme. Questo al contrario dello stato implicito con un elenco di istruzioni su come modificarlo. (Parafrasando vagamente 'Wikipedia, l'articolo linkato sopra è migliore.)

Ogni scatola nera può essere eseguita su un core / processore / nodo separato, il che ti dà, in effetti, una libera concorrenza se organizzi il tuo programma nel modo del flusso di dati.

Sfortunatamente (e questo è un aspetto negativo paralizzante della programmazione del flusso di dati in generale) il modo migliore per visualizzare e modificare i programmi di flusso di dati è grafico, non testuale. Ciò rende molto difficile l'utilizzo di strumenti come il controllo delle revisioni e i generatori di codice.

La domanda è: i pro del flusso di dati superano i contro, per te e per il tuo progetto?

Uno dei principali vantaggi della programmazione grafica con LabVIEW è che il codice sorgente è molto simile agli schemi circuitali, quindi è un linguaggio molto semplice da imparare per gli ingegneri elettrici / elettronici. Questo è uno dei motivi per cui LabVIEW è diventato così popolare nei campi di acquisizione e automazione dei dati, dove gli EE sono abbondanti.

Un altro vantaggio che ho riscontrato è stata la pura velocità di sviluppo. Puoi assemblare le tue GUI da una tavolozza di controlli disponibili sul pannello frontale, molto simile a come lo fai in Visual Studio. Il codice sorgente è scritto in modo simile, con molti componenti predefiniti che puoi inserire dai menu e collegarli insieme.

Un terzo vantaggio è la compatibilità con l'hardware. L'attività principale di National Instruments è l'hardware per l'acquisizione dei dati e fanno di tutto per assicurarsi che tutti i loro prodotti possano comunicare con il software LabVIEW immediatamente. Molti altri fornitori di hardware nel settore dell'acquisizione dati e del controllo dell'automazione stanno facendo lo stesso.

Ho già usato labview per il calcolo dei parametri per mettere a punto una macchina nMRI. Esistono perché in teoria è più facile per qualcuno con poca esperienza nel linguaggio di programmazione creare un programma. Il flusso di controllo e le strutture decisionali possono essere organizzati graficamente e possono digitare le loro formule dove vogliono.

Per professori e assistenti di laboratorio ... utile. Per i veri sviluppatori di software ... sarebbe più facile scrivere in un'altra lingua.

Ho usato LabView in passato e per l'acquisizione dei dati, la strumentazione virtuale, ecc. non c'è niente di meglio. L'ultima volta che l'ho usato è stato 10 anni fa, e nulla di ciò che ho visto da allora ha eguagliato quello che era a metà degli anni '90.

Alcuni vantaggi di LabVIEW a mio avviso sono:

  • I componenti dell'interfaccia utente incorporati come pulsanti, grafici ecc. letteralmente non richiedono alcuna programmazione; basta posizionarli sul pannello frontale e i terminali dei dati compaiono sullo schema a blocchi.

  • Esiste una vasta libreria di driver per hardware di acquisizione dati e strumenti di test. Se il tuo compito è fondamentalmente quello di ottenere dati da e verso questi e mettere un'interfaccia utente su di esso, puoi raggiungerlo con quasi nessuna programmazione.

  • L'esecuzione parallela di più attività viene gestita automaticamente: posiziona due anelli indipendenti sul diagramma e verranno eseguiti contemporaneamente. Questo è spesso un requisito nelle applicazioni di acquisizione e controllo dei dati.

Molte persone, compresi gli "sviluppatori di software reali", ritengono che il paradigma grafico si adatti al modo in cui pensano e visualizzano il loro software meglio di quello testuale. Ci sono indubbiamente cose per cui le lingue di testo sono migliori di LabVIEW (trattate in un'altra discussione su questo sito) ma dove LabVIEW è adatto è molto bravo a portare a termine il lavoro.

Per me dipende da cosa ti senti a tuo agio, se ti senti a tuo agio nelle lingue testuali, probabilmente scoprirai che Labview introduce solo un'altra curva di apprendimento. A meno che tu non abbia un obiettivo specifico per imparare e usare Labview, non vedo alcun punto per il tuo progetto.

D'altra parte, se non ti senti particolarmente a tuo agio nei linguaggi testuali, tendo ad avere l'opinione che Labview sia più facile da imparare e apprendere, in particolare per i non ingegneri del software.

Uso linguaggi testuali per ingegneria di test, Labview e TestStand abbastanza spesso e per me si tratta più di chi userà il mio software che di me. Alcune aziende hanno diverse persone formate da Labview e altre preferiscono scrivere in lingue testuali. La formazione per un'altra lingua può essere molto costosa su scala aziendale e cambia i requisiti di assunzione per le posizioni all'interno di un'azienda, quindi alcune aziende sono praticamente "bloccate" in un paradigma o nell'altro. Direi che la tua scommessa migliore se hai intenzione di lavorare nel settore è quella di essere esperto in entrambi, in questo modo sei flessibile. Se questo è il caso e hai anche il tempo di imparare, direi di lavorare in quello con cui ti senti meno a tuo agio e di ampliare la tua ampiezza di conoscenze, questo è ciò che la scuola è giusta?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top