比較SCPI與ICL指令和腳本
SCPI儀器模型
本文引用地址:http://www.104case.com/article/201702/338587.htm某些測量需要直接控制儀器的硬件。為實現這種控制,基于SCPI的儀器包含指令子系統來控制特定的儀器功能和設置。
SCPI儀器模型在SCPI指令子系統之間分配。對于2700系列而言,指令子系統分為以下幾類:
1.面向信號的測量:獲取讀數的指令。
2.計算:用于數學表達式、極限測試和統計數據。
3.顯示:控制Integra儀器的顯示。
4.格式:選擇總線傳輸讀數的數據格式。
5.路由:控制前/后輸入或開關。
6.感測:配置和控制測量功能。
7.狀態:控制狀態寄存器。
8.系統:包含儀器設置的各種指令。
9.設置:配置和控制數據存儲至緩沖區。
10.觸發器:配置觸發模型。
11.裝置:配置查詢所顯示的測量單元
SCPI指令 | 注釋 |
*RST | 恢復GPIB默認值。 |
:SENS:FUNC ‘VOLT’, (@101:120) | 用通道列表配置DCV功能 |
:ROUT:SCAN(@101:120) | 指定掃描通道 |
:SAMP:COUN 20 | 樣本計數至20 |
:TRIG:COUN 1 | 觸發一次掃描 |
:ROUT:SCAN | 啟用掃描模式 |
:TRAC:FEED:CONT NEXT | 啟用跟蹤緩沖器 |
INIT | 初始化掃描 |
DATA? | 請求緩沖讀數 |
TSP儀器模型
測試腳本語言(TSL)是3700系列使用的語言。ICL是該儀器的一組預定義的函數和變量。它們是等效于SCPI儀器SCPI指令的儀器指令。下列指令集適于3700系列:
1.蜂鳴器:控制內置蜂鳴器的指令。
2.位:用于對1~2個數字進行邏輯運算。
3.延時:用于控制數字I/O端口的讀/寫和觸發操作。
4.數字I/O:選擇在總線上傳輸讀數的數據格式。
5.顯示:用于控制3700前面板上顯示的消息。
6.錯誤隊列:用于讀取錯誤隊列/事件隊列中的記錄。
7.退出:用于終止當前運行的腳本。
8.格式:適用printnumber和printbuffer指令打印的數據。
9.GPIB:用于設置GPIB地址。
10.LocalNode:用于設置電力線頻率、控制(開/關)提示并控制(隱藏/顯示)顯示器上的錯誤消息。
11.獲取:用于設定和取回屬性值。
12.操作完成:在運行完所有異步指令后,將狀態寄存器的OPC比特置位。
13.PrintBuffer:用于打印數據和數字。
14.重置:用于恢復3700的默認設置。
15.設置:用于保存/恢復設置并設定上電設置。
16.觸發器:用于控制觸發。
17.TSPLink:為主機分配節點號并初始化TSP-Link系統。
18.UserString:用于存儲/讀取非易失存儲器中用戶定義的字符串。
19.等待完成:等待全部異步指令運行完成。
ICL指令腳本 | 注釋 |
Reset() | 恢復GPIB默認值。 |
dmm.setconfig("1001:1020","dcvolts") | 指定掃描通道和相應的功能 |
mybuffer=dmm.makebuffer(20) | 建立名為mybuffer的20讀數用戶緩沖區 |
reading=dmm.measure(mybuffer) | |
scan.create(“1001:1020”) | 在槽1建立通道1~20的掃描列表 |
scan.scancount=1 | 觸發一次掃描 |
scan.execute(mybuffer) | 指定mybuffer為掃描使用的讀數緩沖區 |
print(printbuffer(1,20, mybuffer)) | 打印my buffer(我的緩沖區)的內容 |
上面的指令定義清單看起來比2700系列的多一些,卻是精簡的獨立指令集。例如,SCPI“計算”子系統主要通過腳本處理;因此,這些功能不存在ICL指令。請參見本文末尾表1的ICL指令清單和對應的SCPI指令。
評論