電子負載中需要用到,所以記錄下。來源是德科技
SCPI(可編程儀器的標准命令)是一種基於 ASCII 的儀器編程語言,供測試和測量儀器使用。 SCPI 命令采用分層結構,也稱為樹系統。 相關命令歸組於共用結點或根,這樣就形成了子系統。 下面一部分 SENSe 子系統說明了這一點。
SENSe:
VOLTage:
DC:RANGe {<range>|MIN|MAX|DEF}
DC:RANGe? [MINimum | MAXimum | DEFault]
SENSe 是命令的根級關鍵字,VOLTage 是第二級關鍵字,DC 是第三級關鍵字。 冒號 (:) 隔開連續的關鍵字。
語法慣例
命令語法格式圖示如下:
VOLTage:DC:RANGe {<range>|MIN|MAX|DEF}
大多數的命令(及一些參數)是大寫和小寫字母的混合。 大寫字母表示命令的縮寫,使程序行變短。 如果要獲得較好的程序可讀性,可以使用長格式命令。
例如,考慮到前文中 VOLTage 這個關鍵詞。 您可以輸入 VOLT 或 VOLTage,大小寫字母隨意結合。 因此,VolTaGe、volt 和 Volt 都可以接受。 其他格式(如 VOL 和 VOLTAG)將會產生錯誤。
- 大括號 ( { } ) 包含了參數選擇。 大括號不隨命令字符串發送。
- 垂直線 ( | ) 分隔參數選擇。 例如,上述命令中的 {<range>|MIN|MAX|DEF} 指示您可以指定一個數字范圍參數或 "MIN"、"MAX" 或 "DEF"。 條形圖不隨命令字符串發送。
- 尖括號 ( < > ) 表示必須給括號內的參數指定一個值。 例如,上述的語法語句表明尖括號中的 <range> 參數。 不隨命令串一起發送尖括號。 必須為該參數指定一個值(例如 "VOLT:DC:RANG 10"),除非您選擇語法中顯示的其他選項中的一項(例如 "VOLT:DC:RANG MIN")。
- 可選參數放在放括號內 ( [ ] )。 方括號不會隨命令串一起發送。 如果您未對可選參數指定數值,則儀器將使用默認值。
命令分隔符
冒號 (:) 隔開連續的關鍵字。 必須插入一個空格將參數與命令關鍵字分開。 如果一個命令需要多個參數,則用一個逗號分隔相鄰的參數:
CONF:VOLT:DC 10,0.003
分號( ; ) 分隔同一子系統中的兩個命令,並可最大限度地減少輸入。 例如,下列字符串:
TRIG:SOUR EXT;COUNT 10
等同於下面兩個命令:
TRIG:SOUR EXT
TRIG:COUNT 10
使用一個冒號和一個分號來鏈接不同子系統的命令。 例如,在下面的示例中,如果不使用冒號和分號,將會產生錯誤:
TRIG:COUN MIN;:SAMP:COUN MIN
使用 MIN、MAX 和 DEF 參數
可以用 "MIN" 或 "MAX" 代替很多命令的參數。 在某些情況下,您也可以使用 "DEF" 替換。 例如,參考下列例子:
VOLTage:DC:RANGe {<range>|MIN|MAX|DEF}
不用為 <range 參數選擇特定的值,可以用 MIN 參數將量程設置為最小值,用 MAX 參數將量程設置為最大值,或用 DEF 參數將量程設置為默認值。>
查詢參數設置
要查詢大多數參數的當前值,您可以添加問號 ( ? ) 給命令 例如,下面的示例將觸發計數設置為 10 次測量:
TRIG:COUN 10
然后,通過發送可以查詢計數值:
TRIG:COUN?
您也可以查詢所允許的最小或最大計數,如下所示:
TRIG:COUN? MIN
TRIG:COUN? MAX
SCPI 命令終止符
發送到儀器的命令串必須以一個<換行> (<NL) 字符(ASCII 十進制數字 10)結尾。> 可以將 IEEE-488 EOI(結束或標識)信息當做 <NL> 字符,並用來代替 <NL> 字符終止命令串。 一個<回車>后跟一個<換行>也是可行的。 命令串終止總是將當前的 SCPI 命令路徑復位到根級。
| 對於每個包括一個查詢並發送到儀器的 SCPI 消息,此儀器用一個<換行>或換行符 (EOI) 終止返回的響應。 例如,如果發送 R?,則在數據塊返回以后,用 <NL> 終止響應。 如果 SCPI 消息包括由分號隔開的多個查詢(例如 "ROUTe:TERMinals?;R?"),在對最后一次查詢響應以后,再次由 <NL> 終止返回的響應。 不論在哪種情況下,在將另一個命令發送到儀器之前,程序在響應中必須讀取此 <NL>,否則將會出現錯誤。 |
IEEE -488.2 通用命令
IEEE-488.2 標准定義了一組常用命令,可執行復位、自檢以及狀態操作等功能。 常用命令總是以星號 ( * ) 開始,長度為 3 個字符,並可以包括一個或多個參數。 命令關鍵字與第一個參數由空格分開。 使用分號 ( ; ) 可分隔多個命令,如下所示:
SCPI 參數類型
SCPI 語言定義了程序信息和響應信息所使用的幾種數據格式。
數值參數
要求使用數值參數的命令,支持所有常用的十進制數字表示法,包括可選符號、小數點和科學記數法等。 還可以接受數值參數的特殊值,如 MIN、MAX 和 DEF。 此外,還可以在數值參數后面添加單位(例如,M、k、m 或 u)。 如果命令只接受某些特定值,儀器自動將輸入的數值參數四舍五入為可用接受的值。 下面這條命令要求給數值參數設置范圍值:
VOLTage:DC:RANGe {<range>|MIN|MAX|DEF}
| 由於 SCPI 解析器不區分大小寫,會有些混淆字母 "M"(或 "m")。 為了方便起見,儀器將 "mV"(或 "MV")認作毫伏,但是將 "MHZ"(或 "mhz")認作兆赫。 同樣地,"MΩ"(或 "mΩ")被認作是 megΩ。 您可以使用前綴“MA”表示兆。 例如,將 "MAV" 認作兆伏。 |
離散參數
離散參數用於設置有限個參數值(例如 IMMediate、EXTernal 或 BUS)。 就象命令關鍵字一樣,它們也可以有短格式和長格式。 可以混合使用大寫和小寫字母。 查詢響應始終返回全部為大寫字母的短格式。 下面的示例要求將離散參數用於溫度單位:
UNIT:TEMPerature {C|F|K}
布爾參數
布爾參數代表一個真或假的二進制條件。 對於假條件,儀器將接受 "OFF" 或 "0"。 對於真條件,儀器將接受 "ON" 或 "1"。 當查詢布爾設置時,儀器始終返回 "0" 或 "1"。 下面的示例要求使用布爾參數:
DISPlay:STATe {ON|1|OFF|0}
