(57)【特許請求の範囲】
【請求項１】
タスクを実行する制御プロセスを１つ以上備える制御装置が伝送通信路上で複数接続される分散制御システムに用いられる制御装置であって、
前記制御装置は、パケットの送受信を制御する通信サーバと、前記制御プロセスにおける識別子毎の受信要求の情報およびポートの情報を記憶している受信識別子記憶部とを備え、
前記通信サーバが送受信を制御するパケットは、識別子と前記識別子により識別されるデータとを含み、
前記通信サーバは、
他の制御装置からパケットを受信し、受信した該パケットを自制御装置内の制御プロセスへと送信する場合には、
受信したパケットに含まれる識別子から、前記受信識別子記憶部の記憶内容を用いて、受信要求する制御プロセスがあるか否かを判別し、
受信要求する制御プロセスがある場合には、対応するポートへ前記パケットを送信し、
受信要求する制御プロセスが無い場合には、前記パケットを廃棄する
ことを特徴とする制御装置。
【請求項２】
前記制御装置が、
前記識別子毎に通信相手のＩＰアドレスの情報を記憶している送信識別子記憶部と、
前記通信相手のＩＰアドレスとポートの情報を記憶している送信ホスト記憶部とを備え、
前記通信サーバは、
自制御装置内の制御プロセスからパケットを受信し、受信した該パケットを他の制御装置へと送信する場合には、
前記送信識別子記憶部の記憶内容を用いて、パケットに含まれる識別子から送信相手のＩＰアドレスを取得し、
前記送信ホスト記憶部に、前記取得したＩＰアドレスが存在するか否かを判別し、
前記判別において、前記取得したＩＰアドレスが存在した場合には、前記送信ホスト記憶部から当該ＩＰアドレスに対応するポートを取得して前記ポートから前記パケットを送信し、
前記判別において、前記取得したＩＰアドレスが存在しない場合には、コネクション接続要求を前記取得したＩＰアドレスに送信して、コネクションを接続完了した後に、当該ＩＰアドレスおよび割り当てたポートの情報を前記送信ホスト記憶部に記憶し、前記割り当てたポートへ前記パケットを送信し、
前記コネクションを接続完了しなかったときは、前記パケットを廃棄する
ことを特徴とする請求項１に記載の制御装置。
【請求項３】
前記受信識別子記憶部には、前記制御プロセスにおける識別子毎の受信要求を示す１ビットの情報が、識別子の順に並べられているデータ構造として記憶されており、
前記通信サーバは、前記制御プロセスから複数の識別子毎の受信要求の情報を受信すると、その受信した情報で受信識別子記憶部を更新することを特徴とする請求項１または請求項２に記載の制御装置。
【請求項４】
タスクを実行する制御プロセスを１つ以上備える制御装置が伝送通信路上で複数接続される分散制御システムにおける通信方法であって、
前記制御装置は、パケットの送受信を制御する通信サーバと、前記制御プロセスにおける識別子毎の受信要求の情報およびポートの情報を記憶している受信識別子記憶部とを備え、
前記通信サーバが送受信を制御するパケットは、識別子と前記識別子により識別されるデータとを含み、
前記通信サーバは、
他の制御装置からパケットを受信し、受信した該パケットを自制御装置内の制御プロセスへと送信する場合には、
受信したパケットに含まれる識別子から、前記受信識別子記憶部の記憶内容を用いて、受信要求する制御プロセスがあるか否かを判別し、
受信要求する制御プロセスがある場合には、対応するポートへ前記パケットを送信し、
受信要求する制御プロセスが無い場合には、前記パケットを廃棄する
ことを特徴とする通信方法。
【請求項５】
前記制御装置が、
前記識別子毎に通信相手のＩＰアドレスの情報を記憶している送信識別子記憶部と、
前記通信相手のＩＰアドレスとポートの情報を記憶している送信ホスト記憶部とを備え、
前記通信サーバは、
自制御装置内の制御プロセスからパケットを受信し、受信した該パケットを他の制御装置へと送信する場合には、
前記送信識別子記憶部の記憶内容を用いて、パケットに含まれる識別子から送信相手のＩＰアドレスを取得し、
前記送信ホスト記憶部に、前記取得したＩＰアドレスが存在するか否かを判別し、
前記判別において、前記取得したＩＰアドレスが存在した場合には、前記送信ホスト記憶部から当該ＩＰアドレスに対応するポートを取得して前記ポートから前記パケットを送信し、
前記判別において、前記取得したＩＰアドレスが存在しない場合には、コネクション接続要求を前記取得したＩＰアドレスに送信して、コネクションを接続完了した後に、当該ＩＰアドレスおよび割り当てたポートの情報を前記送信ホスト記憶部に記憶し、前記割り当てたポートへ前記パケットを送信し、
前記コネクションを接続完了しなかったときは、前記パケットを廃棄する
ことを特徴とする請求項４に記載の通信方法。
【請求項６】
前記受信識別子記憶部には、前記制御プロセスにおける識別子毎の受信要求を示す１ビットの情報が、識別子の順に並べられているデータ構造として記憶されており、
前記通信サーバは、前記制御プロセスから複数の識別子毎の受信要求の情報を受信すると、その受信した情報で受信識別子記憶部を更新することを特徴とする請求項４または請求項５に記載の通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＬＡＮ（Local Area Network）等の伝送通信路において、I/O制御を行う制御装置が同一伝送路上に複数接続されている場合の分散制御における、制御装置および通信方法に関するものである。
【背景技術】
【０００２】
従来の分散制御は、I/O制御等を行う制御装置のネットワークへの追加、ネットワークからの削除を容易にするため、フィールドＬＡＮ等の伝送通信路上に接続されている全ての制御装置へデータをブロードキャスト送信し、各制御装置は受信したデータを自分が処理すべきかフィルタリング処理を実施する、自律分散制御方式が知られている（特許文献１参照）。
この自律分散制御方式では、データ送信側の制御装置は、相手の存在の有無に関わらず常にデータをブロードキャストしており、ネットワークに接続されている受信側の制御装置でフィルタリング処理が行われる構成となっている。これにより、制御装置の追加、削除を容易にしている。
【０００３】
それに対し、大容量データ転送用として一般的に使用されるEthernet（登録商標）を介して制御装置を接続し、その制御装置からデータをブロードキャスト送信した場合には、Ethernet（登録商標）の通信制御装置であるＭＡＣ（Media Access Control）では受信したデータに対してフィルタリング処理を実施できない。そのため、全ての制御装置でデータを受信することとなり、その全ての制御装置が、受信したデータについて自分が処理すべきものであるか否かを判断し、処理すべきでない場合には、データを廃棄する処理が必要となる。
伝送通信路上からの受信データ全てに対してこの処理が実施されると、制御装置の負荷が高くなり、画像処理装置のようなリアルタイム性が非常に重要とされる装置を含むシステムにおいては、リアルタイム制御が乱れる原因となる。
【０００４】
この改善策として、ブロードキャスト送信ではなく、１対１通信のユニキャスト送信を用いることが考えられる（特許文献２参照）。この場合には、送信側の制御装置がデータ信号を受信側の制御装置に対して送信し、その後、受信側の制御装置から正常に受信したことを知らせるＡＣＫ信号を受け取ることでデータ信号の送達確認を実施している。この方法によれば、通信は全て１対１のユニキャスト通信で実施されるため、通信を実施している他の制御装置ではデータを受信することがなくなるので、伝送通信路上の関係ないデータを受信してリアルタイム制御が不定期に乱れることがなくなる。
【特許文献１】特開２００３−３４５４２２号公報（段落「００３８」〜「００５２」、図４）
【特許文献２】特開２００５−１３６８８１号公報（段落「０００９」〜「００２１」、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、分散制御で用いられているフィールドＬＡＮは、リアルタイム応答性が求められるものであるため、伝送路上のパケットサイズが小さい。そのため、データ量が多い場合にはデータを大量のパケットに分割して送信する必要があり、スループットが必要な大容量のデータ転送には、ブロードキャスト通信による自律分散制御方式は不向きである。
【０００６】
また、ブロードキャスト送信を実施した場合は、通信データを処理する必要のない他の制御装置が伝送通信路上からのデータを全て受信するので、制御装置の負荷が高くなり、画像処理装置のようにリアルタイム性が非常に重要とされる装置を含むシステムにおいては、リアルタイム制御が乱れる原因となっている。
【０００７】
一方、ユニキャスト送信を実施した場合には、送信側と受信側とでそれぞれ固有のコネクションを接続する必要があり、伝送通信路上の制御装置や制御プロセスの追加、削除が容易ではない。
さらにユニキャスト通信では、それぞれ固有のコネクションを接続することで個々にデータの送受信が行われるため、通信データのパケットを時系列的および統一的にロギングできず、通信で異常が発生した場合の問題解決に時間を要している。
【０００８】
本発明は、通信伝送路上の制御装置および制御プロセスの追加、削除と、さらにリアルタイム性を保つ制御装置および通信方法を提供することを課題とする。
【課題を解決するための手段】
【０００９】
前記課題を解決するため、本発明は、
タスクを実行する制御プロセスを１つ以上備える制御装置が伝送通信路上で複数接続される分散制御システムにおける通信方法であって、
前記制御装置は、パケットの送受信を制御する通信サーバと、前記制御プロセスにおける識別子毎の受信要求の情報およびポートの情報を記憶している受信識別子記憶部とを備え、
前記通信サーバが送受信を制御するパケットは、識別子と前記識別子により識別されるデータとを含み、
前記通信サーバは、
他の制御装置からパケットを受信し、受信した該パケットを自制御装置内の制御プロセスへと送信する場合には、
受信したパケットに含まれる識別子から、前記受信識別子記憶部の記憶内容を用いて、受信要求する制御プロセスがあるか否かを判別し、
受信要求する制御プロセスがある場合には、対応するポートへ前記パケットを送信し、
受信要求する制御プロセスが無い場合には、前記パケットを廃棄する構成とした。その他の手段については、後記する実施の形態で述べる。
【発明の効果】
【００１０】
本発明によれば、通信伝送路上の制御装置および制御プロセスの追加、削除と、さらに通信におけるリアルタイム性を保つことができる。
【発明を実施するための最良の形態】
【００１１】
本発明を実施するための最良の形態（以下「実施形態」と記載）を詳細に説明する。
図１は、ＬＡＮ上でユニキャスト通信を実施する分散制御システムにおけるネットワーク構成例を示す図である。
この分散制御システムは、制御装置１００として、制御装置Ａ１１０、制御装置Ｂ１２０、制御装置Ｃ１３０、制御装置Ｄ１４０が、Ethernet（登録商標）等の同一の伝送通信路１０上に接続されている構成である。
【００１２】
各制御装置１００は一般的なコンピュータで具現され、それらの記憶部（図示省略）には、プロセスを実行するためのＯＳ（Operating System）が存在する。このＯＳが実行するプロセスはそれぞれ、１つのタスクを実行するためのプログラムに相当する。
【００１３】
制御装置Ａ１１０の記憶部には、通信を司る通信サーバ１１１、プロセスである制御プロセス（１１２ａ，１１２ｂ，１１２ｃ）が備えられ、これらの機能は制御装置Ａ１１０内のＣＰＵによって実現される。この制御プロセス（１１２ａ，１１２ｂ，１１２ｃ）とは例えば、画像処理を行うメモリボードや、画像処理演算を実行するI/Oボードを制御するためのプログラム等でもよい。また通信サーバ１１１も１つのプロセスである。
なお、図１では３つの制御プロセス（１１２ａ，１１２ｂ，１１２ｃ）を例として記載してあるが、これに限らず、制御プロセスの数は必要に応じて適宜変更可能である。
【００１４】
制御装置Ｂ１２０内の制御プロセス群１２２は、１つ以上の制御プロセスを群として記述したものである。制御装置Ｃ１３０の制御プロセス群１３２、制御装置Ｄ１４０の制御プロセス群１４２も同様である。
また、制御装置Ａ１１０の通信サーバ１１１と同様に、制御装置Ｂ１２０内に通信サーバ１２１を備え、制御装置Ｃ１３０内に通信サーバ１３１を備え、制御装置Ｄ１４０内に通信サーバ１４１を備えている。
なお、ここでは、任意の制御装置を指すときは符号１００を用い、任意の通信サーバを指すときは符号１０１を用い、任意の制御プロセスを指すときは符号１１２を用いる。
【００１５】
制御装置１００内における通信サーバ１０１およびそれぞれの制御プロセス１１２間のやりとりは、特開平８−５５０３５号公報で開示されるように、標準的なＯＳの機能として用意されているプロセス間通信を介して行われるものとする。
例えば、制御装置Ａ１１０内の制御プロセス１１２ａおよび制御プロセス１１２ｂといった制御装置Ａ１１０内の制御プロセス間と、制御装置Ａ１１０内の制御プロセス１１２ａおよび制御装置Ｂ１２０内の制御プロセス群１２２の中の一つの制御プロセスといった伝送通信路１０をまたいだ制御プロセス間と、どちらの通信においても使用される図１のパケット１５０は、ＩＤ（識別子）１５１とデータ１５２とで構成される。ＩＤ１５１はデータ内容毎の識別を示し、送受信のための識別子として使用される。データ１５２とＩＤ１５１は、例えばＩＤ１５１の値「０」であれば「接続機器ＸのＯＮ／ＯＦＦ」、ＩＤ１５１の値「１」であれば「画像情報」、ＩＤ１５１の値「３」であれば「計測情報」等というように設定される。
【００１６】
図２は、図１の制御装置の機能を詳細に記載したブロック図の一例である。図２は制御装置Ａ１１０を例として示している。
【００１７】
制御装置Ａ１１０の記憶部には、送信ホスト管理テーブル（送信ホスト記憶部）１１３、受信ＩＤ管理テーブル（受信識別子記憶部）１１８、送信ＩＤ管理テーブル（送信識別子記憶部）１１９が備えられる。
送信ホスト管理テーブル１１３は、通信相手との接続が完了（コネクション接続完了）している制御装置１００の情報およびポートの情報を管理するためのテーブルである。
受信ＩＤ管理テーブル１１８は、通信サーバ１１１が受信したパケット１５０を各制御プロセス１１２が受信するか否かの情報を管理するためのテーブルである。
送信ＩＤ管理テーブル１１９は、データ１５２を識別するＩＤ１５１の値毎に、送信先を一意に識別する宛先であるＩＰアドレス情報を管理するためのテーブルである。
【００１８】
さらに、制御装置Ａ１１０の記憶部には、受信バッファ１１６および送信バッファ１１７、ロギングバッファ１９０が備えられる。
受信バッファ１１６および送信バッファ１１７は、通信サーバ１１１（および制御プロセス１１２）が処理中であった場合に、パケット１５０の一時待避所として使用される領域である。
ロギングバッファ１９０は、通信サーバ１１１を送受信共に経由するパケット１５０のログを格納する領域である。
【００１９】
以上、制御装置Ａ１１０を例として制御装置１００を説明したが、通信サーバ１１１、受信ＩＤ管理テーブル１１８、送信ＩＤ管理テーブル１１９、送信ホスト管理テーブル１１３、およびロギングバッファ１９０は、本実施形態において接続される全ての制御装置１００内に備えられる。
【００２０】
［パケット送信］
パケット送信時の通信方法について説明する。
ここでは、制御装置Ａ１１０内の制御プロセス１１２ａが制御装置Ｂ１２０内の制御プロセス群１２２（内の１つのプロセス）に対してパケット１５０（ＩＤ１５１の値「１」とデータ１５２）を送信する場合を例として、制御装置Ａ１１０内の制御プロセス１１２ａおよび通信サーバ１１１における処理を、図５のフローに沿って説明する。
【００２１】
制御プロセス１１２ａがパケット１５０を送信する場合には、制御装置Ａ１１０に含まれる通信サーバ１１１は、送信ＩＤ管理テーブル１１９に、送信したいデータ１５２の内容に対応するＩＤ１５１の値毎に送信先の制御装置１００のＩＰアドレスを登録しておく。
【００２２】
図３（ａ）は、送信ＩＤ管理テーブルの構成例を示す模式図である。
送信ＩＤ管理テーブル１１９は、ＩＤ１５１の値は「０」〜「２５５」まで利用可能としており、それぞれの値毎に連結リストを持たせた構造となっている。なお、今回は説明のためＩＤ１５１の値は「０」〜「２５５」の範囲としているが、値はこれに限らず、システム規模により変更してもよい。
要素３１０は、当該ＩＤ値のデータを送信する相手である制御装置１００のＩＰアドレスが格納されるＩＰアドレス３１２と、ポインタであるnext３１１とで構成される。
【００２３】
連結リスト構造とは、リストに含まれる各要素がポインタによって連結されている構造を示す。ここでは、例えば要素３１０は、next３１１によって要素３２０と連結されている。連結リストの最後の要素であるか否かは、next３１１の値がNULL（値が０）か否かで判別できる。図３（ａ）では、要素３２０のnext３２１がNULLとなっていることから、例えばＩＤ１５１の値「０」のデータ１５２（パケット１５０）はＩＰアドレス３１２（を持つ制御装置１００）にだけ送信するということになる。
【００２４】
図５に戻って説明する。
制御装置Ａ１１０内において制御プロセス１１２ａが、通信サーバ１１１に対して、送信ＩＤ管理テーブル設定要求を送信する（Ｓ５０１）。
通信サーバ１１１は、プロセス間通信で受信する情報を常に監視しており、受信した情報が送信ＩＤ管理テーブル設定要求だった場合（Ｓ５０２→送信ＩＤ管理テーブル設定要求）、送信相手である制御装置Ｂ１２０のＩＰアドレスを、送信ＩＤ管理テーブル１１９に登録する（Ｓ５０３）。例えば図３（ａ）では、ＩＤ１５１の値が「１」の要素３３０には、next３３１がNULLとなっていることから、ＩＰアドレスが未登録となっていることがわかる。そのため、ＩＤ１５１の値「１」の先頭の要素３３０において、next３３１には次に新しく生成した要素のアドレスを設定し、ＩＰアドレス３３２には制御装置Ｂ１２０のＩＰアドレスを設定して登録する。
以上のステップＳ５０１，Ｓ５０２，Ｓ５０３における送信ＩＤ管理テーブル１１９へのＩＰアドレス登録処理は、初期設定として予め行われていることが望ましい。
また、本説明では、例として制御プロセス１１２ａが送信するパケット１５０（ＩＤ１５１の値「１」）について説明したが、この登録処理は、制御装置１００内の全制御プロセス１１２から送信される全てのパケット１５０について行われるようにしてもよい。
【００２５】
続いて、制御プロセス１１２ａは、ＩＤ１５１とデータ１５２とを含んだパケット１５０を、プロセス間通信を使用して、通信サーバ１１１に対して送信する（Ｓ５０４）。
通信サーバ１１１は、プロセス間通信で受信する情報を常に監視しており、受信した情報が制御プロセス１１２ａからの送信用パケット（パケット１５０）だった場合（Ｓ５０２→制御プロセスからの送信用パケット）、制御プロセス１１２ａから受信したパケット１５０に含まれるＩＤ１５１の値を確認する。今回のＩＤ１５１の値は「１」のため、送信ＩＤ管理テーブル１１９のＩＤ１５１の値「１」の連結リストを参照し、パケット１５０を送信するＩＰアドレス３３２（図３（ａ）参照）を取得する（Ｓ５０５）。
続いて通信サーバ１１１は、ＩＤ１５１の値「１」のＩＰアドレス３３２について、送信ホスト管理テーブル１１３内に、同じＩＰアドレスの情報が登録されているか否かを判別する（Ｓ５０６）。
【００２６】
図３（ｂ）は、送信ホスト管理テーブルの構成例を示す模式図である。
送信ホスト管理テーブル１１３は、既にコネクションが接続されている通信相手の情報が、前記した送信ＩＤ管理テーブル１１９と同様に連結リストとして格納されている。この連結リスト構造により、各要素（３４０，３５０，３６０）がポインタであるnext（３４１，３５１，３６１）によって連結され、連結リストの最後の要素か否かは、next（３４１〜３６１）の値がNULL（値が０）か否かで判別できる（図３（ｂ）ではnext３６１）。つまり、図３（ｂ）の送信ホスト管理テーブル１１３は、２つの要素（３４０，３５０）と、最後に要素３６０、という構成となっている。
要素３４０には、データを送信する制御装置１００のＩＰアドレス３４３と、コネクション接続正常完了時に割り当てられるポートの番号である論理回線ポートＮｏ３４２の情報とが格納される。他の要素（３５０，３６０）も要素３４０と同様の構成である。
【００２７】
ステップＳ５０６において、送信ホスト管理テーブル１１３に当該のＩＰアドレスが登録されていない場合（Ｓ５０６→Ｎ）、送信相手である制御装置Ｂ１２０とコネクションが接続されていないということになるので、送信相手に対してコネクション接続要求を送信するため、ステップＳ５０７の処理に進む。
ＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）を用いたユニキャスト通信を行うためには、送信の前に必ず送信相手とのコネクション接続を実施して、通信のための論理回線ポートを割り当てる必要がある。
【００２８】
ステップＳ５０７では、通信サーバ１１１は当該ＩＰアドレス（ここでは制御装置Ｂ１２０のＩＰアドレス）に、コネクション接続要求を送信する（Ｓ５０７）。送信相手である制御装置Ｂ１２０の通信サーバ１２１はこれを受信、処理し、コネクション接続完了の信号を制御装置Ａ１１０へ送信する。
通信サーバ１１１は、制御装置Ｂ１２０からコネクション接続完了の信号を受信したら、コネクション接続が正常完了したことになるので（Ｓ５０８→Ｙ）、送信ホスト管理テーブル１１３の連結リストの最後の要素３６０において、制御装置Ｂ１２０のＩＰアドレスをＩＰアドレス３６３に格納すると共に、自身で当該ＩＰアドレス用に割り当てたポートの情報（番号）を論理回線ポートＮｏ３６２に格納する（Ｓ５０９）。これにより、制御装置Ａ１１０および制御装置Ｂ１２０間でコネクション接続が正常完了したことになる。
なお、本実施形態では、例として制御装置Ｂ１２０を登録したが、他の制御装置１００についても登録方法は同様である。
【００２９】
通信サーバ１１１は、送信ホスト管理テーブル１１３から当該ＩＰアドレスに対応する論理回線ポートＮｏ（３４２，３５２，３６２）を取得し、当該ポートにパケット１５０を送信する（Ｓ５１０）。送信されたパケット１５０は、制御装置Ｂ１２０に受信され、制御装置Ｂ１２０内の通信サーバ１２１によって、制御プロセス群１２２内の最適な制御プロセスにプロセス間通信を使用して送信される（詳細はパケット受信において後記）。
なお、ステップＳ５０７〜Ｓ５０９のコネクション接続要求および登録の処理は、コネクション接続の初期情報として予め、例えば制御装置Ａ１１０の電源起動時等に、接続されている全ての制御装置１００に対して実行されてもよい。
【００３０】
一方、ステップＳ５０６において、送信ホスト管理テーブル１１３のＩＰアドレス（３４３，３５３，３６３（図３（ｂ）参照））に、当該のＩＰアドレスと同じＩＰアドレスが登録されている場合（Ｓ５０６→Ｙ）、既に送信相手との接続は完了し、ポートも割り当てられているため、当該ポートに対してパケット１５０を送信することにより、制御装置Ａ１１０の通信サーバ１１１は、送信相手の制御装置Ｂ１２０の通信サーバ１２１に対してパケット１５０を送信する（Ｓ５１０）。
【００３１】
一方、ステップＳ５０８において、コネクション接続が正常終了しなかった場合（Ｓ５０８→Ｎ）は、送信相手とコネクションが接続できずポートも割り当てられない。そのため、通信サーバ１１１は、制御プロセス１１２ａから受信したパケット１５０を廃棄する（Ｓ５１１）。
【００３２】
なお、送信ＩＤ管理テーブル１１９のＩＤ１５１において、同じＩＤ値の連結リストに複数の要素３１０が登録されている場合は、ＩＤ１５１の値が同じパケット１５０を複数の制御装置１００（ＩＰアドレス）に対して送信する。つまり、送信可能な制御装置１００（ＩＰアドレス）に対して、同じパケット１５０を、それぞれ送信するということである。
【００３３】
本実施形態では、制御プロセス１１２ａは、通信サーバ１１１に送信したパケット１５０が制御装置Ｂ１２０に届いたかどうかについては判別しない。つまり、送信相手の制御装置Ｂ１２０が機能削除等でネットワークから削除された場合においても、パケット１５０の送信処理が実施されないだけで、その他の処理は問題なく縮退運転することが可能である。
また、前もって送信ＩＤ管理テーブル１１９に、システムの最大構成を考慮した上で、ＩＤ１５１の値毎に、送信相手となる制御装置１００のＩＰアドレスを登録しておくことで、当初はその制御装置１００が存在しなくても、その制御装置１００が追加されたとき（その制御装置１００宛にパケット１５０が送信されたとき）にコネクションの接続が行われ、コネクション接続時に割り当てられたポートを使用して送信が行われるため、システムの拡張も容易に行うことが可能となる。
【００３４】
［パケット受信］
パケット受信時の通信方法について説明する。ここでは、制御装置Ｂ１２０内の制御プロセス群１２２の１つのプロセスから送信されたパケット１５０（ＩＤ１５１の値「２」とデータ１５２）を、制御装置Ａ１１０内の制御プロセス１１２ｂが受信する場合を例として、制御装置Ａ１１０の制御プロセス１１２ｂおよび通信サーバ１１１における処理を、図６のフローに沿って説明する。
【００３５】
制御プロセス１１２ｂがＩＤ１５１の値「２」のパケット１５０を受信したい場合には、制御装置Ａ１１０に含まれる通信サーバ１１１の受信ＩＤ管理テーブル１１８に、受信したいパケット１５０を識別するＩＤ１５１の値を登録しておく。
【００３６】
図４は、受信ＩＤ管理テーブルの構成例を示す模式図である。
受信ＩＤ管理テーブル１１８は前記した送信ホスト管理テーブル１１３と同様に連結リスト構造となっており、制御プロセス（１１２ａ〜１１２ｃ）毎に１つの要素４２０を登録できる構成となっている。要素４２０は、ポインタであるnext４２１と、論理回線ポートＮｏ４２２と、制御プロセス１１２ｂが受信したいデータを識別するＩＤ１５１の値を登録するrecv＿ＩＤ４２３とで構成される。
【００３７】
論理回線ポートＮｏ４２２は、当該制御プロセス１１２ｂおよび通信サーバ１１１間におけるプロセス間通信のために割り当てられるポートの番号である。
【００３８】
recv＿ＩＤ４２３は、図４に模式的に示されるように、各１Bitが１つのＩＤ１５１の値と対応する構成となっている。なお本実施形態では、送信管理ＩＤテーブル１１９でＩＤ１５１の値を「０」〜「２５５」の範囲としているため、recv＿ＩＤ４２３の値も「０」〜「２５５」の範囲となっているが、これに限らず、システム規模により変更してもよい。
ＩＤ１５１の値に対応している各Bitの値を「１」に設定すると受信可となり、このＩＤ１５１の値を含むパケット１５０を論理回線ポートＮｏ４２２のポートへ送信することを意味し、Bitの値が「０」の場合には受信否となり、このＩＤ１５１の値を含むパケット１５０は論理回線ポートＮｏ４２２のポートへは送信しないことを意味する。
ある制御プロセス１１２において、受信可否を新規に受信IＤ管理テーブル１１８へ登録する時は、受信IＤ管理テーブル１１８の連結リストの最後の要素４２０に登録することとなる。連結リストの最後の要素か否かはnext４２１の値がNULL（値が０）かどうかで判断することができる。
【００３９】
論理回線ポートＮｏ４２２にポートが登録されることで、通信サーバ１１１がパケット１５０の送受信を行うことにより、制御プロセス（１１２ａ〜１１２ｃ）と通信サーバ１１１との間でパケット１５０の送受信を行うことが可能となる。また、ポート毎に受信バッファ１１６、送信バッファ１１７が用意されており、これらのバッファ（１１６，１１７）を介して制御プロセス（１１２ａ〜１１２ｃ）および通信サーバ１１１間のパケット１５０の送受信を効率的に行うことが可能となる。
【００４０】
図６に戻って説明する。
制御プロセス１１２ｂは、通信サーバ１１１に受信ＩＤ管理テーブル設定要求を送信する（Ｓ６０１）。
通信サーバ１１１は、受信する情報を常に監視しており、受信した情報が受信管理テーブル設定要求だった場合（Ｓ６０２→受信ＩＤ管理テーブル設定要求）、受信ＩＤ管理テーブル１１８において連結リストの最後の要素４２０のrecv＿ＩＤ４２３でＩＤ１５１の値「２」のBitを「１」に設定し（図４）、さらに制御プロセス１１２ｂに割り当てるポートを論理回線ポートＮｏ４２２に設定した、要素４２０を登録する（Ｓ６０３）。
【００４１】
本説明ではＩＤ１５１の値「２」のBit１つを設定する方法を説明したが、１つの制御プロセス１１２ｂにおいて、複数または全てのＩＤ１５１の値（「０」〜「２５５」）に受信可能な値「１」を設定し、パケット１５０を複数または全て受信することも可能である。
また、要素４２０の新規追加だけでなく、制御プロセス１１２毎のrecv＿ＩＤ４２３の修正も可能である。
【００４２】
一方、ステップＳ６０２において、制御装置Ａ１１０内の通信サーバ１１１が受信したパケット１５０が、制御装置Ｂ１２０内の制御プロセス群１２２から送信された受信用パケット（パケット１５０）であった場合（Ｓ６０２→他制御装置１００からの受信用パケット）、通信サーバ１１１は受信したパケット１５０に含まれるＩＤ１５１の値を確認する。今回のＩＤ１５１の値は「２」のため、受信ＩＤ管理テーブル１１８の要素４２０からrecv＿ＩＤ４２３内の値「２」に対応するBitに「１」が設定されているか否かを全要素４２０において判別する（Ｓ６０４）。
【００４３】
通信サーバ１１１は、受信ＩＤ管理テーブル１１８のrecv＿ＩＤ４２３において、値「２」でBitが「１」の要素４２０があった場合（Ｓ６０４→Ｙ）、受信ＩＤ管理テーブル１１８の当該要素４２０の論理回線ポートＮｏ４２２からポートの情報を取得し、当該ポートにパケット１５０を送信する（Ｓ６０５）。これにより、制御プロセス１１２ｂはＩＤ１５１の値「２」のパケット１５０を通信サーバ１１１から受信することができる（Ｓ６０７）。
【００４４】
一方、ステップＳ６０４においてrecv＿ＩＤ４２３の値「２」のBitが全ての要素４２０において「０」となっている場合（Ｓ６０４→Ｎ）、当該パケット１５０を受信する制御プロセス１１２は存在しないということになるので、通信サーバ１１１は受信したパケット１５０を廃棄する（Ｓ６０６）。
【００４５】
なお、受信ＩＤ管理テーブル１１８に複数の要素４２０が存在し（つまり、複数の制御プロセス（１１２ａ〜１１２ｃ）が登録されている）、その複数の制御プロセス（１１２ａ〜１１２ｃ）にわたって、同じＩＤ値のBitに「１」が設定されていた場合、当該ＩＤ値を持つパケット１５０は、受信可となっている複数の制御プロセス１１２に、通信サーバ１１１によって送信される。
【００４６】
以上説明した制御装置および通信方法により、通信サーバ１１１がＩＤ１５１を用いてパケット１５０の送信可否および受信可否を判別することにより、ネットワーク負荷を軽減し、送受信に伴うリアルタイム性を保つことができ、さらに、システム構成が可変なシステムにおいて、通信伝送路１０上の制御装置１００および制御プロセス１１２の追加、削除を容易とすることができる。
つまり、例えば、通常は制御プロセス１１２ｂがシステム上必要であるが、特定の場合には制御プロセス１１２ｂが必要ない、というような場合には、制御プロセス１１２ｂをプログラム起動せず、受信ＩＤ管理テーブル１１８のrecv＿ＩＤ４２３で当該ＩＤ１５１の値のBitを「０」と設定することで、制御プロセス１１２ｂにパケット１５０が送信されることがなくなり、他に受信要求する制御プロセス１１２が存在しなければ、パケット１５０は廃棄されることとなる。
【００４７】
［ログの保存］
本発明は、全ての制御装置１００内に通信サーバ１０１を設けたことにより、この構成で送受信されるパケット１５０は、全て通信サーバ１０１を経由する。そのため、通信サーバ１０１を介して送受信したパケット１５０を、例えば送受信の行われた年月日時刻、送受信相手のＩＰアドレス等と共に、図２のロギングバッファ１９０に格納することにより、統一的かつ時系列的に通信されたパケット１５０のロギングを実施することが可能となる。
ロギングバッファ１９０はリングバッファ構成となっており、一定のサイズが蓄積されると、上書きされるものである。ロギングバッファ１９０のサイズは、システムの通信量を見越して変更が可能である。また、パケット１５０の送信、受信が識別できるよう送受信識別のための情報も格納しておく。これにより、通信で異常が発生した場合に迅速な通信ログの解析を実施することが可能である。
【００４８】
以上、本発明を実施する最良の形態について、例を挙げて詳細に説明したが、これに限定されるものでなく、本発明の趣旨を逸脱しない範囲で適宜変形可能である。
【図面の簡単な説明】
【００４９】
【図１】本実施形態におけるネットワーク構成例を示す図。
【図２】図１における制御装置の詳細な機能を示すブロック図。
【図３】本実施形態における  （ａ）送信ＩＤ管理テーブルの構成例、（ｂ）送信ホスト管理テーブルの構成例、を示す模式図。
【図４】本実施形態における受信ＩＤ管理テーブルの構成例を示す模式図。
【図５】本実施形態におけるパケット送信時の処理フロー図。
【図６】本実施形態におけるパケット受信時の処理フロー図。
【符号の説明】
【００５０】
１００，１１０，１２０，１３０，１４０  制御装置
１０１，１１１，１２１，１３１，１４１  通信サーバ
１１２，１１２ａ，１１２ｂ，１１２ｃ  制御プロセス
１１３  送信ホスト管理テーブル（送信ホスト記憶部）
１１６  受信バッファ
１１７  送信バッファ
１１８  受信ＩＤ管理テーブル（受信識別子記憶部）
１１９  送信ＩＤ管理テーブル（送信識別子記憶部）
１２２，１３２，１４２  制御プロセス群
１５０  パケット
１５１  ＩＤ
１５２  データ
１９０  ロギングバッファ
【図１】
0004608416.tif 000002
【図２】
0004608416.tif 000003
【図３】
0004608416.tif 000004
【図４】
0004608416.tif 000005
【図５】
0004608416.tif 000006
【図６】
0004608416.tif 000007