在LabVIEW中使用Get LV Class Default Value 出現 Error 1498

更新 Jul 31, 2023

產品資訊

軟體

  • LabVIEW

問題敘述

我有一個包含基礎類別的應用程式,可以在執行時動態配置 Plugin。包成執行檔後,當這個執行檔要去執行子類別時,會出現以下錯誤:
Error 1498 occurred at Get LV Class Default Value.vi

解決方案

要解決此問題,請參照以下步驟:
  • 單擊 File 並打開 VI Properties
  • 取消選取 Separate compiled code from source code (如圖所示)。
  • 保存VI。
  • 使用新 VI 來建立執行檔並再次執行此執行檔。

相關資訊

  • LabVIEW 20xx(任何版本)都內建編譯器。這會將 Block Diagram 轉換成在目前作業系統執行的程式碼。
  • LabVIEW 建立的應用程式只包含 Run-Time Engine,不包含可編輯 VI 的編輯器或編譯器。
    • 對於 2011 年之前的 LabVIEW 版本:
      • 每當 VI 保存到硬碟時,它會將 Front panel, block diagram, icon/connector pane 與 complied code 保存到同一個檔案 (.vi)。因此,當 VI 被執行檔 (由 LabVIEW 建立) 呼叫時,他會使用 complied code (在 VI 中) 來執行 VI。
    • 對於 2011 年之後的 LabVIEW 版本:
      • 可以在 VI 設定中選擇是否要在同一個 VI 中儲存 compiled code。如果啟用此功能(Separate compiled code from source code),會有很多好處,例如:
        • VI 檔案容量較小
        • 如果 subVI 被修改過,則在版本控制中可以不必檢查 Top-level VI。
      • 但是在 Run-time engine 中動態呼叫 VI 時會有副作用。應用程式會搜尋 compiled code,如果搜尋不到,則無法執行 VI。