デバイスとの通信
テストおよび計測デバイスとの通信は、主に 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"
次のコマンドでは特殊フレーズを 使用することができます:
perform
queryData
setValue
query
。
例:
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
コマンド
振る舞い: テストと測定デバイスへの設定を送信します。
パラメータ: 測定装置の種類に特有の設定。必要に応じて、このコマンドはパラメータなしで使用することもできます。
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
関数
振る舞い: デバイスから情報を要求します。例えば:"MEAS:VOLT?"
のような SCPIコマンドの末尾に ?
があるもの。関数はあなたのために ?
を提供します。
パラメータ: サポートされているSCPIパラメータ。
query( scpiCommandOrPhrase )
例:
put powerAnalyzer.query("measure voltage") into actualVoltage // デバイス上の測定電圧を変数に格納します。