(57)【特許請求の範囲】
【請求項１】
通信のためのポートが設けられた操作端末であって、
機器グループ毎に各機器グループに属する機器を示す機器種別を定義する第１の定義情報、および、前記操作端末から要求される動作別に、機器グループ毎に対応付けられる接続アクションを定義する第２の定義情報を保持する記憶手段と、
前記ポートに機器が繋がれると、前記ポートに繋がれた機器から、前記機器の接続形態を示す情報を取得するための取得手段と、
前記ポートに繋がれた機器の接続形態に従って、前記機器と前記操作端末とを接続するための接続手段と、
前記機器から機器種別を取得するとともに、前記第１の定義情報から前記取得した機器種別に基づいて前記機器が属する機器グループを決定し、前記操作端末から何らかの動作の要求を受けると、前記第２の定義情報から前記要求を受けた動作と前記決定された機器グループとに対応する接続アクションを決定する制御手段とを備え、
前記接続手段は、決定された接続アクションに従って接続処理を実行する、操作端末。
【請求項２】
前記決定される接続アクションは、１台の機器のみを接続する処理と、複数の機器を接続する処理とを含む、請求項１に記載の操作端末。
【請求項３】
前記決定される接続アクションは、１台のプログラマブルロジックコントローラと前記操作端末とを接続する処理と、複数のプログラマブル表示器と前記操作端末とを接続する処理とを含む、請求項２に記載の操作端末。
【請求項４】
前記ポートから前記機器が外されると、前記機器と前記操作端末との接続を終了するための手段をさらに備える、請求項１〜３のいずれか１項に記載の操作端末。
【請求項５】
前記ポートは、ＵＳＢポートである、請求項１〜４のいずれか１項に記載の操作端末。
【請求項６】
前記接続手段は、前記機器の接続形態がＰＰＰ接続であると、前記機器と前記操作端末とをＰＰＰ接続する、請求項５に記載の操作端末。
【請求項７】
前記接続手段は、前記機器の接続形態がシリアル接続であると、前記機器と前記操作端末とをシリアル接続する、請求項５に記載の操作端末。
【請求項８】
通信のためのポートが設けられた操作端末に、
前記ポートに機器が繋がれると、前記ポートに繋がれた機器から、前記機器の接続形態を示す情報を取得するステップと、
前記ポートに繋がれた機器の接続形態に従って、前記機器と前記操作端末とを接続するステップと、
前記機器から機器種別を取得するとともに、機器グループ毎に各機器グループに属する機器を示す機器種別を定義する第１の定義情報から前記取得した機器種別に基づいて前記機器が属する機器グループを決定するステップと、
前記操作端末から何らかの動作の要求を受けると、前記操作端末から要求される動作別に、機器グループ毎に対応付けられる接続アクションを定義する第２の定義情報から前記要求を受けた動作と前記決定された機器グループとに対応する接続アクションを決定するステップとを実行させ、
前記接続するステップは、決定された接続アクションに従って接続処理を実行するステップを含む、プログラム。
【請求項９】
前記決定される接続アクションは、１台の機器のみを接続する処理と、複数の機器を接続する処理とを含む、請求項８に記載のプログラム。
【請求項１０】
前記決定される接続アクションは、１台のプログラマブルロジックコントローラと前記操作端末とを接続する処理と、複数のプログラマブル表示器と前記操作端末とを接続する処理とを含む、請求項９に記載のプログラム。
【請求項１１】
前記ポートから前記機器が外されると、前記機器と前記操作端末との接続を終了するステップを前記操作端末にさらに実行させる、請求項８〜１０のいずれか１項に記載のプログラム。
【請求項１２】
前記ポートは、ＵＳＢポートである、請求項８〜１１のいずれか１項に記載のプログラム。
【請求項１３】
前記機器と前記操作端末とを接続するステップは、前記機器の接続形態がＰＰＰ接続であると、前記機器と前記操作端末とをＰＰＰ接続するステップを含む、請求項１２に記載のプログラム。
【請求項１４】
前記機器と前記操作端末とを接続するステップは、前記機器の接続形態がシリアル接続であると、前記機器と前記操作端末とをシリアル接続するステップを含む、請求項１３に記載のプログラム。
【請求項１５】
通信のためのポートが設けられた操作端末と、
前記ポートに繋がれる機器とを備え、
前記操作端末は、
機器グループ毎に各機器グループに属する機器を示す機器種別を定義する第１の定義情報、および、前記操作端末から要求される動作別に、機器グループ毎に対応付けられる接続アクションを定義する第２の定義情報を保持する記憶手段と、
前記ポートに機器が繋がれると、前記ポートに繋がれた機器から、前記機器の接続形態を示す情報を取得するための取得手段と、
前記ポートに繋がれた機器の接続形態に従って、前記機器と前記操作端末とを接続するための接続手段と、
前記機器から機器種別を取得するとともに、前記第１の定義情報から前記取得した機器種別に基づいて前記機器が属する機器グループを決定し、前記操作端末から何らかの動作の要求を受けると、前記第２の定義情報から前記要求を受けた動作と前記決定された機器グループとに対応する接続アクションを決定する制御手段とを含み、
前記接続手段は、決定された接続アクションに従って接続処理を実行する、制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、操作端末、プログラムおよび制御システムに関し、特に、通信のためのポートに繋がれた機器の接続形態に従って、機器と操作端末とを自動で接続するための技術に関する。
【背景技術】
【０００２】
自動化された工場などにおいて製造機械の制御装置として用いられるプログラマブルロジックコントローラ（ＰＬＣ）が知られている。たとえば、プログラマブルロジックコントローラは、ツールと呼ばれるソフトウェアがインストールされたコンピュータ（市販のパーソナルコンピュータなど）またはプログラマブルロジックコントローラの設定などに用いられる表示器を用いて管理される。
【０００３】
プログラマブルロジックコントローラ、コンピュータおよび表示器は、特開２００７−２４３８２５号公報（特許文献１）に記載のように、たとえばイーサネット（登録商標）を利用したネットワークを介して接続される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−２４３８２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
プログラマブルロジックコントローラとコンピュータとは、イーサネット（登録商標）以外にも、ＵＳＢ（Universal Serial Bus）等を用いたシリアル通信により接続される場合もある。特に、プログラマブルロジックコントローラとコンピュータとを１対１で接続する場合、ＵＳＢ等のシリアル通信を用いることが多い。この場合、独自の通信プロトコルを利用して通信することが一般的である。一方、イーサネット（登録商標）による通信では、ＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）のように、ソケットに基いた通信が一般的になりつつある。このような状況において、プログラマブルロジックコントローラとコンピュータとの接続がイーサネット（登録商標）およびＵＳＢの両方をサポートするには、複数の通信プロトコルをコンピュータに実装する必要がある。そのため、開発者にとって煩わしいものであった。
【０００６】
上記のように複数の通信形式をサポートする場合、ネットワークの種別毎に別々の設定をする必要があるため、ユーザが行なうべき設定も煩雑になり得る。また、ネットワーク毎に異なる態様で通信が制約され得る。そのため、ユーザの利便性が損なわれ得る。
【０００７】
したがって、ＦＴＰ（File Transfer Protocol）、Ｔｅｌｎｅｔ（Telecommunication network）を、イーサネット（登録商標）上のアプリケーションとしてイーサネットポートを介して実行するのと同様の通信がＵＳＢ回線上で実現できると便利である。
【０００８】
その他、ＴＣＰ・ＵＤＰ（Transmission Control Protocol・User Datagram Protocol）を用いたユーザプログラムや、ＨＴＴＰ（HyperText Transfer Protocol）などをＵＳＢ回線上で利用できると便利である。
【０００９】
さらに、ＵＳＢをシリアルとして利用するとポートを１つのアプリケーションで占有してしまうと、他のアプリケーションでは使えなくなるため、別途、共有のための仕組みを構築する必要があるが、イーサネット（登録商標）のソケットとして提供すれば、複数のアプリケーション間での共有が容易になる。
【００１０】
ＰＰＰ（Point-to-Point Protocol）の利用は、シリアル通信回線上でイーサネット（登録商標）のプロトコルを構築し、稼動させるための方法の１つである。ＰＰＰを用いることにより、シリアル通信回線を利用してモデム接続を実行するとともに、モデム接続上でイーサネット（登録商標）に基いた通信を実行できる。
【００１１】
通常、ＰＰＰに基いた接続を実行する場合、電話回線を用いた接続を想定した上で種々の設定がユーザによりなされる。したがって、接続先の電話番号、または電話番号に相当する接続先のアドレスなどをユーザが指定するとともに、ユーザの操作により接続を開始することが一般的である。
【００１２】
しかしながら、コンピュータの接続先は、ＵＳＢケーブルなどによって直接コンピュータに繋がれたプログラマブルロジックコントローラ等である。したがって、接続のための煩わしい手続きをせずに、コンピュータとプログラマブルロジックコントローラとを接続することが望まれる。
【００１３】
本発明は、上述の課題を解決するためになされたものであり、その目的は、接続に関する利便性を向上することである。
【課題を解決するための手段】
【００１４】
ある実施例において、通信のためのポートが設けられた操作端末は、ポートに機器が繋がれると、ポートに繋がれた機器から、機器の接続形態を示す情報を取得するための取得手段と、ポートに繋がれた機器の接続形態に従って、機器と操作端末とを接続するための接続手段とを備える。
【００１５】
ある実施例において、プログラムは、通信のためのポートが設けられた操作端末に、ポートに機器が繋がれると、ポートに繋がれた機器から、機器の接続形態を示す情報を取得するステップと、ポートに繋がれた機器の接続形態に従って、機器と操作端末とを接続するステップとを実行させる。
【００１６】
ある実施例において、制御システムは、通信のためのポートが設けられた操作端末と、ポートに繋がれる機器とを備える。操作端末は、ポートに機器が繋がれると、ポートに繋がれた機器から、機器の接続形態を示す情報を取得するための取得手段と、ポートに繋がれた機器の接続形態に従って、機器と操作端末とを接続するための接続手段とを含む。
【発明の効果】
【００１７】
ポートに機器が繋がれると、機器の接続形態に従って自動的に機器と操作端末とが接続される。そのため、ユーザが煩わしい設定をしなくても、機器と操作端末との間の通信が可能となる。よって、接続に関する利便性が向上する。
【図面の簡単な説明】
【００１８】
【図１】１台のコンピュータに対して、２台のプログラマブルロジックコントローラおよび１台のＨＭＩが繋がれた制御システムを示す図である。
【図２】１台のコンピュータに対して、１台のプログラマブルロジックコントローラが繋がれた制御システムを示す図である。
【図３】コンピュータのハードウェア構成と、プログラマブルロジックコントローラのハードウェア構成とを示す図である。
【図４】コンピュータ、プログラマブルロジックコントローラおよびＨＭＩの機能を示す図である。
【図５】コネクションマネージャのエージェントマネージャおよびエージェントを示す図である。
【図６】動作仕様定義を示す図である。
【図７】エージェント定義を示す図である。
【図８】グループ動作定義を示す図である。
【図９】コンピュータの通信ドライバ（ＵＳＢドライバ）、プログラマブルロジックコントローラの通信ドライバ（ＵＳＢドライバ）、エージェントマネージャおよびエージェントの動作を示す図である。
【図１０】エージェントマネージャが実行する処理のフローチャートである。
【図１１】エージェントが実行する処理のフローチャートである。
【図１２】ＰＰＰ接続処理のフローチャートである。
【図１３】診断処理のフローチャートである。
【発明を実施するための形態】
【００１９】
図１を参照して、本実施の形態に係る制御システム１０について説明する。制御システム１０は、プログラマブルロジックコントローラ（以下、コントローラと記載する）１００と、ＨＭＩ（Human Machine Interface）１０２と、コントローラ１０４と、コンピュータ２００とを備える。コンピュータ２００に繋がれる機器の数は３つに限られず、１台以上であればいくつでもよい。たとえば、図２に示すように、１台のコンピュータ２００に１台のコントローラ１００のみを繋ぐようにしてもよい。
【００２０】
図１に戻って、コントローラ１００は製造機械に繋がれ、コントローラ１００は、工作機械の制御装置としての機能を有する。ＨＭＩ１０２には、たとえばプログラマブル表示器が用いられる。コンピュータ２００は、ユーザが操作する操作端末として用いられる。
【００２１】
コントローラ１００、ＨＭＩ１０２およびコントローラ１０４は、コンピュータ２００の３つのＵＳＢポート２０１，２０２，２０３にそれぞれ繋がれる。コントローラ１０４は、モデム３０１，３０２を介してコンピュータ２００に繋がれる。
【００２２】
コンピュータ２００は、ＵＳＢポート２０１，２０２，２０３を介した通信機能のほか、イーサネット（登録商標）のためのポートならびにイーサネット（登録商標）を利用した通信機能を有する。コンピュータ２００は、たとえば市販されているパーソナルコンピュータである。コンピュータ２００は、ノートブックコンピュータ、デスクトップコンピュータ、携帯情報端末（ＰＤＡ：Personal  Digital  Assistant）など、任意の形式のコンピュータが用いられ得る。
【００２３】
コンピュータ２００には、コンピュータ２００に所望の機能を実行させるためのプログラムであるエンジニアリングツールがインストールされる。ユーザは、コンピュータ２００を操作することによって、コントローラ１００、ＨＭＩ１０２およびコントローラ１０４の設定を変更したり、確認したりすることなどが可能である。
【００２４】
コンピュータ２００の代わりに、もしくは加えて、プログラマブル表示器を用いてもよい。すなわち、操作端末としてプログラマブル表示器を用いてもよい。プログラマブル表示器は、たとえば、コントローラ１００、ＨＭＩ１０２およびコントローラ１０４の作動状態および設定内容などを表示する。プログラマブル表示器は、たとえばタッチパネルを有する。ユーザは、タッチパネルを操作することによって、コントローラ１００、ＨＭＩ１０２、コントローラ１０４の設定を変更したり、確認したりすることなどが可能である。
【００２５】
図３を参照して、コントローラ１００、ＨＭＩ１０２、コントローラ１０４、およびコンピュータ２００のハードウェア構成について説明する。
【００２６】
図３においては、コントローラ１００、ＨＭＩ１０２、コントローラ１０４のうち、コントローラ１００のみを示す。ＨＭＩ１０２およびコントローラ１０４の主要なハードウェア構成は、コントローラ１００のハードウェア構成と同じ、もしくは略同じであるため、ここではその詳細な説明は繰り返さない。
【００２７】
コントローラ１００（ＨＭＩ１０２、コントローラ１０４）は、演算装置４００、不揮発性記憶装置４１０、揮発性記憶装置４２０、通信装置４３０および通信ポート４４０を含む。
【００２８】
演算装置４００は、たとえばＣＰＵである。演算装置４００は、オペレーティングシステム（ＯＳ）を含む、種々のソフトウェア（プログラム）を実行する。不揮発性記憶装置４１０は、たとえばＲＯＭ（Read  Only  Memory）またはＨＤＤ（Hard  disk  drive）である。不揮発性記憶装置４１０は、演算装置４００が実行するソフトウェアの実行モジュールを格納する。
【００２９】
揮発性記憶装置４２０は、たとえばＲＡＭ（Random  Access  Memory）である。揮発性記憶装置４２０は、たとえば各々のソフトウェアが必要とするワーク領域などを保持するために用いられる。
【００３０】
通信装置４３０は、通信を制御するために用いられる。通信装置４３０は、コントローラ１００の外部の機器であってもよい。通信ポート４４０は、コントローラ１００の外部の機器とコントローラ１００との間の通信のためのポートである。通信ポート４４０は、ＵＳＢポート４５０およびイーサネットポート４６０を含む。その他の種類の通信ポートを設けてもよい。
【００３１】
コンピュータ２００は、演算装置５００、不揮発性記憶装置５１０、揮発性記憶装置５２０、通信装置５３０、表示装置５４０および通信ポート５５０を含む。演算装置５００、不揮発性記憶装置５１０、揮発性記憶装置５２０および通信装置５３０は、それぞれ、演算装置４００、不揮発性記憶装置４１０、揮発性記憶装置４２０および通信装置４３０と同じ、もしくは略同じである。したがって、ここではその詳細な説明は繰り返さない。
【００３２】
表示装置５４０は、種々の情報を表示する。表示装置５４０には一般的なモニターなどが用いられる。
【００３３】
通信ポート５５０は、コンピュータ２００の外部の機器とコンピュータ２００との間の通信のためのポートである。通信ポート５５０は、ＵＳＢポート２０１，２０２，２０３およびイーサネットポート５５２を含む。その他の種類の通信ポートを設けてもよい。
【００３４】
図４を参照して、コントローラ１００、ＨＭＩ１０２、コントローラ１０４、およびコンピュータ２００の機能について説明する。なお、以下に説明する機能は、ソフトウェアにより実現されるが、ハードウェアにより実現してもよく、ハードウェアとソフトウェアとの協働により実現してもよい。
【００３５】
コントローラ１００は、通信ドライバ１１０と、ＰＰＰサーバ１２０とを含む。通信ドライバ１１０は、たとえばＵＳＢドライバ、ＵＳＢシリアルドライバ、モデルドライバ等であって、ＵＳＢポート４５０を介した通信を実現するために、物理的な通信ポート等を制御する。ＰＰＰサーバ１２０は、ＰＰＰを利用してイーサネット（登録商標）上で通信を行なうためのサーバであって、ソフトウェアにより実現される。通信ドライバ１１０およびＰＰＰサーバ１２０には、周知の技術を利用すればよいため、ここではその詳細な説明は繰り返さない。
【００３６】
ＨＭＩ１０２は、通信ドライバ１１２と、シリアル通信機能１２２とを含む。通信ドライバ１１２は、たとえばＵＳＢドライバであって、ＵＳＢポート４５２を介した通信を実現するために、物理的な通信ポート等を制御する。シリアル通信機能１２２は、シリアル通信を行なうための機能である。通信ドライバ１１２およびシリアル通信機能１２２には、周知の技術を利用すればよいため、ここではその詳細な説明は繰り返さない。
【００３７】
コントローラ１０４は、通信ドライバ１１４と、ＰＰＰサーバ１２４とを含む。通信ドライバ１１４は、たとえばＵＳＢドライバであって、ＵＳＢポート４５４を介した通信を実現するために、物理的な通信ポート等を制御する。ＰＰＰサーバ１２４は、ＰＰＰを利用してイーサネット（登録商標）上で通信を行なうためのサーバである。コントローラ１０４がハードウェアであるのに対し、ＰＰＰサーバ１２４はソフトウェアにより実現される。通信ドライバ１１４およびＰＰＰサーバ１２４には、周知の技術を利用すればよいため、ここではその詳細な説明は繰り返さない。
【００３８】
コンピュータ２００は、通信ドライバ２１０と、通信アプリケーション２２０と、通信プロトコルスタック２３０と、コネクションマネージャ２４０とを含む。
【００３９】
通信ドライバ２１０は、たとえばＵＳＢドライバであって、ＵＳＢポート２０１，２０２，２０３を介した通信を実現するために、物理的な通信ポート等を制御する。
【００４０】
通信アプリケーション２２０は、実際に通信機能を利用するアプリケーションである。通信アプリケーション２２０の一例は、エンジニアリングツールである。
【００４１】
通信プロトコルスタック２３０は、アプリケーションに、イーサネット通信機能およびシリアル通信機能などの通信機能を提供する。通信プロトコルスタック２３０の一例は、ＰＰＰクライアントである。
【００４２】
コネクションマネージャ２４０は、本願発明の特徴的な機能である。コネクションマネージャ２４０は、接続先の機器（コントローラ１００、ＨＭＩ１０２またはコントローラ１０４）の情報に基いて、通信プロトコルの選択、起動および状態遷移などを制御する。コネクションマネージャ２４０の一例は、ＵＳＢポート２０１，２０２，２０３を介した通信のためのＵＳＢコネクションマネージャである。
【００４３】
本実施の形態において、ＵＳＢコネクションマネージャとしてのコネクションマネージャ２４０は、ＵＳＢポート２０１，２０２，２０３に機器が繋がれると、ＵＳＢポート２０１，２０２，２０３に繋がれた機器から、機器の接続形態（たとえばＰＰＰ直接接続、シリアル接続およびモデム接続等）を示す情報（たとえばデバイスディスクリプタ）を取得する。さらに、コネクションマネージャ２４０（ＵＳＢコネクションマネージャ）は、ＵＳＢポート２０１，２０２，２０３に繋がれた機器の接続形態に従って、機器とコンピュータ２００とを接続する。
【００４４】
なお、本実施の形態において「接続」とは、機器とコンピュータ２００との間で通信可能な状態にすることを意味する。「繋がれた」とは、たとえばＵＳＢケーブルによって、機器とコンピュータ２００とが物理的に繋がれたことを意味する。
【００４５】
図５を参照して、コネクションマネージャ２４０についてさらに説明する。コネクションマネージャ２４０は、エージェントマネージャ２５０と、エージェント２６０とを含む。
【００４６】
エージェントマネージャ２５０は、通信ドライバ２１０（例えばＵＳＢドライバ）、通信アプリケーション２２０（たとえばエンジニアリングツール）および通信プロトコルスタック２３０（例えばＰＰＰクライアント）から発せられたイベントに応答して、エージェント２６０を生成（起動）するとともに、エージェント２６０にイベントを通信する。
【００４７】
エージェントマネージャ２５０は、コンピュータ２００に接続された機器の種類、およびその機器の接続形態によって特定される動作条件に対応したエージェント２６０を生成する。たとえば、接続形態がＰＰＰ接続である場合、ＰＰＰ接続エージェントが生成される。接続形態がシリアル接続である場合、シリアル接続エージェントが生成される。接続形態がモデム接続である場合、モデム接続エージェントが生成される。
【００４８】
エージェント２６０は、動作条件に応じて動作および状態遷移を実行する。たとえば、接続形態がＰＰＰ接続である場合、コンピュータ２００と機器とがＰＰＰ接続される。接続形態がシリアル接続である場合、コンピュータ２００と機器とがシリアル接続される。接続形態がモデム接続である場合、コンピュータ２００と機器とがモデム接続される。
【００４９】
動作条件は、コンピュータ２００の不揮発性記憶装置５１０または揮発性記憶装置５２０に記憶された動作仕様定義２７０から特定される。図６に動作仕様定義２７０の一例を示す。動作仕様定義２７０は、図７に示すエージェント定義２７２および図８に示すグループ動作定義２７４から構成される。なお、動作仕様定義２７０はこれに限定されない。
【００５０】
たとえば、図８に示すグループ動作定義２７４において、「動作タイプ」が「接続」であり、「グループ名」が「ＰＬＣ」であると、「アクションタイプ」が「シングルトン」であると定義されている。その結果、図６のＰＰＰ接続の動作仕様定義において、「同一商品グループ」が「ＰＬＣ」である場合に「接続＝シングルトン」と定義される。その結果、１台のコンピュータ２００に対して接続されるプログラマブルロジックコントローラは１台のみに制限される。
【００５１】
一方、図８に示すグループ動作定義２７４において、「動作タイプ」が「接続」であり、「グループ名」が「ＨＭＩ」であると、「アクションタイプ」が「ＩＰ（Internet Protocol）アサイン」であると定義されている。その結果、図６のＰＰＰ接続の動作仕様定義において、「同一商品グループ」が「ＨＭＩ」である場合に「接続＝マルチ」と定義される。その結果、１台のコンピュータ２００に対して、複数のＨＭＩが接続され得る。
【００５２】
このように、本実施の形態においては、コンピュータ２００に繋がれる機器の種類に応じて異なる数の機器とコンピュータ２００とが接続される。具体的には、１台のプログラマブルロジックコントローラとコンピュータ２００とが接続され得る一方、プログラマブルロジックコントローラは異なる種類である複数のＨＭＩとコンピュータとが接続され得る。
【００５３】
図９を参照して、一例としてコンピュータ２００のＵＳＢポート２０１にコントローラ１００が繋がれた場合における、コンピュータ２００の通信ドライバ２１０（ＵＳＢドライバ）、コントローラ１００の通信ドライバ１１０（ＵＳＢドライバ）、エージェントマネージャ２５０およびエージェント２６０の動作について説明する。
【００５４】
コンピュータ２００のＵＳＢポート２０１にコントローラ１００が繋がれたことをコンピュータ２００の通信ドライバ２１０が検出すると、コンピュータ２００の通信ドライバ２１０は、コントローラ１００の通信ドライバ１１０に、コントローラ１００の接続形態を示す情報を含むディスクリプタを要求する。
【００５５】
コントローラ１００の通信ドライバ１１０は要求を受信すると、コンピュータ２００の通信ドライバ２１０にデバイスディスクリプタを送信する。ここでは、デバイスディスクリプタにより、コントローラ１００の接続形態がＵＳＢ＿ＰＰＰ直接接続（ＵＳＢＤｉｒｅｃｔ）であることが示されていると想定する。
【００５６】
コンピュータ２００の通信ドライバ２１０がデバイスディスクリプタを受取ると、コンピュータ２００の通信ドライバ２１０は、対応するＵＳＢドライバをロードする。その後、コンピュータ２００の通信ドライバ２１０は、コントローラ１００の通信ドライバ１１０から機種情報を読み出す。コントローラ１００の通信ドライバ１１０は、コンピュータ２００の通信ドライバ２１０に機種情報を返す。ここでは、コントローラ１００の機種情報が、「ＰＬＣ−Ｍｏｄｅｌ  Ａ」であると想定する。
【００５７】
コンピュータ２００の通信ドライバ２１０は、コントローラ１００の通信ドライバ１１０から機種情報を読み出した後、エージェントマネージャ２５０に接続を通知する。具体的には、コンピュータ２００の通信ドライバ２１０は、受取ったデバイスディスクリプタをエージェントマネージャ２５０に通知する。
【００５８】
エージェントマネージャ２５０は、デバイスディスクリプタを受取ると、デバイスディスクリプタと動作仕様定義２７０とを参照してエージェント２６０を特定する。ここでは、デバイスディスクリプタによってＵＳＢ＿ＰＰＰ直接接続が指示されていることから、ＵＳＢダイレクトエージェントが特定される。さらに、エージェントマネージャ２５０は、接続先の機種情報を取得する。
【００５９】
その後、エージェントマネージャ２５０は、エージェント２６０をロードするとともに、エージェント２６０に接続を通知する。具体的には、エージェントマネージャ２５０は、エージェント２６０に機種情報を通知する。その後、エージェント２６０は、状態遷移を開始する。その結果、最終的には、コンピュータ２００とコントローラ１００とがＵＳＢ通信回線上で、ＰＰＰ接続される。
【００６０】
図１０を参照して、エージェントマネージャ２５０によって実行される処理について説明する。
【００６１】
ステップ（以下、ステップをＳと略す）１０にて、通信ドライバ２１０からのケーブル接続イベントの受信を待つ。通信ドライバ２１０からケーブル接続イベントを受信すると（Ｓ１２にてＹＥＳ）、Ｓ１４にて、動作種別が確定される。動作種別は、たとえば、エージェントマネージャ２５０において予め定義されたり、接続先のディスクリプタ情報により確定される。その後、Ｓ１６にて、商品情報から動作グループが取得され、Ｓ１８にて、取得された動作グループに対応するエージェントがロードされる。
【００６２】
たとえば、ＵＳＢ接続により、「Ｏｍｒｏｎ  ＵＳＢ  ＤｉｒｅｃｔＬｉｎｅ」という情報がコントローラ１００から得られると、コンピュータ２００にインストールされたＷｉｎｄｏｗｓ（登録商標）が、この情報に対応したＵＳＢドライバをロードする。ＵＳＢドライバは、コントローラ１００と個別情報を交換することによって、商品情報を取得する。さらに、ＵＳＢドライバは、コネクションマネージャ２５０に接続を通知する。エージェントマネージャ２５０は、エージェント定義情報より該当するエージェントを確定し、ロードする。
【００６３】
最後に、Ｓ２０にて、ロードしたエージェントに対して初期イベントが通知される。
図１１を参照して、エージェント２６０によって実行される処理について説明する。以下では、一例として、ＰＰＰ接続エージェントによって実行される処理について説明する。その他のエージェントにより実行される処理は、ＰＰＰ接続エージェントによって実行される処理と同様であるため、ここではその詳細な説明は繰り返さない。
【００６４】
Ｓ１００にて、エージェント２６０は、イベントの受信を待つ。エージェントマネージャ２５０、通信ドライバ２１０、通信アプリケーション２２０または通信プロトコルスタック２３０からイベントを受信すると（Ｓ１０２にてＹＥＳ）、Ｓ１０４において、イベントと状態とにより、処理内容が決定される。
【００６５】
たとえば、ＰＰＰ接続が要求された場合は、Ｓ１１０にて、ＰＰＰ接続処理が実行される。ＵＳＢの規約では、ベンダＩＤとプロダクトＩＤとが送付され、このベンダＩＤとプロダクトＩＤとからＷｉｎｄｏｗｓ（登録商標）などのＯＳ（Operating System）が該当するドライバを見つけ、ロードする。本実施の形態においては、たとえば、ＵＳＢＤｉｒｅｃｔＬｉｎｅというドライバがロードされる。ＯＳのＵＳＢドライバは、ロードしたＵＳＢドライバに制御を渡し、以後、ロードされたドライバがコントローラ１００と接続処理を行なう。
【００６６】
接続処理自身はＵＳＢの規約で決められているものの、追加で必要な情報がコントローラ１００より取得することができる。本実施の形態においては、機種情報などが取得される。
【００６７】
取得した機種情報などにより、その接続先がどのグループなのかが判定できる。たとえば、プログラマブルロジックコントローラなのか、ＨＭＩなのか、あるいはＰＰＰをサポートしていないデバイスなのかなどの情報が取得される。たとえば、フィールドバス用の通信カプラは、通常はプログラマブルロジックコントローラのユニットとして装着され、プログラマブルロジックコントローラ経由で通信するが、カプラ自身にもＵＳＢポートがついており、このようなカプラにおいて、ＰＰＰなどの処理まではコスト、リソースの観点から実装できない場合、シリアルとして通信する必要がある。
【００６８】
ＰＬＣやＨＭＩのある機種ではＰＰＰをサポートしているので、ＰＰＰ実行用エージェントを起動し、さらにＰＬＣかＨＭＩかによって１台だけ接続させるのか複数台接続させるのかなどが選択可能である。ＰＰＰをサポートしていない機器であれば、別のエージェントを起動し、このエージェントに処理が任される。
【００６９】
ＰＰＰ接続処理が実行されると、Ｓ１１２にて、状態遷移が実行される。ＰＰＰ接続が切断された場合は、Ｓ１２０にて、コンピュータ２００と他の機器（たとえばコントローラ１００）とが再度ＰＰＰ接続される。診断要求があった場合には、Ｓ１３０にて、診断処理が実行される。モニタ要求があった場合には、Ｓ１４０にて、状態が通知される。
【００７０】
ケーブル（たとえばＵＳＢケーブル）が切断された場合は、Ｓ１５０にて、終了処理が実行される。したがって、たとえばＵＳＢポート２０１からコントローラ１００が物理的に外されると、コントローラ１００とコンピュータ２００との接続が終了される。
【００７１】
図１２を参照して、上述したＳ１１０において実行される、ＰＰＰ接続処理についてさらに説明する。
【００７２】
Ｓ２００にて、接続先のグループが判定される。接続先のグループがプログラマブルロジックコントローラである場合（Ｓ２００にてＰＬＣ）、Ｓ２０２にて、同一グループ内の別の機器が既に接続済みであるか否かが判定される。すなわち、別のプログラマブルロジックコントローラが既に接続済みであるか否かが判定される。
【００７３】
別のプログラマブルロジックコントローラが接続されていないと（Ｓ２０２にてＮＯ）、Ｓ２０４にて、たとえばユーザによって割り当てられ、予め設定された固定ＩＰアドレスを用いて、コンピュータ２００と、コンピュータ２００に繋がれたプログラマブルロジックコントローラ、すなわちコントローラ１００とを接続する。その後、Ｓ２０６にて、通信プロトコルスタック２３０（ＰＰＰクライアント）に接続要求が送られる。
【００７４】
一方、接続先のグループがＨＭＩである場合（Ｓ２００にてＨＭＩ）、１台のコンピュータ２００に対して複数のＨＭＩを接続することが可能である。１台のコンピュータ２００に対して複数のＨＭＩを接続するために、Ｓ２０８にて、各ＨＭＩに割り当てられるＩＰアドレスが生成される。その後、Ｓ２１０にて、通信プロトコルスタック２３０（ＰＰＰクライアント）に接続要求が送られる。
【００７５】
図１３を参照して、上述したＳ１３０において実行される、診断処理についてさらに説明する。
【００７６】
Ｓ３００にて、接続先のグループが判定される。接続先のグループがプログラマブルロジックコントローラである場合（Ｓ３００にてＰＬＣ）、Ｓ３０２にて、プログラマブルロジックコントローラが診断される。一方、接続先のグループがＨＭＩである場合（Ｓ３００にてＨＭＩ）、ＨＭＩが診断される。
【００７７】
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【００７８】
１００  コントローラ、１０２  ＨＭＩ、１０４  コントローラ、１１０，１１２，１１４  通信ドライバ、１２０，１２４  ＰＰＰサーバ、１２２  シリアル通信機能、２００  コンピュータ、２０１，２０２，２０３  ＵＳＢポート、２１０  通信ドライバ、２２０  通信アプリケーション、２３０  通信プロトコルスタック、２４０  コネクションマネージャ、２５０  エージェントマネージャ、２６０  エージェント、２７０  動作仕様定義、３０１，３０２  モデム、４００  演算装置、４１０  不揮発性記憶装置、４２０  揮発性記憶装置、４３０  通信装置、４４０  通信ポート、４５０，４５２，４５４  ＵＳＢポート、４６０  イーサネットポート、５００  演算装置、５１０  不揮発性記憶装置、５２０  揮発性記憶装置、５３０  通信装置、５４０  表示装置、５５０  通信ポート、５５２  イーサネットポート。
【図１】
0005786385.tif 000002
【図２】
0005786385.tif 000003
【図３】
0005786385.tif 000004
【図４】
0005786385.tif 000005
【図５】
0005786385.tif 000006
【図６】
0005786385.tif 000007
【図７】
0005786385.tif 000008
【図８】
0005786385.tif 000009
【図９】
0005786385.tif 000010
【図１０】
0005786385.tif 000011
【図１１】
0005786385.tif 000012
【図１２】
0005786385.tif 000013
【図１３】
0005786385.tif 000014