テクシオ・テクノロジーによるおじさんのためのIOT講座 |
共通通信ライブラリ(COM)のVISAに対応したアプリケーションをC#で作成しましたが、開発環境のインストールが 不要なExcel VBAでも同様なアプリケーションが作成できます。COMライブラリを参照で利用することにより、PC にインストールされているExcelが64ビットでも32ビットでも同じファイルで対応が可能になります。 VISAについてはナショナルインスツルメンツ社のNI-VISAのCOMライブラリを利用しています。最新のNI-VISAにはGP-IBドライバは含まれません、GP-IBを利用する場合はNI-488.2もインストールしてください。他社のVISAを利用する場合も対応するインタフェースが利用できるように環境を整えてください。 NI-VISAおよびNI-488.2はナショナルインスツルメンツ社の製品です、NIソフトウエアライセンスに従い、ご利用の開発PCのOSに対応したVISAを入手してください。VISAは他社の物でも問題ありません。 プログラムは、登録されているリソースの検索、通信ポートのOPEN/CLOSE/初期設定、書き込み、読み取りで構成されています。ファイル処理やグラフ出力などはインターネットに豊富にサンプルがありますので紹介していません、 必要に応じて追加してみてください。 1.ファイルの準備と環境設定 Excelを実行し、新規ファイルの作成で空のファイルを開きます。次にファイルメニューから名前を付けて保存を クリック、ダイアログでファイルの種類をExcel マクロ有効ブック(*.xlsm)に変更し、一旦保存します 。 ファイルの一時保存先がローカルPCのドライブ以外(OneDriveなどのクラウドやWeb)の場合に、ローカルPCにそのファイル をコピーすると 'Webなどから入手したファイル’という属性(MOTW)がファイルに付加さます。 この属性を持つファイルは内容の変更やマクロ・VBA実行が制限され、Excelでは次のように表示されます。
Excelを実行しオプションのリボンのユーザー設定で開発メニューを有効にします。またトラストセンターの Actrive Xとマクロの設定です”べてを有効にする”を選択します。プログラムの利用終了時は元の設定に戻して ください。 開発メニューでVisual BasicをクリックしVisual Basic for Applicationsの画面を開きます。挿入メニューから ユーザーフォームをクリックしてフォームを追加し、標準モジュールをクリックしてモジュール:Module1を 追加します。UserForm1を右クリックしオブジェクトの表示でフォームを表示します。 表示メニューからツールボックスを表示し、フォームにオブジェクトを追加します。フォーム(画面)の構成とし てはボタン:6個、コンボボックス:2個、テキストボックス:3個、ラベル:3個で、リソース検索、通信の OPEN、CLOSE、送信、受信を割当ています。また、ボタンをダブルクリックすると処理のひな形がソース コードとして作成されます。 Visual Basic for Applicationsの画面のツールメニューから参照設定をクリックし、ライブラリファイルから VISA-COM Type Libralyにチェックを入れ、Okをクリックします。 Module1のソースに時間待ちのAPIの定義(sleep)を追加します。64bit版Excelに対応するためにPtrSafeの定義が 必要です。 UserForm1のコードにはVISAの参照用の利用定義、コンボボックス用の文字列、通信種別ごとの個別設定用の インタフェースを定義し、画面初期化でコンボボックスの定義を行います。 3.イベントの処理を登録します。 ボタンクリックの処理はフォーム編集のボタンをダブルクリックすることで登録をおこないます。 インタフェースの選択切替時は必要なプロパティを表示するための表示変更をおこなっています。 リソースの検索(Find)のボタンは、選択されているインタフェースに基づいて、NI-MAXに登録されている デバイスの一覧を取得し、Device Listのコンボボックスに登録します。Socket対応の機器ではNI-MAXに登録 されていない機器への対応も必要なので、直接Device ListにIPアドレスとポートを記入しての利用も可能と しています。 OPEN、CLOSEのボタンは、通信の初期化、オープンまたはクローズをおこないます。RS-232Cでの追加設定 の例を入れてありますので、利用機器に合わせて設定を追加してください。デバイスリストに表示されている リソース名を対象として実行しますので、検索結果だけでなく直接入力した場合も利用できます。 Sendのボタンは送信テキストを送信し、Readのボタンは受信バッファの内容を受信して表示します。 ウインドウ右上の×をクリックした時に通信のクローズを追加します。 5.まとめ 実用アプリケーションには至っていませんが、VISA通信の最低限のプログラミングを取り上げました。
今回は基本的なVISA通信の設定・送受信を行いました、実際に運用するアプリにするには送受信や表示などを 別スレッド・プロセスに変更するなどの修正は必要になるかと思います、 通信のテストや動作の確認として このまま利用も可能です。 ソースプロジェクトのダウンロード |
©Copyright 2022 TEXIO TECHNOLOGY All Rights Reserved. |