特許第6981290号(P6981290)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ オムロン株式会社の特許一覧

特許6981290スレーブ装置、制御システム、レスポンスデータの通信方法、および、レスポンスデータの通信プログラム
<>
  • 特許6981290-スレーブ装置、制御システム、レスポンスデータの通信方法、および、レスポンスデータの通信プログラム 図000002
  • 特許6981290-スレーブ装置、制御システム、レスポンスデータの通信方法、および、レスポンスデータの通信プログラム 図000003
  • 特許6981290-スレーブ装置、制御システム、レスポンスデータの通信方法、および、レスポンスデータの通信プログラム 図000004
  • 特許6981290-スレーブ装置、制御システム、レスポンスデータの通信方法、および、レスポンスデータの通信プログラム 図000005
  • 特許6981290-スレーブ装置、制御システム、レスポンスデータの通信方法、および、レスポンスデータの通信プログラム 図000006
  • 特許6981290-スレーブ装置、制御システム、レスポンスデータの通信方法、および、レスポンスデータの通信プログラム 図000007
  • 特許6981290-スレーブ装置、制御システム、レスポンスデータの通信方法、および、レスポンスデータの通信プログラム 図000008
  • 特許6981290-スレーブ装置、制御システム、レスポンスデータの通信方法、および、レスポンスデータの通信プログラム 図000009
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6981290
(24)【登録日】2021年11月22日
(45)【発行日】2021年12月15日
(54)【発明の名称】スレーブ装置、制御システム、レスポンスデータの通信方法、および、レスポンスデータの通信プログラム
(51)【国際特許分類】
   H04L 12/28 20060101AFI20211202BHJP
【FI】
   H04L12/28 200D
