LabVIEW Pro 專業論壇-技術討論區-LabVIEW 2017 開箱文
 
     
 
 
 
LabVIEW 討論區基礎教學每月專題分享技術問題精選online Test
技術討論區 程式分享區 教育訓練與認證區 閒話家常區 工作機會討論區 回報區 ✦LabVIEW NXG 特區✦ 高手專訪系列 2017 LabVIEW 至尊爭霸賽
 熱門關鍵字 
    [LabVIEW TOP 資源排行榜]    取得 NI 協助    量測概念充電站    3小時內學會 LabVIEW
 您的位置:首頁 > 技術討論區 > LabVIEW 2017 開箱文
  技術討論區   板主:meiae
 之1(4篇)
LabVIEW 2017 開箱文 
 
joannachen
暱稱:Jo
經驗值:4223
等級:總舵主
發文:191
回文:943
版本:請選擇
闖關狀態:
迷霧之森
前往地圖:
 
字級設定

(作者:吳志二)

 

LabVIEW 2017 的 Software platform bundle。自從 LabVIEW 2015 開始 NI 就取消了DVD bundle 改成了像這樣的隨身碟。還蠻有質感的。但是缺點就是不再發超級方便的試用版光碟(對小編來講試用版光碟是急救包)

[+]放大圖片
 

將隨身碟插入之後就跳出了 LabVIEW 2017 安裝畫面。如果沒有自動跳出來的話,請自己點選 autorun。

[+]放大圖片
 

這次的 LabVIEW 2017 software bundle 絕對是物超所值。一種價錢、兩種享受。同時可以擁有 LabVIEW 2017 跟次世代的 LabVIEW NXG。當然是毫不猶豫的選擇"Install both LabVIEW 2017 & LabVIEW NXG 1.0"

[+]放大圖片
 

對於一般的使用者,為了避免後續 driver 支援的問題。一般我們會建議安裝 LabVIEW 2017 (32-bit)就好,LabVIEW NXG 則沒得選。

[+]放大圖片
 

安裝環境提示在安裝 LabVIEW NXG 的時候會需要一些互動,因此不能按下去人就跑去休息了。

[+]放大圖片
 

這次 LabVIEW 2017 的主題配色是黃底黑字,一整個香蕉....不,是大黃蜂的概念。

[+]放大圖片
 

[+]放大圖片
 

依序安裝完 LabVIEW 2017 跟 NI Package Manager 之後,發現 LabVIEW NXG 竟然在 VIPM 裡面。越來越有 App store 的感覺了。(未來搞不好連 software bundle 隨身碟都免了,直接從 App store 登入帳號密碼後直接下載)

[+]放大圖片
 

NI 其實先前就有公佈 LabVIEW NXG 對於相關硬體支援,是有計劃在進行的。我印象中大概 3 - 5 年內就會讓 LabVIEW NXG 支援全系列的 NI 產品。舊有的 LabVIEW 開發環境產品線,未來的五年內還是會同步發行。但是 NI 的研發重心就是會逐步向 LabVIEW NXG 移動。

[+]放大圖片

[+]放大圖片
 

大家對這個畫面裡的內容一定不陌生,基本上就是重新拉皮的概念。但是確實現代化了很多,利用簡單的線條跟配色呈現出簡約的風格。

[+]放大圖片
 

終於開始安裝了,不過我相信一切的等待會是值得的。

[+]放大圖片
 

其實 NXG 安裝的過程並沒有想像中的久,我猜有兩個原因:1. 改進了沒有效率的 function implement。2. 就是支援的功能還不夠多,所以容量還不大。(噗~)

[+]放大圖片
 

終於成功了!

[+]放大圖片
 

結束之後又彈回 LabVIEW 2017 的安裝環境。一個 back from the future 的概念。

[+]放大圖片
 

所有 windows 上面的軟體安裝結束後都會有的動作(re-boot),當然LabVIEW 也不例外。

[+]放大圖片
 

License manager 一整個畫面大升級, UI Layout 看起來相當的專業,分類也較舊版本清楚很多。

[+]放大圖片
 

[+]放大圖片
 

舊版的 License manager

[+]放大圖片
 

新版的License manager


接下來就讓我們一起來看看 LabVIEW 2017 跟先前版本有什麼不同吧。

[+]放大圖片
 

打開之後就會發現在 front panel 的部分,取消了累贅的線條設計,改走簡單時尚風。

[+]放大圖片
 

