2. SCPIコマンドの概要
1975年にIEEEは、Heweltt-Packardが開発したバスを規格化しました。これは当初HPIB(Hewlett-Packard Interface Bus)という名前でしたが、後にGPIB(General Purpose Interface Bus)と呼ばれるようになりました。この規格はIEEE 488(IEEE 488.1)という名称で、バスの機械的側面を定義していました。後にIEEE 488.2によってそのプロトコル特性が定義されました。一方、測定器を制御するコマンドをメーカーの間で統一するためのルールは存在しませんでした。同じメーカーのモデルの間でさえ、コマンドが異なる場合がありました。
1990年に、SCPI Consortiumが、最初のSCPI規格(Standard Commands for Programmable Instruments)を、IEEE-488.2規格の追加レイヤーとしてリリースしました。
SCPIコマンドはASCII文字列であり、物理通信層を通じて測定器に送信されます。これらのコマンドには以下の機能があります。
- 設定操作。例:*RSTコマンド(測定器のリセット)。
- 問い合わせ操作。例:*IDN? 問い合わせ(測定器の識別文字列の問い合わせ)。
一部のSCPIコマンドには、設定コマンドと問い合わせコマンドの両方があります。例としては、オシロスコープの収集時間コマンド "TIMebase:ACQTime" が挙げられます。これを設定するにはSCPIコマンド "TIM:ACQT 10ms" を使い、現在の値を問い合わせるには "TIM:ACQT?" を使用します。
ローデ・シュワルツのユーザ・マニュアルで用いられている形式(例:"TRIGger<m>:LEVel<n>[:VALue] <Level>")は、標準形式と呼ばれます。以下に示す規則は重要なので覚えておいてください。
- 角括弧の中の部分は必須ではなく、省略できます。
- 大文字の部分は必須であり、小文字の部分は省略可能です。これは短縮形と呼ばれます。上記のコマンドの例を短縮形で表せば "TRIG1:LEV2 3.5" となります。短縮形の他に完全系 "TRIGGER1:LEVEL2 3.5" も使用できますが、その中間の形式(例:"TRIGGE1:LEVE2 3.5")は使用できません。
- SCPIコマンドの大文字と小文字は区別されません。短縮形として "trig1:lev2 3.5" または完全系として "trigger1:level2 3.5" も使用できます。
- 複数のコマンドを1つの文字列に結合するには、セミコロン ';' を使用します。例えば、"TRIG1:SOUR CH1" と "TRIG1:LEV2 3.5" を結合すると、"TRIG1:SOUR CH1;LEV 2" となります。2番目のコマンドに "TRIG1:" の部分がないことに注意してください。その理由は、1つの文字列の中ではコマンドツリーのパスが変化しないからです。コマンドツリーのパスをルートにリセットするには、2番目のコマンドの先頭にコロン文字を置いて、"TRIG1:SOUR CH1;:CHAN2:STATe ON" のように記述します。
- 問い合わせ形式を作成するには、ほとんどの場合末尾に疑問符を追加して、"TRIG1:LEV2?" のように記述します。ときには、疑問符の後に追加パラメータが置かれる場合があります。疑問符と追加パラメータの間にはスペース文字を置く必要があります。例:"TRACE:DATA? ALL"
- 数値パラメータに単位を指定しないと、基本単位とみなされます。ここでの例では、数値パラメータ3.5は3.5 Vを表します。
SCPI規格全体はこちらから参照できます:SCPI-99
ローデ・シュワルツによるSCPIの詳細な説明はこちらにあります:SCPI経由でのリモート制御