89601B Sample Program Guide Agilent 89601B VSAonPC_Basic_VISACOM
Transcription
89601B Sample Program Guide Agilent 89601B VSAonPC_Basic_VISACOM
Agilent 89601B VSAonPC_Basic_VISACOM サンプルプログラム ガイド 大変申し訳ありませんが、弊社では本サンプル・プログラムの動作保証は行ってお りません。実際のご利用にあたっては、プログラムの内容を十分ご理解いただいた上で、 お客様の責任で実行してください。 89601B Sample Program Guide 目次 1. はじめに ............................................................................ 3 2. サンプルプログラムの動作環境 ........................................................ 3 3. プログラムの実行準備 ................................................................ 4 3.1 89601B の SCPI 制御設定 ............................................................... 4 3.2 開発環境の設定 ...................................................................... 4 3.3 参照ライブラリの追加 ................................................................ 5 4. サンプルプログラムの説明 ............................................................ 6 5. 使用コマンド一覧 ................................................................... 13 6. 繁用コマンド一覧 ................................................................... 14 7. 参考資料 ........................................................................... 16 8. 注意事項 ........................................................................... 16 9. サンプル・プログラムのサポート ..................................................... 16 1. はじめに 本資料では、サンプルプログラム「VSAonPC_Basic_VISACOM.xlsm」に関する、の使い方、並びに使用コマ ンドについて説明いたします。 サンプルプログラム「VSAonPC_Basic_VISACOM.xlsm」は、同一 PC 上にプログラムソフトと 89601B がイン ストールしている場合の制御サンプルプログラムとなっております。 X シリーズ シグナル・アナライザ やオシロスコープ内部にインストールされている 89601B を外部コントロール PC より制御するプログラ ムではございません。 2. サンプルプログラムの動作環境 ソフトウエア環境 ・ Windows XP SP3 以降 ・ IO Libraries Suite 16.3 (弊社から無償でダウンロード可能) ・ Windows® Office 2007 ・ Microsoft® Excel® の Visual Basic® for Applications( VBA) ・ 89601B ソフトウェア Version13.01 以上 このサンプル・プログラムは、Visual Basic® for Applications を使用して作成しています。 IO Libraries Suite に含まれる VISA COM ライブラリを使用しています。 IO Libraries Suite は、以下の URL よりダウンロード可能です。日本語簡易取扱説明書も合わせてご利用く ださい。 [ IO Libraries Suite 16.3 ] http://www.agilent.com/find/iolib [ IO Libraries Suite 16.3/16.2 簡易取扱説明書 ] http://cp.literature.agilent.com/litweb/pdf/5991-0331JAJP.pdf ハードウエア環境 上記のソフトウエアが動作する PC 3. プログラムの実行準備 プログラムの実行の前に、下記準備を行ってください。 3.1 章 89601B の SCPI 制御設定 3.2 章 開発環境の設定 3.3 章 参照ライブラリの追加 3.1 89601B の SCPI 制御設定 89601B を SCPI でプログラム制御する場合、まず、89601B の SCPI を Enable にする初期設定を行っていただ く必要がございます。 詳細手順につきましては、下記資料の 3 章をご参照ください。 http://cp.literature.agilent.com/litweb/pdf/5991-2377JAJP.pdf 3.2 開発環境の設定 1) 開発タブを選択します。 図 3.2.1 開発タブがない場合には、左上の Office ボタンから『Excel のオプション』を選択し、『基本設定』 の中から『[開発]タブをリボンに表示する』にチェックを入れてください。 図 3.2.2 図 3.2.3 2) 『Visual Basic』を押し、VBA ウィンドウを起動します。 図 3.2.4 3.3 参照ライブラリの追加 本プログラムでは、VISA COM ライブラリを使用しておりますので、ツールより参照設定を行ってください。 1) VBA ウィンドウから参照設定のウィンドウを開きます。 ツール → 参照設定 図 3.3.1 2) 『VISA COM 3.0 Type Library』にチェックを入れて『OK』を押します。 図 3.3.2 VISA COM ライブラリの情報は、IO Libraries Suite のオンラインヘルプからご参照いただけます。 IO Libraries Suite をインストールすると、Windows のタスクバーの右端(画面の右下)に「IO」のアイコンが 表示されます。 IO Libraries Version16.2 未満 ⇒ IO Libraries Version16.2 以上 ⇒ このアイコンをクリックしてメニューを表示させ、下記操作を実行します。 Documentation -> API Documentation -> VISA COM Help 4. サンプルプログラムの説明 本サンプルでは、下記動作をご確認いただけるサンプルとなっています。 1.VSA の起動、プリセットの実行 2.中心周波数、スパンの設定後 Auto Range 3.Single 測定の実施後 Auto Scale 4.TraceA,B で MarkerPeak の実施とデータの読み込み 5.VSA の終了 以下プログラムで使用されているコマンドのポイントを説明いたします。 1. VSA 起動確認 このボタンの処理フローは下記のようになっています。 YES VSA が起動されて いる? NO VSA の起動 NO 表示は ON になっ ている? 画面表示を Enable にする プリセットの実行 ◆コードの詳細◆ '========================================== ' VSA の起動確認 '========================================== Sub RunVSA_Click() Dim rm As VisaComLib.ResourceManager Dim vsa As VisaComLib.FormattedIO488 Dim iStatevsa As Integer Dim iOpcval As Integer Dim iDispenab As Integer 重要! Set rm = New VisaComLib.ResourceManager VISA Address を指定 Set vsa = New VisaComLib.FormattedIO488 Set vsa.IO = rm.Open("TCPIP0::localhost::5025::SOCKET") 'XSA やオシロスコープ内部に VSA がインストールされてい る場合は、ここのアドレスを書き換えます。 この部分では、測定器と通信をするために VISA COM オブジェクトを作成しています。 詳細につきまして は、下記資料をご参照ください。 「VBA による測定器制御プログラム入門 VISA COM ライブラリ編」 http://cp.literature.agilent.com/litweb/pdf/5991-2363JAJP.pdf VISA Address を指定している下記部分につきまして、PC 内部に VSA がインストールされている場合、下記の ように指定することも可能です。 Set vsa.IO = rm.Open("TCPIP0::127.0.0.1::5025::SOCKET") XSA やオシロスコープ内部にインストールされている VSA を外部 PC からコントロールする場合は、ここのア ドレスを書き換えていただければご使用いただけます。 アドレス指定方法は、下記資料をご参照ください。 「Agilent 89601B SCPI を利用したプログラミングガイド」 http://cp.literature.agilent.com/litweb/pdf/5991-2377JAJP.pdf 'Socket 制御のため、終端文字を指定 VSA の SCPI コントロールは SOCKET 制御になるため、終端文字を LF にする vsa.IO.TerminationCharacterEnabled = True 指定を行います。 vsa.IO.TerminationCharacter = 10 .IO.TerminationCharacterEnabled = True 'タイムアウトを 10 秒に設定 .IO.TerminationCharacter = 10 終端文字で読取り終了 終端文字を LF に設定 vsa.IO.timeout = 10000 'VSA が起動しているかの確認 Default の VISA COM のタイムアウトは 2 秒になっています。適 vsa.WriteString ":SYSTem:VSA:STARt?" 宜変更を行ってください。 iStatevsa = vsa.ReadNumber(ASCIIType_I4) 起動直前には一度タイムアウトを伸ばしています。 VSA の起動時は時間がかかるので、 'VSA が起動していない場合(iStatevsa=0)、VSA を起動します これらセルの処理の詳細は If iStatevsa = 0 Then VBA のコマンドの参考書など Range("D3").Value = "VSA 起動中" 'D3 のセルに「VSA 起動中」を表示 Range("D3").Interior.Color = RGB(255, 0, 0) 'D3 のセルを赤色表示 vsa.IO.timeout = 180000 'VSA の起動に時間がかかるためタイムアウトを一度 180 秒に設定 vsa.WriteString ":SYSTem:VSA:Start" 'VSA の起動 *OPC?を使用することで VSA の起動完了を確認 vsa.WriteString "*OPC?" 'VSA 起動完了の確認 します。 直前のコマンド“:SYSTem:VSA:Start” をご参照ください。 の処理が終了すると、VSA は 1 を返すので、1 を iOpcval = vsa.ReadNumber(ASCIIType_I4) 読み込んでから次のコマンドに進むようにして vsa.WriteString ":DISPlay:ENABle 1" 'VSA の画面表示を Enable に設定 います。その後、VSA を表示させたい場合には、 vsa.IO.timeout = 10000 'タイムアウトを 10 秒に戻す 下記コマンドを送ります。 ":DISPlay:ENABle 1" Else 'VSA が起動している場合(iStatevsa=1)、VSA が表示状態になっているか確認 vsa.WriteString ":DISPlay:ENABle?" 'VSA が表示状態か確認 iDispenab = vsa.ReadNumber(ASCIIType_I4) If iDispenab = 0 Then 'VSA が非表示の場合、表示のコマンドを送る vsa.WriteString ":DISPlay:ENABle 1" vsa.WriteString "*OPC?" iOpcval = vsa.ReadNumber(ASCIIType_I4) End If 'If iDispenab... の終了 End If 'If iStatevsa... の終了 Range("D3").Value = "VSA 起動完了" 'D3 のセルに「VSA 完了」を表示 Range("D3").Interior.Color = RGB(180, 255, 180) 'D3 のセルを緑色表示 このプログラムでは、プリセット後、そのまま終了しておりますが、プリセットに 'プリセットの実行 続けて設定などを行いたい場合は、*OPC?を使用してプリセットの完了を確認いた vsa.WriteString (":SYSTem:PRESet") だくことが可能です。 ' vi セッションおよび Resource Manager セッションを Close vsa.IO.Close Set vsa = Nothing Set rm = Nothing End Sub 2. Center/Span 設定 Auto Range このボタンでは、VSA でよく使用される、中心周波数、スパンの設定、並びに Auto Range の機能を実行しま す。 '========================================== ' 中心周波数/スパンの設定 D4,D5 のセルから値を読み込んで、周波数、スパンンの設定をし '========================================== ています。Worksheets("").Range("").Value の使い方について ――中略―― は VBA の参考資料などをご確認ください。 'Center とスパンの設定 vsa.WriteString ":FREQuency:CENTer " & Worksheets("Sheet1").Range("D4").Value '中心周波数の設定 vsa.WriteString ":FREQuency:SPAN " & Worksheets("Sheet1").Range("D5").Value 'スパンの設定 '測定を Continuous にして AutoRange を実行 vsa.WriteString ":INITiate:CONTinuous ON" '測定を Continuous(連続測定)に設定 vsa.WriteString ":INPut:ANALog:RANGe:AUTO" 'Auto Range を実行 Auto Range も、完了を確認したい場合には*OPC?が使用可能です。 ――後略―― 3. Single 測定 Auto Scale 実施 '========================================== ' シングル測定&AutoScale 実行 '========================================== ――中略―― 測定を Single(単測定)にして、一度だけ測定を行い、*OPC?を使 用して測定完了を待ちます。 測定トリガコマンド(:INIT:IMM) に対しても*OPC?コマンドを使用することが可能です。 'Single 測定にして測定を一回実施 vsa.WriteString ":INITiate:CONTinuous OFF" '測定を Single に設定 vsa.WriteString ":INITiate:IMMediate" '測定トリガをかける vsa.WriteString "*OPC?" '測定完了を待つ iOpcval = vsa.ReadNumber(ASCIIType_I4) :TRACe[1:N]:.. となっているコマンドの[1:N]には、操作したい Trace の番号を入れます。 'TraceA,B の Auto Scale を実行 TraceA ->1 Trace 番号は、下記のように対応します。 TraceB -> 2 … vsa.WriteString ":TRACe1:Y:AUToscale" 'TraceA の AutoScale 実施 vsa.WriteString ":TRACe2:Y:AUToscale" 'TraceB の AutoScale 実施 ――後略― ― 4. Marker Peak データの読み込み '========================================== ' ピークサーチの実行とデータ取得 '========================================== 改行コード(LF)が入ってしまっているため、Replace で LF を 削除しています。 詳細の使用方法は VBA の参考資料などでご確 認ください。 ――中略―― 'TraceA で Marker1 の Peak Search を実行/値の取得 vsa.WriteString "TRACe1:MARKer1:MAXimum" 'TraceA で Marker1 の PeakSearch を実行 vsa.WriteString ":TRACe1:MARKer1:X?" 'Mareker1 の X 軸データを取得 dTracAX = vsa.ReadNumber(ASCIIType_R8) vsa.WriteString ":TRACe1:MARKer1:X:UNIT?" 'Marker1 の X 軸の単位を取得 sTracAXunit = vsa.ReadString() vsa.WriteString ":TRACe1:MARKer1:Y?" 'Marker1 の Y 軸データを取得 dTracAY = vsa.ReadNumber(ASCIIType_R8) vsa.WriteString ":TRACe1:MARKer1:Y:UNIT?" sTracAYunit = vsa.ReadString() 'Marker1 の Y 軸の単位を取得 改行コード(LF)が入ってしまっているため、Replace で LF を 削除しています。 'C16,D16 のセルに TraceA のマーカー1のデータを表示 Replace()の詳細の使用方法は VBA の参考 資料などでご確認ください。 Worksheets("Sheet1").Range("C16").Value = dTracAX & Replace(sTracAXunit, vbLf, "") Worksheets("Sheet1").Range("D16").Value = dTracAY & Replace(sTracAYunit, vbLf, "") ――後略―― 5. VSA の終了 '========================================== ' VSA の終了 '========================================== ――中略―― 'VSA を終了 vsa.WriteString ":SYSTem:VSA:EXIT" ――中略―― Range("D3").Value = "VSA 終了" 'D3 のセルに「VSA 終了」を表示 Range("D3").Interior.Color = RGB(255, 0, 0) 'D3 のセルを赤色表示 ――後略―― “:SYST:VSA:EXIT”はソフト自体を終了するコマンドです。測定器の接続を切り離したいだけの時は、下記コ マンドを使用します。 :INITiate:SANalyzer:DISConnect 再接続には下記コマンドを使用します。 :INITiate:RESTart VSA を落とさずに、測定器を Disconnect して、測定器だけ一度制御したい場合などには、これらのコマンド をご使用下さい。 5. 使用コマンド一覧 コマンド 解説 *IDN? 測定器の ID 取得 :SYSTem:VSA:STARt? VSA が起動しているかの確認 :SYSTem:VSA:Start VSA の起動 *OPC? コマンド完了の確認 :DISPlay:ENABle 1 VSA の画面を表示させる :SYSTem:PRESet 設定のプリセット :FREQuency:CENTer <value> 中心周波数の設定 :FREQuency:SPAN <value> スパンの設定 :INITiate:CONTinuous ON 連続測定 :INPut:ANALog:RANGe:AUTO オートレンジ :INITiate:CONTinuous OFF シングル測定 :INITiate:IMMediate 測定トリガ :TRACe[1:N]:Y:AUToscale オートスケール :TRACe[1:N]:MARKer[1:N]:MAXimum Marker ピークサーチ :TRACe[1:N]:MARKer1:X? Marker の X 軸の値読み込み :TRACe[1:N]:MARKer1:X:UNIT? Marker の X 軸の単位読み込み :TRACe[1:N]:MARKer1:Y? Marker の Y 軸の値読み込み :TRACe[1:N]:MARKer1:Y:UNIT? Marker の Y 軸の単位読み込み :SYSTem:VSA:EXIT VSA の終了 6. 繁用コマンド一覧 コマンド 解説 :INITiate:SANalyzer:DISConnect 測定器を Disconnect :INITiate:RESume 測定の Pause :INITiate:RESTart 測定の再開 (Disconnect した後の再接続にも使用) 測定モードの変更 :MEASure:CONFigure <measName> 例) Digital 変調モードを選択 :MEASure:CONFigure DDEMod 設定ファイル(.setx)の読み込み :MMEMory:LOAD[:SETup] <fileName> 例):MMEM:LOAD "C:\MySetup.setx" ◆EVM など、Table で表示されているデータ取得方法◆ EVM などのデータ(Syms/Errs など測定データが Table で表示されている Trace のデータ)を取得する場合 は、下記 3 つコマンドを使用します。 :TRACe[1:N]:DATA:TABLe:NAME? :TRACe[1:N]:DATA:TABLe:UNIT? [itemIndexOneBased] :TRACe[1:N]:DATA:TABLe[:VALue]? [itemIndexOneBased] [1:N]には、データが表示されている Trace の番号を指定します。各 Trace は下記のような番号に対応してい ます。 TraceA→ 1 TraceB→ 2 TraceC→ 3 ・・・ それぞれのコマンドは、Table の Data をカンマ区切りで返します。 まず、下記コマンドで、取得されるデータ名と順序を確認します。 :TRACe[1:N]:DATA:TABLe:NAME? その次に、下記コマンドを使用してデータを取得し、必要な部分をプログラム側で処理します。 :TRACe[1:N]:TRACe4:DATA:TABLe? または、必要なデータが1つしかないなどの場合には、どのデータが必要かを[itemIndexOneBased]に指定し て、指定したデータだけを取得することも可能です。 その場合、まず、下記コマンドで、取得したいデータ NAME を取得します。 :TRACe[1:N]:DATA:TABLe:NAME? ここで、取得したいデータの NAME または、何番目のデータかを確認します。 たとえば、下記のような戻り値の場合、 "EvmRms","EvmPeak","EvmPeakSym","OffsetEvmRms",・・・ 取得したい EVM データは、 "EvmRms" という名前で 1 番目 のデータになりますので、EVM のデータだけ取得したい場合には、 下記のどちらかのコマンドで取得できます。 :TRACe[1:N]:DATA:TABLe? "EvmRms" :TRACe[1:N]:DATA:TABLe? 1 NAME で指定する場合、NAME は""で囲ってください。 これらのコマンドは、SCPI Reference の下記より詳細がご覧いただけます。 89600 VSA SCPI Reference -> :TRACe -> :TRACe:DATA 7. 参考資料 ・89601B SCPI Reference VSA ソフト起動後、 [Help] -> {SCPI Reference} または、 スタートメニュー ->プログラム -> Agilent 89600 Software XX.X -> Help -> SCPI Reference ・89601B SCPI プログラムガイド http://cp.literature.agilent.com/litweb/pdf/5991-2377JAJP.pdf 8. 注意事項 本サンプル・プログラム、および、本サンプル・プログラム ガイドの著作権は、アジレントテクノロジー 株式会社が所有しています。 本サンプル・プログラムを、お客様は、使用、修正、複製、配布することができます。 本サンプル・プログラム ガイドの転載、配布はご遠慮ください。 本サンプル・プログラム、および、本サンプル・プログラム ガイドを使用したことによって生じた全ての 障害・損害・不具合(含、サンプル・プログラムの不具合)に関して、弊社及び、弊社の所属するいかなる団 体・組織とも、一切の責任を負いません。 本サンプル・プログラム、および、本サンプル・プログラム ガイドは、弊社にて検証の上、提供しており ますが、お客様の環境下での動作は保証しておりません。 9. サンプル・プログラムのサポート 弊社、テクニカルコンタクトセンターでは本サンプル・プログラムに関して、お電話や Email などで、イ ンストール、実行方法、プログラム内容などのお問い合わせを承っております。お問い合わせには、ご利用の 製品のモデル番号 ( 34410A 等 ) 及び具体的なお問い合わせ内容 ( サンプル・プログラムでエラーが発生す る等 ) をご連絡ください。エラーが発生している場合、エラーの画面コピーなど、エラーの詳細情報もお送 りください。 その他、アジレント社の製品に関して、 ・ 測定器のコマンドや動作 ・ 測定器を PC に接続する方法 ・ IO Libraries Suite による測定器の制御方法 など、ご質問等ございましたらお問い合わせください。 このサンプル・プログラムは PC による測定器の制御方法のご紹介を目的としておりますので、個別のご希 望に応じたプログラムの修正などは行いません。また、Visual Studio や EXCEL など、他社製品の使い方や プログラム言語の一般的なご質問に関しましては、一般の書籍または web、Help 等の情報をご確認いただき ますようお願いいたします。 この資料に関するお問い合わせ先 アジレントテクノロジー株式会社 電子計測本部 アプリケーションエンジニアリング部 テクニカルコンタクトセンター 電子計測本部・計測お客様窓口 フリーダイアル : 0120 - 421 - 345 Email : contact_japan@agilent.com [ お問い合わせ E メールテンプレート (テキスト) ] http://www.home.agilent.com/upload/cmc_upload/All/otoiawase4.txt アジレント・テクノロジー株式会社 本社〒192-8510 東京都八王子市高倉町 9-1 計測お客様窓口 受付時間 9:00-18:00(土・日・祭日を除く) TEL ■■ 0120-421-345 (042-656-7832) FAX■■ 0120-421-678 (042-656-7840) Email contact_japan@agilent.com 電子計測ホームページ www.agilent.co.jp 記載事項は変更になる場合があります。 ご発注の際にご確認ください。 ©Agilent Technologies. Inc. 2013 Published in Japan, May 28,2013 5991-2512JAJP 0000-08A