舊版本 LabVIEW 的 control menu

[+]放大圖片
 

新版本 LabVIEW 的 control menu

跟著小編一起切換到 Block diagram逐一查看跟上一代有什麼不同。第一個發現的就是 Array function 裡面多了幾個新項目:

1. Sort 2D array
2. Shuffle 1D array
3. Shuffle 2D array
4. Increment array element
5. Decrement array element

[+]放大圖片
 

其中 Sort 2D array 的部分是最讓小編覺得實用的功能。以往我們要排序一個 2D array 我們必須要先取出其中的行/列(1D array)。然後將這個 1D array 排序之後,去跟排序之前相比。找到 index 移動的規則後,再利用迴圈搜尋原始 2D array 將裡面的 sub-array (1D) 取出,重新 build 成新的 2D array。這個功能裡有點像是 Excel 裡面的自動篩選(排序)功能一樣,如果我們從 column 的方向進行排列,那麼同一個 row 的資料也必須跟著一起移動(這一點是最麻煩的部分)。事實上,這個 sort 2D array 不只能接收 numeric array 還可以接收 string array跟 Boolean array,這點就讓大家省去了很多疊磚塊的時間。

[+]放大圖片
 

[+]放大圖片
 

[+]放大圖片
 

另外還有一個相當實用的功能就是 Increment/decrement array element。這個指令可以用來指定 1D array 裡面的某個 element 自己+1。這個功能為什麼實用呢?因為它可以拿來做成 Counter Array。小編舉兩個例子:

1. 各位應該有使用 Functional global variable, FGV 來製作多組計時器(Timer) 來控制程式時間的經驗吧?如果你是用單一數值來製作的話,這個 FGV 就不能在其他的地方使用了,因為會發生 race condition。但是如果是做成 Array 的話,就會發生很多 index array -> increment -> replace array element。根據 LabVIEW default "Pass by value"的特性,這樣設計也會讓程式效能變差,尤其在 Real-time target 上面效能更是一個大問題。而新的 Increment/decrement array element 裡面則是採用 in place element structure 設計,直接修改記憶體中 array 的數值,省略了資料重複copy 所浪費的 CPU 資源。

2. Counter array 還有一個好用的地方就是在 Automatic test equipment, ATE 的系統開發上面,經常會有分 BIN 的計數器,這些計數器分別記錄了 OK, NG, BIN1, BIN2, BIN3....等,目前處理的數量。

[+]放大圖片
 

另外小編在偷看 Increment array element 的 implement 方式的時候,無意間發現有這個 NI 正在實驗性的東西叫做:Type specialization Structure,看起來是個會依照輸入的資料型態去變化要執行的 case 內容。上面註明了目前還在實驗階段,所以並沒有正式公開。不過感覺拿來應付資料型態的多形(Data polymorphism)應該會相當好用。

[+]放大圖片
 


接下來我們一起來瞧瞧 comparison 函式庫。裡面多了一個超級好用的東西叫做 Is value changed。這個功能是用來檢查輸入的值有沒有被改變?基本上跟一個東西 Signal > Point by point > Other function PtByPt > Boolean crossing 功能有點類似,常被用來檢查機台的 Digital input 有沒有被改變?不過這個 Function 強大多了,因為他不只限於 Boolean,還可以用在 Numeric, String 甚至 Enum 等各種不同的 Data Types。

[+]放大圖片
 
[+]放大圖片

[+]放大圖片
 
[+]放大圖片
 


在 conversion palette 部分則是出現了本來沒有的 Number To Enum 功能,不過這個部分小編實在想不出來可以做什麼用?因為本來你把 Number 直接接到 Enum 本來就是可以用的,只是會出現小紅點(coercion dot),表示兩個 Data type 不相同,但還是可以運作。所以這一點我還想不透,比較不一樣的是他有點像是 type cast 一樣除了數值可以輸入之外,還可以輸入不同的 enum type。這點是要讓人動態更換 enum type 嗎?實在是想不太出來。

[+]放大圖片
 


關於新版 VIPM 的部分,整個 layout 都做了大幅度的改變。傳統的 VIPM沒有做分類,看起來比較像是個 open source freeware。新版的 VPIM 不但有做分類,而且連 LabVIEW NXG 本身都可以直接透過 VIPM 進行安裝。真是相當有 App store 的架式。

[+]放大圖片
 

傳統的 VIPM 畫面

[+]放大圖片
 

