LabVIEW 好文分享(英文) – An End to Brainless LabVIEW Programming

由DNatt, NI神人介紹,覺得可以安排時間看看。每一個章節都是不錯且重要的觀念。

An End to Brainless LabVIEW Programming

參考資料
Quick Drop Enthusiasts
An End to Brainless LabVIEW Programming網頁
An End to Brainless LabVIEW Programming (2020 refresh).pptx ‏6325 KB

LabVIEW開發 – Epson Robot機械手臂控制

Epson 原廠操作說明書
Epson RC+ 7.0 API手冊
適用於 Epson 的 Robotics 工具組(付費)

前言
我第一次接觸用Epson 6軸機械手臂約莫是2008年左右吧,當時自己的技術不夠純熟,很多東西都是遇到問題才開始找答案,但是那時候的中文資料並不多,加上台灣Epson也才剛導入這個東西,所以花了超久時間才讓當時的專案上線使用。

實作步驟
1. 安裝RC+7
2. 使用LabVIEW .NET Constructor載入Spel物件
3. 參考Epson RC+ 7.0 API手冊,操作所提供的方法及屬性

使用.NET Constructor呼叫Spel物件
初始化
連結機械手臂,並重置
取消連結

參考資料
Epson 原廠操作說明書
Epson RC+ 7.0 API手冊
[科大]機器人學

LabVIEW 好物 – Icon in Windows system tray with LabVIEW

Icon in Windows system tray with LabVIEW的NI網頁
LabVIEW原生無法製作tray icon. 但是可以借由這個library來操作進而達成這樣的需求。
他是封裝.NET NotifyIcon Class後,讓LabVIEW可以使用Tray Icon各式各樣的功能,作者已經有寫好兩個展示程式,可以參考,只是如果你不是用LabVIEW2009 64bit的版本,你要重新指向有圖示檔的路徑。

另外一個要注意的事情是,下載下來的檔案,作者也建議放置在user.lib下使用,同樣我也建議是這樣做,檔案位置的一致性越好,日後找臭蟲的時間可以越短。

內附兩個展示範例
執行第二個範例

參考資料
Organization of LabVIEW
.NET NotifyIcon Class

研華的xNavi (DAQ Driver)

之前剛好有在群組上有新手工程師有聊到說,為什麼資深工程師都不喜歡使用研華的東西,是東西不穩定嗎?作為一個使用研華產超過20年的使用我就直接回應說,因為驅動程式的向前相容性不佳,之前的經驗是只要研華有版本昇級,我的程式就會有很高的機率出現問題。

但是東西不改,就沒有變好的一天。所以基於這樣的想法,有新的東西我都還是會安排時間好好的給他玩一下。然後今天試了研華最近這半年改版的xNave後,只能說他們真的是賣硬體的廠商,軟體細節就只是可以用。另外就我的面向來看,也只有在一開始的安裝方式有進行修正,與DAQNavi 4.x.x的內容看起來沒有什麼不同。不過這樣的改法也不算差,至少日後在進行部署時,可以少了選driver的時間。可以看下面的附圖,在封裝及部署過程中的畫面。

另外我也來說說之前遇到使用研華DAQ driver問題的案例,從最近的時間點說起好了。

案例一
2021年,在相同程式,相同的DLL,在Window10上,程式沒有錯誤碼,但是DAQ卡會沒有動作。
但是在Windows 7上執行卻可以正常工作。
當下的解決方式,昇級windows 10這台電腦的DAQ driver之後,問題解決。

案例
約在2013~2015左右,研華DAQNavi從3.x昇級到4.x,整個SDK與DAQ driver版一定要搭配使用,若版本不同,程式執行上一樣不會有任何錯誤回報,但是DAQ卡是不受控的狀況。

案例
在2012以前,Advantech DAQNavi LabVIEW Driver有一次大改版,所有程式都需要搭配修正才能在新的環境上使用。

===下面為新版xNavi畫面===

選擇那一種產品線

===下面為選擇所要安裝或是封裝===

一個為直接安裝,另一個是建立離線安裝檔

===下面為選擇封裝的時候,會依照右邊所選的內容進行封裝===

選擇要建立離線安裝檔的路徑與檔名

===下面為執行封裝後的安裝畫面===

封裝檔的執行書面,乾淨多了,且檔案也小了不少。

LabVIEW 與 Git (TortoiseGit) 比較器及合併器設定

基本架構
LabVIEW = 圖形化程式語言
Git = 版本控制軟體
TortoiseGit = 視窗化的Git操作工具
github = 提供遠端存儲庫的服務器

安裝步驟
1. LabVIEW
2. Git
3. TortoiseGit

TortoiseGit環境設定
在比較器及合併作業需要針對LabVIEW進行設定,要增加副檔名”.vi”,”ctl”,”ctt”與”.vit”,
並使用NI提供的比較器及合併器進行操作。

比較器路徑設定如下:
“C:\Program Files (x86)\National Instruments\Shared\LabVIEW Compare\LVCompare.exe” %mine %base -nobdcosm -nobdpos

合併器路徑設定如下:
“C:\Program Files (x86)\National Instruments\Shared\LabVIEW Merge\LVMerge.exe” %base %mine %theirs %merged

參考資料
如何設定使得 Git 與 LabVIEW 完美整合
LabVIEW筆記
Configuring Hg or Git to use LabVIEW Compare and LabVIEW Merge

LabVIEW專案之Conditional Disable Symbols

我的使用情境有二,
一個是在設定執行檔要給不同人使用時,可以用這個功能進行設定,
另一個是在寫完程式後,切換不同條件來進行除錯作業。

LabVIEW專案的屬性對話視窗
Conditional Disable Symbols在工具欄的位置
對Conditional Disable Symbols按下右鍵後,可以進行條件編輯
選擇Symbol
選擇比較方式

LabVIEW 學習資源

實體課程
LabVIEW 教學大樓

部落格
LabVIEW筆記
LabVIEW & PLC還未出師的小工程師
安伯伯軒
skybow

線上影音網站(中文)
LabVIEW筆記
【史爸】愛學習
蔣大開講
喵喵的LabVIEW人參
LabVIEW360
國家儀器 National Instruments

線上影音網站(英文)
Tom’s LabVIEW Adventure
DQMH
GDevCon

論壇 (中文)
NI 的討論區
LabVIEW360

論壇 (英文)
LAVA

推薦書籍 (中文)
LabVIEW寶典(第2版)

推薦書籍 (英文)
LabVIEW Style Book

LabVIEW 好物 – DQMH

DQMH安裝(VIPM)

DQMH是基於NI-QMH的架構進行改造,其功能更是令我不斷的讚嘆不已, 因為基於這樣的框架,可以很有彈性的規劃程,功能介面定義,高度的功能內聚。

以功能模組來思考,這個架構可以達到功能內聚。且本身的Test API也可以當作除錯工具,一舉數得。

以資料交換功能為面相來思考,我可以利用這樣架構的特性達到下面的通訊架構模式。
一對多
多對一
一對一
多對多

以多人協作來說,因為有相同架構思維,所以在開發的過程中,只要先定義好介面,以及資料交換的方式。就可以個別開發,而不需要互相等待。

參考資料
線上幫助手冊
DQMH的影音教學(英文)可以搭配google網頁翻譯使用
許老師的影音介紹(中文)
NI的討論區