How To - LabVIEW建立執行檔時,遇到1502、1055錯誤的可能解決方式

 當建立執行檔時,遇到以下錯誤訊息:

The VI became broken during the build process. Open the Build Specification and enable debugging to include the front panel and block diagrams.

此錯誤代碼為1055,此時系統會提示某個vi,如果該vi並沒有顯示任何編譯錯誤的訊息,會發生這個錯誤,通常是原始程式碼沒有問題,但是該程式碼相依(弱連結)的部分程式內容,在編譯的過程產生錯誤,常見的狀況如下:

  1. 檢查Conditional Disable Structure(CDS),確認程式碼中CDS的條件為RUN_TIME_ENGINE==True的頁面,其內容是否有編輯完成可能出錯的程式區段。當開發時,LabVIEW不會執行及檢察內部的程式碼,但是當編譯時,LabVIEW會檢查該程式碼,如果此部分有問題時,那麼在應用程式的觀點上他是未完成的,故無法正確編譯。遇到此類問題,可以直接移除該部分程式碼後重新編譯,應可解決此問題。
  2. 檢查CDS、Diagram Disable Structure(DDS),其未使用到的頁面,是否有呼叫到特定函式庫、類別,而該函式庫、類別並未撰寫完畢,導致編譯檢查相依性時,因為該相依的函式庫、類別內部的程式碼有誤、未完成,故無法正確編譯。遇到此類問題,可以直接移除該部分程式碼後重新編譯,應可解決此問題。
  3. 檢查有用到VIM的程式碼,是否被加入了密碼保護。此行為會導致VIM在編譯期會無法正確被編譯導致錯誤。
  4. 檢查Dependencies內,是否有載入了未使用且標註為被移除或是找不到的VI,這是來自於一些參照如type def、class等常數被應用在現有專案中,但是該常數被DDS、CDS所遮蔽、而原檔已經遭刪除,此類弱連結很容易導致無法正確編譯。遇到此類問題,可以透過專案find caller等功能尋找該相依物件被呼叫的源頭,並且移除該源頭,應可解決此問題。
  5. 檢查VIPM中有安裝,並且在該專案中應用到的模組,其模組VI是否有安裝在一個很長的路徑,如果路徑過長,可能導致編譯時無法載入路徑過長的VI,導致編譯期錯誤。遇到此類問題,可在專案中重新指定模組存放位置,應可解決此問題。但此行為很容易導致其他專案找不到被遷移後的模組,而導致異常。
  6. 檢查建立執行檔所指定的目錄,如果該目錄位於一個很長的路徑,LabVIEW在建立執行檔之前的檢查作業時,LabVIEW會在該目錄內建立一些檢查用的目錄,之後會將該目錄移至執行檔內,而因為執行檔所在的目錄已經很長,建立後會變得更長,導致生成一個無效的路徑而無法繼續編譯。遇到此類問題,建議直接將build資料夾直接指定於D:\Build,大幅降低資料夾長度,應可解決此問題。
  7. 如果以上描述找過了都無法正確找到問題,那可以在build application property內的Advanced頁面中,勾選第一個項目: Enable debugging後重新編譯,可能可以直接解決問題,或是看到其他錯誤代碼來協助排除。
  8. 此外也可以將1502中所描述的錯誤VI,在build application property內的Source File Settings中,保留block diagram,可能可以排除這個錯誤。
  9. 最後,在build application property內的Additional Exclusions頁面中的所有打勾的項目取消,也就是都不要勾,避免一些相依性被移除後產生錯誤。 
如果終於排除了這些問題,結果系統換跳錯誤代碼1055,LabVIEW: Object reference is invalid.
這多半遇到NI自帶的Bug,此時有兩個可能的解決方式。
  1. 檢查是否有安裝NI DSC Module,如果有安裝,但是這個專案並沒有用到這個模組,請移除他。
  2. 如果不想移除,然後LabVIEW版本剛好是2019~2023Q1之間,那下載這個VI,並且覆蓋LabVIEW原本的VI,可能可以解決這個問題。
    https://forums.ni.com/t5/LabVIEW/Application-builder-error-1055/m-p/4311543#M1260927
如果有其他的解決方式或是排除的workflow,也歡迎讓我知道,我再更新上來。

分享 - LabVIEW與智慧製造技術實務暨創新教育研討會(線上直播)

 逢甲大學每年都會與我們諾亞思科技合辦各種研討座談會,今年因應疫情,捨棄掉原本已經規劃好的實體座談會,改辦線上的座談會。同時為了與以往的「技術型webinar」做區隔,這次我們邀請了許多樂於分享自己產業應用與設計概念的合作夥伴,透過訪談的模式,嘗試著創造一邊聽故事一邊吸收精華的座談情境。

