このページの本文へ

驚愕の結果! アルカリ乾電池性能比較実験! 第9回

電池実験装置の全貌公開! リレーユニットの製作【ソフト編】

2009年09月29日 20時00分更新

文● 藤山哲人

  • この記事をはてなブックマークに追加
  • 本文印刷

もうちょっとで完成

 プログラム全体としては、次のようなものになる。

Option Explicit


'VB6用直接I/O制御関数群
Public Declare Function InpB Lib "VBIOSCM_DLL.DLL" Alias "_InpB@4" (ByVal Port As Integer) As Integer
Public Declare Function InpW Lib "VBIOSCM_DLL.DLL" Alias "_InpW@4" (ByVal Port As Integer) As Integer
Public Declare Function InpD Lib "VBIOSCM_DLL.DLL" Alias "_InpD@4" (ByVal Port As Integer) As Long
Public Declare Sub OutB Lib "VBIOSCM_DLL.DLL" Alias "_OutB@8" (ByVal Port As Integer, ByVal dat As Integer)
Public Declare Sub OutW Lib "VBIOSCM_DLL.DLL" Alias "_OutW@8" (ByVal Port As Integer, ByVal dat As Integer)
Public Declare Sub OutD Lib "VBIOSCM_DLL.DLL" Alias "_OutD@8" (ByVal Port As Integer, ByVal dat As Long)
'VB6用直接I/O制御関数開始/終了処理
Public Declare Function IOSCM_Start Lib "VBIOSCM_DLL.DLL" Alias "_IOSCM_Start@0" () As Integer
Public Declare Function IOSCM_Stop Lib "VBIOSCM_DLL.DLL" Alias "_IOSCM_Stop@0" () As Integer

Sub RelayTest()

Dim ret As Integer
Dim i As Integer

ChDir ThisWorkbook.Path
ChDrive Left(ThisWorkbook.Path, 1)

'IOSCM開始処理をコール
ret = IOSCM_Start
If ret And 1 Then 'エラーの時は直接I/O制御不可のため終了
MsgBox "IOSCM Init Error!!"
Exit Sub
End If

For i = 0 To 255
Call OutB(&H378, i)
Application.Wait Now + TimeValue("00:00:01")
Next

'IOSCM終了処理をコール
ret = IOSCM_Stop

End Sub


10、Excelシートの保存

 書いたプログラムは、Excelで保存するxlsファイルの中にシートの情報とともに記録される。VBAのエディタ画面のツールバーにあるフロッピーディスクのアイコンをクリックして、xlsファイルを保存しよう。

「EXIOSCM」フォルダに保存すると、次の手順を省ける

11、xlsファイルの保存先に「ioscm.sys」と
「vbioscm_DLL.dll」をコピーする

必ずxlsファイルと同じフォルダに「ioscm.sys」と「vbioscm_DLL.dll」がなければ動作しない

 これらのファイルが、xlsファイルと同じフォルダにあることを確認する。もし無ければ、ダウンロードして解凍した「EXIOSCM」フォルダからコピーしよう。

12、実行!

 VBAのエディタ画面のツールバーから、三角の実行ボタンをクリック。もしくはExcelの画面から「ツール」メニューの「マクロ」-「マクロ」を選んで、「RelayTest」を選択し[実行]ボタンをクリックする。

VBAのエディタ画面から起動する

Excelの画面から起動する場合

 どうだろう? リレーユニットのリレーがカチカチ音を立てながら動いただろうか? これぞメカトロニクスの醍醐味だ!

リレーユニットのランプは、結果として2進法で0~255をカウントすることになる

(次ページへ続く)

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

最新記事

ASCII.jpメール アキバマガジン

クルマ情報byASCII

ピックアップ