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