●はじめに
USBに接続するA/D変換ボード、USB-Anのアナログ入力を行うDLLです。
USB-AnボードはKm2Net様で販売されています。
Km2Net様のサイトはこちらです。
http://km2net.com/
【インストール】
ダウンロードされたファイルは圧縮されています。
1)「スタート」-「ファイル名を指定して実行」でダウンロードファイルを選択し、「OK」ボタンをクリックしてください。
2)「解凍先の指定」が出ますのでそのままでよければ「OK」ボタンをクリックしてください。 これで解凍できます。
3)「usbanac.dll」をWindowsのSystemフォルダにコピーするか、DLLの宣言時パス指定をしてください。
・Systemフォルダにコピーした場合のExcel VBA宣言例
Public Declare Function usb_open Lib "usbanac.dll" () As
Long
・C:\usban\フォルダで使用する場合のExcel VBA宣言例
Public Declare Function usb_open Lib "C:\usban\usbanac.dll"
() As Long
【アンインストール】
インストール先のフォルダごと削除してください。
もしSystemフォルダにコピーされている場合は、「usbanac.dll」を削除してください。
レジストリは使用していません。
【ライセンス購入について】
「usbanac.dll」はフリーソフトウェアです。個人で使用される場合は自由にご利用ください。
しかしながら、ライセンス購入していただきますとExcelサンプルソフトを送付させていただきます。
企業での使用や商用使用される場合はライセンス購入してください。
この場合もExcelサンプルソフトを送付させていただきます。
【お読みください.TXT】
最新情報、使用条件、ライセンス購入方法等添付の「お読みください.TXT」を御覧ください。
●実行順序
必ず下記順でプログラム開始時に初期化処理を行い、終了時には終了処理を行ってください。
・初期化処理
1) usb_open
2) usb_aninit
・終了処理
usb_close
●関数
usb_open
使用開始時に実行します。
・Excel VBA宣言例
Public Declare Function usb_open Lib "usbanac.dll" () As Long
・Excel VBA使用例
Ret = usb_open
・戻り値
0:正常
1:Windows標準の「hid.dll」か「setupapi.dll」が見つからない
2:USB-IO又は、USB-Anが見つからない
usb_aninit
ADを初期化します。
usb_openの次に実行します。
・Excel VBA宣言例
Public Declare Function usb_aninit Lib "usbanac.dll" () As
Long
・Excel VBA使用例
Ret = usb_aninit
・戻り値
0:正常に終了できなかった
1:正常
usb_getnum
接続されているUSB-IO、USB-An数を取得します。
・Excel VBA宣言例
Public Declare Function usb_getnum Lib "usbanac.dll" () As
Long
・Excel VBA使用例
UsbMax = usb_getnum
・戻り値
接続されているUSB-IO又は、USB-An数
usb_getusbid
USBのNo.(0〜)で指定したUSB-IO又は、USB-AnのベンダーIDとプロダクトIDを取得します。
・Excel VBA宣言例
Public Declare Function usb_getusbid Lib "usbanac.dll" (ByVal
usbno As Long, ByRef vid As Long, ByRef pid As Long) As Long
・パラメータ
usbno:USBのNo.を指定します。 (0〜) USB-Anを1個のみ接続している場合は0になります。
vid:見つかった場合、ベンダーIDが格納されます。
pid:見つかった場合、プロダクトIDが格納されます。
・Excel VBA使用例
Dim v As Long
Dim p As Long
Ret = usb_getusbid(0, v, p)
Label11.Caption = Hex(v)
Label12.Caption = Hex(p)
・戻り値
0:正常
1:見つからない
usb_getusbno
ベンダーIDとプロダクトIDからUSBのNo.(0〜)を取得します。
・Excel VBA宣言例
Public Declare Function usb_getusbno Lib "usbanac.dll" (ByVal
vid As Long, ByVal pid As Long) As Long
・パラメータ
vid:ベンダーIDを指定します。
pid:プロダクトIDを指定します。
・Excel VBA使用例
Dim v As Long
Dim p As Long
v=&H1352
p=&H100
Ret = usb_getusbno(0, v, p)
・戻り値
USBのNo.を返します
usb_an8input
8Bitのアナログ入力を1件行います。
・Excel VBA宣言例
Public Declare Function usb_an8input Lib "usbanac.dll" (ByVal
vid As Long, ByVal pno As Long, ByRef andata As Long) As Long
・パラメータ
vid:USBのNo.を指定します。 (0〜) USB-Anを1個のみ接続している場合は0になります。
pno:アナログ入力のチャンネルNo.を指定します。(0〜)
andata:取得したデータが格納されます。
・Excel VBA使用例
Dim v As Long
Dim f as double
Ret = usb_an8input(0, 0, v)
f=v*5/255 'ボルトに変換
・戻り値
0:正常
1:異常終了
usb_an8sampling
8Bitのアナログ入力を連続して行います。
現在最大6件連続になっています。
・Excel VBA宣言例
Public Declare Function usb_an8sampling Lib "usbanac.dll" (ByVal
id As Long, ByVal pno As Long, ByRef andata As Long, ByVal annum As Long)
As Long
・パラメータ
vid:USBのNo.を指定します。 (0〜) USB-Anを1個のみ接続している場合は0になります。
pno:アナログ入力のチャンネルNo.を指定します。(0〜)
andata:取得したデータが格納されるポインタを指定します。
annum:取得数を指定します。
・Excel VBA使用例
Dim va(5) As Long
Ret = usb_an8sampling(lid, lch, va(0), 6)
f=va(0)*5/255 'ボルトに変換
f=va(1)*5/255 'ボルトに変換
・戻り値
0:正常
1:異常終了
usb_an10input
10Bitのアナログ入力を1件行います。
・Excel VBA宣言例
Public Declare Function usb_an10input Lib "usbanac.dll" (ByVal
vid As Long, ByVal pno As Long, ByRef andata As Long) As Long
・パラメータ
vid:USBのNo.を指定します。 (0〜) USB-Anを1個のみ接続している場合は0になります。
pno:アナログ入力のチャンネルNo.を指定します。(0〜)
andata:取得したデータが格納されます。
・Excel VBA使用例
Dim v As Long
Dim f as double
Ret = usb_an10input(0, 0, v)
f=v*5/1024 'ボルトに変換
・戻り値
0:正常
1:異常終了
usb_an10sampling
10Bitのアナログ入力を連続して行います。
現在最大6件連続になっています。
・Excel VBA宣言例
Public Declare Function usb_an10sampling Lib "usbanac.dll"
(ByVal id As Long, ByVal pno As Long, ByRef andata As Long, ByVal annum
As Long) As Long
・パラメータ
vid:USBのNo.を指定します。 (0〜) USB-Anを1個のみ接続している場合は0になります。
pno:アナログ入力のチャンネルNo.を指定します。(0〜)
andata:取得したデータが格納されるポインタを指定します。
annum:取得数を指定します。
・Excel VBA使用例
Dim va(5) As Long
Ret = usb_an10sampling(lid, lch, va(0), 6)
f=va(0)*5/1024 'ボルトに変換
f=va(1)*5/1024 'ボルトに変換
・戻り値
0:正常
1:異常終了
usb_close
使用終了時に実行します。
・Excel VBA宣言例
Public Declare Function usb_close Lib "usbanac.dll" () As Long
・Excel VBA使用例
usb_close
・戻り値
0を返します。
USB-An用DLLはUSB-IO用DLLにAnの機能を追加しましたので、IO用のコマンドがそのまま残っています。
しかしながら、お問い合わせがありお試しいただいた所、入出力は可能だが、アナログ入力を掛けると同時にすべてのDIOポートがHIになる動作が確認されました。
つまり、連続アナログ入力をしながらの出力制御は出来ませんでした。とのお返事を頂きました。
Bit単位での処理にしていない為です。
このままで使用可能か分かりませんが、下記が使用できるコマンドになります。
・先にusb_openを実行してください。
・自己責任でご使用ください。
usb_outbyte
指定usbno(0〜)の指定ポートにバイト出力します。
Excel VBA宣言例
Public Declare Function
usb_outbyte Lib "usbanac.dll" (ByVal usbno As
Long, ByVal port As Byte, ByVal
outdata As Byte) As Long
・パラメータ
usbno:USBのNo.を指定します。
(0〜) USB-Anを1個のみ接続している場合は0になります。
port:出力先ポートを指定します。0か1です。
outdata:出力データを指定します。
・Excel
VBA使用例
Ret = usb_outbyte(0, 1,
&h10)
・戻り値
0:正常に出力できなかった
1:正常
usb_inpbyte
指定usbno(0〜)の指定ポートからバイト入力します。
・Excel VBA宣言例
Public Declare Function
usb_inpbyte Lib "usbanac.dll" (ByVal usbno As
Long, ByVal port As Byte, ByRef
indata As Byte) As Long
・パラメータ
usbno:USBのNo.を指定します。
(0〜) USB-Anを1個のみ接続している場合は0になります。
port:出力先ポートを指定します。0か1です。
indata:入力データが格納されます。
・Excel
VBA使用例
Dim inp As Byte
Ret = usb_inpbyte(0, 0,
inp)
・戻り値
0:正常
1:正常に入力できなかった
●Excelサンプルソフト
ライセンス購入をしていただいた方には下記のExcel用サンプルソフトを添付させていただきます。
1.usb_open を実行します。
2.使用するUSB No.を選択します。
3.USB No.のベンダID、プロダクトIDを取得します。
4.8Bit変換か10Bit変換かを選択します。
5.アナログ入力するチャンネルを指定します。
6.指定されたチャンネルから1件のアナログ入力を行います。
7.入力結果を電圧で表示します。
8.指定されたチャンネルから6件の連続アナログ入力を行います。
9.入力結果を電圧で表示します。
10.終了処理を実行します。