為什麼學習LabVIEW?

2021-01-08 指引文摘

labview——Laboratory Virtual Instrument Engineering Workbench(實驗室虛擬儀器集成環境)應該包含兩種含義:其一,LabVIEW是一種圖形化的程式語言,所以LabVIEW也被稱為:G(graphical)語言;其二,LabVIEW也包含了支持圖形化程式語言進行應用軟體設計開發的開發環境(開發平臺)。

LabVIEW經過二十多年的發展已經充分證明:LabVIEW是極具威力的自動化測試、測量工程設計、開發、分析及仿真試驗的最佳軟體系統。現在已被廣泛應用在汽車、電子、化工、生物及生命科學、航空、航天等等許許多多的領域。

當前,隨著LabVIEW本地化進程的不斷深入,許多大學(大專)都相繼開始設置LabVIEW課程,越來越多的人們(學生)希望更多地了解和深入學習LabVIEW。同時,為什麼要學習LabVIEW?誰應該學習LabVIEW?學習LabVIEW會給我們帶來什麼好處?等等這些問題也會困擾著他們,我想根據幾年來的學習體會談談自己的認識與看法。

既然LabVIEW是一種程式語言,那麼不妨就從程式語言的一些基本概念來開始討論。

語言:

語言是用來表達我們的思想及進行相互交流和溝通的一種手段。

程序語言:

程序語言是用來指揮計算機表達我們的想法(意念)並能夠被計算機執行的程序代碼。

程序語言(直接面對物理層的程序語言)我們稱之為:機器語言。

機器語言(Machine language):

機器語言,也就是機器碼是可被處理器(CPU)加載並執行的由0和1組成的序列。由於硬體處理器的不同,所以機器碼序列也會是不一樣的。可以講,機器碼是處理器(CPU)可識別的唯一語言,並且是執行速度最高的語言。它與計算機的硬體(CPU)有著最為直接的關係。

但是,當人們看到或使用由0和1組成的序列(程序),實在是感到毫無規律、枯燥無味,並且無法理解和記憶。特別是,當計算機處理器的性能不斷提高時(位數增加),機器語言可能被視為世界上最無法讀懂和記憶的語言。試想一下,由64位0和1組成代碼,如何記憶和理解它們。

為了解決這個問題,使更多地人能夠使用計算機,並提高編程效率充分發揮計算機的作用,人們對機器語言進行抽象處理,從而導致了彙編語言的誕生。

彙編語言(Assembly language):

彙編語言,是從機器語言中抽象出來的使用縮寫或助記符進行編程的低級程式語言,並且提供較少的控制指令和數據類型,其中的每一條語句都對應於一條相應的機器指令(代碼)。通過彙編程序開發環境可以將彙編語言翻譯成機器語言,彙編語言同樣與給定的處理器相關。

在早期,包括作業系統在內的許多系統軟體都是用彙編語言編寫的(比如:UNXI作業系統)。使用彙編語言的好處在於可以提高執行速度,並且程式設計師還可以直接訪問系統硬體。但是,彙編語言由於其開發環境和彙編程序都依賴於給定的處理器,並且其指令和數據類型很少,同時程序的可讀性和可移植性都很差無法廣泛使用。於是人們再次對彙編語言進行抽象處理,從而導致了高級語言的誕生。

高級語言:

高級語言,是從低級的機器語言抽象而來的電腦程式語言。高級語言通常使用和英文單詞類似的關鍵詞,這些關鍵詞可以被翻譯成多條機器指令。實際上,比彙編語言高級的計算機語言都是高級語言。

C語言是目前最為廣泛使用的高級語言。它既具有一般高級語言的特性,同時又具備了一些低級語言特性(某些彙編語言的特點)。

當然,高級語言還有很多種比如像我們所熟悉的:面向對象的C++、Java及具有可視化編程環境的VC、VB、Delphi等等。這些高級程式語言的存在和發展說明,除了各自的特點不相同,應用領域不同外,還有編程方式的不斷改進的推動。

比如:從Basic演變到Quick Basic然後又演變到Visual Basic。

從C演變到C++然後又演變到Java(號稱沒有指針和頭文件的C++)及後來的VC。

這些已不在我們討論的範圍內,有興趣者可以看相關的書籍自來了解。

從「機器語言」抽象到「彙編語言」,又從「彙編語言」抽象到「高級語言」。那麼問題是:「高級語言」是否還可以進一步進行抽象出「某種超級程式語言」呢? 從計算機語言的發展規律來看,回答是肯定的。並且,二十年前這種語言就已經出現,那就是:LabVIEW——一種圖形化程式語言。

圖形化程式語言:

LabVIEW發展到今天,我認為:LabVIEW是從「高級語言」中抽象提煉出來的超級程式語言(到目前為止我還沒有從哪本中外LabVIEW書籍中看到這樣的提法或概念)。

這種將「高級語言」傳統的寫代碼的編程方式,抽象變為以「圖形、節點、連線」方式的程式語言,的確具有超級程式語言的特點。

用C和C++編寫的LabVIEW具有比C和C++更明顯得優點。

