如何在LabVIEW中進行大量編譯

更新 Jul 27, 2023

環境

軟體

  • LabVIEW

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

大量編譯 LabVIEW 代碼將能確保 LabVIEW 專案和 VI 有保存在目前使用的 LabVIEW 版本中。可以在附加信息部分看到對此行為的進一步解釋。

要執行大量編譯:
  1. 關閉當前在 LabVIEW 中打開的所有 VI 和專案。
  2. 打開大量編譯工具:
    • LabVIEW 6.0 及更高版本:選擇Tools » Advanced » Mass Compile.
    • LabVIEW 5.x 及更早版本:選擇File » Mass Compile
  3. Directory to compile中選擇要編譯的 VI 的目錄。
  4. Log Results中選擇一個目錄來保存日誌文件。
  5. 如果您希望 LabVIEW 將 VI 保留在記憶體中,則啟用Cache VIs 勾選框,這樣就不需要在每次編譯高階 VI 時載入它們。 (建議的 VI 數量在 50 到 80 之間。)
  6. 點擊Mass Compile

附加信息

什麼是大量編譯?
大量編譯時,LabVIEW會自動打開和關閉VI。這將執行以下操作:
  • 確保所有子 VI 存在並將它們重新連接到主 VI。它減少了載入時間,因為 LabVIEW 不需要搜索 VI。
  • 將 VI 更新為當前的 LabVIEW 版本。
  • 報告損壞的 VI,這會阻止它們正確的載入。
您可以在此處閱讀有關此過程的更多信息: 大量編譯 VI - LabVIEW 幫助



大量編譯日誌
該日誌很重要,因為它會報告有問題的 VI。大量編譯代碼後,您可以在“Status選項中查看大量編譯器的日誌。您可以預期到幾個典型的警告:
  • The VI expected to be at __ was loaded from __
此警告消息類似於載入路徑警告。 此警告通知您環境中的新連接。查看這些警告以確保所有新的 VI 連接都是適當的。
  • Could not load __ because __ in memory
這些是真正的交叉連接錯誤,LabVIEW 可能會因為磁碟上的子VI 名稱重複而選擇了錯誤的子VI 進行連接。有關交叉連接問題的詳細信息,請參閱使用項目瀏覽器管理 NI LabVIEW 應用程序的最佳實踐中的第 4 章,交叉連接。

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

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

在不同機器之間移動項目並在新機器上大量編譯時,常見的故障排除步驟是在原始機器和新機器上編譯項目。原始機器和目標機器上日誌的差異可以透露出要修復的問題。
 Mass Compile Log Viewer
這個工具可以讓你快速理解大量編譯日誌。它提供了一個用戶友好的界面來提供每個日誌條目的詳細信息,並幫助解決一些錯誤。



Force Recompile
如果您想強制重新編譯記憶體中 VI 的二進制檔案,請按 <Ctrl-Shift> 和主 VI 的運行箭頭。重新編譯過程可能需要一段時間。之後保存 VI。雖然在記憶體中對 VI 進行二進制重新編譯後通常什麼都不會發生,但這通常可以修復/隔離許多錯誤。