• 検索結果がありません。

Microsoft Word JAJP_Microsoft Excel 2010 VBA によるシリアルデコードの取得_InfiniiVision編_ docx

N/A
N/A
Protected

Academic year: 2021

シェア "Microsoft Word JAJP_Microsoft Excel 2010 VBA によるシリアルデコードの取得_InfiniiVision編_ docx"

Copied!
19
0
0

読み込み中.... (全文を見る)

全文

(1)

Microsoft Excel 2010 VBA

によるシリアルデコード

(2)

内容 1. はじめに ... 3 2. 制御プログラム作成の準備 ... 3 2.1. ソフトウェア環境 ... 3 2.2. ハードウェア環境 ... 4 2.3. 測定器の接続と VISA アドレスの確認... 4 3. 基本的なプログラムの作成 ... 6 3.1. 開発環境の設定 ... 6 3.2. VBA ウィンドウの表示 ... 7 3.3. 参照ライブラリの追加 ... 8 4. サンプルプログラム ... 10 4.1. サンプルプログラムの説明 ... 10 4.2. サンプルプログラムの操作方法 ... 10 4.2.1. マクロの有効化 ... 11 4.2.2. 操作方法 ... 13 4.3. サンプルプログラムのコードの確認、カスタマイズ ... 14 4.4. サンプルプログラムのコマンド ... 15 4.5. サンプルプログラムのポイント ... 15 4.5.1. シリアルデコードの読み取り ... 16 4.5.2. 表示するリストの作成 ... 16

5. Excel VBA に関する Tips ... 16

5.1. VBA の高速化 ... 17

5.2. プログラムの中断 ... 17

(3)

.

はじめに

「Microsoft Excel 2010 VBA によるオシロスコープ制御入門」では、PC と測定器を LAN や USB 等 の汎用インターフェースで接続して制御する方法を、サンプルプログラムを通して紹介しました。こ のテキストでは、オシロスコープのシリアルデコード機能を用いてデコードしたデータのリストを、プ ログラムで取得する方法をご案内いたします。

測定器のコマンドや使用するライブラリについては、「Microsoft Excel 2010 VBA によるオシロスコ ープ制御入門」を参照してください。 また、作成するプログラムでは測定器のシリアルデコード機能を用います。この機能がない測 定器DSOX/MSOX2000、シリアルデコードオプションのない InfiniiVision シリーズは、当プログラムで は想定されない動作やエラーを起こすことがありますので使用しないでください。 [ダウンロードサイト] http://www.agilent.co.jp/find/InfiniiVision-sample

.

制御プログラム作成の準備

2.1.

ソフトウェア環境 本文章の内容を実施するためには、マイクロソフト社のWindows OS に、以下のものがインストー ルされている環境が必要です。これらは、インターネット上でも入手・購入することが可能です。な お、Agilent Technologies, Inc. IO Libraries Suite は、弊社測定器ではなくとも、お使いになることがで きます。

 マイクロソフト社 Excel 2010 がインストールされている Windows OS

 Agilent IO Libraries Suite (以下の弊社 Web から無償でダウンロードが可能) [IO Libraries Suite ソフトウェアダウンロードサイト]

http://www.agilent.com/find/iolib  SerialDecodeCapture サンプルプログラム (以下の弊社 Web から無償でダウンロード が可能) [ダウンロードサイト] http://www.agilent.co.jp/find/InfiniiVision-sample  測定器のシリアルデコードオプションのインストール(評価版も可) オプション、評価版ライセンスの不明点は計測お客様窓口にお問い合わせください

(4)

2.2.

ハードウェア環境 本章の内容を実施するには、PC や測定器の種類、搭載されているインターフェースにもよりま すが、必要に応じて、PC と測定器を接続するためのインターフェースカードや、ケーブル類が必要 となります。現在の Agilent 社の測定器には、制御用インターフェースとして、主に、USB、GPIB、 LAN などが搭載されています。個別の測定器に搭載されているインターフェースに関しては、デー タシートやマニュアルをご確認ください。表 1 は、オシロスコープに搭載されている制御用インター フェースです。

