如何在 LabVIEW 中批量編譯

更新 Nov 9, 2020

產品資訊

軟體

  • LabVIEW

問題敘述

  • LabVIEW 中的批量編譯選項有什麼作用?
  • 如何執行批量編譯?
  • 如何將包含多個 VI 的項目更新為新版本的 LabVIEW?

解決方案

大量編譯 LabVIEW 代碼將確保 LabVIEW 項目和 VI 保存在正在使用的 LabVIEW 版本中。有關更多信息,請參見“其他信息”部分。

要執行批量編譯:
  1. 關閉當前在 LabVIEW 中打開的所有 VI 和項目。
  2. 打開批量編譯工具:
    • LabVIEW 6.0 及更高版本:選擇 Tool » Advanced » Mass Compile 。
    • LabVIEW 5.x 及更早版本:選擇 File » Mass Compile
  3. 從“ Directory to Compile ”中選擇要編譯的VI的目錄。
  4. 從“ Log Results ”中選擇一個目錄來保存日誌文件。
  5. 如要 LabVIEW 將 VI 保存在內存中,可啟用 Catch VI 複選框,以免每次編譯上層 VI 時都將其加載。 (建議的VI數量在50至80之間。)
  6. 單擊 Mass Compile

相關資訊

什麼是批量編譯?

批量編譯時,LabVIEW 自動打開和關閉 VI。這將執行以下操作:

  • 確保所有 SubVI 均存在,並將其重新鏈接至主 VI。由於 LabVIEW 無需搜索 VI,因此可減少加載時間。
  • 將 VI 更新為當前的 LabVIEW 版本。
  • 報告損壞的 VI,這可能會導致 VI 無法正確加載。

您可以在這裡閱讀有關此過程的更多信息: 批量編譯VI-LabVIEW 2018幫助
 

批量編譯日誌

該日誌很重要,因為它將報告存在問題的 VI。批量編譯代碼後,可以在 Status 分頁中查看批量編譯器的日誌。您可以看到幾種典型的警告:
  • The VI expected to be at __ was loaded from __
此警告消息類似於加載路徑警告。 此警告通知您環境中的新鏈接。查看這些警告,以確保所有新的 VI 鏈接均適用。
  • Could not load __ because __ in memory
這些都是真正的交叉鏈接錯誤,由於 SubVI 在硬碟上有重複的名稱,LabVIEW 可能選擇錯誤的 SubVI 進行鏈接。有關交叉鏈接(Cross-Linking)問題的更多信息,請參見《 使用Project Explorer管理NI LabVIEW應用的最佳實踐》中的第4章“交叉鏈接”。

當項目的目錄結構發生更改,或者從另一台具有不同目錄結構的電腦複製項目以進行大規模編譯時,日誌中通常會包含加載路徑警告或錯誤。

一旦檢查並修復了有關移動文件的消息,第二次批量編譯將揭示 VI 的非鏈接問題。您應該在大規模編譯報告中尋找以下字符串,以識別應用程序中存在的insane objects:
  • Insane Object
日誌還指示這些insane objects是否已通過批量編譯例程修復。
  • ###
儘管很少見,但使用不穩定的 VI 時,大量編譯可能會崩潰。除非特定的 VI 處於錯誤狀態,否則在加載和保存 LabVIEW 時也將導致 LabVIEW 崩潰,因此您不太可能會遇到大規模編譯崩潰。如果批量編譯崩潰,則日誌文件將指示導致崩潰的文件。找到並打開這些文件,以確保它們沒有損壞,然後再次進行大規模編譯。如果由於文件損壞而無法在目錄中成功完成大規模編譯,則可能有必要從文件夾中刪除該文件。

在不同機器之間移動項目並在新機器上批量編譯項目時,常見的故障排除步驟是在原始機器和新機器上都編譯項目。原始計算機和目標計算機上的日誌差異可以揭示要解決的問題。

批量編譯日誌查看器

該工具使您可以快速理解批量編譯日誌。它提供了一個用戶友好的界面,可提供有關每個日誌條目的詳細信息,並有助於解決某些錯誤。您可以從此處下載該工具: Mass Compile Log Viewer
 

強制重新編譯

如要強制重新編譯內存中 VI 的二進製文件,請按 <Ctrl-Shift> 鍵和主 VI 的運行箭頭。重新編譯過程可能需要一段時間。之後保存 VI。雖然二進制重新編譯內存中的 VI 後通常什麼也沒有發生,但這經常可以修復/隔離許多錯誤。