【請求項の数】5
【全頁数】20
(21)【出願番号】特願2018-24090(P2018-24090)
(22)【出願日】2018年2月14日
(65)【公開番号】特開2019-140604(P2019-140604A)
(43)【公開日】2019年8月22日
【審査請求日】2020年3月3日
(73)【特許権者】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110000970
【氏名又は名称】特許業務法人 楓国際特許事務所
(72)【発明者】
【氏名】水本 寛仁
(72)【発明者】
【氏名】許 自強
(72)【発明者】
【氏名】米田 光宏
【審査官】 平井 嗣人
(56)【参考文献】
【文献】 特開昭59−034746(JP,A)
【文献】 特開2007−028265(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/28
H04L 29/06
(57)【特許請求の範囲】
【請求項1】
予め設定されたサイクリック周期に準じて通信するサイクリック通信部と、
制御装置からのレスポンス要求に対応したレスポンスデータの通信を管理する通信管理部と、
を備え、
前記通信管理部は、
複数のサイクリック周期に亘り優先度の低いレスポンスデータを通信中に、優先度の高いレスポンスデータの要求を受けると、前記優先度の低いレスポンスデータの通信を一時中断して、前記優先度の高いレスポンスデータを通信し、
また、前記優先度の高いレスポンスデータを通信するサイクリック周期に余剰容量が存在すると、前記一時中断した前記優先度の低いレスポンスデータに前記余剰容量を割り当てる、
スレーブ装置。
【請求項2】
前記通信管理部は、
前記レスポンス要求に添付された優先度データに基づいて優先度を判定する、
請求項1に記載のスレーブ装置。
【請求項3】
請求項1、または請求項2のいずれかに記載のスレーブ装置と、前記制御装置と、を含み、
前記スレーブ装置は、ロボット装置またはロボット制御装置である、
制御システム。
【請求項4】
予め設定されたサイクリック周期に準じて通信するサイクリック通信処理と、
制御装置からのレスポンス要求に対応したレスポンスデータの通信を管理する通信管理処理と、
を有し、
前記通信管理処理は、
複数のサイクリック周期に亘り優先度の低いレスポンスデータを通信中に、優先度の高いレスポンスデータの要求を受けると、前記優先度の低いレスポンスデータの通信を一時中断して、前記優先度の高いレスポンスデータを通信し、
また、前記優先度の高いレスポンスデータを通信するサイクリック周期に余剰容量が存在すると、前記一時中断した前記優先度の低いレスポンスデータに前記余剰容量を割り当てる、
レスポンスデータの通信方法。
【請求項5】
予め設定されたサイクリック周期に準じて通信するサイクリック通信処理と、
制御装置からのレスポンス要求に対応したレスポンスデータの通信を管理する通信管理処理と、
情報処理装置に実行させ、
前記通信管理処理は、
複数のサイクリック周期に亘り優先度の低いレスポンスデータを通信中に、優先度の高いレスポンスデータの要求を受けると、前記優先度の低いレスポンスデータの通信を一時中断して、前記優先度の高いレスポンスデータを通信し、
また、前記優先度の高いレスポンスデータを通信するサイクリック周期に余剰容量が存在すると、前記一時中断した前記優先度の低いレスポンスデータに前記余剰容量を割り当てる、
処理である、レスポンスデータの通信プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、優先度が異なる複数の制御データを互いに通信する制御装置と各種のスレーブ装置とを備える制御システムに関する。
【背景技術】
【0002】
現在、FA(ファクトリー オートメーション)システムが多く実用化されている。FAシステムは、制御装置と複数のスレーブ装置と備える。複数のスレーブ装置は、計測器、スイッチ、または、制御用ドライバ等であり、制御用ドライバには、制御対象機器が接続されている。
【0003】
制御装置は、複数のスレーブ装置に対して、制御データを通信する。この際、制御装置は、複数のスレーブ装置に対して、制御データを、予め設定された制御周期(サイクリック周期)で順次通信する。これにより、制御データの送信のリアルタイム性を担保している。一方、スレーブ装置は、制御データによって要求されたデータを、同じサイクリック周期で制御装置に通信する。以下、このサイクリック周期に準じて通信するデータを、サイクリック通信データと称する。
【0004】
一方で、制御装置と複数のスレーブ装置との間で、サイクリック通信データとは別の情報系データを通信することがある。情報系データは、サイクリック通信データのように、サイクリック周期に必ず通信する必要は無いデータであり、容量も比較的大きい。特許文献1に示すシステムでは、この情報系データを分割して、複数のサイクリック周期に分けて通信している。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2004−363782号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
現在、スレーブ装置として、ロボット装置、または、ロボット装置を制御するロボット制御装置が多く利用されようとしている。
【0007】
制御装置からロボット装置またはロボット制御装置等のスレーブ装置に通信されるデータには、リクエストデータが含まれており、スレーブ装置から制御装置に通信されるデータには、レスポンスデータが含まれている。これらのデータは、上記の従来のサイクリック通信データよりも大容量になることがある。以下、この制御装置とスレーブ装置等との間で通信される、従来のサイクリック通信データよりも大容量の制御データを、準サイクリック通信データと称する。
【0008】
この場合、例えば、制御装置およびスレーブ装置は、準サイクリック通信データを複数のサイクリック周期に分けて通信することが考えられる。
【0009】
しかしながら、スレーブ装置は、このような大容量のレスポンスデータを、複数のサイクリック周期に亘って通信している時に、緊急性の高いレスポンスデータの返信要求を取得しても、大容量のレスポンスデータの通信完了後にしか、緊急性の高いレスポンスデータを通信できない。例えば、スレーブ装置は、大容量のログデータの通信中に、ログデータよりも緊急性が高い、位置情報やステータス情報等のレスポンスデータを返信しようとしても、ログデータの通信後にしか、緊急性の高いレスポンスデータを返信できない。
【0010】
したがって、本発明の目的は、複数のサイクリック周期を必要とする大容量のデータの通信中に、緊急性の高いレスポンス要求を取得しても、当該緊急性の高いレスポンス要求に応じたレスポンスデータを迅速に通信できる通信技術を提供することにある。
【課題を解決するための手段】
【0011】
本開示の一例によれば、スレーブ装置は、サイクリック通信部と通信管理部とを備える。サイクリック通信部は、予め設定されたサイクリック周期に準じて通信する。通信管理部は、制御装置からのレスポンス要求に対応したレスポンスデータの通信を管理する。通信管理部は、複数のサイクリック周期に亘り優先度の低いレスポンスデータを通信中に、優先度の高いレスポンスデータの要求を受けると、優先度の低いレスポンスデータの通信を一時中断して優先度の高いレスポンスデータを通信する。
【0012】
この構成では、複数のサイクリック周期に亘るレスポンスデータを通信中でも、緊急性の高いレスポンスデータが迅速に返信される。
【0013】
本開示の一例によれば、通信管理部は、優先度の高いレスポンスデータを通信するサイクリック周期に余剰容量が存在すると、一時中断した優先度の低いレスポンスデータに余剰容量を割り当てる。
【0014】
この構成では、優先度の高いレスポンスデータの通信後において新たなサイクリック周期まで待つことなく、一時中断したレスポンスデータの通信が再開される。
【0015】
本開示の一例によれば、通信管理部は、レスポンス要求に添付された優先度データに基づいて優先度を判定する。
【0016】
この構成では、優先度の判定が容易になる。
【0017】
本開示の一例によれば、制御システムは、上述のいずれかに記載のスレーブ装置と、制御装置と、を含み、スレーブ装置は、ロボット装置またはロボット制御装置である。
【0018】
この構成では、FAシステムとしてロボット装置が含まれる場合に、優先度の高いレスポンスデータ(例えば、位置情報やステータス情報等)をロボット装置から迅速に得られ、FAシステムとしての制御のウェイト状態の発生が抑制される。
【発明の効果】
【0019】
この発明によれば、複数のサイクリック周期を必要とする大容量のデータの通信中に、緊急性の高いレスポンス要求を取得しても、当該緊急性の高いレスポンス要求に応じたレスポンスデータを迅速に通信できる。
【図面の簡単な説明】
【0020】
図1】制御システムにおける装置の概略構成を示す図である。
図2】制御装置のハードウェアの構成を示すブロック図である。
図3】制御装置の機能ブロック図である。
図4】スレーブ装置のハードウェアの構成を示すブロック図である。
図5】スレーブ装置の機能ブロック図である。
図6】リクエストデータを含むフレームデータの具体的なデータ構成の一例を示す図である。
図7】レスポンスデータを含むフレームデータの具体的なデータ構成の一例を示す図である。
図8】レスポンスデータの通信方法を示すフローチャートである。
【発明を実施するための形態】
【0021】
以下、本発明の実施形態を、図を参照して説明する。
【0022】
・適用例
まず、本発明の実施形態に係るスレーブ装置、レスポンスデータの通信方法の適用例について、図を参照して説明する。図1は、制御システムにおける装置の概略構成を示す図である。
【0023】
スレーブ装置221およびスレーブ装置222は、例えば、ロボット装置またはロボット制御装置であり、制御システム1に含まれる。スレーブ装置221およびスレーブ装置222は、制御系ネットワーク30を介して制御装置10に接続されている。制御装置10とスレーブ装置221およびスレーブ装置222とは、制御系ネットワーク30に対して設定されたサイクリック周期に準じて通信を実行する。
【0024】
スレーブ装置221およびスレーブ装置222は、制御装置10からコマンド等を含むリクエストデータを受信すると、そのレスポンスデータを生成して、制御装置10に送信する。
【0025】
ここで、例えば、スレーブ装置221は、レスポンスデータがサイクリック周期の複数周期に亘り、このレスポンスデータを複数周期に亘って送信中に、新たなレスポンス要求を受け付ける。スレーブ装置221は、新たなレスポンス要求から優先度を検出する。
【0026】
スレーブ装置221は、新たなレスポンス要求に対するレスポンスデータの優先度が、複数周期に亘って送信中のレスポンスデータの優先度よりも高ければ、送信中のレスポンスデータの送信を一時中断する。そして、スレーブ装置221は、新たなレスポンス要求に対するレスポンスデータを優先的に送信する。
【0027】
これにより、スレーブ装置は、他のレスポンスデータの送信中であっても、当該緊急性の高いレスポンス要求に応じたレスポンスデータを迅速に通信できる。
【0028】
・構成例
本発明の実施形態に係るスレーブ装置、制御システム、レスポンスデータの通信方法、および、レスポンスデータの通信プログラムについて、図を参照して説明する。本実施形態では、制御システムとして、FA(ファクトリー オートメーション)システムを例に説明する。
【0029】
図1は、制御システムにおける装置の概略構成を示す図である。図1に示すように、例えば、制御システム1は、制御装置10、スレーブ装置211、スレーブ装置212、スレーブ装置221、制御系ネットワーク30、情報通信用ネットワーク60、パーソナルコンピュータ61、産業用パーソナルコンピュータ62、および、データベース装置63を備える。
【0030】
(データ定義)
まず、各データの定義について説明する。
【0031】
第1制御データは、制御系ネットワーク30に用いられるサイクリック周期(例えば、10msec以下)の1周期によって到達保証時間(第1保証時間)が決められている。第1制御データは、1ビットから数十バイトの制御データ群によって構成されている。到達保証時間とは、例えば、対象のスレーブ装置が正常に動作するために第1制御データが到達していなければいけない最も長い(遅い)時間である。
【0032】
第2制御データは、到達保証時間(第2保証時間)がサイクリック周期の1周期よりも長く設定されたデータである。第2制御データには、第1制御データに対して、データ容量が大きなデータがあり、例えば、サイクリック周期の1周期で通信可能なデータ容量よりも大容量のデータがある。第2制御データは、構成される複数の情報の順序が決められた制御データである。第2制御データは、制御装置10からスレーブ装置221またはスレーブ装置222に送信するリクエストデータを含むものと、スレーブ装置221またはスレーブ装置222から制御装置10に送信するレスポンスデータを含むものとがある。リクエストデータは、例えば、ロボット装置のシーケンス動作を実現する複数のコマンドや、ログの要求データ等を含む。レスポンスデータは、このコマンド群に関係するデータであり、例えば、位置情報やステータス情報、また、ログデータ等を含む。
【0033】
情報系データは、第1制御データおよび第2制御データとは異なり、到達保証時間が設定されていない各種のデータである。情報系データは、例えば、ベストエフォート型のデータである。
【0034】
第1制御データと第2制御データとは、サイクリック周期に準じて通信されるデータであり、情報系データは、サイクリック周期に準じる必要が無い仕様で通信されるデータである。
【0035】
(制御システム)
制御系ネットワーク30は、例えば、ネットワーク規格として、EtherCAT(イーサキャット)(登録商標)、または、PROFINET(プロフィネット)等に準じたネットワークである。なお、制御系ネットワーク30は、これらに限るものではなく、サイクリック周期に同期してデータの送受信を実行するネットワークであればよい。制御装置10、スレーブ装置211、スレーブ装置212、および、スレーブ装置221は、制御系ネットワーク30によって接続されている。
【0036】
情報通信用ネットワーク60は、例えば、ネットワーク規格として、Ethernet(登録商標)に準じたネットワークである。制御装置10、パーソナルコンピュータ61、産業用パーソナルコンピュータ62、および、データベース装置63は、情報通信用ネットワーク60によって接続されている。
【0037】
パーソナルコンピュータ61には、制御プログラムの編集ツール等がインストールされている。パーソナルコンピュータ61は、制御装置10、スレーブ装置211、および、スレーブ装置212の制御プログラムの作成、編集、出力を行う。パーソナルコンピュータ61は、制御プログラムを制御装置10に出力する。
【0038】
産業用パーソナルコンピュータ62には、例えば、ロボット用制御プログラムの編集ツール等がインストールされている。産業用パーソナルコンピュータ62は、スレーブ装置221の制御プログラムの作成、編集、出力を行う。産業用パーソナルコンピュータ62は、例えば、ロボット用制御プログラムを制御装置10に出力する。例えば、このロボット用制御プログラムに、第2制御データのリクエストデータが含まれる。そして、このリクエストデータに応答するデータがレスポンスデータとなる。
【0039】
データベース装置63は、制御装置10から各装置のログ等を取得する。なお、情報系データの元となるデータの生成、取得を実行する装置は、データベース装置63に限るものでなく、他の装置であってもよい。また、パーソナルコンピュータ61、産業用パーソナルコンピュータ62、および、データベース装置63は、上位システムを構成する装置であり、上位システムを構成する装置は、これらに限るものではない。
【0040】
制御装置10は、具体的には、例えば、PLC(Programmable Logic Contoroller)によって実現される。制御装置10は、制御系ネットワーク30を介して制御データを通信し、情報通信用ネットワーク60を介して各種のデータを通信する装置であれば、他の装置であってもよい。
【0041】
制御装置10は、例えば、パーソナルコンピュータ61からの制御プログラムを用いて、第1制御データを生成する。制御装置10は、例えば、産業用パーソナルコンピュータ62からのロボット用制御プログラムを用いて、第2制御データを生成する。なお、制御装置10は、パーソナルコンピュータ61からの制御プログラムを用いて、第2制御データを生成することも可能である。この制御装置10から送信される第2制御データに、上述のリクエストデータが含まれる。
【0042】
また、制御装置10は、情報系データを生成する。情報系データは、例えば、パーソナルコンピュータ61が制御系ネットワーク30に接続されるスレーブ装置211、スレーブ装置212、および、スレーブ装置221から取得したい情報、および、当該情報の取得要求等によって構成される。このため、例えば、情報系データは、パーソナルコンピュータ61からの指示に応じて、制御装置10で生成される。
【0043】
スレーブ装置211、スレーブ装置212は、具体的には、例えば、サーボドライバ、センサ等の計測器等によって実現される。なお、スレーブ装置211、スレーブ装置212は、第1制御データで動作する装置であれば、他の装置であってもよい。
【0044】
スレーブ装置221、スレーブ装置222は、具体的には、例えば、ロボット装置またはロボット装置に接続されるロボット制御装置によって実現される。なお、スレーブ装置221、スレーブ装置222は、第2制御データで動作する装置であれば、他の装置であってもよい。これらスレーブ装置221およびスレーブ装置222から送信される第2制御データに、上述のレスポンスデータが含まれる。
【0045】
制御装置10、スレーブ装置211、スレーブ装置212、スレーブ装置221、および、スレーブ装置222は、第1制御データ、第2制御データ、および、情報系データの送受信をスケジューリングする。制御装置10、スレーブ装置211、スレーブ装置212、スレーブ装置221、および、スレーブ装置222は、このスケジュールに応じて、サイクリック周期に準じて、第1制御データ、および、第2制御データを通信する。また、必要に応じて、制御装置10、スレーブ装置211、スレーブ装置212、スレーブ装置221、および、スレーブ装置222は、このスケジュールに応じて、第1制御データおよび第2制御データの帯域とは異なる帯域を用いて、情報系データを通信する。
【0046】
この際、制御装置10、スレーブ装置221、および、スレーブ装置222は、サイクリック周期の1周期に確保された第2制御データ用の上限容量に対して第2制御データのデータ容量が大きければ、第2制御データを複数の通信用データに分割する。そして、制御装置10は、複数の通信用データを、複数のサイクリック周期に割り当てて通信する。
【0047】
すなわち、制御装置10は、第2制御データ用の上限容量に対してリクエストデータのデータ容量が大きければ、リクエストデータを複数の通信用データに分割して送信する。また、スレーブ装置221、および、スレーブ装置222は、第2制御データ用の上限容量に対してレスポンスデータのデータ容量が大きければ、レスポンスデータを複数の通信用データに分割して送信する。
【0048】
さらに、制御装置10は、複数のサイクリック周期に分割して第2制御データ(リクエストデータ)を通信している期間に、他の新しい第2制御データ(リクエストデータ)を取得すると、それぞれの第2制御データ(リクエストデータ)の優先度に応じて通信制御を実行する。また、スレーブ装置221、および、スレーブ装置222は、複数のサイクリック周期に分割して第2制御データ(レスポンスデータ)を通信している期間に、他の新しい第2制御データ(レスポンスデータ)を取得すると、それぞれの第2制御データ(レスポンスデータ)の優先度に応じて通信制御を実行する。これらの具体的な通信制御については、後述する。
【0049】
(制御装置のハードウェア構成)
図2は、制御装置のハードウェアの構成を示すブロック図である。
【0050】
図2に示すように、ハードウェアの構成として、制御装置10は、CPU101、メモリ102、記憶媒体103、送受信部104、および、上位通信部105を備える。制御装置10は、CPU101、メモリ102、記憶媒体103、送受信部104、および、上位通信部105は、データバス100によって接続されている。
【0051】
CPU101は、記憶媒体に103に記憶されているシステムプログラム、および、ユーザアプリケーションプログラムをメモリ102に読み出して実行することで、後述の各機能ブロックの各処理を実現する。メモリ102は、例えば、DRAMやSRAM等の揮発性記憶素子によって実現される。また、記憶媒体103は、例えば、磁気記憶媒体、フラッシュメモリ等の不揮発性記憶媒体によって実現される。
【0052】
送受信部104は、制御装置10における制御系ネットワーク30のインターフェースであり、第制御データ、および、第2制御データのサイクリック周期に準じた送受信(通信)を実行する。また、送受信部104は、例えば、サイクリック周期において、第制御データおよび第2制御データの通信帯域と異なる通信帯域を用いて、情報系データの送受信(通信)を実行する。
【0053】
上位通信部105は、制御装置10における情報通信用ネットワーク60のインターフェースであり、上述の上位システムの各装置との間の通信を実行する。
【0054】
(制御装置の機能ブロック)
図3は、制御装置の機能ブロック図である。
【0055】
図3に示すように、制御装置10は、通信管理部110、サイクリック通信部121、メッセージ通信部122、通信ドライバ130、ユーザアプリケーション処理部141、その他処理部142を備える。
【0056】
通信管理部110は、第1制御系通信管理111、第2制御系通信管理112、および、情報系通信管理113を実行する。また、通信管理部110は、第1制御系通信管理111、第2制御系通信管理112、および、情報系通信管理113のスケジューリングを実行する。この際、通信管理部110は、通信対象のスレーブ装置の個数、種類に基づいて、サイクリック周期の1周期に対する各スレーブ装置の通信帯域を割り当てる。
【0057】
第1制御系通信管理111は、予め設定されたサイクリック周期に準じて、サイクリック周期毎に通信される第1制御データの通信管理を実行する。
【0058】
第2制御系通信管理112は、第2制御データの通信管理を実行する。この際、第2制御系通信管理112は、サイクリック周期の1周期で通信可能な第2制御データの最大容量(通信容量)よりも、第2制御データ(リクエストデータ)のデータ容量が大きければ、第2制御データを複数の通信用データに分割する。この際、第2制御系通信管理112は、第2制御データの通信対象のスレーブ装置が複数ある場合には、この第2制御データの最大容量を、複数のスレーブ装置に対して割り当てる(例えば、単純に、最大容量をスレーブ装置の個数で除算する。)ことで、それぞれのスレーブ装置に対するサイクリック周期の1周期で通信可能な最大容量を設定する。そして、第2制御系通信管理112は、スレーブ装置毎に、分割の有無を決定する。第2制御系通信管理112は、複数の通信用データの単位で通信管理を実行する。
【0059】
情報系通信管理113は、情報系データの通信管理を実行する。この際、情報系データも、サイクリック周期の1周期で通信可能な情報系データの最大容量(送信容量)よりも、情報系データのデータ容量が大きければ、複数のデータに分割する。そして、情報系通信管理113は、分割された複数のデータの単位で通信管理を実行する。
【0060】
通信管理部110は、送受信(通信)のスケジュールにしたがって、第1制御データと第2制御データとを、サイクリック通信部121に与える。この際、通信管理部110は、第2制御データが複数の通信用データに分割されていれば、複数の通信用データ毎に、サイクリック通信部121に与える。
【0061】
また、通信管理部110は、第2制御データ(リクエストデータ)を複数の通信用データに分割して、サイクリック周期単位で通信している期間に、他の新しい第2制御データ(リクエストデータ)を取得すると、それぞれの第2制御データ(リクエストデータ)の優先度に応じて通信制御を実行する。この具体的な通信制御については、後述する。
【0062】
通信管理部110は、送受信のスケジュールにしたがって、情報系データを、メッセージ通信部122に与える。この際、通信管理部110は、情報系データが複数のデータに分割されていれば、分割された複数のデータ毎に、メッセージ通信部122に与える。
【0063】
サイクリック通信部121は、第制御データおよび第2制御データを、制御系ネットワーク30のデータ形式に変換する。サイクリック通信部121は、変換後の第1制御データおよび第2制御データからフレームデータを形成し、当該フレームデータを通信管理部110から与えられた送受信のスケジュールにしたがって、通信ドライバ130に出力する。
【0064】
メッセージ通信部122は、情報系データを、通信管理部110から与えられた送受信のスケジュールにしたがって、通信ドライバ130に出力する。
【0065】
通信ドライバ130は、送受信部104の制御を実行し、サイクリック周期に準じて、第1制御データ、および、第2制御データを、制御系ネットワーク30を介して通信する。この際、第2制御データ(リクエストデータ)が複数の通信用データに分割されていれば、複数の通信用データが、サイクリック周期に準じて、順次通信される。同様に、情報系データが複数のデータに分割されていれば、分割された複数のデータが、順次通信される。
【0066】
なお、ユーザアプリケーション処理部141は、上述のユーザアプリケーションプログラムを実行する。このユーザアプリケーション処理部141によって、産業用パーソナルコンピュータ62からの第2制御データを取得する。その他処理部142は、例えば、制御装置10の起動処理や制御系ネットワーク30を用いた制御の初期処理等を実行する。
【0067】
(スレーブ装置のハードウェア構成)
図4は、スレーブ装置のハードウェアの構成を示すブロック図である。概略的には、スレーブ装置230は、図2に示した制御装置10に対して、上位通信部105を省略した構成からなる。スレーブ装置230は、図1に示すスレーブ装置211、スレーブ装置212、スレーブ装置221、および、スレーブ装置222に適用される。
【0068】
図4に示すように、ハードウェアの構成として、スレーブ装置230は、CPU231、メモリ232、記憶媒体233、および、送受信部234を備える。スレーブ装置230では、CPU231、メモリ232、記憶媒体233、および、送受信部234は、データバス2300によって接続されている。
【0069】
CPU231は、記憶媒体に233に記憶されているシステムプログラム、および、ユーザアプリケーションプログラムをメモリ232に読み出して実行することで、後述の各機能ブロックの各処理を実現する。メモリ232は、例えば、DRAMやSRAM等の揮発性記憶素子によって実現される。また、記憶媒体233は、例えば、磁気記憶媒体、フラッシュメモリ等の不揮発性記憶媒体によって実現される。
【0070】
送受信部234は、スレーブ装置230における制御系ネットワーク30のインターフェースであり、第制御データ、および、第2制御データのサイクリック周期に準じた送受信(通信)を実行する。また、送受信部234は、例えば、サイクリック周期において、第1制御データおよび第2制御データの通信帯域と異なる通信帯域を用いて、情報系データの送受信(通信)を実行する。
【0071】
(スレーブ装置の機能ブロック)
図5は、スレーブ装置の機能ブロック図である。概略的には、スレーブ装置230は、図3に示した制御装置10に対して、ユーザアプリケーション処理部141を省略した構成からなる。
【0072】
図5に示すように、スレーブ装置230は、通信管理部2310、サイクリック通信部2320、メッセージ通信部2330、通信ドライバ2340、および、その他処理部2350を備える。
【0073】
通信管理部2310は、第1制御系通信管理2311、第2制御系通信管理2312、および、情報系通信管理2313を実行する。また、通信管理部2310は、第1制御系通信管理2311、第2制御系通信管理2312、および、情報系通信管理2313のスケジューリングを実行する。この際、通信管理部2310は、制御装置10の通信管理部110によって設定されたスケジューリングにしたがって、各種の処理を実行する。
【0074】
第1制御系通信管理2311は、予め設定されたサイクリック周期に準じて、サイクリック周期毎に通信される第1制御データの通信管理を実行する。
【0075】
第2制御系通信管理2312は、第2制御データの通信管理を実行する。この際、第2制御系通信管理2312は、自装置に割り当てられたサイクリック周期の1周期で通信可能な第2制御データの最大容量(通信容量)よりも、第2制御データ(レスポンスデータ)のデータ容量が大きければ、第2制御データを複数の通信用データに分割する。第2制御系通信管理2312は、複数の通信用データの単位で通信管理を実行する。
【0076】
情報系通信管理2313は、情報系データの通信管理を実行する。この際、情報系データも、サイクリック周期の1周期で通信可能な情報系データの最大容量(送信容量)よりも、情報系データのデータ容量が大きければ、複数のデータに分割する。そして、情報系通信管理2313は、分割された複数のデータの単位で通信管理を実行する。
【0077】
通信管理部2310は、送受信(通信)のスケジュールにしたがって、第1制御データと第2制御データとを、サイクリック通信部2320に与える。この際、通信管理部2310は、第2制御データが複数の通信用データに分割されていれば、複数の通信用データ毎に、サイクリック通信部2320に与える。
【0078】
この際、通信管理部2310は、取得したリクエストデータに含まれる優先度に応じて、レスポンスデータを含む第2制御データの通信順序を設定する。
【0079】
例えば、具体的には、通信管理部2310は、レスポンスデータの通信中に新たなリクエストデータを受けると、通信中のレスポンスデータに対応するリクエストデータの優先度と、新たなリクエストデータの優先度とを比較する。通信管理部2310は、現在通信中のレスポンスデータの元となるリクエストデータの優先度よりも高ければ、通信中のレスポンスの通信を一時中断し、新たなリクエストデータに対応するレスポンスデータを通信する通信制御を行う。この具体的な通信制御については、後述する。
【0080】
通信管理部2310は、送受信のスケジュールにしたがって、情報系データを、メッセージ通信部2330に与える。この際、通信管理部2310は、情報系データが複数のデータに分割されていれば、分割された複数のデータ毎に、メッセージ通信部2330に与える。
【0081】
サイクリック通信部2320は、第制御データおよび第2制御データを、制御系ネットワーク30のデータ形式に変換する。サイクリック通信部2320は、変換後の第1制御データおよび第2制御データからフレームデータを形成し、当該フレームデータを通信管理部2310から与えられた送受信のスケジュールにしたがって、通信ドライバ2340に出力する。
【0082】
メッセージ通信部2330は、情報系データを、通信管理部2310から与えられた送受信のスケジュールにしたがって、通信ドライバ2340に出力する。
【0083】
通信ドライバ2340は、送受信部234の制御を実行し、サイクリック周期に準じて、第1制御データ、および、第2制御データを、制御系ネットワーク30を介して通信する。この際、第2制御データ(レスポンスデータ)が複数の通信用データに分割されていれば、複数の通信用データが、サイクリック周期に準じて、順次通信される。同様に、情報系データが複数のデータに分割されていれば、分割された複数のデータが、順次通信される。
【0084】
なお、その他処理部2350は、例えば、スレーブ装置230の起動処理や制御系ネットワーク30を用いた制御の初期処理等を実行する。
【0085】
(具体的な通信処理)
(1.リクエストデータの通信)
図6は、リクエストデータを含むフレームデータの具体的なデータ構成の一例を示す図である。なお、図6では、連続するフレームFRMt1、FRMt2を図示するが、他のフレームも同様の構成からなる。また、図6では、第2制御データは、1個のスレーブ装置に対するものを示しており、第2制御データの通信対象となるスレーブ装置が複数存在する場合には、図6に示すような第1制御データおよび第2制御データが1個のフレームデータ内に、通信を行っているスレーブ装置の個数分存在する。
【0086】
制御装置10の通信管理部110は、第2制御データD21を取得すると、通信管理部110等に備えられたバッファメモリに格納する。バッファメモリは、物理的には、例えば、上述の送受信部104に備えられた揮発性の記憶素子、メモリ102によって実現される。
【0087】
通信管理部110は、サイクリック周期に準じたフレームデータFRMt1の通信タイミングになるまでに、第2制御データD21における通信用データD211をバッファメモリから取り出し、サイクリック通信部121に出力する。通信用データD211は、サイクリック周期の1周期で通信できる第2制御データの通信上限容量DSf分のデータである。
【0088】
通信上限容量DSfは、例えば、サイクリック周期の1周期における対象のスレーブ装置(ここでは、スレーブ装置221)に対する通信容量(通信帯域)から、第1制御データD1の通信容量を減算することで算出される。
【0089】
なお、図示していないが、通信管理部110は、バッファメモリに記憶された第2制御データD21のデータ容量が通信上限容量DSf以下であれば、第2制御データD21の全体をバッファメモリから取り出し、サイクリック通信部121に出力する。
【0090】
サイクリック通信部121は、第1制御データD1と第2制御データD21の通信用データD211とを含むフレームデータFRMr1を通信する。
【0091】
次に、通信管理部110は、フレームデータFRMt2の通信前に、新たな第2制御データ(リクエストデータ)D22を取得すると、現在(リクエストデータ)D21の優先度と、新たに取得した第2制御データD22の優先度とを比較する。
【0092】
通信管理部110は、第2制御データD22の優先度が第2制御データD21の優先度よりも高いことを検出すると、フレームデータFRMt2の通信タイミングになるまでに、第2制御データD22をバッファメモリから取り出し、サイクリック通信部121に出力する。なお、図6の例では図示していないが、通信管理部110は、第2制御データD21の優先度が第2制御データD22の優先度よりも高い場合は、第2制御データD21の分割通信の制御を継続すればよい。
【0093】
さらに、通信管理部110は、通信上限容量DSfに対して、第2制御データD22の容量が小さいことを検出する。通信管理部110は、第2制御データD21におけるフレームデータFRMt2で通信可能な容量分となる通信用データD212をバッファメモリから取り出し、サイクリック通信部121に出力する。なお、図6では図示していないが、通信管理部110は、通信上限容量DSfに対して、第2制御データD22の容量が大きければ、第2制御データD21と同様に通信用データによる分割通信の制御を実行する。
【0094】
サイクリック通信部121は、第1制御データD1、第2制御データD22、および、第2制御データD21の通信用データD213を含むフレームデータFRMt2を通信する。
【0095】
この処理により、制御装置10は、優先度の異なる第2制御データD21、および第2制御データD22を、それぞれの優先度に応じて、通信制御する。これにより、第2制御データD21の性能要求(到達保証時間等)および第2制御データD22の性能要求(到達保証時間等)を満足する通信が可能になる。
【0096】
特に、上述の処理では、分割通信中の第2制御データD21が存在する状態において、より優先度の高い第2制御データD22を取得しても、優先度の高い第2制御データD22を優先的に通信でき、且つ、分割通信が一時停止した第2制御データD21も確実に通信できる。
【0097】
このような処理を行う場合、複数の第2制御データを含む各フレームデータは、例えば、図6に示すようなデータ構成を有する。
【0098】
図6に示すように、サイクリック周期の1周期の通信データに当たるフレームデータにおける、対象のスレーブ装置に対するデータには、第1制御データおよび第2制御データが含まれている。
【0099】
基本的には、各フレームデータの第2制御データおよび通信用データには、フォーマットID、トランザクションID、総データサイズ、フラグメントID、フラグメントデータサイズ、および、リクエストデータを含み、先頭ビットからこの順で並ぶデータである。なお、分割通信を行わない第2制御データには、フラグメントIDおよびフラグメントデータサイズは含まなくてもよい。
【0100】
フォーマットIDは、第2制御データのデータフォーマットの識別データである。フォーマットIDによって、第2制御データのデータフォーマットを識別できる。
【0101】
トランザクションIDは、第2制御データを示す識別データである。複数のフレームの通信用データのトランザクションIDを比較することによって、これら複数のフレームの通信用データが同じ第2制御データに基づくものであるか否かを判定できる。すなわち、複数のフレームの通信用データのトランザクションIDが同じであれば、これらの通信用データが、1つの第2制御データに基づくものであることを判定できる。
【0102】
総データサイズは、1個の第2制御データの総データ容量を示している。すなわち、総データサイズは、第2制御データが複数の通信用データに分割されている場合に、複数の通信用データのデータ容量の総和によって表されている。このような総データサイズを添付することによって、スレーブ装置221およびスレーブ装置222は、復元時に、第2制御データの受信エラーを検出できる。
【0103】
フラグメントIDは、分割された第2制御データにおける各通信用データの順番を示す識別データである。すなわち、フラグメントIDによって、そのフレームの通信用データが、通信前の第2制御データを分割した後の何番目のデータであることを識別できる。
【0104】
フラグメントサイズは、そのフレーム内のリクエストデータのデータ容量を示している。このようなフラグメントサイズを添付した場合、スレーブ装置221およびスレーブ装置222は、受信したリクエストのデータ容量を算出し、フラグメントサイズを比較するで、受信エラーを検出できる。
【0105】
リクエストデータは、コマンドタイプ、コマンドID、優先度、および、アーギュメントAn等を含み、先頭ビットからこの順に並ぶデータである。アーギュメントAnは、実際に制御に用いるコマンド群を含む。コマンドタイプ、および、コマンドIDは、アーギュメントAnに記載されているコマンド群の識別のためのデータである。優先度は、当該リクエストデータが緊急性を有するか否かを識別するためのデータである。例えば、優先度がHiならば、緊急性が高く、レスポンスデータを早急に返信して欲しいことを示し、優先度がLowならば、緊急性が低く、レスポンスデータの返信期限が無い、もしくは、返信期限が長いことを示している。なお、ここでは、優先度を、Hi、Lowの2段階にしているが、3段階以上の多段階にしてもよい。
【0106】
このようなデータ構成に準じて、フレームデータFRMt1およびフレームデータFRMt2は、図6に示すデータ構成を有する。
【0107】
フレームデータFRMt1は、第1制御データD1と第2制御データD21の通信用データD211とがこの順に並ぶデータ構成が含まれる。
【0108】
通信用データD211は、フォーマットID、トランザクションID(=N)、総データサイズ(=Vn)、フラグメントID(=p)、フラグメントデータサイズ(=Vnp)、および、リクエストデータを含み、これらがこの順に並ぶデータ構成からなる。リクエストデータは、コマンドタイプ、コマンドID、優先度(Low)、および、アーギュメントAnpを含み、これらがこの順に並ぶデータ構成からなる。
【0109】
フレームデータFRMt2は、第1制御データD1、第2制御データD22、および、第2制御データD21の通信用データD212とがこの順に並ぶデータ構成を有する。
【0110】
第2制御データD22は、フォーマットID、トランザクションID(=K)、総データサイズ(=Vk)、および、リクエストデータを含み、これらがこの順に並ぶデータ構成からなる。リクエストデータは、コマンドタイプ、コマンドID、優先度(Hi)、および、アーギュメントAkを含み、これらがこの順に並ぶデータ構成からなる。
【0111】
通信用データD212は、フォーマットID、トランザクションID(=N)、総データサイズ(=Vn)、フラグメントID(=q)、フラグメントデータサイズ(=Vnq)、および、リクエストデータを含み、これらがこの順に並ぶデータ構成からなる。リクエストデータは、コマンドタイプ、コマンドID、通信用データD211と同じ優先度(Low)、および、アーギュメントAnqを含み、これらがこの順に並ぶデータ構成からなる。
【0112】
このようなデータ構成では、第2制御データD21と第2制御データD22とのそれぞれに優先度が添付されている。したがって、スレーブ装置は、リクエストデータに基づいて、第2制御データD21の優先度と第2制御データD22の優先度とを比較できる。例えば、図6の例であれば、スレーブ装置は、第2制御データD22は、第2制御データD21よりも優先度が高いことを、容易に検出できる。
【0113】
また、通信用データD211と通信用データD212のトランザクションIDが同じNであることから、これらを受信するスレーブ装置221、および、スレーブ装置222は、通信用データD211および通信用データD212がともに第2制御データD21を構成するデータであることを容易且つ確実に検出できる。
【0114】
また、通信用データD211のフラグメントIDがpであり、通信用データD212のフラグメントIDがqであることから、これらを受信するスレーブ装置221、および、スレーブ装置222は、第2制御データD21において、通信用データD212のアーギュメントAnpと通信用データD213のアーギュメントAnqはこの順に並んでいることを容易且つ確実に検出できる。
【0115】
また、これらを受信するスレーブ装置221、および、スレーブ装置222は、フラグメントデータサイズVnpによって、通信用データD211の欠損等の通信エラーを検出でき、フラグメントデータサイズVnqによって、通信用データD212の欠損等の通信エラーを検出できる。
【0116】
また、これらを受信するスレーブ装置221、および、スレーブ装置222は、総データサイズVnによって、通信用データD211および通信用データD212を含む第2制御データD21の欠損等の通信エラーを検出でき、総データサイズVkによって、第2制御データD22の欠損等の通信エラーを検出できる。
【0117】
(2.レスポンスデータの通信)
以下では、スレーブ装置221を例に示すが、スレーブ装置222も同様の処理を実行する。図7は、レスポンスデータを含むフレームデータの具体的なデータ構成の一例を示す図である。なお、図7では、連続するフレームFRMr1、FRMr2を図示するが、他のフレームも同様の構成からなる。また、図7では、第2制御データは、1個のスレーブ装置に対するものを示しており、第2制御データの通信対象となるスレーブ装置が複数存在する場合には、図6に示すような第1制御データおよび第2制御データが1個のフレームデータ内に、通信を行っているスレーブ装置の個数分存在する。
【0118】
スレーブ装置211の通信管理部2310は、既に受信したリクエストデータに対応するレスポンスデータを含む第2制御データD20を取得すると、通信管理部2310等に備えられたバッファメモリに格納する。バッファメモリは、物理的には、例えば、上述の送受信部234に備えられた揮発性の記憶素子、メモリ232によって実現される。
【0119】
通信管理部2310は、サイクリック周期に準じたフレームデータFRMr1の通信タイミングになるまでに、第2制御データD20における通信用データD201をバッファメモリから取り出し、サイクリック通信部2320に出力する。通信用データD201は、上述の通信上限容量DSf分のデータである。
【0120】
なお、図示していないが、通信管理部2310は、バッファメモリに記憶された第2制御データD20のデータ容量が通信上限容量DSf以下であれば、第2制御データD20の全体をバッファメモリから取り出し、サイクリック通信部2320に出力する。
【0121】
サイクリック通信部2320は、第1制御データD1と第2制御データD20の通信用データD201とを含むフレームデータFRMr1を通信する。
【0122】
次に、通信管理部110は、フレームデータFRMr2の通信前に、新たなレスポンスデータを含む第2制御データD22を取得すると、現在レスポンスデータを通信中の第2制御データD20の優先度と、新たに取得した第2制御データD22の優先度とを比較する。
【0123】
通信管理部2310は、第2制御データD22の優先度が第2制御データD20の優先度よりも高いことを検出すると、フレームデータFRMr2の通信タイミングになるまでに、第2制御データD22をバッファメモリから取り出し、サイクリック通信部2320に出力する。なお、図7の例では図示していないが、通信管理部110は、第2制御データD20の優先度が第2制御データD22の優先度よりも高い場合は、第2制御データD20の分割通信の制御を継続すればよい。
【0124】
さらに、通信管理部2310は、通信上限容量DSfに対して、第2制御データD22の容量が小さいことを検出する。通信管理部2310は、第2制御データD20におけるフレームデータFRMr2で通信可能な容量分となる通信用データD202をバッファメモリから取り出し、サイクリック通信部2320に出力する。なお、図7では図示していないが、通信管理部2310は、通信上限容量DSfに対して、第2制御データD22の容量が大きければ、第2制御データD20と同様に通信用データによる分割通信の制御を実行する。
【0125】
サイクリック通信部2320は、第1制御データD1、第2制御データ(レスポンスデータ)D22、および、第2制御データ(レスポンスデータ)D20の通信用データD202を含むフレームデータFRMr2を通信する。
【0126】
この処理により、スレーブ装置221は、優先度の異なる第2制御データ(レスポンスデータ)D20、および第2制御データ(レスポンスデータ)D22を、それぞれの優先度に応じて、通信制御する。
【0127】
これにより、スレーブ装置221は、分割通信中の第2制御データ(レスポンスデータ)D20が存在する状態において、より優先度の高い第2制御データ(レスポンスデータ)D22を取得した時、優先度の高い第2制御データ(レスポンスデータ)D22を優先的に通信でき、且つ、分割通信が一時停止した第2制御データ(レスポンスデータ)D20も確実に通信できる。
【0128】
このような処理を行う場合、複数の第2制御データを含む各フレームデータは、例えば、図7に示すようなデータ構成を有する。
【0129】
図7に示すように、サイクリック周期の1周期の通信データに当たるフレームデータにおける、対象のスレーブ装置に対するデータには、第1制御データおよび第2制御データが含まれている。
【0130】
基本的には、各フレームデータの第2制御データおよび通信用データには、フォーマットID、トランザクションID、総データサイズ、フラグメントID、フラグメントデータサイズ、および、レスポンスデータを含み、先頭ビットからこの順で並ぶデータである。なお、分割通信を行わない第2制御データには、フラグメントIDおよびフラグメントデータサイズは含まなくてもよい。
【0131】
フォーマットID、トランザクションID、総データサイズ、フラグメントID、および、フラグメントデータサイズは、図6に示したフレームデータと同じ定義であり、説明は省略する。
【0132】
レスポンスデータは、コマンドタイプ、コマンドID、優先度、および、アーギュメントAm等を含み、先頭ビットからこの順に並ぶデータである。アーギュメントAmは、上述のリクエストデータに含まれるアーギュメントAn等に対応するレスポンス情報を含む。例えば、レスポンス情報は、データ容量が大きなログデータ、データ容量が小さな位置情報またはステータス情報等を含む。コマンドタイプ、および、コマンドIDは、アーギュメントAnに記載されているレスポンス情報の識別のためのデータである。優先度は、上述のリクエストデータと同じ定義である。
【0133】
このようなデータ構成に準じて、フレームデータFRMr1およびフレームデータFRMr2は、図7に示すデータ構成を有する。
【0134】
フレームデータFRMr1は、第1制御データD1と第2制御データD20の通信用データD201とがこの順に並ぶデータ構成が含まれる。
【0135】
通信用データD201は、フォーマットID、トランザクションID(=M)、総データサイズ(=Vm)、フラグメントID(=pp)、フラグメントデータサイズ(=Vmpp)、および、レスポンスデータを含み、これらがこの順に並ぶデータ構成からなる。レスポンスデータは、コマンドタイプ、コマンドID、優先度(=Low)、および、アーギュメントAmpを含み、これらがこの順に並ぶデータ構成からなる。
【0136】
フレームデータFRMr2は、第1制御データD1、第2制御データD22、および、第2制御データD20の通信用データD202とがこの順に並ぶデータ構成を有する。
【0137】
第2制御データD22は、フォーマットID、トランザクションID(=K)、総データサイズ(=Vkk)、および、レスポンスデータを含み、これらがこの順に並ぶデータ構成からなる。レスポンスデータは、コマンドタイプ、コマンドID、優先度(=Hi)、および、アーギュメントAkkを含み、これらがこの順に並ぶデータ構成からなる。
【0138】
通信用データD202は、フォーマットID、トランザクションID(=M)、総データサイズ(=Vm)、フラグメントID(=qq)、フラグメントデータサイズ(=Vnqq)、および、レスポンスデータを含み、これらがこの順に並ぶデータ構成からなる。レスポンスデータは、コマンドタイプ、コマンドID、通信用データD201と同じ優先度(=Low)、および、アーギュメントAmqを含み、これらがこの順に並ぶデータ構成からなる。
【0139】
このようなデータ構成では、通信用データD201と通信用データD212のトランザクションIDが同じNであることから、これらを受信する制御装置10は、通信用データD201および通信用データD212がともに第2制御データ(レスポンスデータ)D20を構成するデータであることを容易且つ確実に検出できる。
【0140】
また、通信用データD201のフラグメントIDがppであり、通信用データD202のフラグメントIDがqqであることから、これらを受信する制御装置10は、第2制御データD20において、通信用データD201のアーギュメントAmpと通信用データD202のアーギュメントAmqはこの順に並んでいることを容易且つ確実に検出できる。
【0141】
また、フラグメントデータサイズVmppによって、これらを受信する制御装置10は、通信用データD201の欠損等の通信エラーを検出でき、フラグメントデータサイズVmqqによって、通信用データD202の欠損等の通信エラーを検出できる。
【0142】
また、総データサイズVmによって、これらを受信する制御装置10は、通信用データD201および通信用データD202を含む第2制御データD20の欠損等の通信エラーを検出でき、総データサイズVkkによって、第2制御データD22の欠損等の通信エラーを検出できる。
【0143】
(具体的な通信処理フロー)
以上のようなレスポンスデータの通信制御は、次に示す処理を実行することによって実現される。図8は、レスポンスデータの通信方法を示すフローチャートである。なお、以下では、スレーブ装置221の処理を示すが、スレーブ装置222も同様の処理を実行する。
【0144】
スレーブ装置221は、制御装置10からのリクエストデータ、すなわち、レスポンス要求を受信すると(S11:YES)、未処理のレスポンスデータがあるか否かを検出する(S12)。
【0145】
スレーブ装置221は、未処理のレスポンスデータがあれば(S12:YES)、未処理のレスポンスデータが複数あるか否かを検出する(S13)。
【0146】
スレーブ装置221は、複数のレスポンスデータがあれば(S13:YES)、複数のレスポンスデータの優先度を比較する。スレーブ装置221は、優先度の高いレスポンスデータを挿入する(S16)。スレーブ装置221は、優先度の高いレスポンスデータを挿入したフレームに空きがなければ(S17:NO)、優先度の高いレスポンスデータが挿入されたフレームデータを送信する(S15)。
【0147】
スレーブ装置221は、優先度の高いレスポンスデータを挿入したフレームに空きがあれば(S17:YES)、ステップS12に戻る。
【0148】
また、スレーブ装置221は、レスポンスデータが1個しかなければ(S13:NO)、レスポンスデータを挿入して(S14)、当該レスポンスデータが挿入されたフレームデータを送信する(S15)。
【0149】
そして、スレーブ装置221は、未処理のレスポンスデータが無くなり(S12:NO)、新たなレスポンスの要求がなければ(S11:NO)、処理を終了する。
【0150】
このような通信制御を行うことによって、スレーブ装置221は、レスポンスデータの通信中に、より緊急性を有するレスポンスの要求があれば、当該緊急性を有するレスポンス要求に対応したレスポンスデータを、迅速に通信できる。
【符号の説明】
【0151】
1:制御システム
10:制御装置
30:制御系ネットワーク
60:情報通信用ネットワーク
61:パーソナルコンピュータ
62:産業用パーソナルコンピュータ
63:データベース装置
100、2300:データバス
101、231:CPU
102、232:メモリ
103、233:記憶媒体
104、234:送受信部
105:上位通信部
110、2310:通信管理部
111、2311:第1制御系通信管理
112、2312:第2制御系通信管理
113、2313:情報系通信管理
121、2320:サイクリック通信部
122、2330:メッセージ通信部
130、2340:通信ドライバ
141:ユーザアプリケーション処理部
142、2350:その他処理部
211、212、221、222、230:スレーブ装置
図1
図2
図3
図4
図5
図6
図7
図8