モデル番号 USB GPIB LAN

DSOX/MSOX3000 ○ オプション オプション DSO5000 ○ ○ ○ DSO/MSO6000 ○ ○ ○ DSO/MSO7000 ○ オプション ○ DSO/MSO8000 ○ ○ ○ DSO80000 ○ ○ ○ DSO/MSO9000 ○ オプション ○ DSO90000 ○ オプション ○ 表 1 Agilent 社製オシロスコープ搭載 リモート制御用インターフェース お使いの測定器に合わせて、制御に用いるインターフェースを検討します。その際、LAN、USB であれば、一般的なインターフェースであるため、PC に搭載されている可能性が高いですが、 GPIB は、測定器用インターフェースであるため、一般的な PC に搭載されていません。そのため、 GPIB にて制御を実施する場合には、GPIB インターフェース、GPIB ケーブルを、別途、ご購入する 必要があります。これらは、弊社にて販売しておりますので、お気軽にお問い合わせください。

2.3.

測定器の接続とVISA アドレスの確認

制御する測定器を指定には、対象となる測定器のVISA アドレスを使います。Agilent IO Libraries Suite の Agilent Connection Expert を使って、VISA アドレスを確認する方法を説明します。

① 測定器を PC と接続します。 ここでは、USB ケーブルで接続したものとして、ご説明を進めます。 LAN で接続する場合は、PC と測定器の IP アドレスの設定/確認が必要です。また、ケーブ ルの種類にご注意ください。PC と直接接続する場合、通常は、クロスタイプのケーブルが必要 です。ハブ等を用いて接続した場合は、一般に使われているストレートタイプのケーブルを使 用することができます。

② Agilent Connection Expert を起動します。

(5)

実行します(図 1)。 図 1 Connection Expert の起動 ③ ケーブルで接続されている測定器は、モデル名の横に、緑色のチェック印が示されます。 もし、「×」、「!」の印が付いている場合は、測定器が認識されていない事を表します。原因 として、測定器の電源が入っていない、ケーブルが接続されていない、測定器によっては、測 定器側の設定(お使いになるインターフェースの選択)がなされていない事が考えられます。 ④ 使用する測定器を選択し、表示される VISA アドレスを確認してください(図 2)。

(6)

2 VISA アドレスの確認

.

基本的なプログラムの作成

3.1.

開発環境の設定 Excel に開発用のタブを追加します。 リボン上を右クリックし、[リボンのユーザー設定(R)]を選択してください。 図 3 リボンのユーザー設定呼び出し。 [リボンのユーザー設定]から[メインタブ]を選択し、その下の[開発]にチェックを入れて[OK]を押下 してください。

測定器

VISA アドレス

(7)

4 開発タブの追加 [メニュー]に[開発]が追加されます

5 開発タブの確認

3.2.

VBA ウィンドウの表示

Excel 上で[Alt] + [F11]キーを押すか、[リボン]>[開発]>[Visual Basic]をクリックしてください(図 6)。 VBA ウィンドウが表示されます(図 7)。

(8)

6 VBA ウィンドウの起動

7 VBA ウィンドウ

3.3.

参照ライブラリの追加

プログラムから測定器と通信を行う際には、ライブラリの参照を追加し、それを用いて通信を行 います。このライブラリをお使いになるには、IO Libraries Suite をインストールする必要があります。

① プロジェクトのプロパティを開きます。

(9)

8 ライブラリの追加

② 表示されるダイアログの[参照可能なライブラリファイル(A)]から[VISA COM 3.0 Type Library]に チェックを追加します(図 9)。

(10)

.

