時間問題VISA:(Hex 0XBFFF0015)Timeout expired before operation completed.

大家好,我有一機台是用VISA跟我硬體做溝通,

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

方框表示我的機械平台STAGE,數字解釋我平台移動的順序

RUN LABVIEW程式執行開始會從12345678……..

當我硬體平台移動”67”(因平台從右上6移動左中7時間會比較長約3),則程式出現ALRAM如下畫面所是,

VISA:(Hex 0XBFFF0015)Timeout expired before operation completed.

不管我把labview function TimmingWait(ms)把時間加大都還是會發生alarm,只要stage移動到”67””1213”就會發生,其餘移動

1->2->3->4->5->不會發生,請問各位大大與鄉民我怎麼解決此問題,謝謝

我的LABVIEW程式如下圖:


試著增加下圖的timeout的數值,單位是ms,所以如果timeout想要設定10秒,請設為10000。

將VISA Close放到迴圈外,理論上第二次就會出現錯誤訊息了

建議Albertchen直接放檔案上來,大家直接幫你改,比較快。


因為已經有出現兩個需要修改的地方了。

附上我的程式2014板

try test next die GPIB.vi
先感謝Benjamin與ancle的回覆!

Benjamin您說的改timeout時間修改長短,還是會出現Alarm~
而ancle您說的把Error物件拉到迴圈外,方法可行(不會出現Alarm),
但我機台就停住在7位置(1->2->3->4->5->6->7->一直停住在7),

目前程式遇到問題:
我可把error物件刪掉就不會出現alarm code,但不是我要的目的,
我的機台移動希望藉由labview的->controls的"RUN"按鈕從1移動到6接續7到12,
如果把上述Alarm解決,
但我程式執行從1到7位置就停住不會往下繼續走8->9->10->最後->18
怎麼再讓程式執行讓機台stage繼續走?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

首先 把 VISA Close 放出迴圈外


再者 這訊息可能發生原因是在 你設定的Timeout 時間內 VISA Read 沒有讀到 1024個Byte

所以就像Benjamin 所說的 延長Timeout

但是因該要知道機器回傳的字串長度,要不然你VISA Read設太大程式因該會依據你的Timeout時間又或者Wait(看哪個比較大)一個Cycle…

提供給妳另一種方式 這總方式適合在不知道獲取BYTE長度時使用

於 VISA Read 與VISA Write 間 加個 DELAY(時間長短看設備) 並用 Byte at Port 的方式提取資料長度 可以找找相關範例

先看看有沒有接收到資訊