(57)【要約】【課題】制御系通信のリアルタイム性が損なわれるのを抑制しつつ、情報系通信のスループットを向上させる。【解決手段】ＯＳ１３５０により管理され並列的に処理される情報処理系タスク１３１０および制御処理系タスク１３２０から出力されるデータをＬＡＮ１８２０へ出力する。情報処理系タスク１３１０および制御処理系タスク１３２の処理系タスクの出力データを通信データに加工し、ＮＩＣ１５００を介して順番にＬＡＮ１８２０へ出力する通信処理系タスク１３３０を有する。通信処理系タスク１３３０は、ＯＳ１３５０のフラグ登録部１３６０にフラグが設定されている場合に、情報処理系タスク１３１０の出力データのデータサイズを調整するサイズ調整部１３６０を有する。【選択図】図１
2004363782.tif 000002
【特許請求の範囲】
【請求項１】
オペレーティングシステムにより管理され並列的に処理される第１の処理系タスクおよび第２の処理系タスクから出力されるデータを、ネットワークへ出力する通信制御装置であって、
前記第１および第２の処理系タスクの出力データを通信データに加工する通信データ処理手段と、
前記通信データ処理手段で生成される通信データ各々を、順番に前記ネットワークへ出力するネットワーク送出手段と、
前記通信データ処理手段へ入力する前記第１の処理系タスクの出力データのデータサイズを制御するデータサイズ調整手段と、を有すること
を特徴とする通信制御装置。
【請求項２】
請求項１記載の通信制御装置であって、
前記データサイズ調整手段は、前記第２の処理系タスクの状態により前記第１の処理系タスクの出力データのデータサイズを制御すること
を特徴とする通信制御装置。
【請求項３】
請求項１記載の通信制御装置であって、
前記オペレーティングシステムは、前記第２の処理系タスクの出力データを優先すべき旨を示すフラグを、所定間隔毎に所定時間設定し、
前記データサイズ調整手段は、前記第２の処理系タスクの出力データを優先すべき旨を示すフラグが設定されている場合に、前記通信データ処理手段へ入力する前記第１の処理系タスクの出力データのデータサイズを、前記フラグが設定されていない場合に比べ小さくすること
を特徴とする通信制御装置。
【請求項４】
請求項１記載の通信制御装置であって、
前記オペレーティングシステムは、前記第２の処理系タスクの出力データを優先すべき旨を示すフラグを、所定間隔毎に前記第２の処理系タスクの通信相手から通信終了指示を受信するまで設定し、
前記データサイズ調整手段は、前記第２の処理系タスクの出力データを優先すべき旨を示すフラグが設定されている場合に、前記通信データ処理手段へ入力する前記第１の処理系タスクの出力データのデータサイズを、前記フラグが設定されていない場合に比べ小さくすること
を特徴とする通信制御装置。
【請求項５】
請求項１記載の通信制御装置であって、
前記ネットワーク送出手段により前記第２の処理系タスクの通信相手へ送信された通信データに対する応答が、所定時間内に到達せずにタイムアウトとなった回数を計測するタイムアウト回数計測手段をさらに有し、
前記データサイズ調整手段は、前記タイムアウト回数計測手段の計測値が所定の閾値以上となった場合に、前記通信データ処理手段へ入力する前記第１の処理系タスクの出力データのデータサイズを、前記計測値が前記所定の閾値未満の場合に比べて小さくすること
を特徴とする通信制御装置。
【請求項６】
請求項１記載の通信制御装置であって、
前記ネットワーク送出手段により前記第２の処理系タスクの通信相手へ送信された通信データに対する応答が、所定時間内に到達せずにタイムアウトとなった回数を計測するタイムアウト回数計測手段をさらに有し、
前記データサイズ調整手段は、前記タイムアウト回数計測手段の計測値が大きくなるほど、前記通信データ処理手段へ入力する前記第１の処理系タスクの出力データのデータサイズを小さくすること
を特徴とする通信制御装置。
【請求項７】
請求項１記載の通信制御装置であって、
前記ネットワーク送出手段が前記第２の処理系タスクの通信相手へ通信データを送出してから前記通信相手より応答を受信するまでの応答時間を計測する応答時間計測手段をさらに有し、
前記データサイズ調整手段は、前記応答時間計測手段の計測値が所定の閾値以上となった場合に、前記通信データ処理手段へ入力する前記第１の処理系タスクの出力データのデータサイズを、前記計測値が前記所定の閾値未満の場合に比べて小さくすること
を特徴とする通信制御装置。
【請求項８】
請求項１記載の通信制御装置であって、
前記ネットワーク送出手段が前記第２の処理系タスクの通信相手へ通信データを送出してから前記通信相手より応答を受信するまでの応答時間を計測する応答時間計測手段をさらに有し、
前記データサイズ調整手段は、前記応答時間計測手段の計測値が大きくなるほど、前記第１の通信データ処理手段へ入力する前記処理系タスクの出力データのデータサイズを小さくすること
を特徴とする通信制御装置。
【請求項９】
請求項１記載の通信制御装置であって、
前記ネットワーク送出手段は、前記第２の処理系タスクの出力データを優先すべき旨の指示が入力された場合に、前記ネットワークへ送出するために保持している前記第１の処理系タスクの通信データを破棄すると共に、当該通信データの再送要求を前記通信データ処理手段に出力し、
前記通信データ処理手段は、前記第１の処理系タスクの通信データに対する応答を受信するまで、当該通信データを保持すると共に、当該通信相手あるいは前記ネットワーク送出手段から再送要求を受信した場合、当該通信データを前記ネットワーク送出手段で再度出力すること
を特徴とする通信制御装置。
【請求項１０】
請求項１記載の通信制御装置であって、
前記第１の処理系タスクは、通信相手との通信にＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）を利用する情報処理系タスクであり、
前記第２の処理系タスクは、通信相手との通信にＵＤＰ（Ｕｓｅｒ  ｄａｔａｇｒａｍ  ｐｒｏｔｏｃｏｌ）を利用する制御系タスクであり、
前記通信データ処理手段は、前記第１の処理系タスクの出力データをＴＣＰに従ってパケット化するＴＣＰ処理手段と、前記第２の処理系タスクの出力データをＵＤＰに従ってパケット化するＵＤＰ処理手段と、を有すること
を特徴とする通信制御装置。
【請求項１１】
請求項１記載の通信制御装置であって、
前記第１の処理系タスクは、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）を利用して映像を含む情報処理データを通信相手と送受する情報処理系タスクであり、
前記第２の処理系タスクは、ＵＳＢを利用してコマンドを含む制御データを通信相手と送受する制御系タスクであること
を特徴とする通信制御装置。
【請求項１２】
オペレーティングシステムにより管理され並列的に処理される第１の処理系タスクおよび第２の処理系タスクから出力されるデータを、ネットワークへ出力する通信制御方法であって、
前記第１および第２の処理系タスクの出力データを通信データに加工するステップと、
加工した通信データ各々を順番に前記ネットワークへ出力するステップと、
前記加工するステップに先立ち、通信データに加工する前記第１の処理系タスクの出力データのデータサイズを制御するステップと、を有すること
を特徴とする通信制御方法。
【請求項１３】
請求項１２記載の通信制御方法であって、
前記制御するステップは、前記第２の処理系タスクの状態により前記第１の処理系タスクの出力データのデータサイズを制御すること
を特徴とする通信制御方法。
【請求項１４】
オペレーティングシステムにより管理され並列的に処理される第１の処理系タスクおよび第２の処理系タスクから出力されるデータを、ネットワークへ出力するプログラムであって、
コンピュータを、
前記第１および第２の処理系タスクの出力データを通信データに加工する通信データ処理手段、
前記通信データ処理手段で生成される通信データ各々を順番に前記ネットワークへ出力するネットワーク送出手段、および、
前記通信データ処理手段へ入力する前記第１の処理系タスクの出力データのデータサイズを制御するデータサイズ調整手段として機能させること
を特徴とするプログラム。
【請求項１５】
請求項１４記載のプログラムであって、
前記データサイズ調整手段は、前記第２の処理系タスクの状態により前記第１の処理系タスクの出力データのデータサイズを制御すること
を特徴とするプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、通信制御技術に関し、特に、オペレーティングシステムにより管理されるタスクから出力されるデータをネットワークへ出力する技術に関する。
【０００２】
【従来の技術】
特許文献１には、伝送路の品質状態に応じて通信プロトコルをＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）およびＵＤＰ（Ｕｓｅｒ  ｄａｔａｇｒａｍ  ｐｒｏｔｏｃｏｌ）のいずれか一方に切り替えると共に、パケットサイズを切り替えて通信を行なう技術が開示されている。ＴＣＰは、通信品質を保証するための処理を行うため、ＵＤＰに比べてリアルタイム性が劣る。このため、映像などの情報処理データをＰＣなどの情報処理装置に通信する場合（情報系通信と呼ぶ）には、一般にＴＣＰが利用されるのに対し、コマンドなどの制御データをＩ／Ｏボードなどの制御装置に通信する場合（制御系通信と呼ぶ）には、リアルタイム性の高いＵＤＰが利用されることが多い。
【０００３】
【特許文献１】
特開平１１−３１３３３０号公報
【０００４】
【発明が解決しようとする課題】
情報系通信や制御系通信のために、情報処理装置や制御装置などの装置間の接続にイーサネット（登録商標）が用いられることが多い。近年のＣＰＵやＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）の性能向上により、１つのＣＰＵあるいはＮＩＣで情報系通信および制御系通信の両方を並列的に処理することも可能である。しかし、この場合、次のような問題が生じることが考えられる。
【０００５】
すなわち、情報系通信において、映像などの大容量データを通信する場合、データサイズを可能な限り大きくして、例えばイーサネット（登録商標）のフレームのヘッダ情報付加などによるオーバヘッドを減らし、スループットを上げることが好ましい。しかし、情報系通信のデータサイズを大きくすると、データ処理に係る時間が長くなり、その期間のＣＰＵやＮＩＣが占有されてしまう。このため、制御系通信のリアルタイム性が損なわれてしまう。
【０００６】
本発明は上記事情に鑑みてなされたものであり、本発明の目的は、制御系通信のリアルタイム性が損なわれるのを抑制しつつ、情報系通信のスループットを向上させることができるようにすることにある。
【０００７】
【課題を解決するための手段】
上記課題を解決するために、本発明の通信制御装置は、オペレーティングシステムにより管理され並列的に処理される第１の処理系タスクおよび第２の処理系タスクから出力されるデータを、ネットワークへ出力する。そして、前記第１および第２の処理系タスクの出力データを通信データに加工する通信データ処理手段と、前記通信データ処理手段で生成される通信データ各々を、順番に前記ネットワークへ出力するネットワーク送出手段と、前記通信データ処理手段へ入力する前記第１の処理系タスクの出力データのデータサイズを調整するデータサイズ調整手段と、を有する。ここで、前記データサイズ調整手段は、前記第２の処理系タスクの状態により前記第１の処理系タスクの出力データのデータサイズを制御するものでもよい。
【０００８】
前記第１の処理系タスクが行なう通信を情報系通信、前記第２の処理系タスクが行なう通信を制御系通信とした場合、本発明によれば、前記データサイズ調整手段により、前記第２の処理系タスクによる制御系通信の頻度が高い期間、前記通信データ処理手段へ入力する前記第１の処理系タスクの出力データのデータサイズを小さくすることができる。このようにすることで、制御系通信の頻度が高い期間は、情報系通信のデータサイズを小さくして制御系通信のリアルタイム性が損なわれるのを防止し、制御系通信の頻度が低い期間は、情報系通信のデータサイズを大きくして情報系通信のスループットを向上させることができる。
【０００９】
本発明において、前記ネットワーク送出手段は、前記第２の処理系タスクの出力データを優先すべき旨の指示が入力された場合に、前記ネットワークへ送出するために保持している前記第１の処理系タスクの通信データを破棄すると共に、当該通信データの再送要求を前記通信データ処理手段に出力してもよい。そして、前記通信データ処理手段は、前記第１の処理系タスクの通信データに対する応答を受信するまで、当該通信データを保持すると共に、当該通信相手あるいは前記ネットワーク送出手段から再送要求を受信した場合、当該通信データを前記ネットワーク送出手段で再度出力してもよい。
【００１０】
このようにした場合、前記第２の処理系タスクによる制御系通信の頻度が高い場合に、前記第２の処理系タスクの出力データを優先すべき旨の指示を前記ネットワーク送出手段に入力することで、制御系通信の通信データを優先して前記ネットワークへ出力することができる。これにより、制御系通信のリアルタイム性が損なわれるのを抑制しつつ、情報系通信のスループットを向上させることができる。なお、この場合は前記データサイズ調整手段を設けなくてもよい。
【００１１】
なお、本発明において、前記第２の処理系タスクによる制御系通信の頻度が高いか否かの判断は、例えば、前記第１および第２の処理系タスクを管理するオペレーティングシステムの指示や、前記第２の処理系タスクの通信相手からの応答が正しく送られてくるか否かを確認することで行なうことができる。
【００１２】
【発明の実施の形態】
以下、本発明の実施の形態を説明する。
【００１３】
図１は、本発明の一実施形態が適用された制御装置の概略図である。
【００１４】
本実施形態の制御装置１１００は、ＬＳＩマスク装置や血液分析装置などの各種制御装置に適用可能である。図示するように、メインコントローラ１２００と、少なくとも１つＩ／Ｏボード１６００と、メインコントローラ１２００およびＩ／Ｏボード１６００間を接続するＬＡＮ１８２０と、を有する。ＬＡＮ１８２０には、ＰＣ１７００などの汎用コンピュータも接続されている。
【００１５】
Ｉ／Ｏボード１６００には、モータ１６１０やセンサ１６２０などの被制御装置が接続されており、メインコントローラ１２００より出力された通信データを被制御装置に送信したり、被制御装置より出力された通信データをメインコントローラ１２００へ送信したりする。
【００１６】
メインコントローラ１２００は、ＬＡＮ１８２０を介してＩ／Ｏボード１６００と制御系通信を行って、Ｉ／Ｏボード１６００に接続された被制御装置にコマンドを含む制御データを送信したり、被制御装置で計測された計測データを受信したりする。また、メインコントローラ１２００は、ＬＡＮ１８２０を介してＰＣ１７００と情報系通信を行なって映像を含む情報処理データを送受する。
【００１７】
図示するように、メインコントローラ１２００は、ＣＰＵ１４００、メモリ１３００、および、メインコントローラ１２００をＬＡＮ１８２０に接続するＮＩＣ１５００が、バス１８１０で互いに接続された構成を有する。ＣＰＵ１４００は、メモリ１３００に格納された各プログラムを実行する。メモリ１３００には、ＯＳ（オペレーティングシステム）１３５０、および、ＯＳ１３５０によって管理され並列的に処理されるタスク１３１０〜１３３０が格納されている。
【００１８】
ＯＳ１３５０は、上述したように、タスク１３１０〜１３３０を管理し、所定の順番でこれらのタスクを切り替えながら実行することにより、タスク１３１０〜１３３０を並列的に処理する。また、本実施形態のＯＳ１３５０には、通信処理系タスク１３３０に、制御処理系タスク１３２０の出力データを優先すべき旨を通知するためのフラグを登録するフラグ登録部１３６０が設けられている。一般に、制御ＰＧは、決められた周期で被制御装置との通信が発生する場合が多い。そこで、本実施形態では、ＯＳ１３５０に、制御ＰＧおよび被制御装置間の通信が発生する周期に合わせて、所定時間、フラグ登録部１３６０にフラグを設定させるようにしている。
【００１９】
図２（Ａ）はフラグ登録部１３６０にフラグが設定されるタイミングを、そして、図２（Ｂ）はフラグ登録部１３６０の登録内容の一例を示している。図２（Ａ）に示すように、制御処理系タスク１３２０による制御系通信の頻度が高くなる期間１３６１と、該制御系通信の頻度が低くなる期間１３６２とが、周期Ｔ１３６３を持って交互に現れる場合、ＯＳ１３５０が、期間１３６１のときにフラグをオンにし、期間１３６とのきはフラグをオフにするように設定する。図２（Ｂ）に示す例では、フラグ登録部１３６０は、フラグ（オンのときは「１」、オフのときは「０」）を登録するためのフィールド１３６４と、フラグオンのときのデータサイズが予め登録されたフィールド１３６５と、を有する。ただし、フィールド１３６５は、必ずしも設けられていなくてもよい。
【００２０】
タスク１３１０は、ＰＣ１７００との情報系通信を伴う情報処理系タスクであり、ＷｅｂサーバＰＧ（プログラム）や、ＣＧＩ（Ｃｏｍｍｏｎ  Ｇａｔｅｗａｙ  Ｉｎｔｅｒｆａｃｅ）ＰＧなどが該当する。
【００２１】
タスク１３２０は、Ｉ／Ｏボード１６００との制御系通信を伴う制御処理系タスクであり、Ｉ／Ｏボード制御ＰＧや、Ｉ／Ｏボードに接続された被制御装置の制御ＰＧなどが該当する。
【００２２】
タスク１３３０は、ＰＣ１７００およびＩ／Ｏボード１６００との通信に必要な処理を実行するための通信処理系タスクである。情報系通信により情報処理系タスク１３１０がＰＣ１７００と情報処理データの送受を行なうために必要な処理を実行すると共に、制御系通信により制御処理系タスク１３２０がＩ／Ｏボード１６００と制御データの送受を行なうために必要な処理を実行する。
【００２３】
図３は、通信処理系タスク１３３０の機能構成図である。
【００２４】
図示するように、通信処理系タスク１３３０は、ＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）１３３１、１３３２と、サイズ調整部１３３３と、ＴＣＰ処理部１３３４と、ＵＤＰ処理部１３３５と、ＩＰ処理部１３３６と、を有する。
【００２５】
ＦＩＦＯ１３３１には、情報処理系タスク１３１０の出力データが順次入力され、一時的に格納された後、入力順に出力される。
【００２６】
ＦＩＦＯ１３３２には、制御処理系タスク１３２０の出力データが順次入力され、一時的に格納された後、入力順に出力される。
【００２７】
サイズ調整部１３３３は、制御処理系タスク１３２０の状態により情報処理系タスク１３１０の出力データのデータサイズを制御する。具体的には、フラグ登録部１３６０にフラグが登録されているか否かを監視し、その結果に基づいて、ＦＩＦＯ１３３１から出力するデータのデータサイズを調整する。フラグ登録部１３６０にフラグが登録されていない場合、ＦＩＦＯ１３３１から出力するデータをそのままＴＣＰ処理部１３３４に出力する。一方、フラグ登録部１３６０にフラグが登録されている場合、ＦＩＦＯ１３３１から出力するデータのデータサイズがフラグ登録部１３６０に登録されているデータサイズ（このデータサイズはＦＩＦＯ１３３１から出力するデータのデータサイズより小さいサイズに設定されている）となるように分割する。そして、このようにして分割されたデータを順番にＴＣＰ処理部１３３４に出力する。なお、フラグ登録部１３６０にデータサイズが登録されていない場合は、サイズ調整部１３３３に初期設定されているサイズとなるように、ＦＩＦＯ１３３１から出力するデータのデータサイズを制御すればよい。
【００２８】
ＴＣＰ処理部１３３４は、サイズ調整部１３３３を介してＦＩＦＯ１３３１から受け取った情報処理系タスク１３１０の出力データに、ＴＣＰ処理を行って、当該データをＴＣＰパケット化する。そして、ＴＣＰパケットをＩＰ処理部１３３６に出力する。また、ＩＰ処理部１３３６から受け取ったＴＣＰパケットから情報処理系タスク１３１０宛てのデータを取り出し、情報処理系タスク１３１０へ出力する。
【００２９】
ＵＤＰ処理部１３３５は、サイズ調整部１３３３を介してＦＩＦＯ１３３２から受け取った制御処理系タスク１３２０の出力データに、ＵＤＰ処理を行って、当該データをＵＤＰパケット化する。そして、ＵＤＰパケットをＩＰ処理部１３３６に出力する。また、ＩＰ処理部１３３６から受け取ったＵＤＰパケットから制御処理系タスク１３２０宛てのデータを取り出し、制御処理系タスク１３２０へ出力する。
【００３０】
ＩＰ処理部１３３６は、ＴＣＰ処理部１３３４およびＵＤＰ処理部１３３５で生成されたパケット各々を、その生成順に受け取ってＩＰ処理し、ＩＰパケット化する。そして、生成したＩＰパケットを順番にＮＩＣ１５００へ出力する。また、ＮＩＣ１５００から受け取ったＩＰパケットからＴＣＰパケットおよびＵＤＰパケットを取り出し、ＴＣＰパケットをＴＣＰ処理部１３３４に出力すると共に、ＵＤＰパケットをＵＤＰ処理部１３３５に出力する。
【００３１】
図４は、通信処理系タスク１３３０の動作フロー図である。
【００３２】
図示するように、通信処理系タスク１３３０は、ＦＩＦＯ１３３１、サイズ調整部１３３３およびＴＣＰ処理部１３３４を用いて、情報処理系タスク１３１０の出力データをＴＣＰパケット化し、ＩＰ処理部１３３６へ出力すると共に、ＩＰ処理部１３３６から受け取ったＴＣＰパケットから情報処理系タスク１３１０宛てのデータを抽出して情報処理系タスク１３１０へ出力する情報系通信処理（Ｓ１０１）と、ＦＩＦＯ１３３２およびＵＤＰ処理部１３３５を用いて、制御処理系タスク１３２０の出力データをＵＤＰパケット化し、ＩＰ処理部１３３６へ出力すると共に、ＩＰ処理部１３３６から受け取ったＵＤＰパケットから制御処理系タスク１３２０宛てのデータを抽出して制御処理系タスク１３２０へ出力する制御系通信処理（Ｓ１０２）と、ＩＰ処理部１３３６を用いて、ＴＣＰ処理部１３３４およびＵＤＰ処理部１３３５で生成されたパケット各々を生成順に受け取ってＩＰパケット化し、ＮＩＣ１５００へ出力すると共に、ＮＩＣ１５００から受け取ったＩＰパケットからＴＣＰパケットおよびＵＤＰパケットを取り出し、ＴＣＰパケット、ＵＤＰパケットをそれぞれＴＣＰ処理部１３３４、ＵＤＰ処理部１３３５に出力するＩＰ処理（Ｓ１０３）と、を順番に繰り返し行う。
【００３３】
以上、本発明の第１実施形態について説明した。
【００３４】
図４の情報系通信処理（Ｓ１０１）において、フラグ登録部１３６０にフラグが設定されている場合、つまり、制御系通信の頻度が高い場合、サイズ調整部１３３３は、情報処理系タスク１３１０の出力データのデータサイズを、フラグが設定されていない場合、つまり、制御系通信の頻度が低い場合に比べてより小さなサイズに分割して、ＴＣＰ処理部１３３４へ渡す。その結果、制御系通信の頻度が高い場合は、ＴＣＰ処理部１３３４から出力されるＴＣＰパケットが小さなサイズとなるため、このＴＣＰパケットに対するＩＰ処理部１３３６でのＩＰ処理およびＮＩＣ１５００への出力に要する時間を短くすることができる。これにより、ＩＰ処理部１３３６は、ＵＤＰ処理部１３３５からＵＤＰパケットが出力された場合に、このＵＤＰパケットへの処理に取りかかるまでの待ち時間を短縮することができる。したがって、御系通信のリアルタイム性が損なわれるのを抑制することができる。
【００３５】
一方、フラグ登録部１３６０にフラグが設定されていない場合、つまり、制御系通信の頻度が低い場合、サイズ調整部１３３３は、情報処理系タスク１３１０の出力データをそのままＴＣＰ処理部１３３４へ渡す。その結果、制御系通信の頻度が低い場合は、ＴＣＰ処理部１３３４から出力されるＴＣＰパケットのサイズが大きくなり、情報系通信のスループットを向上させることができる。この場合、ＮＩＣ１５００から出力される１フレーム当たりのデータサイズは最大で約１．５キロバイトとなる。
【００３６】
なお、本発明は上記の実施形態に限定されるものではなく、その要旨の範囲内で数々の変形が可能である。
【００３７】
例えば、上記の実施形態において、サイズ調整部１３３３は、ＯＳ１３５０が管理するフラグ登録部１３６０のフラグの有無に従い、情報処理系タスク１３１０の出力データのデータサイズを調整している。ここで、フラグのオン・オフは、ＯＳ１３５０が予め定められたタイミングで替えるようにしている。しかし、本発明はこれに限定されない。
【００３８】
例えば、図５（Ａ）に示すように、各Ｉ／Ｏボード１６００を、終了通知用の信号線１６３０でメインコントローラ１２００と接続すると共に、Ｉ／Ｏボード１６００各々に、メインコントローラ１２００との制御系通信が終了したならば、信号線１６３０を介して、制御系通信が終了した旨をメインコントローラ１２００に通知させる。そして、フラグのオンは、ＯＳ１３５０が予め定められたタイミングで設定し、フラグのオフは、ＯＳ１３５０がＩ／Ｏボード１６００からの終了通知の受領をトリガとして行なう。このようにすれば、ＯＳ１３５０は、タイマ等を使って管理する対象がフラグをオンにするタイミングのみとなるので、ＯＳ１３５０の構成をより簡単にすることができる。
【００３９】
また、例えば、図５（Ｂ）に示すように、各Ｉ／Ｏボード１６００に、ＵＤＰの上位レイヤとして、メインコントローラ１２００から受信したデータに対する応答（当該データに付された識別情報を有する応答データ）をメインコントローラ１２００に返す応答処理部１６０１を設ける。そして、メインコントローラ１２００において、フラグのオン・オフをＯＳ１３５０で管理するのに代えて、通信処理系タスク１３３０に、Ｉ／Ｏボード１６００からの応答をモニタする機能を持たせ、モニタ結果に応じて情報処理系タスク１３１０の出力データのデータサイズを調整するようにしてもよい。
【００４０】
図６は、図３に示す通信処理系タスク１３３０の変形例の機能構成図である。この変形例では、ＯＳ１３５０にフラグ登録部１３６０を設ける代わりに、通信系処理計タスク１３３０に、タイムアウト回数計測部１３３７を設けている。
【００４１】
タイムアウト回数計測部１３３７は、ＦＩＦＯ１３３２から出力されＵＤＰ処理部１３３５へ入力するデータに識別情報（例えばシリアル番号）を付すと共に、このデータがＵＤＰ処理部１３３５へ出力されてから、ＵＤＰ処理部１３３５より当該データに対する応答（当該データに付された識別情報を有する応答データ）を受信するまでの時間を計測し、計測時間が所定のタイムアウト時間を超えたか否かを調べる。そして、タイムアウト時間を超えたならばタイムアウト回数のカウント値を１つインクリメントする。そして、図７（Ａ）に示すように、カウント値１３３７１が所定の閾値（制御系通信の頻度が高くなっていることを示す値）１３３７２を超えたならば、サイズ調整部１３３３に対して、フラグオンと同じ意味を持つサイズ調整指示を出力する。なお、タイムアウト回数のカウント値１３３７１は、所定のリセット周期１３３７３毎にリセットするものとする。そして、前回リセットしてから、今回のリセットタイミングとなるまでに計測されたタイムアウト回数のカウント値１３３７１が所定の閾値１３３７２に達しなかった場合、サイズ調整部１３３３に対して、フラグオフと同じ意味を持つサイズ調整指示を出力する。
【００４２】
このようにすることで、御系通信の頻度が高い場合は制御系通信を優先させて制御系通信のリアルタイム性を向上させ、そうでない場合は制御系通信の優先度を下げ情報系通信のスループットを向上させることができる。
【００４３】
なお、閾値１３３７２は、複数設けるようにしてもよい。この場合、タイムアウト回数計測部１３３７に、閾値１３３７２毎に、閾値１３３７２が大きくなるほどデータサイズが小さくなるように、データサイズの情報を登録しておく。そして、タイムアウト回数計測部１３３７に、タイムアウト回数のカウント値１３３７１を複数の閾値１３３７２と比較させ、カウント値１３３７１が少なくとも１つの閾値１３３７２を超えている場合、そのなかで最も高い値を持つ閾値１３３７２に対応するデータサイズが指定されたサイズ調整指示を、サイズ調整部１３３３に出力させる。これにより、サイズ調整部１３３３は、ＦＩＦＯ１３３１から出力されたデータをサイズ調整指示で指定されたデータサイズに調整する。
【００４４】
このようにすることで、制御系通信のタイムアウト回数１３３７１に合わせて情報系通信のデータサイズを細かく調整できるので、制御系通信および情報系通信のトレードオフの制御をより一層最適化することができる。
【００４５】
図６に示す変形例において、タイムアウト回数計測部１３３７を設ける代わりに、応答時間計測部１３３８を設けるようにしてもよい。
【００４６】
応答時間計測部１３３８は、ＦＩＦＯ１３３２から出力されＵＤＰ処理部１３３５へ入力するデータに識別情報（例えばシリアル番号）を付すと共に、このデータがＵＤＰ処理部１３３５へ出力されてから、ＵＤＰ処理部１３３５より当該データに対する応答（当該データに付された識別情報を有する応答データ）を受信するまでの時間を計測する。そして、新たに計測した時間をそれまでの計測時間の累積である総応答時間に加算する。そして、図７（Ｂ）に示すように、総応答時間１３３７４が所定の閾値（制御系通信の頻度が高くなっていることを示す値）１３３７５を超えたならば、サイズ調整部１３３３に対して、フラグオンと同じ意味を持つサイズ調整指示を出力する。なお、総応答時間１３３７４は、所定のリセット周期１３３７６毎にリセットするものとする。そして、前回リセットしてから、今回のリセットタイミングとなるまでに計測された総応答時間１３３７４が所定の閾値１３３７５に達しなかった場合、サイズ調整部１３３３に対して、フラグオフと同じ意味を持つサイズ調整指示を出力する。
【００４７】
このようにすることで、御系通信の頻度が高い場合は制御系通信を優先させて制御系通信のリアルタイム性を向上させ、そうでない場合は制御系通信の優先度を下げ情報系通信のスループットを向上させることができる。
【００４８】
なお、閾値１３３７５は、複数設けるようにしてもよい。この場合、応答時間計測部１３３８に、閾値１３３７５毎に、閾値１３３７５が大きくなるほどデータサイズが小さくなるように、データサイズの情報を登録しておく。そして、応答時間計測部１３３８に、総応答時間１３３７４を複数の閾値１３３７５と比較させ、総応答時間１３３７４が少なくとも１つの閾値１３３７５を超えている場合、そのなかで最も高い値を持つ閾値１３３７５に対応するデータサイズが指定されたサイズ調整指示を、サイズ調整部１３３３に出力させる。これにより、サイズ調整部１３３３は、ＦＩＦＯ１３３１から出力されたデータをサイズ調整指示で指定されたデータサイズに調整する。
【００４９】
このようにすることで、制御系通信の総応答時間１３３７４に合わせて情報系通信のデータサイズを細かく調整できるので、制御系通信および情報系通信のトレードオフの制御をより一層最適化することができる。
【００５０】
また、上記の実施形態では、サイズ調整部１３３３にてＦＩＦＯ１３３１から出力されたデータのサイズを調整することにより、制御系通信のリアルタイム性を向上させている。しかし、本発明はこれに限定されない。例えば、ＩＰ処理部１３３６において、ＵＤＰパケットが優先的に処理されるようにすることで、制御系通信のリアルタイム性を向上させるようにしてもよい。
【００５１】
図８は、図３に示す通信処理系タスク１３３０の変形例の機能構成図である。この変形例では、ＩＰ処理部１３３６に、送信キュー１３３６１と、キュークリア部１３３６２と、再送要求部１３３６３とを設けている。
【００５２】
送信キュー１３３６１には、ＴＣＰパケットおよびＵＤＰパケットが、ＴＣＰ処理部１３３４およびＵＤＰ処理部１３３５での生成順に格納される。そして、ＩＰ処理部１３３６は、送信キュー１３３６１に格納されているパケット各々を、格納が古いものから順番にＩＰ処理し、その結果生成されたＩＰパケットをＮＩＣ１５００へ出力する。
【００５３】
キュークリア部１３３６２は、フラグ登録部１３６０にフラグが登録されているか否かを監視する。そして、フラグ登録部１３６０にフラグが登録されている場合、送信キュー１３３６１に格納されている最も古いパケットがＴＣＰパケットならば、このＴＣＰパケットをＩＰ処理することなく破棄すると共に、破棄したＴＣＰパケットのヘッダ情報を再送要求部１３３６３に通知する。
【００５４】
そして、再送要求部１３３６３は、キュークリア部１３３６２よりＴＣＰパケットのヘッダ情報を受け取ると、ＴＣＰに従いこのヘッダ情報により特定されるＴＣＰパケットの再送要求を生成し、ＴＣＰ処理部１３３４に通知する。ＴＣＰ処理部１３３４は、自身が送出したＴＣＰパケットを当該パケットに対する応答を受信するまで保持する。そして、再送要求を受信したならば、再送要求対象のＴＣＰパケットをＩＰ処理部１３３６へ再度出力する。
【００５５】
図８に示す変形例によれば、フラグ登録部１３６０にフラグが登録されている場合、つまり、制御系通信の頻度が高い間は、ＵＤＰパケットが優先的にＩＰ処理され、ＩＰ処理部１３３６からＮＩＣ１５００へ送出される。したがって、御系通信の頻度が高い場合は制御系通信を優先させて制御系通信のリアルタイム性を向上させ、そうでない場合は制御系通信の優先度を下げ情報系通信のスループットを向上させることができる。
【００５６】
なお、図８に示す変形例において、サイズ調整部１３３３はなくてもよい。また、図８に示す変形例においても、図６に示す変形例と同様に、通信処理系タスク１３３０にタイムアウト回数計測部１３３７あるいは応答時間計測部１３３８を設けてもよい。そして、キュークリア部１３３６２に、フラグ登録部１３６０にフラグが登録されているか否かを監視させる代わりに、タイムアウト回数計測部１３３７あるいは応答時間計測部１３３８からの指示を受け付けるようにしてもよい。つまり、タイムアウト回数計測部１３３７あるいは応答時間計測部１３３８からフラグオンと同じ意味を持つ指示が入力された場合、送信キュー１３３６１に格納されている最も古いパケットがＴＣＰパケットならば、このＴＣＰパケットをＩＰ処理することなく破棄すると共に、破棄したＴＣＰパケットのヘッダ情報を再送要求部１３３６３に通知する処理を行う。一方、タイムアウト回数計測部１３３７あるいは応答時間計測部１３３８からフラグオフと同じ意味を持つ指示が入力された場合は、上記の処理を中止する。
【００５７】
また、例えば、上記の実施形態では、メインコントローラ１２００およびＩ／Ｏボード１６００、ＰＣ１７００間の接続にイーサネット（登録商標）を用いた場合を例にとり説明した。しかし、本発明はこれに限定されない。メインコントローラ１２００およびＩ／Ｏボード１６００、ＰＣ１７００間の接続にＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）を用いるようにしてもよい。
【００５８】
図９は、図１に示す制御装置１１００の変形例の概略図である。
【００５９】
図９に示す制御装置１１００が図１に示す制御装置１１００と異なる点は、ＵＳＢハブ１９１０を介して、メインコントローラ１２００およびＩ／Ｏボード１６００、ＰＣ１７００間をＵＳＢで接続していることである。また、図９に示すメインコントローラ１２００が図１に示すメインコントローラ１２００と異なる点は、ＮＩＣ１６００に代えてＵＳＢコントローラ１９００を設けたこと、および、通信処理系タスク１３３０に代えて通信処理系タスク１３３０Ａを設けたことである。
【００６０】
図１０は、通信処理系タスク１３３０Ａの機能構成図である。
【００６１】
図示するように、通信処理系タスク１３３０Ａは、ＦＩＦＯ１３３１Ａ、１３３２Ａと、サイズ調整部１３３３Ａと、データ出力部１３３７と、を有する。
【００６２】
ＦＩＦＯ１３３１Ａには、情報処理系タスク１３１０の出力データが順次入力され、一時的に格納された後、入力順に出力される。
【００６３】
ＦＩＦＯ１３３２Ａには、制御処理系タスク１３２０の出力データが順次入力され、一時的に格納された後、入力順に出力される。
【００６４】
サイズ調整部１３３３Ａは、フラグ登録部１３６０にフラグが登録されているか否かを監視し、その結果に基づいて、ＦＩＦＯ１３３１Ａから出力するデータのデータサイズを調整する。具体的には、フラグ登録部１３６０にフラグが登録されていない場合、ＦＩＦＯ１３３１Ａから出力するデータをそのままデータ出力部部１３３７に出力する。一方、フラグ登録部１３６０にフラグが登録されている場合、ＦＩＦＯ１３３１Ａから出力するデータのデータサイズがフラグ登録部１３６０に登録されているデータサイズ（このデータサイズはＦＩＦＯ１３３１Ａから出力するデータのデータサイズより小さいサイズに設定されている）となるように分割する。そして、このようにして分割されたデータを順番にデータ出力部１３３７に出力する。なお、フラグ登録部１３６０にデータサイズが登録されていない場合は、サイズ調整部１３３３Ａに初期設定されているサイズとなるように、ＦＩＦＯ１３３１Ａから出力するデータのデータサイズを制御すればよい。
【００６５】
データ処理部１３３９は、サイズ調整部１３３３ＡおよびＦＩＦＯ１３３２Ａから出力されるデータ各々を、その生成順に受け取って順番にＵＳＢコントローラ１９００へ出力する。また、ＵＳＢコントローラ１９００から受け取ったデータを、その宛先である情報処理系タスク１３１０あるいは制御処理系タスク１３２０へ出力する。
【００６６】
さて、ＵＳＢでは、エンドポイント（通信先）毎にデータがリスト構造で管理され、エンドポイント自体もリスト構造で管理される。ＵＳＢ規格上リスト構造で管理される際の上限データサイズは約８キロバイトである。制御処理系タスク１３２０が通信相手と送受するデータは、コマンドなどの数十バイト程度のものが殆どである。しかし、情報処理系タスク１３１０は、映像などの大容量データを通信相手と送受することがあるため、ＵＳＢコントローラ１９００は、情報処理系タスク１３１０の通信先を示すエンドポイントのリスト構造に８キロバイトの通信データを接続することもあり得る。複数のエンドポイントがある場合、ＵＳＢコントローラ１９００は、ＵＳＢ規格により順番にデータの通信処理を行なう。このため、情報処理系タスク１３１０の通信先を示すエンドポイントのリスト構造に大きなサイズの通信データが接続されると、当該通信データの処理に時間がかかり、制御処理系タスク１３２０の通信先を示すエンドポイントのリスト構造に接続された通信データの通信処理開始までの待ち時間が大きくなる。結果として、制御系通信のリアルタイム性が劣化する。
【００６７】
しかし、図１０に示す通信処理系タスク１３３０Ａでは、フラグ登録部１３６０にフラグが設定されている場合、つまり、制御系通信の頻度が高い場合、サイズ調整部１３３３Ａは、情報処理系タスク１３１０の出力データのデータサイズを、フラグが設定されていない場合、つまり、制御系通信の頻度が低い場合に比べてより小さなサイズに分割して、データ出力部１３３７へ渡す。その結果、制御系通信の頻度が高い場合は、情報処理系タスク１３１０の通信先を示すエンドポイントのリスト構造に接続されるデータが小さなサイズとなる。このため、制御処理系タスク１３２０の通信先を示すエンドポイントのリスト構造に接続された通信データの通信処理開始までの待ち時間を短縮でき、制御系通信のリアルタイム性が損なわれるのを抑制することができる。
【００６８】
なお、図１０に示す通信処理系タスク１３３０Ａにおいても、図６に示す通信処理系タスク１３３０と同様に、ＯＳ１３５０にフラグ登録部１３６０を設ける代わりに、タイムアウト回数計測部１３３７あるいは応答時間計測部１３３８を設け、ＦＩＦＯ１３３２Ａから出力されデータ出力部１３３９へ入力するデータに識別情報（例えばシリアル番号）を付すと共に、このデータがデータ出力部１３３９へ出力されてから、データ出力部１３３９より当該データに対する応答（当該データに付された識別情報を有する応答データ）を受信するまでの時間を計測し、計測時間が所定のタイムアウト時間を超えたタイムアウト回数を計測し、あるいは、計測時間の累積である総応答時間を計測し、所定時間内にタイムアウト回数あるいは総応答時間を所定の閾値と比較し、その結果に応じてサイズ調整部１３３３Ａを制御するようにしてもよい。
【００６９】
この場合、各Ｉ／Ｏボード１６００に、メインコントローラ１２００から受信したデータに対する応答（当該データに付された識別情報を有する応答データ）をメインコントローラ１２００に返す機能を持たせる必要がある。
【００７０】
【発明の効果】
以上説明したように、本発明によれば、制御系通信のリアルタイム性が損なわれるのを抑制しつつ、情報系通信のスループットを向上させることができる。
【図面の簡単な説明】
【図１】図１は本発明の一実施形態が適用された制御装置の概略図である。
【図２】図２（Ａ）はフラグ登録部１３６０にフラグが設定されるタイミングを、図２（Ｂ）はフラグ登録部１３６０の登録内容の一例を示す図である。
【図３】図３は通信処理系タスク１３３０の機能構成図である。
【図４】図４は通信処理系タスク１３３０の動作フロー図である。
【図５】図５はＩ／Ｏボード１６００の変形例を示す図である。
【図６】図６は図３に示す通信処理系タスク１３３０の変形例の機能構成図である。
【図７】図７（Ａ）はカウント値１３３７１と閾値１３３７２との関係を示す図であり、図７（Ｂ）は総応答時間１３３７４と閾値１３３７５との関係を説明するための図である。
【図８】図８は図３に示す通信処理系タスク１３３０の変形例の機能構成図である。
【図９】図９は図１に示す制御装置１１００の変形例の概略図である。
【図１０】図１０は通信処理系タスク１３３０Ａの機能構成図である。
【符号の説明】
１１００…制御装置、１２００…メインコントローラ、１３００・・・メモリ、１３１０・・・情報処理系タスク、１３２０・・・制御処理系タスク、１３３０・・・通信処理系タスク、１３３１・・・ＦＩＦＯ、１３３２・・・ＦＩＦＯ、１３３３・・・サイズ調整部、１３３４・・・ＴＣＰ処理部、１３３５・・・ＵＤＰ処理部、１３３６・・・ＩＰ処理部、１３３７・・・タイムアウト回数計測部、１３３８・・・応答時間計測部、１３５０・・・ＯＳ、１３６０・・・フラグ登録部、１４００・・・ＣＰＵ、１５００・・・ＮＩＣ、１６００・・・Ｉ／Ｏボード、１６０１・・・応答処理部、１６１０・・・・モータ、１６２０・・・センサ、１７００・・・ＰＣ、１８１０・・・バス、１８２０・・・ＬＡＮ、１９００・・・ＵＳＢコントローラ、１９１０・・・ＵＳＢハブ、１３３６１・・・送信キュー、１３３６２・・・キュークリア部、１３３６３・・・再送要求部
【図１】
2004363782.tif 000003
【図２】
2004363782.tif 000004
【図３】
2004363782.tif 000005
【図４】
2004363782.tif 000006
【図５】
2004363782.tif 000007
【図６】
2004363782.tif 000008
【図７】
2004363782.tif 000009
【図８】
2004363782.tif 000010
【図９】
2004363782.tif 000011
【図１０】
2004363782.tif 000012