## メッセージフォーマット

### プログラム・メッセージ

プログラム・メッセージは、コマンド・メッセージとクエリ・メッセージに分けることができます。

#### コマンド・メッセージ

機器の設定、リセットなどの機器を制御する命令

#### クエリ・メッセージ

動作結果、測定結果、または機器の設定状態を問い合わせる命令

### 応答メッセージ

クエリ・メッセージを受信して、構文をチェックした時点で作成します。

ヘッダの有無を"HEADer"コマンドで選択できます。

ヘッダON :LEVEL:VOLTAGE 1000

ヘッダOFF 1000

（現在の印加電圧は1000V）

- 電源投入時は、ヘッダOFF に設定されます。
- クエリ・メッセージを受信したときに、何らかのエラーが発生した場合は、そのクエリ・メッセージに対する応答メッセージは作成されません。

### コマンド・シンタックス

コマンド名は、実行しようとする機能にできるだけ理解しやすい言語が選ばれ、しかも短縮が可能です。

コマンド名そのものをロングフォーム、短縮したものをショートフォームといいます。

本書では、ショートフォームの部分を大文字で、残りの部分を小文字で記述しますが、大文字と小文字のどちらでも受け付けます。

VOLTAGE | OK（ロングフォーム）
VOLT | OK（ショートフォーム）
VOLTa | エラー
VOL | エラー

本体からの応答メッセージは、すべて大文字のロングフォームで返されます。

### ヘッダ

ヘッダは、何を制御するかを表します。プログラム・メッセージには、必ずヘッダが必要です。

#### コマンド・プログラム・ヘッダ

単純コマンド型、複合コマンド型、共通コマンド型の3種類があります。

- 単純コマンド型ヘッダ
- 英数字から始まる1語で構成されるヘッダ
- :HEADer
- 複合コマンド型ヘッダ
- コロン":"で区切られる複数の単純コマンド型ヘッダで構成されるヘッダ
- :BEEPer:KEY
- 共通コマンド型ヘッダ
- 共通コマンドであることを示すアスタリスク"*"で始まるヘッダ
- （IEEE488.2で規定されたもの）
- *RST

#### クエリ・プログラム・ヘッダ

機器のコマンドに対する動作確認、測定結果、または現在の機器の設定状態を問い合わせるために使用します。

下の例のように、プログラム・ヘッダの後にクエスチョンマーク"?"を付けるとクエリとして認識されます。

:LEVel:VOLTage?

### メッセージ・ターミネータ

メッセージ・ターミネータは、コマンドの終了を表します。

本器は、メッセージ・ターミネータとして次のものを受け付けます。

ST4030シリーズでは、メッセージ・ターミネータ、または、メッセージ単体セパレータをを確認してからメッセージを解析します。

また、応答メッセージのターミネータとして、インターフェイスの設定によって次のものが選択できます。

### セパレータ

#### メッセージ単体セパレータ（セミコロン）

複合メッセージを実行するときに使用します。

複合メッセージは、それぞれセミコロン";"でつなげることで、1行で記述することができます。

メッセージを続けて記述した場合、文中でコマンドエラーが起こると、それ以降からターミネータまでのメッセージは実行されません。

（例） :RAN:AUTO ON;:BEEPer:KEY ON;*IDN?を実行すると、 :RAN:AUTOがコマンドエラーなので、それ以降の BEEPer:KEY ON;*IDN?は実行されません。

#### ヘッダ・セパレータ（スペース）

ヘッダとデータを持つメッセージは、スペース(空白)を使用することで、ヘッダ部とデータ部に分離します。

#### データ・セパレータ（コンマ）

複数のデータを持つメッセージは、データ間をコンマ","で分離します。

### データ部

命令の内容を表します。

本器では、データ部に"文字データ"と"10進数値データ"を使用し、コマンドにより使い分けます。

#### 文字データ

必ず英文字で始まり、英文字と数字で構成されるデータです。文字データは、大文字と小文字の両方で受け付けますが、 本器からの応答メッセージは必ず大文字で返します。

:MODE SETTing

#### 10進数値データ

数値データのフォーマットには、NR1、NR2、NR3形式があります。

それぞれ符号付き数値、符号なし数値の両方を受け付けます。

符号なし数値の場合、正の数値として扱います。

また、数値の精度が本器の取扱範囲を超える場合、四捨五入します。

NR1 | 整数データ（例：+12, -23, 34）
NR2 | 小数データ（例：+1.23, -23.45, 3.456）
NR3 | 浮動小数点指数表示データ（例：+1.0E-2, -2.3E+4）

以上の3種類の形式をすべて含む形式を"NRf形式"と呼びます。

本器では、NRf形式で受け付けます。

応答データに関しては、コマンドごとにフォーマットを指定しており、その形式で送信します。

:LEVel:VOLTage 1000

:AREA:LIMit 1.0

データを持つコマンドは、極力指定されたデータ形式で入力してください。

### 複合コマンド型ヘッダの省略

複合コマンドの中で、先頭の部分が共通であるもの（例 :BEEPer:KEYと :BEEPer:JUDGmentなど)は、これらを続けて記述する場合に限り、コマンドの共通部分(例 :BEEPer:)を省略することができます。

この共通部分は"カレント・パス"と呼ばれ、これがクリアされるまではそれ以降のコマンドは、『カレント・パスを省略したもの』と判断して解析を行ないます。

カレント・パスの使用方法を以下の例に示します。

カレント・パスは、電源投入、インターフェイスの種類の変更、デバイスクリア（GP-IBのみ）、コマンドの先頭のコロン":"、およびメッセージ・ターミネータの検出でクリアします。

共通コマンド型のメッセージは、カレント・パスに関係なく実行可能です。また、カレント・パスに影響を与えません。

単純および複合コマンド型ヘッダの先頭にコロン":"を付ける必要はありません。ただし、省略形との混乱と誤動作を防ぐために、弊社では、コマンドの先頭に":"を付けることを推奨しています。