(57)【特許請求の範囲】
【請求項１】
予め定められた設置位置毎に予め定められた設定で処理を行う複数の計算機により一連の処理を実行する分散処理システムにおいて、
前記計算機は、自計算機が設置された位置を識別するための位置ＩＤと、自計算機の種別を特定する種別ＩＤと、自計算機に設定されているパラメータと、を記憶する記憶手段、および、制御手段、を有しており、
前記複数の計算機の内の一の計算機の制御手段は、
前記位置ＩＤが登録されたときに、登録された当該位置ＩＤを有するメッセージを他の計算機に送信する処理と、
前記他の計算機から前記メッセージに対する応答メッセージを受信する処理と、
前記応答メッセージを送信してきた前記他の計算機に対して、自計算機の種別ＩＤを有するメッセージを送信する処理と、
前記他の計算機から前記メッセージに対する応答メッセージを受信し、当該応答メッセージに含まれているパラメータを前記記憶手段に記憶して、当該パラメータによる処理を開始する処理と、
を行うこと、を特徴とする分散処理システム。
【請求項２】
請求項１に記載の分散処理システムであって、
前記他の計算機の制御手段は、
前記一の計算機より前記メッセージを受信した場合には、当該メッセージが有する位置ＩＤと、自計算機の記憶手段に記憶されている位置ＩＤと、を比較して、これらが一致する場合に、当該メッセージへの応答メッセージを送信する処理を行うこと、
を特徴とする分散処理システム。
【請求項３】
請求項１に記載の分散処理システムであって、
前記他の計算機の制御手段は、
前記一の計算機より前記メッセージを受信した場合には、当該メッセージが有する種別ＩＤと、自計算機の記憶手段に記憶されている種別ＩＤと、を比較して、これらが一致する場合に、自計算機の記憶手段に記憶されているパラメータを有する応答メッセージを作成して、当該メッセージへの応答メッセージとして送信する処理を行うこと、
を特徴とする分散処理システム。
【請求項４】
請求項１に記載の分散処理システムであって、
前記一の計算機の制御手段は、
前記位置ＩＤが登録されたときに、登録された位置ＩＤと、自計算機の記憶手段に記憶されている位置ＩＤと、を比較してこれらが一致しない場合に、前記位置ＩＤを有するメッセージを送信する処理を行うこと、
を特徴とする分散処理システム。
【請求項５】
請求項１に記載の分散処理システムであって、
前記分散処理システムは、予め定められた設置位置毎に予め定められた設定で処理を行う複数の計算機により一連の処理を実行する代わりに、予め定められた設置位置毎に予め定められたアプリケーションプログラムで処理を行う複数の計算機により一連の処理を実行するものであって、
前記計算機の記憶部には、自計算機に設定されているパラメータに代えて、自計算機に設定されているアプリケーションプログラムが記憶されており、
前記一の計算機の制御部は、前記他の計算機から前記メッセージに対する応答メッセージを受信し、当該応答メッセージに含まれているアプリケーションプログラムを前記記憶手段に記憶して、当該アプリケーションプログラムによる処理を開始する処理を行うこと、を特徴とする分散処理システム。
【請求項６】
請求項１乃至５の何れか一項に記載の分散処理システムであって、
前記計算機は、通信制御手段を備えており、
前記通信制御手段は、送信するメッセージに自計算機の記憶手段に記憶されている位置ＩＤを含めて送信する処理と、
他の計算機から送信されたメッセージに含まれている位置ＩＤと、自計算機の記憶手段に記憶されている位置ＩＤと、を比較して、これらが一致する場合に、当該メッセージを受信する処理と、
を行うこと、
を特徴とする分散処理システム。
【請求項７】
請求項１乃至５の何れか一項に記載の分散処理システムであって、
前記計算機は、ポートを介してインテリジェントデバイスに接続されており、
前記インテリジェントデバイスは、
複数のポートと、
各々のポート毎に、当該ポートに接続されている前記計算機の位置ＩＤを記憶する記憶手段と、
通信制御手段と、を備えており、
前記通信制御手段は、各々のポートに接続された計算機から送信するメッセージに当該ポートに接続されている前記計算機の位置ＩＤを含めて送信する処理と、
他のインテリジェントデバイスから送信されたメッセージに含まれている位置ＩＤと、自インテリジェントデバイスの記憶手段に記憶されている位置ＩＤと、を比較して、これらが一致する場合に、当該メッセージを受信し、当該位置ＩＤに対応するポートに接続されている計算機に転送する処理と、
を行うこと、
を特徴とする分散処理システム。
【請求項８】
請求項１乃至５の何れか一項に記載の分散処理システムであって、
前記計算機は、Ｉ／Ｏモジュールを介してインテリジェントデバイスに接続されており、
前記インテリジェントデバイスは、
複数のＩ／Ｏモジュールと、
各々のＩ／Ｏモジュール毎に、当該Ｉ／Ｏモジュールに接続されている前記計算機の位置ＩＤを記憶する記憶手段と、
通信制御手段と、を備えており、
前記通信制御手段は、各々のＩ／Ｏモジュールに接続された計算機から送信するメッセージに当該Ｉ／Ｏモジュールに接続されている前記計算機の位置ＩＤを含めて送信する処理と、
他のインテリジェントデバイスから送信されたメッセージに含まれている位置ＩＤと、自インテリジェントデバイスの記憶手段に記憶されている位置ＩＤと、を比較して、これらが一致する場合に、当該メッセージを受信し、当該位置ＩＤに対応するＩ／Ｏモジュールに接続されている計算機に転送する処理と、
を行うこと、
を特徴とする分散処理システム。
【請求項９】
予め定められた設置位置毎に予め定められた設定で処理を行う複数の計算機により一連の処理を実行する分散処理システムにおける協調方法において、
前記計算機は、自計算機が設置された位置を識別するための位置ＩＤと、自計算機の種別を特定する種別ＩＤと、自計算機に設定されているパラメータと、を記憶する記憶手段、および、制御手段、を有しており、
前記複数の計算機の内の一の計算機の制御手段が、
前記位置ＩＤが登録されたときに、登録された当該位置ＩＤを有するメッセージを他の計算機に送信する処理過程と、
前記他の計算機から前記メッセージに対する応答メッセージを受信する処理過程と、
前記応答メッセージを送信してきた前記他の計算機に対して、自計算機の種別ＩＤを有するメッセージを送信する処理過程と、
前記他の計算機から前記メッセージに対する応答メッセージを受信し、当該応答メッセージに含まれているパラメータを前記記憶手段に記憶して、当該パラメータによる処理を開始する処理過程と、
を有すること、を特徴とする協調方法。
【請求項１０】
請求項９に記載の協調方法であって、
前記他の計算機の制御手段が、前記一の計算機よりメッセージを受信した場合には、当該メッセージが有する位置ＩＤと、自計算機の記憶手段に記憶されている位置ＩＤと、を比較して、これらが一致する場合に、当該メッセージへの応答メッセージを送信する処理を行う
処理過程を有すること、を特徴とする協調方法。
【請求項１１】
請求項９に記載の協調方法であって、
前記他の計算機の制御手段が、
前記一の計算機よりメッセージを受信した場合には、当該メッセージが有する種別ＩＤと、自計算機の記憶手段に記憶されている種別ＩＤと、を比較して、これらが一致する場合に、自計算機の記憶手段に記憶されているパラメータを有する応答メッセージを作成して、当該メッセージへの応答メッセージとして送信する処理を行う
処理過程を有すること、を特徴とする協調方法。
【請求項１２】
請求項９に記載の協調方法であって、
前記一の計算機の制御手段が、
前記位置ＩＤが登録されたときに、登録された位置ＩＤと、自計算機の記憶手段に記憶されている位置ＩＤと、を比較してこれらが一致しない場合に、前記位置ＩＤを有するメッセージを送信する処理を行う
処理過程を有すること、を特徴とする協調方法。
【請求項１３】
請求項９に記載の協調方法であって、
前記分散処理システムは、予め定められた設置位置毎に予め定められた設定で処理を行う複数の計算機により一連の処理を実行する代わりに、予め定められた設置位置毎に予め定められたアプリケーションプログラムで処理を行う複数の計算機により一連の処理を実行するものであって、
前記計算機の記憶部には、自計算機に設定されているパラメータに代えて、自計算機に設定されているアプリケーションプログラムが記憶されており、
前記一の計算機の制御部は、前記他の計算機から前記メッセージに対する応答メッセージを受信し、当該応答メッセージに含まれているアプリケーションプログラムを前記記憶手段に記憶して、当該アプリケーションプログラムによる処理を開始する処理を行う
処理過程を有すること、を特徴とする協調方法。
【請求項１４】
請求項９乃至１３の何れか一項に記載の協調方法であって、
前記計算機は、通信制御手段を備えており、
前記通信制御手段が、送信するメッセージに自計算機の記憶手段に記憶されている位置ＩＤを含めて送信する処理過程と、
前記通信制御手段が、他の計算機から送信されたメッセージに含まれている位置ＩＤと、自計算機の記憶手段に記憶されている位置ＩＤと、を比較して、これらが一致する場合に、当該メッセージを受信する処理過程と、
を有すること、を特徴とする協調方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数の計算機により一連の処理を実行する分散処理システムに関し、特に、計算機の設置位置によって、計算機が実行する処理が異なる分散処理システムに関する。
【０００２】
【従来の技術】
ネットワークに接続された複数の計算機により一連の処理を分散して処理する分散処理システムにおいては、各計算機で実行されるプログラムは、システム内の状況に応じて互いに連携をとって処理を実行する。このような計算機の分散処理の方法は、例えば、特開平５−３４７６２６号公報（特公平７−２２２９０号公報）に開示されている。また、このような分散処理システムにおける高信頼化のための計算機の多重化方式は、例えば、特開平９−２１２２０９号公報に開示されている。
【０００３】
一方、生産現場においてラインを制御する制御システムなどのように制御対象が存在する制御システムでは、制御装置の置かれる場所によって、制御対象や処理内容が変化する。
【０００４】
【発明が解決しようとする課題】
従って、このような制御システムに対して、従来の分散処理システムを適用しようとした場合、従来の分散処理システムでは、各計算機は、処理内容と計算機の設置場所を関係づけて管理していないので、計算機の設置場所が変わり、当該計算機の制御対象が変わった場合には、プログラマや生産現場の作業員などがプログラムの変更や設定値の変更などを行い、計算機の処理内容を変更する必要があった。
【０００５】
特に、最近は、マイクロプロセッサ技術の進歩による計算機のダウンサイジング化により、計算機を内蔵した持ち運び可能な小型の装置（インテリジェントデバイス）が普及し、処理が大型の計算機から多数のインテリジェントデバイスに分散するとともに、インテリジェントデバイス（計算機）の移動が頻繁に発生するようになってきている。その結果、インテリジェントデバイスの移動に伴うプログラムや設定値の変更により、プログラマや生産現場の作業員の負担が急速に増大してきている。
【０００６】
本発明の目的は、インテリジェントデバイス等の設置場所の移動等、システム構成を変更する際のプログラマや現場の作業者等の負担を削減することができる分散処理システム及びその協調方法を提供することにある。
【０００７】
【課題を解決するための手段】
本発明に係る第１の分散処理システムは、複数の計算機により一連の処理を実行する分散処理システムであって、第１の計算機は、計算機の設置場所に関する識別子を含むメッセージを送信する手段を備え、第２の計算機は、前記識別子に基づいて、メッセージを選択受信する手段を備えることを特徴とする。なお、ここでの計算機には、例えば、制御機器等を制御している計算機や、制御機器と計算機により構成され、所定の処理を行うインテリジェントデバイス等が該当する。
【０００８】
本発明に係る第１の分散処理システムの協調方法は、複数の計算機により一連の処理を実行する分散処理システムの協調方法であって、第１の計算機が、計算機の設置場所に関する識別子を含むメッセージを送信し、第２の計算機が、前記識別子に基づいて、メッセージを選択受信することを特徴とする。
【０００９】
以上のシステム及び方法において、前記メッセージは、更に、前記計算機が制御する装置に関する識別子を含むようにしてもよい。
【００１０】
本発明に係る第２の分散処理システムは、複数の計算機により一連の処理を実行する分散処理システムにおいて、前記複数の計算機の内の少なくとも一つの計算機は、設置されている場所が変わったときに、例えば、周囲に設置されている、他の計算機を探し出す手段と、当該他の計算機から、必要なデータを読み出す手段とを備え、読み出されたデータに基づいて、設定を変更して処理を実行することを特徴とする。
【００１１】
この場合において、前記他の計算機を探し出す手段は、設置された場所を表す位置情報を、例えば、ネットワークを介して、送信する手段を備え、当該位置情報を受信する計算機は、受信した位置情報と自計算機が設置された場所の位置情報とを比較する手段と、位置情報が一致した場合に応答を送信する手段とを備えるようにしてもよい。
【００１２】
また、本発明に係るインテリジェントデバイスは、複数のインテリジェントデバイスにより一連の処理を実行する分散処理システムにおけるインテリジェントデバイスであって、設置されている場所が変わったときに、例えば、周囲に設置されている、他のインテリジェントデバイスを探し出す手段と、当該他のインテリジェントデバイスから、必要なデータを読み出す手段とを備え、読み出されたデータに基づいて、設定を変更して処理を実行することを特徴とする。
【００１３】
この場合において、過去及び現在の設置場所に関する位置情報を管理する位置情報管理手段と、当該位置情報管理手段を参照して、設置されている場所が変わった否かを判断する手段とを更に備えるようにしてもよい。
【００１４】
また、本発明に係る第２の分散処理システムの協調方法は、複数の計算機により一連の処理を実行する分散処理システムの協調方法であって、計算機の設置されている場所が変わったときに、例えば、周囲に設置されている、他の計算機を探し出すステップと、当該他の計算機から、必要なデータを読み出すステップと、読み出されたデータに基づいて、設置場所が変わった計算機の設定を変更して処理を実行するステップとを備えることを特徴とする。なお、必要なデータには、例えば、制御機器の設定パラメータや、計算機の通信設定や、計算機が実行するプログラムなどが該当する。
【００１５】
この場合において、前記他の計算機を探し出すステップは、計算機が設置された場所を表す位置情報を登録するステップと、登録された位置情報を、例えば、ネットワークを介して、他の計算機に送信するステップと、送信された位置情報を他の計算機が受信するステップと、受信した位置情報と自計算機が設置された場所の位置情報とを比較するステップと、位置情報が一致した場合に、応答を送信するステップと、最初に位置情報を送信した計算機がこの応答を受信するステップとを備えるようにしてもよい。更に、前記位置情報が一致した場合、送信する応答に、自機が制御する装置に関する情報を付与するようにしてもよい。
【００１６】
また、第２の協調方法において、計算機が現在設置されている場所に関する情報と過去に設置されていた場所に関する位置情報を管理し、過去と現在の場所に関する情報を比較することにより、設置場所が移動したか否かを判断するようにしてもよい。また、探し出した計算機が制御する制御機器の種類を確認するステップを更に有するようにしてもよい。
【００１７】
本発明に係る第２のインテリジェントデバイスは、複数の装置が接続され、各装置から受け取ったデータを送信するインテリジェントデバイスであって、各装置毎に位置コードを登録する手段と、各装置から受け取ったデータを格納する格納手段と、登録された位置コードが同じ装置から受け取ったデータを、前記格納手段の同じ領域に書き込む手段と、前記格納手段に格納されたデータを、例えば、周期的にネットワークに、送信する手段とを備えることを特徴とする。
【００１８】
また、本発明に係る第３のインテリジェントデバイスは、計算機と、装置のインプット・アウトプットデータのインターフェースとなるＩ／Ｏモジュールにより構成されるインテリジェントデバイスであって、前記Ｉ／Ｏモジュールは、位置コードを設定する手段と、設定された位置コードを付与して、前記装置からのデータを前記計算機に送信する手段とを備え、前記計算機は、各Ｉ／Ｏモジュールから受信したデータを格納する格納手段と、同じ位置コードが付与されているデータを、前記格納手段の同じ領域に上書きする手段と、前記格納手段に格納されたデータを（例えば、ネットワークに）送信する手段とを備えることを特徴とする。
【００１９】
この場合において、前記計算機は、前記位置コードと、前記格納手段のデータを格納する領域との関係を管理するテーブルを更に有し、当該テーブルに基づいて、Ｉ／Ｏモジュールから受け取ったデータを格納する領域を判断するようにしてもよい。
【００２０】
【発明の実施の形態】
以下、本発明の実施の形態について、図面を参照しつつ、詳細に説明する。
【００２１】
図１は、本発明を適用する分散処理システムの概要を示す図である。同図に示すように、本システムは、ネットワーク１００に接続された複数の計算機１０１、１０２、１０３等から構成される。本システムでは、各計算機が、ネットワーク１００を介してメッセージを授受することによって全体として処理を行う。各計算機は、演算を行うマイクロプロセッサおよびデータを蓄積するための記憶装置を内蔵する。なお、ここでは、ネットワークとしてバス型のネットワークを利用した場合を示したが、これに限らず、任意の形態のネットワークでよく、また、無線などの通信手段を用いてメッセージを授受するようにしてもよい。
【００２２】
≪第１の実施形態≫
次に、本発明による第１の分散処理システムについて説明する。
【００２３】
図２は、本システムを構成するインテリジェントデバイス２００を説明する図である。本システムでは、複数のインテリジェントデバイス２００がネットワーク１００を介して接続され、所定の処理を行う。
【００２４】
図２（ａ）は、インテリジェントデバイス２００の内部構成を示す図である。同図に示すように、インテリジェントデバイス２００は、計算機２１０と制御機器２２０とを備える。すなわち、インテリジェントデバイス２００とは、演算機能とＩ／Ｏ機能の両方を備えたデバイスであり、例えば、光センサ、アラーム装置、分岐タップ、バーコードリーダ、インバータ、インテリジェントブロックＩ／Ｏ等の種類がある。
【００２５】
図２（ａ）に示すように、インテリジェントデバイス２００内の計算機２１０は、トランシーバ２０１と、通信プロセッサ２０２と、ＲＯＭ（不揮発性メモリ）２０３と、ＲＡＭ（揮発性メモリ）２０４と、マイクロプロセッサ２０５と、外部Ｉ／Ｏ入出力インターフェース２０６とを備える。
【００２６】
計算機２１０は、ネットワーク１００よりトランシーバ２０１を介してメッセージを受信する。受信したメッセージは、通信プロセッサ２０２にて処理される。通信プロセッサ２０２は、所定の通信プロトコルを処理する機能を持ち、受信したメッセージの内容を判断する。
【００２７】
ＲＯＭ２０３は、制御機器２２０の制御を行うためにマイクロプロセッサ２０５が実行するプログラムや、各種処理に必要なデータ等を格納する不揮発性の記憶装置である。ＲＡＭ２０４は、マイクロプロセッサ２０５がプログラムを実行するのに一時的に使用するデータ等を記憶する揮発性の記憶装置である。
外部Ｉ／Ｏ入出力インターフェース２０６は、外部のＩ／Ｏ（インプット／アウトプット）とのデータのやり取りを制御するものである。マイクロプロセッサ２０５は、外部Ｉ／Ｏ入出力インターフェース２０６を介して、計算機２２０に接続された制御機器２２０との間で制御データの受け渡しを行う。
【００２８】
図２（ｂ）は、インテリジェントデバイス２００の具体例として光センサ２５０を示す図である。同図（ｂ）に示す光センサ２５０においては、制御機器２２０が、光センサ２５０の前を物体が通り過ぎたのを赤外線などにより検知し、計算機２１０が、制御機器２２０の制御およびネットワーク１００を介した他のインテリジェントデバイスとの通信を行う。
【００２９】
光センサ２５０は、電源が投入されるとマイクロプロセッサ２０５がプログラムの実行を開始し、物体の検出処理を行う。そして、制御機器２２０にて物体を検知すると、物体を検知したことを示すデータが外部Ｉ／Ｏ入出力インターフェース２０６を介してマイクロプロセッサ２０５に渡される。マイクロプロセッサ２０５は、制御機器２２０から物体を検知したことを示すデータを受け取ると、通信プロセッサ２０２とトランシーバ２０１を介してネットワーク１００に物体を検知したことを知らせるメッセージを送信する。
【００３０】
インテリジェントデバイス２００は、自分が設置されている場所を示す位置情報を管理する位置情報管理テーブルを備えている。図３（ａ）は、各インテリジェントデバイスが管理する位置情報管理テーブル３００の構成例を示す図である。同図に示すように、位置情報管理テーブル３００は、「過去の位置」３０１及び「現在の位置」３０２のそれぞれについて、「位置名称」欄３０３及び「位置ＩＤ」欄３０４を備えている。位置名称欄３０３には、過去又は現在のインテリジェントデバイスの設置位置の位置名称が登録される。位置ＩＤ欄３０４には、インテリジェントデバイスが設置される場所に対して予め決められている位置ＩＤが格納される。このテーブルにより、各インテリジェントデバイスは、現在の設置場所を知ることができる。また、過去の位置の位置ＩＤと現在の位置の位置ＩＤとを比較することにより、インテリジェントデバイスが移動したか否かの判断が行える。
【００３１】
また、各インテリジェントデバイス２００は、内蔵した制御機器２２０を制御するのに必要なパラメータ情報を管理する制御機器管理テーブルを備える。図３（ｂ）は、制御機器管理テーブル３５０の構成例を示す図である。同図に示すように、制御機器管理テーブル３５０は、制御機器の種類を示す「制御機器種別」３５１と制御機器を制御するための「パラメータ」３５２により構成される。制御機器種別３５１は、制御機器の「名称」３５３と制御機器の種類を示す「ＩＤ」３５４より構成され、パラメータ３５２は、パラメータの「名称」３５３とパラメータの「値」３５４により構成される。図３（ｂ）の例の場合、制御機器種別３５１は、「光センサ」であり、「ＩＤ／値」欄３５４には、光センサを示すＩＤ（＝１）が格納されている。また、パラメータ３５２は、光センサの場合には、「反応距離」（＝５０ｃｍ）と「検査条件」（＝１）の２つが存在する。「反応距離」は、センサが反応する最大距離の値である。「検査条件」は、センサの前に通常物体があるかないか、つまり新しい物体が現れたのを検知したときにデータを送信するのか、それとも、センサの前に存在している物体がなくなったのを検知したときにデータを送信するのかを設定するためのものである。例えば、前者の場合には１、後者の場合には０を設定する。
【００３２】
図４は、第１の分散処理システムの具体的な適用例を示す図である。同図に示すように、本システムは、ネットワーク４５０で接続された光センサ４０２、４０３、４０５、４１１と、アラーム装置４０６、４０７、４０８とから構成されている。これらの光センサ及びアラーム装置は、図２（ａ）に示したようなインテリジェントデバイスであり、ネットワーク４５０を介して通信を行う。
【００３３】
図４の例では、コンベア４００上を加工品４２０が流れており、コンベア４００の横に設置された光センサ４０２、４０３、４０５等は、加工品４２０が正常に流れているか、すなわち、途中で引っかかっていないかをチェックしている。同図の加工品４２１は、コンベアに引っかかった状態を示している。
【００３４】
コンベア４００は、コンベアＢ区間４３１、コンベアＣ区間４３２、コンベアＤ区間４３３の３つの区間に分けられている。そして、各区間には、予め決められた位置ＩＤが、それぞれ割り当てられている。
【００３５】
コンベアＢ区間４３１は、加工品が引っかかりやすい曲線部分を有しており、特に重点的に監視しなければらない場所であるため、光センサが壊れても大丈夫なように２つの光センサ４０２と光センサ４０３を使って同じ場所を監視している。コンベアＢ区間４３１には、アラーム装置４０６も設置されている。アラーム装置４０６は、加工品がコンベアＢ区間４３１において引っかかったことが検知されると、そのことをアラーム音とランプ点灯により作業員等に知らせる。
【００３６】
コンベアＣ区間４３２は、光センサ４１１が監視しており、加工品がコンベアＣ区間４３２において引っかかったことが検知されると、アラーム装置４０７が、そのことを作業員等に通知する。また、コンベアＤ区間４３３は、光センサ４０５が監視しており、加工品がコンベアＤ区間４３３において引っかかったことが検知されると、アラーム装置４０８が、そのことを作業員等に知らせる。
【００３７】
ここで、図４に示したようなシステムを運用していて、次のような状況になったことを考える。すなわち、光センサ４１１が監視しているコンベアＣ区間では、過去に加工品が引っかかったことがない。一方、光センサ４０２と光センサ４０３が監視しているコンベアＢ区間４３１では、加工品が頻繁に引っかかり、２つの光センサで監視しているにも関わらず、光センサのトラブルにより加工品が引っかかったのを検出できない場合があった。そこで、過去に加工品が引っかかったことのないコンベアＣ区間４３２に設置された光センサ４１１を、トラブルが頻発しているコンベアＢ区間４３１に移動して、コンベアＢ区間４３１の監視を強化する場合を考える。
【００３８】
図５は、コンベアＢ区間４３１に置かれた光センサ及びアラーム装置間でのメッセージの授受の様子を表す図である。同図に示すように、各光センサがネットワーク上に流すメッセージ５２０は、内容コード５２１と、位置ＩＤ５２２と、制御機器種別５２３と、データ５２４とから構成される。但し、データ５２４については、メッセージの種類によってない場合もある。
【００３９】
内容コード５２１は、メッセージの種類を表すデータである。位置ＩＤ５２２は、メッセージを送信したインテリジェントデバイスの設置場所（この場合、コンベアＢ区間）を表すデータである。制御機器種別５２３は、メッセージを送信したインテリジェントデバイスの制御機器の種別（この場合は、光センサ）を表すデータである。データ５２４は、メッセージを送信したインテリジェントデバイスの制御機器が検出したデータ等を表す。
【００４０】
まず、当初からコンベアＢ区間４３２にあった光センサ５０２、５０３とアラーム装置５０６の動作について説明する。光センサ５０２と光センサ５０３は、共に、コンベアＢ区間４３１を監視しており、正常時には、正常な制御データであることを表す内容コード５２１と、位置情報管理テーブル３００に登録された現在の位置ＩＤ（この場合、コンベアＢ区間を表わす位置ＩＤ）５２２と、制御機器管理テーブル３５０に登録された制御機器種別ＩＤ５２３をデータ５２４に付与してネットワークにブロードキャストする。
【００４１】
また、光センサ５０２と光センサ５０３は、加工品が一定時間以上、光センサの前に存在するのを検知すると、加工品が引っかかったと認識し、異常発生を知らせるメッセージ（以下、異常通知メッセージという）であることを示す内容コード５２１と、コンベアＢ区間を表わす位置ＩＤ５２２と、光センサであることを表わす制御機器種別５２３と、データ５２４とからなるメッセージをネットワーク５００にブロードキャストする。
【００４２】
アラーム装置５０６は、ネットワーク５００にブロードキャストされたメッセージの中から、コンベアＢ区間に設置された光センサが送信する異常通知メッセージをネットワーク５００より選択受信し、該当するメッセージを受信するとアラームを発する。これにより、アラーム装置５０６は、光センサ５０２と光センサ５０３より送信された異常通知メッセージを受信し、アラームを発することができる。
【００４３】
次に、コンベアＣ区間４３２より移動されてきた光センサ５１１の動作について説明する。光センサ５１１は、コンベアＣ区間４３２よりコンベアＢ区間４３１に設置位置が変更されると、まず、コンベア区間Ｂ４３１を表す位置ＩＤが登録され、位置情報管理テーブル３００に保持される。
【００４４】
図６は、光センサ等のインテリジェントデバイスへ位置情報を登録する方法を説明する図である。インテリジェントデバイス７５１へ位置情報を登録するには、様々な方法が考えられる。
【００４５】
まず、インテリジェントデバイス７５１に接続された外部入力装置７７０を使って登録することが考えられる。この場合、作業員が、インテリジェントデバイス７５１にハンディーターミナルやパーソナルコンピュータなどの外部入力装置７７０を接続して位置情報を登録する。また、別の方法として、インテリジェントデバイス７５１が通信を開始する前に、外部入力装置７７０から自動的に位置情報を取得するようにしてもよい。この場合、外部入力装置７７０は、例えば、衛星情報の受信装置であり、外部入力装置７７０にて受信した緯度と経度の値をインテリジェントデバイス７５１が読み込む。インテリジェントデバイス７５１は、読み込んだ緯度と経度の組、例えば、（５０度５５分、３４度３０分）といった値を外部入力装置７７０から受信して、これに基づいて、適当な位置ＩＤ（例えば、５０５５３４３０）及び位置名称を生成し、位置情報管理テーブル３００に登録する。また、ネットワーク７５０を介して、ワークステーションやパーソナルコンピュータのような入力装置を備えた計算機７６０によって位置情報を登録するようにしてもよい。
【００４６】
以上のようにして、位置情報が登録された光センサ５１１は、コンベアＢ区間４３１において監視処理を開始する。そして、加工品が引っかかったのを認識すると、光センサ５０２及び５０３と同様に、異常発生メッセージであることを示す内容コード５２１と、コンベアＢ区間を表わす位置ＩＤ５２２と、光センサであることを表わす制御機器種別５２３と、データ５２４とからなるメッセージをネットワークにブロードキャストする。アラーム装置５０６は、光センサ５１１より送信された異常通知メッセージを受信すると、アラームを発する。アラーム装置５０６は、位置ＩＤ５２２をもとにメッセージの選択受信を行っているため、他の区間に接続された光センサが送信した異常通知メッセージを受信しても、誤ってアラームは発することはない。
【００４７】
また、アラーム装置５０６は、メッセージに含まれる、内容コード５２１と、位置ＩＤ５２２と、制御機器種別５２３とに基づいて処理を実行しており、メッセージを送信した光センサがどれであるかを特に意識していない。このため、新しくコンベアＢ区間４３１を監視する光センサが追加されてもアラーム装置５０６には影響がなく、アラーム装置５０６の設定変更やプログラムの追加・変更を行う必要がない。同様に、光センサ５０２と光センサ５０３に関しても変更は必要ない。このように、既存の設備の変更無しに光センサ５１１をコンベアＢ区間４３１に移動することができ、異常検出を強化することが可能になる。
【００４８】
以上説明したように、本システムにおいては、ネットワークに接続されたインテリジェントデバイスが、位置ＩＤを含むメッセージをネットワークにブロードキャストし、ネットワークに接続された他のインテリジェントデバイスが位置ＩＤをもとにメッセージを選択受信することにより、デバイスの移動や追加によりシステム構成が変わっても、このデバイスの位置ＩＤの設定を変更するのみで容易にシステム構成を変更できる。これにより、従来多くの設定変更やプログラムの変更を伴っていたデバイスの追加・変更によるシステム構成の変更を簡単なパラメータ変更のみで行うことができ、プログラマやシステムエンジニアの負担が大幅に軽減でき、作業時間も短縮できる。
【００４９】
≪第２の実施形態≫
次に、本発明による第２の分散処理システムについて説明する。
【００５０】
第１のシステムでは、インテリジェントデバイスの位置ＩＤを変更するだけで、簡単にデバイスの追加・変更が行え、システム構成の変更が容易に行えるシステムを示した。第２のシステムでは、インテリジェントデバイスが新たに設置された場合に、設置された場所の周囲のインテリジェントデバイスと協調をとり、他のインテリジェントデバイスと必要なパラメータ情報を共有することにより、作業者による設定変更なしに周囲のインテリジェントデバイスと同じ制御を行うシステムについて説明する。
【００５１】
図７は、本発明による第２の分散処理システムの構成例を示す図である。同図に示すように、本システムでは、光センサ６０１、光センサ６０２、加工機械６０３、光センサ６０４がネットワーク６００に接続され、ネットワーク６００を介して通信を行っている。光センサ６０１、光センサ６０２、加工機械６０３、光センサ６０４は、それぞれ、図２（ａ）に示したものと同様のインテリジェントデバイスである。また、各インテリジェントデバイスは、図３に示したような位置情報管理テーブル３００および制御機器管理テーブル３５０を管理している。
【００５２】
光センサ６０１、光センサ６０２、及び光センサ６０４は、コンベア６２０上を流れる加工品６３０を監視している。なお、コンベア６２０は、コンベアＢ区間６１１と、コンベアＣ区間６１２と、コンベアＤ区間６１３の３つの区間に分けられており、光センサ６０１及び光センサ６０２は、コンベアＢ区間を監視しており、光センサ６０４は、コンベアＤ区間を監視している。
【００５３】
加工機械６０３は、コンベア６２０上を流れてきた加工品６３０を加工する。加工機械６０３により加工された加工品６３０は、加工される前後において大きさやサイズが異なるようになる。このため、コンベアＢ区間６１１とコンベアＤ区間６１３におけるコンベアの幅は、異なっている。
【００５４】
このようなシステムにおいて、コンベアＤ区間６１３の監視強化のため、コンベアＢ区間６１１に設置してあった光センサ６０２をコンベアＤ区間６１３に移動する場合について考える。
【００５５】
図７において、光センサ６０２は、コンベアＢ区間６１１において処理を行っていたときには、コンベアＢ区間６１１でのコンベアの幅（例えば、５０ｃｍ）にあわせて、５０ｃｍ先までの物体の検知を行っている。すなわち、制御機器管理テーブル３５０の反応距離パラメータには「５０」が設定されている。一方、光センサ６０２の新しい設置場所となるコンベアＤ区間６１３では、コンベアの幅は狭く２０ｃｍである。このため、制御機器管理テーブル３５０の反応距離パラメータの値が「５０」のままだと、コンベアの横を作業員が通り過ぎた際に、作業員を加工品６３０と誤認識してしまう可能性がある。そのため、物体を検知する距離を２０ｃｍに設定しなおさなければならない。すなわち、制御機器管理テーブル３５０の反応距離パラメータの値を、「５０」から「２０」に変更する必要がある。本システムでは、このパラメータの変更を、インテリジェントデバイス間の協調で行う。すなわち、同じコンベアＤ区間６１３に設置されている光センサを探し、それからコンベアＤ区間６１３に適したパラメータの値を読み出し、それを使って自分のパラメータの値を更新する。
【００５６】
図８は、同じ場所に設置されている他のインテリジェントデバイスを探す方法を説明する図である。まず、インテリジェントデバイス７０１、インテリジェントデバイス７０３、インテリジェントデバイス７０４は、ネットワーク７００に接続され、処理を実行しているとする。そして、このシステムにおいて、インテリジェントデバイス７０２が新たに追加された場合（又は、既存のインテリジェントデバイス７０２の設置場所が変更された場合）を考える。その場合、まず、インテリジェントデバイス７０２の位置情報管理テーブルに対して、新しい位置ＩＤの登録が行われる。この新しい位置ＩＤの登録は、例えば、第１のシステムについて説明した方法と同様の方法で行われる。
【００５７】
インテリジェントデバイス７０２は、新しい位置ＩＤが登録されると、同じ場所にあるインテリジェントデバイスを探すためのメッセージ（以下、検索メッセージという）７１０をネットワーク７００にブロードキャストする。検索メッセージ７１０は、検索メッセージであることを示す内容コード７１１と、各インテリジェントデバイスにユニーク（一意的）に設定されたノード番号（インテリジェントデバイス７０２の場合、「２」）７１２と、位置情報管理テーブルに登録されたインテリジェントデバイスの設置位置を表す位置ＩＤ７１３により構成される。
【００５８】
ネットワーク７００に接続された各インテリジェントデバイスは、検索メッセージ７１０を受信すると、メッセージ内の位置ＩＤ７１２と自己の位置情報管理テーブル３００に登録された位置ＩＤとを比較する。その結果、位置ＩＤが一致する場合には、応答メッセージを返信する。応答メッセージは、検索メッセージ７１０と同じフォーマットである。
【００５９】
図８に示したシステムにおいて、インテリジェントデバイス７０４は、インテリジェントデバイス７０２と同じ場所に設置されている、すなわち、インテリジェントデバイス７０４の位置情報管理テーブル３００には、インテリジェントデバイス７０２と同じ位置ＩＤが登録されているとする。
【００６０】
この場合、インテリジェントデバイス７０４は、検索メッセージ７１０を受信すると、応答メッセージであることを表す内容コード７１１と、送信元ノード番号７１２として自己のノード番号（＝「１１」）と、検索メッセージと同じ位置ＩＤによりメッセージを組み立ててブロードキャストする。インテリジェントデバイス７０２は、この応答メッセージを受信することにより、同じ場所に設置された他のインテリジェントデバイス７０４のノード番号を知ることができる。なお、第１のシステムと同様に、検索メッセージ７１０や応答メッセージに、制御機器種別を含ませるようにしてもよい。
【００６１】
次に、光センサ６０２がコンベアＢ区間からコンベアＤ区間に移動された場合の、光センサ６０２における処理について詳細に説明する。
【００６２】
図９は、移動された光センサ６０２における処理の流れを示す図である。光センサ６０２が移動されると、まず、新しい位置情報の登録処理が行われる（Ｓ８０１）。すなわち、コンベアＤ区間６１３の位置ＩＤ等が、光センサ６０２の位置情報管理テーブル３００の「現在の位置」に登録される。なお、この時、旧位置情報であるコンベアＢ区間６１１の位置ＩＤ等は、位置情報管理テーブル３００の「過去の位置」に格納される。
【００６３】
位置情報の登録が終了すると、過去の位置と現在の位置との位置ＩＤの比較を行う（Ｓ８０３）。その結果、過去の位置と現在の位置の位置ＩＤが同じであれば（Ｓ８０３：Ｙ）、設定の変更は不要と判断し、そのまま、従来と同じ設定で、加工品を監視する処理の実行を開始する（Ｓ８１１）。
【００６４】
一方、過去の位置と現在の位置の位置ＩＤが異なる場合には（Ｓ８０３：Ｎ）、つまり光センサ６０２のパラメータの更新が必要な場合には、検索メッセージを送信して同じ設置場所にある他のインテリジェントデバイスを探す（Ｓ８０４）。そして、検索メッセージに対する応答メッセージを一定時間受信し（Ｓ８０５）、一定時間経過後、応答メッセージを受信したか否かを調べる（Ｓ８０６）。その結果、１つも応答メッセージを受信できなかった場合には（Ｓ８０６：Ｎ）、協調する相手がいないため、そのまま処理を終了する。この場合、光センサ６０２は、作業者等によるパラメータ設定が必要となる。
【００６５】
一方、応答メッセージを１つまたは複数受信した場合には（Ｓ８０６：Ｙ）、受信した応答メッセージ内の位置ＩＤ７１３と自内の位置情報管理テーブル３００に格納されている現在の位置の位置ＩＤを比較する（Ｓ８０７）。その結果、位置ＩＤが一致しない場合には（Ｓ８０７：Ｎ）、受信した応答メッセージを廃棄する（Ｓ８０８）。そして、他に応答メッセージがあるか否かを調べ（Ｓ８０６）、メッセージを廃棄したことにより受信した応答メッセージが全て無くなってしまった場合には（Ｓ８０６：Ｎ）、協調する相手がいないので処理を終了する。この場合も、作業者等によるパラメータ値の設定が必要となる。
【００６６】
一方、位置ＩＤが一致する応答メッセージがあった場合は（Ｓ８０７：Ｙ）、当該受信した応答メッセージ内の送信元ノード番号７１２を読みだし、当該応答メッセージを送信したインテリジェントデバイスに対してノード番号を指定して、制御機器種別の問い合わせを行う。なお、検索メッセージや応答メッセージに、制御機器種別を付加して送信するようにすれば、制御機器種別の問い合わせを省略することができる。
【００６７】
問い合わせの結果、同じ制御機器のインテリジェントデバイスであれば（この場合、光センサであれば）、そのインテリジェントデバイスの制御機器管理テーブル３５０よりパラメータの値を読み込む（Ｓ８０９）。そして、読み込んだパラメータの値を自己の制御機器管理テーブル３５０に登録する（Ｓ８１０）。この際、古いパラメータの値は上書きされて廃棄される。そして、新たに設定されたパラメータに基づいた処理の実行を開始する（Ｓ８１１）。
【００６８】
なお、同じ区間内に同じ種類のインテリジェントデバイスが複数存在する場合には、各インテリジェントデバイスに対して、パラメータの値を問い合わせる。この場合、問い合わせ結果が同じでない場合には、他のインテリジェントデバイスの設定に何らかの問題があるとして、処理を終了する。また、問い合わせ結果が同じでない場合でもあっても、任意のインテリジェントデバイスよりパラメータの値を読み込み、このパラメータを自ノードに設定するようにしてもよい。
【００６９】
以上説明したシステムでは、インテリジェントデバイスに内蔵の制御機器を制御するためのパラメータの値を、他のインテリジェントデバイスより読み込んでいるが、これに限らず、インテリジェントデバイスの通信設定その他のインテリジェントデバイスで必要とするデータやアプリケーションプログラムを読み込むようにしてもよい。
【００７０】
図１０は、アプリケーションプログラムを読み込む場合のインテリジェントデバイスの処理の流れを示す図である。ステップＳ９０１〜ステップＳ９０８までの処理内容は、図９で示したステップＳ８０１〜Ｓ８０８と同じである。
【００７１】
ステップＳ９０１〜ステップＳ９０８によって、同じ場所にあるインテリジェントデバイスを検索し、位置ＩＤが一致する応答メッセージを受信すると、送信元ノード番号が示すインテリジェントデバイスの制御機器種別を問い合わせる（Ｓ９０９）。問い合わせの結果、制御機器種別が一致するインテリジェントデバイスが存在しない場合には（Ｓ９１０：Ｎ）、そのまま処理を終了する。
【００７２】
一方、制御機器種別が一致するインテリジェントデバイスが存在する場合には（Ｓ９１０：Ｙ）、続いて、アプリケーションプログラムの実行環境を問い合わせる（Ｓ９１１）。なお、アプリケーションプログラムの実行環境として、各インテリジェントデバイスには、アプリケーションプログラムを実行するために必要なメモリ容量等が事前に登録されている。
【００７３】
問い合わせた実行環境をもとに、自装置においてアプリケーションプログラム実行可能か否かを判断する（Ｓ９１２）。その結果、実行可能でない場合には（Ｓ９１２：Ｎ）、協調する他のインテリジェントデバイスと同等な処理を実行できないため、処理を終了する。一方、実行可能な場合（例えば、処理を実行できるメモリ容量を有している場合）には（Ｓ９１２：Ｙ）、他のインテリジェントデバイスよりアプリケーションプログラムをダウンロードし、自機内のＲＡＭ等のプログラム格納領域に格納する（Ｓ９１３）。このとき、アプリケーションプログラムを実行するのに必要なパラメータ値も一緒にダウンロードする。アプリケーションプログラムの自機への格納が終了したのち、アプリケーションプログラムを実行を開始する（Ｓ９１４）。
【００７４】
以上説明したシステムにおいては、設置場所が移動されたインテリジェントデバイスは、新たに設置された場所に関する位置情報をもとに、同じ場所に設置され、同じ制御処理を行っている他のインテリジェントデバイスを探し、これらのインテリジェントデバイスから、プログラムを実行するのに必要なパラメータの値やアプリケーションプログラムを読み込み、自分に設定することにより、適切な処理を開始する。つまり、インテリジェントデバイスを移動した際でも、単にインテリジェントデバイスの設置場所の情報を変更するのみで、他のインテリジェントデバイスと協調を取って自動的にシステム構成を変えることができる。従来であればデバイスなどの制御機器を移動、設置する度にパラメータ調整などの作業が発生していたが、本システムでは、これらの作業がなくなり、プログラマやオペレータは、プログラム変更やパラメータの値の変更を行う必要がなくなる。従って、生産現場でデバイスなどの調整を行うフロアエンジニアや、デバイスなどの移動、設置に伴うプログラム変更などを行わなければならないシステムエンジニアの作業負担が大幅に削減される。
【００７５】
特に、大規模システムにおいては、数千個以上のインテリジェントデバイスがネットワークに接続される場合もあり、システムの変更やメンテナンスの度に膨大な数のインテリジェントデバイスが移動あるいは交換される。このようなインテリジェントデバイスを１つ１つ管理し、パラメータ値の設定や変更を行うのは困難であり、作業負担も非常に大きい。本システムでは、場所の移動に伴うパラメータ値の設定や変更などの作業量が大幅に削減できるので、頻繁な移動や交換が発生するインテリジェントデバイスでは特に有効である。
【００７６】
≪第３の実施形態≫
次に、本発明の第３の実施形態について説明する。
【００７７】
前述した第１の実施形態では、アラーム装置等の出力機器において位置ＩＤをもとにメッセージを選択受信することにより、既存のインテリジェントデバイスの設定等を変更すること無しにインテリジェントデバイスの移動・新設を可能とする方式を示した。また、第２の実施形態では、同じ場所に設置されたインテリジェントデバイスが協調することにより、他のインテリジェントデバイスのパラメータ情報やプログラムを読み込み、同じ処理を実行する方式を示した。以下説明する第３の実施形態では、１つのインテリジェントデバイスに複数の制御機器が接続されており、これら機器の中で同じ場所に設置された機器を認識し、同じ場所に設置された機器の間での協調動作を実現する。
【００７８】
図１１は、本発明による分岐タップ１２０１の構成を示す図である。分岐タップ１２０１は、マイクロプロセッサが内蔵されるインテリジェントデバイスであり、ネットワーク１２００に接続される。
【００７９】
図１１に示すように、分岐タップ１２０１は、複数の接続ポート１２０３を備え、接続ポート１２０３には、いろいろなデバイスがケーブルを介して接続される。ケーブルにより接続されるデバイスは、マイクロプロセッサを内蔵しないデバイス（非インテリジェントデバイス）であり、ケーブルを介して電気信号を分岐タップ１２０１に送信するものである。これらのデバイスには、マイクロプロセッサが内蔵されないため、オンまたはオフ（１または０）といった単純な情報しか送信できない。図１１に示した分岐タップ１２０１には、ＡからＨまでの名前が付けられた８つの接続ポート１２０３があり、各接続ポートにひとつのデバイス、合計８つのデバイスを接続することができる。分岐タップ１２０１は、デバイスから受信したデータの情報を適宜処理してネットワーク１２００に送信する。
【００８０】
また、分岐タップ１２０１には、各接続ポート１２０３に対して、デバイスの位置の位置ＩＤを設定するディップスイッチ１２０４が設けられている。作業員は、このディップスイッチ１２０４によりデバイスの設置場所の位置ＩＤを登録する。
【００８１】
図１２は、分岐タップ１２０１の実際のシステムへの適用例を示す図である。本システムでは、コンベア１３００上を物体１３０１が移動し、光センサ１３０２、１３０４、及びリミットスイッチ１３０３によって、物体１３０１の接近を検知する。リミットスイッチ１３０３は、物体との物理的な接触を検知するデバイスである。
【００８２】
分岐タップ１２０１の接続ポートＡ、Ｂ及びＨには、それぞれ、光センサ１３０２、光センサ１３０４及びリミットスイッチ１３０３が接続されている。２つの光センサ１３０２及び１３０４は、物体が前を横切り光を遮ると、その変化を検知して、オン情報（データとして１）を分岐タップ１２０１に送信する。リミットスイッチ１３０３は物体が接触すると、その変化を検知して、オン情報（データとして１）を分岐タップ１２０１に送信する。これら３つのデバイスは、いずれも物体の接近を検知するために使われており、信頼性を上げるために三重化されている。また、いずれのデバイスも物体を検知するとオン情報を分岐タップ１２０１に送信する。分岐タップ１２０１は、これらのデバイスのいずれか１つよりオン情報を受信すると、物体を検知したことを知らせるメッセージをネットワーク１２００に送信する。送信されたメッセージは、例えば、コンベア１３００を動かしているモーターによって受信され、メッセージを受信したモーターは、モーターの回転を停止させることにより、コンベア１３００を停止させる。
【００８３】
分岐タップ１２０１は、接続ポートと位置ＩＤとの関係を管理する接続ポート管理テーブルを保持している。図１３は、接続ポート管理テーブル１４００の構成例を示す図である。同図に示すように、接続ポート管理テーブル１４００は、接続ポート番号欄１４０１と位置ＩＤ欄１４０２とから構成される。
【００８４】
接続ポート番号欄１４０１の数字「１」から「８」は、接続ポートＡから接続ポートＨに対応する。位置ＩＤ欄１４０２には、各接続ポート１２０３のディップスイッチ１２０４の設定値が格納される。分岐タップ１２０１は、電源投入時や、ユーザの指示があった時等に、８つのディップスイッチ１２０４の設定値を読み込み、接続ポート管理テーブル１４００の位置ＩＤ欄１４０２に登録する。図１３の場合、接続ポート番号＝「１」、「２」、「８」に対して、同じ位置ＩＤ（＝「１」）が登録されている。これは、接続ポートＡ、接続ポートＢ、接続ポートＨに接続されたデバイスが同じ場所に設置されている、すなわち、多重化されている場合である。
【００８５】
図１４は、分岐タップ１２０１の内部構成の概略を示す図である。分岐タップ１２０１内には、図２（ａ）に示した計算機２１０と同様の計算機１２０２が内蔵されている。
【００８６】
計算機１２０２内のＲＡＭ上には各接続ポートからの入力データを格納するメモリ領域１２１０が確保されている。メモリ領域１２１０は、８つの領域に分割され、各接続ポート毎にメモリ領域が確保されている。各接続ポートに割り当てられたメモリ領域を、メモリ領域１からメモリ領域８と呼ぶ。この例の場合には、接続ポート１２０３からの入力データは、オンまたはオフ（１または０）であるため、各接続ポート毎に確保されたメモリ領域１からメモリ領域８の大きさは、各１ビットであり、全メモリ領域１２１０の大きさは１バイト（８ビット）である。
【００８７】
接続ポートに接続されたデバイスが同じ場所に設置されていない場合、すなわち、各接続ポートのディップスイッチの設定値がすべて異なる場合には、各接続ポートより受信されたデータは、接続ポートに対応するメモリ領域に格納される。例えば、接続ポートＡから受信したデータは、計算機１２０２内のマイクロプロセッサによりメモリ領域１に上書きされ、接続ポートＢから受信したデータはメモリ領域２に上書きされる。しかし、図１３に示すように、接続ポート管理テーブル１４００の位置ＩＤ欄１４０２の値が重複している場合、マイクロプロセッサは、位置ＩＤが重複している接続ポートに接続されたデバイスは多重化されているとみなし、デバイスからのデータを接続ポートに対応するメモリ領域に上書きするのではなく、多重化されているデバイスの中で一番接続ポート番号が小さい接続ポートに割り当てられたメモリ領域にデータを上書きする。
【００８８】
図１３に示した接続ポート管理テーブル１４００では、接続ポート番号＝「１」、「２」、「８」の位置ＩＤが重複しており（位置ＩＤ＝「１」）、また、接続ポート番号＝「３」、「５」の位置ＩＤも重複している（位置ＩＤ＝「２」）。このため、マイクロプロセッサは、接続ポートＡ、接続ポートＢ、接続ポートＨより受信したデータを同じメモリ領域１に上書きする。また、接続ポートＣ、接続ポートＤより受信したデータを同じメモリ領域３に上書きする。
【００８９】
分岐タップ１２０１は、また、メモリ領域番号と内容コードの関係を管理する内容コード管理テーブルを保持している。図１５は、内容コード管理テーブル１６００の構成例を示す図である。同図に示すように、内容コード管理テーブル１６００は、メモリ領域番号欄１６０１と内容コード欄１６０２とから構成される。
【００９０】
計算機１２０２内のマイクロプロセッサは、内容コード管理テーブル１６００を参照して、例えば、メモリ領域１に上書きされたデータには、内容コード＝「ＣＣ１」を付与してネットワーク１２００に送信する。多重化されていることによりデータが書き込まれないメモリ領域に関しては、内容コードは登録されない。内容コード管理テーブル１６００の内容コード欄１６０２のデータは、例えば、ネットワーク１２００に接続されたパーソナルコンピュータ等により、ネットワーク１２００を介して設定される。
【００９１】
次に、分岐タップ１２０１における処理の流れについて説明する。図１６は、分岐タップ１２０１がデバイスより受信したデータをメモリ領域に書き込むまでの処理の流れを示すフローチャートである。
【００９２】
分岐タップ１２０１内のマイクロプロセッサは、デバイスから接続ポートを経由してデータを受信すると（Ｓ１７０１）、接続ポート管理テーブル１４００を参照して、接続ポートに接続されたデバイスが多重化されているか否かを確認する（Ｓ１７０２）。すなわち、接続ポートに対応する接続ポート番号の位置ＩＤと同じ位置ＩＤが接続ポート管理テーブル１４００内に他に存在するか否かを確認する。確認の結果、接続ポートが多重化されていない場合は（Ｓ１７０２：Ｎ）、接続ポートに割り当てられたメモリ領域１２１０に受信したデータを上書きする（Ｓ１７０３）。
【００９３】
一方、接続ポートが多重化されている場合は（Ｓ１７０２：Ｙ）、同じ位置ＩＤが設定されている接続ポート番号の中で最小の接続ポート番号を検索し（Ｓ１７０４）、検索された最小の接続ポート番号に対応する接続ポートに割り当てられたメモリ領域１２１０にデータを上書きする（Ｓ１７０５）。
【００９４】
分岐タップ１２０１は、上述した図１６の処理フローによりメモリ領域１２１０に上書きされたデータを、ネットワーク１２００を介して他のインテリジェントデバイス等に周期的に送信する。
【００９５】
図１７は、分岐タップ１２０１が、メモリ領域１２１０に書き込まれたデータをネットワーク１２００に送信する際の処理の流れを示す図である。図１７に示した処理は、分岐タップ１２０１内のマイクロプロセッサによって、周期的（例えば、１００ミリ秒毎）に実行される。
【００９６】
まず、変数Ｎに対して初期値（＝１）を設定し（Ｓ１８０１）、接続ポートＡに割り当てられたメモリ領域１のデータから順番に送信を開始する。まず、内容コード管理テーブル１６００を検索し、メモリ領域番号「Ｎ」に内容コードが登録されているか否かを確認する（Ｓ１８０２）。その結果、内容コード欄１６０２に内容コードが登録されていない場合には（Ｓ１８０２：Ｎ）、メモリ領域Ｎは使用されていないので、次のメモリ領域のデータ送信処理に移るため、変数Ｎに１を加える（Ｓ１８０４）。
【００９７】
一方、内容コードが登録されている場合には（Ｓ１８０２：Ｙ）、メモリ領域Ｎのデータを読み込み、内容コード管理テーブル１６００に登録されたメモリ領域番号「Ｎ」に対応する内容コードを付与したメッセージをネットワーク１２００にブロードキャストする（Ｓ１８０３）。ブロードキャストされたメッセージは、メッセージを必要とするインテリジェントデバイスや計算機等により受信され、処理される。
【００９８】
メッセージ送信を終えると、次のメモリ領域のデータ送信処理に移るため、変数Ｎに１を加える（Ｓ１８０４）。そして、変数Ｎが８より大きい否か、すなわち、すべてのメモリ領域について送信を行ったか否かを判断する（Ｓ１８０５）。その結果、すべてのメモリ領域について送信を終了していた場合には（Ｓ１８０５：Ｙ）、処理を終了する。一方、まだ送信を終了していないメモリ領域がある場合は（Ｓ１８０５：Ｎ）、次のメモリ領域に対する処理に移る。
【００９９】
この実施形態によれば、分岐タップに設けられたディップスイッチの設定を変更するのみで、協調するデバイスを設定することが可能であり、プログラムの変更や複雑な設定変更をすることなく、デバイスの多重化を行うことができる。従来は、デバイスを多重化するのに多重化専用のハードウエアや特殊な設定を必要としていたが、本実施形態においては、頻繁に故障するデバイス等を多重化するのにディップスイッチを設定するのみで済み、プログラマや保守員の作業負担が大幅に軽減される。また、複雑な処理も必要ないため、熟練者でなくても多重化の設定を行うことが可能となり、システムの変更に伴う作業時間も大幅に削減される。
【０１００】
第３の実施形態では、分岐タップに接続されたデバイス間の協調をディップスイッチにより設定し、任意のデバイスを多重化する方式を示した。この方式は、複数のＩ／Ｏモジュールを備えたインテリジェント・ブロックＩ／Ｏにおいて、Ｉ／Ｏモジュールを多重化する際にも有効である。
【０１０１】
図１８は、インテリジェント・ブロックＩ／Ｏの構成例を示す図である。同図に示すように、インテリジェント・ブロックＩ／Ｏ１９００は、計算機１９１０と８枚のＩ／Ｏモジュール１９２０とから構成され、計算機１９１０は、内部バスを介して８枚のＩ／Ｏモジュール１９２０と接続されている。同図に示すように、これら８枚のＩ／Ｏモジュール１９２０には、ＡからＨまでの名前が付けられている。また、各Ｉ／Ｏモジュールには、ディップスイッチ１９３０が設けられている。これらのディップスイッチ１９３０により、各Ｉ／Ｏモジュールの位置ＩＤが設定される。同図の例では、Ｉ／ＯモジュールＡ、Ｂ、Ｈの位置ＩＤは「１」に、Ｉ／ＯモジュールＣ、Ｅの位置ＩＤは「２」に、Ｉ／ＯモジュールＤの位置ＩＤは「３」に、Ｉ／ＯモジュールＦの位置ＩＤは「４」に、Ｉ／ＯモジュールＧの位置ＩＤは「５」に設定されている。
【０１０２】
各Ｉ／Ｏモジュール１９２０には最大１６個のデバイスを接続することができる。すなわち、インテリジェント・ブロックＩ／Ｏ１９００には、最大１２８個のデバイスを接続することができる。計算機１９１０は、各Ｉ／Ｏモジュール１９２０から受信したデータを処理し、ネットワーク１９００に送信する。ここでは、各Ｉ／Ｏモジュール１９２０から受信するデータは２バイト（１６ビット）である。
【０１０３】
図１９は、本発明によるインテリジェント・ブロックＩ／Ｏの内部構造を示す図である。同図に示すように、各Ｉ／Ｏモジュール２０１０は、内部バス２０２０を介してメッセージ２０３０を計算機２０６０に送信する。メッセージ２０３０は、各Ｉ／Ｏモジュールに取り付けられたディップスイッチにより設定された位置ＩＤ２０３１と、Ｉ／Ｏモジュールに接続されたデバイスからの入力データ２０３２により構成される。Ｉ／Ｏモジュール２０１０から送信されたメッセージ２０３０は、バスインターフェースを介して、計算機２０６０内のマイクロプロセッサ２０６１にて受信される。計算機２０６０内には、各Ｉ／Ｏモジュール２０１０から受信したデータを格納するメモリ領域２０６２が設けられており、メモリ領域２０６２は、８枚のＩ／Ｏモジュール２０１０から受信したデータを格納するための８つのメモリ領域により構成される。ここでは、各メモリ領域の大きさは、２バイトであり、全メモリ領域２０６２の大きさは、１６バイトである。各メモリ領域に上書きされたデータは、周期的にネットワーク２０５０に送信される。
【０１０４】
インテリジェント・ブロックＩ／Ｏ２０００内の計算機２０６０は、位置ＩＤとメモリ領域との関係を管理する位置ＩＤ管理テーブルを保持している。図２０は、位置ＩＤ管理テーブル２１００の構成例を示す図である。同図に示すように、位置ＩＤ管理テーブル２１００は、位置ＩＤ欄２１０１とメモリ領域番号欄２１０２とから構成される。位置ＩＤ管理テーブル２１００のデータは、例えば、ネットワーク２０５０を介して他の計算機等からオペレータによって設定される。
【０１０５】
図２１は、インテリジェント・ブロックＩ／Ｏ２０００内の計算機２０６０における処理の流れを示す図である。計算機２０６０は、内部バス２０２０よりメッセージ２０３０を受信すると（Ｓ２２０１）、メッセージ内の位置ＩＤ２０３１を読み出す（Ｓ２２０２）。そして、読み出した位置ＩＤに対応するメモリ領域番号を位置ＩＤ管理テーブル２１００より検索し、対応するメモリ領域２０６２に受信したデータ２０３０を上書きする（Ｓ２２０３）。例えば、位置ＩＤ＝「１」が付与されたメッセージ２０３０を、内部バス２０２０より受信すると、位置ＩＤ＝「１」に対応するメモリ領域番号を位置ＩＤ管理テーブル２１００より検索する。図２０に示した例では、位置ＩＤ ＝「１」に対応するメモリ領域番号は、「１」である。従って、メッセージ２０３０内のデータ２０３２をメモリ領域番号「１」に対応するメモリ領域１に格納する。
【０１０６】
メモリ領域２０６２に格納されたデータのネットワーク２０５０への送信に関しては、上述した図１７の方法と同様にして行われ、各メモリ領域に格納されたデータに内容コードを付与して周期的にネットワーク２０５０に送信する。内部バスより受信したデータ２０３２が格納されないメモリ領域に関しては送信処理を行わない。
【０１０７】
以上説明したように、本実施形態においては、ディップスイッチの設定を変えるのみでインテリジェント・ブロックＩ／Ｏの任意のＩ／Ｏモジュールを多重化することが可能となる。このインテリジェント・ブロックＩ／Ｏから送信されたメッセージを受信する他のインテリジェントデバイスや計算機は、Ｉ／Ｏモジュールが多重化されていることを意識する必要はなく、例えば、二重化されていたＩ／Ｏモジュールが三重化されてもプログラムの変更や設定の変更は必要ない。従来であれば、Ｉ／Ｏモジュールを多重化するには特殊なハードウエアやプログラムの変更などが必要であったが、本実施形態では、ディップスイッチの設定のみで多重化が可能となるので、プログラマや生産現場の作業員の作業負担が大幅に軽減される。
【０１０８】
【発明の効果】
以上詳細に説明したように、本発明によれば、分散処理システムにおいて、設定値の変更やプログラムの変更を行うことなく、インテリジェントデバイス等の設置場所の移動やインテリジェントデバイス等の多重化などを行うことが可能となる。従って、システム構築や改造に従事しているプログラマや現場の作業者等の負担を大幅に削減するとともに、熟練者でなくともシステムの増改造を容易に行うことができるようになる。
【図面の簡単な説明】
【図１】  本発明を適用する分散処理システムの概要を示す図である。
【図２】  システムを構成するインテリジェントデバイス２００を示す図である。
【図３】  各インテリジェントデバイスが管理する位置情報管理テーブル３００及び制御機器管理テーブル３５０の構成例を示す図である。
【図４】  第１の分散処理システムの具体的な適用例を示す図である。
【図５】  光センサ及びアラーム装置間でのメッセージの授受の様子を表す図である。
【図６】  インテリジェントデバイスへ位置情報を登録する方法を説明する図である。
【図７】  本発明による第２の分散処理システムの構成例を示す図である。
【図８】  同じ場所に設置されている他のインテリジェントデバイスを探す方法を説明する図である。
【図９】  移動されたインテリジェントデバイスにおける処理の流れを示す図である。
【図１０】  アプリケーションプログラムを読み込む場合のインテリジェントデバイスの処理の流れを示す図である。
【図１１】  本発明による分岐タップ１２０１の構成を示す図である。
【図１２】  分岐タップ１２０１の実際のシステムへの適用例を示す図である。
【図１３】  接続ポート管理テーブル１４００の構成例を示す図である。
【図１４】  分岐タップ１２０１の内部構成の概略を示す図である。
【図１５】  内容コード管理テーブル１６００の構成例を示す図である。
【図１６】  分岐タップ１２０１がデバイスより受信したデータをメモリ領域に書き込むまでの処理の流れを示す図である。
【図１７】  分岐タップ１２０１が、メモリ領域１２１０に書き込まれたデータをネットワーク１２００に送信する際の処理の流れを示す図である。
【図１８】  インテリジェント・ブロックＩ／Ｏの構成例を示す図である。
【図１９】  本発明によるインテリジェント・ブロックＩ／Ｏの内部構造を示す図である。
【図２０】  位置ＩＤ管理テーブル２１００の構成例を示す図である。
【図２１】  インテリジェント・ブロックＩ／Ｏ内の処理の流れを示す図である。
【符号の説明】
１００  ネットワーク
１０１、１０２、１０３  計算機
２５０  光センサ
３００  位置情報管理テーブル
３５０  制御機器管理テーブル
４０２、４０３、４０５、４１１  光センサ
４０６、４０７、４０８  アラーム装置
４２０、４２１  加工品
５０２、５０３、５１１  光センサ
５０６  アラーム装置
５２０  メッセージ
６０１、６０２、６０４  光センサ
６３０  加工品
７０１、７０２、７０３、７０４  インテリジェントデバイス
７１０  メッセージ
７５１  インテリジェントデバイス
７６０  計算機
１２０３  接続ポート
１２０４  ディップスイッチ
１４００  接続ポート管理テーブル
１６００  内容コード管理テーブル
１９００、２０００  インテリジェント・ブロックＩ／Ｏ
１９２０、２０１０  Ｉ／Ｏモジュール
２１００  位置ＩＤ管理テーブル
【図１】
0003980768.tif 000002
【図２】
0003980768.tif 000003
【図３】
0003980768.tif 000004
【図４】
0003980768.tif 000005
【図５】
0003980768.tif 000006
【図６】
0003980768.tif 000007
【図７】
0003980768.tif 000008
【図８】
0003980768.tif 000009
【図９】
0003980768.tif 000010
【図１０】
0003980768.tif 000011
【図１１】
0003980768.tif 000012
【図１２】
0003980768.tif 000013
【図１３】
0003980768.tif 000014
【図１４】
0003980768.tif 000015
【図１５】
0003980768.tif 000016
【図１６】
0003980768.tif 000017
【図１７】
0003980768.tif 000018
【図１８】
0003980768.tif 000019
【図１９】
0003980768.tif 000020
【図２０】
0003980768.tif 000021
【図２１】
0003980768.tif 000022