(57)【特許請求の範囲】
【請求項１】
複数の相手先がネットワークを介して受信可能にデータを送信する少なくとも１台の送信装置と、この送信装置からネットワークを介して送信されたデータを受信する複数の受信装置とがネットワークを介して接続され、前記複数の受信装置が自律的に前記送信装置にデータ要求パケットを送信をした際に、前記送信装置が該データ要求パケットで要求されるデータを送信するデータ送受信システムであって、
前記受信装置の処理部は、
前記送信装置に対して前記データ要求パケットの送信から再度該データ要求パケットを送信するまでのデータ送信タイムアウト時間を指定する指定情報を設定し、
前記送信装置に対してデータを要求すると共に送信側及び受信側のアドレスを含む通信情報を含む要求情報と、前記指定情報と、を含む前記データ要求パケットを生成し、
前記ネットワークを介して前記データ要求パケットを前記送信装置に送信させ、
前記送信装置から前記ネットワークを介して伝送されてくる前記データを前記指定情報に応じて受信させ、
前記送信装置の処理部は、
前記ネットワークを介していずれかの前記受信装置から送信された前記データ要求パケットを受信した場合に、
前記データ要求パケットの前記要求情報に対応するデータを送信中か否かを判定し、
前記送信中でない場合には、前記データ要求パケットの前記要求情報に対応する当該データを前記指定情報に応じて送信するように設定し、
前記送信中である場合には、送信中の当該データに関する前記指定情報と、当該データの送信中に受信した前記データ要求パケットに含まれる前記指定情報とを比較し、
前記指定情報の比較の結果に応じて当該データを送信させるように前記指定情報を再設定し、
前記ネットワークを介して前記要求情報に対応する当該データを前記指定情報に応じて送信させること
を特徴とするデータ送受信システム。
【請求項２】
前記受信装置から前記送信装置に前記データ要求パケットを送信した場合に、
前記送信装置の処理部は、前記データ要求パケットの送信元の前記受信装置に対して応答を行った後に、前記指定情報の再設定を行った前記要求情報に対応する前記データを送信させ、
前記受信装置の処理部は、前記送信装置からの応答を受信した後に、前記指定情報の再設定を行った前記要求情報に対応する前記データを受信するように、前記受信装置と前記送信装置との間で問い合わせ通信を行うこと
を特徴とする請求項１に記載のデータ送受信システム。
【請求項３】
前記送信装置の処理部は、
前記ネットワーク上に接続された前記受信装置の中で一のマルチキャストグループごとにＩＰマルチキャストによりデータを送信させ、
前記一のマルチキャストグループに属する前記受信装置の処理部は、
自身の要求するデータか否かを判定して、前記指定情報に応じて自身の要求する前記データを受信することとしたこと
を特徴とする請求項１に記載のデータ送受信システム。
【請求項４】
前記受信装置の処理部は、
自身の属するＩＰマルチキャストグループ情報を含めて前記データ要求パケットを生成し、
前記送信装置の処理部は、
前記データ要求パケットに、前記ＩＰマルチキャストグループ情報が含まれていたときには、前記ＩＰマルチキャストグループ情報に従ってマルチキャスト通信で前記データを前記ネットワーク上に送信させること
を特徴とする請求項３に記載のデータ送受信システム。
【請求項５】
前記受信装置の処理部は、
前記指定情報に応じた前記データの受信後に、再度、前記データを要求するか否かを判定し、
再度、前記データを要求する場合には、データ要求パケットを再度送信装置に送信させて、ネットワーク上を伝送される送信装置からのデータを再度受信するようにしたこと
を特徴とする請求項１に記載のデータ送受信システム。
【請求項６】
前記指定情報は、前記受信装置により要求される前記データが所定時間分であることを示す情報であることとし、
前記送信装置の処理部は、
前記ネットワークを介して前記受信装置のいずれかから前記データ要求パケットを受信したときに、前記データ要求パケットに含まれる前記データの送信を終了するタイムアウト時間を設定し、前記データの送信開始と共に時間の計測を開始し、前記タイムアウト時間を経過したときに、前記データの送信を終了するように処理すると共に、
前記時間の計測中に、前記受信装置のいずれかから前記データ要求パケットを受信したときには、このデータ要求パケットに含まれる前記指定情報としての所定時間を参照し、計測中の時間と前記所定時間とを比較して、長い方の時間に前記タイムアウト時間を設定するようにしたこと
を特徴とする請求項１に記載のデータ送受信システム。
【請求項７】
前記指定情報は、前記受信装置により要求される前記データが所定時間分であることを示す情報であることとし、
前記受信装置の処理部は、前記ネットワーク上から前記データの受信を開始したときから時間の計測を開始し、少なくとも所定時間まで前記データを受信すること
を特徴とする請求項１に記載のデータ送受信システム。
【請求項８】
前記受信装置の処理部は、
要求する前記データを所定時間ごとに要求する送信間隔時間を含めて前記データ要求パケットを生成することとし、
前記送信装置の処理部は、
前記データ要求パケットに、前記送信間隔時間が含まれていたときには、前記送信間隔時間ごとに定期的に前記データを前記ネットワーク上に送信させること
を特徴とする請求項１に記載のデータ送受信システム。
【請求項９】
前記送信装置は、各種機器に備え付けられたデバイスに接続し、
前記送信装置の処理部は、
前記デバイスからの入力信号を取り込み、
前記入力信号自身及び／又は前記入力信号に応じた演算結果を、前記要求するデータとして前記受信装置に前記ネットワークを介して送信させることとし、
前記受信装置の処理部は、
前記入力信号自身及び／又は前記入力信号に応じた演算結果を、前記要求するデータとして要求する要求情報と、前記入力信号自身及び／又は前記入力信号に応じた演算結果をどのくらい要求するかを示す前記指定情報とを含む前記データ要求パケットを前記送信装置に前記ネットワークを介して送信して、
前記入力信号自身及び／又は前記入力信号に応じた演算結果を受信するようにしたこと
を特徴とする請求項１に記載のデータ送受信システム。
【請求項１０】
前記受信装置の処理部は、
前記データ要求パケットに、前記デバイスを識別するデバイス情報を含めて生成し、
前記送信装置の処理部は、
前記データ要求パケットに、前記デバイス情報が含まれていたときには、前記デバイス情報の入力信号自身及び／又は前記入力信号に応じた演算結果を、前記ネットワーク上に送信させることとしたこと
を特徴とする請求項８に記載のデータ送受信システム。
【請求項１１】
複数の相手先がネットワークを介して受信可能にデータを送信する少なくとも１台の送信装置と、この送信装置からネットワークを介して送信されたデータを受信する複数の受信装置とがネットワークを介して接続されるデータ送受信システムにおいて、前記複数の受信装置が自律的に前記送信装置にデータ要求パケットを送信をした際に、前記送信装置が該データ要求パケットで要求されるデータを送信するデータ送受信方法であって、
前記受信装置の処理部に、
前記送信装置に対して前記データ要求パケットの送信から再度該データ要求パケットを送信するまでのデータ送信タイムアウト時間を指定する指定情報を設定させ、
前記送信装置に対してデータを要求すると共に送信側及び受信側のアドレスを含む通信情報を含む要求情報と、前記指定情報と、を含む前記データ要求パケットを生成させ、
前記ネットワークを介して前記データ要求パケットを前記送信装置に送信させ、
前記送信装置から前記ネットワークを介して伝送されてくる前記データを前記指定情報に応じて受信させ、
前記送信装置の処理部に、
前記ネットワークを介していずれかの前記受信装置から送信された前記データ要求パケットを受信した場合に、
前記データ要求パケットの前記要求情報に対応するデータを既に送信中か否かを判定させ、
前記送信中でない場合には、前記データ要求パケットの前記要求情報に対応する当該データを前記指定情報に応じて送信するように設定させ、
前記送信中である場合には、送信中の当該データに関する前記指定情報と、当該データの送信中に受信させた前記データ要求パケットに含まれる前記指定情報とを比較させ、
前記指定情報の比較の結果に応じて当該データを送信させるように前記指定情報を再設定させ、
前記ネットワークを介して前記要求情報に対応する当該データを前記指定情報に応じて送信させること
を特徴とするデータ送受信方法。
【請求項１２】
複数の相手先が受信可能にデータを送信する少なくとも１台の送信装置から送信された自身が要求したデータをネットワークを介して受信する受信装置であって、
前記受信装置の処理部は、
前記送信装置に対してデータ要求パケットの送信から再度該データ要求パケットを送信するまでのデータ送信タイムアウト時間を指定する指定情報を設定し、
前記送信装置に対してデータを要求すると共に送信側及び受信側のアドレスを含む通信情報を含む要求情報と、前記指定情報と、を含む前記データ要求パケットを生成し、
前記ネットワークを介して前記データ要求パケットを前記送信装置に送信させ、
前記送信装置から前記ネットワークを介して伝送されてくる前記データを前記指定情報に応じて受信させること
を特徴とする受信装置。
【請求項１３】
ネットワークに接続した複数の受信装置が受信可能に、前記受信装置のいずれかが要求したデータを送信する送信装置であって、
前記送信装置の処理部は、
前記ネットワークを介していずれかの前記受信装置から送信された、前記送信装置に対してデータを要求すると共に送信側及び受信側のアドレスを含む通信情報を含む要求情報と、前記データ要求パケットの送信から再度該データ要求パケットを送信するまでのデータ送信タイムアウト時間を指定する指定情報と、を含むデータ要求パケットを受信した場合に、
前記データ要求パケットの前記要求情報に対応するデータを既に送信中か否かを判定し、
前記送信中でない場合には、前記データ要求パケットの前記要求情報に対応する当該データを前記指定情報に応じて送信することと設定し、
前記送信中である場合には、送信中の当該データに関する前記指定情報と、当該データの送信中に受信した前記データ要求パケットに含まれる前記指定情報とを比較し、
前記指定情報の比較の結果に応じて当該データを送信させるように前記指定情報を再設定し、
前記ネットワークを介して前記要求情報に対応する当該データを前記指定情報に応じて送信させること
を特徴とする送信装置。
【請求項１４】
複数の相手先が受信可能にデータを送信する少なくとも１台の送信装置から送信された自身が要求したデータをネットワークを介して受信する受信プログラムであって、
受信装置の処理部に、
前記送信装置に対してデータ要求パケットの送信から再度該データ要求パケットを送信するまでのデータ送信タイムアウト時間を指定する指定情報を設定させ、
前記送信装置に対してデータを要求すると共に送信側及び受信側のアドレス等の通信情報を含む要求情報と、前記指定情報と、を含むデータ要求パケットを生成させ、
前記ネットワークを介して前記データ要求パケットを前記送信装置に送信させ、
前記送信装置から前記ネットワークを介して伝送されてくる前記データを前記指定情報に応じて受信させるように実行させる
ための受信プログラム。
【請求項１５】
ネットワークに接続した複数の受信装置が受信可能に、前記受信装置のいずれかが要求したデータを送信する送信プログラムであって、
送信装置の処理部に、
前記ネットワークを介していずれかの前記受信装置から送信された、前記送信装置に対してデータを要求すると共に送信側及び受信側のアドレスを含む通信情報を含む要求情報と、前記データ要求パケットの送信から再度該データ要求パケットを送信するまでのデータ送信タイムアウト時間を指定する指定情報と、を含むデータ要求パケットを受信した場合に、
前記データ要求パケットの前記要求情報に対応するデータを既に送信中か否かを判定させ、
前記送信中でない場合には、前記データ要求パケットの前記要求情報に対応する当該データを前記指定情報に応じて送信するように設定させ、
前記送信中である場合には、送信中の当該データに関する前記指定情報と、当該データの送信中に受信した前記データ要求パケットに含まれる前記指定情報とを比較させ、
前記指定情報の比較の結果に応じて当該データを送信させるように前記指定情報を再設定し、
前記ネットワークを介して前記要求情報に対応する当該データを前記指定情報に応じて送信させるように実行させる
ための送信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の受信装置のいずれかが要求したデータを、送信装置から複数の受信装置に向けて送信して、要求した受信装置に受信させるための技術に関する。
【背景技術】
【０００２】
昨今、産業用プラントなどのプラント監視制御システムは、分散処理（制御）システムに移行しつつある。分散制御システムでは、分散接続された制御用コンピュータが中央のコンピュータ（サーバ等）に対して、自身で監視しているデータが変化した場合にデータをイベント送信するイベントドリブン方式を採用するものが多い。
【０００３】
また、従来は、イベント送信するものではなく、監視しているデータを定期的に送信する監視システムもある。この場合、ネットワーク上には常に監視データが流れてしまい、ネットワークの伝送負荷となってしまう。
【０００４】
また、従来は、ネットワークにおいて一定値以上の単位時間あたりの伝送負荷を検出した場合に、データ送信を抑制する指令を出力し、伝送過負荷による送信データの消失及び送受信処理の高負荷によるデータ処理異常が発生しないようにする方法が知られている（例えば特許文献１参照）。
【０００５】
【特許文献１】特開平２００５−０９４２１６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、従来の分散処理システムでは、複数のサーバが同時にデバイスよりデータを受信したい場合、複数サーバ内で代表サーバを決定し、その代表サーバが欲しいデータを持ったコントローラに要求を出し、コントローラから定期的に各サーバにデータを送信するといった方法（集中管理方法）がとられていた。しかしながら、こういった集中管理方法では、代表サーバがダウンした場合やネットワーク障害などで通信不能となった場合には、他のサーバからのデータの要求ができなくなってしまう。また、システム全体が誤った処理をしたり、処理を停止したりしなければならなかった。
【０００７】
また、前記複数のサーバが、それぞれ転写メモリを実装し、一度データの送信要求を行うと定期的にデータを各サーバのメモリ上に送信するため、通信相手の生存及び有無にかかわらず、データを送信し続けてしまう問題があった。
【０００８】
さらに、前記複数サーバとは別に転写メモリを実装しないサーバにおいては、代表サーバを介してのデータ要求のため、データ要求から受信までのレスポンス時間がかかってしまうといった問題があった。
【０００９】
そこで、本発明は、一個所の障害がシステム全体に波及することなく、回線容量を効率的に使用できるようにし、レスポンス時間の向上も図れるようにすることを目的とする。
【課題を解決するための手段】
【００１０】
本発明は、前記課題を解決するための手段として、複数の相手先が受信可能にデータを送信する少なくとも１台の送信装置と、この送信装置から送信されたデータを受信する複数の受信装置とがネットワークを介して接続され、前記複数の受信装置が自律的に前記送信装置にデータ要求パケットを送信をした際に、前記送信装置が該データ要求パケットで要求されるデータを送信するデータ送受信システムを提供する。前記受信装置の処理部は、前記送信装置に対して前記データ要求パケットの送信から再度該データ要求パケットを送信するまでのデータ送信タイムアウト時間を指定する指定情報を設定し、前記送信装置に対してデータを要求すると共に送信側及び受信側のアドレスを含む通信情報を含む要求情報と、前記指定情報と、を含む前記データ要求パケットを生成し、前記ネットワークを介して前記データ要求パケットを前記送信装置に送信させ、前記送信装置から前記ネットワークを介して伝送されてくる前記データを前記指定情報に応じて受信させる。一方、前記送信装置の処理部は、前記ネットワークを介していずれかの前記受信装置から送信された前記データ要求パケットを受信した場合に、前記データ要求パケットの前記要求情報に対応するデータを既に送信中か否かを判定し、前記送信中でない場合には、前記データ要求パケットの前記要求情報に対応する当該データを前記指定情報に応じて送信するように設定し、前記送信中である場合には、送信中の当該データに関する前記指定情報と、当該データの送信中に受信した前記データ要求パケットに含まれる前記指定情報とを比較し、前記指定情報の比較の結果に応じて当該データを送信させるように前記指定情報を再設定し、前記ネットワークを介して前記要求情報に対応する当該データを前記指定情報に応じて送信する。なお、前記送信中とは、時間に対して連続的又は間欠的にデータを継続的に送信している状態をいう。
【発明の効果】
【００１１】
本発明によれば、一個所の障害によりそれがシステム全体に波及することなく、回線容量を効率的に使用できるようにし、レスポンス時間の向上も図ることができるようになる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施の形態について図面を参照して説明する。
まず、図１に従って、この実施の形態のデータ送受信システムの構成及び概念について説明する。
このデータ送受信システムでは、サーバＡ（受信装置）１及びサーバＢ（受信装置）２と、コントローラ（送信装置）１１とが同一のＩＰマルチキャストグループ４内に属し、ＬＡＮ（Local Area Network）やインターネット等の図示しないネットワークを介して互いに通信可能に接続している。
【００１３】
サーバＡ１，サーバＢ２及びコントローラ１１は、コンピュータであり、図示しない中央処理装置（ＣＰＵ（Central Processing Unit））（単に処理部ともいう）や主記憶装置（単に記憶装置ともいう）や補助記憶装置（単に記憶装置ともいう）等を備えている。また、サーバＡ１，サーバＢ２及びコントローラ１１は、時間を計測する図示しないタイマを備えている。このタイマは、ＣＰＵとは別体で構成しても、ＣＰＵがクロック信号に基づいて処理して時間を計測するように構成したものであってもよい。
【００１４】
サーバＡ１，サーバＢ２及びコントローラ１１は、ＣＰＵが、補助記憶装置に格納しているＯＳ（Operating System）と各種アプリケーションプログラムとを主記憶装置にローディングさせて順に実行して、動作する。特に、サーバＡ１，サーバＢ２では、後記するように、本発明に特有の受信プログラムを実行する。また、コントローラ１１は、後記するように、本発明に特有の送信プログラムを実行する。なお、後記するように、サーバＡ１，サーバＢ２及びコントローラ１１は、ＴＣＰ／ＩＰ（Transmission Control Protocol Internet Protocol ））を実行して、データの送受信の信頼性を確保している。
【００１５】
受信プログラムは、サーバＡ１，サーバＢ２のＣＰＵに、データの受信に関する処理を主に実行させる。例えば、受信プログラムは、サーバＡ１，サーバＢ２のＣＰＵに、コントローラ１１に対してどのくらいデータを要求して受信するのかを指定する後記する指定情報を設定させる処理を実行させる。また、受信プログラムは、サーバＡ１，サーバＢ２のＣＰＵに、コントローラ１１に対してデータを要求すると共に、自身及びコントローラ１１のアドレス等の通信情報を含む後記する要求情報と、指定情報と、を含むデータ要求パケットを生成させる処理を実行させる。また、受信プログラムは、サーバＡ１，サーバＢ２のＣＰＵに、ネットワークを介してデータ要求パケットをコントローラに送信させる処理を実行させる。さらに、受信プログラムは、サーバＡ１，サーバＢ２のＣＰＵに、コントローラ１１からネットワークを介して伝送されてくるデータを指定情報に応じて受信させる処理を実行させる。なお、データ要求パケット、要求情報、指定情報についての詳細は、後記する。
【００１６】
送信プログラムは、コントローラ１１のＣＰＵに、ネットワークを介していずれかのサーバＡ１，サーバＢ２から送信された前記データ要求パケットを受信した場合に、データの送信に関する処理を主に実行させる。例えば、送信プログラムは、コントローラ１１のＣＰＵに、データ要求パケットの要求情報に対応するデータを既に送信中か否かを判定させる処理を実行させる。また、送信プログラムは、コントローラ１１のＣＰＵに、送信中でない場合には、データ要求パケットの要求情報に対応するデータを指定情報に応じて送信するように設定させる処理を実行する。送信プログラムは、コントローラ１１のＣＰＵに、送信中である場合には、送信中のデータに関する指定情報と、データの送信中に受信したデータ要求パケットに含まれる指定情報とを比較させる処理を実行させる。また、送信プログラムは、コントローラ１１のＣＰＵに、いずれの指定情報も満たしたデータを送信させるように再設定する処理を実行させる。さらに、送信プログラムは、コントローラ１１のＣＰＵに、ネットワークを介して要求情報に対応するデータを指定情報に応じて送信させる処理を実行させる。
【００１７】
なお、主記憶装置は、ＲＡＭ（Random Access Memory）である。補助記憶装置は、ＨＤ（Hard Disk）やＣＤ−ＲＯＭ（Compact Disc Read Only Memory）等のメディアのドライブである。また、補助記憶装置は、サーバＡ１，サーバＢ２やコントローラ１１等ごとに備えていなくても、任意のコンピュータに一括して備えていてもよい。また、補助記憶装置は、ＳＡＮ（Storage Area Network）に接続されたＲＡＩＤ（Redundant Arrays of Independent (Inexpensive) Disks）構成により単一の仮想的な記憶装置で構築されたものであってもよい。また、サーバＡ１，サーバＢ２、コントローラ１１等には、ＲＯＭ（Read Only Memory）が備えられ、さらに、Ｉ／Ｏ（Input Output）や各種デバイスが備えられている。
【００１８】
したがって、サーバＡ１，サーバＢ２は、それぞれ同じＩＰマルチキャストグループ４に属している。そのため、サーバＡ１，サーバＢ２は、ＣＰＵが受信プログラムを実行することにより、ＩＰマルチキャストグループ４内のコントローラ１１にデータ要求パケット１２１又は１２２を送信し、自律的にデータを要求するように自律的データ要求手段１０１として機能する。
【００１９】
なお、前記した指定情報は、例えば、時間を示す。ここでは、データ送信のタイムアウト時間（以下データ送信タイムアウト（T.O.）という）とする。このT.O.は、サーバＡ１，サーバＢ２のＣＰＵによりデータ要求パケットに設定される。そのため、サーバＡ１，サーバＢ２のＣＰＵが、自律的データ要求手段１０１として機能して、ネットワークを介してデータ要求パケットをコントローラ１１に送信させる。これにより、コントローラ１１が、T.O.を受け取ることになる。コントローラ１１のＣＰＵは、このT.O.を受け取って、既に、データ要求パケットで指定されたデータを送信中か否かによって、自身のT.O.の値（時間）を設定することになる。ここで、サーバＡ１の場合をT.O.時間１１１と記し、サーバＢ２の場合をT.O.時間１１２と記す。
【００２０】
例えば、サーバＡ１では、ＣＰＵが受信プログラムを実行することにより、T.O.時間１１１としてａ秒（＝６０秒）を指定して、自身の記憶装置に設定すると共に、T.O.時間１１１を含むデータ要求パケット１２１を生成する。また、サーバＢ２でも、ＣＰＵが受信プログラムを実行することにより、T.O.時間１１２としてｂ秒（＝９０秒）を指定して、自身の記憶装置に設定すると共に、T.O.時間１１２を含むデータ要求パケット１２２を生成する。
【００２１】
このとき、サーバＡ１，サーバＢ２は、ＣＰＵが受信プログラムを実行することにより、それぞれT.O.時間１１１、１１２を管理すると共に、計時される時間がT.O.時間１１１，１１２となる前にデータ要求パケット１２１，１２２を再度送信するようにデータ再要求手段１０３として機能する。なお、T.O.時間１１１等を管理するとは、ＣＰＵが、タイマにより計測した時間を取得して、T.O.時間１１１を経過するか否かを判定することを意味する。
【００２２】
一方、コントローラ１１は、ＣＰＵが送信プログラムを実行することにより、パケット送信停止手段１０２としても機能する。このパケット送信停止手段１０２としての機能では、データ要求パケット１２１又はデータ要求パケット１２２に従って、それぞれ送信元のサーバＡ１,Ｂ２とそれぞれT.O.時間１１１、１１２を管理する。また、この機能では、T.O.時間１１１，１１２が経過する前に、サーバＡ１，サーバＢ２から再度データ要求パケット１２１，１２２を受信しなかった場合に、定期的な送信を行っているときにはそのデータ送信を停止するようにもなっている。
【００２３】
次に、前記した構成のサーバＡ１，サーバＢ２及びコントローラ１１の処理の概念を説明する。
まず、サーバＡ１は、コントローラ１１との間で問合せ通信３１とその応答通信（ＡＣＫ（ACKnowledgment））３２とによる問合せ応答（ＴＣＰ／ＩＰ）通信を行って、通信状態を確立させた後、データ要求パケット１２１をコントローラ１１に送信する。そして、コントローラ１１は、データ要求パケット１２１を受信すると、サーバＡ１からのデータ要求パケット１２１に従い、T.O.時間１１１の設定・管理を行う。ここでは、コントローラ１１は、データの送信に伴い、その送信のT.O.時間を６０秒に設定し、時間の計測を開始する。また、ここでは、コントローラ１１は、センサ等のデバイス（図示せず）からのデータを取得し、定期的にＩＰマルチキャストグループ４内に取得したデータをＩＰマルチキャスト通信３３で送信していく。なお、プロトコルは、ＴＣＰではなく、ＵＤＰ（User Datagram Protocol）であってもよい。
【００２４】
一方、サーバＡ１は、T.O.時間１１１を管理して、連続してデータを要求する場合にはタイムアウトとなる前（例えば、T.O.時間１１１のａ＝６０秒よりも短い５０秒とする）に再度コントローラ１１に対して、データ要求パケット１２１を送信する。そして、コントローラ１１は、データ要求パケット１２１を受信すると（例えば、前回受信したデータ要求パケット１２１に従ったデータの送信から５２秒経過時に受信すると）、サーバＡ１からのデータ要求パケット１２１に従い、T.O.時間１１１の再設定・管理を行う。
【００２５】
このとき、コントローラ１１は、現在要求元のサーバＡ１からのデータ要求パケット１２１であることを確認し、現在計測中の時間が経過したときに、連続してデータを送信させるように設定する。つまり、ここでは、コントローラ１１は、前回のデータ要求時に設定したT.O.時間１１１のａ（＝６０）秒の経過後に、再度T.O.時間１１１のａ（＝６０）秒分のデータの要求があったこととして扱うことになる。
【００２６】
次に、前記したように、サーバＡ１とコントローラ１１との間の通信が確立すると共に、コントローラ１１からＩＰマルチキャストグループ４内に、ＩＰマルチキャスト通信が行われているときに、サーバＢ２がコントローラ１１に対して、データ要求パケット１２２を送信する場合を説明する。
【００２７】
まず、サーバＢ２は、サーバＡ１と同様に、コントローラ１１との間で問合せ通信３１とその応答通信３２とによる問合せ応答（ＴＣＰ／ＩＰ）通信３１を行って、データ要求パケット１２２をサーバＢ２に送信する。そして、コントローラ１１は、データ要求パケット１２２を受信すると、サーバＡ１のT.O.時間１１１の経過前に、サーバＢ２からデータ要求パケット１２２を受信したときに、サーバＢ２からのデータ要求パケット１２２に従い、T.O.時間１１２の設定・管理を行う。
【００２８】
このとき、コントローラ１１は、再度サーバＡ１よりデータ要求パケット１２１を受信すると、現時点で管理しているT.O.時間１１２の残量と、データ要求パケット１２１のT.O.時間１１１とを比較し、値の大きい方を有効値として、T.O.時間の設定・管理を行う。例えば、コントローラ１１は、サーバＡ１からのデータ要求パケット１２１に従って、T.O.時間１１１をａ＝６０秒に設定してある場合に、４０秒経過後に、サーバＢ２からのデータ要求パケット１２２を受信する。このときには、残量が２０秒（６０秒−４０秒）であり、T.O.時間１１２がｂ＝９０秒に設定してあるとすると、有効値が９０秒である。そのため、コントローラ１１は、ｂ＝９０秒のT.O.時間に再設定し、管理を行うことになる。
【００２９】
なお、既に設定してあるT.O.時間のままでよい場合には、再設定を行わず、次に送られてくるデータ要求パケット１２１,１２２等を待つことになる。また、このとき、コントローラ１１は、管理しているT.O.時間１１２内にデータ要求パケット１２１又はデータ要求パケット１２２を受信しなかった場合には、データのＩＰマルチキャスト通信３３を停止することになる。
【００３０】
このように、コントローラ１１は、サーバＡ１，サーバＢ２からデータ要求パケット１２１，１２２が送信されてくるたびに、現在の設定時間と比較する。そして、設定変更が必要な場合、つまり、後から送信されたT.O.時間の方が長いときには、その時間に再設定して、データのＩＰマルチキャスト通信３３を行う。そのため、コントローラ１１は、サーバＡ１，サーバＢ２に対して、同一データの送信を効率的に行うことができる。
【００３１】
一方、サーバＡ１にとっては、自身が要求したａ＝６０秒というT.O.時間１１１ごとに要求・再要求に応じて、必要なだけデータを取得することができる。また、サーバＢ２にとっても、サーバＡ１よりも後にデータ要求パケット１２２を送信したけれども、コントローラ１１ではサーバＢ２の要求としてのT.O.時間１１２に再設定して、ＩＰマルチキャスト通信３３を行うため、必要なだけデータを取得することができる。
【００３２】
次に、図２に従って、データ要求パケットのフレーム（フォーマット）の構成について説明する。
データ要求パケット（１２１，１２２）は、ＩＰアドレスを有するＩＰヘッダ１９９と、送信元・宛先ポートや応答確認番号（ＡＣＫ）を有するＴＣＰヘッダ２００とを含んでいる。また、データ要求パケット（１２１，１２２）は、データ送信タイムアウト２０１と、データ送信間隔２０２と、ＴＣＤ（Transaction CoDe）２０３とを含んでいる。
【００３３】
データ送信タイムアウト２０１は、データ要求パケット（１２１，１２２）を送信したサーバＡ１，サーバＢ２（図１参照）から再度パケットを受信するまでのT.O.時間１１１，１１２（図１参照）の値を表す。例えば、サーバＡ１から送信されたデータ要求パケット１２１内のデータ送信タイムアウト２０１は、a秒となり、つまりサーバＡ１のT.O.時間１１１である。
【００３４】
データ送信間隔２０２は、データを要求したサーバＡ１，サーバＢ２が属するＩＰマルチキャストグループ４に対して、データの要求を受けたコントローラ１１が定期的にデータを送信する間隔を表す。例えば、１時間おきのように指定される。ＴＣＤ２０３は、ＩＰマルチキャストグループ情報であり、データを取得するデバイス、送信先のＩＰマルチキャストグループ４などを表す。なお、データ要求パケットには、要求元となるサーバＡ１等を区別するサーバ名等も含まれている。
【００３５】
ところで、コントローラ１１では、各サーバＡ１，サーバＢ２等との通信を行うための管理情報が主記憶装置や補助記憶装置に保存されて管理されている。その管理情報は、ここでは、ＴＣＤと同一の情報とする。これにより、後記するように、コントローラ１１のＣＰＵは、送信されてくるデータ要求パケット１２１等のＴＣＤ２０３と、自身が管理する管理情報とを比較して、データ要求パケット１２１，１２２の送信元が既に送信中のデータの要求元のサーバＡ１，サーバＢ２か否かを判定する。
【００３６】
次に、図３に示すフローチャートに従って、サーバＡ１，サーバＢ２におけるデータ要求パケット１２１，１２２の送信・再送信を行うデータ要求処理３００について説明する。なお、サーバＡ１について説明するが、サーバＢ２についても同様であるため省略する。
【００３７】
サーバＡ１のＣＰＵは、データ要求パケット１２１を送信する前に、要求するデータがネットワーク上に既に流れているか否かを判定する（ステップ３００−１）。そして、ＣＰＵは、データが既に流れていた場合（ステップ３０１，ＹＥＳ）には、ネットワーク上に既に流れているデータを受信して（ステップ３０１）、ステップ３０２に処理を移す。一方、ＣＰＵは、データが既に流れていない場合（ステップ３００−１，ＮＯ）には、そのままステップ３０２に処理を移す。
【００３８】
ＣＰＵは、前記したように、T.O.時間１１１を含むデータ要求パケット１２１を生成して、コントローラ１１に対してデータ要求パケット１２１を送信し（ステップ３０２）、ステップ３０４に処理を移す。なお、ここでの送信は、ユニキャスト通信が好ましいが、ブロードキャスト通信でもＩＰマルチキャスト通信であってもよい。
【００３９】
次に、ＣＰＵは、T.O.時間１１１のタイムアウト時間を図示しないタイマにより管理する（ステップ３０３）。そして、ＣＰＵは、T.O.時間１１１になる前に、ステップ３０４の処理に移る。ＣＰＵは、コントローラ１１との通信のタイムアウト前に再度、データを必要とするか否かを判定する（ステップ３０４）。そして、ＣＰＵは、データを必要する場合（ステップ３０４，ＹＥＳ）には処理をステップ３０２に戻し、データを必要としない場合（ステップ３０４，ＮＯ）には処理を終了する。
【００４０】
次に、図４に示すフローチャートに従って、コントローラ１１でのＩＰマルチキャストグループ４内にデータを送信するデータ送信処理４００について説明する。
まず、コントローラ１１のＣＰＵは、データ要求パケット１２１等を受信（ステップ４０１）すると、管理情報を保存した主記憶装置や補助記憶装置を探索する。そして、ＣＰＵは、データ要求パケット１２１内の同じＴＣＤ２０３が管理情報に存在するか否かを判定する（ステップ４０１−１）。
【００４１】
ＣＰＵは、ＴＣＤ２０３が管理情報に存在しない場合（ステップ４０１−１，ＮＯ）には、新規に、要求元サーバ名と、データ送信タイムアウト（タイムアウト時間）２０１と、データ送信間隔２０２と、ＴＣＤ２０３とを管理情報に登録して（ステップ４０２）、処理をステップ４０４に移す。
【００４２】
一方、ＣＰＵは、ＴＣＤ２０３が管理情報に存在する場合（ステップ４０１−１，ＹＥＳ）には、同じ要求元のサーバ名が管理情報に存在するか否かを判定する（ステップ４０１−２）。より具体的には、ＣＰＵは、ＴＣＤ２０３と同じでかつ要求元サーバ名が同じもの、つまりデータ要求パケット１２１等を送信したサーバＡ１等のサーバ名が管理情報に存在するか検索する。
【００４３】
そして、ＣＰＵは、そのサーバ名が管理情報に存在しなかった場合（ステップ４０１−２，ＮＯ）には、現在、管理情報上のＴＣＤ２０３に対するタイムアウト時間の残量値と、受信したデータ要求パケット１２１内のデータ送信タイムアウト２０１の値を比較する。そして、ＣＰＵは、その比較の結果、値の大きい方の要求元サーバ名、データ送信タイムアウト２０１、データ送信間隔２０２及びＴＣＤ２０３を管理情報に設定し（ステップ４０３−１）、処理をステップ４０４に移す。一方、ＣＰＵは、そのサーバ名が管理情報に存在した場合（ステップ４０１−２，ＹＥＳ）には、管理情報のタイムアウト時間を更新して（ステップ４０３）、処理をステップ４０４に移す。
【００４４】
次に、ＣＰＵは、登録した情報に従って、ＴＣＤ２０３によって指定されたデバイスよりデータを取得し、ＴＣＤ２０３によって指定されたＩＰマルチキャストグループ４内にデータ送信間隔２０２で定期的にＩＰマルチキャスト通信により送信する（ステップ４０４）。なお、ＣＰＵは、要求元のサーバＡ１等であらかじめ設定された繰り返し回数の経過後に処理を終了すればよい。
【００４５】
次に、図５に示すフローチャートに従って、コントローラ１１での定期的なデータ送信停止処理５００について説明する。このデータ送信停止処理５００は、コントローラ１１が一定期間データ要求パケット１２１を受信しなかった場合に、ＩＰマルチキャストグループ４内への送信中のデータの送信を停止する処理である。なお、前記送信中とは、時間に対して連続的又は間欠的にデータを継続的に送信している状態をいう。
【００４６】
コントローラ１１の運用中に、コントローラ１１のＣＰＵは、管理情報内のタイムアウト時間内に、データ要求パケット１２１等を受信したか否かを判定する（ステップ５００−１）。そして、ＣＰＵは、受信した場合（ステップ５００−１，ＹＥＳ）には、処理をデータ送信処理４００（図４参照）に移す。
【００４７】
一方、ＣＰＵは、受信しなかった場合（ステップ５００−１，ＮＯ）には、タイムアウトとなった要求元サーバ名、データ送信タイムアウト２０１、データ送信間隔２０２、ＴＣＤ２０３を含む管理情報を探索し、その管理情報を削除して（ステップ５０１）、処理をステップ５０２に移す。そして、ＣＰＵは、最後にタイムアウトとなったＴＣＤ２０３に対するＩＰマルチキャストグループ４内への定期的なデータの送信を停止して（ステップ５０２）、処理を終了する。
【００４８】
したがって、この実施の形態によれば、サーバＡ１，サーバＢ２は、それぞれ自律的に同じＩＰマルチキャストグループ４内のコントローラ１１にデータ要求パケット１２１，１２２を送信することで、集中管理を行わないで自律的にデータを要求する。データ要求パケット１２１，１２２にT.O.時間１１１，１１２を含めてサーバＡ１，サーバＢ２とコントローラ１１とが通信する。コントローラ１１は、その都度要求されたときに自身で管理しているT.O.時間１１１，１１２と比較して、T.O.時間１１１，１１２の設定値を更新し、サーバＡ１，サーバＢ２から同一のデータの送信要求に対して効率的にＩＰマルチキャスト通信３３により送信することができるようになる。
【００４９】
そのため、必要としないデータの定期的な送信を抑制し、ネットワーク上に過剰にパケットを送信しないため、使用可能で必要な回線容量(通信速度)を削減することも可能となる。また、サーバＡ１，サーバＢ２上に転写メモリを実装しないため、メモリ使用量を削減可能となる。また、サーバＡ１，サーバＢ２にとっては、データの要求時に既にネットワークに流れている（伝送されている）データを受信するようにすれば、レスポンス時間を従来に比べて向上させることができる。
【００５０】
次に、図６を参照して、データ送受信システムのプラント監視システムへの適用例を説明する。ここで、サーバＡ１，サーバＢ２，サーバＣ３と、コントローラ１１，１２とが有線ネットワーク６に接続され、互いに通信可能になっている。また、二つのＩＰマルチキャストグループ４，５がある。ＩＰマルチキャストグループ４には、サーバＡ１，サーバＢ２と、コントローラ１１とが含まれている。ＩＰマルチキャストグループ５には、サーバＢ２，サーバＣ３と、コントローラ１２とが含まれている。また、コントローラ１１は、プラントの状態を得る情報デバイスとして、ＰＩ／Ｏ（Parallel Input Output）２１や温度センサα２２を実装し、同様にコントローラ１２は温度センサβ２３を実装している。
【００５１】
なお、コントローラ１１，コントローラ１２には、パケット送信停止手段１０２が含まれている。また、サーバＣ３は、T.O.時間１１３を含むデータ要求パケットを生成する。また、このプラント監視システムでは、サーバＡ１，サーバＢ２，サーバＣ３は監視装置であり、サーバＡ１は画面α６０１、サーバＢ２は画面α６０１，画面β６０２、サーバＣ３は画面β６０２を実装している。また、サーバＡ１，サーバＢ２，サーバＣ３は自律的データ要求手段１０１、データ再要求手段１０３を有している。
【００５２】
このプラント監視システムでは、コントローラ１１は、サーバＡ１，サーバＢ２からの要求に対して、前記したように、T.O.時間１１１，１１２によりタイムアウト時間の設定を更新していきながら、定期的に温度センサα２２からの温度データをサーバＡ１，サーバＢ２に送信することで、サーバＡ１，サーバＢ２の図示しないディスプレイ上に、画像α６０１を表示させる。同様にして、コントローラ１２は、サーバＢ２，サーバＣ３からの要求に対して、前記したように、T.O.時間１１２，１１３によりタイムアウト時間の設定を更新していきながら、データの送受信を行い、定期的に温度センサ２３からの温度データをサーバＢ２，サーバＣ３に送信することで、サーバＢ２，サーバＣ３の図示しないディスプレイ上に、画像β６０２を表示させる。
【００５３】
このように、サーバＡ１，サーバＢ２，サーバＣ３は、それぞれが別々にコントローラ１１に送信要求を行うことで、コントローラ１１が各ＩＰマルチキャストグループ４，５ごとにデータを送信する。そのため、サーバＡ１，サーバＢ２，サーバＣ３は、それぞれが自律的に処理を行っても、コントローラ１１が効率良くデータを送信することができる。これにより、ＩＰマルチキャストグループ４内に属するサーバＡ１，サーバＢ２は、同一の画面α６０１を表示する。また、ＩＰマルチキャストグループ５内に属するサーバＢ２，サーバＣ３は、同一の画面β６０２を表示する。
【００５４】
図７に従って、図６のプラント監視システムにおける画面α６０１及び画面β６０２を表す温度監視画面７００の一例を説明する。この温度監視画面７００は、温度センサα２２，温度センサβ２３のデータを要求したサーバＡ１，サーバＢ２，サーバＣ３が、コントローラ１１，１２を介してＩＰマルチキャストグループ４，５ごとに取得した温度センサα２２，サーバβ２３の温度の遷移を、図示しないディスプレイ上に必要に応じて表示する画面である。この温度監視画面７００には、温度センサα２２，温度センサβ２３が検出した現在温度の画像α６０１を表示させる領域と、縦軸に温度、横軸に経過時間をとった温度状態遷移の画像β６０２を表示させる領域とが含まれている。
【００５５】
このように、この実施の形態のデータ送受信システムは、プラント監視システムのように、複数のサーバが定期的に大量のデータを収集して、プラント状態を監視するような処理に有効である。
【００５６】
また、サーバＡ１，サーバＢ２，サーバＣ３のＣＰＵは、温度センサα２２，温度センサβ２３の温度データを演算するようにしてもよい。そして、サーバＡ１，サーバＢ２，サーバＣ３のＣＰＵは、例えば、温度等の入力信号に対する設定されたしきい値と温度とを比較したときの演算結果やその演算結果により異常であることを示すメッセージを温度監視画面７００に表示させるようにしてもよい。
【００５７】
以下に、前記した実施の形態で説明した処理を含めさらに特徴のある点について他の処理として記載する。なお、受信装置（サーバ）や送信装置（コントローラ）の数は、前記した実施の形態で説明した数に限らない。そして、受信装置（サーバ）や送信装置（コントローラ）は、前記したように、ネットワーク上で自律的に処理を実行する。
【００５８】
[他の処理１]
他の処理１では、受信装置の処理部は、送信装置に対してデータの送信を要求する場合には、送信装置に対して要求するデータがネットワーク上を既に伝送されているか否かを判定し、要求するデータがネットワーク上を既に伝送されているときには、伝送されているデータを指定情報に応じて受信させることととしてもよい。
【００５９】
[他の処理２]
他の処理２では、前記他の処理１において、受信装置の処理部は、ネットワーク上を既に伝送されているデータの受信を開始するとき、又は、そのデータを受信しているときに、データ要求パケットを生成して、送信装置に対してネットワーク上に送信させるようにしてもよい。
【００６０】
[他の処理３]
他の処理３では、前記他の処理２において、受信装置の処理部は、データ要求パケットを生成する場合に、ネットワーク上を既に伝送されているデータを受信しているときに、データを受信した分に相当する指定情報を差し引いて、新たに指定情報を設定してデータ要求パケットを生成して、送信装置に対してネットワーク上に送信させるようにしてもよい。
【００６１】
[他の処理４]
他の処理４では、受信装置の処理部は、要求するデータがネットワーク上に伝送されていないときには、データがネットワークを伝送されてきたときに指定情報に応じて受信を開始すればよい。
【００６２】
[他の処理５]
他の処理５では、送信装置の処理部は、ネットワーク上に接続する全ての受信装置に対してブロードキャストによりデータを送信し、ネットワークに接続する全ての受信装置の処理部は、ブロードキャストされてくるデータを、自身が要求したデータか否かを判定して、指定情報に応じて自身の要求するデータの場合に、ブロードキャストされてくるデータを受信することとしてもよい。
【００６３】
[他の処理６]
他の処理６では、受信装置の処理部は、少なくとも２種類のアプリケーションプログラムを実行し、前記アプリケーションプログラムごとに、前記指定情報を設定し、前記要求情報と前記指定情報とを含むデータ要求パケットを生成し、前記ネットワークを介して前記データ要求パケットを前記送信装置に送信させ、前記ネットワークを介して前記送信装置から伝送されてくるデータを受信して、いずれの前記アプリケーションプログラムが要求したデータか否かを判別して、前記アプリケーションプログラムに伝送されたデータを渡すようにしてもよい。
【００６４】
[他の処理７]
他の処理７では、指定情報は、任意の所定時間を表し、例えば所定時間内にデバイスが検出したデータを示すばかりでなく、任意の指定時刻を表し、例えば指定時刻と指定時刻との間にデバイスが検出したデータとするようにしてもよい。また、指定情報は、任意の所定時間帯を表し、例えば午前１２時の時間帯にデバイスが検出したデータとするようにしてもよい。また、指定情報は、任意のデータ量を表し、デバイスの検出したデータの所定の統計を取るのに必要なデータ量とすることとしてもよい。その他、データを指定することができる情報であれば、ここに挙げた例に限らない。その他としては、データ量（パケット数）やデータ長さなどとすることも可能である。このように、指定時刻・時間帯・データ量・データ長等のように指定情報を設定することにより、受信装置がどのくらいデータを要求するのかを表すことができる。
【００６５】
なお、この明細書中、「指定情報に応じて」とは、例えば、所定時間帯の場合には遅い方を指定することを意味する。例えば、午後３時の時間帯と、午後６時の時間帯とが指定情報として要求された場合には、午後６時の時間帯を指定することを意味する。つまり、指定情報という条件、ここでは時間帯の全てが、成り立つということを意味している。
【図面の簡単な説明】
【００６６】
【図１】実施の形態のデータ送受信システムの構成及び概念について説明する図である。
【図２】実施の形態のデータ送受信システムにおけるデータ要求パケットのフレーム（フォーマット）の構成について説明する図である。
【図３】実施の形態のデータ送受信システムにおけるサーバでのデータ要求パケットの送信・再送信を行うデータ要求処理について説明するフローチャートである。
【図４】実施の形態のデータ送受信システムにおけるコントローラでのデータ送信処理について説明するフローチャートである。
【図５】実施の形態のデータ送受信システムにおけるコントローラでの定期的なデータ送信停止処理について説明するフローチャートである。
【図６】実施の形態のデータ送受信システムをプラント監視システムへの適用例を説明する図である。
【図７】図６のプラント監視システムにおける温度監視画面の一例を説明する図である。
【符号の説明】
【００６７】
１，２，３        サーバ
４，５            ＩＰマルチキャストグループ
１１，１２        コントローラ
３１              問合せ通信
３２              応答通信
３３              ＩＰマルチキャスト通信
１１１，１１２    T.O.時間
１２１，１２２    データ要求パケット
【図１】
0004589861.tif 000002
【図２】
0004589861.tif 000003
【図３】
0004589861.tif 000004
【図４】
0004589861.tif 000005
【図５】
0004589861.tif 000006
【図６】
0004589861.tif 000007
【図７】
0004589861.tif 000008