サンプルプログラム ここからは、Agilent 製オシロスコープ(InfiniiVision シリーズ)のサンプルプログラムに関して、ご 説明していきます。InfiniiVision シリーズ オシロスコープのサンプルプログラムは、下記よりダウン ロードが可能となっております。 [ダウンロードサイト] http://www.agilent.co.jp/find/InfiniiVision-sample ※ InfiniiVision シリーズ DSOX/MSOX2000,3000、DSO5000、DSO/MSO6000、DSO/MSO7000 の各シリーズ

4.1.

サンプルプログラムの説明 サンプルプログラムそのまま実行してご利用いただけます。以下のことが可能です。  測定器との接続確認、エラーの取得  SINGle コマンドの送信  シリアルデコードの取得  リストのカーソル位置へオシロの表示位置を移動  ファイル出力 図 10 サンプルプログラム

4.2.

サンプルプログラムの操作方法 デジタル証明書やデジタル署名のない VBA マクロを動作させるには、マクロを有効にする必要 があります。マクロの設定は、本プログラム以外のマクロにもセキュリティ上の影響を与えます。マ クロを有効にする操作は、ユーザーの責任において行ってください。変更によって生じたすべての 障害・損害・不具合等(含、ソフトウェアのバグ)に関しては、弊社および弊社の所属するいかなる 団体・組織とも、一切の責任を負いません。

(11)

4.2.1. マクロの有効化

① Excel を開いた後、シート上のセルを選択した状態で[リボン]>[ファイル]>[オプション]をクリック してください(図 11)。 図 11 オプションを選択 ② [セキュリティセンター]を選択し、[セキュリティセンターの設定]ボタンを押下してください(図 12)。

(12)

12 セキュリティセンターの設定

③ [マクロの設定]を選択し、[警告を表示してすべてのマクロを無効にする(D)]または [すべての マクロを有効にする(E)]を選択してください。

(13)

④ マクロの設定後、ファイルを開きなおしてください。マクロの設定によっては、図 14 や図 15 のような警告が表示されることがあります。[マクロを有効にする(E)]や[コンテンツの有効化]を クリックすると、マクロが有効な状態になります。 図 14 セキュリティの警告 15 コンテンツの有効化

4.2.2. 操作方法

マクロが有効な状態になるようにしてSerialDecodeCapture.xlsm を起動してください(図 16)。

(14)

16 サンプルプログラムの操作方法

① VISA Address 欄に、制御するオシロスコープの VISA アドレスを入力し、*IDN?ボタンを押します。 オシロスコープのVISA アドレスは、前述の Agilent Connection Expert にて確認できます。 例: USB0::0x0957::0x17A2::MY50500003::0::INSTR

*IDN?ボタンを押すと、測定器のモデル名が表示されます。表示されない場合には、VISA アド レスを再確認してください。また、Agilent Connection Expert にて、測定器が接続されているか 確認してください。 ② Capture ボタンを押します。測定器の画面をキャプチャされた後、シリアルデコードのリストが取 得され、リストが更新されます。 ③ リストに表示された時間の位置に測定器の表示位置を変更することができます。表示したいリ ストの行を指定してGoTo ボタンを押してください。 ④ 測定器のデータを更新することができます。SINGle ボタンを押下してください。測定器の Single ボタンを押下した場合と同様に動作します。 ⑤ 必要であれば、測定器のエラー番号を取得することができます。ERRor? ボタンを押してくだ さい。測定器が保持するエラー番号が表示されます。

4.3.

サンプルプログラムのコードの確認、カスタマイズ サンプルプログラムのコードを確認、カスタマイズする場合には、SerialDecodeCapture.xlsm を開 き、ModuleInfiniiVision や Sheet1 等のプロジェクトコードを開いてください。 プロジェクトはVBA ウィンドウから参照・編集することができます。VBA ウィンドウの開き方につ いては3.1開発環境の設定を参照してください。コードの表示等の基本的な捜査については、ダウ ンロードサイトにあります「Microsoft Excel 2010 VBA によるオシロスコープ制御入門 InfiniiVision 編」を参照してください。

