er’s Manual
Keysight
Insert the
Title in this
Space
Microsoft Excel 2010 VBA
によるオシロスコープ制御
データロギング
内容
1.はじめに ... 3
2.制御プログラム作成の準備 ... 3
2.1.ソフトウェア環境 ... 3 2.2.ハードウェア環境 ... 3 2.3.測定器の接続とVISA アドレスの確認 ... 43.基本的なプログラムの作成 ... 5
3.1.開発環境の設定 ... 5 3.2.VBA ウィンドウの表示 ... 6 3.3.参照ライブラリの追加 ... 64.サンプルプログラム ... 7
4.1.サンプルプログラムの説明 ... 7 4.2.サンプルプログラムの操作方法 ... 9 4.2.1.マクロの有効化 ... 9 4.2.2.操作方法 ... 11 4.3.サンプルプログラムのコードの確認、カスタマイズ ... 12 4.4.サンプルプログラムのコマンド ... 125.Excel VBA に関する Tips ... 14
5.1.VBA の高速化 ... 14
5.2.プログラムの中断 ... 14
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 ケーブルを、別途、ご購入する必要があります。こ れらは、弊社にて販売しておりますので、お気軽にお問い合わせください。
2.3.測定器の接続と
VISA アドレスの確認
制御する測定器を指定には、対象となる測定器の VISA アドレスを使います。Keysight IO Libraries Suite の Keysight Connection Expert を使って、VISA アドレスを確認する方法を説明します。 ① 測定器を PC と接続します。 ここでは、USB ケーブルで接続したものとして、ご説明を進めます。 LAN で接続する場合は、PC と測定器の IP アドレスの設定/確認が必要です。また、ケーブルの種類にご注意ください。PC と直接接 続する場合、通常は、クロスタイプのケーブルが必要です。ハブ等を用いて接続した場合は、一般に使われているストレートタイプの ケーブルを使用することができます。
② Keysight Connection Expert を起動します。
スタートボタンから [スタートボタン]>[Keysight IO Libraries Suite]>[Keysight Connection Expert]を実行します(図 1)。
図 1 Connection Expert の起動 ③ ケーブルで接続されている測定器は、モデル名の横に、緑色のチェック印が示されます。 もし、「×」、「!」の印が付いている場合は、測定器が認識されていない事を表します。原因として、測定器の電源が入っていない、 ケーブルが接続されていない、測定器によっては、測定器側の設定(お使いになるインターフェースの選択)がなされていない事が 考えられます。 ④ 使用する測定器を選択し、表示される VISA アドレスを確認してください(図 2)。 図 2 VISA アドレスの確認
測定器
VISA アドレス
3.基本的なプログラムの作成
3.1.開発環境の設定
Excel に開発用のタブを追加します。 リボン上を右クリックし、[リボンのユーザー設定(R)]を選択してください。 図 3 リボンのユーザー設定呼び出し。 [リボンのユーザー設定]から[メインタブ]を選択し、その下の[開発]にチェックを入れて[OK]を押してください。 図 4 開発タブの追加 [メニュー]に[開発]が追加されます 図 5 開発タブの確認3.2.
VBA ウィンドウの表示
Excel 上で[Alt] + [F11]キーを押すか、[リボン]>[開発]>[Visual Basic]をクリックしてください(図 6)。VBA ウィンドウが表示されます(図 7)。
図 6 VBA ウィンドウの起動
図 7 VBA ウィンドウ
3.3.参照ライブラリの追加
プログラムから測定器と通信を行う際には、ライブラリの参照を追加し、それを用いて通信を行います。このライブラリをお使いになるに は、IO Libraries Suite をインストールする必要があります。
① プロジェクトのプロパティを開きます。
VBA ウィンドウから[ツール(T)] > [参照設定(R) …]をクリックしてください(図 8)。
② 表示されるダイアログの[参照可能なライブラリファイル(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.サンプルプログラムの説明
このサンプルプログラムは、コードだけではなく、既にデザインウィンドウに、測定を実施するためのボタンや、設定のパラメーター選択 のためのドロップダウンメニューが配置されており、そのままでも、お使いになることができます。図 10 サンプルプログラム 図 11 波形データ(Wavefome タブ) 図 12 測定データ(Measurement タブ) このサンプルプログラムでは、オシロスコープの各パラメーター(時間レンジ、振幅レンジ、チャンネル、トリガ)を設定し、波形のデータ を”Waveform”という名前のシートに記録します(図 11)。また、振幅、周波数、パルス幅、立ち上がり時間を測定し”Measurement”という シートに記録します(図 12)。波形データと振幅についてはグラフを表示します。また、リセット、エラー取得、Auto Scale を個別に実施さ せることができます。
4.2.サンプルプログラムの操作方法
デジタル証明書やデジタル署名のないVBA マクロを動作させるには、マクロを有効にする必要があります。マクロの設定は、本プログラ ム以外のマクロにもセキュリティ上の影響を与えます。マクロを有効にする操作は、ユーザーの責任において行ってください。変更によっ て生じたすべての障害・損害・不具合等(含、ソフトウェアのバグ)に関しては、弊社および弊社の所属するいかなる団体・組織とも、一切 の責任を負いません。4.2.1.マクロの有効化
① Excel を開いた後、シート上のセルを選択した状態で[リボン]>[ファイル]>[オプション]をクリックしてください(図 13)。 図 13 オプションを選択 ② [セキュリティセンター]を選択し、[セキュリティセンターの設定]ボタンを押してください(図 14)。図 14 セキュリティセンターの設定
③ [マクロの設定]を選択し、[警告を表示してすべてのマクロを無効にする(D)]または [すべてのマクロを有効にする(E)]を選択してくださ い。
④ マクロの設定後、ファイルを開きなおしてください。マクロの設定によっては、図 16 や図 17 のような警告が表示されることがありま す。[マクロを有効にする(E)]や[コンテンツの有効化]をクリックすると、マクロが有効な状態になります。 図 16 セキュリティの警告 図 17 コンテンツの有効化
4.2.2.操作方法
マクロが有効な状態になるようにしてLoggingInfiniiVision.xlsm を起動してください(図 18)。 図 18 サンプルプログラムの操作方法1
2
3
1
① VISA Address 欄に、制御するオシロスコープの VISA アドレスを入力し、*IDN?ボタンを押します。オシロスコープの VISA アドレスは、 前述のKeysight Connection Expert にて確認できます。
例: USB0::0x0957::0x17A2::MY50500003::0::INSTR
*IDN?ボタンを押すと、測定器のモデル名が表示されます。表示されない場合には、VISA アドレスを再確認してください。また、 Keysight Connection Expert にて、測定器が接続されているか確認してください。
② 測定回数やインターバルを設定します。入力している波形に合わせて、チャンネル、水平軸、垂直軸、トリガの設定を行います。イン ターバルは実行する PC や接続方法により設定した値よりも大きくなる場合があります。0 に設定した場合が待ち時間がない、最速 の測定となります。必要に応じて調整してください。 ③ 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
コマンド 解説 *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 コマンド
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
6.測定器プログラムのサポート
このガイドやサンプルプログラムに関しては、下記まで、お問い合わせください。 キーサイト・テクノロジー合同会社 計測お客様窓口 フリーダイアル: 0120–421-345 Email : [email protected] 計測お客様窓口では、このガイドに対する質問、サンプルプログラムに関してのインストール方法、実行方法、プログラム内容等のお問 い合わせを承っております。お問い合わせの際は、Windows のバージョン、言語のバージョン、ご利用の測定器モデル名、具体的なお 問い合わせ内容をお知らせ下さい。その他、Keysight 社製測定器のコマンドや動作に関する説明、他社製測定器から弊社測定器への ポーティング、IO Libraries Suite による測定器の制御など、弊社製品に関してのご質問、ご相談も承っております。新規プログラム作成のご依頼や、サンプルプログラムのカスタマイズのご依頼、お客様が作成・カスタマイズなされたプログラムのデバ ッグ作業は承っておりません。 Excel 2010 や VBA の使い方や文法など、プログラム開発環境やプログラム言語の一般的なご質問に関しましては、サポートしておりま せん。一般の書籍または web、Help 等の情報を、ご確認いただきますようお願いいたします。 【著作権および免責事項】 著作権はキーサイト・テクノロジー合同会社が保有しています。 このガイド、ソフトウェアを使用したことによって生じたすべての 障害・損害・不具合等(含、ソフトウェアのバグ)に関しては、弊社 および弊社の所属するいかなる団体・組織とも、一切の責任を 負いません。各自の責任においてご使用ください。 【転載条件】 無断での転載・配布はご遠慮下さい。
ス
©Keysight Technologies. 2014 Published in Japan, December 08,2014 5991-0687JAJP 0000-08A