USB-IO3 の概要

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からはUSBOSの処理時間に依存します「御参考: 当方のある環境では、出力:0.7ms、入力:2.2msでした」)
  CPU部とI/O部は一体にもできますし分離も可能です。 分離する場合は、CPU部のみ制御の壁に取り付けることもできます。(USBコネクタをストレートに変更要)
開発環境として、VB6VB.NET(VB2005), VC++/CLI(2008〜), VC#(2008〜)に対応します。VB6は、XPモードである必要がありますが、VB.NET/VC++/VC#ではその必要はなく、VistaWindows 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.NETVB6がインストールされていない環境で実行される時は、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.NETVB6もまったく同じです。
Open」ボタンをクリックします、すると赤の「Comm Off」窓が緑の「Comm On」に変わりモニターが開始され下図のように表示されます。もし「Select Board Group No.」のラジオボタンが'00'の選択になっていなかったら'00'を選択して下さい。

         図 6)

上半分の画面には、OUTポートが8ポート(07)と、INポートが8ポート(07)のそれぞれの状態を第0ビットから第7ビット順に'00000000'の形で示しています。'0'OFFを表し、'1'ONを表します。I/O基板1枚でOUTINそれぞれ4ポートです。OUTIN03が現在実装している基板を示し、非アクティブになっているOUTIN47が、未実装のアドレス'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'になります。たとえば、CN51Pin33Pinを接続するとモニターの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環境から走らせる場合は、UACOFF するかVB6.EXEのプロパティのXP互換モードにチェックを入れる必要があります。そうしないと、IDEからはデバイスを認識できなくなります。


4. 簡易テストのための接続

 出力はオープンコレクタになっていますので、リレーやLEDを接続してON('1')OFF('0')を確認できます。入力はGNDに落とすことでON('1')となりますのでスイッチをつけてGNDに接続('1')・非接続('0')で入力を確認できます。テストのための冶具を作れば良いのですが、簡易テストとしては、出力のコネクタを入力のコネクタに接続すると折り返しのデータを見ることができます。これで入出力同時のテストができます。ただし、出力のコネクタ(CN4)33,34Pin+24Vで、入力のコネクタ(CN5)33,34PinGNDですので、フラットケーブルにコネクタを付けて接続する場合、必ず33,34Pinから出ているケーブルは切断してください(注意: 切断しないと24Vがショートします)この接続をすると、出力したデータがそのまま入力のデータとして表示されますので簡単な入出力テストができます。

                 
                            写真1) 折り返しケーブル

4 】構成基板について

1.  CPU基板

この基板の収納場所については、二通りを考慮しています。

I/O基板の数が少なく、かつUSBコネクタの配置に支障がない場合は、下の写真のように子亀のように乗せることができます。
             
                     写真2) CPU + I/O基板4枚 実装例

I/O基板の数が増えると子亀の配置では無理になってまいりますので、CPU基板のUSBコネクタの種類をストレートに変えてそれをCPU基板のハンダ面()に取り付けて、基板を制御のケースにネジ止めするのが実装しやすいと思います。
なお、CPU基板に加える+5VGNDUSBGNDと共通になります。また、I/O基板の+5VGNDも共通になっています。ですからパソコンのGNDと切り離す場合(これをお勧めします)は、I/O基板の+24VGNDとは切り離して使用してください。

2.  I/O基板

写真2) のように、CPU基板とI/O基板との接続は、14Pinのフラットケーブルで数珠つなぎします。電源は、パソコンと絶縁するために+24V+5VGNDはアイソレーションされることをお勧めします。I/O基板の+5VCPU基板の+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

戻 る