IVI 計 測 器 ドライバ プログラミング ガイド (Excel 2007 VBA 編 ) July 2012 Revision 2.0 1- 概 要 1-1 IVI-COM ドライバの 推 奨 Excel VBA は IVI-COM 計 測 器 ドライバを 使 うのに 最 も 適 した 開 発 環 境 の 一 つです VBA では ActiveX コントロールのような COM オブジェクトを 使 うプログラミング 手 法 が 一 般 に 普 及 しており 多 くのプログラマーはこれらを 使 うことに 慣 れています IVI-COM 計 測 器 ドライバは ActiveX コントロ ールではありませんが 一 般 の COM オブジェクトと 同 様 な 手 順 でプログラムを 作 成 する 事 が 出 来 ま す Notes: 本 ガイドブックでは IVI-COM KikusuiPwx 計 測 器 ドライバ(KIKUSUI PWX シリーズ 直 流 電 源 )を 使 用 する 例 を 示 します 他 社 メーカー 及 び 他 機 種 用 の IVI 計 測 器 ドライバでも ほぼ 同 様 の 手 順 で 使 用 できます 本 ガイドブックでは Microsoft Excel 2007 VBA を 使 用 し Windows7 (x64) 上 で 動 作 するプログラムを 作 成 する 場 合 を 例 に 説 明 します 1-2 IVI 計 測 器 クラス インターフェース IVI 計 測 器 クラス インターフェース IVI-COM 計 測 器 ドライバを 利 用 する 場 合 スペシフィック インタ ーフェースを 利 用 する 方 法 とクラス インターフェースを 利 用 する 方 法 の 2 種 類 があります 前 者 は 計 測 器 ドライバの 固 有 インターフェースを 利 用 するもので 使 用 する 計 測 器 の 機 能 を 最 大 限 に 利 用 する 事 ができます 後 者 は IVI 仕 様 書 で 定 義 されている 計 測 器 クラスのインターフェースを 利 用 する もので インターチェンジャビリティ 機 能 を 利 用 する 事 ができますが 機 種 固 有 の 機 能 を 使 うことは 制 限 されます Notes: 計 測 器 ドライバが 所 属 する 計 測 器 クラスについては ドライバ 毎 の Readme.txt に 記 載 されています Readme 文 書 は Start ボタン All Programs Kikusui KikusuiPwx フォルダから 開 く 事 ができます 計 測 器 ドライバが 如 何 なる 計 測 器 クラスにも 属 していない 場 合 クラス インターフェースを 利 用 する 事 は できません つまりこの 場 合 インターチェンジャビリティ 機 能 を 利 用 するアプリケーションを 作 成 する 事 は 出 来 ません 2- スペシフィック インターフェースを 使 用 するサンプル ここでは スペシフィック インターフェースを 使 用 したサンプルを 示 します スペシフィック インターフ ェースを 使 用 すると 計 測 器 ドライバで 提 供 される 機 能 を 最 大 限 に 利 用 する 事 ができますが インタ ーチェンジャビリティを 実 現 する 事 はできません 2-1 VBA を 使 用 する 為 の 準 備 このドキュメントでは Excel シートに 直 接 ボタンを 配 置 したアプリケーションを 例 に 説 明 します 2012 KIKUSUI ELECTRONICS CORP. All Rights Reserved. Page 1/11
Excel をインストールしたデフォルトの 状 態 では VBA は 使 えません そこでまず Excel の 設 定 をカス タマイズする 必 要 があります Excel を 起 動 したら Microsoft Office ボタン(リボン 左 端 の 丸 ボタン) から Excel のオプションを 選 択 します Figure 2-1 Microsoft Office Button カテゴリ ペインで 基 本 設 定 を 選 択 し [ 開 発 ]タブをリボンに 表 示 するチェックボックスの 項 目 を 選 択 します これでリボンメニューに[ 開 発 ]タブが 表 示 されます Figure 2-2 Excel Options 引 き 続 きリボンメニューから[ 開 発 ]タブを 選 択 します Figure 2-3 Developer Menu リボンの[コード]セクションからマクロのセキュリティを 選 択 して[セキュリティ センター]ダイアログを 表 示 し [マクロの 設 定 ]からすべてのマクロを 有 効 にする( 推 奨 しません 危 険 なコードが 実 行 され る 可 能 性 があります)を 選 択 します 2012 KIKUSUI ELECTRONICS CORP. All Rights Reserved. Page 2/11
Figure 2-4 Trust Centre マクロ セキュリティの 設 定 を 終 えたら 引 き 続 きリボンの[コントロール]セクションから 挿 入 フォー ムコントロール ボタン(フォームコントロール)を 選 択 し ボタンを 置 きたいセルの 位 置 をクリックし てボタンを 作 成 します [マクロの 登 録 ]ダイアログが 表 示 されるので[ 新 規 作 成 ]を 選 択 してマクロを 新 規 作 成 します Figure 2-5 Assign Macro マクロを 作 成 すると Visual Basic のエディタが 開 き ボタン ハンドラのソースコードが 表 示 されてい ます 以 降 このボタン ハンドラ 内 にプログラムを 書 いていきます 3- スペシフィック インターフェースを 使 用 するサンプル ここでは スペシフィック インターフェースを 使 用 したサンプルを 示 します スペシフィック インターフ ェースを 使 用 すると 計 測 器 ドライバで 提 供 される 機 能 を 最 大 限 に 利 用 する 事 ができますが インタ ーチェンジャビリティを 実 現 する 事 はできません 3-1 タイプ ライブラリのインポート 新 規 プロジェクトを 作 成 したあと 最 初 にすべき 事 は 利 用 したい IVI-COM 計 測 器 ドライバのタイプ ライブラリをインポートする 事 です ツール 参 照 設 定 メニューを 選 択 して[ 参 照 設 定 ]ダイアログを 2012 KIKUSUI ELECTRONICS CORP. All Rights Reserved. Page 3/11
表 示 してください ここでは KikusuiPwx IVI-COM ドライバを 使 用 する 例 を 示 すので IVI KikusuiPwx 1.0 Type Library と IviDriver 1.0 Type Library を 選 択 します Figure 3-1 タイプ ライブラリのインポート 3-2 計 測 器 オブジェクトの 作 成 とセッションのイニシャライズ 先 程 作 成 したボタン ハンドラ 内 にコードを 書 いていきます 下 記 のような 計 測 器 ドライバ オブジェ クトの 作 成 とセッションのオープン クローズを 行 うコードを 書 きます ここでは IP アドレス 192.168.1.5 を 持 つ 計 測 器 (Kikusui PWX シリーズ 直 流 電 源 )が LAN で 接 続 されていると 仮 定 します Dim inst As IKikusuiPwx Set inst = New KikusuiPwx inst.initialize "TCPIP::192.168.1.5::INSTR", True, True, "QueryInstrStatus=1" inst.close ここで Initialize メソッドのパラメータについて 説 明 しましょう 全 ての IVI-COM 計 測 器 ドライ バは IVI 仕 様 書 で 定 義 された Initialize メソッドを 持 っています このメソッドには 以 下 のよう なパラメータがあります 2012 KIKUSUI ELECTRONICS CORP. All Rights Reserved. Page 4/11
Table 3-1 Initialize メソッドのパラメータ パラメータ タイプ 説 明 ResourceName String VISA リソース 名 の 文 字 列 計 測 器 が 接 続 されている I/O イ ンターフェース アドレスなどによって 決 定 される 例 えば "TCPIP::192.168.1.5::INSTR"の 例 では IP アドレス 192.168.1.5 を 持 つ LAN 接 続 の 計 測 器 で VXI-11 インター フェースを 使 用 する 事 を 意 味 する IdQuery Boolean TRUE を 指 定 した 場 合 計 測 器 に 対 して ID クエリを 行 う Reset Boolean TRUE を 指 定 した 場 合 計 測 器 の 設 定 をリセットする OptionString String RangeCheck Cache Simulate QueryInstrStatus RecordCoercions Interchange Check に 関 する 設 定 を デフォルト 以 外 に 指 定 できる 更 に 計 測 器 ドライバが DriverSetup 機 能 をサポートする 場 合 そ の 設 定 を 行 うことができる ResourceName には VISA リソースを 指 定 します IdQuery に TRUE を 指 定 した 場 合 は 計 測 器 に 対 して"*IDN?"クエリなどを 発 行 して 機 種 情 報 を 問 い 合 わせます Reset に TRUE を 指 定 した 場 合 は "*RST"コマンドなどを 発 行 して 計 測 器 の 設 定 をリセットします OptionString には 2 つの 機 能 があります 1 つは RangeCheck, Cache, Simulate, QueryInstrStatus, RecordCoercions, Interchange Check,などの IVI 定 義 の 動 作 を 設 定 します もう 1 つは 計 測 器 ドライバ 毎 に 独 自 に 定 義 される DriverSetup を 指 定 します OptionString は 文 字 列 パラメータなので これらの 設 定 は 下 のサンプルのような 書 式 でなけれ ばなりません QueryInstrStatus = TRUE, Cache = TRUE, DriverSetup=12345 (DriverSetup=12345 はあくまでも 説 明 上 の 内 容 であり 架 空 のパラメータです ) 設 定 したい 機 能 の 名 称 及 び 設 定 値 はケース インセンシティブ( 大 文 字 と 小 文 字 の 区 別 なし)です 設 定 値 は Boolean 型 なので TRUE FALSE 1 0 の 何 れかが 有 効 です 複 数 の 項 目 を 設 定 する 場 合 は コンマで 区 切 ります OptionString パラメータで 特 に 設 定 値 を 指 定 しない 場 合 IVI 仕 様 書 で 定 義 されたデフォルト 値 が 適 用 されます IVI 仕 様 書 で 定 義 されたデフォルト 値 は RangeCheck と Cache だけが TRUE で その 他 は 全 て FALSE です 計 測 器 ドライバによっては DriverSetup パラメータが 意 味 を 持 つ 場 合 もあります これは IVI 仕 様 書 では 定 義 されない 項 目 を Initialize の 呼 び 出 し 時 に 指 定 するもので 利 用 目 的 や 書 式 はドライバ 依 存 です 従 って DriverSetup の 指 定 を 行 う 場 合 それは OptionString の 最 後 の 項 目 として 指 定 される 必 要 があります DriverSetup の 指 定 内 容 はドライバ 毎 に 異 なるので ドライバの Readme 文 書 又 はオンライン ヘルプなどを 参 照 してください 3-3 セッションのクローズ 3-4 実 行 計 測 器 ドライバによるセッションをクローズするには Close メソッドを 使 います ここまでのコードだけで とりあえず 実 行 する 事 は 可 能 です ワークシート 上 に 置 いたボタンをクリッ クすると( 又 は Visual Basic エディタが 表 示 されている 状 態 で F5 で 実 行 操 作 すると) VBA マクロが 動 作 します ボタン ハンドラ 内 に 書 かれたコードが 実 行 され Initialize メソッド 呼 び 出 しが 成 2012 KIKUSUI ELECTRONICS CORP. All Rights Reserved. Page 5/11
功 した 場 合 は 何 事 もなくプログラムは 終 了 します 通 信 に 失 敗 した 場 合 や VISA ライブラリの 設 定 が 正 しく 行 われていない 場 合 などは COM 例 外 (VBA ランタイム エラー)を 発 生 します エラー( 例 外 )の 処 理 方 法 については 後 述 します Figure 3-2 COM 例 外 3-5 リピーテッド キャパビリティ Output コレクション 電 源 装 置 やオシロスコープなどの IVI ドライバでは 計 測 器 が 複 数 のチャンネルが 装 備 されている 事 を 前 提 に 設 計 されています 従 って 計 測 器 の 設 定 に 関 する 操 作 を 行 うプロパティやメソッドは リ ピーテッド キャパビリティ( 或 いはコレクション)と 呼 ばれるオブジェクト 配 列 の 概 念 を 実 装 するケース が 多 く 見 られます 直 流 電 源 の 計 測 器 ドライバの 場 合 は Output コレクションがそれに 該 当 します KikusuiPwx IVI-COM ドライバの 場 合 KikusuiPwxOutputs と KikusuiPwxOutput がそうで す 複 数 形 のオブジェクトがコレクションであり 単 数 形 の 物 がその 中 に 複 数 (1 個 以 上 ) 生 息 します 一 般 に 直 流 電 源 用 の 計 測 器 ドライバは ( 実 際 のチャンネル 数 とは 関 係 なく) 複 数 の 出 力 チャンネル を 持 つマルチ トラック 電 源 装 置 の 概 念 を 前 提 に 設 計 されています これらは 単 数 形 と 複 数 形 の 違 いを 除 いて 同 じ 名 前 になっています このように 複 数 形 の 名 前 を 持 つ コンポーネントは IVI 仕 様 書 では 一 般 にリピーテッド キャパビリティ( 一 般 的 な COM の 用 語 ではコ レクション)と 呼 ばれます IKikusuiPwxOutputs のような 複 数 形 の 名 前 を 持 つ COM インターフ ェースは 通 常 Count Name Item プロパティ(いずれもリード オンリー)を 持 ちます Count プロ パティはオブジェクトの 個 数 を 返 し Name プロパティはインデックス 番 号 で 指 定 されたオブジェクトの 名 前 を 返 します Item プロパティは 指 定 された 名 前 を 持 つオブジェクトへの 参 照 を 返 します 下 記 のコード 例 は Kikusui PWX シリーズ 直 流 電 源 の"Output0"という 名 前 で 識 別 される 出 力 チ ャンネルを 制 御 するものです... Dim output As IKikusuiPwxOutput Set output = inst.outputs.item("output0") output.voltagelevel = 20.0 output.currentlimit = 2.0 output.enabled = True... 一 旦 IKikusuiPwxOutput インターフェースを 取 得 してしまえば あとは 難 しい 事 はありません VoltageLevel プロパティは 電 圧 レベル 設 定 を CurrentLimit プロパティは 電 流 リミット 設 定 を それぞれ 行 います Enabled プロパティは 出 力 の ON/OFF 設 定 を 行 います IKikusuiPwxOutput インターフェースを 取 得 する 際 の 記 述 に 注 意 してください ここでは IKikusuiPwx インターフェースの Outputs プロパティを 通 じて IKikusuiPwxOutputs を 取 得 し Item プロパティを 使 って IKikusuiPwxOutput インターフェースを 取 得 しています ここで Item プロパティに 渡 しているパラメータに 注 意 する 必 要 があります このパラメータは 参 照 したい 単 品 の Output オブジェクトの 名 前 を 指 定 しています しかしここで 使 える 名 前 は ドライバ 2012 KIKUSUI ELECTRONICS CORP. All Rights Reserved. Page 6/11
ごとにそれぞれ 違 います 例 えば KikusuiPwx IVI-COM ドライバでは "Output0"のような 表 現 に なっていますが 他 のドライバでは(たとえ 同 じ IviDCPwr クラスであっても) 違 ったものになります 例 えば 他 の 計 測 器 ドライバでは "Channel1"のような 表 現 かも 知 れません 特 定 の 計 測 器 ドラ イバで 使 用 可 能 な 名 前 は 通 常 はドライバのオンライン ヘルプなどに 記 載 されていますが 下 記 の ようなコードを 書 くことでそれらを 調 べる 事 も 可 能 です Dim outputs As IKikusuiPwxOutputs Set outputs = inst.outputs Dim n As Integer Dim c As Integer c = outputs.count For n = 1 To c Dim name As String name = outputs.name(n) Debug.Print name Next Count プロパティは リピーテッド キャパビリティが 持 つ 単 品 オブジェクトの 個 数 を 返 します Name プロパティは 与 えられたインデックス 番 号 の 単 品 オブジェクトが 持 つ 名 前 を 返 します この 名 前 こそ が Item プロパティに 渡 す 事 のできるパラメータになるのです 上 記 の 例 では For/Next 文 を 使 って インデックス 1 から Count までを 反 復 処 理 しています Name パラメータに 渡 すインデックス 番 号 は 0 ベースではなく 1 ベースである 事 に 注 意 してください 4- エラー 処 理 これまで 示 したサンプルでは エラー 処 理 を 何 も 行 っていませんでした しかし 実 際 には 範 囲 外 の 値 をプロパティに 設 定 したり サポートされていない 機 能 を 呼 び 出 したりすると 計 測 器 ドライバがエ ラーを 発 生 する 事 があります また どんなに 堅 牢 に 設 計 実 装 されたアプリケーションでも 計 測 器 との I/O 通 信 エラーは 避 けることが 出 来 ません IVI-COM 計 測 器 ドライバでは 計 測 器 ドライバ 内 で 発 生 したエラーは 全 て COM 例 外 としてクライア ント プログラムに 伝 えられます VBA の 場 合 COM 例 外 は On Error Goto ステートメントを 使 っ て 処 理 する 事 が 出 来 ます 先 ほど 示 した 電 圧 電 流 を 設 定 するコードを 下 記 のように 変 更 してみましょう Sub CommandButton1_Click() On Error GoTo DRIVER_ERR: Dim inst As IKikusuiPwx Set inst = New KikusuiPwxLib.KikusuiPwx inst.initialize "TCPIP::192.168.1.5::INSTR", True, True, "" Dim output As IKikusuiPwxOutput Set output = inst.outputs.item("output0") output.voltagelevel = 20.0 output.currentlimit = 2.0 output.enabled = True inst.close Exit Sub DRIVER_ERR: Debug.Print Err.Description End Sub 2012 KIKUSUI ELECTRONICS CORP. All Rights Reserved. Page 7/11
ここでは On Error Goto ステートメントを 使 ってエラー 処 理 を 行 っています 例 えば Item プロ パティに 渡 した 名 前 が 間 違 っている 場 合 VoltageLevel に 設 定 する 値 が 適 正 範 囲 から 外 れてい る 場 合 或 いは 計 測 器 との 通 信 に 失 敗 した 場 合 などはいずれも 計 測 器 ドライバ 内 で COM 例 外 が 発 生 します 上 記 の 例 では 例 外 が 発 生 した 場 合 に 簡 単 なメッセージをイミディエイト ウインドウに 表 示 しています 5- クラス インターフェースを 使 用 するサンプル ここでは 計 測 器 クラス インターフェースを 使 用 したサンプルを 示 します 計 測 器 クラス インターフ ェースを 使 用 すると アプリケーションを 再 度 コンパイル リンクすることなく 計 測 器 を 別 の 機 種 に 交 換 する 事 ができます 但 しその 場 合 交 換 前 後 の 両 機 種 に 対 して IVI-COM 計 測 器 ドライバが 提 供 されており 且 つそれらのドライバが 同 じ 計 測 器 クラスに 属 している 必 要 があります 異 なる 計 測 器 クラス 間 でのインターチェンジャビリティは 実 現 できません 5-1 仮 想 インストルメント インターチェンジャビリティ 機 能 を 利 用 するアプリケーションの 作 成 を 行 う 前 にやっておかなければな らない 事 は 仮 想 インストルメントの 作 成 です インターチェンジャビリティ 機 能 を 実 現 するには アプ リケーション コード 内 に 特 定 の IVI-COM 計 測 器 ドライバに 依 存 した 記 述 ( 例 えば KikusuiPwx 型 で 直 接 オブジェクトを 生 成 )したり "TCPIP::192.168.1.5::INSTR"のような 特 定 VISA アドレス(リソー ス 名 )の 記 述 などをするべきではありません これらの 事 柄 をアプリケーション 内 に 直 接 記 述 すると インターチェンジャビリティを 損 ないます その 代 わりに IVI 仕 様 では 計 測 器 ドライバとアプリケーションの 外 部 に IVI コンフィグレーション ス トアを 置 く 事 によってインターチェンジャビリティを 実 現 します アプリケーションは 特 定 機 種 用 の 計 測 器 ドライバを 直 接 使 うのではなく 計 測 器 クラス インターフェースを 使 います その 際 に IVI コンフィ グレーション ストアの 内 容 に 従 って 計 測 器 ドライバ DLL の 選 択 を 行 い 間 接 的 にロードされた 計 測 器 ドライバを 特 定 機 種 に 依 存 しないクラス インターフェースを 通 じてアクセスします IVI コンフィグレーション ストアは 通 常 C:/ProgramData/IVI Foundation/IVI/ IviConfigurationStore.xml ファイルで IVI Configuration Server DLL を 通 じてアクセスされま す この DLL を 利 用 するのは 主 に IVI 計 測 器 ドライバや 一 部 の VISA/IVI コンフィグレーション ツ ールであって アプリケーションからは 通 常 は 使 いません その 代 わりに NI-VISA に 付 属 の NI- MAX (NI Measurement and Automation Explorer)か 又 は KI-VISA に 付 属 の IVI Configuration Utility を 使 用 して IVI ドライバのコンフィグレーションを 行 います Notes: NI-MAX を 使 用 して 仮 想 インストルメントの 設 定 を 行 う 手 順 に 関 しては IVI 計 測 器 ドライバ プログラミング ガ イド(LabVIEW 編 又 は LabWindows/CVI 編 ) を 参 照 してください このガイドブックでは mysupply という IVI ロジカル ネームで 仮 想 インストルメントが 既 に 作 成 さ れていて KikusuiPwx ドライバを 使 用 し VISA リソース"TCPIP::192.168.1.5::INSTR"を 使 用 する という 設 定 が 行 われているものとします 5-2 タイプ ライブラリのインポート 新 規 プロジェクトを 作 成 したあと 最 初 にすべき 事 は 利 用 したい IVI-COM 計 測 器 ドライバのタイプ ライブラリをインポートする 事 です ツール 参 照 設 定 メニューを 選 択 して[ 参 照 設 定 ]ダイアログを 表 示 してください こここでは IviDCPwr クラス インターフェースを 使 用 するので IviDCPwr 2.0 TypeLibrary を 選 択 します また IviDriver 1.0 Type Library と IviSessionFactory 1.0 TypeLibrary の 2 つも 合 わせて 選 択 します これらは 使 用 する 計 測 器 クラス インターフェースに 関 係 なく 必 ず 選 択 してください 2012 KIKUSUI ELECTRONICS CORP. All Rights Reserved. Page 8/11
Figure 5-1 タイプ ライブラリのインポート 参 照 設 定 を 終 えたら ボタン ハンドラに 下 記 のようなコードを 書 いていきます (ここでは 既 に 説 明 した 例 外 処 理 も 含 めて 一 気 に 書 きます ) Sub CommandButton1_Click() On Error GoTo DRIVER_ERR Dim sf As IIviSessionFactory Set sf = New IviSessionFactory Dim inst As IIviDCPwr Set inst = sf.createdriver("mysupply") inst.initialize "mysupply", True, True, "" Dim output As IIviDCPwrOutput Set output = inst.outputs.item("track_a") output.voltagelevel = 20# output.currentlimit = 2# output.enabled = True inst.close Exit Sub DRIVER_ERR: Debug.Print Err.Description End Sub 順 番 に 説 明 していきましょう 5-3 オブジェクトの 作 成 とセッションのイニシャライズ まず ソースコード 上 に Kikusui で 始 まる 型 名 が 一 切 使 われていない 点 に 注 意 して 下 さい このサン プル コードはもはや KikusuiPwx への 依 存 を 含 んでいません その 代 わりに IviDriver IviDCPwr の IVI クラス インターフェースと SeesionFactory が 使 われます 2012 KIKUSUI ELECTRONICS CORP. All Rights Reserved. Page 9/11
スペシフィック インターフェースを 使 う 場 合 と 異 なり KikusuiPwx のような 特 定 コンポーネントへの 依 存 を 記 述 することは 出 来 ません その 代 わりに SessionFactory オブジェクトのインスタンスを 作 成 し CreateDriver メソッドを 呼 び 出 すことで IVI コンフィグレーション ストアに 設 定 されてい るドライバ オブジェクトを 間 接 的 に 作 ります まず IviSessionFactory オブジェクトを 作 成 し IIviSessionFactory インターフェースへ の 参 照 を 取 得 します Dim sf As IIviSessionFactory Set sf = New IviSessionFactory 次 に 既 に 作 成 した IVI ロジカル ネーム( 仮 想 インストルメント)を 指 定 して CreateDriver メソッ ドを 呼 び 出 します 作 成 されたドライバ オブジェクトは 実 際 には KikusuiPwx ドライバのオブジェクト ですが ここでは IIviDCPwr インターフェースへの 参 照 を 変 数 inst に 保 持 します Dim inst As IIviDCPwr set inst = sf.createdriver("mysupply") IVI Configuration Store が 正 しく 設 定 されていれば 例 外 を 発 生 することなく 実 行 できるはずです 但 し この 時 点 ではまだ 計 測 器 とは 通 信 していません IVI-COM ドライバの DLL がロードされただ けです そして Initialize メソッドを 呼 び 出 します この 時 点 で 計 測 器 との 通 信 が 開 始 します Initialize メソッドに 渡 す 最 初 のパラメータは 本 来 VISA アドレス(VISA IO リソース)ですが こ こでは IVI ロジカル ネームを 渡 します IVI コンフィグレーション ストアにはこのロジカル ネームと リンクする Hardware Asset 情 報 があるので そこで 指 定 した VISA アドレスが 実 際 には 適 用 されま す inst.initialize "mysupply", True, True, "" IviDCPwr クラスでは 直 流 電 源 の アウトプット オブジェクトは Outputs コレクションの 中 にありま す スペシフィック インターフェースでの 例 題 と 同 様 に コレクションから 単 一 の Output オブジェク トへの 参 照 を 取 得 します この 場 合 IKikusuiPwxOutput インターフェースではなく IIviDCPwrOutput インターフェース 型 となります Dim output As IIviDCPwrOutput Set output = inst.outputs.item("track_a") output.voltagelevel = 20.0 output.currentlimit = 2.0 output.enabled = True ここで Item プロパティに 渡 しているパラメータに 注 意 する 必 要 があります このパラメータは 参 照 したい 単 品 の Output オブジェクトの 名 前 を 指 定 しています スペシフィック インターフェースを 使 用 した 例 ではドライバごとにそれぞれ 異 なる 名 前 (フィジカル ネーム)を 直 接 渡 していしましたが こ こでは 違 います ここでは 特 定 の 計 測 器 ドライバに 依 存 したフィジカル ネームは 使 えない( 使 っても 動 作 するが それではインターチェンジャビリティを 損 なう)ので バーチャル ネームを 指 定 します 上 記 の 例 で 使 用 しているバーチャル ネーム"Track_A"は IVI コンフィグレーション ストアで "Output0"というフィジカル ネームにマップされるように 指 定 された 物 です 2012 KIKUSUI ELECTRONICS CORP. All Rights Reserved. Page 10/11
5-4 計 測 器 の 交 換 これまでの 例 では 仮 想 インストルメントのコンフィグレーションとして KikusuiPwx(kipwx) 計 測 器 ドラ イバを 使 うように 設 定 しましたが ここで 計 測 器 を 例 えば AgilentN57xx( 又 は AgN57xx)ドライバでホ ストされるもの(Agilent N5700 シリーズ 直 流 電 源 )に 交 換 するとどうなるでしょう その 場 合 には ア プリケーションを 再 度 コンパイル リンクする 必 要 はありませんが "mysupply"という IVI ロジカル ネーム( 仮 想 インストルメント)のコンフィグレーション 内 容 を 変 更 する 必 要 があります 変 更 しなければならないコンフィグレーションは 基 本 的 には Driver Session タブにある Software Module の 変 更 (kipwx AgN57xx) Virtual Names の 展 開 先 マップ 変 更 (Output0 Output1) Hardware Asset タブにある IO Resource Descriptor の 変 更 ( 交 換 後 の 接 続 先 VISA アドレス へ) という 具 合 になります コンフィグレーションが 正 しく 設 定 されれば 上 記 のサンプルは 再 度 コンパイ ル リンクをせずにそのまま 交 換 後 の 計 測 器 でも 動 作 します Notes: 仮 想 インストルメントのコンフィグレーション 方 法 については 計 測 器 ドライバ プログラミング ガイド (LabVIEW 編 又 は LabWindows/CVI 編 ) を 参 照 してください IVI クラス インターフェースを 利 用 したインターチェンジャビリティ 機 能 は 計 測 器 交 換 前 後 での 動 作 を 保 証 するわけではありません 交 換 後 のシステムが 正 常 に 機 能 するかどうか 十 分 に 検 証 してから 運 用 して 下 さい IVI 計 測 器 ドライバ プログラミング ガイド 本 ガイドブックに 登 場 する 製 品 名 会 社 名 等 は 各 社 の 商 標 または 登 録 商 標 です 2012 Kikusui Electronics Corp. All Rights Reserved. 2012 KIKUSUI ELECTRONICS CORP. All Rights Reserved. Page 11/11