

プログラマブル計測機器用標準コマンド(SCPI 、しばしば「スキッピー」と発音される)は、自動試験装置や電子試験装置などのプログラマブル試験・計測機器を制御する際に使用する構文とコマンドの標準を定義している。[ 3 ]
SCPIは、 IEEE 488.2-1987仕様「標準コード、フォーマット、プロトコル、および共通コマンド」の上に重ねられた追加レイヤーとして定義されました。 [ 4 ]この規格は、すべての計測器で使用される共通の構文、コマンド構造、およびデータフォーマットをCONFigure規定しています。また、あらゆる計測器で使用できる汎用コマンド(などMEASure)を導入しました。これらのコマンドはサブシステムにグループ化されています。SCPIは、いくつかの計測器クラスも定義しています。たとえば、制御可能な電源はすべて同じDCPSUPPLY基本機能クラスを実装します。計測器クラスは、実装するサブシステムと、計測器固有の機能を指定します。
SCPI では、物理ハードウェア通信リンク (物理層) は定義されていません。[ 5 ] SCPI は元々IEEE-488.1 (GPIB) バス用に作成されましたが、[ 5 ] RS-232、RS-422、RS-485、USB、イーサネット、VXIbus、HiSLIPなどでも使用できます。 [ 5 ]
SCPIコマンドはASCIIテキスト文字列であり、[ 5 ]物理層を介して機器に送信されます。[ 5 ]コマンドは1つ以上のキーワードの連続であり、その多くはパラメータを受け取ります。仕様では、キーワードは次のように記述されますCONFigure。キーワード全体を使用することも、大文字の部分のみに省略することもできます。クエリコマンドへの応答は通常ASCII文字列です。ただし、大量のデータの場合はバイナリ形式を使用できます。[ 3 ]
SCPI仕様は、第1巻「構文とスタイル」、第2巻「コマンドリファレンス」、第3巻「データ交換フォーマット」、第4巻「計測器クラス」の4巻から構成されています。この仕様は当初、有料の印刷マニュアルとして公開されましたが、後に4巻すべてを収録した無料のPDFファイルとして公開されました。[ 3 ]
1990 年に初めてリリースされた SCPI は、IEEE-488の追加レイヤーとして誕生しました。 [ 3 ] [ 6 ] IEEE-488.1 は物理バスと電気バスを規定し、IEEE-488.2 はプロトコルとデータ形式を規定しましたが、どちらも計測器コマンドを規定していませんでした。同じタイプの計測器でも、メーカーやモデルによってコマンドセットが異なっていました。SCPI は、すべてのメーカーとモデルで共通となる標準を作成しました。IEEE-488.2 データ形式の使用を要求しますが、IEEE-488.1 バスの使用は義務付けていません。[ 7 ]
2002年から2003年にかけて、SCPIコンソーシアムはIVI財団(Interchangeable Virtual Instruments)の一部となることを決定した。 [ 7 ]
1987年にIEEEはIEEE 488.2-1987仕様「標準コード、フォーマット、プロトコル、および共通コマンド」を発表し、その後1992年にIEEE 488.2-1992として改訂されました。[ 8 ]
IEEE 488.2 はデバイスに依存しない構文を提供しましたが、機器固有のコマンドの標準はまだありませんでした。マルチメーターなどの同じクラスの機器を制御するコマンドは、メーカーやモデルによっても異なっていました。米国空軍[ 9 ]、そして後にヒューレット・パッカードはこの問題を認識しました。1989 年、HP はSCPI の前身となるTML 言語[ 10 ]を開発しました。
IECはIEEE と並行して独自の規格である IEC 60625-2-1993 (IEC 625) を開発しました。2004 年に、IEEE と IEC はそれぞれの規格を統合して「デュアル ロゴ」の IEEE/IEC 規格IEC 60488-2-2004、パート 2: コード、フォーマット、プロトコルおよび共通コマンド[ 11 ]を作成し、IEEE 488.2-1992 と IEC 60625-2-1993 [ 12 ]を置き換えました。
SCPIコマンドは、機器に対して設定操作(電源のオン/オフなど)または照会操作(電圧の読み取りなど)のいずれかを実行します。照会は、コマンドの末尾に疑問符を付けることで機器に発行されます。一部のコマンドは、機器の設定と照会の両方に使用できます。たとえば、機器のデータ取得モードは、ACQuire:MODeコマンドを使用して設定することも、コマンドを使用して照会することもできますACQuire:MODe?。一部のコマンドは、機器の設定と照会を同時に実行できます。たとえば、*CAL?コマンドは、一部の機器で自己校正ルーチンを実行し、校正結果を返します。
類似のコマンドは階層構造または「ツリー」構造にグループ化されます。[ 3 ] 例えば、計測器から測定値を読み取る命令はすべて「MEASure」で始まります。階層内の特定のサブコマンドはコロン(:)文字でネストされます。例えば、「直流電圧を測定する」コマンドは の形式になりMEASure:VOLTage:DC?、「交流電流を測定する」コマンドは の形式になりますMEASure:CURRent:AC?。
:測定 :電圧 :DC? :AC? :現在 :DC? :AC? ...
上記のコマンド構文ではコマンドが大文字と小文字を混在して表示されていますが、SCPI は大文字と小文字を区別しません。
VOLTage、次のすべてが有効な表現です: VOLTAGE、voltage、Voltage、VoLtAgE。コマンド構文では、一部の文字が大文字と小文字が混在して表示されます。コマンドを省略して大文字のみを送信することは、大文字と小文字の両方を送信することと同じ意味になります。[ 3 ]
SYSTem:COMMunicate:SERial:BAUD 2400」はRS-232シリアル通信インターフェースを2400ビット/秒に設定します。これは「 」と省略することもできますSYST:COMM:SER:BAUD 2400。クエリコマンド「SYSTem:COMMunicate:SERial:BAUD?」または「SYST:COMM:SER:BAUD?」は、機器に現在のボーレートを報告するように指示します。有効なコマンドは、各コマンドの短縮形と完全形のみであり、その他の派生形はすべて無効です。
COMMunicateのみが有効ですが、、、の部分集合は無効であり、 のように末尾に文字を追加しても無効です。COMMCOMMUNICATECOMCOMMUNCOMMUNICCOMMUNICATED複数のコマンドを1つの文字列で楽器に発行できます。それらはセミコロン文字(;)で区切られた単純なコマンドで構成されます。
MEASure:VOLTage:DC?;:MEASure:CURRent:AC?。コロン(:)で始まる単純なコマンドは、コマンドツリーのルートを基準として解釈されます。それ以外の場合は、前のコマンドの最後のノードを暗黙的に参照します(既にアスタリスクで始まっている場合を除く)。たとえば、
:ソース:周波数:開始100;停止200
メッセージの略記
:ソース:周波数:開始 100;:ソース:周波数:停止 200
現在のパスは、改行文字、*RSTコマンド、およびデバイスの初回電源投入時にルートにリセットされます。
一部のコマンドは、1 つ以上の追加引数を受け入れるか、または必要とします。引数はコマンドの後に指定され、スペースを使用してコマンドと区切られます。[ 11 ] たとえば、計測器のトリガー モードを「normal」に設定するコマンドは、「TRIGger:MODe NORMal」のように指定できます。ここで、「 」という単語は、 NORMal「 」コマンドの引数として使用されますTRIGger:MODe。複数の引数が指定されている場合は、引数はコンマで区切られたリストとして記述されます。たとえば、デジタル マルチメータで 10 VRMS 測定範囲を使用して AC 電圧測定を実行し、測定された電圧値を 4-1/2 桁の分解能で表示するクエリ コマンドは、「 」のように記述されます。MEASure:VOLTage:AC? 10,4
整数引数を受け入れるコマンドの場合、値は複数のコンピュータ数値形式(10進数、16進数、8進数、2進数)で指定できます。最後の 3 つの形式は、SCPI のベースとなっているIEEE 488.2 [ 11 ]で定義されています。 [ 3 ] 10進数 (基数10) には接頭辞は付きません。16進数 (基数 16) にはまたは、 8進数 (基数 8) にはまたは、2 進数 (基数 2) にはまたは が接頭辞として付きます。16 進数の数字には、大文字 (ABCDEF)、小文字 (abcdef)、または大文字と小文字が混在した文字 (aBcDeF) のいずれかを使用できます。8進数では、数字の「 0 」(ゼロ)との視覚的な混同を最小限に抑えるため、文字「 O 」の代わりに文字「 Q」が選択されました。[ 11 ]#H#h#Q#q#B#b
以下の引数の例は、数値的に同等です。
26#H1Aまたは#h1a#Q32または#q32#B11010または#b11010SCPIはIEEE 488.2仕様の上に追加されたレイヤーとして定義されているため、SCPI準拠デバイスはさまざまな488.2コマンドも認識する必要があります。[ 3 ]これらのコマンドは、アスタリスク 文字 で始まるため、非公式にはアスタリスクコマンド(またはスターコマンド)としても知られています*。
SCPI第1巻のセクション4.1.1によると、すべてのSCPIデバイスは次の488.2コマンドを実装する必要があります。[ 3 ] 実際のところ、一部の低価格テスト機器はこれらの488.2コマンドの一部のみをサポートしている場合や、コマンドは受け入れても操作を実行しない場合があります。ユーザーは、これらの488.2コマンドすべてがサポートされていると想定する前に、各デバイスの公式プログラマーマニュアルを確認する必要があります。
*CLS*ESE*ESE?*ESR?*IDN?*OPC*OPC?*RST*SRE*SRE?*STB?*TST?*WAISCPI第1巻のセクション4.1.2によると、上記に記載されていないその他の488.2コマンドはすべてオプションであり、SCPIでは必須ではないとされています。[ 3 ]
*AAD*CAL?*DDT*DDT?*DLF*DMC*EMC*EMC?*GMC?*IST?*LMC?*LRN?*OPT?*PCB*PMC*PRE*PRE?*PSC*PSC?*PUD*PUD?*RCL*RDT*RDT?*SAV*TRG*RMC*SDS1990年、IEEE 488.2仕様には、プログラマブル計測機器の標準コマンド(SCPI)文書が含まれていました。
{{cite web}}: CS1メンテナンス: アーカイブサービスは非推奨になりました (リンク)