本次訪談由產業應用與專案心得出發,一路為各位深掘各種產品與方案的拓展歷程,讓大家可以在沒有技術壓力的前提下了解各種智慧製造的產品設計與應用,讓各位無論是學界師長想要了解目前技術與教學內容調整、考慮投入自動化領域的學生了解應該精進的目標,抑或是追求產品創造或是技術應用的業界先進想要知道異領域跨入的方向,透過這些熱情的訪談,在充實的一天內,快速了解智慧製造各種不同範疇的應用與設計!

在此先奉上相關網址:

報名11/6(六)免費聽故事:https://forms.gle/AUqEAxVQ3y6afzHN9

活動DM(GOOGLE雲端):https://reurl.cc/V5DQqQ


接下來除了感謝還是感謝!

謝謝逢甲大學提供Microsoft Teams支援此活動,

讓我們能夠創造這個大家透過經驗分享來交流的機會,

同時也特別感謝以下熱情回應我的邀請的與會夥伴,

真的謝謝你們無私地分享!

(依訪談順序表列)

  • Microsoft Taiwan亞太物聯網創新中心總經理 | 葉怡君
  • 天能睿智行銷長 | 吳維翰
  • 丹麥商優傲科技通路開發經理 | 盧彥亨
  • 匯智歐透創辦人 | 羅君平
  • 星協科技專案經理 | 吳志二
  • 晴軒科技總經理 | 楊岳庭
  • 皕像科技專案經理 | 柯璟銘
  • 永視科技業務經理 | 林永樹
  • 研華科技業務經理 | 詹世祥
  • 研華科技客戶成功經理 | 廖婷儀
  • 元創智動技研經理 | 陳俊元
  • 瑞明科技專案經理 | 王中彥
  • GOGORO產品保證經理 | 楊志龍

How To - 無法觸發Menu Selection(User)事件的解決方式

 一年多沒寫文章了,沒想到居然遇到一個智障的問題,這次不寫下來,下次可能又被智障到。

這次的問題是這樣:

我使用了Customize menu bar,同時透過Event的Menu Selection(User)來接收該menu觸發。

但我在某個特定的VI中無法接收觸發,連Menu的子選單都跳不出來,只會觸發Menu Activation?這個事件,而其他VI都沒問題。

這實在是太詭異了,我寫了這麼久,從來沒有遇過這種事情,求天問地了一個多小時後,可靠的夥伴終於找到問題所在了。


狀況是這樣,如果在VI Property >> Execution中的Auto Handle Menu at Launch的選項未打勾,那麼系統預設是不會幫你處理Menu的追蹤事件。這時候必須要自行在初始化的區塊加上Enable Menu Tracking的API,系統才會幫你處理Menu Selection的事件。

一般來說這個元件應該會搭配著Get Menu Selection這個API來共同使用,讓一個沒有Event的VI可以取得user操作Menu的選項。

只是在標準應用下,應該不會有人不用Event來處理Menu bar的事件吧,也因此我壓根忘了還有Auto Handle Menu at Launch這個設定會影響到Menu Selection。

如果在軟體中,有可能基於一些特定因素而啟用或是禁用Menu bar,那麼可以透過Enable Menu Tracking來開關,至於Auto Handle Menu at Launch這個選項就開著吧,省的又忘了這件事情然後繞圈圈!



How To - 關閉LabVIEW 2019右鍵選單最上面的Create function

相信部分使用LabVIEW 2019的夥伴,會覺得最上面的Create function嚴重影響了生產效率,尤其是需要操作Visiable Items時,更覺得十分不順手:


這邊提供一個關閉他的方式:
在LabVIEW.ini中,新增以下的描述即可:

PopupMenus.ElevateCreation=FALSE

位置不限,所以我是直接加在[LabVIEW]的下一行
之後重新啟動LabVIEW 2019即可關閉這個功能。

其他資源 - 2020-03/04月份 NI免費教育訓練資源

為響應COVID-19,從今天起所有線上課程對所有NI客戶免費開放,直到4月底。只需要申請並且登入NI帳號即可使用。線上學習的缺點是語言不同、無法提問、沒有現場學習氛圍、容易手動跳過段落導致練習不確實。但優點是可以重複瀏覽,也有些冷門課程。