LabVIEW本身的易學易用、即學即用的特點也充分的證明了這個觀點。

問題在於:圖像化的編程方法是否真的就會比「高級語言」代碼編程方法更高級?我的回答應該是肯定的。下面通過兩個例子來進一步說明:

例1:

小時候,在我們剛剛開始會說話時,大人通常是用「看圖說話」的方式來教我們認識什麼是蘋果?什麼是梨?什麼是香蕉?顯然,利用圖形或圖像的概念使我們很快認識了這些水果。試想如果用文字或拼音來教我們認識這些水果,效果決不會好的。換句話說,圖形或圖像由於簡潔明確,的確要比文字或拼音更適合初學者來認識和區分。事實上,程式語言也是具有相同的規律。

對於學習過某種高級語言的人來講,對複雜的語法規則、指針、內存、類庫等等的掌握根本談不到輕鬆易學。

LabVIEW做到了這一點,用LabVIEW編程根本無需考慮什麼:語法規則、指針、內存、類庫等。LabVIEW這種圖形化語言將許多複雜的事情抽象的極為簡單明了。

例2:

時光倒退回二十多年前,那時人們對計算機的操作、控制還基於稱為DOS的磁碟作業系統(Diskette Operating System),即便是一個很簡單的操作人們也會噼噼啪啪的敲擊一陣鍵盤,對於複雜操作人難免還要認真仔細的查閱DOS手冊。那時的MicroSoft還是一個編寫DOS的小公司。後來,Mac(蘋果電腦)首先實現了計算機的圖形化操作,點擊滑鼠、利用拖拽即可完成對計算機的一些操作控制。LabVIEW大概也是受到了圖形作業系統的啟發(不知是否真的如此),開始了LabVIEW的設計,並在Mac機上完成了LabVIEW1.0版的發布。直到MicroSoft也設計出圖形化作業系統時,LabVIEW才發布了Windows版。這大概是LabVIEW2.0,到LanVIEW3.0發布時它已經全面支持跨平臺使用了。

計算機作業系統的圖形化無疑加快了計算機使用的普及和使用的大眾化(當然也包含硬體發展的推動),使計算機由過去的專供專業人員操作使用,而真正變成了不分年齡、不分專業的大眾工具。其中,真正起核心作用的還是圖形化作業系統得簡潔、方便和易學。

程式語言的圖像化應該與作業系統圖形化一樣,給那些不善於使用代碼編程的人帶來了實現複雜程序設計的機會(我就是其中的一個受益者)。

其實許多學習過LabVIEW的人都回有這樣的體會:圖形化編程的確大大降低了程序設計的複雜度,LabVIEW的確是比那些「高級語言」更好的超級程式語言。

LabVIEW的跨平臺特點,以及在同一個平臺下對FPGA、DSP及嵌入式微處理器的開發提供圖形化編程的支持,難道不可以稱之為:超級程式語言嗎。

LabVIEW是從「高級語言」中利用圖形化的抽象方法抽象出來的超級程式語言。那麼,還能對它繼續進行抽象處理,進一步提高它的簡潔性和方便性嗎?

Express VI

DAQ助手

儀器I/O助手

視覺助手

難道這些不是嗎?

這就是我給出的:為什麼要學習LabVIEW的理由之一。

