(57)【要約】【課題】制御データの容量が１回のサイクリック周期に基づく送信の最大容量よりも大きくても、受信側で制御データの構成を変化させることなく正確に受信できる。【解決手段】制御装置は、サイクリック通信部と通信管理部とを備える。サイクリック通信部は、第１制御データと第２制御データとの通信を制御する。第１制御データは、予め設定されたサイクリック周期によって第１保証時間での到達が保証される制御データである。第２制御データは、サイクリック周期よりも長い第２保証時間での到達が保証され、構成する情報の順序が決められている。通信管理部は、第２制御データのデータ容量が、サイクリック周期に基づく第２制御データ用の通信容量を超えると、第２制御データを複数の通信用データに分割する。通信管理部は、分割して通信することを示す識別子、データ容量、通信順を複数の通信用データのそれぞれに対して添付する。【選択図】図３
2019140603.tif 000002
【特許請求の範囲】
【請求項１】
予め設定されたサイクリック周期によって第１保証時間での到達が保証される第１制御データと、前記サイクリック周期よりも長い第２保証時間での到達が保証され、構成する情報の順序が決められた第２制御データと、の通信を制御するサイクリック通信部と、
前記第１制御データと前記第２制御データの通信のスケジュールを管理する通信管理部と、
を備え、
前記通信管理部は、
前記第２制御データのデータ容量が、前記サイクリック周期と前記第１制御データのデータ容量に基づく第２制御データ用の送信容量を超えると、該第２制御データ用の送信容量に応じて前記第２制御データを複数の通信用データに分割し、
分割して通信することを示す識別子と、前記第２制御データのデータ容量と、分割による通信順とを前記複数の通信用データのそれぞれに対して添付し、該複数の通信用データを前記サイクリック通信部に与える、
制御装置。
【請求項２】
前記通信管理部は、
前記第２制御データが複数あると、
前記複数の第２制御データ毎の前記第２保証時間、および、前記第２制御データ用の通信容量を用いて、前記複数の第２制御データ毎に分割を行い、前記サイクリック通信部に与える、
請求項１に記載の制御装置。
【請求項３】
前記通信管理部は、
前記複数の第２制御データからそれぞれに形成された前記通信用データを、同じサイクリック周期内で通信するように前記サイクリック通信部に与える、
請求項２に記載の制御装置。
【請求項４】
前記通信管理部は、
前記複数の通信用データのそれぞれに対して、データ容量を添付して、前記サイクリック通信部に与える、
請求項１乃至請求項３のいずれかに記載の制御装置。
【請求項５】
前記第１制御データおよび前記第２制御データとは異なり、時間保証がされていない情報系データの送受信を制御するメッセージ通信部を備え、
前記通信管理部は、
前記情報系データの通信容量も用いて、前記第２制御データの分割を行う、
請求項１乃至請求項４のいずれかに記載の制御装置。
【請求項６】
請求項１乃至請求項５のいずれかに記載の制御装置と、
前記制御装置に対して通信可能に接続されたロボット装置またはロボット制御装置と、を備え、
前記第２制御データは、ロボット制御用のコマンド群を含む、
制御システム。
【請求項７】
予め設定されたサイクリック周期によって第１保証時間での到達が保証される第１制御データと、前記サイクリック周期よりも長い第２保証時間での到達が保証され、構成する情報の順序が決められた第２制御データと、の通信を制御するサイクリック通信処理と、
前記第１制御データと前記第２制御データの通信のスケジュールを管理する通信管理処理と、
を有し、
前記通信管理処理は、
前記サイクリック周期と前記第１制御データのデータ容量とを用いて、第２制御データ用の送信容量を決定する処理と、
前記第２制御データのデータ容量が前記第２制御データ用の通信容量を超えると、該第２制御データ用の通信容量に応じて前記第２制御データを複数の通信用データに分割する処理と、
分割して通信することを示す識別子と、前記第２制御データのデータ容量と、分割による送信順と、を前記複数の通信用データのそれぞれに対して添付する処理と、
該複数の通信用データを前記サイクリック通信処理に渡す処理と、
を有する、
制御方法。
【請求項８】
予め設定されたサイクリック周期によって第１保証時間での到達が保証される第１制御データと、前記サイクリック周期よりも長い第２保証時間での到達が保証され、構成する情報の順序が決められた第２制御データと、の通信を制御するサイクリック通信処理と、
前記第１制御データと前記第２制御データの通信のスケジュールを管理する通信管理処理と、
を含み、
前記通信管理処理では、
前記サイクリック周期と前記第１制御データのデータ容量とを用いて、第２制御データ用の通信容量を決定する処理と、
前記第２制御データのデータ容量が前記第２制御データ用の通信容量を超えると、該第２制御データ用の通信容量に応じて前記第２制御データを複数の通信用データに分割する処理と、
分割して通信することを示す識別子と、前記第２制御データのデータ容量と、分割による送信順と、を前記複数の通信用データのそれぞれに対して添付する処理と、
該複数の通信用データを前記サイクリック通信処理に渡す処理と、
を情報処理装置に実行させる制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、性能要求が異なる複数種類の制御データを互いに通信する制御装置と各種のスレーブ装置とを備える制御システムに関する。
【背景技術】
【０００２】
現在、ＦＡ（ファクトリー  オートメーション）システムが多く実用化されている。ＦＡシステムは、制御装置と複数のスレーブ装置と備える。複数のスレーブ装置は、計測器、スイッチ、または、制御用ドライバ等であり、制御用ドライバには、制御対象機器が接続されている。
【０００３】
制御装置は、複数のスレーブ装置に対して、制御データを通信する。この際、制御装置は、複数のスレーブ装置に対して、制御データを、予め設定された制御周期（サイクリック周期）で順次通信する。これにより、制御データの送信のリアルタイム性を担保している。以下、この制御データを、サイクリック制御データと称する。
【０００４】
一方で、制御装置と複数のスレーブ装置との間で、サイクリック制御データとは別の情報系データを通信することがある。情報系データは、サイクリック制御データのように、サイクリック周期に必ず通信する必要は無いデータであり、容量も比較的大きい。特許文献１に示すシステムでは、この情報系データを分割して、複数のサイクリック周期に分けて通信している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−３６３７８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
現在、スレーブ装置として、ロボット装置、または、ロボット装置を制御するロボット制御装置が多く利用されようとしている。
【０００７】
しかしながら、ロボット装置またはロボット制御装置等に対して通信される制御データは、複数のコマンド等が含まれており、上記の従来のサイクリック制御データよりも大容量となることがある。以下、このロボット装置またはロボット制御装置等に対して通信される、従来のサイクリック制御データよりも大容量の制御データを、準制御データと称する。
【０００８】
このため、制御装置は、全ての準制御データを、サイクリック周期内に通信できないことがある。
【０００９】
一方で、準制御データは、含まれるコマンド等の順序が決められている。そして、ロボット装置またはロボット制御装置等のスレーブ装置がこの順序を間違うと、ロボット装置の誤動作等の問題を引き起こしてしまう。
【００１０】
また、ロボット装置またはロボット制御装置等に限らず、制御データの容量が１回のサイクリック周期に基づく通信の最大容量よりも大きく（上述の準制御データに相当し）、且つ、制御データ内のコマンド等の順が重要な他の通信においても同様の問題が生じてしまう。
【００１１】
したがって、本発明の目的は、制御データの容量が１回のサイクリック周期に基づく通信の最大容量よりも大きくても、受信側で制御データの構成を変化させることなく正確に受信できる制御データの通信技術を提供することにある。
【課題を解決するための手段】
【００１２】
本開示の一例によれば、制御装置は、サイクリック通信部と通信管理部とを備える。サイクリック通信部は、第１制御データと第２制御データとの通信を制御する。第１制御データは、予め設定されたサイクリック周期によって第１保証時間での到達が保証される制御データである。第２制御データは、サイクリック周期よりも長い第２保証時間での到達が保証され、構成する情報の順序が決められている。通信管理部は、第１制御データと第２制御データの通信のスケジュールを管理する。さらに、通信管理部は、第２制御データのデータ容量が、サイクリック周期と第１制御データのデータ容量に基づく第２制御データ用の通信容量を超えると、該第２制御データ用の通信容量に応じて第２制御データを複数の通信用データに分割する。通信管理部は、分割して通信することを示す識別子と、第２制御データのデータ容量と、分割による通信順と、を複数の通信用データのそれぞれに対して添付する。通信管理部は、複数の通信用データをサイクリック通信部に与える。
【００１３】
この構成では、サイクリック周期と第１制御データのデータ容量に基づく第２制御データ用の通信容量よりも第２制御データのデータ容量が大きくても、当該第２制御データは、該制御装置が接続されるスレーブ装置に確実に送信される。また、スレーブ装置では通信用データの順が把握でき、構成される情報の順を間違えることなく、第２制御データが復元される。
【００１４】
また、本開示の一例によれば、制御装置の通信管理部は、第２制御データが複数あると、複数の第２制御データ毎の第２保証時間、および、第２制御データ用の送信容量を用いて、複数の第２制御データ毎に分割を行い、サイクリック通信部に与える。
【００１５】
この構成では、第２制御データが複数の場合にも、複数の第２制御データのそれぞれが確実に通信され、スレーブ装置側で正確に復元される。
【００１６】
また、本開示の一例によれば、通信管理部は、複数の第２制御データからそれぞれに形成された通信用データを、同じサイクリック周期内で通信するようにサイクリック通信部に与える。
【００１７】
この構成では、データ容量の大きな複数の第２制御データが、時間的に略平行に通信される。
【００１８】
また、本開示の一例によれば、通信管理部は、複数の通信用データのそれぞれに対して、データ容量を添付して、サイクリック通信部に与える。
【００１９】
この構成では、複数の通信用データのそれぞれに対して、情報の欠落等の通信に関するエラーが確実に把握できる。
【００２０】
また、本開示の一例によれば、制御装置は、第１制御データおよび第２制御データとは異なり、時間保証がされていない情報系データの送受信を制御するメッセージ通信部を備える。通信管理部は、情報系データの通信容量も用いて、第２制御データの分割を行う。
【００２１】
この構成では、情報系データを通信しながら、第２制御データが確実に送信される。
【００２２】
また、本開示の一例によれば、制御システムは、上述のいずれかの制御装置と、制御装置に対して通信可能に接続されたロボット装置またはロボット制御装置と、を備える。第２制御データは、ロボット制御用のコマンド群を含む。
【００２３】
この構成では、ＦＡシステムとしてロボット装置が含まれる場合に、当該ロボット装置に対して、複数のコマンドが、コマンドの順番も含めて、到達保証時間内に正確に通信される。これにより、ロボット装置の動作の遅れ、誤動作等の不具合が抑制される。
【発明の効果】
【００２４】
この発明によれば、制御データの容量が１回のサイクリック周期に基づく通信の最大容量よりも大きくても、受信側で制御データの構成を変化させることなく、制御データを正確に受信できる。
【図面の簡単な説明】
【００２５】
【図１】制御システムにおける装置の概略構成を示す図である。
【図２】制御装置のハードウェアの構成を示すブロック図である。
【図３】制御装置の機能ブロック図である。
【図４】（Ａ）は、情報系データを含まない場合での制御装置の初期処理を示すフローチャートであり、（Ｂ）は、情報系データを含む場合での制御装置の初期処理を示すフローチャートである。
【図５】制御装置による第２制御データの分割、送信処理を示すフローチャートである。
【図６】通信データの概略構成を示す図である。
【図７】（Ａ）は、第２制御データが分割された時のｎ１フレームのデータ構成を示す図であり、（Ｂ）は、第２制御データが分割された時のｎ２フレームのデータ構成を示す図であり、（Ｃ）は、第２制御データのデータ構成を示す図である。
【図８】第１制御データと第２制御データの通信時のデータ構成を示す図である。
【図９】第１制御データと第２制御データの通信時のデータ構成を示す図である。
【図１０】第１制御データと第２制御データの通信時のデータ構成を示す図である。
【図１１】複数の第２制御データを複数のフレームに割り当て分割する場合の処理の一例を示すフローチャートである。
【図１２】複数の第２制御データをともに分割送信する場合の処理の一例を示すフローチャートである。
【図１３】（Ａ）、（Ｂ）は、分割送信する第２制御データと分割送信しない第２制御データとがある場合の処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００２６】
以下、本発明の実施形態を、図を参照して説明する。
【００２７】
・適用例
まず、本発明の実施形態に係る制御装置の適用例について、図を用いて説明する。図３は、制御装置の機能ブロック図である。
【００２８】
図３に示すように、制御装置１０は、通信管理部１１０、および、サイクリック通信部１２１を少なくとも備え、通信ドライバ１３０を備える。
【００２９】
通信管理部１１０は、第１制御系通信管理１１１、および、第２制御系通信管理１１２を実行する。また、通信管理部１１０は、第１制御系通信管理１１１、および、第２制御系通信管理１１２のスケジューリング、すなわち、後述する各種のデータの送受信のスケジューリングを実行する。
【００３０】
第１制御系通信管理１１１は、予め設定されたサイクリック周期に準じて、サイクリック周期毎に送受信される第１制御データの通信管理（スケジューリング）を実行する。第１制御データは、データ容量が小さな制御データであり、例えば、サーボ指令値、エンコーダ値、センサのオンオフ制御値等によって構成されている。第１制御データは、サイクリック周期によって規定される第１保証時間で送受信されるように時間保証された制御データである。
【００３１】
第２制御系通信管理１１２は、第１制御データとは異なる性能要求を有する第２制御データの通信管理（スケジューリング）を実行する。第２制御データは、データ容量が比較的大きな制御データであり、例えば、ロボット装置またはロボット制御装置に与えられるコマンド群等によって構成されている。第２制御データは、サイクリック周期の１周期よりも長い到達保証時間で通信完了するように定義された制御データである。第２制御データには、第１制御データに対して、データ容量が大きなデータがあり、例えば、サイクリック周期の１周期で通信可能なデータ容量よりも大容量のデータがある。
【００３２】
通信管理部１１０は、第１制御データと第２制御データとを、サイクリック通信部１２１に与える。
【００３３】
この構成において、通信管理部１１０は、サイクリック周期と第1制御データのデータ容量と基づいて、サイクリック周期の１周期で送信可能な第２制御データの最大容量（送信容量）を決定する。通信管理部１１０は、第２制御データのデータ容量が送信容量よりも大きければ、第２制御データを複数の通信用データに分割する。複数の通信用データのそれぞれのデータ容量は、送信容量よりも小さい。
【００３４】
通信管理部１１０は、分割して送信することを示す識別子（後述のフラグメントＩＤ（図７参照））と、第２制御データのデータ容量（後述の総データサイズ（図７参照））と、分割による送信順（後述のフラグメントＩＤが兼用（図７参照））と、を複数の通信用データのそれぞれに対して添付して、複数の通信用データを生成し、第２制御系通信管理１１２で管理する。そして、第２制御系通信管理１１２は、スケジューリングにしたがって、サイクリック周期に応じて、複数の通信用データのそれぞれを順にサイクリック通信部１２１に出力する。
【００３５】
サイクリック通信部１２１は、第1制御データと第２制御データ（各通信用データ）とを通信用のデータ形式に変換し、通信ドライバ１３０に出力する。通信ドライバ１３０は、後述の制御用ネットワークを介して接続されるスレーブ装置に、第１制御データ、および、第２制御データ（各通信用データ）を、サイクリック周期に準じて送信する。
【００３６】
このような構成および処理を用いることによって、第２制御データの容量が、１回のサイクリック周期に基づく第２制御データ用の送信容量よりも大きくても、第２制御データに対する時間保証を実現しながら、第２制御データを正確にスレーブ装置に送信できる。さらに、スレーブ装置は、第２制御データを、構成される情報の順を間違えることなく復元できる。
【００３７】
・構成例
本発明の実施形態に係る制御装置、制御システム、制御方法、および、制御プログラムについて、図を参照して説明する。本実施形態では、制御システムとして、ＦＡ（ファクトリー  オートメーション）システムを例に説明する。
【００３８】
図１は、制御システムにおける装置の概略構成を示す図である。図１に示すように、制御システム１は、制御装置１０、スレーブ装置２１１、スレーブ装置２１２、スレーブ装置２２１、制御用ネットワーク３０、情報通信用ネットワーク６０、パーソナルコンピュータ６１、産業用パーソナルコンピュータ６２、および、データベース装置６３を備える。
【００３９】
（データ定義）
まず、各データの定義について説明する。
【００４０】
第１制御データは、制御用ネットワーク３０に用いられるサイクリック周期（例えば、１０ｍｓｅｃ以下）の１周期によって到達保証時間（第１保証時間）が決められている。第１制御データは、１ビットから数十バイトの制御データ群によって構成されている。到達保証時間とは、例えば、対象のスレーブ装置が正常に動作するために制御データが到達していなければいけない最も長い（遅い）時間である。
【００４１】
第２制御データは、サイクリック周期の１周期よりも長い到達保証時間（第１保証時間）で通信完了するように定義された制御データである。第２制御データには、第１制御データに対して、データ容量が大きなデータがあり、例えば、サイクリック周期の１周期で通信可能なデータ容量よりも大容量のデータがある。第２制御データは、構成される複数の情報の順序が決められた制御データである。第２制御データは、例えば、ロボット装置のシーケンス動作を実現する複数のコマンド群によって構成されている。
【００４２】
情報系データは、第１制御データおよび第２制御データとは異なり、到達保証時間が設定されていないデータである。例えば、情報系データは、制御用ネットワーク３０に接続される各装置のログの取得要求データ、ログ、監視画像等の各種のデータによって構成されている。
【００４３】
第１制御データと第２制御データとは、サイクリック周期に準じて通信されるデータであり、情報系データは、サイクリック周期に準じる必要が無い仕様で通信されるデータである。
【００４４】
（制御システム）
制御用ネットワーク３０は、例えば、ネットワーク規格として、ＥｔｈｅｒＣＡＴ（イーサキャット）（登録商標）、または、ＰＲＯＦＩＮＥＴ（プロフィネット）等に準じたネットワークである。なお、制御用ネットワーク３０は、これらに限るものではなく、サイクリック周期に同期してデータの送受信を実行するネットワークであればよい。制御装置１０、スレーブ装置２１１、スレーブ装置２１２、および、スレーブ装置２２１は、制御用ネットワーク３０によって接続されている。
【００４５】
情報通信用ネットワーク６０は、例えば、ネットワーク規格として、Ｅｔｈｅｒｎｅｔ（登録商標）に準じたネットワークである。制御装置１０、パーソナルコンピュータ６１、産業用パーソナルコンピュータ６２、および、データベース装置６３は、情報通信用ネットワーク６０によって接続されている。
【００４６】
パーソナルコンピュータ６１には、制御プログラムの編集ツール等がインストールされている。パーソナルコンピュータ６１は、制御装置１０、スレーブ装置２１１、および、スレーブ装置２１２の制御プログラムの作成、編集、出力を行う。パーソナルコンピュータ６１は、制御プログラムを制御装置１０に出力する。
【００４７】
産業用パーソナルコンピュータ６２には、例えば、ロボット用制御プログラムの編集ツール等がインストールされている。産業用パーソナルコンピュータ６２は、スレーブ装置２２１の制御プログラムの作成、編集、出力を行う。産業用パーソナルコンピュータ６２は、例えば、ロボット用制御プログラムを制御装置１０に出力する。
【００４８】
データベース装置６３は、制御装置１０から各装置のログ等を記憶する。なお、情報系データの元となるデータの生成、取得を実行する装置は、データベース装置６３に限るものでなく、他の装置であってもよい。また、パーソナルコンピュータ６１、産業用パーソナルコンピュータ６２、および、データベース装置６３は、上位システムを構成する装置であり、上位システムを構成する装置は、これらに限るものではない。
【００４９】
制御装置１０は、具体的には、例えば、ＰＬＣ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｃｏｎｔｏｒｏｌｌｅｒ）によって実現される。制御装置１０は、制御用ネットワーク３０を介して制御データを通信し、情報通信用ネットワーク６０を介して各種のデータを通信する装置であれば、他の装置であってもよい。
【００５０】
制御装置１０は、例えば、パーソナルコンピュータ６１からの制御プログラムを用いて、第１制御データを生成する。制御装置１０は、例えば、産業用パーソナルコンピュータ６２からのロボット用制御プログラムを用いて、第２制御データを生成する。なお、制御装置１０は、パーソナルコンピュータ６１からの制御プログラムを用いて、第２制御データを生成することも可能である。
【００５１】
また、制御装置１０は、情報系データを生成する。情報系データは、パーソナルコンピュータ６１が制御用ネットワーク３０に接続されるスレーブ装置２１１、スレーブ装置２１２、および、スレーブ装置２２１から取得したい情報、および、当該情報の取得要求等によって構成される。このため、例えば、情報系データは、パーソナルコンピュータ６１からの指示に応じて、制御装置１０で生成される。
【００５２】
スレーブ装置２１１、スレーブ装置２１２は、具体的には、例えば、サーボドライバ、センサ等の計測器等によって実現される。なお、スレーブ装置２１１、スレーブ装置２１２は、第１制御データで動作する装置であれば、他の装置であってもよい。
【００５３】
スレーブ装置２２１は、具体的には、例えば、ロボット装置またはロボット装置に接続されるロボット制御装置によって実現される。なお、スレーブ装置２２１は、第２制御データで動作する装置であれば、他の装置であってもよい。
【００５４】
制御装置１０、スレーブ装置２１１、スレーブ装置２１２、および、スレーブ装置２２１は、第１制御データ、第２制御データ、および、情報系データの送受信をスケジューリングする。制御装置１０、スレーブ装置２１１、スレーブ装置２１２、および、スレーブ装置２２１は、このスケジュールに応じて、サイクリック周期に準じて、第１制御データ、および、第２制御データを通信する。
【００５５】
この際、上述のように、制御装置１０は、サイクリック周期の１周期で通信可能な第２制御データの最大容量（送信容量）に対して第２制御データのデータ容量が大きければ、第２制御データを複数の通信用データに分割する。そして、制御装置１０は、複数の通信用データを、複数のサイクリック周期に割り当てて通信する。なお、制御装置１０は、この分割処理を、スレーブ装置毎に実行する。
【００５６】
（制御装置のハードウェア構成）
図２は、制御装置のハードウェアの構成を示すブロック図である。
【００５７】
図２に示すように、ハードウェアの構成として、制御装置１０は、ＣＰＵ１０１、メモリ１０２、記憶媒体１０３、送受信部１０４、および、上位通信部１０５を備える。制御装置１０は、ＣＰＵ１０１、メモリ１０２、記憶媒体１０３、送受信部１０４、および、上位通信部１０５は、データバス１００によって接続されている。
【００５８】
ＣＰＵ１０１は、記憶媒体に１０３に記憶されているシステムプログラム、および、ユーザアプリケーションプログラムをメモリ１０２に読み出して実行することで、後述の各機能ブロックの各処理を実現する。メモリ１０２は、例えば、ＤＲＡＭやＳＲＡＭ等の揮発性記憶素子によって実現される。また、記憶媒体１０３は、例えば、磁気記憶媒体、フラッシュメモリ等の不揮発性記憶媒体によって実現される。
【００５９】
送受信部１０４は、制御装置１０における制御用ネットワーク３０のインターフェースであり、サイクリック周期に準じた第1制御データ、および、第２制御データの送受信（通信）を実行する。また、送受信部１０４は、例えば、サイクリック周期の１周期における第1制御データおよび第２制御データに占有された通信帯域と異なる通信帯域を用いて、情報系データの送受信（通信）を実行する。
【００６０】
上位通信部１０５は、制御装置１０における情報通信用ネットワーク６０のインターフェースであり、上述の上位システムの各装置との間の通信を実行する。
【００６１】
（制御装置の機能ブロック）
図３は、制御装置の機能ブロック図である。
【００６２】
図３に示すように、制御装置１０は、通信管理部１１０、サイクリック通信部１２１、メッセージ通信部１２２、通信ドライバ１３０、ユーザアプリケーション処理部１４１、その他処理部１４２を備える。
【００６３】
通信管理部１１０は、第１制御系通信管理１１１、第２制御系通信管理１１２、および、情報系通信管理１１３を実行する。また、通信管理部１１０は、第１制御系通信管理１１１、第２制御系通信管理１１２、および、情報系通信管理１１３のスケジューリング、すなわち、後述する各種のデータの通信のスケジューリングを実行する。この際、通信管理部１１０は、通信対象のスレーブ装置の個数、種類に基づいて、サイクリック周期の１周期に対する各スレーブ装置の通信帯域を割り当てる（図６参照）。
【００６４】
上述のように、第１制御系通信管理１１１は、予め設定されたサイクリック周期に準じて、サイクリック周期毎に通信される第１制御データの通信管理を実行する。
【００６５】
第２制御系通信管理１１２は、第２制御データの通信管理を実行する。この際、第２制御系通信管理１１２は、サイクリック周期の１周期で送信可能な第２制御データの最大容量（通信容量）よりも、第２制御データのデータ容量が大きければ、第２制御データを複数の通信用データに分割する。そして、第２制御系通信管理１１２は、複数の通信用データの単位で通信管理を実行する。
【００６６】
情報系通信管理１１３は、情報系データの通信管理を実行する。この際、情報系データも、サイクリック周期の１周期で通信可能な情報系データの最大容量（送信容量）よりも、情報系データのデータ容量が大きければ、複数のデータに分割する。そして、情報系通信管理１１３は、分割された複数のデータの単位で通信管理を実行する。
【００６７】
通信管理部１１０は、送受信（通信）のスケジュールにしたがって、第１制御データと第２制御データとを、サイクリック通信部１２１に与える。この際、通信管理部１１０は、第２制御データが複数の通信用データに分割されていれば、複数の通信用データ毎に、サイクリック通信部１２１に与える。
【００６８】
通信管理部１１０は、送受信のスケジュールにしたがって、情報系データを、メッセージ通信部１２２に与える。この際、通信管理部１１０は、情報系データが複数のデータに分割されていれば、分割された複数のデータ毎に、メッセージ通信部１２２に与える。
【００６９】
サイクリック通信部１２１は、第1制御データおよび第２制御データを、制御用ネットワーク３０のデータ形式に変換する。サイクリック通信部１２１は、変換後の第１制御データおよび第２制御データを通信管理部１１０から与えられた送受信のスケジュールにしたがって、通信ドライバ１３０に出力する。
【００７０】
メッセージ通信部１２２は、情報系データを、通信管理部１１０から与えられた送受信のスケジュールにしたがって、通信ドライバ１３０に出力する。
【００７１】
通信ドライバ１３０は、送受信部１０４の制御を実行し、サイクリック周期に準じて、第１制御データ、および、第２制御データを、制御用ネットワーク３０を介して通信する。この際、第２制御データが複数の通信用データに分割されていれば、複数の通信用データが、サイクリック周期に準じて、順次通信される。同様に、情報系データが複数のデータに分割されていれば、分割された複数のデータが、順次通信される。
【００７２】
なお、ユーザアプリケーション処理部１４１は、上述のユーザアプリケーションプログラムを実行する。このユーザアプリケーション処理部１４１によって、産業用パーソナルコンピュータ６２からの第２制御データを取得する。その他処理部１４２は、例えば、制御装置１０の起動処理や制御用ネットワーク３０を用いた制御の初期処理等を実行する。
【００７３】
（具体的な通信処理）
このような構成において、第1制御データ、および、第２制御データの送信は、制御装置１０（通信管理部１１０）によって図４（Ａ）、図４（Ｂ）、および、図５に示す制御フローを実行することによって実現される。図４（Ａ）は、情報系データを含まない場合での制御装置の初期処理を示すフローチャートであり、（Ｂ）は、情報系データを含む場合での制御装置の初期処理を示すフローチャートである。図５は、制御装置による第２制御データの分割、送信処理を示すフローチャートである。図６は、通信データの概略構成を示す図である。なお、図６では、第２制御データの通信対象のスレーブ装置の個数が１個の例を示している。また、図６は、図１に示すシステム構成の場合のデータ構成例を示している。
【００７４】
まず、図６を用いて、フレームデータの構成を説明する。図６に示すように、フレームデータは、先頭から、制御データ用のヘッダ、スレーブ装置２１１に対する第１制御データＤ０１、スレーブ装置２１２に対する第１制御データＤ０２、スレーブ装置２２１に対する第１制御データＤ１、スレーブ装置２２１に対する第２制御データＤ２１、制御データ用のフッタ、情報系データ用のヘッダ、情報系データＤｉ、情報系データ用のフッタの順に並ぶデータによって構成されている。また、図６では、フレームデータには、制御データ用のフッタと情報系データ用のヘッダとの間、および、情報系データ用のヘッダの後に、データの衝突回避用の待機時間Ｄｔに対応する空データ領域が設定されている。この待機時間Ｄｔは、設定することが好ましいが、省略することも可能である。そして、このような構成からなるフレームデータによって、サイクリック周期の１周期における通信が実行される。
【００７５】
次に、スレーブ装置２２１に対する第２制御データの分割が必要な場合の具体的な処理を説明する。
【００７６】
（Ａ  情報系データを通信しない場合）
情報系データの通信時間を設定しない場合での第２制御データの分割処理の初期処理について、図４（Ａ）を用いて説明する。
【００７７】
まず、制御装置１０は、通信対象のスレーブ装置の個数、種類に基づいて、サイクリック周期の１周期に対する各スレーブ装置の通信帯域を割り当てる。制御装置１０は、第１制御データの通信容量を算出する（Ｓ１１）。具体的には、制御装置１０は、制御用ネットワーク３０を介して接続されるスレーブ装置２１１、スレーブ装置２１２、および、スレーブ装置２２１に与える全ての第１制御データを抽出する。これらは、パーソナルコンピュータ６１からの制御プログラムに基づいて抽出および算出できる。
【００７８】
制御装置１０は、サイクリック周期の１周期に含まれる第２制御データを通信する各スレーブ装置に対する第２制御データ用の空き容量を算出する（Ｓ１２）。空き容量とは、ＴＤＭＡであれば、サイクリック周期の１周期（図６のＴＣｙ）における第２制御データを通信する各スレーブ装置の通信帯域から第１制御データの通信容量（図６のｔｃ１に対応する容量）を除く容量である。したがって、制御装置１０は、サイクリック周期の１周期において第２制御データを通信する各スレーブ装置の通信可能な上限の容量から第１制御データの通信容量を減算することによって、空き容量を算出する。
【００７９】
制御装置１０は、第２制御データの性能要求を取得する（Ｓ１３）。第２制御データの性能要求とは、第２制御データの到達保証時間を含んでいる。これの性能要求は、産業用パーソナルコンピュータ６２からの制御プログラム（例えば、ロボット用制御プログラム）等に基づいて取得できる。
【００８０】
制御装置１０は、空き容量、および、性能要求に基づいて、第２制御データを通信する各スレーブ装置に対する第２制御データの通信上限容量ＤＳｆを設定する（Ｓ１４）。通信上限容量ＤＳｆは、サイクリック周期の１周期においてそれぞれのスレーブ装置が第２制御データを通信可能な最大容量に対応する。具体的には、制御装置１０は、例えば、性能要求が満たされるのであれば、空き容量を通信上限容量ＤＳｆに設定する。
【００８１】
（Ｂ  情報系データを通信する場合）
情報系データの通信時間を設定する場合での第２制御データの分割処理の初期処理について、図４（Ｂ）を用いて説明する。なお、図４（Ａ）と同じ処理は説明を簡略化する。
【００８２】
まず、制御装置１０は、通信対象のスレーブ装置の個数、種類に基づいて、サイクリック周期の１周期に対する各スレーブ装置の制御データ用の通信帯域を割り当てる。この際、制御装置１０は、情報系データの通信容量を設定し（Ｓ１５）、この情報系データの通信容量も加味して、各スレーブ装置の制御データ用の通信帯域を割り当てる。制御装置１０は、第１制御データの通信容量を算出する（Ｓ１１）。制御装置１０は、サイクリック周期の１周期（図６のＴＣｙ）に含まれる空き容量を算出する（Ｓ１２）。制御装置１０は、第２制御データの性能要求を取得する（Ｓ１３）。
【００８３】
制御装置１０は、情報系データの通信容量を設定する（Ｓ１５）。情報系データの通信容量は、例えば、パーソナルコンピュータ６１やデータベース装置６３等からの指示を受けることによって設定可能である。
【００８４】
制御装置１０は、空き容量、性能要求、および、情報系データの通信容量に基づいて、サイクリック周期の１周期において第２制御データを送信可能な容量に対応する通信上限容量ＤＳｆを設定する（Ｓ１６）。
【００８５】
なお、上述の（Ａ）、（Ｂ）に示す初期処理では、制御装置１０は、算出した空き容量では第２制御データの性能要求が満たされないのであれば、警告を発生する。例えば、具体的には、制御装置１０は、算出した空き容量から第２制御データの分割数を算出し、当該分割数から、第２制御データの通信完了の予定時間を算出する。制御装置１０は、性能要求に基づく到達保証時間よりも通信完了の予定時間が長ければ、性能要求が満たされないと判定し、警告を発生する。
【００８６】
次に、制御システムの稼働中における通信管理処理について、図５、図６を用いて説明する。
【００８７】
制御装置１０は、第２制御データＤ２を取得する（Ｓ２１）。制御装置１０は、第２制御データＤ２のデータ容量ＤＳｕを算出する（Ｓ２２）。
【００８８】
制御装置１０は、データ容量ＤＳｕが通信上限容量ＤＳｆよりも大きければ（Ｓ２３：ＹＥＳ）、制御装置１０は、第２制御データＤ２を、通信上限容量ＤＳｆに基づいて分割して、複数の通信用データ（本発明の通信用データの一態様に対応する。）を生成する（Ｓ２４）。この際、例えば、制御装置１０は、第２制御データＤ２を先頭のビットから通信上限容量ＤＳｆに対応するビット容量毎に順次分割して、複数の通信用データを生成する。
【００８９】
制御装置１０は、複数の通信用データを、サイクリック周期に準じて送信する（Ｓ２５）。制御装置１０は、全ての通信用データが送信されるまで（Ｓ２６：ＮＯ）、通信用データの送信を、サイクリック周期に準じて繰り返し実行する（Ｓ２５）。この際、制御装置１０は、第２制御データＤ２の先頭ビット側から順に、通信用データを送信する。
【００９０】
制御装置１０は、第２制御データＤ２を構成する全ての通信用データを送信すると（Ｓ２６：ＹＥＳ）、処理を終了する。
【００９１】
一方、制御装置１０は、データ容量ＤＳｕが通信上限容量ＤＳｆ以下であれば（Ｓ２３：ＮＯ）、第２制御データＤ２をそのまま送信する（Ｓ２７）。
【００９２】
このような処理を行うことによって、例えば、図６に示すようなデータ構成で、第１制御データと第２制御データとが送信される。なお、図６では、３個のフレームを例にしており、第１フレームＦＲＡＭＥ１と第２フレームＦＲＡＭＥ２を用いて第２制御データＤ２１を送信し、第３フレームＦＲＡＭＥ３を用いて、別の第２制御データＤ２２を送信する例を示している。
【００９３】
図６の例では、第２制御データＤ２１のデータ容量ＤＳｕ２１は、通信上限容量ＤＳｆを超えるので、第２制御データＤ２１は、分割される。この際、第２制御データＤ２１は、先頭ビット側の通信上限容量ＤＳｆに対応するデータ容量分が第１の通信用データＤ２１−１となり、残りのデータ容量分が第２の通信用データＤ２１−２となる。一方、第２制御データＤ２２のデータ容量ＤＳｕ２２は、通信上限容量ＤＳｆを超えないので、第２制御データＤ２２は、分割されない。
【００９４】
制御装置１０は、第１フレームＦＲＡＭＥ１において、第１制御データＤ１と、第２制御データＤ２１の通信用データＤ２１−１とを順に、サイクリック周期（Ｔｃｙ）内で送信する。
【００９５】
次に、制御装置１０は、第２フレームＦＲＡＭＥ２において、第１制御データＤ１と、第２制御データＤ２１の通信用データＤ２１−２とを順に、サイクリック周期（Ｔｃｙ）内で送信する。これにより、第２制御データＤ２１の送信は完了する。
【００９６】
次に、制御装置１０は、第３フレームＦＲＡＭＥ３において、第１制御データＤ１と、第２制御データＤ２２とを順に、サイクリック周期（Ｔｃｙ）内で送信する。
【００９７】
なお、第２制御データＤ２１と第２制御データＤ２２との送信順は、この順に限らなくてもよい。例えば、制御装置１０は、第２制御データＤ２１と第２制御データＤ２２との到達保証時間を比較し、到達保証時間が短い第２制御データを先に送信すればよい。
【００９８】
このような処理を行うことによって、サイクリック周期に基づく通信上限容量ＤＳｆよりも大きな容量の第２制御データを確実に送信できる。
【００９９】
（第２制御データの通信時のデータ構成）
・第２制御データを分割して送信する場合
図７（Ａ）は、第１制御データと第２制御データの通信時のデータ構成を示す図であり、図７（Ｂ）は、図７（Ａ）に示す第２制御データの通信前のデータ構成を示す図である。
【０１００】
まず、図７（Ｂ）に示すように、第２制御データＤ２は、リクエストデータとして、コマンドタイプ、コマンドＩＤ、および、アーギュメントＡｎ等を含み、先頭ビットからこの順に並ぶデータである。アーギュメントＡｎは、実際に制御に用いるコマンド群を含み、コマンドタイプ、および、コマンドＩＤは、アーギュメントＡｎに記載されているコマンド群の識別のためのデータである。なお、ここでは、リクエストデータを例に説明しているが、リクエストデータに対するレスポンスデータに対しても適用できる。そして、リクエストデータおよびレスポンスデータは、上述のデータ構成に限るものではなく、任意に定義することができる。
【０１０１】
この第２制御データＤ２のデータ容量が通信上限容量ＤＳｆを超えれば、図７（Ａ）に示すように、分割された第２制御データ（通信用データ）Ｄ２−１、Ｄ２−２が生成される。そして、フレームＦＲＡＭＥｎ１、ＦＲＡＭＥｎ２は、第１制御データＤ１と、分割された第２制御データ（通信用データ）Ｄ２−１とによって構成され、フレームＦＲＡＭＥｎ２は、第１制御データＤ１と、分割された第２制御データ（通信用データ）Ｄ２−２とによって構成される。
【０１０２】
フレームＦＲＡＭＥｎ１の第２制御データ（通信用データ）Ｄ２−１は、フォーマットＩＤ、トランザクションＩＤ、総データサイズ、フラグメントＩＤ、フラグメントデータサイズ、および、リクエストデータを含み、先頭ビットからこの順で並ぶデータである。
【０１０３】
フレームＦＲＡＭＥｎ２の第２制御データ（通信用データ）Ｄ２−２も、フォーマットＩＤ、トランザクションＩＤ、総データサイズ、フラグメントＩＤ、フラグメントデータサイズ、および、リクエストデータを含み、先頭ビットからこの順で並ぶデータである。
【０１０４】
フォーマットＩＤは、第２制御データのデータフォーマットの識別データである。フォーマットＩＤによって、以下に示す第２制御データのデータフォーマットを識別できる。
【０１０５】
トランザクションＩＤは、第２制御データを示す識別データである。複数のフレームの第２制御データのトランザクションＩＤを比較することによって、これら複数のフレームの第２制御データが同じ第２制御データに基づくものであるか否かを判定できる。すなわち、複数のフレームの第２制御データ（通信用データ）のトランザクションＩＤが同じであれば、これらの第２制御データ（通信用データ）が、１つの第２制御データに基づくものであることを判定できる。
【０１０６】
総データサイズは、１つの第２制御データの総データ容量を示している。すなわち、総データサイズは、第２制御データが複数の通信用データに分割されている場合に、複数の通信用データのデータ容量の総和によって表されている。例えば、図６（Ａ）の場合であれば、第２制御データの総データ容量がＶｎであることが分かる。一方、第２制御データが分割されていなければ、当該フレームに含まれる第２制御データのデータ容量によって表されている。これにより、第２制御データの総データ容量を検出できる。
【０１０７】
そして、このような総データサイズを添付することによって、スレーブ装置２２１は、復元時に、第２制御データの受信エラーを検出できる。すなわち、スレーブ装置２２１は、フレームＦＲＡＭＥｎ１のリクエストデータを復元して、データ容量Ｖｎ１を算出し、フレームＦＲＡＭＥｎ２のリクエストデータを復元して、データ容量Ｖｎ２を算出する。スレーブ装置２２１は、データ容量Ｖｎ１とデータ容量Ｖｎ２とを加算して、総データ容量Ｖｎに一致すればデータの受信が成功したことを検出でき、一致しなければデータの受信エラーを検出できる。
【０１０８】
フラグメントＩＤは、分割された第２制御データＤ２における順番を示す識別データである。すなわち、フラグメントＩＤによって、そのフレームの第２制御データ（通信用データ）が、通信前の第２制御データを分割した後の何番目のデータであることを識別できる。例えば、図６（Ａ）の例であれば、ＦＲＡＭＥｎ１では、フラグメントＩＤ＝０であり、分割された最初の通信用データであることを識別できる。ＦＲＡＭＥｎ２では、フラグメントＩＤ＝１であり、分割された２番目の通信用データであることを識別できる。
【０１０９】
ここで、フレームＦＲＡＭＥｎ１のリクエストデータは、コマンドタイプ、コマンドＩＤ、および、アーギュメントＡｎ１からなり、この順に並ぶデータである。フレームＦＲＡＭＥｎ２のリクエストデータは、アーギュメントＡｎ２からなり、この順に並ぶデータである。図７（Ｂ）に示すように、アーギュメントＡｎ１は、アーギュメントＡｎにおけるコマンドＩＤに続く部分のデータであり、アーギュメントＡｎ２は、アーギュメントＡｎ１に続く部分のでーたである。すなわち、通信時のリクエストデータは、先頭ビットからのデータの並びを変えることなく、通信上限容量ＤＳｆに基づいて分割することによって生成されている。
【０１１０】
したがって、スレーブ装置２２１は、これらのフレームＦＲＡＭＥｎ１、ＦＲＡＭＥｎ２の通信データを受けて解析し、フラグメントＩＤの順にリクエストデータを並べることで、通信前、すなわち、分割前の第２制御データを、確実且つ正確に復元できる。これにより、スレーブ装置２２１は、第２制御データに含まれるコマンド群の順を間違えることなく復元でき、ロボット装置の誤動作等を確実に抑制できる。また、スレーブ装置２２１は、フラグメントＩＤの部分的な欠落を検出することによって、データの欠落を検出でき、制御装置１０に対して、再送信要求を行うことができる。
【０１１１】
フラグメントサイズは、そのフレーム内の第２制御データ（通信用データ）のデータ容量を示している。例えば、図６（Ａ）の例であれば、ＦＲＡＭＥｎ１では、フラグメントサイズ＝Ｖｎ１であり、分割された最初の通信用データのデータ容量がＶｎ１であることを識別できる。ＦＲＡＭＥｎ２では、フラグメントサイズ＝Ｖｎ２であり、分割された２番目の通信用データのデータ容量がＶｎ２であることを識別できる。このようなフラグメントサイズを添付した場合、スレーブ装置２２１は、受信したリクエストデータのデータ容量を算出し、フラグメントサイズを比較するで、受信エラーを検出できる。
【０１１２】
・第２制御データを分割せずに送信する場合
（１）１フレームに１個の第２制御データを送信する場合
図８は、第１制御データと第２制御データの通信時のデータ構成を示す図である。図８に示す例では、第２制御データのデータ容量が通信上限容量ＤＳｆよりも小さく、１フレームで１個の第２制御データを送信する場合を示している。なお、図７（Ａ）、図７（Ｂ）に示す例と同じ箇所の説明は、簡略化する。
【０１１３】
第２制御データのデータ容量が通信上限容量ＤＳｆよりも少なければ、図８に示すように、第２制御データがそのまま送信される。
【０１１４】
第２制御データ（通信用データ）は、フォーマットＩＤ、トランザクションＩＤ、総データサイズ、および、リクエストデータを含み、先頭ビットからこの順で並ぶデータである。
【０１１５】
（２）１フレームに複数の第２制御データを送信する場合
図９は、第１制御データと第２制御データの通信時のデータ構成を示す図である。図９に示す例では、第２制御データのデータ容量が通信上限容量ＤＳｆよりも小さく、１フレームで２個の第２制御データを送信する場合を示している。なお、図８に示す例と同じ箇所の説明は、簡略化する。
【０１１６】
複数の第２制御データのデータ容量がそれぞれに通信上限容量ＤＳｆよりも少なく、且つ、複数の第２制御データのデータ容量の総和が通信上限容量ＤＳｆよりも少なくければ、図９に示すように、複数の第２制御データが１フレームで送信される。
【０１１７】
この際、複数の第２制御データには、異なるトランザクションＩＤが割り付けられる。これにより、データが連続していても、複数の第２制御データをそれぞれに識別できる。
【０１１８】
そして、これらのように、第２制御データＤ２２が分割されない場合、フラグメントＩＤおよびフラグメントサイズは、省略される。これにより、通信時の第２制御データＤ２２の省データ化が可能になる。また、一方で、フラグメントＩＤおよびフラグメントサイズがないことによって、スレーブ装置２２１は、第２制御データＤ２２が分割されていないことを検出できる。
【０１１９】
・複数の第２制御データを分割して送信する場合
図１０は、第１制御データと第２制御データの通信時のデータ構成を示す図である。図１０に示す例では、２個の第２制御データのデータ容量が通信上限容量ＤＳｆよりも小さく、１個の第２制御データのデータ容量が通信上限容量ＤＳｆを超える例を示している。また、図１０では、１フレームで２個の第２制御データを送信する場合を示している。なお、上述の例と同じ箇所の説明は、簡略化する。
【０１２０】
図１０に示す例では、トランザクションＩＤにＭ、Ｋを割り当てた第２制御データのデータ容量が通信上限容量ＤＳｆよりも小さく、トランザクションＩＤにＮを割り当てた第２制御データのデータ容量が通信上限容量ＤＳｆを超える場合を示している。
【０１２１】
図１０に示す例では、フレームＦＲＡＭＥｎ１にて、トランザクションＩＤ＝Ｍの第２制御データと、トランザクションＩＤ＝Ｎの第２制御データに基づく第１の通信用データとが送信される。フレームＦＲＡＭＥｎ１に続くフレームＦＲＡＭＥｎ２にて、トランザクションＩＤ＝Ｋの第２制御データと、トランザクションＩＤ＝Ｎの第２制御データに基づく第１の通信用データに続く第２の通信用データとが送信される。
【０１２２】
このような場合でも、トランザクションＩＤによって第２制御データを個別に識別でき、且つ、フラグメントＩＤによって、１個の第２制御データを構成する複数の通信用データを個別に識別できる。また、フラグメントＩＤによって、分割された複数の通信用データから、元の第２制御データを容易に復元できる。
【０１２３】
なお、図１０に示す第２制御データの組合せは一例であり、例えば、通信上限容量ＤＳｆに基づいて、空き時間が少なくなるように、複数の第２制御データの組合せを決定してもよい。
【０１２４】
また、次の方法を用いてもよい。分割の必要が無い第２制御データを各フレームに割り当て、割り当て後に、再度空き時間を算出する。そして、分割の必要がある第２の制御データを、再度算出した空き時間に応じて分割する。
【０１２５】
また、さらに次に示すように、分割の有無を判別し、各フレームの第２制御データの割り当てを動的に決定してもよい。
【０１２６】
図１１は、複数の第２制御データを複数のフレームに割り当て分割する場合の処理の一例を示すフローチャートである。なお、図１１では、２個の第２制御データに対する処理を示すが、この概念を用いることによって、３個以上の場合も、適宜割り当てが可能になる。
【０１２７】
まず、制御装置１０は、２個の第２制御データＤ２１、Ｄ２２を取得する（Ｓ３１）。制御装置１０は、第２制御データＤ２１のデータ容量ＤＳｕ１および第２制御データＤ２１のデータ容量ＤＳｕ２を算出する（Ｓ３２）。
【０１２８】
制御装置１０は、データ容量ＤＳｕ１とデータ容量ＤＳｕ２との加算値が通信上限容量ＤＳｆ以下であれば（Ｓ３３：ＮＯ）、１フレームにて、第２制御データＤ２１と第２制御データＤ２２とを送信する（Ｓ４１）。
【０１２９】
制御装置１０は、データ容量ＤＳｕ１とデータ容量ＤＳｕ２との加算値が通信上限容量ＤＳｆを超えていれば（Ｓ３３：ＹＥＳ）、データ容量ＤＳｕ１またはデータ容量ＤＳｕ２と通信上限容量ＤＳｆとを比較する。
【０１３０】
制御装置１０は、データ容量ＤＳｕ１およびデータ容量ＤＳｕ２が通信上限容量ＤＳｆをともに超えていれば（Ｓ３４：ＹＥＳ、Ｓ３５：ＹＥＳ）、第２制御データＤ２１と、第２制御データＤ２２とをともに分割して送信する（Ｓ３６）。
【０１３１】
制御装置１０は、データ容量ＤＳｕ１が通信上限容量ＤＳｆを超えており（Ｓ３４：ＹＥＳ）、データ容量ＤＳｕ２が通信上限容量ＤＳｆを超えていなければ（Ｓ３５：ＮＯ）、先に、分割の必要が無い第２制御データＤ２２を送信する（Ｓ４２）。その後、制御装置１０は、第２制御データＤ２１を分割して送信する（Ｓ４２）。
【０１３２】
制御装置１０は、データ容量ＤＳｕ１が通信上限容量ＤＳｆを超えておらず（Ｓ３４：ＮＯ）、データ容量ＤＳｕ２が通信上限容量ＤＳｆを超えていれば、先に、分割の必要が無い第２制御データＤ２１を送信する（Ｓ４４）。その後、制御装置１０は、第２制御データＤ２２を分割して送信する（Ｓ４４）。
【０１３３】
なお、上述の処理では、分割の必要が無い第２制御データを先に送信し、これに続いて、分割の必要がある第２制御データを分割送信している。これにより、分割の必要が無い第２制御データを、より簡素な処理で複数の第２制御データの送信を完了できるのでよい。すなわち、送信完了の必要がある複数の第２制御データがある時に、分割の必要がない第２制御データを先に送信完了させておくことで、その後に、分割の必要がある第２制御データを単純に分割して送信するだけでよい。
【０１３４】
しかしながら、複数の第２制御データのそれぞれの性能要求等を比較して、例えば、分割の必要がある第２制御データを先に送信することが好ましければ、分割の必要がある第２制御データを先に送信して、その後に、分割の必要が無い第２制御データを送信してもよい。また、分割の必要がある第２制御データの途中に、分割の必要が無い第２制御データの送信を行ってもよい。
【０１３５】
・複数の第２制御データの分割送信
図１２は、複数の第２制御データをともに分割送信する場合の処理の一例を示すフローチャートである。
【０１３６】
制御装置１０は、第２制御データＤ２１と第２制御データＤ２２との性能要求を比較する（Ｓ３６１）。具体的には、制御装置１０は、第２制御データＤ２１の到達保証時間と第２制御データＤ２２との到達保証時間を比較する。
【０１３７】
制御装置１０は、第２制御データＤ２１と第２制御データＤ２２との性能要求が同等であれば（Ｓ３６２：ＹＥＳ）、１サイクリック周期に対して第２制御データＤ２１と第２制御データＤ２２とに対して、データ容量に応じた同等の通信帯域（通信上限容量）を割り当て、第２制御データＤ２１と第２制御データＤ２２とをそれぞれに分割して送信する（Ｓ３６３）。なお、ここでいう同等とは、第２制御データＤ２１が全て送信される時間と第２制御データＤ２２が全て送信される時間とが同じになることを意味する。制御装置１０は、第２制御データＤ２１と第２制御データＤ２２との全データが送信されるまで、分割送信を繰り返し（Ｓ３６４：ＮＯ）、全データが送信されると（Ｓ３６４：ＹＥＳ）、処理を終了する。
【０１３８】
制御装置１０は、第２制御データＤ２１が優先であれば（Ｓ３６２：ＮＯ、Ｓ３６５：ＹＥＳ）、１サイクリック周期に対して第２制御データＤ２１に対して、通信帯域（通信上限容量）を優先的に割り当て、第２制御データＤ２１と第２制御データＤ２２とをそれぞれに分割して送信する（Ｓ３６６）。制御装置１０は、第２制御データＤ２１と第２制御データＤ２２との全データが送信されるまで、分割送信を繰り返し（Ｓ３６７：ＮＯ）、全データが送信されると（Ｓ３６７：ＹＥＳ）、処理を終了する。この際、制御装置１０は、第２制御データＤ２１の全てのデータの送信が終了したことを検出すると、残りにフレームに対しては、第２制御データＤ２２の通信帯域に対して、第２制御データＤ２１に割り当てた通信帯域を加算して送信するとよい。これにより、第２制御データＤ２２の送信終了を早くできる。
【０１３９】
制御装置１０は、第２制御データＤ２２が優先であれば（Ｓ３６２：ＮＯ、Ｓ３６５：ＮＯ）、１サイクリック周期に対して第２制御データＤ２２に対して、通信帯域（通信上限容量）を優先的に割り当て、第２制御データＤ２１と第２制御データＤ２２とをそれぞれに分割して送信する（Ｓ３６８）。制御装置１０は、第２制御データＤ２１と第２制御データＤ２２との全データが送信されるまで、分割送信を繰り返し（Ｓ３６９：ＮＯ）、全データが送信されると（Ｓ３６９：ＹＥＳ）、処理を終了する。この際、制御装置１０は、第２制御データＤ２２の全てのデータの送信が終了したことを検出すると、残りにフレームに対しては、第２制御データＤ２１の通信帯域に対して、第２制御データＤ２２に割り当てた通信帯域を加算して送信するとよい。これにより、第２制御データＤ２１の送信終了を早くできる。
【０１４０】
・分割送信する第２制御データと分割送信しない第２制御データとの送信
図１３（Ａ）、図１３（Ｂ）は、分割送信する第２制御データと分割送信しない第２制御データとがある場合の処理の一例を示すフローチャートである。図１３（Ａ）は、第２制御データＤ２２を分割せず、第２制御データＤ２１を分割する場合（図１１のステップＳ４２の場合）を示し、図１３（Ｂ）は、第２制御データＤ２１を分割せず、第２制御データＤ２２を分割する場合（図１１のステップＳ４４の場合）を示す。
【０１４１】
図１３（Ａ）に示すように、第２制御データＤ２２を分割せず、第２制御データＤ２１を分割する場合、制御装置１０は、第２制御データＤ２２に１サイクリック周期内の通信帯域を割り当てる（Ｓ４２１）。制御装置１０は、通信上限容量ＤＳｆと第２制御データＤ２２のデータ容量とから、当該サイクリック周期における第２制御データＤ２１の通信上限容量ＤＳｆ’を算出する。具体的には、制御装置１０は、通信上限容量ＤＳｆから第２制御データＤ２２のデータ容量（時間単位）を減算することによって、通信上限容量ＤＳＦ’を算出する。制御装置１０は、再算出した通信上限容量ＤＳｆ’に基づいて、第２制御データＤ２１を分割する（Ｓ４２２）。制御装置１０は、分割した第２制御データＤ２１の最初の通信用データを、第２制御データＤ２２と同じサイクリック周期で送信する（Ｓ４２３）。
【０１４２】
制御装置１０は、以降のサイクリック周期では、通信上限容量ＤＳｆに基づいて、第２制御データＤ２１を順次分割し（Ｓ４２４）、サイクリック周期の準じて送信する（Ｓ４２５）。制御装置１０は、第２制御データＤ２１の全データが送信されるまで、分割送信を繰り返し（Ｓ４２６：ＮＯ）、全データが送信されると（Ｓ４２６：ＹＥＳ）、処理を終了する。
【０１４３】
図１３（Ｂ）に示すように、第２制御データＤ２１を分割せず、第２制御データＤ２２を分割する場合、制御装置１０は、第２制御データＤ２１に１サイクリック周期内の通信帯域を割り当てる（Ｓ４４１）。制御装置１０は、通信上限容量ＤＳｆと第２制御データＤ２１のデータ容量とから、当該サイクリック周期における第２制御データＤ２２の通信上限容量ＤＳｆ”を算出する。具体的には、制御装置１０は、通信上限容量ＤＳｆから第２制御データＤ２１のデータ容量（時間単位）を減算することによって、通信上限容量ＤＳＦ”を算出する。制御装置１０は、再算出した通信上限容量ＤＳｆ”に基づいて、第２制御データＤ２２を分割する（Ｓ４４２）。制御装置１０は、分割した第２制御データＤ２２の最初の通信用データを、第２制御データＤ２１と同じサイクリック周期で送信する（Ｓ４４３）。
【０１４４】
制御装置１０は、以降のサイクリック周期では、通信上限容量ＤＳｆに基づいて、第２制御データＤ２２を順次分割し（Ｓ４４４）、サイクリック周期の準じて送信する（Ｓ４４５）。制御装置１０は、第２制御データＤ２２の全データが送信されるまで、分割送信を繰り返し（Ｓ４４６：ＮＯ）、全データが送信されると（Ｓ４４６：ＹＥＳ）、処理を終了する。
【０１４５】
なお、上述の説明では、ＦＡシステムを例に説明したが、サイクリック周期を用いて時間保証のデータと、サイクリック周期よりも長い時間保証を有し、サイクリック周期に基づくデータ容量よりも大きなデータ容量からなるデータとを送信する他のシステムであっても、上述の構成および処理を適用し、上述の作用効果を得ることができる。
【０１４６】
また、上述の説明では、説明を容易にするために、制御用ネットワーク３０を介して、制御装置１０から、スレーブ装置２１１、スレーブ装置２１２、および、スレーブ装置２２１にデータを送信することを主として記載した。しかしながら、各データには、スレーブ装置２１１、スレーブ装置２１２、および、スレーブ装置２２１から制御装置１０に送信、返信するデータもあり、これらのデータについても、上述の処理を適用でき、上述の作用効果を奏することができる。すなわち、制御用ネットワーク３０で通信される第２制御データについては、上述の処理を適用でき、上述の作用効果を奏することができる。例えば、ロボット装置に対する第２制御データとしては、制御装置１０からスレーブ装置２２１に送信するデータとしては、ログデータの取得コマンドを含み、スレーブ装置２２１から制御装置１０に送信（返信）するデータとしては、この取得コマンドに対応したロギングデータ（例えば、数十秒間分のモータの角度データ等）を含む。
【０１４７】
また、上述の説明では、ＴＤＭＡ方式による通信を行う場合を示したが、ＣＤＭＡ方式等においても、上述の概念を用いて、第２制御データの分割送信を実現できる。
【符号の説明】
【０１４８】
１：制御システム
１０：制御装置
３０：制御用ネットワーク
６０：情報通信用ネットワーク
６１：パーソナルコンピュータ
６２：産業用パーソナルコンピュータ
６３：データベース装置
１００：データバス
１０１：ＣＰＵ
１０２：メモリ
１０３：記憶媒体
１０４：送受信部
１０５：上位通信部
１１０：通信管理部
１１１：第１制御系通信管理
１１２：第２制御系通信管理
１１３：情報系通信管理
１２１：サイクリック通信部
１２２：メッセージ通信部
１３０：通信ドライバ
１４１：ユーザアプリケーション処理部
１４２：他処理部
２１１、２１２、２２１：スレーブ装置
【図１】
2019140603.tif 000003
【図２】
2019140603.tif 000004
【図３】
2019140603.tif 000005
【図４】
2019140603.tif 000006
【図５】
2019140603.tif 000007
【図６】
2019140603.tif 000008
【図７】
2019140603.tif 000009
【図８】
2019140603.tif 000010
【図９】
2019140603.tif 000011
【図１０】
2019140603.tif 000012
【図１１】
2019140603.tif 000013
【図１２】
2019140603.tif 000014
【図１３】
2019140603.tif 000015