新版 LabVIEW 2017 的 VIPM 畫面

在軟體模組新增/移除的部分也更像架上商品一般。輕鬆的按一個鍵就可以安裝/卸載啦。

[+]放大圖片
 
[+]放大圖片
 


在 Data communication palette 裡面,則是多出了 RTI DDS toolkit。打開來裡面就是一個 VIPM 的連接,按下去就可以開始安裝。這個 RTI DDS toolkit 也是今年 NI LabVIEW 2017 強力主打的兩個 Toolkit 之一。

[+]放大圖片
 

RTI 是發明這個技術的公司名稱 Real-time Innovations 公司。這個 DDS 全名叫做 Data Distribution Service, DDS,主要是拿來實現工業物聯網的一個重要工具。

[+]放大圖片
 

他有別與一般的通訊架構(經常是 Master-Slave 或者 Server-client 架構),採用的是 publish-subscribe 架構,專為Machine-to-Machine, M2M 通訊而設計。有別於傳統 TCP Server-client 架構,採用 DDS 通訊架構並不需要設定 IP address 及 listen port,也不需要處理繁複的 server-client 之間的封包交握(hand-shakes)。只要 A 節點事先註冊一個標記"temp",當其他節點(比如: B節點)將 temp 這個值 publish 出去之後,資訊就會直接從該節點(比如: B節點)直接傳送到 A節點去。這樣不但省去了處理多重 multi-server 加上 multi-client 之間的問題,還同時避免掉 server crash 掉引發的系統崩壞。

[+]放大圖片
 

最後關於 DDS 通訊架構還有一個最厲害的壓軸絕技,就是可以跟 Time sensitive network, TSN 結合,這樣就可以透過設定的方式保證兩個節點之間的訊息,一定可以在要求的時間內完成。有沒有真的很厲害?!各位看到這邊有沒有覺得 LabVIEW & NI RIO products 未來將在工業物聯網應用上占有一席之地。

[+]放大圖片
 

看到這邊手就開始癢了,趕快來去下載吧!

[+]放大圖片
 


今年 LabVIEW 2017 還有一個重頭戲那就是 Analytics and Machine Learning Toolkit, AML。這個 Toolkit 目前是沒有辦法在 VIPM 裡面下載的。不過沒關係,我們上 ni.com 搜尋一下就找到了。下載下來後發現其實容量並沒有很大,大約只有 180MB,不過小編認為應該 demo 用的 example code & raw data 應該占了大部分的空間。

[+]放大圖片
 

趕快給他安裝下去,安裝時選擇試用版,下一步按到底即可。

[+]放大圖片
 

安裝完成後馬上回到 block diagram 裡面一看,多出了 AML function palette,
裡面除了 Data Read & Write以外大致上分了四種功能:
1. Feature manipulation:這是拿來將大數據裡面的特徵給抓出來的工具。
2. Anomaly detection:這是透過數據分析並建立 baseline model,一旦發現數據偏離 baseline 就發出異常警告。
3. Clustering:分群
4. Classification:這是透過大數據建立模型,再拿來進行分類(比如:Pass/Fail)

[+]放大圖片

學習怎麼使用 AML 的方法除了上網找一些 slide 認識一下 Machine learning 的原理。最好的方式就是透過 example code 來了解 Machine learning 的機制。

[+]放大圖片
 

上述提到的四大類 algorithm,在 NI Example Finder 裡面都有。大致上每種 example 都分成兩個 VI。一個是用來學習(建立 model用的)後方會備註(Training)。另外一種是利用已經建立好的 model 檔案,來進行預測、判定或者分類...等工作。事實上,在 AML toolkit 的 API 底下,Training 出來的 model 就只是一條特別顏色的線而已,所以請大家不用害怕。

[+]放大圖片
 


根據 NI 官方資訊指出,今年的重頭戲除了 DDS跟 Machine learning之外,最後一個就是 Cloud Toolkit for AWS。不知道各位有沒有注意到,要做到工業物聯網,最需要的三件事情:

1. 節點必須要有智慧(Machine learning)
2. 節點之間必須要能夠做最有效率的M2M通訊(Data distribution service)
3. 必須要能夠支持雲端(Cloud service)

然而這三件事情都在 LabVIEW 2017 上面實現了。如此一來將 LabVIEW 的價值從 Desktop 開發環境提升至 Internet of things 層次。廢話不多說,先從 VIPM 下載 NI Cloud Toolkits for AWS 來看一下。

