デバイスとの通信
テストおよび計測デバイスとの通信は、主に setValue、query、perform コマンドおよび関数を使用して行います。これらは、原始的な SCPI コマンドよりも読みやすく使いやすいスタイルでデバイスへの基本的な SCPI 通信を提供します。setValue と query の場合、defaultChannel や defaultIdentifier が設定されている場合、チャネルと識別子の使用を簡素化します。
SenseTalkでは、ほとんどの関数をコマンドまたは関数として呼び出すことができます。query または queryData をコマンドとして呼び出すと、返される値は変数 it に格納されます。
SCPI コマンドと関数
コマンドパラメータ
SetValue、query、queryData、および perform はすべて、SCPI コマンドを含む文字列パラメータを取ります。この文字列のコマンド名部分を次のように記述することができます:
- SCPI 構文に準拠した生の SCPI コマンド。
- デバイスに送信するときに SCPI に変換される英語風の形式。
コマンド文字列
すべての SCPI コマンド文字列では、コマンドの単語間に空白を使用することで、コロン : の代わりに可読性を高めることができます。例えば、電圧を測定する SCPI コマンドを "MEAS:VOLT" ではなく "Measure voltage" と書くことができます。大文字小文字は問いません。
特殊フレーズ
あなたのコマンドには以下の特殊フレーズも含めることができ、コマンド文字列内の任意の順序で出現できます:
-
on channel <channel>: コマンドのチャンネルを<channel>に設定します。これはdefaultChannelが設定されている場合に上書きします。例:
"measure voltage on channel 3" -
for <identifier>: コマンドの識別子を<identifier>に設定します。これはdefaultIdentifierが設定されている場合に上書きします。例:
"power state for M1.DataOut1" -
to <value>: パラメータ値を提供します。これは、コマンド文字列の外部に与えられたパラメータよりも前、および加えて使用されます。例:
"frequency center to 50mHz" -
no overlap: スクリプトが進行する前にデバイスが操作を完了することを確認します。これはデバイス上のAllowOverlappedCommands設定を上書きします。例:
"Radio ARB trigger external delay state No overlap" -
allow overlap: デバイスが操作を開始することを許可します。これは、スクリプトが進行する前に必ずそれを完了する必要はありません。これはデバイス上のAllowOverlappedCommands設定を上書きします。例:
"memory data PRAM allow overlap"
次のコマンドでは特殊フレーズを 使用することができます:
performqueryDatasetValuequery。
例:
setValue "M1.DataOut1に対する出力状態をオンに" --> SCPIコマンド生成: "OUTPUT:STATE 'M1.DataOut1', ON"。
query "channel 2での電圧測定" --> SCPIコマンド生成: "MEASURE:VOLTAGE? (@2)"。
perform "initiate no overlap" --> SCPIコマンド生成: "INITIATE;*OPC?"。
特殊フレーズは、そのままのコマンドをデバイスに送信するExecuteSCPIには適用されません。
パラメータ
パラメータ値は以下のように一つ以上含めることができます:
- コマンド文字列の後の別々の値。
- 文字列内の
to <value>オプションを使用した単一のパラメータ。
例:
setValue "M1.DataOut1に対する出力状態をオンに" --> SCPIコマンド生成: "OUTPUT:STATE 'M1.DataOut1', ON"。
setValue "channel 2上の電圧", 170 millivolts // channel 2上の電圧を170ミリボルトに設定します。
setValue "calibrate stateをonに", password // 調整をオンにします。
Tellコマンドの使用
このセクションの例のほとんどは、以下のいずれかを使用しています:
-
デバイスへのコマンドメッセージを送信する
tellコマンド。例:
tell powerAnalyzer … -
関数メッセージを送信するドット記法。
例:
powerAnalyzer.query("measure voltage")
もう一つの方法は、tell ブロックを使用することです。tell ブロックは tell powerAnalyzer のような行で始まり、end tell の行で終わります。それはブロック内のすべての関連コマンドと関数呼び出しをデバイスに向けます。tell ブロックを使用することは、通常、すべてのコマンドと関数でデバイスを指定する必要を避けるため、最も便利なアプローチです。
SetValue コマンド
Behavior: テスト と測定デバイスへの設定を送信します。
Parameters: 測定装置の種類に特有の設定。必要に応じて、このコマンドはパラメータなしで使用することもできます。
setValue scpiCommandOrPhrase {, value}
パラメータを使用した例:
tell powerAnalyzer to setValue "voltage", 3.5 // デバイス上の電圧を3.5に設定します。
tell powerAnalyzer to setValue "channel 2での出力をオンに" // channel 2の電力出力をオンにします。
tell powerAnalyzer to setValue "channel 2での電圧を3.5vに" // channel 2上の電圧を3.5ボルトに設定します。
パラメータなしの例:
tell powerAnalyzer to setValue "initialize"
Query 関数
Behavior: デバイスから情報を要求します。例えば:"MEAS:VOLT?" のような SCPIコマンドの末尾に ? があるもの。関数はあなたのために ? を提供します。
Parameters: サポートされているSCPIパラメータ。
query( scpiCommandOrPhrase )
例:
put powerAnalyzer.query("measure voltage") into actualVoltage // デバイス上の測定電圧を変数に格納します。
QueryData 関数
Behavior: デバイスからのバイナリデータ、例えば画面イメージやファイル内容を要求します。
setValue や query とは異なり、queryData 関数は自動的に defaultChannel や defaultIdentifier を含みません。
Parameters: サポートされているSCPIパラメータ。
queryData( scpiCommandOrPhrase )
Returns: 特定のSCPIコマンドのバイナリデータ。
例:
put powerAnalyzer.queryData("HCopy SDump data") into screenDumpData // デバイスからの画面ダンプデータを変数に格納します。
Perform コマンドと関数
Behavior: デバイスでアクションを実行し、そのアクションからの値を返します。
setValue や query とは異なり、perform コマンドは自動的に defaultChannel や defaultIdentifier を含まず、そのためチャネルや識別子が必要でないコマンドに役立ちます。
Parameters: サポートされているSCPIコマンド。
コマンド 構文:
perform scpiCommandOrPhrase {, value}
関数 構文:
perform( scpiCommandOrPhrase {,value} )
{the} perform of scpiCommandOrPhrase
例:
tell powerAnalyzer to perform "status preset" // デバイスを工場出荷時の設定にリセットします。
tell powerAnalyzer to perform "system date", "2021,04,03" // デバイス上のシステム日付を設定します。
put powerAnalyzer.perform("system error?") into lastErrorMsg // デバイスからのシステムエラーテキストを変数に格納します。
Reset コマンド
Behavior: デバイスをリセットし、新鮮な、既知の状態にします。このため、このコマンドはスクリプトの最初の一つであることがよくあります。
Parameters: なし。
reset
例:
tell powerAnalyzer to reset // デバイスを既知の新鮮な状態にリセットします。
ExecuteSCPI コマンドと関数
Behavior: デバイスに対して生のSCPIコマンドを送信し、特定のコマンドからの値を返します。
このオプションを使用する場合、次のことを含むSCPIコマンドを自分で正しくフォーマットする必要があります:
- チャネル情報
- 識別子
- パラメータ
この理由から、setValue と query コマンドを使用することをお勧めします。
Parameters: サポートされているSCPIパラメータ。
コマンド 構文:
executeSCPI scpiCommand
関数 構文:
executeSCPI( scpiCommand )
{executeSCPI scpiCommand }
例:
tell powerAnalyzer to ExecuteSCPI myCommand // あなたのSCPIコマンドをデバイスに送信します。
put powerAnalyzer.executeSCPI(myQueryCommand) into myVar // あなたのSCPIコマンドの値を返し、それを変数に格納します。