以下是我的學習建議:
  1. 請先前往訓練中心:
    https://learn.ni.com/training
  2. 如果你沒有想要學習的相關軟體,那麼建議可以透過以下連結先下載並且試用。記得在安裝的時候,需要登入NI帳號,才能將試用期限延長至45天:
    https://www.ni.com/zh-tw/support/downloads/software-products.html
  3. 接著如果你沒有學習過任何LabVIEW基礎,那麼core1-3會是你的好朋友,衷心建議,請營造學習氛圍,不要一直skip影片,雖然core1-3沒有教很多東西,但對於完全不會的人,這確實是可以帶入門的課程:
    https://learn.ni.com/training/resources/1232/labview
    https://learn.ni.com/training/resources/1242/labview2
    https://learn.ni.com/training/resources/1243/labview-core-3
  4. 如果貴公司已經使用TestStand作為自動化測試平台,那麼建議學習TestStand相關知識,這兩個課程可以確保你會"操作"這套系統,客製架構的部分聽聽就好,我不予置評XD
    https://learn.ni.com/training/resources/1230/developing-test-programs-using-teststand
    https://learn.ni.com/training/resources/1275/architecting-test-systems-with-teststand
  5. 如果想要學習自行往上搭建系統,或是想要了解如何將系統長大的思維,那麼進階架構的課程或許可以給你一些"想法",如果有興趣的話,可以再找其他課程學習:
    https://learn.ni.com/training/resources/1240/advanced-architectures-in-labview
  6. 如果是想要接觸嵌入式系統,那請至少完成以下三個課程,你可以一窺相關知識,但因為嵌入式的水很深,實務上還是得下去寫才能跨入這個領域,所以如果手邊沒有硬體的夥伴,就只能稍微理解而已了:
    https://learn.ni.com/training/resources/1273/labview-real-time-1
    https://learn.ni.com/training/resources/1274/labview-real-time-2
    https://learn.ni.com/training/resources/1268/labview-fpga
  7. 如果是要做資料分析或是報表,那麼建議可以學習DIAdem,這是一套我覺得很不錯的視覺化介面軟體,課程一樣只是入門課程,但我覺得學完之後,剩下的部分自己摸索是沒問題的:
    https://learn.ni.com/training/resources/1234/diadem-basics
    https://learn.ni.com/training/resources/1244/diadem-advanced
  8. 如果想要"了解"物件導向的相關知識,那麼可以參考這個課程。為什麼說"了解",是因為物件導向是要真正應用才學的會的東西:
    https://learn.ni.com/training/resources/1279/object-oriented-design-and-programming-in-labview
  9. 最後,如果對於NI System Link有興趣的話,可以看一下這個課程,他能夠大致上說明System Link在幹嘛,但是多數的人沒有System Link的授權,所以實務上沒辦法操作就是:
    https://learn.ni.com/training/resources/1381/systemlink-install-and-connect

以上是一個看過這些課程課程的人的一些小建議,感謝NI在疫情期間的無私分享,希望疫情過後,這個生態圈可以慢慢地恢復榮光!

How To - Icon Editor 中找不到 Small Fonts的解決方法

為了可以解決Icon Editor字型毛邊的問題,在這篇文章中有提到如何進行設定。但問題來了,有的人會沒有辦法在字型選擇欄位找到Small Fonts



在這邊有個"可能"可以解決的方法:
  1. 開啟C:\Windows\Fonts資料夾
  2. 搜尋"Small Font 標準"
  3. 如果找的到,可能是該字型檔異常,請刪除該字型檔
  4. 如果找不到就是電腦缺少這個檔案,那找不到也是正常的
  5. 請不要去思考為什麼你的電腦會突然少檔案,因為跟皮包突然少錢一樣是個花時間也難以解決的問題
  6. 請至其他電腦複製"Small Font 標準",複製出來會是"smalle.fon"
  7. 先貼到目標電腦的桌面,在"smalle.fon"上按右鍵,選擇"為所有使用者安裝",這個選項應該帶有系統管理員權限
  8. 安裝完畢後,關閉LabVIEW重新啟動即可
如前文所述,這只是個"可能"解決的方式,記錄下來至少能夠提供給遇到此問題的夥伴一線希望,不然毛毛的字型真的很痛扣...


How To - 遇到LabVIEW一開啟就Crash的狀況

基本上就是命不好(無誤

目前網路上能找到有解法的錯誤大概是:

Ausnahme: Unknown (0xC06D007E) at EIP=0x7582C54F
如果是這個錯誤,可以參考以下這個網址:
https://forums.ni.com/t5/LabVIEW/LabVIEW-crashes-on-startup/td-p/3358660?profile.language=zh-TW

Error: Access violation (0xC0000005) at EIP=0x00764624
如果是這個錯誤,可以參考以下這個網址:
或是


但我遇到的錯誤代碼是:
Exception: Access violation (0xC0000005) at EIP=0x0164C0E0
現象是一開啟LabVIEW,在Launcher階段就錯誤,然後跳出錯誤回報視窗:

基本上完全不知道是因為甚麼而掛掉的...
最後解決方式是:
1. 移除該版本LabVIEW
2. 移除該版本LabVIEW資料夾 << 很重要,裡面會有剩餘的資料需要砍掉
3. 重新安裝LabVIEW

感謝這顆莫名其妙的雷,又讓我的人生少了一天...