Resources
一個resource代表一種儀器(測量設備)。有很多種從resources派生的類,表示各種不同的設備(如GPIB,串口)。每個都包含特定方法和參數集,用來和設備進行交互。
無需直接 創建,可以從open_resource()的ResourceManager方法的返回值獲取。通常,有兩種派生自resource類,MessageBasedResource(基於消息的設備)和RegisterBasedResource(基於寄存器的設備)。
Python類會自動選擇resource,亦可以指定resource的Python類類型。
|
下面的章節介紹了常用的Resource方法和經常用的消息類型設備(如串口,GPIB)。需要更詳細的信息,請閱讀API章節。
Resource類的方法
session
每個到儀器的控制通道,有一個特定的session頭。如下面代碼:
|
如果通道關閉,則會收到一個異常。
|
超時
絕大多數的VISO輸入輸出操作都會有時間約束。如果超時時間已經設定,所有需要超過改時間的命令都將被終止,併產生異常。儀器超時時間一般以毫秒(ms)爲單位。
對於所有PyVisa對象,超時時間設置如下:
|
這裏,my_device指一個設備,一個接口或者其他的什麼,它的超時時間爲25s。設置無限的超時時間,可以將該值設置爲None或無限大(float(“+inf”)),亦或者:
|
設置超時爲立即,可以設置該值爲0或負值。(事實上,任何小於1的值均被理解爲立即)
現在任何resource的操作運行不會超過設定的超時時間,除了有需要特殊設置的。
基於消息設備的參數
塊長度chunk length
讀取設備的數據,首先要將數據存放在某處。不巧,PyVISA在讀取設備前需要設置存放空間,這表示需要知道設備將傳輸的數據量。但是,這不可能預先知道。
因此,PyVISA是一塊一塊的讀取數據的。每個塊默認爲20kB。如果仍有數據需要讀取,PyVSIA將重複並將結果合併,然後返回數據。20kB對於大多數情況已經足夠,大多數情況一次讀取即可。
所有這些都是自定進行的,這場情況下無需考慮。有些設備不能以塊的方式傳輸數據,如果有些設備這樣操作存在問題,可以提升塊的大小。
|
以上代碼將塊大小改爲100kB。
終止符
PC需要檢測何時設備完成消息傳送。根據總線系統的不同,實現該檢測有多重不同的方法。大多數情況下,採用默認的終止符即可。有些情況下,需要更改PyVISA默認的終止符。
終止符可以是單個字符,也可以是字符的組合。當這個字符或這個字符組合出現在輸入字符流,讀操作將被終止,讀取的消息被傳遞給調用的應用。下一個讀操作開始於輸入字符流的上一個結束符。PyVISA提供終止符分離後的消息(數據)。
可以設置每個儀器的終止符。
|
'\r'爲換行符。
亦可以在創建儀器/設備對象時給出:
|
默認的終止符取決於總線系統。對於GPIB,爲空。對於RS232,爲換行符。
可以設置終止符到輸出信息中,並用write_termination參數通知設備。