指導案
Visual Basicによる計測制御技術 指導案
[使用教材、資材一覧表]
1.テキスト
市販テキスト:林晴比古:“新Visual Basic入門(ビギナー編)、ソフトバンク(1998)。
自作テキスト、フロッピーディスク
2.コンピュータ等
FMVシリーズ等
プリンタケーブル(Dsub25p-AMP36p)
3.ソフトウエア
OS:Windows(3.1、95、98)
Visual Basic:Ver.5.0以降
Visual C++:Ver.5.0以降
4.計測器等
デジタルマルチメータ
シリアルケーブル(クロス)(Dsub9p-Dsub9p)
5.製作課題用パーツ(×人数分)
基板 ICB96 サンハヤト 1枚
アンフェノール36pコネクタ DDK 57-40360 1個
LED TLR123A 8個
抵抗 3.3k 8本
抵抗 150 1本
トグルスイッチ 3p、基板取付用 1個
コネクタ取付け金具、ねじ 1式
コネクタについては、L型の57LE 36pを使用すると取付金具等が不要にできることも考えられる。しかし、このコネクタのピッチが2.16mmで基板の2.54mmピッチと異なるため注意が必要である。
[訓練事前準備項目]
1.テキスト
(a)市販テキスト 1冊
(b)自作テキスト
(c)フロッピーディスク
作成プログラム保存用ディスク
(サンプルディスクを作成し、配布することも考えられる)
(d)ケーブル、計測器、マニュアル等
2.製作課題用基板
すみやかに製作を行なえるように、基板にコネクタを取り付けておく
3.工具類
半田ごて、こて台、ドライバー、ニッパ、ラジオペンチ、ワイヤーストリッパー、糸はんだ、ラッピング線、すずめっき線、はんだ吸い取り線等
4.受講生名簿
[訓練項目と訓練経過時間]
3時間を一つの区切りとしてセミナーを展開する。これにより、日中のみのコースでは6時間を、夜間のみのコースでは3時間を、また、両者の組み合わせのコースも可能とする。休憩時間は60分に10分もしくは90分に20分としている。
[1]0-3時間
準備:パソコン、Visual Basic、市販テキスト、フロッピーディスク
Visual Basicがインストールされているかチェックしておく。特にヘルプ、言語部分のヘルプがver.6.0では別プログラム(Visual Studio)となるためインストール作業が必要となる。
0:00 はじめに
・挨拶
・自己紹介
・テキスト等、教材の確認
・コース内容:スケジュール、日程確認
6時間:Visual Basicの基礎(使用経験者のみであれば省略)
3時間:Visual Basicと計測制御、DLLの作成
3時間:LED表示器の作成
6時間:パラレルポートの利用
6時間:シリアルポートの利用
・受講者レベル確認とともに実習内容の希望を調査
プログラミング言語、Visual Basic使用経験の有無
計測器の使用経験の有無
実習内容:希望する計測、制御があれば、実施できるか検討。後日の実習に組み込む
資料1のようなアンケートを行っても良い
00:15 簡単なプログラム
・コンピュータの電源の入れ方、終了の仕方
・必要に応じてWindowsの操作法を指導
マウス操作、ウインドウ操作(資料2)
・Visual Basicの起動、終了の仕方
・市販テキスト第2章より演習
- これから作るプログラム
・プログラム(フォーム)の説明(図2-1)
・ボタンをクリックすると挨拶文字が表示される
2-2節 Visual Basicを起動する
・再度Visual Basicを起動、標準EXEを作成
・起動画面を実際の画面で説明:市販テキスト図2-4
- フォーム、コントロールおよびコントロールパネル、プロパティおよびプロパティウインドウ等を説明
2-3節 フォームに名前を付ける
・プロパティの設定を演習:オブジェクトの選択、プロパティの説明
- コントロールを配置する
・コマンドボタン、テキストボックスを配置
2-5節 イベントプロシージャを作る
・コードの記述を演習:イベントプロシージャ、コードウインドウ
- プログラムを実行する
エラーがある場合は、修正する
プログラムの実行を終了しないとコードを変更できないことに注意
- ファイルを保存する
・Visual Basicのプログラムは複数のファイルからできていること。基本は、プロジェクトファイル(*.vbp)、フォームモジュール(*.frm)である
- フォームファイルとプロジェクトファイルを保存する。
- プログラムを新規作成する
- 保存ファイルを読み込む
- 実行ファイル(.exe)を作成する(コンパイル)
- Visual Basicを終了する
- 作成した実行ファイルを起動する
- コンパイルしたプログラムの実行にはランタイムライブラリが必要であることに注意
- エクスプローラでコンパイルした実行ファイルを探し、実行してみる。また、保存したプログラムのファイル(*.vbp、*.frm)も確認してみる
01:20 休憩
01:40 Visual Basicの基本操作
・先の復習もかねてプログラム作成を行ってみる。やや詳しい説明も加えながら進める
・市販テキスト第3章の演習
3-1節 Visual Basicのスタート
・Visual Basicを起動、標準EXEを作成
3-2節 Visual Basic の画面構成
・起動画面を実際の画面で復習:市販テキスト図3-3
3-5節 アプリケーションの作成手順
・コントロールの配置を演習:移動、サイズ変更
・プロパティの設定を演習:オブジェクトの選択、プロパティの説明
・コードの記述を演習:イベントプロシジャ、コードウインドウ
- アプリケーションの実行とデバック
- プログラムの実行、終了:開始、終了ボタン
- ブレークポイント、ステップ実行
- コンパイル(実行ファイルの作成)および実行
- プロジェクトの保存、読み込み
- Visual Basicのプログラムは複数のファイルからできていること(図3-37)。
- プロジェクトを保存する。保存されたファイルの確認
- プロジェクトの読み込み
- ヘルプを使う
03:00 終了
[2]3-6時間
準備:パソコン、Visual Basic
03:00 コントロールを使う
・市販テキスト第8章より演習
文法関係については、サンプルのコード説明時に解説する。
各サンプルプログラムを演習しながら、イベントとプロパティの重要なものは補足説明を加えて進める。
訓練生の進展具合をみて一部割愛など考慮する。省略対象節は節タイトル末尾に(*)で示している。
- 基本コントロール一覧
・コントロールパネルで説明
- フォーム(*)
- ポインタ(*)
- コマンドボタン
・終了ボタンを作らせてみる。同時にキーボード操作の補足(&E)等もする
- ラベル
- テキストボックス
・ラベルとテキストボックスの利用法。入力が必要なものはテキストボックス、表示のみならラベルと使い分ける。
- イメージ
- ピックチャーボックス
・イメージとピックチャーボックスの利用法。イメージは画像などを表示するとき使用し、ピックチャーボックスは内部座標が指定可能であったり、グラフィックメソッドで線や図を書いたり出来る。
- フレーム
・チェックボックスやオプションボタンなどのコントロール配列を配置する場合に使用される。ピックチャーボックスでも同様だが、タイトルがあるかどうかが異なる。
- チェックボックス
- オプションボタン
- リストボックス(*)
- コンボボックス(*)
- 水平スクロールバー(*)
- 垂直スクロールバー(*)
- タイマー
・一定の時間間隔でタイマーイベントを発生させる。時間間隔は、Intervalプロパティにms単位で設定する。
- シェイプ
- ライン(*)
04:20 休憩
04:40 第10章 グラフィックスの処理(*)
- 座標系と単位
- Screenオブジェクト
- 色の指定
- グラフィカルコントロール
- グラフィック処理に有用なプロパティ
- コントロールの移動
- ピクチャの切り替え
- グラフィックメソッド
第11章 お楽しみプログラム(*)
第12章 ファイル処理関数(*)
06:00 終了
[3]6-9時間
準備:パソコン、Visual C++、Visual Basic、自作テキスト
06:00 自作テキスト第2、3章
第2章 Visual Basicによる計測制御
2-1節 Windowsとデバイス
- Windowsはシングルユーザー、マルチタスクのOSであること。
- I/Oポート入出力はデバイス制御に必要不可欠であること。
- マルチタスク(Windows)環境では、I/Oポートへの直接入出力は避ける必要があり、デバイスドライバはOSとともにデバイス管理、調停を担うことになる。ハード資源へのアクセスには特権レベルが必要とされる。しかし、Windows3.1、95、98では、直接のI/Oポート入出力ができてしまう。これを利用すれば手軽に自作ハードのアクセスが可能となり、利用しない方はないと考える。
- I/Oポート制御
- Visual BasicにはI/Oポート入出力命令がない。しかし、Visual Basicからポート入出力ができれば多くのメリットがある。
- Visual Basicと計測制御
- コンピュータと外部機器とのインターフェースの種類。
- 計測制御の位置ずけ。
- Visual Basicから簡単かつ用意に自作ハード等にアクセス可能ならば、Visual Basicの活用がさらに広がる。
06:15 第3章 DLLの作成
- DLLの説明。
- Visual BasicからI/Oポート入出力を行うためにVisual C++を用いてDLLを作成する。
- ソースコード
- Visual C++にはポート入出力命令が用意されている。これをVisual Basicから呼び出し利用するためにDLL化する。
- ソースコードは、関数宣言とポート入出力命令のみの数行である。
- Visual C++によるDLLの作成
- 実際にVisual C++を起動し、ソースコードを打ち込みDLLを作成してみる
- ソースコードは、Cのコードであるため、ソースファイルの拡張子を.Cとすることに注意。
- Visual C++を終了し、作成された.DLLファイルをワークディレクトリもしくはフロッピィディスク等にコピーしておく。
07:20 休憩
07:40 第3章 続き
3-3節 Visual BasicからのDLL呼び出し
- Visual BasicからDLL関数を呼び出す方法。
- 宣言文(Declare)の記述はコードモジュールにだけ許されていることに注意。
- この方法は、WindowsのAPIを使用する方法と同様であることに注意。APIもDLLなのです。
- Visual Basicを起動し、実際に標準モジュールをプロジェクトに追加し、定義文を記述する。モジュールは、ひとつの別ファイルとして*.basの拡張子がつき保存されることに注意。
- ポート入出力テストフォームの作成
- 引き続き、テストフォームを作成する。
- Label3,4は、デバッグ用にテキストボックスの右側に貼り付けてある。
09:00 終了
[4]9-12時間
準備:バソコン、Visual Basic、工具等、部品
実験室等で製作を先に行い、その後パソコン教室等に移動する。あるいは、テキスト記載順にパラレル(プリンター)インターフェースの説明、確認を行ってから実験室等に移動し、製作を行ってもよい。
09:00 第4章 パラレルポートの利用
- パラレル(プリンター)インターフェースの説明。
- 最近では、双方向仕様となっている。
- パラレルポートに接続するLED表示器を作成し、Visual Basicから制御する。
- パラレルポートの概要
- 8ビットパラレルのセントロニクス規格準拠の外部インターフェースである。
- I/Oポートアドレスの割り当ては、各社、機種により異なるが、データと制御入力、制御出力の3つのポートを使用している。PC/AT互換機の場合、LPT1~3のいずれかである。
- パラレルインターフェースの信号線は、セントロニクス規格で定められているが、実際に使用しているかどうかは別問題である。
- 信号線の各ビットへの割付は、表4.3のとうりである。
- 使用しているコンピュータのパラレルポートを確認する。I/Oアドレスは、コントロールパネル、システム中のデバイスマネージャよりプリンタポートを選択肢、プロパティを表示し、ドライバリソースから確認する。
- パラレルポートが双方向仕様かどうかは、図4.2のように、先に作成したポートI/Oフォームを用いて、実際にPort+2のアドレスのビット5を書き換えて入出力を行い、調べてみる。
09:50 休憩および実験室へ移動
10:00 第4章 続き
4-2節 LED表示器の作成(製作課題)(資料3も参照のこと)
- 工具類、部品等を実験室に用意しておく。
- 回路図および回路動作の説明。端子部分の数字は、コネクタのピン番号であること。出力用として8ビットのデータ線を抵抗を通してLEDに接続する。入力用に/BUSY信号に保護用の抵抗を通してスイッチを接続する。アースは、19ピンのGNDにすべて接続する。インターフェース線はすべてプルアップされている。データ線が0(電圧では0V)のとき、LEDは消灯、1(+5V)のとき点灯する。SWが開いているとき1(+5V)、閉じているとき0(0V)となる。
- LEDの極性、抵抗のカラーコード、SWの端子等を黒板に板書し、知らせる。
- はんだ付けに不慣れな受講生の場合、部品の取り付け方、はんだ付け法・タイミング、被覆のストリップ、予備はんだ等を指導する。また、コネクタへのリード線のはんだ付け法を指導する。
- 受講生の製作速度に差がある場合、早く終わった受講生は、あとかたずけ後、パソコン室に移動してもらい、Visual Basicの復習、やりのこした課題、あるいは、次の課題等を自学してもらうとよい。
- 簡単な回路なのでここでは、チェック等は目視検査でショートの有無だけを調べてもらう。次の時間で動作チェックを行い、間違いがあれば修正する。
12:00 終了
[5]12-15時間
準備:パソコン、Visual Basic、プリンタケーブル
12:00 自作テキスト第4章3節
・製作したLEDボードの動作チェック
- 製作したLEDボードをプリンタケーブルに接続する。受動素子のみであるため、コンピュータの電源は入れっぱなしでもよい。安全を期すならば電源を落としてから接続する。プリンタドライバー等がプリンタポートを初期化などしているため、この時点でLEDがいくつか点灯するかも知れない。
- Visual Basicを起動し、先に作成したI/Oポート入出力テストフォームを呼び出し、実行する。
- ポートアドレスにパラレルポートのデータのアドレス(378h、3BCh、278hのいずれか)を入力、もしくは、フォームのポートアドレス初期値を変更しておく。データのテキストボックスに出力データとして、00を入力し、出力ボタンをクリックし、ポートにデータを出力する。この時点でLEDがすべて消えるはずである。つぎに、データとしてFFを出力してみると、LEDがすべて点灯するはずである。以下、01h、02h、04h、08h、10h、20h、40h、80hとデータを出力し、LEDが一個ずつ点灯すればLED部は正常に動作していることになる。動作しない場合は、配線、LEDの極性等を調べ、修正する。
- 入力であるSWの部分を調べるため、先と同様に、ポートアドレスに制御入力のアドレス(379h、3BDh、279hのいずれか)を入力し、入力ボタンをクリックしデータを取り込み表示してみる。このとき、/BUSY信号である最上位の8ビット目に着目する。次にSWを切り替えてデータを入力し、表示データの8ビット目が変化すればSW部分が正常に動作していることが確認される。たとえば、データが7Chであれば8ビット目は0、SWを切り替えてデータがFChとなれば1となり、SWの動作が確認される。
- 任意のLEDを点灯させるためには、8ビットデータの点灯させる部分を1にして、16進データに変換し、データ出力すればよいことを理解させる。
13:20 休憩
13:40 第4章 続き
4-3節 サンプルソフトウエアの作成
- 製作したLEDボードのコントロールとLEDボードのシュミレート(モニタリング)するプログラムを作成する。
- LED部はラベルとシェイプ、コマンドボタンをコントロール配列として配置する。
- ソースコードの補足説明。変数のスコープルールの説明を加える。変数LED_datは、現在のLEDの状態(データ)を保持するためのものである。すべてのプロシジャーから参照される。特定ビットの状態を調べるために、2^IndexとのANDを用いている。
- サブプロシジャー(ルーチン)を作成するには、Private Subからそのままコードをキー入力すればよいこと。
- LED点滅のデモボタン、Command1~4は、単に点灯したい表示パターンのデータをwaitしながら出力しているだけであること。
- LED_dispサブプロシジャーは、LED_dat変数のデータを1ビットずつ判断し、LEDシェープの色を変更するサブルーチンであること。
- DoEvents命令の説明。Visual Basicのプログラム動作中はWindowの実行が停止している。よって長時間のループ処理やグラフィック処理を行った後などDoEvents命令をプログラム中に記述し、強制的に制御をWindowsに渡してやる必要があること。これにより、ウインドウ操作やマウス操作、グラフィックの表示処理が行われること。一種のタスク切り替えと考えてもよい。
15:00 終了
[6]15-18時間
準備:パソコン、Visual Basic
15:00 自作テキスト第4章続き
(1)サンプルフォームの改良
- サンプルのフォームを好みに改良させる演習。
- 好みの点滅パターンを作成する。
- 点滅パターンのデータを二次元配列に保存して、プログラムを改良する。
- デモボタンによりLEDだけでなくフォーム上のシェープも同時に点滅させるモニタリングへの改良。
- LEDボード上のSWを読み込み、SWの位置により点滅パターンを変化させるプログラムの作成。
- (サウンドファイルをオープンし、LEDをレベルインジケータとして表示させるプログラムの作成)
16:20 休憩
16:40 引き続き演習
18:00 終了
[7]18-21時間
準備:パソコン、Visual Basic、DMM、シリアルケーブル(クロス)
18:00 自作テキスト 第5章 シリアルポートの利用
- 最近の計測器には、種々のインターフェースが付けられており、シリアルインターフェースも見受けられる。Visual Basicでシリアルインターフェースを制御し、計測器の制御、種々の計測を行うプログラムを開発する。また、計測データのグラフ表示を行う方法にもふれる。
- SCPI言語
- 計測器を制御するために主要な計測機器メーカが採用しているSCPI(スコピー)言語がある。GP-IBの規格であるIEEE-488.2で標準化されたものである。共通の*から始まる共通コマンドと各機器特有のサブシステムコマンドからなる。ファイルシステムのように階層化されており、サブグループとの区切りには:が用いられる。また、計測器からデータ等の応答を必要とするクエリーコマンドは、最後に?がついている。
- 計測器へのコマンド文字列の最後、あるいは、計測器からの応答の最後には、ターミネータを付加し、コマンド、データの終わりを識別する。通常、LF文字(&HF)もしくはCR+LF文字(&hD+&hF)が使われる。ターミネータを付け忘れたり、計測器の設定と異なるターミネータはいろいろなトラブルの元である。
- Visual Basicからシリアルポートをアクセスするために、Ver.5以降ではMSComm ActiveXコントロールが標準で用意されており、これを使用すると簡単である。それ以前のバージョンでは、API関数を用いることになる。
- 通信テストのフォーム
- MSCommコントロールのツールパネルへの呼び出し。その他のオプションコントロールも同様の方法で呼び出せる。
- シリアルポートのデータ入出力方法。CommPort、Settings、PortOpen、Output、Inputプロパティの説明。ターミネータの設定は使用機器で異なる。また、設定可能である場合が多い。通常、ターミネータは、VbCrLf(&hD+&hF)にしておくとよい。データの入力は、このターミネータを検出して行うようにプログラミングする。
- 通信テストのフォームを作成し、実行する。HPのDMM(34401A)では、シリアルインターフェースからのリモートモードにするために“SYSTEM:REMOTE”というコマンドの実行が必要である。また、直流電圧測定には、”MEAS:VOLT:DC?”というクエリーコマンドを実行すると、測定データを返答してくる。
19:20 休憩
19:40 第5章続き
- DVMフォームの作成
- タイマーコントロールの説明。Timerイベントの時間間隔は、Intervalプロパティで設定する。
- プログラムソースの説明。変数mes_fは、測定中かどうかを設定するフラグである。フォームを実行すると、タイマー動作を停止し、mes_fフラグをクリアする。Startボタンをクリックすると、mes_fフラグの状態により、測定中でないなら、mes_fフラグをセットしシリアルポート、計測器の初期化を行い、タイマーを動作させる。測定中なら、mes_fフラグをクリアし、シリアルポートを閉じ、タイマーを停止する。
- タイマーイベントが生ずると、測定コマンドをDMMにおくり、測定電圧を読み込み、単位を定めて表示する。
21:00 終了
[8]21-24時間
準備:パソコン、Visual Basic、DMM、シリアルケーブル(クロス)
21:00 第5章 シリアルポートの利用
- 応用プログラム(過渡現象測定)
- 電圧の時間変化を計測する一例として、CRの過渡現象測定を取り上げる。資料4は、回路図および部品配置、製作の例である。素子の値は、R=10kΩ、C=10000μFとすると時定数は100sとなり、計測しやすい過渡現象となる。電源には、直流電源装置もしくは乾電池を利用する。
- Visual Basicのグラフィック画面に関する説明を加える。基準点、単位系、Top、Left、Width、Heightプロパティの説明。
- グラフ表示を行う場合には、ピクチャーボックスを使用すると、内部のスケールを任意に設定できるため便利である。Heightプロパティに負の値を設定できるため、通常のグラフ用紙の座標系(y軸の正方向が上)を実現できる。
22:20 休憩
22:40 第5章 続き
- 課題演習:自分の好みにフォーム、コード等を変更させる。たとえば、配置、大きさ、フォントなど、xy軸のスケール変更、y軸を上が正方向に変える、測定の開始を電圧が増加し始めたら自動的にスタートするようにする、フォームをリサイズするとそれとともにグラフも自動的に大きさが変わる、など。
23:45 第6章 おわりに
- まとめる
- Visual Baiscのプログラミング技術について
- 計測制御について、インターフェースについて
- Visual Basicを用いた計測制御について
23:50 修了書授与
・必要であれば、セミナー内容に関するアンケートを記入してもらう。
24:00 セミナー終了
資料1
Visual Basicによる計測制御技術 アンケート
セミナー進行の参考にさせていただきますので、以下の項目にお答えいただければ幸いです。
1.コンピュータをお使いになっていますか。
いる いない
(機種名等: )
2.MS-Windows3.1、95、98、NTをお使いになったことはありますか。
ある ない
3.Basic言語をお使いになったことはありますか。
ある ない
4.Visual Basicをお使いになったことはありますか。
ある ない
5.C言語をお使いになったことはありますか。
ある ない
6.Visual Cをお使いになったことはありますか。
ある ない
7.ハンダ付けをしたことがありますか。
ある ない
8.計測器をお使いになっていますか。
いる いない
(種別: )
9.GP-IBインターフェースをお使いになったことはありますか。
ある ない
10.行ってみたい計測、制御等があれば御記入下さい。
以上、どうもありがとうございました。
資料2
- マウス操作はよろしいですか
- クリック ? メニュー等にマウスの矢印を合わせて左ボタンを一度押して離す(カチン)。
- ダブルクリック ? マウスの左ボタンを素早く2度クリックする(カチン・カチン)。
- ドラッグ ? マウスの左ボタンを押しながらマウスを動かす(カチ・ズー)。
- 右クリック ? マウスの右ボタンをクリックする(サブメニュー等の表示)。
0.2 ウインドウ操作はよろしいですか
- 移動 ? タイトルバーをドラックする。
- リサイズ ? ウインドウの端(マウスポインターの形が変わる)でドラッグする。
- アクティブ化 ? アクティブにしたいウインドウ内をクリックする。
- 最大化・最小化 ? タイトルバーの右側まん中のボタンをクリックする。
- 閉じる ? タイトルバーの右側右のxボタンをクリックする。または、ファイルメニューから終了を選択する。
- メニューバー化 ? タイトルバーの右側左の_ボタンをクリックする。復元はバーをクリックする。
資料3
- 製作課題用基板、パーツ一式


例作例
資料4
- CR過渡現象測定 参考回路図

- 過渡現象測定 実験セット