[+]放大圖片
 

[+]放大圖片
 

在開始使用之前,要先跟大家用最簡單的方式介紹什麼是雲(Cloud)?大家可以把雲想像成一個遠端的資料庫。

[+]放大圖片
 

所以要跟雲互動的機方式就是:
1. 建立一個儲存桶(bucket)
2. 把檔案或資料傳送上去(object)
3. 查看檔案是否在上面?
4. 從儲存桶下載檔案或資料
5. 刪除在儲存桶內的資料

[+]放大圖片
 

這樣簡單介紹完之後,我們來看一下 LabVIEW Cloud toolkits 的 Amazon S3 部分。是不是就很清楚了呢?上方的藍色的水桶圖示VIs,就是拿來新增、移除儲存桶用的。下方橘色方塊的 VIs 就是拿來上傳、下載儲存桶內的物件(檔案、資料)。

[+]放大圖片
 

提示:使用這些功能之前,必須先至 Amazon 註冊一組帳號密碼,要用來登入雲端伺服器用的。

[+]放大圖片
 

[+]放大圖片
 

列出目前Amazon S3雲端所有儲存桶的範例程式


關於 SNS 的部分,全名是 Simple Notification Service,是用來發布訊息給所有的訂閱者(subscriber)。而這些訊息是跨平台的,其中包含:通話、簡訊、網頁、Messanger...等各式各樣的管道。

[+]放大圖片
 

[+]放大圖片
 

在物聯網的應用之中,經常會需要發布重要訊息給相關人員。這類訊息可能是一個緊急的事件,需要權責人員前來處理,或提醒工程師需要盡快進行設備的維護。


Amazon Simple queue service, SQS 是用來傳遞網路應用程式(Web applications)之間的訊息。Amazon 的 SQS 服務提供了 256位元的 AES 加密,確保網路應用程式之間的通訊是安全的(不容易被監聽或者破解)。為什麼需要這樣的服務呢?相信大家都很熟悉 LabVIEW 的 design pattern:Queue Message Handler, QMH,進階一點的 QMH 則會使用 User-event 去傳遞 QMH 之間的訊息。但是想像一下今天如果有好幾個 QMH 分別坐落在不同的網路節點上面,而非在同一台電腦上面,那麼 User-event 就發揮不了作用了。這時候各節點之間的程式物件 QMH,就可以透過 SQS 去傳遞指令+資料(Command + payload),而在 LabVIEW 裡面這樣的組合經常是 Enum + Variant。

[+]放大圖片
 


關於IoT 類別的部分,先來了解一下 AWS IoT 是什麼?從 Amazon 官方網站的訊息可以得知 AWS IoT 主要的功能是提供物聯網的物(Things)跟雲(Clouds)之間的雙向通訊,進一步可以利用雲端上的功能進行數據呈現(Visualization)、資料分析(Data mining)跟預測(Prediction)...等功能。

[+]放大圖片
 

[+]放大圖片
 

關於 Cloud 相關訊息及應用其實是個非常大的課題,光在短短一篇開箱文當中也很難描述清楚。剩下來的部分就等各位看完這篇開箱文之後,跟小編一起打開 LabVIEW 2017來發掘應用吧!

[+]放大圖片
 


結語:LabVIEW 經歷了30個年頭的發展,小編覺得可以分成四大演化階段

1. 虛擬儀控軟體:此時的 LabVIEW 大家認知比較像是個儀控應用軟體。
2. 圖形化程式語言(PC only):初期的 LabVIEW 還常聽到它到底算不算是一個程式語言而爭辯?後期導入 Object orientation programming, OOP 之後,大家逐漸開始接受它是一個程式語言的事實。
3. 跨平台程式語言(PC, Real-time, FPGA):此階段的 LabVIEW 不但 wrap 了Desktop 的 C++,更進步到 wrap 到 embedded C 跟 VHDL,越吃越多,逐漸變成一隻巨獸。
4. 物聯網程式語言(IoT):目前的 LabVIEW 2017 即將邁入物聯網程式語言階段,由於有先前的量測、控制累積的生態圈,使得 LabVIEW 較其他平台更容易與工業物聯網接軌。

如果你是 LabVIEW 的愛好者,那麼這個時間剛號是第三代轉換成第四代的開始。每一個世代轉換的過程當中,經常是充滿了機會。如果搶先學會使用這些重點工具的話,應該會在接下來的幾年裡無往不利。

