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