(57)【特許請求の範囲】
【請求項１】
リアルタイム性が要求されるリアルタイムデータの通信タイミングを求めるリアルタイム通信ステータス抽出部と、
リアルタイム性が要求されない非リアルタイムデータの送信要求時に前記リアルタイム通信ステータス抽出部によって求められた通信タイミングになるまでに送信可能な送信データのフラグメントサイズを求める動的フラグメントサイズ決定部と、
少なくとも前記動的フラグメントサイズ決定部によって求められたフラグメントサイズ以下になるよう、前記非リアルタイムデータをフラグメント化するフラグメント処理部と、
前記フラグメント処理部によってフラグメント化された前記非リアルタイムデータを前記リアルタイムデータの通信タイミングになる前に送信する通信部と、
を備える通信制御装置。
【請求項２】
請求項１において、さらに、
前記フラグメント処理部によってフラグメント化された前記非リアルタイムデータを前記リアルタイムデータの送信処理に干渉せずに送信できるか判断する通信スケジュール部と、を備え、
前記通信部は、前記通信スケジュール部の判断に従って、前記非リアルタイムデータの送信が許可された場合に当該非リアルタイムデータを送信する
ことを特徴とする通信制御装置。
【請求項３】
請求項１において、
前記動的フラグメントサイズ決定部は、次の前記リアルタイムデータの通信タイミングになるまでの時間を前記非リアルタイムデータの送信に必要な単位データあたりの送信処理時間で除してフラグメントサイズを求めることを特徴とする通信制御装置。
【請求項４】
請求項１において、
前記動的フラグメントサイズ決定部は、求めたフラグメントサイズが所定の値以下である場合には、フラグメント不可であることを前記フラグメント処理部に通知することを特徴とする通信制御装置。
【請求項５】
請求項１において、
前記フラグメント処理部は、前記非リアルタイムデータが複数の要素で構成される場合に、要素内のデータ領域のフラグメント化、または、前記要素のサイズ変更、または、前記非リアルタイムデータを構成する前記要素の数の変更、のいずれかの処理を実行することを特徴する通信制御装置。
【請求項６】
請求項２において、
前記通信スケジュール部は、送信要求のある前記非リアルタイムデータの送信に必要な処理時間が前記リアルタイムデータの次の通信タイミングまでの時間未満であるときに、前記非リアルタイムデータの送信を許可することを特徴とする前記通信制御装置。
【請求項７】
請求項２において、
前記通信スケジュール部は、送信要求のあった前記非リアルタイムデータが、前記リアルタイムデータを所定回数送信された間に送信できなかった場合、または、所定の時間送信できなかった場合には、当該非リアルタイムデータを破棄、または、外部への通知のいずれかの処理を実行することを特徴とする通信制御装置。
【請求項８】
請求項１において、
前記フラグメント処理部は、送信要求のあった前記非リアルタイムデータがある周期で送信できなかった場合には、前記動的フラグメント決定部から通知される次の周期の前記リアルタイムデータの通信タイミングまでに送信可能なフラグメントサイズに従い、前記非リアルタイムデータのフラグメント化を再度実施することを特徴とする通信制御装置。
【請求項９】
請求項１において、
前記通信スケジュール部は、前記非リアルタイムデータを送信処理中に前記リアルタイムデータの送信要求があった場合に、前記非リアルタイムデータの送信を中断し、前記リアルタイムデータを送信することを特徴とする通信制御装置。
【請求項１０】
請求項１において、
前記リアルタイム通信ステータス抽出部は、所定の通信処理用のタイムスロットを予約し、予約したタイムスロットまでの時間を求めて前記動的フラグメントサイズ決定部に通知し、
前記動的フラグメントサイズ決定部は、前記タイムスロットまでの時間をもとにフラグメントサイズを求めることを特徴とする通信制御装置。
【請求項１１】
請求項１０において、
前記通信制御装置は、他の通信制御装置とネットワークを介して接続されており、
前記タイムスロットは、前記他の通信制御装置から送信されたパケットを転送するための通信処理用に予約されることを特徴とする通信制御装置。
【請求項１２】
請求項１１において、
予約される前記タイムスロットは、前記他の通信制御装置から送られるパケットの通信遅延をもとに決められること特徴する前記通信制御装置。
【請求項１３】
請求項１０において、
前記通信制御装置は、複数の他の通信制御装置とリングネットワークを構成し、前記複数の他の通信制御装置は、冗長化したパケットをそれぞれ前記リングネットワークのＡ系回り、および、Ｂ系回りに送信するものであり、
前記タイムスロットは、前記Ａ系回りから受信した前記冗長化パケットを転送する通信処理用、および、前記Ｂ系回りから受信した前記冗長化パケットを転送する通信処理用に予約され、前記冗長化パケットの前記Ａ系回りから転送、前記Ｂ系回りからの転送のいずれか早い方の通信確認をもって、他方の前記タイムスロットの予約を解除することを特徴とする通信制御装置。
【請求項１４】
請求項１０において、
前記リアルタイムデータの送信に失敗したと判断した場合には、前記リアルタイムデータの再送パケットの通信処理用に前記タイムスロットを予約することを特徴とする通信制御装置。
【請求項１５】
請求項１０において、
前記タイムスロットは、前記リアルタイムデータの再送パケットの通信処理用に予約されるものであり、前記リアルタイムデータの送信が成功したことを確認すると当該再送用のタイムスロットの予約を解除することを特徴とする通信制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は通信制御装置に関する。
【背景技術】
【０００２】
制御システムとして、単一、または複数の通信制御装置が、ネットワークを介して単一または複数の制御装置を制御する構成がある。通信制御装置は、ネットワークを介して制御指令等を制御装置へ送信する。このような制御システムに用いられるネットワークには、ＩＥＥＥ  ８０２．３、ＲＳ−２３２Ｃ、ＲＳ−４２２、ＲＳ−４８５、ＣＡＮ(登録商標)、ＤｅｖｉｃｅＮｅｔ、産業用Ｅｔｈｅｒｎｅｔ（登録商標）、ＩＥＣ６１８５０、ＩＥＣ６２４３９、Ｅｔｈｅｒｎｅｔ（登録商標）ＡＶＢ等がある。
【０００３】
特許文献１では、非リアルタイムパケットとリアルタイムパケットから成る通信がフレームリレーネットワークを介して行なうパケット送受信装置において、リアルタイムパケットの到達間隔の揺らぎ（ジッター）を減少し、品質、及び信頼性を向上させるために、「本発明は、フレームリレーネットワークの送信先を示すＤＬＣＩ単位に、相手装置の回線速度（帯域情報）を格納する隣接情報テーブルを有すことにより、宛先ＤＬＣＩ単位に非リアルタイムパケットのフラグメントサイズを決定し、リアルタイムパケット送信間隔の間に送信できるパケットサイズを決定し、非リアルタイムパケットをこの大きさ（フラグメントサイズ）に分割して送信する。これにより、受信側でのリアルタイムパケット到達間隔の遅延、輻輳の発生を回避し、また非リアルタイムパケットの通信効率を向上させる。」ことが記載されている（要約参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−２０８１１９
【発明の概要】
【発明が解決しようとする課題】
【０００５】
（通信制御装置の送信タイミングの精度）
上記のような単一、または複数の通信制御装置が、ネットワークを介して単一または複数の制御装置を制御するようなシステムの中には時刻同期プロトコルを適用し、同期された時刻に基づいて各制御装置を動作させる構成がある。このような構成では、各制御装置の同期精度に加えて、通信制御装置における制御指令の送信タイミングにおいても、高い周期精度が求められる。例えば、通信制御装置と各制御装置間の通信遅延が異なる場合、制御装置ごとに通信制御装置からの制御指令を同一制御周期内で受信できるか否かが異なる。
【０００６】
（時分割方式の場合、通信制御装置の周期精度は制御周期の精度に直結）
また、ネットワークを利用する時間を制御装置ごとに時分割で配分する時分割ネットワーク方式の場合、一般に通信制御装置からの同期指令に基づいて制御周期を規定する方法がとられる。この場合は、通信制御装置における制御指令の送信タイミングの周期精度は、直接制御周期の精度に影響する。通信制御装置の送信タイミングの周期精度が悪く、通信周期のゆらぎが大きければ、制御システムの制御周期が短くなる場合や長くなる場合が生じるため、制御システムの制御性能が低下する。
【０００７】
加えて、近年ではＩＥＥＥ  ８０２．３方式の制御システムへの適用拡大により、新たな要求が高まりつつある。すなわち、ＴＣＰ／ＩＰに代表されるＩＣＴ通信方式の制御システムへの適用やＩＥＥＥ  ８０２．３を高信頼化させる通信方式の採用である。例えば、ＩＥＣ  ６１７８４−２に定義される産業通信方式の中にはＴＣＰ／ＩＰ通信を利用可能とする規格が存在している。また、ＩＥＣ  ６１８５０では、設定・監視等の用途にはＴＣＰ／ＩＰ通信を用い、遮断指令等の制御用途にはＥｔｈｅｒｎｅｔ（登録商標）を直接利用した通信プロトコルを想定している。その他にはＩＥＣ  ６２４３９は冗長化通信等、ＩＥＥＥ  ８０２．３を高信頼化させる方式を規格化している。
【０００８】
（非制御指令の影響）
しかしながら、通信制御装置において、ＴＣＰ／ＩＰ等の非制御指令の送信タイミングが、制御指令の送信タイミングの直前であった場合、制御指令の送信タイミングが遅れる可能性がある。非制御指令とは、通信制御装置から制御装置に対する管理情報や稼働情報等の、高い周期精度は求められないが、制御システムを実行する上で必要な指令である。特に、制御システムのＴＣＰ／ＩＰ通信の実現も含む。
【０００９】
（再送・転送の影響）
また、非制御指令にとどまらず、制御指令自身の再送や転送についても、制御指令の送信タイミングを遅らせる原因となりうる。再送、転送の送信タイミングが、制御指令の送信タイミングの直前であった場合、制御指令の送信タイミングが遅れる可能性がある。再送は、ネットワーク上でのパケットロスを考慮してなされるもので、通信制御装置から制御装置へのデータ伝達性を向上させるために有用である。特に、ネットワークの物理メディアにおいては、所定のビットエラーレートが存在し、全てのパケットを確実に送信することは現実的に不可能である。そのため、高い信頼性を求められるシステムでは、再送機能は必須である。
【００１０】
さらに、通信装置自身でリングネットワークを構成する場合は隣接する通信装置からの転送パケットが存在する。このような転送パケットが制御指令の送信タイミングを遅らせる原因となり得る。
【００１１】
（時分割方式での解法）
この非制御指令と再送、転送の影響に対して、時分割ネットワーク方式では、専用のネットワーク利用時間枠を設けて対処する。この場合、非制御指令、再送、転送を該時間枠で通信することで、制御指令の送信タイミングの周期精度への影響を除去する。
【００１２】
（時分割方式の解放の課題）
しかしながら、この方法では、非制御指令、再送が存在しない場合でも、専用の時間枠を割り当てなければならず、無駄なネットワーク帯域を消費することとなる。特に、該時間枠の影響により、通信周期が長くなるため、結果的に制御周期が長くなる可能性がある。制御周期は長くなればなるほど、一般に制御性能は低下するため、望ましくない。
【００１３】
また、非制御指令では、その性質上、データサイズが一意に決まらないため、非制御指令用の時間枠を一意に決定することができない。したがって、最悪値を想定し、該時間枠は長くなる傾向にあり、結果的に制御周期は、より長くなる可能性がある。また、最大値を決め、非制御指令を分割する構成とした場合でも、余計な分割処理、結合処理が必要となる可能性があり、ハードウェア、ソフトウェア等の計算機資源を不要に消費する課題が生じる。
【００１４】
また、上記特許文献１に記載の技術のように、通信相手装置の回線速度に応じて、非制御指令をフラグメントすることにより、制御指令の到達間隔の遅延維持、輻輳発生を回避することはできる。しかしながら、制御指令の送信直前に非制御指令が現れた場合や、再送、転送がある場合には制御指令の送信タイミングが遅れることとなる。また、非制御指令に割り当てられた送信可能期間前に非制御指令がなければ送信できないため、通信帯域効率に無駄が生じる。
【００１５】
本発明は上記課題に鑑み、リアルタイム性が要求される制御指令等の通信データの送信に干渉することなく、リアルタイム性が要求されない通信データの通信処理を可能とする通信制御装置を提供することを目的とする。
【課題を解決するための手段】
【００１６】
本発明の通信制御装置は、上記課題を解決するために、リアルタイム性が要求されるリアルタイムデータの通信タイミングを求めるリアルタイム通信ステータス抽出部と、前記リアルタイム通信ステータス抽出部によって求められた通信タイミングになるまでに送信可能な送信データのフラグメントサイズを求める動的フラグメントサイズ決定部と、少なくとも前記動的フラグメントサイズ決定部によって求められたフラグメントサイズ以下になるよう、リアルタイム性が要求されない非リアルタイムデータをフラグメント化するフラグメント処理部と、前記フラグメント処理部によってフラグメント化された前記非リアルタイムデータを前記リアルタイムデータの通信タイミングになる前に送信する通信部と、を備えることを特徴とする。
【発明の効果】
【００１７】
本発明によれば、リアルタイム性が要求される通信データの送信に干渉することなく、リアルタイム性が要求されない通信データの通信処理が可能となる。
【図面の簡単な説明】
【００１８】
【図１】本発明の一実施形態を用いたシステム構成図である。
【図２】本発明の一実施形態でのハードウェア構成図である。
【図３】本発明の一実施形態を示す機能構成図である。
【図４】本発明の一実施形態におけるパケットの送信処理を示す図である。
【図５】本発明の一実施形態における実行手順を示した図である。
【図６】本発明の一実施形態における実行手順を示した図である。
【図７】本発明の一実施形態におけるパケットの送信処理を示した図である。
【図８】本発明の一実施形態でのハードウェア構成図である。
【図９】本発明の一実施形態を示す機能構成図である。
【図１０】本発明の一実施形態における実行手順を示した図である。
【図１１】本発明の一実施形態を用いたシステム構成図である。
【図１２】本発明の一実施形態を示す機能構成図である。
【図１３】本発明の一実施形態におけるパケットフォーマットを示した図である。
【図１４】本発明の一実施形態におけるフラグメントサイズの決定方法を示した図である。
【図１５】本発明の一実施形態を示す機能構成図である。
【図１６】本発明の一実施形態における実行手順を示した図である。
【図１７】本発明の一実施形態におけるタイムスロットの決定方法を示した図である。
【図１８】本発明の一実施形態を示す機能構成図である。
【図１９】本発明の一実施形態を示す機能構成図である。
【図２０】本発明の一実施形態におけるパケットフォーマットを示した図である。
【発明を実施するための形態】
【００１９】
以下に制御性能と利便性の向上を両立した通信制御装置の実施例を説明する。
【００２０】
＜実施例１＞
（＃  システム例）
図１は、本発明を適用した通信制御装置１２０を用いて構成するシステム例である。
【００２１】
通信制御装置１２０、ネットワーク１２２を介して、他のネットワーク中継装置１２１、または通信装置１２３、１２４と接続し、制御指令、管理情報等を送受信する。
【００２２】
ネットワーク中継装置１２１として、ネットワークスイッチ、ルータ、ゲートウェイ、Ｓｏｆｔｗａｒｅ  Ｄｅｆｉｎｅｄ  Ｎｅｔｗｏｒｋにおけるパケット・経路制御を書き換え可能なスイッチ等 が挙げられる。
【００２３】
ネットワーク１２２として、ＩＥＥＥ  ８０２．３、各種産業用ネットワーク、ＩＥＣ  ６１７８４、ＩＥＣ  ６１１５８、ＩＥＣ  ６１８５０、ＩＥＣ  ６２４３９、Ｅｔｈｅｒｎｅｔ（登録商標）  ＡＶＢ、ＣＡＮ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ：登録商標)、ＤｅｖｉｃｅＮｅｔ、ＲＳ−２３２Ｃ、ＲＳ−４２２、ＲＳ−４８５等が例示される。
【００２４】
通信装置１２３は、通信制御装置１２０の制御指令を受信して制御処理を実行する。また、必要に応じて、ネットワーク１２２を構成する通信制御装置、通信装置、ネットワーク中継装置１２１に対して計測情報、管理情報等を通信する。通信装置１２３として、産業制御機器、車載ＥＣＵ（Ｅｎｇｉｎｅ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）、変電所監視制御システムを構成する保護制御装置、ＩＥＤ（Ｉｎｔｅｌｌｉｇｅｎｔ  Ｅｌｅｃｔｒｏｎｉｃ  Ｄｅｖｉｃｅ）、ＭＵ（Ｍｅｒｇｉｎｇ  Ｕｎｉｔ）、サーボコントローラ、サーボアンプ、サーボモータ等 が例示される。
【００２５】
通信装置１２４は、制御システムにおける管理、監視機能を担い、通信制御装置１２０、ネットワーク中継装置１２１や通信装置１２３と通信し、設定や状態を監視する。通信装置１２４として、ＨＭＩ（Ｈｕｍａｎ  Ｍａｃｈｉｎｅ  Ｉｎｔｅｒｆａｃｅ）機能、ＳＣＡＤＡ（Ｓｕｐｅｒｖｉｓｏｒｙ  Ｃｏｎｔｒｏｌ  ａｎｄ  Ｄａｔａ  Ａｃｑｕｉｓｉｔｉｏｎ）、ＤＣＳ（Ｄｉｓｔｒｉｂｕｔｅｄ  Ｃｏｎｔｒｏｌ  Ｓｙｓｔｅｍ）、ストレージサーバ等 が例示される。
【００２６】
なお、各機器は複数台でもよいし、また複数でなくても構わない（例えば、ネットワーク中継装置１２１を用いないでネットワーク１２２を構成する場合）。また、通信制御装置１２０と通信装置１２３、通信装置１２４を区別して説明するが、通信装置１２３、通信装置１２４、通信制御装置１２０が、それぞれ他の機能をそなえていても本発明の効果が失われるものではない。
【００２７】
（＃  ハードウェア構成）
図２は、本発明を適用した通信制御装置１２０のハードウェア構成である。
【００２８】
ＣＰＵ１０１は、不揮発性記憶媒体１０９からプログラムをメモリ１０８に転送して実行する。実行処理プログラムとしては、オペレーティングシステム（以下、ＯＳと称す）やＯＳ上で動作するアプリケーションプログラムが例示される。ＣＰＵ１０１は、マルチコアＣＰＵ、メニーコアＣＰＵ を用いてもよい。
【００２９】
ＰＨＹ１０２は、ネットワーク１２２との通信機能を実装した送受信機ＩＣである。ＰＨＹ１０２の提供する通信規格としてＩＥＥＥ  ８０２．３のＰＨＹ（物理層）チップが例示される。なお、図２の構成では、ＰＨＹ１０２と通信用ＬＳＩ１０４が接続しているので、ＩＥＥＥ  ８０２．３のＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）層の処理は通信用ＬＳＩ１０４に含まれる。ただし、ＭＡＣ機能を提供するＩＣを通信用ＬＳＩ１０４とＰＨＹ１０２間に配置する構成や、ＭＡＣ機能を提供するＩＣとＰＨＹ１０２を組み合わせた通信用ＩＣと通信用ＬＳＩ１０４を接続する構成においても、本発明の効果は失われるものではない。
【００３０】
ＬＡＮ１０３は、ネットワーク１２２との通信機能を実装した送受信機ＩＣである。ＬＡＮ１０３は、ＣＰＵ１０１上で動作するプログラムから通信要求を受け取り、ネットワーク１２２に対して通信する。ＬＡＮ１０３の実装例としては、ＩＥＥＥ  ８０２．３規格のＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）チップ、ＰＨＹ（物理層）チップ、ＭＡＣとＰＨＹの複合チップ、ＦＰＧＡ、ＣＰＬＤ、ＡＳＩＣ、ゲートアレイ等のＩＣが例示される。なお、ＬＡＮ１０３は、ＣＰＵ１０１や、コンピュータ内部の情報経路を制御するチップセットに含まれていてもよい。 
通信用ＬＳＩ１０４は、ＣＰＵ１０１上で動作するプログラムから送信要求、送信データを受け取り、ＰＨＹ１０２を用いてネットワーク１２２に対して送信する。また、ネットワーク１２２から受信したデータを、バス１１０を介してＣＰＵ１０２、メモリ１０８、不揮発性記憶媒体１０９へ転送する。通信用ＬＳＩ０４の実装例としては、ＦＰＧＡ、ＣＰＬＤ、ＡＳＩＣ、ゲートアレイ等のＩＣが例示される。あるいは、ＣＰＵ１０１と一体化して構成されてもよい。通信用ＬＳＩ１０４をＭＡＣ層、ＰＨＹ層を含めたＩＥＥＥ  ８０２．３通信デバイスとしてもよいし、また、ＰＨＹ機能まで含めて通信用ＬＳＩ１０４に包含してもよい。
【００３１】
メモリ１０８は、ＣＰＵ１０１が動作するための一時的な記憶領域であり、不揮発性記憶媒体１０９から転送したＯＳ、アプリケーションプログラム等が格納される。
【００３２】
不揮発性記憶媒体１０９は、情報の記憶媒体で、ＯＳ、アプリケーション、デバイスドライバ等や、ＣＰＵ１０１を動作させるためのプログラムの保存、プログラムの実行結果の保存に利用される。不揮発性記憶媒体１０９として、ハードディスクドライブ（ＨＤＤ）やソリッドステートドライブ（ＳＳＤ）、フラッシュメモリが例示される。また、取り外しが容易な外部記憶媒体として、フロッピー（登録商標）ディスク（ＦＤ）、ＣＤ、ＤＶＤ、ブルーレイ（登録商標）、ＵＳＢメモリ、コンパクトフラッシュ（登録商標）等 の利用が例示される。
バス１１０は、ＣＰＵ１０１、ＬＡＮ１０３、通信用ＬＳＩ１０４、メモリ１０８、不揮発性記憶媒体１０９をそれぞれ接続する。バス１１０としては、ＰＣＩバス、ＩＳＡバス、ＰＣＩ  Ｅｘｐｒｅｓｓバス、システムバス、メモリバス、オンチップバス等 が例示される。
【００３３】
なお、ハードウェア構成は、ＣＰＵ１０１、ＰＨＹ１０２、ＬＡＮ１０３、通信用ＬＳＩ１０４、メモリ１０８、不揮発性記憶媒体１０９のいずれか、または複数を一体化したＩＣ、ＣＰＵ、ＳｏＣ（Ｓｙｓｔｅｍ  ｏｎ  Ｃｈｉｐ）  ＦＰＧＡを用いてもよい。
【００３４】
なお、ＰＨＹ１０２、ＬＡＮ１０３と通信用ＬＳＩ１０４はそれぞれネットワーク１２２に接続するインターフェースであり、本発明の構成をＬＡＮ１０３に含めれば、通信用ＬＳＩ１０４、ＰＨＹ１０２をＬＡＮ１０３で構成してもよいし、図２のＬＡＮ１０３を通信用ＬＳＩ１０４とＰＨＹ１０２で構成してもよい。図２は、ネットワーク１２２ａを通信装置１２３へ接続するネットワーク、ネットワーク１２２ｂを通信装置１２４へ接続するネットワークとして説明する。
【００３５】
（各機能部の説明）
図３に本発明を適用した通信制御装置１２０の機能構成図を示す。
通信部１３７は、ネットワーク１２２に接続し、ネットワーク１２２の通信プロトコルにしたがって通信をするための機能部である。ＰＨＹ１０２、ＬＡＮ１０３、通信用ＬＳＩ１０４のいずれか、または複数で構成する。
【００３６】
送信部１３８は、通信部１３７における送信機能部であり、通信制御装置１２０からネットワーク１２２に対してパケットを送信する。ＰＨＹ１０２、ＬＡＮ１０３、通信用ＬＳＩ１０４のいずれか、または複数で構成する。
【００３７】
受信部１３９は、通信部１３７における受信機能部であり、ネットワーク１２２から送信されたパケットを受信する。ＰＨＹ１０２、ＬＡＮ１０３、通信用ＬＳＩ１０４のいずれか、または複数で構成する。
【００３８】
配信部１４０は、通信用ＬＳＩ１０４、またはＬＡＮ１０３に入力されたデータを、所定の方法によって識別し、非リアルタイム通信部１３１、あるいはリアルタイム通信部１３０、あるいは非リアルタイム通信部１３１、リアルタイム通信部１３０の両方に配信する。配信先の機能部を決定する識別方法は、入力データの所定の位置に識別子を表現する方法や、通信用ＬＳＩ１０４あるいはＬＡＮ１０３に入力する際に識別子を指定する方法が例示される。後者の具体例としては、通信用ＬＳＩ１０４、あるいはＬＡＮ１０３をＰＣＩデバイスとして構成した場合に、ＰＣＩバス空間に提示するアドレス空間によって区別する方法や、通信用ＬＳＩ１０４、あるいはＬＡＮ１０３へのバースト転送要求を異なるレジスタにもうけて区別する方法が例示される。 
タイマ１４１は、各機能部へ時刻情報や、所定周期の経過を通知する（図示なし）。タイマ１４１は、専用のタイマデバイスや、ハードウェアクロック、あるいはＣＰＵ１０１上で動作するソフトウェアによるソフトウェアクロックが例示される。
【００３９】
リアルタイム通信部１３０は、通信制御装置１２０から通信装置１２３に対する動作指令や計測情報の取得要求等の、時間制約をもって送信するリアルタイムデータを格納する機能部である。配信部１４０から、リアルタイムデータを受け取って、フラグメント制御部１３２へリアルタイムデータを伝送する。
【００４０】
リアルタイムデータの送信要求は、所定の周期で発生するか、任意のタイミング で発生する。データサイズについては周期ごとに変化してもよい。なお、リアルタイムデータが任意のタイミングで発生する場合は、所定の手段において、次の送信までの時間を、該送信の前に既知である構成とする。例えば、次の送信までの時間として、リアルタイムタイムデータ上に該情報を付加、格納したり、該情報を必要とする機能部へリアルタイム通信部１３０、あるいは配信部１４０から通知する構成としてもよい。
【００４１】
リアルタイムデータを送信する周期は、タイマ１４１を用いて管理する。
【００４２】
なお、リアルタイム通信部１３０内でのリアルタイムデータの形式は、データのみの形式でもよいし、ネットワーク１２２の通信プロトコルにしたがうようにヘッダ等を付与した形式でもよい。データのみの形式で管理する場合は、ヘッダ等の情報を通信部１３７で付与してもよいし、通信スケジュール部１３６、またはフラグメント制御部１３２で付与してもよい。
【００４３】
また、ネットワーク１２２の通信プロトコルにしたがった形式で管理する場合は、配信部１４０から該形式で受信してもよいし、配信部１４０からはデータだけを受信し、リアルタイム通信部１３０内でネットワーク１２２の通信プロトコルにしたがうようにヘッダを付与してもよい。
【００４４】
非リアルタイム通信部１３１は、ＣＰＵ１１０で動作するソフトウェアとして構成してもよいし、通信用ＬＳＩ１０４、あるいはＬＡＮ１０３におけるハードウェアとして構成してもよい。
【００４５】
非リアルタイム通信部１３１は、通信制御装置１２０から通信装置１２３に対する管理情報や稼働情報等の、時間制約を持たずに送信する非リアルタイムデータを格納する機能部である。配信部１４０から、非リアルタイムデータを受け取って、フラグメント処理部１３５へ非リアルタイムデータを伝送する。
【００４６】
非リアルタイムデータの送信要求は、任意のタイミングで発生し、また、データサイズについても任意である。
【００４７】
なお、非リアルタイム通信部１３１内での非リアルタイムデータの形式は、データのみの形式でもよいし、ネットワーク１２２の通信プロトコルにしたがうようにヘッダ等を付与した形式でもよい。データのみの形式で管理する場合は、ヘッダ等の情報を通信部１３７で付与してもよいし、スケジュール部１３６、あるいはフラグメント処理部１３５で付与してもよい。
【００４８】
また、ネットワーク１２２の通信プロトコルにしたがった形式で管理する場合は、配信部１４０から該形式で受信してもよいし、配信部１４０からはデータだけを受信し、非リアルタイム通信部１３１内でネットワーク１２２の通信プロトコルにしたがうようにヘッダを付与してもよい。
【００４９】
非リアルタイム通信部１３１は、ＣＰＵ１０１で動作するソフトウェアとして構成してもよいし、通信用ＬＳＩ１０４、あるいはＬＡＮ１０３におけるハードウェアとして構成してもよい。
【００５０】
また、リアルタイム通信部１３０、非リアルタイム通信部１３１は、マルチコアＣＰＵ、あるいはメニーコアＣＰＵの一つのＣＰＵコアを用いて構成してもよい。
【００５１】
フラグメント制御部１３２は、リアルタイム通信ステータス抽出部１３３、動的フラグメントサイズ決定部１３４から構成し、リアルタイム通信部１３０からのリアルタイムデータを通信スケジュール部１３６へ伝送するとともに、フラグメント処理部１３５へフラグメントサイズを通知する。
【００５２】
リアルタイム通信ステータス抽出部１３３は、リアルタイム通信部１３０から伝送されたリアルタイムデータに関するリアルタイム通信ステータスを抽出し、動的フラグメントサイズ決定部１３４へ通知する。リアルタイムデータは通信スケジュール部１３６へ伝送する。
【００５３】
動的フラグメントサイズ決定部１３４へ通知するリアルタイム通信ステータスとしては、次の周期までの残り時間、あるいは次の送信までの残り時間や関連する通信周期、通信完了事象の発生、パケットのデータサイズ、パケットの通信処理時間（図３に図示する各機能部における伝送時間、あるいはその合計、通信部１３７から送信されるにかかる時間）、所定の通信用に割り当てたタイムスロット期間等 が例示される。リアルタイム通信ステータスが時間を含む場合は、あらかじめ、リアルタイム通信ステータス抽出部１３３、通信スケジュール部１３６、通信部１３７によるリアルタイムデータの伝送、送出処理時間を減算してもよい。あるいはリアルタイム通信ステータス抽出部１３３の通知処理にかかる時間や、動的フラグメントサイズ決定部１３４の受信処理時間を減算してもよい。同様にネットワーク１２２の規格で定まるフレーム間ギャップを減算してもよい。また、リアルタイム通信ステータスがパケットのデータサイズを含む場合は、所定のデータ長を加減してもよい。例えば、後段の機能部において所定の通信プロトコルのヘッダを付加することが事前に既知であれば、そのヘッダサイズを加算してもよい。
【００５４】
リアルタイムデータが任意のタイミングで発生する場合は、次の送信までの時間をリアルタイム通信ステータス抽出部１３３にて抽出する。抽出方法は、リアルタイムデータ上に該情報を付加、あるいは格納し、その情報から抽出することやリアルタイム通信部１３０からリアルタイム通信ステータス抽出部１３３に通知してもよい。
【００５５】
動的フラグメントサイズ決定部１３４は、リアルタイム通信ステータス抽出部１３３から通知されたリアルタイム通信ステータスをもとに、非リアルタイムデータのフラグメント（断片化）サイズを決定し、フラグメント処理部１３５へ通知する。
【００５６】
動的フラグメントサイズ決定部１３４におけるフラグメントサイズを決定する方法の例を図４に示す。
【００５７】
図４では、リアルタイムデータの次の送信時間までの残時間Ｔｒと、単位データサイズあたりの非リアルタイムデータ送信処理時間Ｔｐから、次式１で求まる値を残時間Ｔｒで送信可能なデータサイズであるフラグメントサイズＳｆとしている。
Ｓｆ  ＝  Ｔｒ  ／  Ｔｐ  −  α  (式１)
【００５８】
ここで、αはマージンである。例えば、Ｔｒ＝１０マイクロ秒、Ｔｐ＝２０ナノ秒／ｂｙｔｅ、α＝１０ｂｙｔｅとすれば、Ｓｆ＝１０マイクロ秒／（２０ナノ秒／ｂｙｔｅ）−１０ｂｙｔｅ＝４９０ｂｙｔｅとなる。なお、マージンαは、残時間Ｔｒ、非リアルタイムデータ送信処理時間Ｔｐに対するマージンとしてもよい。
【００５９】
あるいはリアルタイムデータが任意のタイミングで発生する場合は、式１のＴｒを次の送信までの時間として、同様に計算する。
【００６０】
（フラグメントサイズの決定方法）
フラグメントサイズは、図４のように残時間に対して単調減少としてもよいし、残時間を一定範囲で区切り、その間は一定とする階段状 としてもよい。このように階段状にすることで、フラグメントサイズＳｆの計算負荷を減らす効果が期待できる。
【００６１】
あるいは、フラグメントの最小値を設定可能とし、図４ですでに説明したフラグメントサイズの計算結果が最小値以下となれば、フラグメント不可あるいはフラグメントサイズ０としてフラグメント処理部１３５へ通知してもよい。その場合、ＣＰＵ１０１上で動作するソフトウェアあるいは動的フラグメントサイズ決定部１３４を実現する通信用ＬＳＩ１０４、ＬＡＮ１０３等に、フラグメントサイズの最小値を設定する手段を設ける（レジスタ設定や専用の信号線等）。
【００６２】
なお、動的フラグメントサイズ決定部１３４がフラグメント処理部１３５に通知する情報として、フラグメントサイズの値以外に、フラグメント不可であること（どれだけ小さく断片化しても送信できない状況）、フラグメント不要であること（フラグメントせずに送信可能）、フラグメント計算不可であること （フラグメントサイズの計算ができない）のいずれか、または複数が例示される。これらの情報を示す方法として、回路上で専用の信号接続をもうけてもよいし、フラグメントサイズに事前定義した値を用いてもよい。例えば、フラグメントサイズ０をフラグメント不可の意味として用いることが例示される。
【００６３】
また、リアルタイムデータの送信が任意のタイミングで発生する場合、あるリアルタイムデータを送信した時点で、次の送信が明らかになるとは限らない。その場合、次の送信までの時間が明らかになった時点でリアルタイム通信部１３０は、リアルタイム通信ステータス抽出部１３３へ該残時間を通知する。リアルタイム通信ステータス抽出部１３３は残時間が明らかになるまで残時間が未定であることを動的フラグメントサイズ決定部１３４へ通知し、動的フラグメントサイズ決定部１３４は、その間、フラグメント不要であることをフラグメント処理部１３５へ通知する構成が例示される。あるいは、リアルタイム通信部１３０が所定の時間だけ前もって次のリアルタイムデータ送信までの時間を取得可能であれば、その時間をリアルタイム通信部１３０からリアルタイム通信ステータス抽出部１３３へ、リアルタイム通信ステータス抽出部１３３から動的フラグメントサイズ決定部１３４へ通知し、動的フラグメントサイズ決定部１３４はその時間に基づいたフラグメントサイズをフラグメント処理部１３５へ通知する。
【００６４】
このように動的フラグメントサイズ決定部１３４によって、逐次リアルタイムデータの送信処理に干渉せずに送信可能なデータサイズを計算して、フラグメント処理部１３５へ通知することで、後述するフラグメント処理部１３５は、適切なデータサイズに非リアルタイムデータをフラグメント化できる。
【００６５】
フラグメント処理部１３５は、フラグメント制御部１３２、動的フラグメントサイズ決定部１３４から通知されたフラグメントサイズにしたがって、非リアルタイムデータをフラグメント化する。フラグメント化する際に、元の非リアルタイムデータを復元可能な情報を付加する。該情報としては、非リアルタイムデータの識別子、元の非リアルタイムデータにおけるフラグメントの位置情報（順番、あるいはｂｙｔｅ単位における先頭からのオフセット位置等）やフラグメントのデータサイズが例示される。フラグメントの実装例としてはＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）が例示される。ＩＰヘッダは、該情報として、元のデータの識別子、フラグ（分割可否、最後のフラグメントであるかどうか）、ｂｙｔｅ単位によるフラグメントの位置オフセットを含む。
【００６６】
なお、動的フラグメントサイズ決定部１３４から通知されたフラグメントサイズから付加情報のサイズを減算した値分を、非リアルタイムデータからフラグメント化してもよいし、あるいは付加情報のサイズ分を予め減算した値を動的フラグメントサイズ決定部１３４がフラグメント処理部１３５に通知してもよい。後者の場合、動的フラグメントサイズ決定部１３４は付加情報のサイズの設定・取得手段を有する。
【００６７】
動的フラグメントサイズ決定部１３４からの通知がフラグメント不要であれば、フラグメント処理部１３５は非リアルタイムデータをフラグメント化せずに送信する。あるいは、フラグメント不可であれば、フラグメント化せずに送るか、所定のサイズでフラグメント化するか、あるいは通信スケジュール部１３６への非リアルタイムデータの転送を停止する。
【００６８】
所定のサイズでフラグメント化する際は、任意の時点でリアルタイムデータを送信可能なように、なるべく小さいサイズでフラグメント化することが例示される。なお、フラグメント計算不可である状態及びフラグメント処理部１３５の対応処理のそれぞれの情報は、ＣＰＵ１０１上で動作するソフトウェアに通知、あるいはＣＰＵ１０１上で動作するソフトウェアから取得可能とすることが例示される。
【００６９】
あるいは、非リアルタイムデータがフラグメント不可であると設定されている場合も、フラグメント処理部１３５はフラグメント化 しない。また、非リアルタイムデータが所定の条件に一致する場合もフラグメント化しない ことが例示される。例えば、非リアルタイムデータが所定の通信プロトコルである場合や、あるいは通信プロトコル上のパラメータが所定値である場合である。これらの条件一致はフラグメント処理部１３５が判定してもよいし、非リアルタイム通信部１３１が判定して、その結果を非リアルタイムデータに付与してもよい。フラグメント不可と設定されたこの場合に非リアルタイムデータが送信可能であるかどうかは通信スケジュール部１３６の判定による。
【００７０】
フラグメント処理部１３５のフラグメント化処理においては、動的フラグメントサイズ決定部１３４からの通知が有効なフラグメントサイズである場合に、必ずしも通知されたフラグメントサイズでフラグメント化しなくてもよい。具体的には、通知されたフラグメントサイズ以下のサイズでフラグメントする。例えば、非リアルタイムデータの中で、動的フラグメントサイズ決定部１３４から通知されたフラグメントサイズよりも小さいサイズの範囲内にアプリケーション上の重要なデータがある場合は、先に該重要データまでをフラグメント化して通信スケジュール部１３６へ通知する構成が示される。
【００７１】
（サブパケットで構成するパケットの場合）
フラグメント処理部１３５におけるフラグメント処理において、非リアルタイムデータが複数の下位要素で構成される場合、下位要素でのフラグメント化が必要 である。例えば、ＩＥＣ  ６１７８４−２のＣＰＦ（Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｐｒｏｆｉｌｅ  Ｆａｍｉｌｙ）１２におけるパケットは、複数のデータグラムで構成される（図２０）。
【００７２】
ＩＥＣ  ６１７８４−２のＣＰＦにおけるパケットは、図２０のようにＥｔｈｅｒｎｅｔ（登録商標）ヘッダ、データ領域、トレイラからなり、データ領域には、共通ヘッダと、複数のデータグラムから構成される。各データグラムは、データグラム用のヘッダ、及び、トレイラを有し、ＴＣＰ／ＩＰ等の通信プロトコルは、データグラム内のデータとしてカプセル化される。そのため、フラグメント処理部１３５によるフラグメント化にあたっては図２０の構成を維持しつつ、データグラム内のデータ領域においてフラグメント化する必要がある。
【００７３】
その場合、データグラムの個数を増やせば、データグラムのヘッダ等の固定長が付随するため、動的フラグメントサイズ決定部１３４から通知されたフラグメントサイズを越える場合がある。そのため、フラグメント処理部１３５におけるフラグメント化にあたっては、データグラム内のフラグメント化だけでなく、データグラム数の個数を減らし、動的フラグメントサイズ決定部１３４から通知されたフラグメントサイズを超えないようにフラグメント化する。
【００７４】
リアルタイム通信ステータス抽出部１３３、フラグメント処理部１３５、通信スケジュール部１３６、通信部１３７におけるデータの処理時間は一定か、あるいはデータサイズに応じて、一意に決まり、予測可能な処理時間である ことが望ましい。このような処理方法として、リアルタイム通信ステータス抽出部１３３を構成するデジタルＩＣ内の単位時間あたりの伝送処理データ量を一定とする構成（例えば、４ｂｙｔｅ／クロックで１００ＭＨｚ動作であれば、（ｂｙｔｅデータサイズの４ｂｙｔｅ単位切り上げ）／（４ｂｙｔｅ／クロック）×（１／１００ＭＨｚ）が処理時間となる）か、所定データサイズを処理するソフトウェアのステップ数を一定とする処理で構成（例えば、１００ＭＨｚ動作で４ｂｙｔｅを処理するために３ステップ必要とすれば、（ｂｙｔｅデータサイズの４ｂｙｔｅ単位切り上げ）×３ステップ×（１／１００ＭＨｚ）が処理時間となる）することが例示される。
【００７５】
通信スケジュール部１３６は、送信要求のあるリアルタイム通信部１３０、非リアルタイム通信部１３１の送信データの処理時間と、リアルタイム通信ステータス抽出部１３３が抽出したリアルタイム通信ステータスをもとに、リアルタイムデータと非リアルタイムデータのそれぞれの送信要求を許可するかどうかを決定する。リアルタイムデータ、非リアルタイムデータのそれぞれは送信要求とともにデータサイズを通信スケジュール部１３６に通知する。これにより、通信スケジュール部１３６での送信データの処理時間を算出する。非リアルタイムデータの送信がリアルタイムデータに干渉しなければ、非リアルタイムデータの送信要求を許可する。
【００７６】
非リアルタイムデータの送信可能通知と非リアルタイムデータの送信要求の両方が成立した場合に非リアルタイムデータを通信部１３７へ伝送する。
【００７７】
通信スケジュール部１３６は、ＣＰＵ１０１上で動作するソフトウェア、ＰＨＹ１０２、ＬＡＮ１０３、通信用ＬＳＩ１０４のいずれか、または複数で構成することが例示される。
【００７８】
このように、通信スケジュール部１３６によって、フラグメント化された非リアルタイムデータが実際に送信可能化どうかを判定することで、より確実に非リアルタイムデータの送信処理によるリアルタイムデータの送信処理への干渉を防ぐことができる。
【００７９】
通信スケジュール部１３６のスケジュール機能 について説明する。なお、以下のスケジュール機能における非リアルタイムデータは、フラグメント化されたデータを含む。
【００８０】
非リアルタイムデータを通信部１３７へ伝送していなければ、リアルタイムデータの送信が可能であることを通知する。非リアルタイムデータを伝送していればリアルタイムデータの送信が不可であることを通知する。リアルタイムデータの送信可能通知とリアルタイムデータの送信要求の両方が成立した場合にリアルタイムデータを通信部１３７へ伝送する。
【００８１】
一方、リアルタイムデータを通信部１３７へ伝送しておらず、かつ、リアルタイムデータからの送信要求もなく、非リアルタイムデータの送信処理がリアルタイムデータの送信を遅延させない場合に、非リアルタイムデータの送信が可能であることを通知する。リアルタイムデータの次の送信までの時間Ｔｒと、非リアルタイムデータの送信処理時間Ｔｎを比較し、次式２が成り立つとき、非リアルタイムデータの送信要求を許可する。
Ｔｒ  ＞  Ｔｎ  ＋  α  （式２）
【００８２】
ここでαはマージンである。つまり、非リアルタイムデータの送信処理時間がリアルタイムデータの次の送信までの時間Ｔｒ未満であれば、非リアルタイムデータの送信要求を許可する。
【００８３】
非リアルタイムデータの送信処理時間Ｔｎは、次式で算出する。
Ｔｎ  ＝  Ｔｓ  ＋  Ｔｅ  ＋  α（式３）
【００８４】
ここで、Ｔｓは、通信スケジュール部１３６の送信データ処理時間であり、Ｔｅは通信部１３７の送信データ処理時間であり、αはマージンである。
【００８５】
通信スケジュール部１３６の送信データ処理時間Ｔｓは次式で求める。
Ｔｓ  ＝  Ｓｄ  ／  Ｐｓ  ＋  α  （式４）
【００８６】
ここで、Ｓｄは非リアルタイムデータのサイズであり、Ｐｓは通信スケジュール部１３６の処理性能、αはマージンを示す。
【００８７】
なお、通信スケジュール部１３６において、ネットワーク１２２の通信プロトコルにしたがったヘッダ等を送信データに付与する場合、その処理時間を考慮して、処理時間Ｔｎは次式で計算する。
Ｔｎ  ＝  Ｓｄ  ／  Ｐ  ＋  Ｂ  （式５）
【００８８】
Ｂは、ヘッダ等の付与時間であり、データサイズＳｄに依存しない項である。あるいは、送信データが複数のサブデータで構成され、サブデータごとに処理をする場合は、サブデータ数に依存した項となる。また、データ処理時間の算出時間を含めてもよい。
【００８９】
通信部１３７の送信データ処理時間Ｔｅは、例えば、１００ＭｂｐｓのＩＥＥＥ  ８０２．３を用いる場合、次式にしたがって計算する。
Ｔｅ  ＝  Ｓｄ  ／  １００Ｍｂｐｓ  ＋  Ｃ  (式６)
【００９０】
Ｃはマージンであり、ＩＥＥＥ８０２．３のフレーム間ギャップを含めてもよい。
【００９１】
（送信処理手順）
以上、各機能部の機能、動作を説明したが、制御指令に代表されるリアルタイムデータの送信処理手順を図５に示す。
【００９２】
はじめに、リアルタイム通信部１３０において、リアルタイムデータの送信要求があるかどうかを判定する（Ｓ００１）。リアルタイムデータは、通信制御装置１２０自身から送信する場合と、通信装置１２４からの通信の場合がある。Ｓ００１において、送信要求があれば、リアルタイム通信ステータス抽出部１３３へリアルタイムデータを伝送し（Ｓ００２）、なければ待機する。次に、リアルタイム通信ステータス抽出部１３３は、リアルタイムデータからリアルタイム通信ステータスを抽出する（Ｓ００３）。抽出されたリアルタイム通信ステータスは、動的フラグメントサイズ決定部１３４においてフラグメントサイズの決定に用いられる。Ｓ００３に続いて、リアルタイム通信ステータス抽出部１３３はリアルタイムデータを通信スケジュール部１３６へ伝送する（Ｓ００４）。通信スケジュール部１３６は、受信したリアルタイムデータを通信部１３７へ伝送する（Ｓ００５）。通信部１３７は、リアルタイムデータをネットワーク１２２の通信プロトコルにしたがったパケット形式に構成し、ネットワーク１２２へ送信する（Ｓ００６）。
【００９３】
次に、非リアルタイムデータの送信処理を図６に示す。
【００９４】
はじめに、非リアルタイム通信部１３１において、非リアルタイムデータの送信処理要求があるかどうかを判定する（Ｓ０１０）。非リアルタイムデータは、通信制御装置１２０自身から送信する場合と、通信装置１２４からの通信の場合がある。Ｓ０１０において、送信要求があれば、フラグメント処理部１３５へ非リアルタイムデータを伝送し（Ｓ０１１）、なければ待機する。次にフラグメント処理部１３５は、非リアルタイムデータがフラグメント化可能であるかを判定する（Ｓ０１２）。フラグメント化が可能であるかどうかはパケット上の情報（例えば、ＩＰヘッダのフラグフィールド）をもって判定することが例示される。Ｓ０１２において、フラグメント化が可能であれば、動的フラグメントサイズ決定部１３４から通知されているフラグメントサイズが有効かどうかを判定する（Ｓ０１３）。Ｓ０１２において、フラグメント化が不可であれば、Ｓ０１５へ進む。Ｓ０１３において、フラグメントサイズが有効であれば、非リアルタイムデータを通知されているフラグメントサイズにフラグメント化する（Ｓ０１４）。Ｓ０１３において、フラグメントサイズが有効でなければ、所定の処理を実行する（Ｓ０１６）。Ｓ０１６後は、所定の処理にしたがい、Ｓ０１３（所定処理が待機の場合）、Ｓ０１４（所定処理が、所定サイズにフラグメント化する処理の場合）、Ｓ０１５（所定処理が、フラグメント化せずに送信する場合）のいずれかに進む。Ｓ０１４に続き、非リアルタイムデータが送信可能であるかを判定する（Ｓ０１５）。これは通信スケジュール部１３６からの送信許可通知の有無によって判定する。送信可能であれば、非リアルタイムデータを通信スケジュール部１３６へ伝送する（Ｓ０１７）。送信可能でなければ、所定のエラー処理を実行し（Ｓ０１８）、待機する。Ｓ０１７に続き、非リアルタイムデータを通信部１３７へ伝送する（Ｓ０１９）。Ｓ０１９に続き、通信部１３７は、非リアルタイムデータをネットワーク１２２の通信プロトコルにしたがったパケット形式に構成し、ネットワーク１２２へ送信する（Ｓ０２０）。Ｓ０２１に続き、フラグメント化した場合に全てのフラグメントを送信したかを判定する（Ｓ０２１）。送信していれば処理を終了し、していなければＳ０１３へ戻る。Ｓ０１６、Ｓ０１８に示す異常処理は、所定時間の経過（タイムアウト判定）、判定処理の所定回数以上の実行をもって異常とし、非リアルタイムデータの送信処理の停止や、非リアルタイムデータの破棄、ＣＰＵ１０１上で動作するソフトウェアや各機能部への通知、通信制御装置１２０に設けた所定の通知手段（アラーム情報の通信装置１２４へのネットワーク送信、アラーム音の出力、ＬＥＤ等の視覚的通知等）を実行 することが例示される。
【００９５】
（通信スケジュール部１３６実行手順）
通信スケジュール部１３６の実行手順を図１６に示す。
【００９６】
はじめに、通信スケジュール部１３６は、送信要求があるまで待機する（Ｓ０４１）。そして、送信要求があれば、リアルタイムデータの送信要求かどうかを判定する（Ｓ０４２）。リアルタイムデータの送信要求であれば、これを許可する（Ｓ０４３）。
【００９７】
Ｓ０４３で、リアルタイムデータの送信要求でなければ、非リアルタイムデータの送信要求である。したがって、非リアルタイムデータの処理時間Ｔｎを算出し、リアルタイムデータの次の送信までの残り時間Ｔｒをリアルタイム通信ステータス抽出部１３３から取得する（Ｓ０４４）。
【００９８】
次に、非リアルタイムデータ処理時間Ｔｎと残時間Ｔｒを比較（Ｓ０４５）し、非リアルタイムデータ処理時間Ｔｎが残時間Ｔｒ未満であれば、非リアルタイムデータの送信要求を許可する（Ｓ０４６）。
【００９９】
Ｓ０４５で、非リアルタイムデータ処理時間Ｔｎが残時間Ｔｒ以上であれば、非リアルタイムデータの送信要求を許可しない（Ｓ０４７）。Ｓ０４７後は、次のリアルタイムデータの送信を完了するまで、非リアルタイムデータの送信はできないため、Ｓ０４７までの手順を繰り返す。その後、リアルタイムデータを送信（Ｓ０４３）後、Ｓ０４１、Ｓ０４２、Ｓ０４４と手順を進め、再度、手順Ｓ０４５において、非リアルタイムデータ処理時間Ｔｎと残時間Ｔｒを比較する。このとき、非リアルタイムデータ処理時間Ｔｎが残時間Ｔｒ未満であれば、非リアルタイムデータの送信要求を許可する。
【０１００】
（非リアルタイムデータを破棄）
なお、このとき、Ｓ０４５、Ｓ０４７において、非リアルタイムデータの送信要求が許可されなかった回数を数え、所定回数以上になった場合に非リアルタイム通信部１３１へ通知してもよい。なお、連続して送信が失敗した回数を判断基準としてもよい。
【０１０１】
この通知をもとに、非リアルタイム通信部１３１は、その送信データを破棄してもよいし、あるいは、各機能部、またはＣＰＵ１０１等の構成要素に通知してもよい。
【０１０２】
通知を受けたＣＰＵ１０１上のソフトウェアは、非リアルタイムデータを破棄することや、非リアルタイムデータを再送すること、リアルタイム通信部１３０の送信周期を長くする等の対策をとることができる。
【０１０３】
（フラグメント処理の再実施）
また、リアルタイムデータの処理状況によっては、フラグメントサイズが一定とはならない可能性がある。そのために、Ｓ０４５にて非リアルタイムデータの送信要求が許可されなかった場合には、通信スケジュール部１３６へ再度フラグメント処理を実施するよう通知することもできる。これによって、時間経過によって変化する送信可能なフラグメントサイズに合せて非リアルタイムデータを再フラグメント化し、再度通信スケジュール部１３６によって送信可能か判断することができる。
【０１０４】
（パケット長をリアルタイムデータの先頭に付加）
なお、リアルタイム通信部１３０がリアルタイムデータの先頭にパケット長を付加することで、リアルタイム通信ステータス抽出部１３３がパケット全長を抽出し、動的フラグメントサイズ決定部１３４へ通知することが示される。このように構成することで、動的フラグメントサイズ決定部１３４はパケット全長がわかるため、リアルタイムデータの処理を完了する前に、リアルタイムデータ処理完了時間を算出することができる。したがって、処理完了予定時刻、あるいは完了予定時刻までの残時間と予定時刻におけるフラグメントサイズを事前にフラグメント処理部１３５に通知することにより、フラグメント処理部１３５はフラグメント処理にかかる時間だけ、リアルタイムデータ送信処理完了予定時刻から前もってフラグメント処理を開始 することができる。この場合、リアルタイム通信ステータス抽出部１３３、あるいは通信スケジュール部１３６、通信部１３７等でリアルタイムデータ先頭のパケット長を除去することが示される。
【０１０５】
（リアルタイムデータ送信に干渉した場合）
また、何らかの理由で、通信スケジュール部１３６において、非リアルタイムデータ送信中にリアルタイムデータ送信要求が発生した場合、そのまま非リアルタイムデータの送信を継続してもよいが、途中で中断し、強制的にリアルタイムデータを送信してもよい。その場合、非リアルタイムデータの送信中断のために、ＩＥＥＥ  ８０２．３のＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）を意図的に異常な値とすることが例示される。このようにすれば、受信した通信装置１２３において、該パケットは破棄される。また、追って再送するために、非リアルタイムデータを送信しながら、内部で送信データを保存してもよい。この場合、非リアルタイムデータの通信部１３７への伝送は中断するが、継続してフラグメント処理部１３５から非リアルタイムデータを受信し、非リアルタイムデータ全体を保持する。
【０１０６】
リアルタイムデータの送信完了後に、非リアルタイムデータの送信が可能であれば、送信する。非リアルタイムデータを送信できた場合は、保持していた非リアルタイムデータをクリアする。なお、所定期間、所定回数リアルタイムデータを送信しても、非リアルタイムデータの再送ができなかった場合は、非リアルタイムデータの送信を中断したこと、非リアルタイムデータの再送ができなかったことをＣＰＵ１０１上で動作するソフトウェア、あるいは他の機能部、あるいは外部へ通知することが例示される。なお、これらの処理は非リアルタイムデータに限定されず、リアルタイムデータに対して実行してもよい。
【０１０７】
（具体例）
図５、図６による手順で示される通信制御装置１２０からネットワーク１２２ａに出力されるタイムチャート上のパケットの状態と動的フラグメントサイズ決定部１３４によるフラグメントサイズを図７に示す。
【０１０８】
リアルタイム通信部１３０の送信周期を１００マイクロ秒とする。
【０１０９】
時刻ｔ１で、周期が経過し、リアルタイムデータの送信要求を許可し、リアルタイムデータを送信する。非リアルタイムデータが時刻ｔ２の時点でフラグメント処理部１３５に伝送されたとする。このとき、ｔ２は、ｔ１から８０マイクロ秒経過した時点とし、非リアルタイムデータのサイズを１５００ｂｙｔｅとする。非リアルタイムデータの処理性能を５０Ｍｂｙｔｅ／秒とすると、単位データサイズ１ｂｙｔｅあたりの非リアルタイムデータの処理時間Ｔｓは、通信スケジュール部１３６の処理時間、通信部１３７（１００ＭｂｐｓのＩＥＥＥ  ８０２．３を想定）の処理時間の合計となり、次式で求まる。
Ｔｓ  ＝  １ｂｙｔｅ／（５０Ｍｂｙｔｅ／秒）
＋  （１ｂｙｔｅ／（１００Ｍｂｐｓ／（８ｂｉｔ／ｂｙｔｅ）））
＝  １００ナノ秒／ｂｙｔｅ
【０１１０】
式１からフラグメントサイズで求める。
Ｓｆ  ＝  （１００マイクロ秒  −  ８０マイクロ秒）／  （１００ナノ秒／ｂｙｔｅ）
＝  ２００ｂｙｔｅ
【０１１１】
したがって、動的フラグメントサイズ決定部１３４は２００ｂｙｔｅをフラグメントサイズとしてフラグメント処理部１３５に通知する。フラグメント処理部１３５は、動的フラグメントサイズ決定部１３４から通知されたフラグメントサイズにしたがい、非リアルタイムデータ１５１は、フラグメントパケット１５２ａ（２００ｂｙｔｅ）、１５２ｂ（８００ｂｙｔｅ）、１５２ｃ（５００ｂｙｔｅ）にフラグメント化される例を示している。
【０１１２】
なお、リアルタイム通信部１３０の送信データサイズは固定でなくても構わない。したがって、非リアルタイムデータのサイズが比較的大きい場合であっても、非リアルタイムデータは適切な大きさにフラグメント化され、通信スケジュール部１３６が自動的に非リアルタイムデータを送信可能な周期を判定し、非リアルタイムデータを送信することが可能である。
【０１１３】
（受信処理）
次に受信処理を示す。
【０１１４】
受信処理を実行するハード構成の例として、図２、または図８が示される。図２は主に通信制御装置１２０、図８は通信装置１２３を想定する。
【０１１５】
受信処理を実行する機能構成を図９に示す。
【０１１６】
データ識別部１６０は、パケットデータから、該当パケットがリアルタイムデータか、非リアルタイムデータかを識別する。識別方法は、パケットのプロトコル情報による識別、受信間隔における周期性、フラグメントヘッダの有無を用いることが例示される。例えば、通信プロトコルの種類や、プロトコルヘッダの各情報（例、ＩＰの送信元ＩＰアドレス、ＵＤＰのあて先通信ポート番号等）が所定の条件に該当する場合にリアルタイムデータ、あるいは非リアルタイムデータと判定する方法や、プロトコル情報で識別されるパケットの受信間隔に周期性がある場合にリアルタイムデータと判断することや、フラグメント化されている場合に非リアルタイムデータと判断 することが例示される。
【０１１７】
データ識別部１６０は、ＰＨＹ１０２、ＬＡＮ１０３、通信用ＬＳＩ１０４、ＣＰＵ１０１上で動作するソフトウェアのいずれか、または複数で構成する。
【０１１８】
フラグメント復元部１６１は、データ識別部１６０から受信したデータがフラグメント化されていれば、そのフラグメントパケットを、フラグメント情報に基づき、復元する。フラグメント化されていなければ非リアルタイムデータを非リアルタイム通信部１３１へ伝送する。
【０１１９】
フラグメント復元部１６１は、ＰＨＹ１０２、ＬＡＮ１０３、通信用ＬＳＩ１０４、ＣＰＵ１０１上で動作するソフトウェアのいずれか、または複数で構成する。
【０１２０】
なお、フラグメント化は階層的に多段階で実行される場合がある。例えば、複数の通信制御装置１２０を経由する場合等である。そのような場合には、１重のフラグメント化処理を復元してもよいし、複数のフラグメント化を復元してもよい。例えば、フラグメント化による付加情報がなくなるまでフラグメント化処理を実行 することが例示される。
【０１２１】
また、フラグメント復元部１６１は、パケットが複数の下位要素で構成される場合に、下位要素内のデータ領域まで確認して復元処理を実行 してもよい。
【０１２２】
受信処理手順を図１０に示す。
【０１２３】
はじめにパケットを受信したかどうかを判定する（Ｓ０３０）。受信すれば、データ識別部１６０へパケットを伝送し（Ｓ０３１）、そうでなければ待機する。Ｓ０３１に続いて、データ識別部１６０はパケットがリアルタイムデータか、非リアルタイムデータかを識別する（Ｓ０３２）。リアルタイムデータであれば、リアルタイム通信部１３０へ受信データを伝送する（Ｓ０３３）。Ｓ０３２において、リアルタイムデータでなければ、フラグメント復元部１６１へと受信データを伝送する（Ｓ０３４）。なお、Ｓ０３２において、明確に非リアルタイムデータ、リアルタイムデータのいずれとも識別できない場合は、フラグメント復元部１６１へ伝送することが例示される。これは、制御システムを構成する上で制御指令は重要であり、明確に識別できることが前提だからである（なお、明確に非リアルタイムデータ、リアルタイムデータのいずれとも識別できない場合に、リアルタイム通信部１３０へ伝送してもよい）。
【０１２４】
Ｓ０３３に続いて、リアルタイム通信部１３０は制御指令にかかわるアプリケーション処理（例えば、アクチュエータへの指令）を終えて、パケットの受信処理を終了する。Ｓ０３４に続いて、フラグメント復元部１６１は受信パケットがフラグメント化されているかを判定する（Ｓ０３５）。フラグメント化されていれば、フラグメントパケットが全て集まり、元のパケットを復元できるかを判定する（Ｓ０３７）。Ｓ０３７において、元のパケットを復元できれば、パケットを復元し（Ｓ０３８）し、非リアルタイム通信部１３１へ伝送する（Ｓ０３６）。Ｓ０３５において、フラグメント化されていない場合も、Ｓ０３６の手順へ進む。Ｓ０３６に続いて、非リアルタイム通信部１３１は制御指令にかかわるアプリケーション処理（例えば、パラメータの設定）を終えて、パケットの受信処理を終了する。Ｓ０３７において、復元できなければ所定の異常処理を実行して（Ｓ０３９）終了する。Ｓ０３９の異常処理とは、所定時間の経過（タイムアウト判定）、判定処理の所定回数以上の実行をもって異常とし、非リアルタイム通信処理の停止や、非リアルタイムデータの破棄、ＣＰＵ１０１上で動作するソフトウェアや各機能部への通知、通信制御装置１２０、通信装置１２３に設けた所定の通知手段（アラーム情報の通信制御装置１２０、通信装置１２４へのネットワーク送信、アラーム音の出力、ＬＥＤ等の視覚的通知等）を実行することが例示される。
【０１２５】
なお、Ｓ０３２以降の手順はデジタルＩＣ（ＦＰＧＡ、ＣＰＬＤ）やマルチコアＣＰＵ、マルチタスク等の構成を用いることによって並列に実行することが可能である。
【０１２６】
（機能部の要・不要） 
ここで、図３の機能構成において、通信装置１２４からのパケットを転送する必要がない場合は、配信部１４０、通信部１３７ｂは不要である。
【０１２７】
（変形、応用）
本実施例では、リアルタイム通信部１３０、非リアルタイム通信部１３１から通信スケジュール部１３６へ送信要求と同時にデータサイズを通知したが、送信データ処理時間をリアルタイム通信部１３０、非リアルタイム通信部１３１がそれぞれ算出し、通信スケジュール部１３６へ送信要求と同時に送信データ処理時間を通知してもよい。
【０１２８】
また、本実施例では、リアルタイム通信部１３０、非リアルタイム通信部１３１がそれぞれひとつであったが、それぞれを複数にしてもよい。その際、それぞれの機能部間での優先度を明示する必要がある。
【０１２９】
また、本実施例では、リアルタイム通信部１３０、非リアルタイム通信部１３１の２つの通信主体を想定し、リアルタイム通信部１３０の優先度を非リアルタイム通信部１３１より高いとして説明したが、これを一般化し、複数の通信主体を想定 することができる。
その場合、各通信主体はフラグメント化しない主体と、フラグメント化する主体に分類し、また通信主体ごとに優先度を設定 することが例示される。動的フラグメントサイズ決定部１３４によるフラグメントサイズの通知においても、フラグメント化を実行する通信主体に対して、優先度に応じてフラグメントサイズを通知してもよい。優先度に応じた場合、通信帯域を割り当てられない通信主体の存在も考えられるため、通信帯域の割り振りとして、最低限の通信帯域を保証し、余剰帯域を優先度に応じて分配する方式や、周期ごとに割当帯域や優先度を変更させる方式 が例示される。また、各通信主体におけるフラグメント化の適用有無を動的に変更してもよい。
【０１３０】
（効果）
以上の発明による効果について説明する。
【０１３１】
任意のタイミングで非リアルタイムデータの送信要求が発生したとしても、動的フラグメントサイズ決定部１３４がリアルタイムデータの次の送信までの残時間を考慮して、フラグメントサイズを決定し、フラグメント処理部１３５がそのサイズにあわせて非リアルタイムデータをフラグメント化する。こうすることで、非リアルタイムデータの送信に影響されることなく、リアルタイムデータを高精度に送信することができる。また、リアルタイムデータの送信時間の空きを効率よく利用することで、非リアルタイムデータの通信帯域を向上させることができる。
【０１３２】
また、送信タイミングを通信スケジュール部１３６で自動調整するため、ＣＰＵ１０１上で動作するソフトウェアからは、任意のタイミングで、非リアルタイムデータの送信を要求することができる。これにより、リアルタイムデータ送信の精度を維持するために非リアルタイムデータを設定するアプリケーションの開発効率を犠牲にする必要がない。
【０１３３】
また、非リアルタイムデータ送信用の時間帯域をネットワーク１２２上にもうける必要がないため、送信周期を高速化しやすく、制御性能を向上させることができる。また、仮に、送信周期を過剰に短く設定した場合であっても、非リアルタイムデータの送信ができなかったことを検知して、送信周期を調整する等の対策を施すことが可能である。
【０１３４】
このように本実施例によって、非リアルタイムデータの送信、再送、転送に干渉されずにリアルタイムデータを送信することができる。
【０１３５】
＜実施例２＞（定周期＋非定周期＋ＨＳＲでの実施例）
本発明の一実施形態について述べる。実施例２は、実施例１と比較して、通信制御装置１２０、通信装置１２３によって構成するネットワークがリング型冗長化ネットワークであることを示す。実施例に使用する符号は、特に断りのない限り、実施例１で説明した機能や要素等と同一であることを意味する。
【０１３６】
本発明を適用した通信制御装置１２０を用いて構成するシステム例を図１１に示す。
【０１３７】
ネットワーク１２５は、高信頼化のために通信経路を冗長化したリングネットワークを示す。実装例としては、ＩＥＣ  ６２４３９−３のＨＳＲ（Ｈｉｇｈ  Ａｖａｉｌａｂｉｌｉｔｙ  Ｓｅａｍｌｅｓｓ  Ｒｅｄｕｎｄａｎｃｙ）をもとに説明する。
【０１３８】
また、通信制御装置１２０と通信装置１２３、通信装置１２４を区別して説明するが、通信装置１２３、通信装置１２４が通信制御装置１２０の機能を備えていても本発明の効  果が失われるものではない。
【０１３９】
（機能部の説明）
図１２は、本発明を適用した通信用ＬＳＩ１０４の機能構成の一実施形態である。
【０１４０】
複製送信部１７０は、通信スケジュール部１３６から伝送されたデータをネットワーク１２５のフレームフォーマットに整形して送信する。一例として、送信データを複製し、ＨＳＲタグを付加することが例示される。ＨＳＲタグフォーマットを図１３に示す。
【０１４１】
後着廃棄判定処理部１７１は、ＩＥＣ  ６２４３９−３の規格にしたがい、受信パケットの後着廃棄処理を実行する。ＩＥＣ  ６２４３９−３では、ＨＳＲタグ上の情報をもとに複製された受信データの同一性を判断し、パケットの先着、後着を判定する。後着と判定されたパケットを廃棄する。
【０１４２】
リアルタイム通信ステータス抽出部１７２は、リアルタイム通信ステータス抽出部１３３の機能に加え、リアルタイムデータと判定されたＨＳＲ転送パケットのリアルタイム通信ステータスから、ＨＳＲパケットを転送し得るタイムスロット（時間帯）を動的フラグメントサイズ決定部１７３、通信スケジュール部１７４に通知する。
【０１４３】
動的フラグメントサイズ決定部１７３は、動的フラグメントサイズ決定部１３４の機能に加え、リアルタイム通信ステータス抽出部１７２から通知された情報をもとに、ＨＳＲ転送パケット用のタイムスロットを考慮し、フラグメントサイズを決定 する。
【０１４４】
通信スケジュール部１７４は、通信スケジュール部１３６の機能に加え、転送パケット等の所定のパケット種別用のタイムスロット情報を受け取り、該時間帯には該パケット種別の送信を優先する機能をそなえる。
【０１４５】
（ＨＳＲパケット転送用タイムスロットの決定方法）
図１７を用いて周期内の転送用タイムスロットの決定方法を説明する。各ノードが同期しているとした場合、通信制御装置１２０における転送パケットの受信タイミングは、通信制御装置１２０における周期の開始時点からの通信装置１２３の送信タイミングまでの時間（図１７のＴ１）、通信装置１２３と通信制御装置間の通信遅延をもとに決める ことができる。通信遅延は、冗長化ネットワークであるため、図１７のＴ２、Ｔ３の２つが存在する。
【０１４６】
Ｔ２は次式で求めることができる。
Ｔ２  ＝  Ｌｄ  ×  Ｎ  ＋  Ｔｔｒ  ×（Ｎ−１）  （式７）
【０１４７】
ここで、Ｌｄは通信装置１２３間の経路上の通信遅延、Ｎは通信制御装置１２０までのホップ数、Ｔｔｒは各通信装置１２３内の通信遅延である。Ｔ３の場合も同様であり、冗長化された２つの経路（左回り、右回り）の違いにより、Ｎが異なる。Ｌｄは同じ値としているが、経路長等や通信媒体の性能によって経路ごとに異なる値となり得る（その場合は式７に反映する）。また、Ｔｔｒも、経路上の通信装置１２３によって異なる値となり得る。
【０１４８】
これにより、通信制御装置１２０における転送パケットの受信タイミングは次式で求まる。
Ｔａ  ＝  Ｔ１  ＋  Ｔ２  （式８）
Ｔｂ  ＝  Ｔ１  ＋  Ｔ３  （式９）
【０１４９】
ここで、Ｔａは図１７の左回りの転送パケットの受信タイミング、Ｔｂは図１７の右回りの転送パケットの受信タイミングである。
【０１５０】
Ｔａ、Ｔｂを転送パケットが到着し得るタイミングとし、動的フラグメントサイズ決定部１７３は、Ｔａ、Ｔｂまでの残時間をもとにフラグメントサイズを決定する。なお、図１７ではＴａがＴｂよりも早い時間としているが、前述のとおり、式７を構成する各数値の違いにより、ＴｂがＴａよりも早くなることもあり得る。
【０１５１】
Ｔａ、Ｔｂの算出に必要な各情報を取得するために、通信制御装置１２０は所定の入力手段をそなえてもよいし、各通信装置１２３から該情報を通知するように構成してもよい。
【０１５２】
なお、タイムスロットの長さは転送パケットを処理し終えるまでである。ＨＳＲパケットの場合、図１３に示すように、先頭の所定位置のＨＳＲタグまでを読み取ることによって、パケット全長がわかるため、転送パケットの処理を完了する前に、転送処理完了時間を算出することができる。したがって、転送処理完了予定時刻、あるいは完了予定時刻までの残時間と予定時刻におけるフラグメントサイズを事前にフラグメント処理部１３５に通知することにより、フラグメント処理部１３５はフラグメント処理にかかる時間だけ、転送処理完了予定時刻から前もってフラグメント処理を開始することができる。
【０１５３】
また、ＨＳＲパケットは同一パケットを受信した通信装置１２３において後着廃棄処理が実行されるため、片方の転送パケットを転送し終えた時点で、別方向からの転送パケット用のタイムスロットの予約を解除 することが例示される。例えば、図１７において、Ｔａの時間帯で転送パケットを処理した後に、Ｔｂからのタイムスロットを解除する処理である。こうすることで、非リアルタイムデータ用の通信可能時間を増加させることができる。
【０１５４】
また、周期内に一つの通信装置１２３の転送パケット用タイムスロットを予約してもよいし、複数の通信装置１２３の転送パケット用タイムスロットを予約 してもよい。前者の場合、周期ごとに、タイムスロットを予約する通信装置１２３を変更することが例示される。さらに同じ周期内で複数の通信装置１２３の転送パケット用タイムスロットを予約した場合に、タイムスロットが重なった場合や、実際に転送パケットの受信タイミングが重なって、一方の転送処理が遅延した場合には、所定の通知手段により、ＣＰＵ１０１上で動作するソフトウェアや通信制御装置１２３の外部へ通知してもよいし、あるいは対象の通信装置１２３に通知することにより、通信装置１２３における送信タイミング（図１７におけるＴ１）を変更 することが例示される。
【０１５５】
あるいは通信対象が一つの通信装置１２３であっても、転送パケットにリアルタイムデータ、非リアルタイムデータの区別ができる場合、複数のタイムスロットを割り当てても良い。その場合、式８、式９の算出におけるＴ１やＴ２、Ｔ３の数値が異なる。
【０１５６】
また、転送用タイムスロットの開始時刻をマージンで調整 してもよい。各通信装置１２３内の転送時間にゆらぎが生じ得るためである。その場合、ホップ数が近い通信装置１２３用の転送タイムスロット開始時刻のマージンを小さくすることが例示される。これは、経由ホップ数が小さいほど、通信遅延のゆらぎが小さくなると考えられるためである。
【０１５７】
（動的フラグメントサイズ決定部１７３のフラグメントサイズ決定方法）
動的フラグメントサイズ決定部１７３の決定するフラグメントサイズを図１４に示す。
【０１５８】
図１４では、図１１に加え、ＨＳＲパケット転送用のタイムスロット１８０を予約している。ネットワーク１２５の構成と、各ノードの送信タイミングを決めることにより、他ノードでの転送パケットの到着時間帯を事前に設計する。動的フラグメントサイズ決定部１７３は、次のリアルタイムデータの送信時間までの残時間だけでなく、ＨＳＲパケット転送用のタイムスロットまでの残時間を考慮して、フラグメントサイズを決定 する。すなわち、式１のリアルタイムデータの次の送信時間までの残時間ＴｒをＨＳＲパケット転送用までの残時間として、フラグメントサイズを決定する。周期内の時間帯によって、Ｔｒの意味するところが次のリアルタイムデータの送信までの時間となるか、ＨＳＲパケット転送用のタイムスロットまでの時間となるかが異なる。
【０１５９】
なお、フラグメント復元部１６１は、一部のフラグメント群を結合してもよい。例えば、受信したフラグメントのサイズが規定値以下の場合、あるいは単位時間あたりの受信サイズが規定値以下の場合に、該フラグメントを保持し、その後、受信したフラグメントと結合する。このようにすることで、単にフラグメント化して細分化するだけでなく、通信状況に応じて、複数のフラグメントを結合してパケットサイズを大きく、かつ、パケット数を少なくすることで、通信帯域の利用効率を向上させることができる。
【０１６０】
（リアルタイム通信部１３０、非リアルタイム通信部１３１内での優先度制御）
リアルタイム通信部１３０、非リアルタイム通信部１３１は、自身からの送信と通信装置１２４からの通信に加え、ＨＳＲ転送パケットを受信する。リアルタイム通信部１３０、非リアルタイム通信部１３１において、それぞれのパケットをどのような順序で送信するかを決める必要がある。そのような順序の定義方法として、到着順に送信する方法、優先度を定める方法、送信要求が発生するタイミングが既知の場合は、干渉が生じないように所定時間前から、他の送信を禁止する方法が例示される。
【０１６１】
なお、通信制御装置１２０の機能構成を図１５に示す。図１２と異なり、複製送信部１７０によるパケット複製後にフラグメント制御部１３２、フラグメント処理部１３５を経由して、通信スケジュール部１７４へとリアルタイムデータ、非リアルタイムデータが伝送される。なお、通信スケジュール部１７４によって、フラグメント化後のＨＳＲタグの付け替え処理が必要である。
【０１６２】
また、ＨＳＲ転送用パケットが図１４で割り当てたタイムスロット内に転送できなかった場合、制御指令への干渉が考えられるため、パケットを廃棄することが例示される。その場合、ＣＰＵ１０１上で動作するソフトウェアや外部へ通知してもよい。
【０１６３】
また、何らかの理由で、通信スケジュール部１７４において、転送パケット送信中にリアルタイムデータ送信要求が発生した場合、そのまま転送パケットの送信を継続してもよいが、途中で中断し、強制的にリアルタイムデータを送信してもよい。その場合、転送パケットの送信中断のために、ＩＥＥＥ  ８０２．３のＣＲＣを意図的に異常な値とすることが例示される。また、追って再送するために、通信スケジュール部１７４における送信データ保持機能、再送機能、通知機能を利用することが例示される。
【０１６４】
なお、通信制御装置１２０の機能は、ＩＥＣ  ６２４３９−３で定義されるＲｅｄＢｏｘとして構成されてもよい 。
【０１６５】
また、ネットワーク１２５は、ＩＥＣ６２４３９−３のＰＲＰ（Ｐａｒａｌｌｅｌ  Ｒｅｄｕｎｄａｎｃｙ  Ｐｒｏｔｏｃｏｌ）であってもよい。 
（＃  効果）
以上の発明による効果について説明する。
【０１６６】
任意のタイミングで非リアルタイムデータの送信要求や転送が発生したとしても、通信スケジュール部１７４が、非リアルタイムデータの処理時間、あるいは転送データの処理時間と、次のリアルタイムデータ送信までの残時間を比較して、送信要求の許可を判断する。こうすることで、非リアルタイムデータ送信、転送に影響されることなく、リアルタイムデータの送信を精度よく送信することができる。また、リアルタイムデータの送信時間、転送の送信時間の空きを効率よく利用することで、非リアルタイムデータの通信帯域を向上させることができる。
【０１６７】
さらに、リアルタイムデータの送信精度を維持する範囲内で、転送が可能となるため、通信制御装置１２０、通信装置１２３で構成する冗長化ネットワークによる信頼性の利点を享受することができ、制御システムの高信頼化、高性能化が可能である。
【０１６８】
さらに、転送を非リアルタイムデータ送信よりも優先度を高く設定することで、非リアルタイムデータ送信に影響されることなく、転送をすることができ、上記の転送による利点を高めることができる。
【０１６９】
＜実施例３＞（定周期＋非定周期＋再送での実施例）
本発明の一実施形態について述べる。実施例３は、実施例１、実施例２と比較して、リアルタイムデータの再送機能を設け、リアルタイムデータ送信のデータ伝達性を向上させた発明である。実施例に使用する符号は、特に断りのない限り、実施例１、実施例２で説明した機能や要素等と同一であることを意味する。
【０１７０】
本発明を適用した通信制御装置１２０を用いて構成するシステム例は図１、図１１と同様である。
【０１７１】
（機能部の説明）
図１８、図１９は、本発明を適用した通信用ＬＳＩ１０４の機能構成の一実施形態である。図１８は図１のシステム例に適用する場合の機能構成、図１９は図１１における冗長化ネットワークの通信機能を備えている場合の機能構成である。
【０１７２】
異常判定部１９０ は、受信部１３９から受信した受信データ内容、あるいは、時間経過をもとにリアルタイム通信部１３０のリアルタイムデータ送信の成功、失敗を判定する機能部である。異常判定部１９０は、判定結果を再送制御部１９４へ通知する。
【０１７３】
タイムアウト判定部 １９１は、リアルタイム通信部１３０のリアルタイムデータ送信開始からの経過時間を監視し、所定の時間が経過したかどうかを判定する。所定の時間内に、リアルタイムデータの通信成功を異常判定部１９０で検知した場合は、経過時間の監視を停止し、時間内に受信したと判定する。
【０１７４】
応答確認部 １９２は、通信制御装置１２０からリアルタイムデータを受け取った通信装置１２３からの返信をもって、リアルタイムデータ送信が成功したかどうかを判定する。通信装置１２３は、リアルタイムデータを正しく受信した場合は、ＡＣＫと呼ばれる確認応答を通信制御装置１２０へ送信する。あるいは、通信制御装置１２０からのリアルタイムデータ送信を正しく受信できなかった場合にＮＡＣＫと呼ばれる否定応答を通信制御装置１２０へ送信する。応答確認部１９２は、ＡＣＫを受信した場合にリアルタイムデータ送信成功と判定し、ＮＡＣＫを受信した場合にリアルタイムデータ送信失敗と判定する。
【０１７５】
プロトコル異常判定部 １９３は、通信プロトコルにしたがって異常判定手段を提供する。例えば、受信パケット上のデータが通信プロトコルに反した値や構成である場合や、通信プロトコル上、通信が成功、あるいは失敗したと判定できる条件の場合に、通信結果を判定する。例えば、ＩＥＥＥ  ８０２．３であれば、受信フレームのＣＲＣ異常やパケットフォーマットの異常等をもって、リアルタイムデータの通信が正しくなされなかったと判定してもよい。また、ＩＥＣ  ６１７８４−２のＣＰＦ  １２では、フレーム上の所定のカウンタが期待値と等しいかどうかで、リアルタイムデータの送信が正しく通信装置１２３で処理されたかどうかを判定することができる。このカウンタは、その送信データを処理すべき通信装置１２３で正しく処理されるたびに、通信装置１２３によって所定の数だけカウントアップされるパケット上のフィールドである。なお、プロトコル異常判定部１９３は、期待値を事前に設定する手段を具える。
【０１７６】
再送制御部１９４は、異常判定部１９０の判定結果を受けて、再送部１９５へ再送を要求するか、または再送部１９５に保存している送信データの消去を要求する機能部である。
【０１７７】
再送部１９５は、リアルタイム通信部１３０が通信スケジュール部１７４へ送信データを転送する際に、該送信データを受信して、内部に保存する。再送制御部１９４から再送要求があった場合に、通信スケジュール部１７４へ再送を要求する。
【０１７８】
なお、内部にリアルタイム通信部１３０の送信データを保存する際、あるいは通信スケジュール部１７４から再送を許可されて送信データを出力する際に、再送であることを示すために、送信データを変更してもよい。その具体的な方法として、送信データ、あるいはヘッダに再送を示す領域を定義し、再送であることを示すパラメータを定義することが例示される。または、フラグメント可否を変更し、例えば、フラグメント不可と設定してもよい。
【０１７９】
また、リアルタイム通信部１３０から、送信周期の経過を通知されて、内部の送信データを消去してもよい。これは、周期内に再送を送ることが必要なシステムで用いることが例示される。
【０１８０】
また、再送部１３０相当の機能をリアルタイム通信部１３０にもうけてもよい。
【０１８１】
（異常判定部の構成とネットワーク方式）
異常判定部１９０は、タイムアウト判定部１９１、応答確認部１９２、プロトコル異常判定部１９３のうち、ひとつ、または複数の組み合わせで構成される。タイムアウト判定部１９１、応答確認部１９２、プロトコル異常判定部１９３の各機能部の判定結果を統合する方式は、各機能部の判定結果に優先度をつけてもよいし（例えば、プロトコル異常判定部１９３の判定結果を他のタイムアウト判定部１９１、応答確認部１９２の判定結果に優先させる）、各機能部の判定結果を所定の論理式で構成してもよい。
【０１８２】
なお、異常判定部１９０におけるタイムアウト判定部１９１、応答確認部１９２、プロトコル異常判定部１９３の構成は、ネットワーク方式によっても適性が異なる。
【０１８３】
例えば、ＩＥＣ  ６１７８４−２のＣＰＦ１２では、通信制御装置１２０から送信された通信フレームは、各通信装置１２３を順番に経由し、全ての通信装置１２３を経由後、通信制御装置１２０に戻るという特徴がある。このような特徴があるため、再送制御部１９４によってパケット上のカウンタ値を確認する方法がよく、プロトコル異常判定部１９３を用いるのがよい。また、パケットがネットワーク上でロスする可能性があるため、タイムアウト判定部１９１の適用も好ましい。
【０１８４】
一方で、ネットワーク１２２、ネットワーク１２５の仕様上、必ずしも通信装置１２３から通信制御装置１２０への返信が定義されていない場合は、明示的に通信装置１２３から確認応答、または否定応答を返信する構成とし、タイムアウト判定部１９１、応答確認部１９２をもって構成することが例示される。
【０１８５】
（タイムスロットの割当）
再送に対しては、図１７の転送用パケットにおけるタイムスロットを割り当てる方法が例示される。再送用タイムスロットの開始タイミングＴｃ（式８のＴａ、式９のＴｂに相当）は次式で求まる。
Ｔｃ  ＝  Ｔｏ  （式１０）
【０１８６】
ここで、Ｔｏはタイムアウトであり、タイムアウト判定部１９１の利用を前提とする。リアルタイム通信ステータス抽出部１７２はタイムアウト値を動的フラグメントサイズ決定部１７３へ通知し、動的フラグメントサイズ決定部１７３は、タイムアウトから定まる再送用のタイムスロットＴｃまでの残時間からフラグメントサイズを決定し、フラグメント処理部１３５へ通知する。
【０１８７】
なお、異常判定部１９０にて、リアルタイムデータの送信が正しく確認された場合には再送用のタイムスロットの割当を解除し、非リアルタイムデータの送信用に帯域を割り当てることができる。
【０１８８】
また、再送用のタイムスロットは、ネットワークの構成により、リアルタイムデータを送信した周期とは別の周期に割り当てても良い。例えば、リアルタイムデータ送信に対する応答遅延が周期よりも長い場合が示される。
【０１８９】
なお、異常判定部１９０による異常判定はリアルタイムデータに対してのみならず、非リアルタイムデータに対して実行してもよい。再送制御部１９４、再送部１９５も同様に非リアルタイムデータの通信に対して再送処理を制御してもよい。
【０１９０】
また、再送データはリアルタイムデータとしてではなく、非リアルタイムデータとして扱ってもよい。これは、例えば、データ識別部１６０により、パケット上に再送であることを示すデータが確認された場合に、非リアルタイム通信部１３１へ再送パケット、あるいは再送要求を通知することにより実現される。
【０１９１】
また、リアルタイム通信部１３０、あるいは非リアルタイム通信部１３１内での送信データと、再送間での優先度付をしてもよい。
【０１９２】
また、何らかの理由で、通信スケジュール部１７４において、再送パケット送信中にリアルタイムデータ送信要求が発生した場合、そのまま再送パケットの送信を継続してもよいが、途中で中断し、強制的にリアルタイムデータを送信してもよい。その場合、再送パケットの送信中断のために、ＩＥＥＥ  ８０２．３のＣＲＣを意図的に異常な値とすることが例示される。また、追って再送するために、通信スケジュール部１３６における送信データ保持機能、再送機能、通知機能を利用することが例示される。
【０１９３】
また、本実施例では、異常判定部１９０、タイムアウト判定部１９１、応答確認部１９２、プロトコル異常判定部１９３、再送制御部１９４、再送部１９５がそれぞれひとつであったが、複数にしてもよい。その際、それぞれの機能部間での優先度を明示する必要がある。また、リアルタイム通信部１３０、非リアルタイム通信部１３１、再送部１９５を複数にする場合は、パケット内に識別子をもうけることが例示される。
【０１９４】
（効果）
以上の発明による効果について説明する。
【０１９５】
任意のタイミングで非リアルタイムデータの送信要求や再送が発生したとしても、通信スケジュール部１７４が、非リアルタイムデータの処理時間、あるいは再送データの処理時間と、次のリアルタイムデータ送信までの残時間を比較して、送信要求の許可を判断する。こうすることで、非リアルタイムデータ送信、再送に影響されることなく、リアルタイムデータを精度よく送信することができる。また、リアルタイムデータの送信時間、再送の送信時間の空きを効率よく利用することで、非リアルタイムデータの通信帯域を向上させることができる。
【０１９６】
さらに、リアルタイムデータの送信精度を維持する範囲内で、再送が可能となるため、通信制御装置１２０から通信装置１２３へのデータ伝達性を向上させることができ、制御システムの高信頼化、高性能化が可能である。
【０１９７】
さらに、再送を非リアルタイムデータ送信よりも優先度を高く設定することで、非リアルタイムデータ送信に影響されることなく、再送をすることができ、上記の再送による利点を高めることができる。
【符号の説明】
【０１９８】
1０１ … ＣＰＵ、１０２… ＰＨＹ、１０３… ＬＡＮ、１０４… 通信用ＬＳＩ、１０８ … メモリ、１０９ … 不揮発性記憶媒体、１１０ … バス、１２０… 通信制御装置、１２１ … ネットワーク中継装置、１２２、１２５ … ネットワーク、１２３、１２４ … 通信装置、１３０ …リアルタイム通信部、１３１… 非リアルタイム通信部、１３２ … フラグメント制御部、１３３、１７２ … リアルタイム通信ステータス抽出部、１３４、１７３ … 動的フラグメントサイズ決定部、１３５ … フラグメント処理部、１３６、１７４ … 通信スケジュール部、１３７ … 通信部、１３８… 送信部、１３９… 受信部、１４０ … 配信部、１４１… タイマ、１５０… リアルタイムデータ、１５１… 非リアルタイムデータ、１５２… フラグメントパケット、１５３… 転送パケット、１６０… データ識別部、１６１… フラグメント復元部、１７０… 複製送信部、１７１… 後着廃棄判定処理部、１８０… タイムスロット、１９０…異常判定部、１９１…タイムアウト判定部、１９２…応答確認部、１９３…プロトコル異常判定部、１９４…再送制御部、１９５…再送部
【図１】
0006594667.tif 000002
【図２】
0006594667.tif 000003
【図３】
0006594667.tif 000004
【図４】
0006594667.tif 000005
【図５】
0006594667.tif 000006
【図６】
0006594667.tif 000007
【図７】
0006594667.tif 000008
【図８】
0006594667.tif 000009
【図９】
0006594667.tif 000010
【図１０】
0006594667.tif 000011
【図１１】
0006594667.tif 000012
【図１２】
0006594667.tif 000013
【図１３】
0006594667.tif 000014
【図１４】
0006594667.tif 000015
【図１５】
0006594667.tif 000016
【図１６】
0006594667.tif 000017
【図１７】
0006594667.tif 000018
【図１８】
0006594667.tif 000019
【図１９】
0006594667.tif 000020
【図２０】
0006594667.tif 000021