讀取超過四個計數器的迴圈在訊號被斷開時會凍結執行



主要軟體:
主要軟體版本: 7.0
主要軟體修正版本:
次要軟體:
硬體: Counter/Timers (TIO)>>Devices>>PCI-6602, Counter/Timers (TIO)>>Devices>>PXI-6602, Counter/Timers (TIO)>>Devices>>PCI-6608, Counter/Timers (TIO)>>Devices>>PXI-6608

問題: 當我以平行迴圈在LabVIEW中讀取超過四個計數器時,若其中一個硬體訊號被斷開,其餘的讀取動作變得遲緩且難以回應。為什麼?

解答: 當獨立迴圈中讀取一個計數器時,LabVIEW專注於該迴圈中的執行緒直到計數器回傳讀值。在預設情況下,LabVIEW至多只能專注於四個執行緒,因此若您想使用超過四個迴圈,則佔有執行緒來處理工作的迴圈,必須釋出執行緒。然而。若硬體訊號被斷開,其執行緒會被鎖住直到DAQmx read函式可以回傳一個數值。因此,該執行緒就無法處理其餘的迴圈。

要解決這這情況,您必須將LabVIEW.ini檔修改如下:

ESys.StdNParallel=-1
ESys.Normal=8
ESys.instrument.Normal=8
ESys.DAQ.Normal=8
ESys.other1.Normal=8
ESys.other2.Normal=8

這允許LabVIEW產生八個執行緒,而不是一般情況的四個執行緒。



相關連結:

附加檔案:





報告日期: 05/03/2010
最後更新: 08/19/2010
文件偏號: 592D3LZL