4

(15)

4.4.

サンプルプログラムのコマンド このサンプルプログラムには、のコマンドが使われています。末尾に「?」がついているコマンドは、 クエリ・コマンドと呼び、返り値を要求するコマンドとなります。クエリ・コマンドを送った後は、返り値 の読み込みが必要となります。なお、コマンドの詳細に関しましては、各オシロスコープの Programmer’s Guide をご参照ください。 ※英語版ガイドのみのご提供です。日本語版はありません。

[InfiniiVision Oscilloscopes Programmer’s Guide]

DSOX/MSOX3000 Series Oscilloscopes Programmer’s Guide

http://www.home.agilent.com/upload/cmc_upload/All/3000_series_prog_guide.pdf DSO5000 Series Oscilloscopes Programmer’s Guide

http://www.home.agilent.com/upload/cmc_upload/All/5000_series_prog_guide.pdf DSO/MSO7000 Series Oscilloscopes Programmer’s Guide

http://www.home.agilent.com/upload/cmc_upload/All/7000B_series_prog_guide.pdf コマンド 解説 *IDN? 測定器のID 取得 :SINGle 1回測定する :STOP 更新停止。 :LISTer:DISPlay シリアルデコードを使用する。 :LISTer:DATA? シリアルデコードの送信。(ブロック転送) :TIMebase:POSition 指定した時間軸の位置に表示を変更する :SYSTem:ERRor? エラーを取得する :SAVE:IMAGe:FORMat 取得する画像のフォーマット指定 :SAVE:IMAGe:PALette 取得する画像の色指定 :HARDcopy:LAYout 取得する画像の方向の指定 :HARDcopy:INKSaver 取得する画像の白黒反転指定 :DISPlay:DATA? 画像データの取得。[ブロック転送] 表 2 SCPI コマンド

4.5.

サンプルプログラムのポイント このサンプルプログラムのポイントについて解説します。  シリアルデコードの読み取り  表示するリストの作成

(16)

4.5.1. シリアルデコードの読み取り

サンプルプログラムでは、CaptureButton_Clicked関数に実装されています。シリアルデコードのリス トは:LISTer:DATA?クエリで取得できます。返信データはブロック受信で取得できます。これには、 VISA-COMライブラリのAPIの

FormattedIO488. ReadIEEEBlock (IEEEBinaryType.BinaryType_UI1)

を使います。クエリの返信を文字列として受け取るには、この関数の返値をByte型の配列で受け、 ASCII文字列からVBAで操作するUnicode文字列に変換する必要があります。変換はStrConv関数 にvbUnicodeパラメータを設定して行います。取得した文字列は、行と項目に切り分けることが可能 です。文字列の切り分けにはSplit関数を使うとよいでしょう。 ブロック受信の際、データ量が大きいと通信がタイムアウトすることがあります。これは、タイム アウトプロパティの値を十分大きくとっておくことで回避することができます。

4.5.2. 表示するリストの作成

サンプルプログラムでは、CaptureButton_Clicked 関数に実装されています。 4.5.1で取得した文字列は行毎に改行コード、項目ごとにカンマ「,」で区切られています。まずは 行毎の文字列配列に分割します。これには文字列クラスのSplit関数を使い、改行コードで分割し ます。改行コードはVBAでvbLfという定数で指定されています。 最初の行は項目名です。最初の行をSplit関数でカンマ毎に分割し、項目名毎の文字列配列が 取得できます。2行目以降は、取得したデコードの内容です。こちらも同様に分割することで、最初 の行で取得した項目名と同じ順番でデータの文字列配列を取得することができます。 本サンプルでは、最初の行からデータの最後までをまとめてループで処理しています。また、処 理の高速化のため、Excelのシートに対して配列を取得し、データを更新しシートに設定しなおす処 理を行っています。詳細については0

(17)

VBAの高速化やサンプルのコードを参照してください。

