SCPI(Standard Commands for Programmable Instruments)は、試験機器および測定機器向けに設計されたASCIIベースの測定器コマンド言語です。SCPIコマンドは階層構造に基づいています。この構造は、ツリー・システムとも呼ばれます。このシステムでは、関連付けられたコマンドがコマンド・ノードまたはルートにまとめられ、サブシステムを形成します。OUTPutサブシステムの一部を以下に示し、ツリー・システムを説明します。
OUTPut:
SYNC {OFF|0|ON|1}
SYNC:
MODE {NORMal|CARRier}
POLarity {NORMal|INVerted}
OUTPutはルート・キーワード、SYNCは第2レベルのキーワード、MODEおよびPOLarityは第3レベルのキーワードです。コロン (:) によって、コマンド・キーワードをより低いレベルのキーワードから区別します。
コマンドを示すために使用する形式を以下に説明します。
[SOURce[1|2]:]VOLTage:UNIT {VPP|VRMS|DBM}
[SOURce[1|2]:]FREQuency:CENTer {<周波数>|MINimum|MAXimum|DEFault}
コマンド構文では、大文字と小文字を混在させてほとんどのコマンド(および一部のパラメータ)を示します。大文字はコマンドの省略形です。プログラム行を短くするには、省略した形式で送信します。プログラムを読みやすくするには、長い形式で送信します。
例えば、上の構文では、VOLTとVOLTAGEの両方の形式を使用できます。大文字と小文字を使用できます。したがって、VOLTAGE、volt、Voltはすべて使用できます。VOLやVOLTAGなどその他の形式は無効で、エラーが発生します。
コロン (:) を使用して、コマンド・キーワードを下位のキーワードと区切ります。コマンド・キーワードとパラメータを区切るには空白スペースを挿入する必要があります。2つ以上のパラメータが必要なコマンドの場合は、以下のようにカンマを使用して隣接するパラメータと区切る必要があります。
APPL:SIN 455E3,1.15,0.0
この例では、APPLyコマンドで周波数が455 KHz、振幅が1.15ボルト、DCオフセットが0.0ボルトの正弦波を指定しています。
同じサブシステム内のコマンドを区切るにはセミコロン(;)を使用します。これによって、入力を最小限に抑えることもできます。例えば、次のコマンド文字列を送信するとします。
TRIG:SOUR EXT; COUNT 10
これは、次の2つのコマンドを送信するのと同じです。
TRIG:SOUR EXT
TRIG:COUNT 10
多くのコマンドでは、パラメータの代わりに「MIN」または「MAX」を使用できます。また、「DEF」を使用できる場合もあります。例えば、以下のコマンドを検討してみます。
[SOURce[1|2]:]APPLy:DC [{<周波数>|DEF} [,{<amplitude>|DEF} [,{<offset>|MIN|MAX|DEF}]]]
<offset>パラメータに特定の値を選択する代わりにMINを使用してオフセットを最小値に設定したり、MAXを使用してオフセットを最大値に設定したりできます。また、DEFを指定し、<周波数>、<amplitude>、および<offset>パラメータのデフォルト値を設定することもできます。
ほとんどのパラメータは、コマンドに疑問符(?)を追加することによって、現在の値を問い合わせることができます。例えば、次のコマンドは、トリガ・カウントを10に設定します。
TRIG:COUN 10
その後、以下を送信してカウントの値を問い合わせることができます。
TRIG:COUN?
また、以下のように、許可されている最小カウントまたは最大カウントを問い合わせることもできます。
TRIG:COUN?MIN
TRIG:COUN?MAX
測定器に送信されるコマンド文字列は、<新規ライン>(<NL>)文字で終了する必要があります。IEEE-488 EOI(End-Or-Identify)メッセージは、<NL>文字として解釈されるため、コマンド文字列を終了するのに<NL>文字の位置に使用することができます。<キャリッジ・リターン>の後に続く<NL>も受け付けられます。コマンド文字列の終了によって、現在のSCPIコマンド・パスは必ずルート・レベルにリセットされます。
IEEE-488.2標準では、リセット、セルフテスト、ステータス・オペレーションなどの機能を実行する一連の共通コマンドを定義しています。共通コマンドは常にアスタリスク(* )で始まり、3文字で、パラメータを1つ以上含めることができます。コマンド・キーワードは空白スペースによって最初のパラメータと区切ります。複数のコマンドを区切るには、以下に示すようにセミコロン(;)を使用します。
SCPI言語は、プログラム・メッセージと応答メッセージに使用する複数のデータ・フォーマットを定義します。
数値パラメータを必要とするコマンドには、任意符号、小数点、科学的記数法を含め、一般的に使用されている数字の十進表現をすべて使用できます。数値パラメータにはMIN、MAX、DEFなどの特殊な値も使用できます。数値パラメータ付きの工学単位のサフィックス(例: M、k、m、またはu)も送信できます。特定の値のみを使用できるコマンドの場合、入力された数値パラメータは、使用できる値に自動的に丸められます。次のコマンドでは、周波数値に数値パラメータが必要です。
[SOURce[1|2]:]FREQuency:CENTer {<周波数>|MINimum|MAXimum}
|
SCPIパーサは大文字と小文字を区別しないため、文字「M」(または「m」)については混乱が生じます。便宜上、測定器は「mV」(または「MV」)をミリボルトと解釈しますが、「MHZ」(または「mhz」)をメガヘルツと解釈します。同様に、「MΩ」(または「mΩ」)をメガオームと解釈します。プレフィクス「MA」を使用してメガを表すことができます。例えば、「MAV」はメガボルトと解釈されます。 |
IMMediate、EXTernal、BUSのように、限定された数の値を持つ設定をプログラミングするには離散パラメータを使用します。これらのパラメータには、コマンド・キーワードと同様に短い形式と長い形式が存在する場合があります。大文字と小文字を混在させることができます。問合せへの応答は常にすべて大文字の短い形式で返されます。次のコマンドには、電圧単位に離散パラメータが必要です。
[SOURce[1|2]:]VOLTage:UNIT {VPP|VRMS|DBM}
論理値パラメータは、単一のバイナリ状態を表します。つまり、trueまたはfalseのいずれかです。false状態では、測定器は「OFF」または「0」を受け入れます。true状態では、測定器は「ON」または「1」を受け入れます。論理設定を問い合わせると、測定器は常に"0"または"1"を返します。次のコマンドでは、論理パラメータが必要です。
DISPlay {OFF|0|ON|1}
文字列パラメータには事実上、どんなASCII文字でも含めることができます。文字列の先頭と末尾には同じ引用符を使用する必要があります。一重引用符と二重引用符のいずれも使用できます。間に文字を入れずに2個入力すると、区切り用の引用符を文字列の一部に含めることができます。次のコマンドは文字列パラメータを使用します。
DISPlay:TEXT <引用される文字列>
例えば、次のコマンドは「WAITING...」というメッセージを測定器のフロント・パネルに表示します(引用符は表示されません)。
DISP:TEXT "WAITING..."
一重引用符を使用しても同じメッセージを表示できます。
DISP:TEXT 'WAITING...'
デバイス・クリアはIEEE-488の低レベル・バス・メッセージで、測定器を応答可能状態に戻すことができます。さまざまなプログラミング言語とIEEE-488インタフェース・カードで、固有のコマンドを通じてこの機能を利用できます。デバイス・クリア・メッセージを受信した場合、ステータス・レジスタ、エラー・キュー、およびすべての構成状態は変更されずにそのまま残ります。
デバイス・クリアは、以下の操作を実行します。
|
測定器の動作を終了させるには、ABORtコマンドの使用をお勧めします。 |