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