中堅プログラマーの備忘録

忘れっぽくなってきたので備忘録として・・・

【C#.net】DIO-0808LY-USBを使ってI/Oの制御を行う

1.概要

外部I/Oを取り込んでアプリケーションで判断を行うためには
PCにI/Oポートがない場合が多いので専用のデバイスが必要になります。
使用するデバイスについては選択肢は多くありますが
今回は【CONTEC】のデジタル入出力ユニットである
【DIO-0808LY-USB】を使ってみようかと思います。

使えるようにするまでの環境設定や
コーディング前の下準備に少し手間取ったので
備忘録として残しておこうかと思います。

2.ドライバーのインストール

PCにUSBでデバイスを接続すると
ドライバーがインストールされていないので
デバイスマネージャでは
下図のとおり不明なデバイス扱いされてしまいます。

f:id:tsu--kun:20200225171541p:plain


ですので、添付されているCDからドライバをインストールします。
CDをセットすると自動的に
【CONTEC API-USBP(WDM) DRIVER LIBRARY】
が起動します。
メニューの中にある【実行環境または開発環境のインストール】を選択します。

f:id:tsu--kun:20200225171603p:plain


今回はデジタル入出力ユニットなので
【API-DIO(WDM)】にチェックを入れて
【インストール】をクリックします。

f:id:tsu--kun:20200225171618p:plain


CONTEC API-USBP(WDM)...が起動しますので
アナウンスに従い先にすすんでいきます。

f:id:tsu--kun:20200225171635p:plain


次に、API-DIO(WDM)インストーラーが起動しますので
これもアナウンスに従い進めていきます。

f:id:tsu--kun:20200225171654p:plain


インストールが完了すると
デバイスマネ―ジャーでドライバが認識できたことが確認出来ます。

f:id:tsu--kun:20200225171711p:plain

3.動作確認

ドライバーのインストールが確認出来たら、動作確認を行います。

デバイスマネージャーから【DIO DIO-0808LY-USB "DIO000"】のプロパティを開き
【診断】をクリックします。

f:id:tsu--kun:20200225171754p:plain


ここで出力の制御や入力のモニタなどが簡易的に行えます。
例えば入力ポートのBit0をGNDレベルに落とすと
下図のようにBit0が赤色に変わり、デバイスが動作していることが確認出来ます。

f:id:tsu--kun:20200225171826p:plain

4.プロジェクトにクラスライブラリの追加

動作確認が出来たのでアプリケーションを作成していきます。
その下準備としてクラスライブラリである【CdioCs.cs】というファイルを
プロジェクトに追加していきます。


まずは任意のプロジェクトを作成します。

プロジェクトを作成したら
下記のパスにある【CdioCs.cs】を追加していきます。
【C:\Program Files (x86)\CONTEC\API-USBP(WDM)\Dio\Samples\Vcs2005\SimpleIO】

追加すると
【アンセーフコードは/unsafeでコンパイルした場合のみ有効です】
のエラーが出てしまいます.

f:id:tsu--kun:20200225171947p:plain


ですので、これは下記の記事のとおり対応して回避します。

www.chuken-engineer.com


これで下準備は完了になります。

5.まとめ

後は上記パスにある【SimpleIO.cs】に記述されているのをパクッてやるだけになります。
割り込み処理なども出来ますので
目的のコードをサンプルからパクッてカスタムしていけばいいかと思います。