【 1 】 USB-IO3 の特徴
・ USB-IO3 は、パソコンとは絶縁された入力と出力を構成できます。このことは、特に計測システムでは重要ですし、制御システム全体の安定化には必須です。・ 出力はフォトカプラのオープンコレクタです、リレーやソレノイドを直接駆動できます。入力はやはりフォトカプラのLED側の吸い込み(GNDに接続)でONします。(図9参照)・ I/O部は、入力32点・出力32点が一枚のI/O基板に載っており、これを最小単位として最大8枚のI/O基板を制御することができます。したがって最大で入力256点・出力256点のI/Oを制御できます。・ 当社製の従来のUSB-IO, USB-IO2 に比較すると、入出力にかかる時間が非常に短縮されています。(CPU内の処理では45us程度ですが、PCからはUSBとOSの処理時間に依存します「御参考: 当方のある環境では、出力:0.7ms、入力:2.2msでした」)・ CPU部とI/O部は一体にもできますし分離も可能です。 分離する場合は、CPU部のみ制御の壁に取り付けることもできます。(USBコネクタをストレートに変更要)・ 開発環境として、VB6とVB.NET(VB2005〜), VC++/CLI(2008〜), VC#(2008〜)に対応します。VB6は、XPモードである必要がありますが、VB.NET/VC++/VC#ではその必要はなく、VistaやWindows 7などでも、そのままの環境で開発できます。ドライバーが違いますからPlug & Playのセットアップ時にどちらを使うかを選択します。(後で切り替えることは可能です)
・ Visual Studio の基礎を習得されていれば、確実にご自分のアプリケーションに組み込
めます。組み込みしやすいように構成したサンプルプログラム(モニター)をソース込み(プロ
ジェクト)で提供しています。同様の形式で、多くの方が移植している実績があります。
【 2 】 USB-IO3のセットアップUSBケーブルを接続せずに、基板セットに電源(5V,24V)を供給してください ( 9ページの 図 8 「接続の略図」を御参照ください)。 CPUボードの赤のLEDが点灯し、セットアップ待ちとなります。
図 1)
次にUSBケーブルを接続します。「新しいハードウェアの検出」ウィザードが起動されます。添付のCDをドライブに入れて「参照」のボタンをクリックして VB.NET / VC++ / VC#でインストールする場合は、CDドライブの \DriverByWinUSB\DriverWinUSBホルダを指定し、VB6でインストールする場合は CDドライブの\DriverByApiDLL\DriverAPIホルダを指定してください。(図1. OSにより表現の違いがありますが似ているので分かると思います)
「次へ」のボタンをクリックします。「Windowsセキュリティ」の画面(下図)が出ましたら「このドライバソフトウェアをインストールします」をクリックして下さい。
図 2)
「ドライバソフトウェアをインストールしています・・・」が表示されインストールが開始されます。(WinUSBの方のインストールには結構時間がかかります。約5〜10分程度)
図 3)
「このデバイス用のソフトウェアは正常にインストールされました」と表示されましたら、「閉じる」ボタンをクリックして下さい。確認のために、デバイスマネージャを起動して下さい。(コントロールパネル−システム−デバイスマネージャ)
図 4) WinUSBの場合
図 5) DLL(VB6)の場合
WinUSB(VB.NET/VC++/VC#)でセットアップした場合は、 図4)の表示、VB6 でセットアップした場合は、 図5 )の表示となります。この時、CPUボードの赤のLEDは消灯し、緑のLEDが点灯しています。これでUSB-IO3は、いつでも使える状態になっています。将来、もしドライバーを入れ替える必要が生じた時は、このデバイスマネージャのデバイス上で右クリックをするとメニューがでますので、その中から削除を選択し実行します。その後、USBケーブルを一旦抜き、再度差し込むと改めてセットアップができます。
【 3 】サンプルプログラムの操作1. サンプルソフトの配置と環境設定
CDの中に「UsbIO3_WUmon」(VB.NETサンプル)ホルダ、「UsbIO3_IOM_VCpp」(VC++サンプル)、UsbIO3_IOM_VC#」(VC#サンプル)それと「UsbIO3_Mon」(VB6サンプル)ホルダがあります。必要な方をホルダ込コピーしてパソコンの任意(ご自分が使う場所)の位置に貼り付けて下さい。これらの中にサンプルソフトのソースを含めたファイル一式が納められています。
VB.NETの場合は、\DriverByWinUSB\UsbIO3_WUmon\bin\UsbIO3_WUmon.exeを、VC++は、Driver ByWinUSB\UsbIO3_IOM_VCpp\Release\UsbIO3_IOM.exeを、VC#は、Driver ByWinUSB\UsbIO3_IOM_VC#\UsbIO3_IOM\bin\Release\UsbIO3_IOM.exeを起動し、VB6の場合は、\DriverByApiDLL \UsbIO3_Mon\UsbIO3_Mon.exeをダブルクリックして起動して下さい。もし、VB.NETやVB6がインストールされていない環境で実行される時は、CDの中の「EnviromentSetup」ホルダの中にある「EnvSetup.EXE」をダブルクリックして実行して下さい、これで実行に必要な環境が設定されます。(VB.NET, VB6の場合)
注!VB6の場合:ユーザーアカウント制御(UAC)のあるOS(Vista等)は、これを OFF にするかXPモード (EXEファイルを右クリックしてプロパティ-互換性タブの「互換モードでこのプログラムを実行する」にチェックを入れる) にしてサンプルプログラムを実行して下さい。VB.NETはこの配慮は不要です。
2. サンプルソフトの実行
簡単化のために、I/O基板は1枚で、そのアドレスは'00-03'にジャンパピンが差さっている状態でご説明いたします。(写真3)と 図8)参照)
先に配置しましたサンプルをダブルクリックして起動して下さい。起動された画面と操作は、VB.NETもVB6もまったく同じです。
「Open」ボタンをクリックします、すると赤の「Comm Off」窓が緑の「Comm On」に変わりモニターが開始され下図のように表示されます。もし「Select Board Group No.」のラジオボタンが'00'の選択になっていなかったら'00'を選択して下さい。
図 6)
上半分の画面には、OUTポートが8ポート(0〜7)と、INポートが8ポート(0〜7)のそれぞれの状態を第0ビットから第7ビット順に'00000000'の形で示しています。'0'はOFFを表し、'1'はONを表します。I/O基板1枚でOUTとINそれぞれ4ポートです。OUTとINの0〜3が現在実装している基板を示し、非アクティブになっているOUTとINの4〜7が、未実装のアドレス'04-07'の基板を意味しています。このI/O基板を追加搭載したら、ここで表示されているモニターは、すべてアクティブになりますが、ここでは1枚の状態でご説明します。
[ モニターでの操作 ]
マウスのカーソルをOUT-0の第0ビットの'0'の上に持って行き、その状態でクリックして下さい、ピッと音がしてモニターは'10000000'と表示され第0ビットがONしたことが確認されます。同じビットをもう一度クリックするとやはりピッと音がして、'0'に戻りOFFされます。この操作はトグルになっています。アクティブなOUTのどのビットもこの操作ができます。当然この操作はOUTのみであり、INは外部からの入力によって動きます。
[ Sample of Port operationでの操作 ]下半分の画面はアプリケーションに組み込む場合のサンプルです。VB6(VB2008)のデザイン画面で操作ボタンをダブルクリックすると、それを実行するコードが現れますので、それをアプリケーションに組み込む際のサンプルにしてください。
(Byte OUT)「Byte OUT」のPORTを'03'とし、BYTEを'63'として「Byte OUT」のボタンをクリックして下さい。モニターのOUT3は'11000110'と表示され、16進数(HEX)の'63'が出力されていることがわかります。
(Bit ON)「Bit ON」のPORTを'01'とし、BITを'7'として「Bit ON」のボタンをクリックして下さい。モニターのOUT1は'00000001'となり第7ビットがONしたことがわかります。この操作は上の「モニターでの操作」でのマウスによるビットON操作と同じです。(Bit OFF)
「Bit OFF」のPORTを'01'とし、BITを'7'として「Bit OFF」のボタンをクリックして下さい。上で「Bit ON」したビットをOFFする操作です。モニターのOUT1は'00000000'となり第7ビットがOFFしたことがわかります。この操作は上の「モニターでの操作」でのマウスによるビットOFF操作と同じです。
(Read Input Port)入力のコネクタ(CN5)のテストビットのピンをGND(33,34Pin)に接続するとそのビットが'1'になります。たとえば、CN5の1Pinと33Pinを接続するとモニターのIN0は'10000000'となります。このとき、「Read Input Port」のPORTを'00'としてボタンをクリックするとDATAに'01'と表示されます。
(Read Output Recorded)上記の「Byte OUT」の出力の結果、OUT3は'11000110'と表示されています。このとき「Read Output Recorded」のPORTを'03'とし、ボタンをクリックするとDATAに'63'と表示されて出力しているデータを確認できます。
(Block INP)各ポート(IN/OUT)の状況は、「Read Input Port」と「Read Output Recorded」で確認できますが、これをアドレスが隣接する二枚のI/O基板の状況を一度に読み出すためのコマンドです。「Block INP」のBoard Groupを'00'としてボタンをクリックすると「Out Data」と「Input Data」にそれぞれ16文字のデータが表示されます。2文字で1ポートのデータを表しますのでOUT/INそれぞれ8ポートのデータを読んだことになります。最初の2文字が'0'ポートで最後の2文字が'7'ポートを示します。たとえば「Out Data」が'1234567800000000'の場合、OUT0が'12'、OUT1が'34'・・・OUT7が'00'となります。データは16進数表現です。「Input Data」も同様です。実装されていない基板のデータはすべて'00'となります。この「Block INP」コマンドは、このソフトの上半分のビットモニターを実現するのに利用しています。
(Board Status and Version of Firmware)ボタンをクリックすると、Statusに「01」と表示されます。これは、アドレス'00'〜'03'をジャンパしたI/O基板が1枚のみ実装されていることを表しています。もし、アドレス'04'〜'07'をジャンパしたI/O基板を追加した場合は'03'となり、最大の8枚をフル実装した場合は'FF'となります。この機能は、このソフトの上半分のビットモニターのアクティブ・非アクティブ(非実装)を実現するのに利用しています。Versionは、このファームウェアのバージョンを示します。
下図は、ある状態の動作確認中の画面です。
図 7)
3. アプリケーションへの組み込み
[ VB.NET / VC++/CLI / VC# の場合 ]
VB.NETのこのサンプルソフトのソリューションは、UsbIO3_WUmon.slnです。これを起動するとその中に、「clsDevice.vb」と「mduDevice.vb」が組み込まれています。
VC++のこのサンプルソフトのソリューションは、UsbIO3_IOM.slnです。これを起動するとその中に、「USB_IO3.cpp」と「USB_IO3.h」が組み込まれています。
VC#のこのサンプルソフトのソリューションは、UsbIO3_IOM.slnです。これを起動するとその中に、「WinUsbDriver.cs」と「USB_IO3.cs」が組み込まれています。
いずれにしても、この二つのファイルをご自分の開発ソリューションに追加するとUSB-IO3をソフトから操作できるようになります。テキストの上部の方に解説がありますのでご参照ください。
[ VB6の場合 ]
このサンプルソフトのプロジェクトは、UsbIO3_Mon.vbpです。これを起動すると、その中に「USB_IO3.bas」が組み込まれています。このファイル(標準モジュール)をご自分のプロジェクトに組み込んでください。このテキストの上部の方に解説がありますのでご参照ください。
VB6の場合は、mpusbapi_vb.dll をご自分のアプリケーションの実行ファイル(EXE)と同じホルダに入れて置く必要がありますので、ご注意ください。
注!VB6の場合:ユーザーアカウント制御(UAC)のあるOS(Vista等)で、VB6のIDE環境から走らせる場合は、UACをOFF するかVB6.EXEのプロパティのXP互換モードにチェックを入れる必要があります。そうしないと、IDEからはデバイスを認識できなくなります。
4. 簡易テストのための接続
出力はオープンコレクタになっていますので、リレーやLEDを接続してON('1')かOFF('0')を確認できます。入力はGNDに落とすことでON('1')となりますのでスイッチをつけてGNDに接続('1')・非接続('0')で入力を確認できます。テストのための冶具を作れば良いのですが、簡易テストとしては、出力のコネクタを入力のコネクタに接続すると折り返しのデータを見ることができます。これで入出力同時のテストができます。ただし、出力のコネクタ(CN4)の33,34Pinは+24Vで、入力のコネクタ(CN5)の33,34PinはGNDですので、フラットケーブルにコネクタを付けて接続する場合、必ず33,34Pinから出ているケーブルは切断してください。(注意: 切断しないと24Vがショートします)この接続をすると、出力したデータがそのまま入力のデータとして表示されますので簡単な入出力テストができます。
写真1) 折り返しケーブル
【 4 】構成基板について
1. CPU基板
この基板の収納場所については、二通りを考慮しています。
I/O基板の数が少なく、かつUSBコネクタの配置に支障がない場合は、下の写真のように子亀のように乗せることができます。
写真2) CPU + I/O基板4枚 実装例
I/O基板の数が増えると子亀の配置では無理になってまいりますので、CPU基板のUSBコネクタの種類をストレートに変えてそれをCPU基板のハンダ面(裏)に取り付けて、基板を制御のケースにネジ止めするのが実装しやすいと思います。なお、CPU基板に加える+5VのGNDはUSBのGNDと共通になります。また、I/O基板の+5VのGNDも共通になっています。ですからパソコンのGNDと切り離す場合(これをお勧めします)は、I/O基板の+24VのGNDとは切り離して使用してください。
2. I/O基板
写真2) のように、CPU基板とI/O基板との接続は、14Pinのフラットケーブルで数珠つなぎします。電源は、パソコンと絶縁するために+24Vと+5VのGNDはアイソレーションされることをお勧めします。I/O基板の+5VとCPU基板の+5Vは共通で構いません。I/O基板には、写真3)のような、アドレス設定をするためのジャンパー部があります。一つのCPU基板に接続するI/O基板のアドレスは重複させてはいけませんので、それぞれ違ったアドレスになるように設定してください。
写真3) I/O基板のアドレス設定ジャンパー部3. 接続略図
![]()
図8) 接続の略図
電源の極性(±)と電圧、接続ピンには充分ご注意ください。間違えると基板を壊してしまいます。
4. コネクタ表
( CPU基板 )
CN-2: Power
1 +5V 2 GND(5V)
CN-2: BUS
B0 1 2 B1 B2 3 4 B3 B4 5 6 B5 B6 7 8 B7 OE 9 10 DAT NC 11 12 CLK GND(5V) 13 14 GND(5V)
( I/O 基板 )
CN-3: PWR
1 +5V 2 GND(5V) 3 + 24V 4 GND(24V)
CN1: BUS
CPU基板の
CN-2: BUSと
まったく同じ
CN-4: OUT
OUT0-0 1 2 OUT0-1 OUT0-2 3 4 OUT0-3 OUT0-4 5 6 OUT0-5 OUT0-6 7 8 OUT0-7 OUT1-0 9 10 OUT1-1 OUT1-2 11 12 OUT1-3 OUT1-4 13 14 OUT1-5 OUT1-6 15 16 OUT1-7 OUT2-1 17 18 OUT2-1 OUT2-3 19 20 OUT2-3 OUT2-5 21 22 OUT2-5 OUT2-7 23 24 OUT2-7 OUT3-1 25 26 OUT3-1 OUT3-3 27 28 OUT3-3 OUT3-5 29 30 OUT3-5 OUT3-7 31 32 OUT3-7 + 24V 33 34 + 24V CN-5: IN
IN0-0 1 2 IN0-1 IN0-2 3 4 IN0-3 IN0-4 5 6 IN0-5 IN0-6 7 8 IN0-7 IN1-0 9 10 IN1-1 IN1-2 11 12 IN1-3 IN1-4 13 14 IN1-5 IN1-6 15 16 IN1-7 IN2-1 17 18 IN2-1 IN2-3 19 20 IN2-3 IN2-5 21 22 IN2-5 IN2-7 23 24 IN2-7 IN3-1 25 26 IN3-1 IN3-3 27 28 IN3-3 IN3-5 29 30 IN3-5 IN3-7 31 32 IN3-7 GND(24V) 33 34 GND(24V)
図9) CN5,CN4 のI/F部
戻 る