載入上一次運行的前面板資料

更新 Sep 15, 2023

環境

軟體

  • LabVIEW

  • 我想將所有輸入控件/顯示控件保存到一個檔案中,以便在再次執行 VI 時重新載入它們。
  • 如何在每次更新VI後保存新的前面板控制項預設值?

注意:本例使用 OpenG Libraries中的 VI,可以使用 VI Package Manager下載。

為了以編程方式從之前運行的 VI 中載入前面板數據,您需要執行兩段代碼。此處詳述的第一段在 VI 執行結束時將前面板數據寫入配置檔案。第二部分在 VI 開始執行時載入配置檔案中的值。

將前面板值寫入到配置檔案:

  1. 使用Strip PathBuild Path 函數,結合Current VI's Path獲取對要寫入或創建配置檔案的引用,然後使用Open Config Data VI打開該引用。
  2. 使用Property Nodes獲取對前面板控件的引用。首先使用VI Server ReferenceProperty Nodes獲取對前面板的引用,然後使用另外的Property Nodes獲取對前面板控件的引用陣列。
  3. 通過For Loop索引這個引用陣列。對於每個控件,使用Property Nodes提取其名稱和值。使用Get Type Information VI以編程方式檢索控件的數據類型。
  4. 使用數據類型作為Case Structure的條件選擇器。在每種情況下,使用Variant to Data函數適當地格式化數據,並使用 Write Key VI將其寫入配置文件。
  5. 在 For Loop之後,使用Close Config Data VI 關閉對配置文件的引用。
  6. 以包含某種類型的錯誤處理來管理程序執行期間遇到的任何錯誤也是一種很好的做法。本範例使用Simple Error Handler VI

您需要確保此代碼在程序的最後執行,以確保記錄的值是 VI 運行結束時前面板上的值。

從配置檔案載入前面板值:

為了將配置檔案中的前面板值加載到 VI,我們可以對程式碼做兩處小改動。
  1. 在每個 For Loop中,將 Write Key VI 更改為Read Key VI。由於此 VI 是多態的,請確保為 VI 選擇的數據類型與實例的數據類型相匹配。
  2. 向 For Loop的每個案例添加一個另外的Property Nodes。將控件引用連接到此新Property Nodes的引用輸入。右鍵點擊它並選擇Change to Write。將 Read Key VI 的數據輸出連接至Value屬性的輸入。

您需要確保此程式碼在程序的最開始執行,以確保在執行任何其他程式碼之前載入值。

附加信息

Functions»Programming»File I/O»Configuration File VI下的 Configuration VIs 可用於將輸入控件和顯示控件的值寫入到配置檔案。這些檔案被組織為一組裡面有好幾個部分,由各部分的標題來指定,每個部分都有自己的關聯鍵數對。LabVIEW Example Finder 中有兩個交付範例,分別稱為Read Configuration Settings File  和 Write Configuration Settings File,可用於了解有關使用Configuration File VIs 的更多信息。 LabVIEW Example Finder 可以在 LabVIEW 中找到,方法是選擇Help»Find Examples...

還有其他方法可以儲存來自 VI 的配置數據。例如,如果您想要儲存一個包含採集任務的多個參數的集群,並且您想要保留這些參數的不同集合,那麼使用XML文件而不是 .ini 可能是有價值的。其他配置檔案選項包括:
  • JSON(JavaScript 對象表示法)
  • CSV(逗號分隔值)
  • 二進制(原始數據流式傳輸到磁盤)
您可以使用 LabVIEW 內建函數以上述任何文件類型實現配置數據儲存。