第 4 章 チュートリアル 25
4.2 Excel対応版ActiveXコントロール編
ここでは、GP-IB制御にExcel対応版ActiveXコントロールを用いプログラムの作成を行います。
Excel対応版ActiveXコントロールには、以下の特長があります。
・Excelへのデータ貼り付け機能
GP-IB機器から取り込んだデータをActiveXコントロールが自動でMicrosoft Excelへ貼り付けて
くれます。また、Excelの自動立ち上げや、受信データの変換等も行うことができます。
・スクリプトによる簡単なGP-IB制御
約10程度のコマンドで、SRQ割り込み等難解なGP-IB制御を簡単に行うことができます。
・プロパティページによる各種設定
ボードおよびGP-IB機器の各種設定をプロパティページにより簡単に設定することができま す。
・ログ機能
スクリプトの実行結果をログファイルに残すことができます。これにより、デバッグがやりや すくなります。
使用するメソッド,プロパティ,イベントの詳細は巻末のExcel対応版ActiveXコントロールリファレ ンスを参照してください。ActiveXコントロール(BPA-0515)は、弊社Web siteよりダウンロードし てください。
Step1. 基本フォーム作成
では、これから作成するプログラムのもととなる画面の作成を行います。
1. Visual Basicを起動し新しい標準 EXE プロジェクトを作成します。
・新規作成タブより「標準EXE」を選択した後「開く」ボタンをクリックします。
標準
EXEを選択します。
2.
プロジェクトにGP-IB ActiveXコントロール(Excel対応版
)を追加します。コンポーネント
・メニューバーより「プロジェクト(P)」−「コンポーネント(O)…」を選択します。
・コントロール一覧より「Interface BPA-0515 GP-IB Excel Control 1.1」のチェックボックスを チェックし「適用」ボタンをクリックします。
Interface BPA-0515 GP-IB Excel Control 1.1
と表示されています。
3.
ツールボックスにGP-IB ActiveXコントロール(Excel対応版
)アイコンが現れます。
GP-IB ActiveX
コントロール
(Excel 対応版)
アイコンが追加されます。
TUT-0027
4.
既定のフォームの名前を
frmGpibHostに変更し、フォームのタイトルを "GP-IBホスト" に 変更します。
・画面上にフォームが1つ表示されているので、そのフォームを選択し、プロパティウィンドウ に値を設定します。(オブジェクト名)を
frmGpibHostにCaption を
GP-IBホスト にそれぞれ変更します。
オブジェクト名を変更します
Caption
を変更します
5. GP-IB
コントロールをフォーム上に描画し、名前を
gpiHostに変更します。
・ツールボックスよりGP-IB ActiveXコントロールアイコンをクリックします。
・マウスカーソルをfrmGpibHostに移動し、適当な位置でマウスのボタンを押さえ、ボタンは押さ えたままそのまま斜め下方向にマウスを移動した後マウスのボタンを離します。
フォームに描画された
GP-IB ActiveX
コントロール(Excel 対応版)
デザイン時のActiveXコントロール
・
GP-IB Excel対応版 ActiveX Controlと表示された部分をクリックするとプロパティウィンドウ内にGP-IB Excel対応版 ActiveX Controlのプロパティが表示されるので、(オブジェクト名)を
“gpiHost”に変更します。
ここまでで、GP-IB制御を行うプログラムの基本となるフォームの作成が完了しました。
ではここで実行してみましょう。Visual Basicのツールバーより「開始」ボタンをクリックしてく ださい。画面上に以下のフォームが表示されます。
プログラム実行時のActiveXコントロール
ここで、デザイン時(Visual Basicにおいて画面作成のことをデザインと呼びます)フォーム上には
「GP-IB Excel対応版
ActiveX Control」と表示されていましたが、実行してみるとそれが変更されていることに気づくと思います。
GP-IB ActiveX Control Excel対応版は実行時には上図のように、「START/STOP」ボタン,
「PROPERTY」ボタン,「Setup Information」ウィンドウ,「Status」ウィンドウが表示されます。
START/STOPボタン
スクリプトの実行を開始/停止することができます。
START/STOPは自動的に切り替わります。
PROPERTYボタン
プロパティページを開きます。
Setup Informationウィンドウ
プロパティページで設定した内容のうち、 ボード番号 やアドレス等の情報を表示します。
Statusウィンドウ
スクリプト実行時、現在実行している行を表示しま す。
では、Visual Basicのツールバーより「終了」ボタンをクリックし次のステップに進みます。
TUT-0027
Step2. スクリプトファイルの記述
ここより、
GP-IBボードを制御するためのスクリプトを記述して行きます。スクリプトとは簡単なロジックを記述して処理を実現できるようにした簡易言語です。
ActiveXコントロールのメソッドで直接GP-IBボードを制御することも可能ですが、より簡単にGP-IB制御を行うために、ここでは スクリプトを使用します。では、実際に計測器から電圧値を10回取得するスクリプトを記述して みましょう。
1. Windowsの「スタート」ボタンから、「プログラム」−「アクセサリ」を選択し、メモ帳を開
き、以下のコードを記述します。
編集ウィンドウ
(
計測器から電圧値を
10回取得するスクリプト
)コメントは省略しました。
CLEAR 2 ’
〜
OUTPUT 2, ”*RST” ’
〜
OUTPUT 2, ”*CLS” ’
〜
Loop 10 ’
〜
OUTPUT 2, “MEASure:VOLTage:DC?” ’
〜
WAIT 1 ’
〜
ENTER 2 ’
〜
CELL 2,1 ’
〜
End Loop ’
〜
End ’
〜
スクリプトの記述は以上になります。
CドライブにBPA-0515というフォルダを作成し、Sample.txtという名前でファイルを保存して、メモ帳を閉じてください。
Step3. プロパティページの設定とプログラムの実行
Step2でスクリプトファイルの記述が完了しました。次に、使用するスクリプトファイル等のファ
イル設定やGP-IBボードの設定、および、計測器の設定をプロパティページで行います。
1.
フォームに貼りつけたActiveXコントロールを右クリックし、「プロパティ」を選択します。
プロパティ
2.
プロパティページの「ファイル」タブからスクリプトファイルとして先程保存したスクリプト ファイル(Sample.txt)を指定します。
3.
データ貼り付け方法として「指定したExcelファイルに貼り付ける(E)」ラジオボタンをクリッ クし、データの貼り付けを行いたいExcelファイルとシート名を指定します。
4.
ログファイルとして「ログファイルに保存する」にチェックをし、ログファイル名を指定しま
す。※ 2,3,4のいずれかの場合もファイル指定は「…」ボタンを利用すると便利です。
TUT-0027
ここでは、
C:¥BPA0515フォルダにある、Sample.txtをスクリプトファイルに、Test.xlsのSheet1をデータを貼り付ける場所に、Script.LOGをログファイルとして指定します。
5.
次に、「ボード」タブを選択し、以下のように設定を行います。
ボート番号(RWS1)
01次アドレス 20
2次アドレス
未使用
送受信タイムアウト
30(×100ms)STB応答タイムアウト 30(×100ms)
ここでSTB応答タイムアウトは、シリアルポーリング(後述)時のステータスバイト受信待ちのタイ ムアウト時間を指します。
6.
次に、接続相手のGP-IB機器タブを選択し、「追加」ボタンをクリックします。
7.
以下のようにGP-IB機器の設定を行います。
(GP-IB機器設定) 1次アドレス 2
2次アドレス
未使用
セル初期位置 A1
送信デリミタ CRLF+EOI 受信デリミタ CRLF+EOI コメント
HP34401A (変換書式)基本設定 浮動小数点形式の文字列を数値に変換
ここで送信デリミタ,受信デリミタについて、通常、文字列を受信する機器においては、受信した 文字列の末尾を知る必要があります。したがって、送信側は送信する文字列の末尾に末尾を示す データを付加する必要があります。末尾を示すデータをデリミタコードと言います。本チュート リアルではデリミタコードに CR+LF+EOIを想定しています。デリミタの設定は送信デリミタ設 定にSendDelimiter,受信デリミタ設定にRecvDelimiterプロパティを使用します。
ABCD(送信文字列)
デリミタ
GP-IB
機器への送信文字
デリミタに
EOI(End Or Identify)を設定する場合、EOI
というキャラクタが送信されるわけではなく、
実際は送信データの最後の1バイトを送ると同時に、
バス管理線の
EOIを
1(Low)にします。デリミタコード
設定したら「OK」ボタンをクリックしてください。リストとして、設定した情報が表示されます。
以上で、プロパティページの設定は完了しました。プログラムを実行し、「START」ボタンをク
リックしてください。スクリプトが順番に実行され、
Excelファイルに測定したデータが貼り付けられていきます。
TUT-0027
また、スクリプトファイルの実行ログが、以下のように、Script.Logファイルに保存されます。
Step4.SRQ 割り込みとポーリング処理
GP-IBバス上に接続されたトーカやリスナは機器がSR(Service Request)機能をもつ場合、機器に異
常やデータ送信準備が完了した等の特定の状態に達すると、SRQ信号を発信しコントローラに知 らせます。
コントローラはこのSRQ信号を受け取り、SRQ信号の発信元を特定することで、機器の異常や特 定の状態に対する処置を行うことが可能となります。
このSRQ信号の発信元を探し出す処理をポーリングと言います。ポーリングにはシリアル・ポー リングとパラレル・ポーリングとがあります。
ポーリングを実行するとSRQ信号を発信している機器の状態を示す値を取得することができます。
この値のことをステータス・バイトと言います。
Excel対応版ActiveXコントロールでは、SRQ割り込みを有効にしていると、SRQ割り込み発生時に
自動的にシリアルポーリングを行い、ステータスバイトを取得します。
以下に、Excel対応版ActiveXコントロールのSRQ割り込みの処理の流れを示します。
1. SRQ割り込みをクリア
↓
2. SRQ割り込みを有効に設定
↓
3. GP-IB機器のSRQ割り込みを有効に設定(※
機器により異なります。)
↓
4. SRQ割り込みを待ち状態にする