Download Windows による 1/0 制御技術修得
Transcript
Windows による 1/0 制御技術修得 松山幸雄 第 3 技術室システム設計技術班 1.はじめに 以前パソコンに使用されていた OS は MS-DOS でシング、ルジョブ, Interface) での文字ベースによる操作であった。近年, り, OS はマルチジョブ対応の Windows が出現し, CU 1 (CharacterUser CPU の高速化,メモリの大容量化によ GU 1(Graphical User Interface) での グラフイックよる簡単な操作でパソコンを扱えるようになった。 Windows 環境でのアプリケーションプログラム開発言語として, V isual Basic (VB) , Visual C++ (VC 十+)などがあるが,本研修では,比較的容易にプログラムを作成できる VB を 使用して, Windows 上からパソコンに装備されているプリンタポート(パラレルポート)を 利用してパラレル通信で、制御する調光器のインタフェースとプログラム, RS232C ポート(シリアノレ ポート)を利用してシリアル通信で、計測機器制御と波形取得のプログラムを制作したので報告する。 2. プログラム開発環境 図 1 に示すように Windows で 1/0 を制御 する場合,ハードウェアとしてパソコンに標準装 備されているシリアル,パラレノレポートのレガシ イインタフェースや,外部汎用パラレノレインター フェースを介して行い,開発言語は主に VB , VC++ を使用するが, マンドや関数が無く, VB には 1/0 制御するコ ActiveX コントロール, A P 1(ApplicationProgram Interface) , D LL ハードウェア 図 1 Windows での 1/0 制御概念 (Dynamic Link Library) を使用して行う。 API は Windows 上で実行するアプリケーションで使う関数やメッセージで構成され,システムに最初か ら組み込まれている関数ライブラリである。 DLL は C , C++ で開発され VB の関数や API に ない機能やアプリケーションの実行速度を速めたりするのに有効で,複数のアプリケーションがか ら共有できる共有ファイルとなっている。 ActiveX コントロールは既に作成したフォームなどを再 利用する GUI 部品の総称で, VB のランタイムライブラリに含まれ起動時にツーノレボックスに表 示される「標準コントロール j と,独立したファイル (ocx ファイル)で必要に応じて後からツ}ノレ ボックスに追加する「カスタムコントロール」がある。本研修では,パラレル通信での制御プログ ログラムに文献付録 1 )の D LL( D I 0 3 2 S .DLL) を使用した。シリアル通信での制御プログログラムに -79- は, A P1 や ActiveX コントロールで作成可能で、あるが,プログラム作成が容易な ActiveX コント ロールを用いた。しかし制御速度が低速になる短所がある。 3. パラレル通信での調光器制御 調光器は,平成 1 3 年度東海北陸地区国立大学等教室系技術職員合同研修「電気電子コース J の 実習「赤外線リモコン送受信回路の製作とその ピン 番号 応用回路 J での応用回路として製作したものを, パソコンのプリンタポートから制御できるよう 方向 [/0 ST百OBE [/0 D a t aB i t0 [/0 D a t aB i t1 [/0 D a t aB i t2 /。 D a t aB i t3 [ /0 D a t aB i t4 [/0 D a t aB i t5 [/0 D a t aB i t6 /。 D a t aB i t7 A C K B U S Y P E S L C T A U T OF DX T 1 2 に改造した。 3 . 4 5 6 7 調光器の仕様は以下のとおりとした。 ①パソコンからパラレノレ制御する。 [ [ 8 9 ②調光は 1 6 段階とする。 10 11 12 13 14 15 16 17 ③制御データは下位 4 ピットを使用し,調光す る度にパソコンよりデータを送る。 ④調光器パネノレの調光表示は,調光器からの調 光データを表示する。 パソコンのプリンタポートを汎用パラレルポ 。 盟ROR 。 表 1 と AUTO FD XT信号が発生するので,モニタ を停止しておかなければならない。 P o r t + パソ 1 コンのプリンタポートは,データ線の入出力 信号名 2 3 P o r t + ドに BIOS で設定し,そのアドレスマップを z 表 2 に示す。 Port はポートアドレスで LPTl データの入出力 劉込みステータス 5 E R R O R S L C T P E 6 却特ー 4 7 ら送出するステータスポートとして, R 。 出盟印 XT 。 2 3 l t i l l _ _ _ 。 4 割込み許可 w 5 ポート方向 w *方向> Port+1 はプリンタか S C L TI N 1 ・入力, 表2 信号レベルの対応 [/0 0: S T R O B E 1 自歯理償号と 方向 I I の場合 378h (プリンタポートのプロパティ)で データポートとして, O 1 2 3 4 5 6 7 ペーパ・エンド プリンタ選択状態 印刷後自動改項 プリンタ・エラー プリンタ・初期化 プリンタ・選択 。 “ L" 0: 保留中の割込有 0: B U S Y 。 を可能とする双方向フルセントロニクスモー データ取り込み同期信号 送受信データ・ピット 送受信データ・ピット 送受信データ・ピット 送受信データ・ピット 送受信データ・ピット 送受信データ・ピット 送受信データ・ピット 送受信データ・ピット データ取り込み完了 プリンタ受信不能 プリンタポートの端子名 ピット P o r t 0-7 ンタモニタが動作していると定期的に SLCT-IN 考 備 G r o u n d 1 8 2 5 アド レス てた。ただ,この信号を使用する時は,プリ I N I T S L C TI N 。 ートとして使用しているため,制御信号は適当 に割り当てれば良いが,表 1 を参考に割り当 記号名 “ L" 0: “し" 0: 0: 1 “ L" “ L" “ L" 0: 0: 0: 0: “ H" “ H" “ L" “ H" 0: 不許可 1 許可 0: 出力 1 入力 0: 出力, W: 書込み, R: 脱出し プリンタポートのアドレスマップ Port+ 2 はパソコンより送出する信号でコントロールポートとしてマップしている。プログラムでその信 号に対応するピットに" 0" を書き込むと,出力信号は" H" になるが, INIT のみは" L" を出‘ 力する。 回路図を図 2 に,調光器パネルを図 3 に示す。操作はいたって簡単で, プが点灯可能になり, 明るくなり, r 点灯」クリックでラン r 消灯」クリックでランプが消灯する。「明」をクリックする毎に連続して r 暗 J .で連続に暗くなり棒グラフと数値で明るさをモニタする。 STB はパソコンから の調光データ下位 4 ピットを調光レジスタにセットする信号で,パネノレの f 明 J をクリックするた びに調光データとともに送られる。調光レジスタのデータは,調光部で DA 変換されトライアック でランプを調光する。 AUTO FD XT信号は調光パネルの「点灯 J -80 ー r 消灯」でデータを調光部に開閉す c c V 電源部 1 V 0 0 1 C A A 5 __.a_.. ーー・・ーー・._ ..ー_.._ .. _. . ーー・ ・ ー『ーーーー・'-"-"-", +Vcc i 而行 1 0 0 1 P M A L J~ 7 A5d lトよ十1寸tー1十I竺ーJ寸1 Gl U(45d一一ヘA〈A15〈00ur4I バ レ ル ブ り ン 3 D 2 0 9 - 。 1 0--^1vへ 縫 子 0 0 z 0 5 1 5 1 11 7 1 1 古rr L 110μH T X O OF T U A 調光都 制御部 図 2 パラレル制御調光器回路図| DimPort札 Light札 Temp対 t ・・・・① h g i OutBPort , L t +2) ・・・② r o P ( B p n Temp=I Temp=TempAnd&HDF ・・・③ Temp = TempOr&HOl ...④ t +2, Temp .・・⑤ r o OutB P Temp=TempAnd &HFE ・・・⑥ Temp=TempOr刷20 ・・・⑦ OutBPort +2, Temp ・・・③ リスト 1 る信号である。 調光データ出力 INIT は調光レジスタのデータを 乗せるゲート信号で,調光データのモニタに使 用している。 図 3 調光器パネル DLL*(ByVal Port孤) Declare Function InpB免 Lib *Dio32S. b OutB Lib *Dio32S.DLL*(ByVal Port札 ByVal DAT対) u Declare S リスト 2 宣言文 リスト 1 は,ライブラリ DI032S.DLL を使用して調光データを出力するプログラムで,最初リスト 2 のように入出力命令がライブラリ Dio32S.DLL にあることを宣言しておく。 -81'- ①で調光データを設定し,③でポート方向を" 出力"に,④で STROBE を" 光データ, L" に設定し⑤で調 STROBE信号を出力しデータをレジス タにセットする。⑥⑦③はポート方向を"入力 ,に, STROBE を" H" に戻す。 製作したインタフェースと流用した調光器を 右の図 4 に示す。 図 4 4. インタフェースと調光器 シリアル通信での計測器制御とデ}タ取得 計測器として岩崎通信機製ロジックアナライザ SL4122 を使用した。アナライザは,サ ンプリングクロックでサンプルした 1 6 チャンネノレのデータをメモリ (4 0 9 6 ワード)に格納し, タイミング表示やステート表示をする。本研修では,シリアル通信によりアナライザを制御し,メ モリデータを取得し,そしてタイミング表示する。 4-1.計測器制御 RS-232C でのアナライザ制御の主な仕様を示す。 ①通信条件: 9600 ボー, 8 ピット長,ノンパリティ, 1 ストップピット ②転送コード: 1 6 進コード ③デリミタ: LF ④取得波形チャンネノレ :chO""'ch3 ⑤転送データ数: 4 0 96 [使用した制御コマンド] 使用したリモート制御コマンドとその意味を示す。 • K Y ..・ キーコマンドでアナライザのパネルのキースイッチを押した時と同じ動作 K Y Pl Pl: パネルキースイッチ 4 3 個に割り振られた数字のキー .JX ・・・ メモリからデータを読み出す J X Pl , P2 , P3 , P4 , P 5 Pl: 転送コード指定 o= H ex 1= Bin (Hex コード使用) P2: メモリ指定 o= A cq(取得)メモリ 1= Ref(参照)メ時 (Acq メモリ読取り) P3: チャンネノレ指定 P3=7 とすると Hex転送の場合 bit3(MSB) =ch3 , bit2 =ch2 , bitl =chl , bitO =chO(LSB) は に対応し, D (Hex データ)は, c h 3=1, c h 2=1, c h 1=0 , c h O=1 になる。 P4: 転送開始番地 P5: 転送データ数(最大 256 ワード) .CG ・・・ Go t o local リモートからローカノレ状態に戻す 取得チャンネノレが 4 チャンネノレで JX コマンド 1 回の最大データ転送数が 256 ワードのため,メ モリデータ 4096 ワードの読出しは, JX コマンドを 1 6 回発行する。 4- 2. MSComm コントロール VB で RS232C を利用するプログラムは, ActiveX コントローノレとして付属している MSComm コントロール (MSCO剛 32.0CX ファイノレ)を使用して作成する。 MSComm コントロ ~Jレの初期化には, 通信ポートの設定,通信条件の設定,ハンドシェイクの設定,送信時・受信時スレッショノレドなど の設定などがあり,受信時スレッシヨノレド以上のデータ量受信などにより割込みが生じると MSComm コントローノレの OnComm イベントが生じる。 -82- 4-3. グラフ描画用 ActiveX コントロ}ル アナライザから読み出されたメモリデータをタイミング表示するためにインターフェース社の 「グラフ描商用 ActiveX コントロール (VSA-0601) J を使用した。これはファイノレIfxGraph2.ocx で 提供されるカスタムコントロールである。本来はアナログ波形表示用であるが,デジタノレ波形表示 として使用し,その他グリッド表示,ノレーラ表示やマウスのイベントにも対応している。 4-4. ロジックアナライザ操作と波形表示 図 5 は VB で作成したロジックアナライザ SL4122 の操作実行画面で,ボタン配置など実 物器どおりとした。実物器に存在する任意のコマンドボタンをマウスでクリックすれば実物器の対 応のキースイッチ押下と同じ動作をする。 図 5 ロジックアナライザ SL4122 の操作実行画面 "取込"ボタンはアナライザか ら 4 0 9 6 ワードのデータを 1 6 回の転送により取得する(図 5 ①)。 図 5 ②により読出した 1 ワードの デ}タを chO ~ ch3 に振り分けてい る。なお,①②は動作を確認する ために便宜的に表示させている。 , D r aw" ボタンは読出した データをタイミング表示する。波 形表示は 1 0 0 ワードであるが, 他のワードの波形はマウスのホイ ーノレを回転して連続的に表示でき る。波形表示は 4 0 9 6 ワードまで 図 6 -83- ファイルからの読出し 表示可能で,オプションボタン STEP でホイールの 1 ステップ当たりワード数を変えることにより 表示させたいところを設定することができる。 データ保存は,ファイノレメニューの"保存"で任意のファイル名に保存する。 ファイノレからのデータ読出しは,ファイルメニューの"開く"で行う。図 6 ①で 4096 ワード 読込まれたことを表し,②は読み出すファイノレのディレクトリを表す。 5. まとめ 今回の研修において, Windows98 の OS のみではあるが, Windows 上からプリン タポートより調光器制御を, RS-232C ポートよりロジックアナライザを制御し,データ取得, 波形表示を行うインタフェースやプログラムを作成した。調光器制御ではインタフェースとプログ ラム作成することによりハードとソフトの関係が確認され,制御を行う醍醐味を若干味わえられた が,幾分お遊び的になってしまった。ロジックアナライザ制御ではタイミング表示のグラフ描画に は自作の方法もあるが,安価で機能性のある既製のソフトを見つけ出し,使いこなすのも一つの技 術であると思われる。 Windows での 1/0 制御プログラム作成に VB を使用したが, 1/0 制御用 DLL や ActiveX コントロールは C 言語で作られており細部な制御や OS との関わり合いなど不透明な部分 があることや, AP1 Wi ndows 使用での技術修得には至らなかったが, からの制御について の技術は大部分修得できた。 [参考文献] 1)渡辺明禎 :VB と製作で学ぶ初めてのパソコン応用工作 2) 横山直隆: V i s u a lBasic による計測・制御実験 CQ 出版社 KK シータスク 3) 金藤仁:自動計測システムのための VB6 入門 技術評論社 4) )11 口輝久他:かんたんプログラミング Visual B a s i c6 基礎編 技術評論社 5) )11 口輝久他:かんたんプログラミング Visual B a s i c 6 応用編 技術評論社 SL4122 6) ロジックアナライザ 取扱説明書 7) シリアノレデータアナライザインタフェース 岩崎通信機 KK 取扱説明書岩崎通信機 KK 8) 平成 1 3 年度東海北陸地区国立学校等教室系技術合同研修電気電子コース 「赤外線リモコン送受信回路の製作とその応用回路」実習資料 -84-