From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.



在非即時作業系統的環境下Timed Loop週期的變異性



主要軟體:
主要軟體版本: 5.0
主要軟體修正版本:
次要軟體: N/A

問題: 我想要一個迴圈的執行速度為某一定值(50 ms),因此我設定timed loop的週期輸入為50。然而,當我將資料連同時間資訊儲存至檔案上時,我發現到迴圈的執行速度有所變化,換言之,每一筆資料對應的時間間格為45 ms,47 ms,以及53 ms等等,但都不是剛好50 ms。為什麼會有這樣的現象呢?

解答:

這個問題的發生原因是因為作業系統沒有授與LabVIEW完全的程式排程控制權。由於一般的作業系統允許多重任務及多執行緒的執行,所以在記憶體中的各個應用程式必須一起享用處理器的執行資源。當一個應用程式在執行時,其他的應用程式就必須做等待的動作。這就是為什麼迴圈的執行速度並不是定值。

若要解決這個問題使執行速度盡量維持一準確的速率,就必須降低在記憶體中的程式處理量。然而,要獲得決定性執行控制權的最佳方法,是使用包含在LabVIEW Real-Time模組中的即時作業系統(read-time operating system)。



相關連結: 42FAKCHG: Real-Time Tutorial

附加檔案:





報告日期: 10/16/2006
最後更新: 01/15/2008
文件偏號: 42FAKCHG