er s Manual Keysight Insert the Title in this Space Microsoft Excel 2010 VBA によるオシロスコープ制御データロギング
02 Keysight Microsoft Excel 2010 VBA によるオシロスコープ制御データロギング 内容 1. はじめに... 3 2. 制御プログラム作成の準備... 3 2.1. ソフトウェア環境... 3 2.2. ハードウェア環境... 3 2.3. 測定器の接続と VISA アドレスの確認... 4 3. 基本的なプログラムの作成... 5 3.1. 開発環境の設定... 5 3.2.VBA ウィンドウの表示... 6 3.3. 参照ライブラリの追加... 6 4. サンプルプログラム... 7 4.1. サンプルプログラムの説明... 7 4.2. サンプルプログラムの操作方法... 9 4.2.1. マクロの有効化... 9 4.2.2. 操作方法... 11 4.3. サンプルプログラムのコードの確認 カスタマイズ... 12 4.4. サンプルプログラムのコマンド... 12 5.Excel VBA に関する Tips... 14 5.1.VBA の高速化... 14 5.2. プログラムの中断... 14 6. 測定器プログラムのサポート... 15
03 Keysight Microsoft Excel 2010 VBA によるオシロスコープ制御データロギング 1. はじめにこのテキストは PC から測定器を制御して 測定データのログを取得する方法について説明します 電圧変化を 1 分ごとに 20 回測定したい 等を行うことができるようになります ここでは マイクロソフト社の Excel 2010 ( 以下で Excel) で動作する Visual Basic Application マクロ ( 以下 VBA) を用いたサンプルプログラムの使い方について説明します 制御プログラムの基本的な実装方法については ダウンロードサイトにあります MS-Excel2010 によるオシロスコープ制御入門 InfiniiVision 編 を参照してください 2. 制御プログラム作成の準備 2.1. ソフトウェア環境本文章の内容を実施するためには マイクロソフト社の Windows OS に 以下のものがインストールされている環境が必要です これらは インターネット上でも入手 購入することが可能です なお Keysight Technologies, Inc. IO Libraries Suite は 弊社測定器ではなくとも お使いになることができます マイクロソフト社 Excel 2010 がインストールされている Windows OS Keysight IO Libraries Suite ( 以下の弊社 Web から無償でダウンロードが可能 ) [IO Libraries Suite ソフトウェアダウンロードサイト ] http://www.keysight.com/find/iolib Sample Program ( 以下の弊社 Web から無償でダウンロードが可能 ) [ ダウンロードサイト ] http://www.keysight.co.jp/find/infiniivision-sample 2.2. ハードウェア環境本章の内容を実施するには PC や測定器の種類 搭載されているインターフェースにもよりますが 必要に応じて PC と測定器を接続するためのインターフェースカードや ケーブル類が必要となります 現在の Keysight 社の測定器には 制御用インターフェースとして 主に USB GPIB LAN などが搭載されています 個別の測定器に搭載されているインターフェースに関しては データシートやマニュアルをご確認ください 表 1 は オシロスコープに搭載されている制御用インターフェースです モデル番号 USB GPIB LAN DSOX/MSOX2000 オプションオプション DSOX/MSOX3000 オプションオプション DSO5000 DSO/MSO6000 DSO/MSO7000 オプション DSO/MSO8000 DSO80000 DSO/MSO9000 オプション DSO90000 オプション 表 1 Keysight 社製オシロスコープ搭載リモート制御用インターフェース お使いの測定器に合わせて 制御に用いるインターフェースを検討します その際 LAN USB であれば 一般的なインターフェースであるため PC に搭載されている可能性が高いですが GPIB は 測定器用インターフェースであるため 一般的な PC に搭載されていません そのため GPIB にて制御を実施する場合には GPIB インターフェース GPIB ケーブルを 別途 ご購入する必要があります これらは 弊社にて販売しておりますので お気軽にお問い合わせください
04 Keysight Microsoft Excel 2010 VBA によるオシロスコープ制御データロギング 2.3. 測定器の接続と VISA アドレスの確認制御する測定器を指定には 対象となる測定器の VISA アドレスを使います Keysight IO Libraries Suite の Keysight Connection Expert を使って VISA アドレスを確認する方法を説明します 1 測定器を PC と接続します ここでは USB ケーブルで接続したものとして ご説明を進めます LAN で接続する場合は PC と測定器の IP アドレスの設定 / 確認が必要です また ケーブルの種類にご注意ください PC と直接接続する場合 通常は クロスタイプのケーブルが必要です ハブ等を用いて接続した場合は 一般に使われているストレートタイプのケーブルを使用することができます 2 Keysight Connection Expert を起動します スタートボタンから [ スタートボタン ]>[Keysight IO Libraries Suite]>[Keysight Connection Expert] を実行します ( 図 1) 図 1 Connection Expert の起動 3 ケーブルで接続されている測定器は モデル名の横に 緑色のチェック印が示されます もし! の印が付いている場合は 測定器が認識されていない事を表します 原因として 測定器の電源が入っていない ケーブルが接続されていない 測定器によっては 測定器側の設定 ( お使いになるインターフェースの選択 ) がなされていない事が考えられます 4 使用する測定器を選択し 表示される VISA アドレスを確認してください ( 図 2) 測定器 VISA アドレス 図 2 VISA アドレスの確認
05 Keysight Microsoft Excel 2010 VBA によるオシロスコープ制御データロギング 3. 基本的なプログラムの作成 3.1. 開発環境の設定 Excel に開発用のタブを追加します リボン上を右クリックし [ リボンのユーザー設定 (R)] を選択してください 図 3 リボンのユーザー設定呼び出し [ リボンのユーザー設定 ] から [ メインタブ ] を選択し その下の [ 開発 ] にチェックを入れて [OK] を押してください 図 4 開発タブの追加 [ メニュー ] に [ 開発 ] が追加されます 図 5 開発タブの確認
06 Keysight Microsoft Excel 2010 VBA によるオシロスコープ制御データロギング 3.2.VBA ウィンドウの表示 Excel 上で [Alt] + [F11] キーを押すか [ リボン ]>[ 開発 ]>[Visual Basic] をクリックしてください ( 図 6) VBA ウィンドウが表示されます ( 図 7) 図 6 VBA ウィンドウの起動 図 7 VBA ウィンドウ 3.3. 参照ライブラリの追加プログラムから測定器と通信を行う際には ライブラリの参照を追加し それを用いて通信を行います このライブラリをお使いになるには IO Libraries Suite をインストールする必要があります 1 プロジェクトのプロパティを開きます VBA ウィンドウから [ ツール (T)] > [ 参照設定 (R) ] をクリックしてください ( 図 8) 図 8 ライブラリの追加
07 Keysight Microsoft Excel 2010 VBA によるオシロスコープ制御データロギング 2 表示されるダイアログの [ 参照可能なライブラリファイル (A)] から [VISA COM 3.0 Type Library] にチェックを追加します ( 図 9) 図 9 VISA COM ライブラリの選択 4. サンプルプログラムここからは Keysight 製オシロスコープ (InfiniiVision シリーズ ) のサンプルプログラムに関して ご説明していきます InfiniiVision シリーズオシロスコープのサンプルプログラムは 下記よりダウンロードが可能となっております [ ダウンロードサイト ] http://www.keysight.co.jp/find/infiniivision-sample InfiniiVision シリーズ DSOX/MSOX2000,3000 DSO5000 DSO/MSO6000 DSO/MSO7000 の各シリーズ 4.1. サンプルプログラムの説明このサンプルプログラムは コードだけではなく 既にデザインウィンドウに 測定を実施するためのボタンや 設定のパラメーター選択のためのドロップダウンメニューが配置されており そのままでも お使いになることができます
08 Keysight Microsoft Excel 2010 VBA によるオシロスコープ制御データロギング 図 10 サンプルプログラム 図 11 波形データ (Wavefome タブ ) 図 12 測定データ (Measurement タブ ) このサンプルプログラムでは オシロスコープの各パラメーター ( 時間レンジ 振幅レンジ チャンネル トリガ ) を設定し 波形のデータを Waveform という名前のシートに記録します ( 図 11) また 振幅 周波数 パルス幅 立ち上がり時間を測定し Measurement というシートに記録します ( 図 12) 波形データと振幅についてはグラフを表示します また リセット エラー取得 Auto Scale を個別に実施させることができます
09 Keysight Microsoft Excel 2010 VBA によるオシロスコープ制御データロギング 4.2. サンプルプログラムの操作方法デジタル証明書やデジタル署名のない VBA マクロを動作させるには マクロを有効にする必要があります マクロの設定は 本プログラム以外のマクロにもセキュリティ上の影響を与えます マクロを有効にする操作は ユーザーの責任において行ってください 変更によって生じたすべての障害 損害 不具合等 ( 含 ソフトウェアのバグ ) に関しては 弊社および弊社の所属するいかなる団体 組織とも 一切の責任を負いません 4.2.1. マクロの有効化 1 Excel を開いた後 シート上のセルを選択した状態で [ リボン ]>[ ファイル ]>[ オプション ] をクリックしてください ( 図 13) 図 13 オプションを選択 2 [ セキュリティセンター ] を選択し [ セキュリティセンターの設定 ] ボタンを押してください ( 図 14)
10 Keysight Microsoft Excel 2010 VBA によるオシロスコープ制御データロギング 図 14 セキュリティセンターの設定 3 [ マクロの設定 ] を選択し [ 警告を表示してすべてのマクロを無効にする (D)] または [ すべてのマクロを有効にする (E)] を選択してください 図 15 マクロの設定
11 Keysight Microsoft Excel 2010 VBA によるオシロスコープ制御データロギング 4 マクロの設定後 ファイルを開きなおしてください マクロの設定によっては 図 16 や図 17 のような警告が表示されることがあります [ マクロを有効にする (E)] や [ コンテンツの有効化 ] をクリックすると マクロが有効な状態になります 図 16 セキュリティの警告 図 17 コンテンツの有効化 4.2.2. 操作方法マクロが有効な状態になるようにして LoggingInfiniiVision.xlsm を起動してください ( 図 18) 2 3 1 1 図 18 サンプルプログラムの操作方法
12 Keysight Microsoft Excel 2010 VBA によるオシロスコープ制御データロギング 1 VISA Address 欄に 制御するオシロスコープの VISA アドレスを入力し *IDN? ボタンを押します オシロスコープの VISA アドレスは 前述の Keysight Connection Expert にて確認できます 例 : USB0::0x0957::0x17A2::MY50500003::0::INSTR *IDN? ボタンを押すと 測定器のモデル名が表示されます 表示されない場合には VISA アドレスを再確認してください また Keysight Connection Expert にて 測定器が接続されているか確認してください 2 測定回数やインターバルを設定します 入力している波形に合わせて チャンネル 水平軸 垂直軸 トリガの設定を行います インターバルは実行する PC や接続方法により設定した値よりも大きくなる場合があります 0 に設定した場合が待ち時間がない 最速の測定となります 必要に応じて調整してください 3 RUN ボタンを押すと 測定が開始されます 測定後 プログラム画面に オシロスコープの画面画像が表示され 測定値が表示されます 測定を中断したい場合は [ESC] キーを押してください なお 入力されている波形に対して 適切な設定がなされていない場合には オシロスコープに波形が表示されないことや トリガがかからずに プログラムが停止することがあります 適切な設定に変更し 実施してください 4.3. サンプルプログラムのコードの確認 カスタマイズサンプルプログラムのコードを確認 カスタマイズする場合には LoggingInfiniiVision.xlsm を開き ModuleInfiniiVision.bas や ModuleLoggingControl 等のプロジェクトコードを開いてください プロジェクトは VBA ウィンドウから参照 編集することができます VBA ウィンドウの開き方については 3.1. 開発環境の設定を参照してください コードの表示等の基本的な捜査については ダウンロードサイトにあります MS-Excel2010 によるオシロスコープ制御入門 InfiniiVision 編 を参照してください 4.4. サンプルプログラムのコマンドこのサンプルプログラムには のコマンドが使われています 末尾に? がついているコマンドは クエリ コマンドと呼び 返り値を要求するコマンドとなります クエリ コマンドを送った後は 返り値の読み込みが必要となります なお コマンドの詳細に関しましては 各オシロスコープの Programmer s Guide をご参照ください 英語版ガイドのみのご提供です 日本語版はありません [InfiniiVision Oscilloscopes Programmer s Guide] DSOX/MSOX2000 Series Oscilloscopes Programmer s Guide http://www.home.keysight.com/upload/cmc_upload/all/2000_series_prog_guide.pdf DSOX/MSOX3000 Series Oscilloscopes Programmer s Guide http://www.home.keysight.com/upload/cmc_upload/all/3000_series_prog_guide.pdf DSO5000 Series Oscilloscopes Programmer s Guide http://www.home.keysight.com/upload/cmc_upload/all/5000_series_prog_guide.pdf DSO/MSO7000 Series Oscilloscopes Programmer s Guide http://www.home.keysight.com/upload/cmc_upload/all/7000b_series_prog_guide.pdf
13 Keysight Microsoft Excel 2010 VBA によるオシロスコープ制御データロギング コマンド 解説 *IDN? 測定器の ID 取得 *RST リセット状態にする :AUToscale オートスケール実施 :SYSTem:ERRor? エラー キュー内容取得 :CHANnel<n>:SCALe 縦軸のレンジ設定 (1 マスあたりの電圧値 ) :CHANnel<n>:OFFSet 縦軸のオフセット設定 :CHANnel<n>:DISPlay チャンネルの表示オン / オフ :CHANnel<n>:IMPedance チャンネルの入力抵抗選択 :CHANnel<n>:PROBe チャンネルのプローブ減衰比設定 :TIMebase:SCALe 横軸のレンジ設定 (1 マスあたりの時間 ) :TIMebase:POSition 横軸のポジション設定 (Delay つまみ ) :TIMebase:REFerence トリガポジション :TRIGger:SWEep 自動トリガ ノーマルトリガの切り替え :TRIGger:MODE トリガモードの選択 ( エッジ等 ) :TRIGger:SOURce トリガソースの選択 :TRIGger:EDGE:LEVel トリガエッジのレベル :TRIGger:SLOPe トリガスロープ選択 ( 立ち上がり or 立下り ) :STOP 収集停止 :SINGle シングルトリガ :TER? トリガが掛かったかどうか調べる :MEASure:VPP? Vpp 値の取得 :MEASure:FREQuency? 周波数値の取得 :MEASure:PWIDth? 正のパルス値の取得 :MEASure:RISetime? 立ち上がり時間値の取得 :WAVeform:SOURce 転送波形の指定 :WAVeform:FORMat 波形転送時のフォーマット選択 :WAVeform:UNSigned 波形転送時の整数型選択 :WAVeform:BYTeorder 波形転送時のバイト オーダー選択 :WAVeform:XINCrement? サンプルポイントの時間間隔の取得 :WAVeform:XORigin? 横軸の基準位置の取得 :WAVeform:YINCrement? サンプルポイントの電圧間隔の取得 :WAVeform:YORigin? 縦軸の基準位置取得 :WAVeform:DATA? 波形データの取得 :WAVeform:POINts? サンプルポイントの数の取得 表 2 SCPI コマンド
14 Keysight Microsoft Excel 2010 VBA によるオシロスコープ制御データロギング 5.Excel VBA に関する Tips ダウンロードサイトにあります Microsoft Excel 2010 VBA によるオシロスコープ制御入門 InfiniiVision 編 も参照してください 5.1.VBA の高速化次のような高速化を行っています 次の説明のプログラムでは疑似コードを使っています 必要に応じて読み替えてください 画面の更新を制御する Application.ScreenUpdating = False 更新を止める Application.ScreenUpdating = True 更新を再開する シートの表示を制御する Sheet( Waveform ).Visible = False 表示しない Sheet( Waveform ).Visible = True 表示する 大量のセルは配列で値を入れる Dim targetarray As Variant Dim targetrange As Range Set targetrange = Range(Cell([ 開始行 ], [ 開始列 ]), Cell([ 終了行 ]), [ 終了列 ))) targetarray = targetrange 書き込み対象のセルを配列で取得 { For 文等で値を設定する target([ 行 ],[ 列 ]) で値を設定する [ 行 ],[ 列 ] の値は 1 から始まります 普通の配列とは異なります } targetrange = targetarray セルに配列で値を書き込む 5.2. プログラムの中断 VBA は ESC キーを押すことで中断することができます 次のようなコードを実装することで ESC キーを押した時にプログラムを中断するだけでなく エラー処理を行うことができるようになります また Resume コマンドで中断したところに復帰することができます On Error GoTo OnError Application.EnableCancelKey = xlerrorhandler ' ESC キーでエラー処理に飛ぶ OnError: If Err.Number = 18 Then ' ESC キーでのエラートラップ ESC を押した時の処理 Resume 復帰 End If
15 Keysight Microsoft Excel 2010 VBA によるオシロスコープ制御データロギング 6. 測定器プログラムのサポートこのガイドやサンプルプログラムに関しては 下記まで お問い合わせください キーサイト テクノロジー合同会社計測お客様窓口フリーダイアル : 0120 421-345 Email : contact_japan@keysight.com 計測お客様窓口では このガイドに対する質問 サンプルプログラムに関してのインストール方法 実行方法 プログラム内容等のお問い合わせを承っております お問い合わせの際は Windows のバージョン 言語のバージョン ご利用の測定器モデル名 具体的なお問い合わせ内容をお知らせ下さい その他 Keysight 社製測定器のコマンドや動作に関する説明 他社製測定器から弊社測定器へのポーティング IO Libraries Suite による測定器の制御など 弊社製品に関してのご質問 ご相談も承っております 新規プログラム作成のご依頼や サンプルプログラムのカスタマイズのご依頼 お客様が作成 カスタマイズなされたプログラムのデバッグ作業は承っておりません Excel 2010 や VBA の使い方や文法など プログラム開発環境やプログラム言語の一般的なご質問に関しましては サポートしておりません 一般の書籍または web Help 等の情報を ご確認いただきますようお願いいたします 著作権および免責事項 著作権はキーサイト テクノロジー合同会社が保有しています このガイド ソフトウェアを使用したことによって生じたすべての障害 損害 不具合等 ( 含 ソフトウェアのバグ ) に関しては 弊社および弊社の所属するいかなる団体 組織とも 一切の責任を負いません 各自の責任においてご使用ください 転載条件 無断での転載 配布はご遠慮下さい
ス キーサイト テクノロジー合同会社本社 192-8550 東京都八王子市高倉町 9-1 計測お客様窓口受付時間 9:00-18:00( 土 日 祭日を除く ) TEL 0120-421-345 (042-656-7832) FAX 0120-421-678 (042-656-7840) Email contact_japan@keysight.com ホームページ www.keysight.co.jp 記載事項は変更になる場合があります ご発注の際はご確認ください Keysight Technologies. 2014 Published in Japan, December 08,2014 5991-0687JAJP 0000-08A