相關焦點

  • 如何學習LabVIEW
    還記得當初是因為一個項目才與labview結緣的,使用圖像化的編程方式操作外設,通過NI和研華的板卡採集和控制外設的數據,一直對自己很大的吸引力。
  • labview深度學習應用於缺陷檢測
    經過少量樣品訓練得到測試結果,表明深度學習對傳統視覺算法比較棘手的缺陷檢測方面labview廣泛應用於自動化測控領域,如果你需要快速利用編程來實現數據採集,數據分析,儀表控制,自動化報表,plc通訊,機械手控制,圖像採集,
  • labview和C ,那個更好入門
    現在用來編寫C/S端程序的程式語言,比較容易入門的估計就是labview和C#了。先來說說labview吧。labview在工控自動化領域應用非常廣泛,而且在物理教學方面很有優勢。如果你是搞電氣自動化,嵌入式,那麼用labview會事半功倍。labview的口號是軟體即是儀器。它的優勢是入門簡單,有編程功底的兩三天就可以入門。就算沒有編程功底的,兩周也入門了。不過,入門雖然容易,但是想要真正使用它編寫出一個健壯的商業軟體卻是不那麼容易的事。
  • labview串口被動接收數據
    本文引用地址:http://www.eepw.com.cn/article/201701/337037.htm二、labview串口被動接收數據這裡labview被動接收傳感器發送來的數據,即在開發板獲取傳感器的數據來進行計算控制時,labview用來數據的採集。
  • 基於labview的示波器控制設計
    計算機控制示波器步驟實例(以LAN口控制為例,開發軟體:labview)下面針對計算機如何編程控制示波器的步驟進行詳細的說明。3.1 開發軟體的選取市場上最流行的分析和開發軟體很多,有VC/VC++、VB/VBA、Matlab、Labview、LabWindow CVI等開發軟體,根據個人的愛好和對某個軟體的熟悉程度來選用。
  • labview使用DSN與資料庫的連接包括access,mysql
    labview與資料庫的連接:labview與上面兩種資料庫的連接方法基本相同,下面交叉講述這兩種資料庫與labview的連接。
  • 對於LABVIEW的學習的幾點建議
    如果不行,到NI網站上去查  地址: http://zone.ni.com/devzone/labviewzone.nsf/OpenPage?
  • 如何安裝LabVIEW?
    LabVIEW安裝步驟1打開NI官網的下載地址,選擇你要安裝的版本(這裡以32位的英文版LabVIEW2014為例)直接下載址:http://download.ni.com/evaluation/labview/ekit/other/downloader/2014LV-WinEng.exe
  • labview串口調試
    1.labview對串口進行調試時,首先需要安裝visa驅動,可在NI的官方網站上下載,不過速度好像不是很快。 2.最簡模式下進行串口程序接收。如圖:然後在最右邊接一個字符串接受區就可以接受到串口發送的數據了。
  • LabVIEW 調用 C/C++ Dll 詳解
    這樣你可以比較集中精力的專注於數據處理了,就不用學習麻煩的Win32的GUI編程, 也不用關注和你自己搞的採集板之間的通信了。對於每一個測控行業的程序來說,基本上都是:初始化-->數據採集-->數據處理-->數據顯示-->數據保存-->結束  的一個過程。
  • LabVIEW視頻教程
    導讀:labview視頻教程labview也是一種程式語言,可能很多人並沒有聽說過它。LabVIEW是由美國國家儀器公司所開發的圖形化程序編譯平臺,發明者為傑夫·考度斯基,程序最初於1986年在蘋果電腦上發表。目前可支持Windows,UNIX,Linux,Mac OS等作業系統。
  • labview實現PC與單片機之間的串口通信
    使用Proteus進行單片機仿真,仿真硬體連接,串口通信部分使用keil與labview
  • labview介紹和書籍推薦
    labview包含兩部分:1是前面板,2是圖形化原始碼  LabVIEW擁有一整套工具用於數據採集、分析、顯示和存儲數據,以及解決用戶編寫代碼中可能出現的問題。LabVIEW提供眾多輸入控制項和顯示控制項用於創建用戶界面,即前面板。
  • LabVIEW使用筆記
    如果要想傳輸數據的話,還可以用flat sequence 結構5.用write寫數據的時候,輸入的數據不能是數值型,應先用formate into string轉化為字符串,如果想寫成電子表格形式,可以將退格符,回車符等和輸入數據一起,按一定格式用bundle或build array綁在一起輸入6.labview measurement數據文件類型為
  • LabVIEW這麼「反人類」的東西,到底哪些人在用?月薪2萬+的人,笑笑...
    很多人在工作和學習的過程中,會花大量的時間在工具的學習使用上,而忘了應該要把時間花在自己的任務上,出現了本末倒置的情況。 所以,大家應該花更多時間去高效的完成產品質量測試,而不是將過多的世間浪費在程序編寫上。
  • tensorflow深度學習SSD模型識別物體
    安裝labview2019 vision,自帶深度學習推理工具,支持tensorflow模型。配置好python下tensorflow環境配置好object_detection API下載SSD模型文件調用labview深度學習推理函數完成識別
  • 利用Labview開發平臺和PLC通信協議實現換熱器採集監控系統的設計
    2 系統概述 美國NI公司的labview主要是一款基於圖形化程式語言的開發工具,由於它採用的是圖形化程式語言,與傳統的Visual C++、Visual Basic等編程工具不同,labview更易於開發維護。對於硬體部分主要採用西門子PLC,西門子PLC的優點在於支持多種通信協議,系統穩定,性能質量好,市場佔有率最高。
  • LABVIEW+Arduino
    據網友講,Arduino有可能會威脅到labview的硬體,尤其是是老師們用labview教授Arduino硬體的時候。但是這個工具包可以直接燒錄程序到Arduino,並且程序塊更加集成、整潔,支持的硬體種類更多,提供的庫函數也超級豐富。 由於前兩者目前已經停止更新,建議使用時下載LINX。
  • 關於labview中的VI server
    在labview中 這幾種東西是聯繫在一起的: VI server,引用,屬性節點,調用節點。而VIserver引用一般常用的包括應用程式,VI和控制項。這些在程序框圖面板上主要存在於編程-應用程式控制中。
  • 還在為labview保存參數而苦惱嗎?看看一個vi搞定全部
    2020labview懶人參數存取-升級版問題:項目編程過程中,參數存取是無論如何也沒法避免的一個環節,因為程序設置完成後,下次再打開時如果要執行上次設置的參數,就需要加載上次保存的參數文件。核心函數使用了openg封裝的vi屬性-方法-獲取控制項值,以及設置控制項值,雖然是傻瓜式的,但是有如下bug:以ini存取速度慢(特別在涉及到數據量大時),同名控制項,加載參數是會出現錯誤,原因是labview