NI產品與技術 討論區

cancel
Showing results for 
Search instead for 
Did you mean: 
Reply

Labview:轉檔遇到Memory Full

Highlighted

各位先進好,

目前遇到的問題非常棘手,此軟體已寫了十年,內容包含近千顆VI。

最近出現轉檔失敗,原因為Memory Full,我試過很多方法,但都失敗了。

(需要有點運氣才能轉檔成功,10次大概1次左右,由於程式過於龐大,轉檔需花費1小時)

近期又須轉檔出貨給客戶,卻發生這樣的問題,想請教各位先進有無解決方案。

(已確認過沒有斷箭或是相關錯誤訊息)

 

再麻煩幫忙解惑一下!

Labview : 8.2版本

0 Kudos
Message 1 of 7
(361 Views)

請問轉檔是想把Labview 8.2版本轉成其他版本嗎?

以下為解決memory full的方法供參考:
https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z000000P9mtSAC&l=en-US

https://labview360.com/forum/forum_posts.asp?TC=GCOW00HFS4BI&KW=Memory+is+full

0 Kudos
Message 2 of 7
(330 Views)

Dear AlysaOng,

轉檔是轉成執行檔,如附件所產生的錯誤。

由於軟體太過龐大了,我也看過您所提供的方法,該修補的部分也都盡力。

但還是出現此問題。

 

有時候是Memory Full,有時候則是如附件所示,請詢問NI。

Daniel

0 Kudos
Message 3 of 7
(325 Views)
0 Kudos
Message 4 of 7
(317 Views)

Dear AlysaOng,

 

情況似乎還是一樣!

 

Daniel

0 Kudos
Message 5 of 7
(303 Views)

Dear Daniel,

 

可以試看通過創建小一點的應用程式來解決這個問題。將獨立的子VI以及動態VI綁成LLB文件,創建一個小的應用程式來

1.將所有的動態VI和第一層的子VI加入到project中。“add subVIs to project.vi”將第一層的靜態子VI添加到project中,但是你必須手動的加入動態VI。
2. 將這些加入到project的第一層的子VI和動態VI分別放置到第一層子VI文件夾和動態VI文件夾。創建好的project如圖1所示。如果使用附件中的 "add subVIs to project.vi" ,那麼你需要移除可能自動添加到project中的自定義的控件和類型。

image.png

圖1:Project Structure

3.將所有的第一層子VI和動態VI添加到project後,創建或者編輯你的生成應用程式規格。
4.在創建應用程式的Source Files頁,將頂層VI移動到Startup VIs 欄中,並且將第一層的子VI和動態VI移動到 Dynamic and Support Files 欄中。
5.在Desinations 頁中,創建一個新的目標名字叫做supportfiles. 通過勾選 Destination is LLB 複選框使得supportfiles 目標為一個LLB文件。
6.在Source File Settings 頁中,選擇第一層子VI和動態VI文件,然後勾選 Set destination for all contained items複選框。在Set destination for all contained items複選框下選擇supportfiles.

image.png

7.根據需要可以進一步設置生成應用程式規格,例如創建自定義應用程式名字,圖標,版本。
8.關閉應用程式生成規格(build specification)。
9.Save project.
10.編譯應用程式生成規格。
11.應用程式編譯成功。


另外一種方法生成可執行程式可以比傳統的方法小很多。可以通過將所有的獨立可執行程式移動到一個外部的LLB文件中來實現。因為這樣應用程式生成器(Application Builder)就不會將所有的子VI和動態VI放到生成的應用程式中,LabVIEW就不會出現內存溢出了。

應用程式生成器會將LLB文件中的可執行程式到獨立的子VI自動的更新所有的靜態VI路徑。但必須確保動態VI仍然能夠被正確的調用,因為他們將不包含在生成的應用程式中。使用relative paths來從主VI中指定被調用的動態VI在“supportfiles.llb”文件中的新位置。

 

如果還不行,這裏再提供另一種方法參考:

https://forums.ni.com/t5/LabVIEW/memory-leak/td-p/551251

0 Kudos
Message 6 of 7
(299 Views)

Dear Alysa,

謝謝您提供的建議,目前我也是透過創建小一點的應用程式來增加成功轉成執行檔的機率。

並減少主執行檔的檔案大小,似乎成功機率提高,轉檔5次會有1次成功,我再來試試看是否可行。

 

謝謝您的協助。

 

Daniel

Message 7 of 7
(286 Views)