SCPI 語言簡介


電子負載中需要用到,所以記錄下。來源是德科技

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 個字符,並可以包括一個或多個參數。 命令關鍵字與第一個參數由空格分開。 使用分號 ( ; ) 可分隔多個命令,如下所示:

*RST; *CLS; *ESE 32; *OPC?

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}

ASCII 字符串參數

字符串參數實際上可包含所有 ASCII 字符集。 字符串必須以配對的引號開始和結尾;可以用單引號或雙引號。 引號分隔符也可以作為字符串的一部分,只需鍵入兩次並且不在中間添加任何字符。 下面這個命令使用了字符串參數:

DISPlay:TEXT <quoted string>

例如,下面的示例在儀器的前面板上顯示了信息 "WAITING..." (不顯示引號)。

DISP:TEXT "WAITING..."

還可以使用下面的示例用單引號顯示同一信息。

DISP:TEXT 'WAITING...'

使用設備清除

設備清除是一個 IEEE-488 低級的總線消息,可用於將儀器返回到響應狀態。 不同的編程語言和 IEEE-488 接口卡通過其特有的命令來提供對該功能的使用。 當收到設備清除信息時,狀態寄存器、錯誤隊列以及所有配置狀態都保持不變。

設備清除執行以下操作:

  • 如果正在測量時,則其被終止。
  • 儀器返回到觸發“空閑”狀態。
  • 清除儀器的輸入和輸出緩沖區。
  • 儀器准備好接受新的命令串。
  • 重復的命令(即便需要)將被終止而無需“操作完成”指示(適用於 INIT)。
注意

ABORt 命令是終止測量的建議方法。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM