Excel 2010 / VBA による 測 定 器 制 御 プログラム 入 門 VISA COM ライブラリ 編 Excel 2010 / VBA からアジレント IO Libraries Suite に 含 まれている VISA COM ライブラリ を 呼 び 出 すことにより 測 定 器 を 制 御 することが 可 能 です 本 アプリケーション ノートでは 測 定 器 にコマンドを 送 り 応 答 を 受 け 取 るという 最 も 基 本 的 な 測 定 器 制 御 プログラムの 作 成 手 順 を Excel 2010 / Visual Basic for Application ( VBA )と VISA COM ライブラリを 使 用 して 説 明 します ここで 紹 介 するサンプル プログラムは 簡 単 なプログラムですが 必 要 に 応 じて 追 加 修 正 することで 実 用 的 なアプリケーション プログラムに 発 展 させることができます 大 変 申 し 訳 ありませんが 弊 社 では 本 サンプル プログラムの 動 作 保 証 は 行 ってお りません 実 際 のご 利 用 にあたっては プログラムの 内 容 を 十 分 ご 理 解 いただいた 上 で お 客 様 の 責 任 で 実 行 してください 目 次 1. VISA/VISA COM ライブラリ 概 要 P.2 2. サンプル プログラムの 動 作 環 境 P.3 3. サンプル プログラムの 作 成 手 順 P.4 4. サンプル プログラムの 説 明 P.9 5. 参 考 資 料 P.12 6. 注 意 事 項 P.13 7.サンプル プログラムのサポート P.13 Excel 2010 / VBA VISA COM Sample Program
1. VISA / VISA COM ライブラリ 概 要 VISA / VISA COM ライブラリの 紹 介 アジレント IO Libraries Suite には VISA VISA COM などのライブラリが 含 まれています VISA と VISA COM ライブラリは Windows 上 での 実 装 方 法 が 異 なりますが 基 本 的 な 機 能 は 同 じです VISA/VISA COM ライブラリを 呼 び 出 すことにより 測 定 器 に 対 して コマンドを 出 力 し 応 答 を 受 け 取 ることが 可 能 になります VISA/VISA COM ライブラリでは インタフェース 特 有 の 機 能 を 利 用 する 場 合 を 除 き イ ンタフェースの 違 いを 意 識 することなく 測 定 器 を 制 御 することが 可 能 です VISA/VISA COM ライブラリは インタフェースとして GPIB VXI GPIB-VXI RS232C LAN PXI USB をサポートしています i VISA / VISA COM ライブラリの 仕 様 は 業 界 標 準 化 団 体 (IVI Foundation)で 決 めら れており アジレントでは VISA / VISA COM の 仕 様 にそってソフトウェアを 実 装 して います VISA アドレス VISA / VISA COM では 制 御 する 測 定 器 を 特 定 するために VISA アドレスを 使 用 します VISA アドレスは 測 定 器 が 接 続 されるインタフェースの 情 報 と 機 器 を 特 定 するための 情 報 から 構 成 されます i GPIB0::22::INSTR // 1 台 目 の GPIB インタフェースに 接 続 されたアドレス 22 番 の 測 定 器 GPIB1::7::INSTR // 2 台 目 の GPIB インタフェースに 接 続 されたアドレス 7 番 の 測 定 器 TCPIP0::192.168.0.1::inst0::INSTR // LAN で 接 続 された IP アドレス 192.168.0.1 の 測 定 器 VISA COM ライブラリのオブジェクト VISA COM ライブラリを 呼 び 出 して 測 定 器 を 制 御 するプログラムは ResourceManager オ ブジェクト IO Resource オブジェクト FormattedIO488 オブジェクトを 作 成 します ResourceManager オブジェクトは プログラムにつき 一 つ 作 成 します IO Resource オブジ ェクトと FormattedIO488 オブジェクトは 使 用 する 個 々の 測 定 器 ごとに 作 成 します 測 定 器 へのコマンドの 出 力 や 応 答 の 受 け 取 りは IO Resource オブジェクトが 行 いますが プログラムからは FormatteIO488 オブジェクトを 経 由 して IO Resource オブジェクトを 使 用 することができます 2
2. サンプル プログラムの 動 作 環 境 ソフトウェア 環 境 Windows XP SP3 以 降 IO Libraries Suite 16.3 ( 弊 社 の Web から 無 償 でダウンロード 可 能 ) Microsoft Excel 2010 IO Libraries Suite は 以 下 の URL よりダウンロード 可 能 です 日 本 語 簡 易 取 扱 説 明 書 も 公 開 しておりますので 合 わせてご 利 用 ください [ IO Libraries Suite 最 新 バージョン ] 2013 年 4 月 時 点 の 最 新 バージョンは 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 アジレント IO Libraries Suite がサポートしている 測 定 器 とのインタフェース - PC 内 蔵 の LAN USB RS232C インタフェース - GPIB の 場 合 アジレント 社 GPIB インタフェース ( 82350B 82357B E5810A など) SCPI コマンドをサポートしている 測 定 器 ここでは アジレント 社 デジタル マルチメータ 34410A で 動 作 を 確 認 しました i SCPI(Standard Commands for Programmable Instrument)は 業 界 標 準 化 団 体 が 仕 様 を 決 めた 測 定 器 コマンドの 規 格 です SCPI をサポートしている 同 じ 種 類 の 測 定 器 であれ ば 原 則 として 測 定 器 のメーカやモデルに 関 係 なく 同 じコマンドが 使 用 できます i *IDN? は 測 定 器 の 名 称 を 問 い 合 わせる SCPI コマンドです SCPI をサポートしてい る 測 定 器 は *IDN? コマンドを 受 け 取 ると メーカ 名 製 品 番 号 シリアル 番 号 などの 情 報 を 返 します 3
3. サンプル プログラムの 作 成 手 順 ここでは ボタンを 押 すと 測 定 器 に *IDN? コマンドを 送 り 応 答 を 受 け 取 り Excel のセ ル A1 に 応 答 を 表 示 するサンプル プログラムを 作 成 します このプログラムは 測 定 器 を 制 御 するプログラムとしてはもっとも 簡 単 なものですが 測 定 器 へのコマンド 出 力 と 測 定 器 から 応 答 の 入 力 を 行 いますので 同 じ 方 法 で 実 用 的 なプログラムに 応 用 が 可 能 です 1) Agilent Connection Expert での 確 認 測 定 器 を 制 御 するプログラムを 作 成 する 前 に IO Libraries Suite に 含 まれるツール Agilent Connection Expert で 測 定 器 が 認 識 されていることを 確 認 します 以 下 の 例 では デジタル マルチメータ 34410A が VISA アドレス GPIB0::22::INSTR とし て 認 識 されていることがわかります i Connection Expert の 使 用 方 法 は IO Libraries Suite16.3/16.2 簡 易 取 扱 説 明 書 を ご 参 照 ください 4
2) Excel 2010 の 起 動 と 開 発 タブの 表 示 スタート > すべてのプログラム > Microsoft Office > Microsoft Excel 2010 で Excel を 起 動 します ここでは VBA を 使 用 しますので Excel のリボンに 開 発 タブを 表 示 させます メニューから ファイル > オプション を 実 行 し 表 示 される Excel のオプション で リボンのユーザー 設 定 を 選 択 し メインタブ の 開 発 にチェックを 入 れ OK を 押 します この 操 作 で Excel のリボンに 開 発 のタブが 表 示 されます 一 度 この 設 定 を 行 うと 次 回 の Excel 起 動 時 にも 開 発 タブは 表 示 されています 5
3) Excel のシートにボタンを 追 加 Excel で 開 発 タブを 選 択 し 表 示 されるリボンから 挿 入 > フォームコントロール の ボタン(フォームコントロール) を 選 択 し ボタンを 配 置 したいシート 上 の 場 所 をク リックします ボタンを 配 置 したい 場 所 をクリック マクロの 登 録 が 表 示 されますので 新 規 作 成 を 押 してください 以 下 のような VBA のエディタが 起 動 されます 6
4) Excel / VBA に VISA COM ライブラリの 参 照 を 追 加 Excel /VBA から VISA COM ライブラリを 使 用 するには Excel /VBA に VISA COM 3.0 Type Library の 参 照 を 追 加 する 必 要 があります 手 順 は Excel / VAB のメニューから ツール > 参 照 設 定 を 実 行 します 表 示 され る 参 照 設 定 - VBAProject ダイアログで VISA COM 3.0 Type Library にチェックを 入 れて OK を 押 します i ツール > 参 照 設 定 で VISA COM 3.0 Type Library の 代 わりに VISA COM 1.0 Type Library が 表 示 される 場 合 があります その 場 合 は VISA COM 1.0 Type Library にチェックを 入 れて OK を 押 してください 再 度 ツール > 参 照 設 定 を 実 行 すると VISA COM 3.0 Type Library がチェックされていることが 確 認 できます 5) コードの 作 成 ここでは シート 上 の ボタン 1 を 押 すことで 動 作 するプログラムを 作 成 しますので コードはボタン 1 の Click イベントハンドラに 作 成 します Excel / VBA のエディタを 使 用 し て Sub ボタン 1_Click() と End Sub の 間 に 以 下 のコードを 入 力 してください 7
Sub ボタン 1_Click() Dim RM As New VisaComLib.ResourceManager Dim DMM As New VisaComLib.FormattedIO488 Set DMM.IO = RM.Open("GPIB0::22::INSTR") DMM.WriteString "*IDN?" Cells(1, 1) = DMM.ReadString() DMM.IO.Close Set DMM = Nothing Set RM = Nothing End Sub この 部 分 を 入 力 します コードの 入 力 が 完 了 したら プログラムを 実 行 します Excel のシートに 戻 り ボタン 1 をクリックします セル A1 に 測 定 器 からの 応 答 が 表 示 されます 8
4. サンプル プログラムの 説 明 VISA COM を 使 用 して 測 定 器 を 制 御 するプログラムは 三 つの 部 分 から 構 成 されます 最 初 は VISA COM のオブジェクトを 作 成 する 部 分 です 通 常 は ResouceManager オブジ ェクト FormattedIO488 オブジェクト IO Resource オブジェクトを 作 成 します 次 に 作 成 した VISA COM オブジェクトを 使 用 して 測 定 器 にコマンドを 送 り 応 答 を 受 け 取 る 部 分 です この 部 分 が 測 定 器 の 制 御 を 行 う 部 分 です 最 後 に 作 成 した VISA COM オブジェクトを 解 放 します 今 回 のプログラムは 最 初 に Dim RM As New VisaComLib.ResourceManager Dim DMM As New VisaComLib.FormattedIO488 Set DMM.IO = RM.Open("GPIB0::22::INSTR") で VISA COM の ResourceManager オブジェクトと FormattedIO488 オブジェクトを 作 成 して います 次 に ResourceManager オブジェクトに VISA アドレスを 渡 し IO Resource オブジ ェクトを 作 成 します 作 成 した IO Resource オブジェクトは FormattedIO488 オブジェクトの IO プロパティに 保 存 します i ResourceManager は VISA アドレスで 指 定 された リソース を 制 御 できる IO Resource オブジェクトを 作 成 します プログラムでは 次 に DMM.WriteString "*IDN?" Cells(1, 1) = DMM.ReadString() を 実 行 しています WriteString は 引 数 として 渡 された String 型 の 変 数 を 測 定 器 に 出 力 する FormattedIO488 のメソッドです ReadString() は 測 定 器 からの 応 答 を 受 け 取 り String 型 の 変 数 として 返 す FormattedIO488 のメソッドです WriteString の 行 を 実 行 すると 測 定 器 に *IDN? が 出 力 されます ReadString() の 行 を 実 行 すると 測 定 器 からの 応 答 を 受 け 取 り セル A1 に 表 示 します FormattedIO488 オブジェクトは IO Resource オブジェクトを 使 用 して 測 定 器 との IO を 行 っています 9
最 後 に IO Resource オブジェクトを Close し FormattedIO488 オブジェクトと ResourceManager オブジェクトを 解 放 しています DMM.IO.Close Set DMM = Nothing Set RM = Nothing 測 定 器 の 応 答 からラインフィードを 除 く 今 回 使 用 したアジレント 製 デジタル マルチメータ 34410A を 含 み 多 くの 測 定 器 は 応 答 の 最 後 に ラインフィードキャラクタ<LF>(ASCII コード 10)を 返 します このサンプル プログラムでは 測 定 器 からの 応 答 を そのままセル A1 に 保 存 していますので セル A1 に は 最 後 に <LF> が 付 いた 文 字 列 が 格 納 されています 測 定 器 からの 応 答 文 字 列 の 最 後 に 付 く<LF> を 取 り 除 くには Excel / VBA の Replace 関 数 が 使 用 できます Replace 関 数 は 受 け 取 った 文 字 列 の 特 定 の 文 字 列 を 別 の 文 字 列 に 置 き 換 えることができますので 測 定 器 の 応 答 の<LF> を ( 空 の 文 字 列 )に 置 き 換 えること が 可 能 です プログラムでは を Cells(1, 1) = DMM.ReadString() Cells(1, 1) = Replace(DMM.ReadString(), vblf, ) に 修 正 することで 測 定 器 の 応 答 の 最 後 から <LF> を 取 り 除 けます 10
プログラムの 実 行 に 待 ち 時 間 を 入 れる プログラムで 測 定 器 の 制 御 を 行 う 場 合 プログラムの 実 行 に 待 ち 時 間 を 入 れたい 場 合 が あります 例 えば 10 秒 ごとに 繰 り 返 し 測 定 を 行 う 場 合 や 測 定 器 の 設 定 を 変 更 して 一 定 時 間 後 に 測 定 を 行 いたい 場 合 などです ここでは Excel/VBA のプログラムの 実 行 に 待 ち 時 間 を 入 れる 方 法 として Windows の 機 能 (KERNEL32.dll 内 の Sleep)と DoEvents を 使 用 する 方 法 を 紹 介 します 以 下 のプログラムは 1 秒 ごとに 測 定 器 に READ? コマンドを 出 力 し 応 答 を 受 け 取 りま す その 際 Sleep (1000) ではなく Sleep (100) と DoEvents を 10 回 繰 り 返 すことで 待 ち 時 間 の 間 Excel の 操 作 が 可 能 になります 100m 秒 の 待 ちを 10 回 繰 り 返 し 1 秒 の 待 ちを 実 現 しています Sleep を 使 用 するには Public Declare Sub Sleep Lib "KERNEL32.dll" (ByVal dwmilliseconds As Long) で 宣 言 を 行 います プログラムで 実 行 を 待 つ 場 合 DoEvents と 合 わせて 使 用 します For i = 1 To 10 Sleep (100) DoEvents Next KERNEL32.dll 内 の Sleep は 引 数 で 指 定 したミリ 秒 だけプログラムの 実 行 を 停 止 します DoEvents は Excel が 実 行 できるイベントを 処 理 します 11
5. 参 考 資 料 IO Libraries Suite ダウンロードサイト 簡 易 取 扱 説 明 書 [ IO Libraries Suite 最 新 バージョン ] 2013 年 4 月 時 点 の 最 新 バージョンは 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 VISA COM ヘルプファイル(IO Libraries Suite のヘルプファイル) Windows のタスクバー 上 の IO アイコン をクリックし 表 示 されるメニューから Documentation > API Documentation > VISA COM Help の 操 作 でヘルプファイルが 起 動 します VISA COM を 使 用 する Visual Basic サンプル プログラム Visual Basic 2010 Express Edition と VISA COM ライブラリを 使 用 して 測 定 器 を 制 御 する より 実 用 的 なサンプル プログラムです 開 発 言 語 は 異 なりますが 測 定 器 制 御 の 実 例 として ご 参 考 にしていただけます デジタル マルチメータ [3441xA DCV 連 続 測 定 サンプル プログラム(PS-X30 G10103A)] http://www.agilent.co.jp/find/dmm_sample_program DC 電 源 [ E3600A DC 電 源 サンプル プログラム(PS-X30 G10101A)] http://www.agilent.co.jp/find/e3600_sample_program データロガー [ 34970A/34972A データロガーサンプル プログラム(PS-X30 G10102A) ] http://www.agilent.co.jp/find/datalog_sample_program 12
6. 注 意 事 項 本 サンプル プログラム および 本 アプリケーション ノートの 著 作 権 は アジレン ト テクノロジー 株 式 会 社 が 所 有 しています 本 サンプル プログラムを お 客 様 は 使 用 修 正 複 製 配 布 することができます 本 アプリケーション ノートの 転 載 配 布 はご 遠 慮 ください 本 サンプル プログラム および 本 アプリケーション ノートを 使 用 したことによっ て 生 じた 全 ての 障 害 損 害 不 具 合 ( 含 サンプル プログラムの 不 具 合 )に 関 して 弊 社 及 び 弊 社 の 所 属 するいかなる 団 体 組 織 とも 一 切 の 責 任 を 負 いません 本 サンプル プログラム および 本 アプリケーション ノートは 弊 社 にて 検 証 の 上 提 供 しておりますが お 客 様 の 環 境 下 での 動 作 は 保 証 しておりません 7. サンプル プログラムのサポート 弊 社 テクニカルコンタクトセンターでは 本 サンプル プログラムに 関 して お 電 話 や Email などで インストール 実 行 方 法 プログラム 内 容 などのお 問 い 合 わせを 承 っており ます お 問 い 合 わせには ご 利 用 の 製 品 のモデル 番 号 ( 34410A 等 ) 及 び 具 体 的 なお 問 い 合 わせ 内 容 ( サンプル プログラムでエラーが 発 生 する 等 ) をご 連 絡 ください エラーが 発 生 している 場 合 エラーの 画 面 コピーなど エラーの 詳 細 情 報 もお 送 りください その 他 アジレント 社 の 製 品 に 関 して 測 定 器 のコマンドや 動 作 測 定 器 を PC に 接 続 する 方 法 IO Libraries Suite による 測 定 器 の 制 御 方 法 など ご 質 問 等 ございましたらお 問 い 合 わせください このサンプル プログラムは PC による 測 定 器 の 制 御 方 法 のご 紹 介 を 目 的 としておりま すので 個 別 のご 希 望 に 応 じたプログラムの 修 正 などは 行 いません また Visual Studio や EXCEL など 他 社 製 品 の 使 い 方 やプログラム 言 語 の 一 般 的 なご 質 問 に 関 しましては 一 般 の 書 籍 または web Help 等 の 情 報 をご 確 認 いただきますようお 願 いいたします この 資 料 に 関 するお 問 い 合 わせ 先 アジレント テクノロジー 株 式 会 社 電 子 計 測 本 部 計 測 お 客 様 窓 口 フリーダイアル : 0120-421 345 ( 電 話 : 042-656-7832) Email : contact_japan@agilent.com [ お 問 い 合 わせ E メールテンプレート (テキスト) ] http://www.home.agilent.com/upload/cmc_upload/all/otoiawase4.txt 13
自 動 計 測 関 連 情 報 ソフトウェア [IO Libraries Suite 最 新 版 ] IO Libraries Suite は VISA 等 を 含 むコネクティビティ ソフトウェアです http://www.agilent.com/find/iolib 2012 年 11 月 現 在 の 最 新 版 は 16.3 です バージョン 16.X は 無 償 でご 利 用 いただけます Agilent IO Libraries Suite 16.3/16.2 簡 易 取 扱 説 明 書 ] http://cp.literature.agilent.com/litweb/pdf/5991-0331jajp.pdf [Agilent VEE Pro 最 新 版 ] ( 計 測 制 御 用 のプログラム 開 発 環 境 です) http://www.agilent.com/find/vee VEE Pro は 有 償 です 上 記 より 30 日 間 の 評 価 版 をダウンロード 可 能 です 2012 年 11 月 現 在 の 最 新 版 は 9.3 です サンプル プログラム ( 無 償 ) サンプル プログラム 日 本 語 資 料 のダウンロードが 可 能 です [Agilent PS-X30 G10101A E3600 DC 電 源 サンプルプログラム] http://www.agilent.co.jp/find/e3600_sample_program [Agilent PS-X30 G10102A 34970A/34972A データロガー サンプルプログラム] http://www.agilent.co.jp/find/datalog_sample_program [InfiniiVision オシロスコープ 用 サンプル プログラム ライブラリ] http://www.agilent.co.jp/find/infiniivision-sample 定 期 開 催 トレーニング 特 長 ポイント1 受 講 者 の 高 い 満 足 度 受 講 者 の50% 以 上 が 上 司 / 同 僚 からの 推 薦 さらに 受 講 後 アンケートで88%が 他 の 方 に 勧 めたい と 回 答 ポイント2 少 人 数 制 1 人 1 台 での 測 定 器 実 機 実 習 実 機 演 習 有 り のコースでは 測 定 器 を 受 講 者 1 人 1 台 使 用 できますので 自 分 のペースで 実 習 できます 実 機 演 習 無 し のコースでも 少 人 数 制 ですので わからない 点 は 講 師 に 質 問 しやすい 環 境 ポイント3 お 客 様 先 でのトレーニング 実 施 もお 勧 め 定 期 開 催 以 外 にも 経 験 豊 富 な 講 師 が 御 社 にてトレーニングを 実 施 いたします 新 人 研 修 などにご 利 用 ください ポイント4 受 講 後 のアフターサポートも 安 心 計 測 機 器 ベンダーサポートランキングで 7 年 間 連 続 の 総 合 No1 獲 得 専 任 エンジニアが 常 駐 し 受 講 内 容 測 定 方 法 のアドバイスを 提 供 [トレーニングコース 一 覧 ]( 日 程 も 記 載 しています) http://www.agilent.co.jp/find/training [ 自 動 計 測 トレーニングコース 詳 細 ] http://www.agilent.co.jp/find/programing105 [Excel で 始 める 測 定 器 制 御 ] [Visual Basic.net による 測 定 器 制 御 - VISA COM ライブラリ 編 -] [Excel VBA による 測 定 器 自 動 制 御 入 門 オシロスコープ 編 ] [VEE 9.3 基 礎 ] [VEE 9.3 プログラミング] アジレント テクノロジー 株 式 会 社 本 社 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 7, 2013 5991-2363JAJP 0000-08A