用labview跟多台控制器通訊,時間長電腦反應很慢

labview跟多台控制器做通訊,讀取它們的溫濕度值及其目前狀態並把所讀取的值做存檔動作。剛開始一切正常,可是通訊幾天之後(Labview一直運行和控制器通訊,並存檔),labview變的很慢,CPU使用率基本到了百分之百,電腦像要死機了一樣。請問這是什麽原因呢?<?:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

VISA通訊,每次都有做close動作啊 還有存儲的檔案到了一定時間也有close並且重新開啓一個新檔再存儲,沒有都存儲在一個檔案裏面。

不知還有什麽東東沒有及時釋放和close呢,還是程式太大了,電腦很累。

謝謝!!!

應該是程式架構不好

c c 請問一下!!你是要同時跟多台通訊

還是一次一台呢?!

這跟程式的流程有關係

還有time out設定的時間也有關係!!

若是一次一台的話!程式本身會按照自己的排序去工作!

你可在共同通訊的地方去設定~程式的time out設定

或是進入vi properties-->Execution內把reentrant execution的選項打勾!

應該會有所改善

謝謝!

程式是多台的按照順序進行通訊的,每次通訊一台,循環進行,time out 設定為100,請問設定多少為佳呢?

 

ok若是一次跟一台做通訊的話~time out設定是100MS的話~如果你有16台表那必定最後依台式100*16=1600就表示事1杪6後才會跟表作通訊

所以看你有幾台表就會越來越慢~還有你若在程式中去擷取你所獨到的程式碼有用string去顯示或者是有暫存區可以去接收,可是你沒有在固定的實踐內將他 清除都會有cpu佔了百分百的問題

在你的迴圈中!while loop中也要給他依個搖擺去讓程式跟多台表去做通訊

不然光程式在while loop中跑的話可是會被咬很多資源的

你可以用下面我給你的小程式試試看!!把管理員打開一邊間是資源一邊把裡面的按鈕按下看有案跟沒看的關係為何

那就是有沒有使用搖擺的關係了!test for while loop.vi

 

不好意思打完才知道有錯字!希望你看的懂!><!

  十分感謝allen420731的回答,我試了您提供的附帶程式,果然區別很大,不加搖擺的話cpu已經到達了百分百。

     我已經在while loop裏加了時間延時,沒有在固定的時間內將string或別的清除掉,我修改一下再試試。

    想問一下怎樣清楚呢,是在一定時間給顯示元create 一個constant嗎?

    謝謝!!

我做了一個小型的測試程式

當妳執行的時候可以將控制台叫出去看一下labview使用的資源看是己mb

程式執行之後,就可以知道資源是不是有變動

test for the string.vi

基本上也只能用這樣的方式給你一點建議

可以的話,能請你將您的程式貼出來才知道

能怎麼幫你,不然的話你可以設定筆數,到

達一定的筆數去執行清除的動作,這樣對labview

所使用的資源才不會變動太大。

ps程式很小資源也吃的很少,可以的話讓他執行越久你就可以看出差別了

 

 謝謝!

  我的程式就是這個樣子,一直在監控並且存在圖表和表單裏,秀出來。

  向您說的那樣内存越來越多,我改一下試試!

  不行的話再發程式給您哦!

  謝謝!