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