Standard Commands for Programmable Instruments![]() ![]() Standard Commands for Programmable Instruments(SCPI,「スキッピー」と発音される) は、半導体試験装置や電気計器など、プログラマブルな試験機・測定機の制御に用いる文法の標準を定めたものである[3]。 概要SCPIは、IEEE 488.2-1987 規格 "Standard Codes, Formats, Protocols, and Common Commands(標準コード、フォーマット、プロトコル、共通コマンド)" [4] の上部に置かれる追加レイヤとして定められた。この規格は、様々な機器で用いられる共通文法、コマンド構造、データ型、を規定する。例えば 物理的なハードウェア通信リンク (物理層)は SCPI では定義されない。SCPI はもともと IEEE-488.1 (GPIB) バス向けに開発されたが、RS-232, RS-422, RS-485, USB, Ethernet, VXIbus, HiSLIP, などでも利用できる[5]。 SCPI コマンドは ASCII テキストの文字列で、物理層を介して測定器に送信される。コマンドは、ひとつ以上のキーワードと、それらがとるパラメータからなる。仕様では、キーワードは SCPI 規格は、Volume 1: "Syntax and Style(文法とスタイル)", Volume 2: "Command Reference(コマンドリファレンス)", Volume 3: "Data Interchange Format(データ交換フォーマット)", Volume 4: "Instrument Classes(計測器クラス)" の4部からなる。この規格は当初は有料の印刷物としてリリースされたが、のちにすべての部分を含む無料の PDF ファイルとして公開され、2025 年 1 月現在でも利用できる[3]。 SCPI の歴史最初にリリースされた 1990 年の時点[6] では、SCPI は IEEE-488 の追加レイヤであった。IEEE-488.1 はバスの物理・電気特性を規定し、IEEE-488.2 はプロトコルとデータ型を規定した。しかしいずれも計測器コマンドは規定していなかった。同じような計測器でも、製造メーカーが異なれば、あるいはモデルが異なれば、違うコマンドセットが用いられることがあった。SCPI は、製造メーカーやモデルが異なっても共通となる標準を作ったのである。SCPI は IEEE-488.2 のデータ型を用いることを要求するが、IEEE-488.1 バスには依存していない[7]。 2002-2003 年の投票の結果、SCPI コンソーシアム (SCPI Consortium) は IVI Foundation (Interchangeable Virtual Instruments) に属することになった[7]。 IEEE 488.2 の歴史1987年に IEEE は IEEE 488.2-1987 規格 "Standard Codes, Formats, Protocols, and Common Commands" を公開し、これは後に 1992 年に改訂されて IEEE 488.2-1992 となった[8]。 IEEE 488.2 はデバイスに依存しない文法を定めているが、機器ごとに固有のコマンドについての標準は存在しなかった。同じクラスの機器(例えばマルチメータ)を制御するためのコマンドは、製造メーカーやモデルによって異なっていた。1985 年にアメリカ空軍が[9]、のちにヒューレット・パッカード (HP) が、この問題に気付いた。1989年に HP は TML 言語を開発し[10] 、これが SCPI の前身となった。 IEC も独自の標準を IEEE とは別に開発し、IEC 60625-2-1993 (IEC 625) となった。2004 年に IEEE と IEC はそれぞれの標準を合流させて「ふたつの顔」を持つ IEEE/IEC 標準 IEC 60488-2-2004, Part 2: Codes, Formats, Protocols and Common Commands とし[11]、これをもって IEEE 488.2-1992 および IEC 60625-2-1993 を置き換えることとした[12]。 コマンド文法機器に対する SCPI コマンドは、「設定 (set)」操作(例えば電源をオンにするなど)と「問い合わせ (query)」操作(例えば電圧を読むなど)のふたつに分類される。機器への問い合わせは、コマンドの末尾に疑問符 (?) を付加することによって発行される。いくつかのコマンドは、設定にも問い合わせにも用いられる。例えば、機器をデータ取得モードに設定するには 似通ったコマンドは、「木」構造のヒエラルキーにグループ化される。例えば、機器から測定結果を読み込む命令は " :MEASure :VOLTage :DC? :AC? :CURRent :DC? :AC? ... 大文字小文字ここまでに示してきたコマンドでは大文字小文字が混ざっていたが、SCPI はケース・センシティブではない。
コマンドの短縮コマンドの説明において、大文字と小文字の混ざった表示がされることがある。このとき、コマンドを短縮して大文字部分だけを送信することと、大文字・小文字の全体を送信することとは同じ意味を持つ。
有効なのは大文字部分のみ、ないし全体のいずれかに限られ、それ以外の部分文字列は不正となる。
コマンドの結合機器に対して、1 行で複数の命令を発行することもできる。これには各々のコマンドをセミコロン文字 (;) で区切ればよい。
コロン (:) で始まる単体のコマンドは、コマンドツリーの根に対するものと解釈される。そうでない単体コマンドは、直前のコマンドの最終ノードに対するものと解釈される(ただしアスタリスク (*) で始まるものは除く)。例えば、 :SOURce:FREQuency:STARt 100;STOP 200 は以下のメッセージの短縮版である。 :SOURce:FREQuency:STARt 100;:SOURce:FREQuency:STOP 200 引数コマンドによっては、ひとつ以上の引数 (argument) を受け付ける、ないし要求することがある。引数を指定する場合はコマンドの後ろにスペースを置き、その後ろに引数を書く[11]。例えば、機器のトリガモードを "normal" に設定するには、" 整数の引数整数を指定するコマンドでは、整数の表現として、10進、16進、8進、2進、を利用できる。10進以外の3つはIEEE 488.2 で定義されており[11]、SCPI もこれに準拠している。10進数は前置文字を指定しない。16進数は 以下に例を示す引数は、いずれも同じ数値を表している:
488.2 コマンドSCPI は IEEE 488.2 規格の追加レイヤとして定められたため、SCPI に準拠する機器は 488.2 のコマンド群も認識しなければならない。これらのコマンドはアスタリスク文字 (*) で始まるため、(非公式に)アスタリスクコマンドとかスターコマンドなどと呼ばれる。 SCPI Volume 1 の 4.1.1 節によれば、すべての SCPI コマンドは以下に示す 488.2 コマンドを実装していなければならない。実際には、ローエンドの機器などでは、488.2 コマンドの一部のみをサポートしている、あるいはコマンドを受け付けるがなにもしない、場合がある。これらの 488.2 コマンドを利用できるかどうかは、各々の機器に付属の公式プログラミングマニュアルを参照して確認するとよい。
SCPI Volume 1 の 4.1.2 節によれば、上にリストしたもの以外の 488.2 コマンド(下記)は必須ではなく、SCPI はこれらを要求しない。
関連項目
脚注
外部リンク
プログラミングマニュアルの例
|
Portal di Ensiklopedia Dunia