WindowsによるI/O制御技術修得II
著者
松山 幸雄
雑誌名
技術報告集
巻
9 (2003年度)
ページ
45-48
発行年
2004-04
URL
http://hdl.handle.net/10098/7468
Windows による 1/0 制御技術修得 E
第 3 技術室システム設計技術班
松山幸雄
1
.はじめに近年,パソコンの性能は飛躍的に向上し,基本ソフトの 08
(
O
p
e
r
a
t
i
n
g
8ystem) はマルチジョブ 対応の Windows 環境になりパソコン使用者とは GU 1 (
G
r
a
p
h
i
c
a
l
User
Interface) でのマウスな どにより簡単な操作で扱うことができるようになった. Windows 環境でのパソコンでのアプリケ ーション開発言語には,代表的なものに VB(
V
i
s
u
a
l
ßasic) や VC++(
V
i
s
u
a
l
C
++)がある.昨年度 はアプリケ}ション開発言語として VB を使用して 1/0 を制御する技術修得をしたので,今年度は VC++ の ActiveX を使用してパソコンに装備されているレガシィポートであるシリアルポートから 計測器であるデジタルストレージスコープを制御し,波形データの取得,保存,波形出力するプ 1 ログラムを作成したので報告する.2. V
i
s
u
a
l
C
++
V
i
s
u
a
l
C
++は,マイクロソフト Windows 上での GUI アプリケーション開発言語であり,高度 できめ細かな処理のアプリケーション開発に適しており, r プログラミング言語 C++J
+
rWindows
流ユーザインタフェース開発ツール」の形式をとり, r メッセージ J+
r メッセージ関数(ハンド ラ )J で構成される.つまり,一般の手続き型プログラムではなく,例えばマウスボタンのクリッ クイベントがあればそれに対応したメッセージを発行し,それに対応するメッセージ関数があれば それを起動する.つまり,、 vc++ プログラミングは, r メッセージとメッセージ関数の対応を指 定する J r メッセージ関数を記述する」ことの繰り返しを行い, C++言語の文法により C++言語特 有の機能であるクラスを使用して Visual C++ のさまざまな便利な機能を実現できる. Windows 上 で動作するプログラムを開発するには,1)
Windows 上にアイコン等を表示し,マウス操作を可能にするための記述 2) 本来の「やりたい仕事j を参照するための記述 を行う必要があるが, 1) は自動的にその機能が用 意されており,プログラマは 2) に専念すればよい. vc 十+プログラミングの機能は大まかに (a)Windows 上で動作させる為の基本インターフェ ス機能 (b) 利用目的ごとに用意されたコントロール (クラス) (c) ユーザが記述したコード ユーザコードー一!三 :/j_EニJヒi乙Z主 L
Windows インタフェース [図 1]V
i
s
u
a
l
C++ の機能構成 の 3 つ機能があり,図 2 のような構成になっている. また, a) は AppWizard によりプログラムの骨格(スケルトン)が作成され, b) は ClassWizard に よりクラスの追加や管理がされ, c) のユーザコ}ドは Wizard によりコードを記述するところ(todo) が指定される.
3. デジタル・ストレ}ジスコ}プ
制御の対象とする外部装置は岩崎通信 KK のデジタル・ストレージスコープ DS-6121A を使用 した.これは 40MHz 高速ディジタノレストレージと 100MHz 広帯域オシロスコープを組み合わせた 2 現象 4 トレースの波形観測装置で,主な仕様は,
キャプチャメモリ:
2048word
x
2channel,ディスプレイメモリ:512word
x
4trace,
周波数帯 域幅:DC
,...,__100MHz
分解能: 8 ピット Id.iv サンプノレレート:40MHz (
1
CH)
,
20MHz (2CH)
ストレージスコープのパネルキーは, RS-232C による制御コマンドをとおして操作するこ とができ, 1 個のパネノレキーにほぼ 1 つの制御コマンドが用意されている.本研修ではすべてのパ ネルキーは用いず,ストレージスコープ操作に必要最小限のパネルキーとその制御コマンドを用い た.コマンド形式は例えば Vertical Mode でAlternate 表示する場合,
MOD 3
と表現され,3
はAltemate mode を表し,1: CH1
,
2: CH2
,
4: CHOP
,
.
5:
ADD である.また,ストレージスコープには一部のパネル設定情報や波形データのデータ転送の入出力が可能で あり,デ}タ転送出力により波形データをパソコンに取り込んだ.入力バッファメモリファイルは,
M10
(CH1)
,Mll
(CH2) それぞれ 2048 個の波形データ(フォーマット 1 , 3) と,1
2 個の波形補 助情報(フォーマット 7) があり,本研修ではフォーマット 1 , 7 ,デリミタは LF を使用した. 各フォーマットの詳細は表 1 に示す. 波形補助情報の詳細は表 2 で.デー タは識別コード,そのデータが順序 の順に出力される.波形データ形式 ブオ}マット 0 は ASCII データ,デ ータ長フオ}マット 2 はデータ長 2048 個, x はサ ンプリング周期(秒)で,Y-FULL
SCALE は縦軸のフ ルスケーノレ値 (v) を表す.データ取得コマンド形式はJ
X
F
i
l
e
[,Format
[,Size,
B
l
o
c
k
J
で表さ れ, File : 入力パッファメモリファイル, Format は表 1 , 順序 1 2 3 4 5 B ストリング区切り 可変 B パイト MAX I CR, LF, CRLF 2 バイト CR, LF, CRLF [表 1] 内 容 フォーマット 波形補助情線歎 AA1 61 量産形デ一事形式 AB1 01 データ長 AC 1 21 Ax AD1 0.500E-051 Y-R札LSCAL.E AEl 0.102E+021 阻.AY・ AF 1 0 1 Size は 1: 1
024 で Block は1:
0・ 1023,2:
アルフ 7 ペット 2 文字:際別コード 1 :デリミタ [.2] 1024・2047 , S包e が 2:2048 で Block は 1:0・2047 である. 4. 通信メンバ関数 開発言語は,Mi
c
r
o
s
o
f
t
V
i
s
u
a
l
C++ 6.0
,
S
P
5 でシリアル通信用ソフトとしては ActiveX コン トロールとして付属している MSComm コントロールを使用した.シリアルポートの制御はストレ }ジスコープダイアログより行うため MSComm をダイアログにはり付けた.本研修でのデジタ ノレ・ストレージスコ}プとの通信条件は,通信速度: 9600bps,データ長: 8 ピット,パリティピ ット:無,ストップピット長: 1 ピット, デリミタ :LF でストレージスコープにデータ(コ マンド)を送った場合,ストレージスコープは受信したデータと同じデータを送り返す(エコーパ ック)ため,パソコン側では送信データとエコーパックデータを比較し,異なっていればデータを 再送信する.通信のために作成したクラスでの主な通信メンパ関数は MSComm コントロールのメ ンバ関数より作成した.• PortOpen 関数:通信条件や通信ポートの状態を設定または取得,通信ポートを開く.
•
PortClose 関数:通信ポートを閉じる.-4
6
-.
SendData 関数:データを送信する.•
ReciveData 関数:デリミタまでのデータを受信する. 5. グラフ描画用ActiveX コントロール 取得したデータから波形表示するのに,グラフ描画用 ActiveX コントロール (VSA0601:
Interface 製)を使用した.これは一つのビューに複数のグラフを同時に表示位置を変えて描画や
キャプション,ルーラ,グリッドの同時表示やマウスイベントにも対応しており,VB
,
VC++
,
C++
Builder
,
Dlphi の各言語で使用できるもので,以下の 6 個のオブジェクトより管理されている.1
)ビューオブジェクト:デ}タをグラフ化して描画する領域を表す 2) キャプションオブジェクト:グラフ名などの文字列を描画する領域を表す 3) データオブジェクト:グラフ描画する為のデータを数値配列で保持する 4) ラインオブジェクト:描画するグラフの線種,色,大きさなどの情報を保持する 5) グリッドオブ、ジェクト:グラフビューに描画するグリッドの情報を保持する 6) ルーラオブ、ジェクト:グラフビューに描画するノレーラの情報を保持する 6. ストレージスコ}プダイアログ 図 2 はストレ}ジスコープダイアログでデジタル・ストレージスコープの操作パネルに似せて作成し, 3 節でも記述したようにストレージスコープ操作の必要最小限のボタンを配置した.ダイア
ログは AppWizard で 1 つのウインドでメニュー項目が自動的に作成される SDI 形式とし, Windows 処理するクラスライブラリである MFC(阻crosoftF
o
u
n
d
a
t
i
o
n
Class) を使用した.ストレージスコ}プの A Triger の Source,Coupling や SweepMode など多項目から 1 つを選択するもの [図 2] ストレージスコープダイアログ
はラジオボタンコントローノレを使用し, 1 目盛あたりの電圧,時間選択はリストボックスで電圧 値,時間値のリストを表示し,その選択値をテキストボックスで表示している.測定器からの波形 データは『取込ボタン」により, CH1 ,2 波形データ,波形補助情報 5