NI產品與技術 討論區

取消
顯示結果 
搜尋替代 
您的意思是: 

gpib

我用labview的VISA函數和GPIB函數分別做了兩個程序,都是來讀取GPIB儀器的值的,通過相關資訊以及實驗,已經能夠讀取所要得值GPIB正確顯示.jpg,但是在正確讀取值的同時,程序也報錯Visa-GPIB報錯.jpg,同時提示VISA-GPIB顯示.jpg;我用GPIB函數做的程序,運行結果為我的GPIB顯示.jpg,請問大家幫我解決下這個聞聽?謝謝!(附件為我的兩個程序,請幫我看看是程序哪裡出問題了嗎?)

注:經過諮詢,以及實驗,發現向我的GPIB儀器發送的指令為:\n

下載全部
0 積分
1 條訊息(共 4 條)
6,415 檢視

通常會發生 I/O operation aborted是因為在read或是write的時候發生timeout,但也有可能是因為在I/O存取過程中,有發出clear或是abort asynchronous I/O的command。同時如果你使用的是PCI介面的GPIB卡,也有可能是你電腦BIOS中PCI bus mastering的沒有開啟。

 

如果就單純的read/write timeout來說的話,最常發生的是EOS (end of string)的問題:有些儀器接收時會期望收到像"\n"這樣的linefeed,有的則不會。您可以試試看在您的write buffer後面補上"\n"。這方面建議您check一下您的儀器使用手冊,以瞭解您所連接的儀器是使用EOS(end of string)、EOI(end of identify)還是單純只使用byte count作termination character。

 

而就您在有收到儀器回傳的data,但仍然有這個timeout error的狀況下,我建議您可以嘗試將GPIB Read的"mode"的pin腳上,接上constant "1" 或 "2"試試看,因為也有可能是您沒有設定PC端GPIB卡讀取的EOS,進而造成timeout。

0 積分
2 條訊息(共 4 條)
6,408 檢視

您好,感謝您的答覆,我讀取的值的末尾是\n,所以mode的值應該為2,正確運行兩次后,依然會出現上面的錯誤。於是我關閉了GPIB儀器,再次運行,還是兩次后就不行了。於是我在後面加了緩衝區清零,這次不止出現錯誤提示,而且連我所要的返回值都沒有了。請問這個問題怎麼解決?謝謝!

0 積分
3 條訊息(共 4 條)
6,400 檢視

可以麻煩您提供一下,您所控制儀器的廠牌與型號嗎?  我試過使用Agilent 34401A 將Character to Write寫入 DISPlay?  或是 READ?   Meas? 亦或是 CALC:STAT? 還是 CALC:NULL: OFFS?   都很正常的能將回傳值讀出來。 你可能要check一下您所Write給儀器的command是不是儀器所認得的,例如我打Means?這種儀器不認得的command就會造成儀器不知道要回什麼而出現timeout error: 6

0 積分
4 條訊息(共 4 條)
6,386 檢視