ADボードの動作検証(その1)

VB6.0からVB2019への変更のための動作検証の結果です。

Windows10 (32bit) で、ADボード AD16-16U(PCI)EHとAPI-AIO(WDM)ドライバの組み合わせ。

メーカー発行のVB2005用のガイドブックにあるFIFOのサンプルソフトがそのままでは動作しませんでしたが、WndProcを以下の様に書き換えることで動作するようになりました。

‘変数の宣言
Dim Ret As Integer
Dim Id As Short
Dim Tmp(999) As Single
Dim DeviceName As String
Dim TextString As String

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

‘変換条件設定
Ret = AioSetAiChannels(Id, 2) ‘チャンネル数の設定

Ret = AioSetAiRangeAll(Id, PM10) ‘入力レンジの設定 +/-10V

Ret = AioSetAiMemoryType(Id, 0) ‘メモリ形式 FIFO

Ret = AioSetAiClockType(Id, 0) ‘内部クロック

Ret = AioSetAiSamplingClock(Id, 1000) ‘変換速度(uS単位) 1000uS

Ret = AioSetAiStartTrigger(Id, 0) ‘開始条件 ソフトウェア

Ret = AioSetAiStopTrigger(Id, 0) ‘停止条件 設定回数

Ret = AioSetAiStopTimes(Id, 100) ‘サンプリング回数=チャンネル数xサンプリング数

Ret = AioSetAiEvent(Id, Handle.ToInt32, AIE_END) ‘イベント要因の設定 デバイス動作終了イベント

End Sub

Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click

End

End Sub

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click

‘変換開始処理
Ret = AioResetAiMemory(Id)

Ret = AioStartAi(Id)

End Sub

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

‘初期化処理

DeviceName = “AIO001”

Ret = AioInit(DeviceName, Id)

Ret = AioResetDevice(Id)

End Sub

Private Sub Form1_FormClosed(sender As Object, e As FormClosedEventArgs) Handles Me.FormClosed

Ret = AioExit(Id)

End Sub

Protected Overrides Sub WndProc(ByRef m As Message)  ’←ココ

MyBase.WndProc(m)                                                                        ‘←ココ

Dim i As Integer

If m.Msg = AIOM_AIE_END Then

Ret = AioGetAiSamplingDataEx(Id, m.LParam, Tmp) ‘変換データ取得

TextString = “”

For i = 0 To m.LParam.ToInt32 – 1

TextString = TextString & “” & i + 1 & ” ” & Format(Tmp(i), “0.000”) & vbCrLf

Next i

TextBox1.Text = TextString

End If

End Sub