FAQs from Rohde & Schwarz

EMC32:Generic Amplifierで複数のSCPIコマンドを続けて送信する方法

質問:

EMC32を使用して電磁感受性を測定しています。増幅器を使用し、これを"Generic Amplifier"ドライバーを使って制御しています。

Rohde-Schwarz-FAQ-EMC32-Generic-Amplifier-different-ways-to-send-SCPI-commands-in-sequence_screen1.jpg

Generic Amplifierの構成ファイルを定義していて、これは問題なく機能しいますが、"Operate"に切り替えたときに2つ目のコマンドを送信したいと考えています。Generic Amplifierファイルのフォーマット仕様を確認したところ、"Operate"に切り替えたときには一度に1つのコマンドしか送信できないようで、複数のコマンドを続けて送信する方法は見つかりませんでした。複数のコマンドを続けて送信することは可能でしょうか?

回答:

基本的に、この問題の解決方法は2つあります。

まず、SCPI言語では、セミコロンを使ってコマンドをつなぎ合わせることができます。下のデバイス構成ファイルの例では、コマンドAMP:OPERと*CLSがセミコロンで区切られています。

Rohde-Schwarz-FAQ-EMC32-Generic-Amplifier-different-ways-to-send-SCPI-commands-in-sequence_screen2.jpg

NI IO Traceのログファイルを使って送信されたコマンドを追跡すると、1つ目のコマンドAMP:OPERの後に2つ目のコマンドが期待どおりに送信されていることがわかります。送信されたコマンドも同じようにセミコロンで区切られています。

Rohde-Schwarz-FAQ-EMC32-Generic-Amplifier-different-ways-to-send-SCPI-commands-in-sequence_screen3.jpg

ただし、区切り記号としてセミコロンを使用できない増幅器もありますので注意してください。このような増幅器では、各コマンドの後に終端が必要で、その終端の後に続けて次のコマンドを使用することができます。この場合にも解決策があります。これは、Generic Amplifierファイルのフォーマット仕様には記載されていません。

2つ目のSCPIコマンド用にCommand1=という行をデバイス構成ファイルに追加してください。この行の内容は、Command=の内容の後に送信されます。

下の例では、*CLSコマンドがAMP:OPERコマンドの後の2つ目のコマンドとして使用されます。

Rohde-Schwarz-FAQ-EMC32-Generic-Amplifier-different-ways-to-send-SCPI-commands-in-sequence_screen4.jpg

NI IO Traceのログファイルを使って送信されたコマンドを追跡すると、AMP:OPERが最初に送信され、末尾の16進値0Aで終端されています。

Command1=を使って指定された2つ目のコマンドは、その後で送信されています。

Rohde-Schwarz-FAQ-EMC32-Generic-Amplifier-different-ways-to-send-SCPI-commands-in-sequence_screen5.jpg

終端文字そのものは、構成ファイルのこのセクションで定義できます。

Rohde-Schwarz-FAQ-EMC32-Generic-Amplifier-different-ways-to-send-SCPI-commands-in-sequence_screen6.jpg