如果你不是 LabVIEW 的使用者,建議可以直接從 LabVIEW NXG開始,它的介面變得更簡單、更容易學了。雖然 LabVIEW NXG 還沒全面支援 NI 的產品,但是 NI 應該會在 3 - 5 年內讓 LabVIEW 支援所有線上 hardware,而 3 - 5 年差不多可以讓一個 LabVIEW 幼幼班的工程師變成高手了。

  文章人氣: 1801 讚:7 文章日期:2017/09/18 10:57
marco_yang


創始會員 2013 LabVIEW 至尊爭霸賽參賽者   
暱稱:Marco
經驗值:3836
等級:總舵主
發文:29
回文:487
版本:請選擇
闖關狀態:
英雄殿
前往地圖:
1樓
字級設定

謝謝志二的分享,我用2017也快兩個月,都還沒發現你說的這些新功能呢.

    讚:1 文章日期:2017/09/17 11:24
caeru

暱稱:星羽
經驗值:6386
等級:總舵主
發文:21
回文:496
版本:請選擇
闖關狀態:
英雄殿
前往地圖:
2樓
字級設定

引言自 joannachen:

另外小編在偷看 Increment array element 的 implement 方式的時候,無意間發現有這個 NI 正在實驗性的東西叫做:Type specialization Structure,看起來是個會依照輸入的資料型態去變化要執行的 case 內容。上面註明了目前還在實驗階段,所以並沒有正式公開。不過感覺拿來應付資料型態的多形(Data polymorphism)應該會相當好用。

[+]放大圖片
 


 

先推一下開箱文,雖然已經在用2017了XD

除了文章中提到的Type specialization Structure之外,在寫VI Scripting時我還額外發現一些有趣的隱藏版Structure或Structure相關Node。

  • SynchronousDataFlowNode: 似乎是依附在Structure的一種特殊設定同步化的Node,但我找不到相關資料跟如何產生
  • Closure Structure: 隱藏的Structure,可透過VI Scripting產生出來,但是有很大機會導致LabVIEW Crash...所以實際拿來**嘛不知道XD
  • Target Structure: 隱藏的Structure,可透過VI Scripting產生出來,他的context help上寫contains code deployed to the target described in the subdiagram label,但是實際操作一樣是沒被部屬public property所以沒得測試
  • Type specialization Structure: 非常有趣,可透過VI Scripting產生出來,但是他的Class是Type Enable Structure,產生出來之後Lable及Help file都是被指向到Diagram Disable Structure,但是Context Help指出它實際的名稱是Type specialization Structure。此外依舊是個非公開Structure,細節應該也跟至二推測地針對多樣的處理有關
  • Race Structure: 同Closure Structure,一生出來我LabVIEW就炸了...

[+]放大圖片
 

希望之後的版本或是NXG也可以繼續延伸這些有趣的設計~

    讚:0 文章日期:2017/09/18 10:31
seaderly

暱稱:Tyrone
經驗值:89
等級:技工
發文:0
回文:1
版本:LabVIEW 2013
闖關狀態:
惡魔沼澤
前往地圖:
3樓
字級設定

那怎麼樣才能拿到這個試用隨身碟呢?

    讚:0 文章日期:2017/10/07 19:49
harry0725

暱稱:Harry Kuo
經驗值:663
等級:高手
發文:3
回文:23
版本:LabVIEW 2015
闖關狀態:
飄渺嶺
前往地圖:
4樓
字級設定

大推~~~~

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    讚:0 文章日期:2017/10/11 13:51
 之1(4篇)
 
 
   會員中心 
帳號:
     
密碼:
     
  以後自動登入
 
註冊
   待回覆文章 
1. 使用NI9234和DAQ6001同步抓資料
2. OPC遠端連線
3. PCI7334 與PCI7344 的差異
4. labview控制arduinoyun...
 
   Top 5 熱門討論 
1. Python有什麼魅力, 讓LabVIE也要跟他結合? DLL, .Net 不夠用嗎?
2. OPC遠端連線
3. 使用NI9234和DAQ6001同步抓資料
4. 請問有辦法讓輸入的字串限制在多少字以內嗎?
5. 輸出次方的顯示
 
 
 
LabVIEW討論區 站長信箱 關於我們 站內聲明
國家儀器股份有限公司贊助;Sponsored by NI.
© 2010 National Instruments, Taiwan. All rights reserved. design by begonia