.

Excel VBA に関する Tips

ダ ウ ン ロ ー ド サ イ ト に あ り ま す 「Microsoft Excel 2010 VBA によるオシロスコープ制御入門 InfiniiVision 編」も参照してください。

[ダウンロードサイト]

(18)

5.1.

VBA の高速化

次のような高速化を行っています。次の説明のプログラムでは疑似コードを使っています。必要 に応じて読み替えてください。

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

(19)

.

測定器プログラムのサポート このガイドやサンプルプログラムに関しては、下記まで、お問い合わせください。 アジレント・テクノロジー株式会社 電子計測本部・計測お客様窓口 フリーダイアル: 0120–421-345 Email : [email protected] 計測お客様窓口では、このガイドに対する質問、サンプルプログラムに関してのインストール方 法、実行方法、プログラム内容等のお問い合わせを承っております。お問い合わせの際は、 Windows のバージョン、言語のバージョン、ご利用の測定器モデル名、具体的なお問い合わせ内 容をお知らせ下さい。その他、Agilent 社製測定器のコマンドや動作に関する説明、他社製測定器 から弊社測定器へのポーティング、IO Libraries Suite による測定器の制御など、弊社製品に関して のご質問、ご相談も承っております。 新規プログラム作成のご依頼や、サンプルプログラムのカスタマイズのご依頼、お客様が作成・ カスタマイズなされたプログラムのデバッグ作業は承っておりません。 Excel 2010 や VBA の使い方や文法など、プログラム開発環境やプログラム言語の一般的なご 質問に関しましては、サポートしておりません。一般の書籍または web、Help 等の情報を、ご確認 いただきますようお願いいたします。 アジレント・テクノロジー株式会社 本社〒192-8510 東京都八王子市高倉町 9-1 計測お客様窓口 受付時間9:00-18:00(土・日・祭日を除く) TEL ■■ 0120-421-345 (042-656-7832) FAX■■ 0120-421-678 (042-656-7840) Email [email protected] 電子計測ホームページ www.agilent.co.jp 記載事項は変更になる場合があります。 ご発注の際にご確認ください。

©Agilent Technologies. Inc. 2012

Published in Japan, June 26,2012 5991-0790JAJP 0000-08A 【著作権および免責事項】 著作権はアジレント・テクノロジー株式会社が保有していま す。このガイド、ソフトウェアを使用したことによって生じたす べての障害・損害・不具合等(含、ソフトウェアのバグ)に関し ては、弊社および弊社の所属するいかなる団体・組織とも、 一切の責任を負いません。各自の責任においてご使用くだ さい。 【転載条件】 無断での転載・配布はご遠慮下さい。

参照

関連したドキュメント

ㅡ故障の内容によりまして、弊社の都合により「一部代替部品を使わ

測定結果より、凝縮器の冷却水に低温のブライン −5℃ を使用し、さらに凝縮温度 を下げて、圧縮比を小さくしていくことで、測定値ハ(凝縮温度 10.6℃ 、圧縮比

出来形の測定が,必要な測 定項目について所定の測 定基準に基づき行われて おり,測定値が規格値を満 足し,そのばらつきが規格 値の概ね

ダイダン株式会社 北陸支店 野菜の必要性とおいしい食べ方 酒井工業株式会社 歯と口腔の健康について 米沢電気工事株式会社

これまで社会状況に合わせて実態把握の対象を見直しており、東京都公害防止条例(以下「公 害防止条例」という。 )では、

解析においては、実際に計測された格納容器圧力の値にある程度あわせる ため、原子炉圧力容器破損時に原子炉建屋補機冷却系配管の損傷による漏え

の会計処理に関する当面の取扱い 第1四半期連結会計期間より,「連結 財務諸表作成における在外子会社の会計

の会計処理に関する当面の取扱い 第1四半期連結会計期間より,「連結 財務諸表作成における在外子会社の会計