IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

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

特許7567394制御装置、通信制御方法、および制御プログラム
<>
  • 特許-制御装置、通信制御方法、および制御プログラム 図1
  • 特許-制御装置、通信制御方法、および制御プログラム 図2
  • 特許-制御装置、通信制御方法、および制御プログラム 図3
  • 特許-制御装置、通信制御方法、および制御プログラム 図4
  • 特許-制御装置、通信制御方法、および制御プログラム 図5
  • 特許-制御装置、通信制御方法、および制御プログラム 図6
  • 特許-制御装置、通信制御方法、および制御プログラム 図7
  • 特許-制御装置、通信制御方法、および制御プログラム 図8
  • 特許-制御装置、通信制御方法、および制御プログラム 図9
  • 特許-制御装置、通信制御方法、および制御プログラム 図10
  • 特許-制御装置、通信制御方法、および制御プログラム 図11
  • 特許-制御装置、通信制御方法、および制御プログラム 図12
  • 特許-制御装置、通信制御方法、および制御プログラム 図13
  • 特許-制御装置、通信制御方法、および制御プログラム 図14
  • 特許-制御装置、通信制御方法、および制御プログラム 図15
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-07
(45)【発行日】2024-10-16
(54)【発明の名称】制御装置、通信制御方法、および制御プログラム
(51)【国際特許分類】
   H04L 12/28 20060101AFI20241008BHJP
   H04L 12/437 20060101ALI20241008BHJP
   G05B 19/05 20060101ALI20241008BHJP
【FI】
H04L12/28 200Z
H04L12/437 R
G05B19/05 L
【請求項の数】 9
(21)【出願番号】P 2020194427
(22)【出願日】2020-11-24
(65)【公開番号】P2022083142
(43)【公開日】2022-06-03
【審査請求日】2023-09-07
(73)【特許権者】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】岩見 健一
(72)【発明者】
【氏名】福田 泰士
【審査官】松本 泰典
(56)【参考文献】
【文献】国際公開第2019/087849(WO,A1)
【文献】実開平4-80149(JP,U)
【文献】国際公開第2015/133175(WO,A1)
【文献】特開2015-210752(JP,A)
【文献】特開平5-219081(JP,A)
【文献】特開2020-167554(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 19/05
H04L 12/437
H04L 12/28
(57)【特許請求の範囲】
【請求項1】
通信フレームが一巡するように構成されたネットワークに接続される通信部と、
前記通信部を介して受信した通信フレームに含まれる入力データに基づく制御演算、および、当該制御演算により決定された出力データを含む通信フレームの送信を、実行周期毎に繰返し実行する演算処理部とを備え、
前記ネットワークは、通信スレーブに接続されたケーブルの各々において、通信フレームが一方向にのみ伝送されるように構成されたリング構成を含み、
前記演算処理部は、
通信フレームを送信してから第1のしきい時間までに当該送信した通信フレームを受信しなければ、当該送信より前に受信した通信フレームに含まれていた入力データである予備入力データに基づいて制御演算を実行する第1の動作モードと、
通信フレームを送信してから前記第1のしきい時間より短い第2のしきい時間までに当該送信した通信フレームを受信しなければ、当該送信より前に受信した通信フレームに含まれていた入力データである予備入力データに基づいて制御演算を実行する第2の動作モードとを選択可能に構成されており、
前記演算処理部は、
前記第1の動作モードにおいて、前記第1のしきい時間までに当該送信した通信フレームを受信すれば、当該受信した通信フレームに含まれる入力データで前記予備入力データを更新し、
前記第2の動作モードにおいて、前記第2のしきい時間より長い第3のしきい時間までに当該送信した通信フレームを受信すれば、当該受信した通信フレームに含まれる入力データで前記予備入力データを更新する、制御装置。
【請求項2】
前記演算処理部は、前記ネットワークが前記リング構成を含む場合に、前記第2の動作モードを有効化可能になっている、請求項に記載の制御装置。
【請求項3】
前記第2のしきい時間は、前記リング構成において、前記通信部から送信された通信フレームが一巡して前記通信部に戻るまでの時間に基づいて決定され、
前記第3のしきい時間は、前記リング構成に含まれるいずれかのケーブルが通信フレームを伝送できない状態で、前記通信部から送信された通信フレームが一巡して前記通信部に戻るまでの時間に基づいて決定される、請求項またはに記載の制御装置。
【請求項4】
前記リング構成は、前記通信部および複数の通信スレーブに接続された中継装置を含む、請求項のいずれか1項に記載の制御装置。
【請求項5】
前記通信部は、それぞれ異なる通信スレーブに接続された複数のポートを有している、請求項のいずれか1項に記載の制御装置。
【請求項6】
前記第2の動作モードにおける実行周期は、前記第1の動作モードにおける実行周期より短く設定される、請求項1に記載の制御装置。
【請求項7】
前記演算処理部で実行されるユーザプログラムに含まれる命令により前記演算処理部の動作モードを参照できるように構成される、請求項1~のいずれか1項に記載の制御装置。
【請求項8】
通信フレームが一巡するように構成されたネットワークに接続される通信部を含む制御装置で実行される通信制御方法であって、
前記ネットワークは、通信スレーブに接続されたケーブルの各々において、通信フレームが一方向にのみ伝送されるように構成されたリング構成を含み、
前記通信制御方法は、
第1の動作モードおよび第2の動作モードのうち選択された動作モードに従って、入力処理を実行するステップと、
前記通信部を介して受信した通信フレームに含まれる入力データに基づく制御演算を実行するステップと、
前記制御演算により決定された出力データを含む通信フレームを送信するステップとを備え、
前記入力処理を実行するステップは、
前記第1の動作モードにおいて、
通信フレームを送信してから第1のしきい時間までに当該送信した通信フレームを受信しなければ、当該送信より前に受信した通信フレームに含まれていた入力データである予備入力データを前記制御演算に用いるステップと、
前記第1のしきい時間までに当該送信した通信フレームを受信すれば、当該受信した通信フレームに含まれる入力データで前記予備入力データを更新するステップとを含み、
前記第2の動作モードにおいて、
通信フレームを送信してから前記第1のしきい時間より短い第2のしきい時間までに当該送信した通信フレームを受信しなければ、当該送信より前に受信した通信フレームに含まれていた入力データである予備入力データを前記制御演算に用いるステップと、
前記第2のしきい時間より長い第3のしきい時間までに当該送信した通信フレームを受信すれば、当該受信した通信フレームに含まれる入力データで前記予備入力データを更新するステップとを含む、通信制御方法。
【請求項9】
通信フレームが一巡するように構成されたネットワークに接続される通信部を含むコンピュータで実行される制御プログラムであって、
前記ネットワークは、通信スレーブに接続されたケーブルの各々において、通信フレームが一方向にのみ伝送されるように構成されたリング構成を含み、
前記制御プログラムは前記コンピュータに、
第1の動作モードおよび第2の動作モードのうち選択された動作モードに従って、入力処理を実行するステップと、
前記通信部を介して受信した通信フレームに含まれる入力データに基づく制御演算を実行するステップと、
前記制御演算により決定された出力データを含む通信フレームを送信するステップとを実行させ、
前記入力処理を実行するステップは、
前記第1の動作モードにおいて、
通信フレームを送信してから第1のしきい時間までに当該送信した通信フレームを受信しなければ、当該送信より前に受信した通信フレームに含まれていた入力データである予備入力データを前記制御演算に用いるステップと、
前記第1のしきい時間までに当該送信した通信フレームを受信すれば、当該受信した通信フレームに含まれる入力データで前記予備入力データを更新するステップとを含み、
前記第2の動作モードにおいて、
通信フレームを送信してから前記第1のしきい時間より短い第2のしきい時間までに当該送信した通信フレームを受信しなければ、当該送信より前に受信した通信フレームに含まれていた入力データである予備入力データを前記制御演算に用いるステップと、
前記第2のしきい時間より長い第3のしきい時間までに当該送信した通信フレームを受信すれば、当該受信した通信フレームに含まれる入力データで前記予備入力データを更新するステップとを含む、制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワークに接続可能な制御装置、その制御装置における通信制御方法、およびその制御装置を実現するための制御プログラムに関する。
【背景技術】
【0002】
例えば、EtherCAT(登録商標)に従うネットワークでは、通信マスタ(以下、単に「マスタ」とも称す。)が送信した通信フレームは、すべての通信スレーブ(以下、単に「スレーブ」とも称す。)を巡回した上で、マスタに戻る。
【0003】
通信フレームを巡回させるためのトポロジとして、経路上に、通信フレームを受信および送信するポートを有するスレーブが存在する形態に加えて、経路上に存在するスレーブのポートは、通信フレームの受信および送信の一方のみを行う形態を採用し得る。説明の便宜上、前者を「非リング構成」と称し、後者を「リング構成」とも称す。リング構成においては、スレーブに接続されたケーブルの各々では通信フレームが一方向に伝送されることになる。なお、リング構成と非リング構成との両方を含む態様も存在し得る。
【0004】
このようなリング構成に関して、特開2020-167554号公報(特許文献1)は、リングトポロジを含むネットワークにおける不正な経路を容易に知ることが可能なマスタ装置を開示する。
【0005】
また、EtherCATに従うネットワークにおいては、マスタから送信された通信フレームが一巡してマスタに戻るまでに要する時間(以下、「ラウンドトリップ時間」とも称す。)を設計上考慮する必要がある。より具体的には、ラウンドトリップ時間が増大することによって、通信マスタと通信スレーブとの間でやり取りされるデータの更新周期が長くなり制御性能が低下し得る。
【0006】
ラウンドトリップ時間は、通信スレーブの数が増加するにつれて大きくなるが、リング構成を採用することで、非リング構成を採用した場合よりラウンドトリップ時間の増大を抑制できる。
【先行技術文献】
【特許文献】
【0007】
【文献】特開2020-167554号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
リング構成は一種の冗長化ネットワークであり、ネットワーク内で何らかの障害が発生すると、非リング構成のネットワークが自動的に再構成されて、通信フレームの伝送は継続される。しかしながら、ネットワーク構成が変化することに伴って、ラウンドトリップ時間はより長くなる方向に変化し得る。
【0009】
本発明のある局面の目的は、リング構成によって得られるラウンドトリップ時間の短縮化と、リング構成に何らかの障害が発生した場合の制御の安定化とを両立できる新たな仕組みを提供することである。
【課題を解決するための手段】
【0010】
本発明のある実施の形態に従う制御装置は、通信フレームが一巡するように構成されたネットワークに接続される通信部と、通信部を介して受信した通信フレームに含まれる入力データに基づく制御演算、および、当該制御演算により決定された出力データを含む通信フレームの送信を、実行周期毎に繰返し実行する演算処理部とを含む。演算処理部は、通信フレームを送信してから第1のしきい時間までに当該送信した通信フレームを受信しなければ、当該送信より前に受信した通信フレームに含まれていた入力データである予備入力データに基づいて制御演算を実行する第1の動作モードと、通信フレームを送信してから第1のしきい時間より短い第2のしきい時間までに当該送信した通信フレームを受信しなければ、当該送信より前に受信した通信フレームに含まれていた入力データである予備入力データに基づいて制御演算を実行する第2の動作モードとを選択可能に構成されている。演算処理部は、第1の動作モードにおいて、第1のしきい時間までに当該送信した通信フレームを受信すれば、当該受信した通信フレームに含まれる入力データで予備入力データを更新し、第2の動作モードにおいて、第2のしきい時間より長い第3のしきい時間までに当該送信した通信フレームを受信すれば、当該受信した通信フレームに含まれる入力データで予備入力データを更新する。
【0011】
この構成によれば、第1の動作モードにおいては、第1のしきい時間までに送信した通信フレームを受信できるか否かに基づいて、制御演算に用いる入力データの決定、および、予備入力データの更新を判断する。一方、第2の動作モードにおいては、第2のしきい時間までに送信した通信フレームを受信できるか否かに基づいて、制御演算に用いる入力データを決定するものの、予備入力データの更新については、第2のしきい時間より長い第3のしきい時間までに受信された通信フレームを対象にして行うことができる。このため、第2の動作モードにおいては、第1の動作モードに比較して、通信フレームを送信してから制御演算の実行を開始するまでの時間を短く設定しても、第3のしきい時間までに通信フレームを受信できれば、予備入力データを適切に更新できる。そのため、制御の安定化を図ることができる。
【0012】
ネットワークは、通信スレーブに接続されたケーブルの各々において、通信フレームが一方向にのみ伝送されるように構成されたリング構成を含んでいてもよい。演算処理部は、ネットワークがリング構成を含む場合に、第2の動作モードを有効化可能になっていてもよい。これらの構成によれば、リング構成に適した動作モードを提供できる。なお、ネットワークは、デイジーチェーン接続された構成を含んでいてもよい。
【0013】
第2のしきい時間は、リング構成において、通信部から送信された通信フレームが一巡して通信部に戻るまでの時間に基づいて決定されてもよい。第3のしきい時間は、リング構成に含まれるいずれかのケーブルが通信フレームを伝送できない状態で、通信部から送信された通信フレームが一巡して通信部に戻るまでの時間に基づいて決定されてもよい。この構成によれば、ネットワーク構成の変化を予測して、適切なしきい時間を決定できる。
【0014】
リング構成は、通信部および複数の通信スレーブに接続された中継装置を含んでいてもよい。この構成によれば、ジャンクション冗長性(Junction Redundancy)を有するリング構成を実現できる。
【0015】
通信部は、それぞれ異なる通信スレーブに接続された複数のポートを有していてもよい。この構成によれば、ケーブル冗長性(Cable Redundancy)を有するリング構成を実現できる。
【0016】
第2の動作モードにおける実行周期は、第1の動作モードにおける実行周期より短く設定されてもよい。この構成によれば、制御演算の実行周期の短縮化、および/または、実行可能な演算量の増大化を実現できる。
【0017】
演算処理部で実行されるユーザプログラムに含まれる命令により演算処理部の動作モードを参照できるように構成されてもよい。この構成によれば、演算処理部における動作モードに応じて、容易に処理を異ならせることができる。
【0018】
本発明の別の実施の形態によれば、通信フレームが一巡するように構成されたネットワークに接続される通信部を含む制御装置で実行される通信制御方法が提供される。通信制御方法は、第1の動作モードおよび第2の動作モードのうち選択された動作モードに従って、入力処理を実行するステップと、通信部を介して受信した通信フレームに含まれる入力データに基づく制御演算を実行するステップと、制御演算により決定された出力データを含む通信フレームを送信するステップとを含む。入力処理を実行するステップは、第1の動作モードにおいて、通信フレームを送信してから第1のしきい時間までに当該送信した通信フレームを受信しなければ、当該送信より前に受信した通信フレームに含まれていた入力データである予備入力データを制御演算に用いるステップと、第1のしきい時間までに当該送信した通信フレームを受信すれば、当該受信した通信フレームに含まれる入力データで予備入力データを更新するステップとを含む。入力処理を実行するステップは、第2の動作モードにおいて、通信フレームを送信してから第1のしきい時間より短い第2のしきい時間までに当該送信した通信フレームを受信しなければ、当該送信より前に受信した通信フレームに含まれていた入力データである予備入力データを制御演算に用いるステップと、第2のしきい時間より長い第3のしきい時間までに当該送信した通信フレームを受信すれば、当該受信した通信フレームに含まれる入力データで予備入力データを更新するステップとを含む。
【0019】
本発明のさらに別の実施の形態によれば、通信フレームが一巡するように構成されたネットワークに接続される通信部を含むコンピュータで実行される制御プログラムが提供される。制御プログラムはコンピュータに、第1の動作モードおよび第2の動作モードのうち選択された動作モードに従って、入力処理を実行するステップと、通信部を介して受信した通信フレームに含まれる入力データに基づく制御演算を実行するステップと、制御演算により決定された出力データを含む通信フレームを送信するステップとを実行させる。入力処理を実行するステップは、第1の動作モードにおいて、通信フレームを送信してから第1のしきい時間までに当該送信した通信フレームを受信しなければ、当該送信より前に受信した通信フレームに含まれていた入力データである予備入力データを制御演算に用いるステップと、第1のしきい時間までに当該送信した通信フレームを受信すれば、当該受信した通信フレームに含まれる入力データで予備入力データを更新するステップとを含む。入力処理を実行するステップは、第2の動作モードにおいて、通信フレームを送信してから第1のしきい時間より短い第2のしきい時間までに当該送信した通信フレームを受信しなければ、当該送信より前に受信した通信フレームに含まれていた入力データである予備入力データを制御演算に用いるステップと、第2のしきい時間より長い第3のしきい時間までに当該送信した通信フレームを受信すれば、当該受信した通信フレームに含まれる入力データで予備入力データを更新するステップとを含む。
【発明の効果】
【0020】
本発明のある実施の形態によれば、リング構成によって得られるラウンドトリップ時間の短縮化と、リング構成に何らかの障害が発生した場合の制御の安定化とを両立できる。
【図面の簡単な説明】
【0021】
図1】本実施の形態に従う制御システムの一例を示す模式図である。
図2】本実施の形態に従う制御システムのPLCでの処理の一例を示す模式図である。
図3】本実施の形態に従う制御システムのPLCでの処理の別の一例を示す模式図である。
図4】本実施の形態に従う制御システムのPLCでの処理のさらに別の一例を示す模式図である。
図5】本実施の形態に従う制御システムのPLCのハードウェア構成例を示す模式図である。
図6】本実施の形態に従う制御システムのデバイスのハードウェア構成例を示す模式図である。
図7】本実施の形態に従う制御システムの中継装置のハードウェア構成例を示す模式図である。
図8】本実施の形態に従う制御システムにおける通信時間に関する処理を説明するための図である。
図9】本実施の形態に従う制御システムのPLCにおける入力処理の例を説明するための図である。
図10】本実施の形態に従う制御システムのPLCによるデータ同期性優先モードでの処理手順を示すフローチャートである。
図11】本実施の形態に従う制御システムのPLCによる制御性能優先モードでの処理手順を示すフローチャートである。
図12】本実施の形態に従う制御システムの動作例を示すタイムチャートである。
図13】本実施の形態に従う制御システムのサポート装置のハードウェア構成例を示す模式図である。
図14】本実施の形態に従う制御システムのサポート装置が提供するユーザインターフェイス画面の一例を示す模式図である。
図15】本実施の形態に従う制御システムで採用可能なリング構成の一例を示す図である。
【発明を実施するための形態】
【0022】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【0023】
<A.適用例>
まず、図1図3を参照して、本発明が適用される場面の一例について説明する。
【0024】
図1は、本実施の形態に従う制御システムの一例を示す模式図である。図1(A)~図1(C)に示す制御システム1は、通信マスタ(マスタ)として機能する制御装置の一例であるPLC100と、通信スレーブ(スレーブ)として機能する入出力装置などのデバイス200-1~200-5(以下、「デバイス200」とも総称する。)および中継装置300とを含む。
【0025】
本明細書における「リング構成」は、スレーブに接続されたケーブルの各々において、通信フレームが一方向にのみ伝送されるように構成されたネットワークを意味する。言い換えれば、スレーブの各々は、複数のポートを有しており、1つのポートは、通信フレームの送信および受信の一方のみを行う構成が「リング構成」を意味する。
【0026】
一方、本明細書における「非リング構成」は、スレーブに接続されたいずれかのケーブルにおいて、通信フレームが両方向に伝送されるように構成されたネットワークを意味する。言い換えれば、スレーブの有するいずれかのポートが、通信フレームの送信および受信の両方を行う構成が「非リング構成」を意味する。
【0027】
制御システム1のネットワークに関して、PLC100は、通信フレームの送受信を行うためのポート151を有している。デバイス200-1~200-5の各々は、通信フレームを送受信するための第1ポート251および第2ポート252を有している。基本的には、第1ポート251は、通信フレームが入力されるポート(INポート)であり、第2ポート252は、通信フレームが出力されるポート(OUTポート)である。
【0028】
中継装置300は、通信フレームを送受信するための第1ポート351、第2ポート352および第3ポート353を有している。中継装置300は、あるポートで通信フレームを受けると、所定規則に従って決定される別のポートから、当該受信したフレームを送信する。図1に示す例では、所定規則として、第1ポート351→第2ポート352→第3ポート353→第1ポート351→・・・といった循環的に決定されてもよい。
【0029】
図1(A)には、リング構成の一例を示している。PLC100のポート151から送信された通信フレームは、ケーブル20、中継装置300の第1ポート351、中継装置300の第2ポート352、ケーブル21、デバイス200-1の第1ポート251、デバイス200-1の第2ポート252、ケーブル22、デバイス200-2の第1ポート251、デバイス200-2の第2ポート252、ケーブル23、デバイス200-3の第1ポート251、デバイス200-3の第2ポート252、ケーブル24、デバイス200-4の第1ポート251、デバイス200-4の第2ポート252、ケーブル25、デバイス200-5の第1ポート251、デバイス200-5の第2ポート252、ケーブル26、中継装置300の第3ポート353、ケーブル20の順で一巡して、PLC100のポート151に戻る。この場合、PLC100のポート151から送信された通信フレームのポートの通過数は14となる。
【0030】
一方、図1(B)には、デバイス200-3とデバイス200-4とを接続するケーブル24が何らかの原因で断線した場合を示す。この場合、デバイス200-3の第2ポート252から通信フレームを送信することができないので、デバイス200-3は、第1ポート251から通信フレームを送信する。すなわち、デバイス200-3は、通信フレームを同じ経路で戻すことになる。その後、通信フレームは、ケーブル23、デバイス200-2の第2ポート252、デバイス200-2の第1ポート251、ケーブル22、デバイス200-1の第2ポート252、デバイス200-1の第1ポート251、中継装置300の第2ポート352、中継装置300の第3ポート353、ケーブル26、デバイス200-5の第2ポート252、デバイス200-5の第1ポート251、ケーブル25、デバイス200-4の第2ポート252、ケーブル25、デバイス200-5の第1ポート251、デバイス200-5の第2ポート252、ケーブル26、中継装置300の第3ポート353、ケーブル20の順でPLC100のポート151に戻る。この場合、PLC100のポート151から送信された通信フレームのポートの通過数は22となる。
【0031】
図1(C)には、非リング構成の一例を示している。PLC100のポート151から送信された通信フレームは、ケーブル20、中継装置300の第1ポート351、中継装置300の第2ポート352、ケーブル21、デバイス200-1の第1ポート251、デバイス200-1の第2ポート252、ケーブル22、デバイス200-2の第1ポート251、デバイス200-2の第2ポート252、ケーブル23、デバイス200-3の第1ポート251、デバイス200-3の第2ポート252、ケーブル24、デバイス200-4の第1ポート251、ケーブル24、デバイス200-3の第2ポート252、デバイス200-3の第1ポート251、ケーブル23、デバイス200-2の第2ポート252、デバイス200-2の第1ポート251、ケーブル22、デバイス200-1の第2ポート252、デバイス200-1の第1ポート251、ケーブル21、中継装置300の第2ポート352、中継装置300の第1ポート351、ケーブル20の順で一巡して、PLC100のポート151に戻る。この場合、PLC100のポート151から送信された通信フレームのポートの通過数は22となる。
【0032】
ラウンドトリップ時間は、ポートの通過時間と、ケーブルの通過時間との合計で定まることになるが、ポートの通過時間が支配的な要因になる。そのため、通信フレームが通過するポートの数が増加するほど、ラウンドトリップ時間は増大する。図1(A)に示すリング構成におけるラウンドトリップ時間Tr1に比較して、図1(B)に示す構成におけるラウンドトリップ時間Tr2(Tr2>Tr1)は長くなる。通過ポート数が同一であるので、図1(B)に示す構成におけるラウンドトリップ時間Tr2は、図1(C)に示す構成におけるラウンドトリップ時間Tr3とほぼ同じになる(Tr2≒Tr3)。
【0033】
すなわち、リング構成におけるラウンドトリップ時間を前提にして、システム設計を行うと、リング構成に何らかの障害が発生して非リング構成に変化すると、ラウンドトリップ時間が伸びて、システムが設計通りに動作しない可能性もある。
【0034】
そこで、本実施の形態に従う制御システムは、リング構成が非リング構成に変化した場合であっても、制御性能への影響を抑制できる仕組みを提供する。なお、本実施の形態に従う制御システムが提供する通信制御方法は、リング構成が非リング構成に変化した場合のみに適用されるものではなく、様々なネットワーク構成に対して適用可能である。
【0035】
先に、システム設計について説明する。図2は、本実施の形態に従う制御システム1のPLC100での処理の一例を示す模式図である。
【0036】
図2(A)~図2(C)を参照して、PLC100は、制御演算160と、出力処理162と、入力処理164とからなる一連の処理を周期的に実行する。以下では、一連の処理が実行される周期を「タスク実行周期」とも称す。
【0037】
入力処理164は、デバイス200から測定値などの入力データを収集する処理である。制御演算160は、入力処理164により収集された入力データに基づいて、制御対象を制御するための演算を行って、デバイス200への指令値などの出力データを決定する。出力処理162は、制御演算160により決定された出力データを対象のデバイス200へ送信する処理である。このように、PLC100の演算処理部(図5に示すプロセッサ102)は、フィールドネットワークコントローラ112を介して受信した通信フレームに含まれる入力データに基づく制御演算160、および、制御演算160により決定された出力データを含む通信フレームの送信を、タスク実行周期毎に繰返し実行する。
【0038】
出力処理162および入力処理164は、通信フレームを用いて実現される。そのため、出力処理162の終了から入力処理164の開始までの時間は、PLC100が通信フレームを送信してから当該通信フレームが戻ってくるまでの時間、すなわちラウンドトリップ時間に依存することになる。
【0039】
図2(A)~図2(C)においては、非リング構成を前提とする。図2(A)には、PLC100に接続されるデバイス200の数、および、制御演算160の演算量がいずれも相対的に少ない場合のタイムチャートを示す。図2(B)には、図2(A)に比較して、PLC100に接続されるデバイス200の数が増加した場合のタイムチャートを示す。
【0040】
図2(A)と図2(B)とを比較すると、接続されるデバイス200の数が増加することで、出力処理162の終了から入力処理164の開始までの時間、すなわち通信時間Tt1(図2(A)参照)は、通信時間Tt2(図2(B)参照)まで増加していることが分かる。これは、入出力の応答性能の低下を意味する。但し、制御演算160の演算量が相対的に少ないので、タスク実行周期Tc1は、いずれの場合においても維持されている。
【0041】
図2(C)には、図2(B)に比較して、制御演算160の演算量が増加した場合のタイムチャートを示す。図2(C)においては、演算量の増加に伴って、制御演算160の処理時間が増加するため、タスク実行周期Tc1より長いタスク実行周期Tc2が必要になっている。すなわち、接続されるデバイス200の数、および、制御演算160の演算量が増大することに伴って、タスク実行周期はΔTcだけ伸びることになる。
【0042】
したがって、通信時間を可能な限り短くすることが好ましい。ここで、非リング構成ではなく、リング構成を採用することで、ポートの通過数を低減できるので、ラウンドトリップ時間、すなわち通信時間を短縮できる。
【0043】
図3は、本実施の形態に従う制御システム1のPLC100での処理の別の一例を示す模式図である。図3(A)には、図2(B)と同様に、非リング構成を採用した場合のタイムチャートを示し、図3(B)には、リング構成を採用した場合のタイムチャートを示す。
【0044】
図3(A)と図3(B)とを比較すると、通信時間Tt2が通信時間Tt3(<通信時間Tt2)まで短縮されており、タスク実行周期Tc1を同一に設定すると、その短縮された通信時間の分が余裕時間166となり、制御演算160としてより多くの演算を実行できる。
【0045】
このように、リング構成を採用することで、通信時間を短縮でき、これによって、タスク実行周期の短縮化およびより多くの制御演算の実行といった、制御性能を高めることができる。しかしながら、断線などの障害がネットワークに発生すると、リング構成から非リング構成に変化し、通信時間は長くなる。
【0046】
図4は、本実施の形態に従う制御システム1のPLC100での処理のさらに別の一例を示す模式図である。図4(A)には、図3(B)と同様に、リング構成を採用した場合のタイムチャートを示し、図4(B)には、リング構成が非リング構成に変化した場合のタイムチャートを示す。
【0047】
図4(A)に示すように、リング構成を採用することで、通信時間Tt3を短縮でき、制御演算160の演算量が相対的に多くても、制御演算160と、出力処理162と、入力処理164とからなる一連の処理をタスク実行周期Tc1で周期的に実行できる。
【0048】
一方で、リング構成に断線などの障害が発生すると、非リング構成に変化し、図4(B)に示すように、通信時間Tt4(>通信時間Tt3)は伸びることになる。その結果、制御演算160と、出力処理162と、入力処理164とからなる一連の処理をタスク実行周期Tc1で周期的に実行できなくなる(この状態は、「タスク実行周期オーバ」などとも称される。)。
【0049】
このような通信時間が増加する事態を考慮して、非リング構成における通信時間を前提として、図4(C)に示すように、システム設計を行う場合もある。すなわち、図4(C)に示すタイムチャートでは、ある程度の時間余裕を見て、タスク実行周期Tc3が設定されている。但し、図4(C)に示すシステム設計では、ロバストではあるが、リング構成を採用したことによるラウンドトリップ時間の短縮のメリットは活かせていないことになる。
【0050】
このような背景技術を考慮して、本実施の形態に従う制御システムにおいては、以下のいずれの設計手法をも採用できる新たな仕組みを提供する。
【0051】
(1)図1(C)および図4(C)に示すような非リング構成におけるラウンドトリップ時間を前提としたシステム設計。
【0052】
(2)図1(A)および図4(B)に示すようなリング構成におけるラウンドトリップ時間を前提としたタスク実行周期を設定しつつ、図1(B)および図4(C)に示すような非リング構成に変化した場合でも、制御性能への影響を抑制するためのモードを有効化したシステム設計。
【0053】
以下、このような仕組みを実現するための構成、処理、機能などについて詳述する。
<B.ハードウェア構成例>
次に、本実施の形態に従う制御システム1を構成する各装置のハードウェア構成例について説明する。
【0054】
(b1:制御装置(PLC100))
図5は、本実施の形態に従う制御システム1のPLC100のハードウェア構成例を示す模式図である。図5を参照して、PLC100は、主たるハードウェアコンポーネントとして、プロセッサ102と、メインメモリ104と、ストレージ110と、フィールドネットワークコントローラ112と、ローカルバスコントローラ114とを含む。これらのハードウェアコンポーネントは、内部バス118を介して電気的に接続される。
【0055】
プロセッサ102は、制御演算を実行する演算処理部に相当し、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)などで構成される。具体的には、プロセッサ102は、ストレージ110に格納されたプログラムを読出して、メインメモリ104に展開して実行することで、制御対象に応じた制御演算、および、後述するような各種処理を実現する。
【0056】
メインメモリ104は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などの揮発性記憶装置などで構成される。ストレージ110は、例えば、SSD(Solid State Drive)やHDD(Hard Disk Drive)などの不揮発性記憶装置などで構成される。
【0057】
ストレージ110には、基本的な機能を実現するためのシステムプログラム1102、制御対象に応じて作成されたユーザプログラム1104、および、後述するような処理を決定するためのシステム設定情報1106などが格納される。システムプログラム1102は、PLC100における基本的な機能を実現するため、制御プログラムの少なくとも一部とみなすことができる。
【0058】
フィールドネットワークコントローラ112は、通信部に相当し、通信フレームが一巡するように構成されたネットワークに接続される。より具体的には、フィールドネットワークコントローラ112は、ポート151を有しており、通信フレームの送受信処理を担当する。PLC100のフィールドネットワークコントローラ112は、通信マスタ(マスタ)として機能する。なお、フィールドネットワークコントローラ112は、通信フレームを周期的に送受信するための同期カウンタを有していてもよい。
【0059】
ローカルバスコントローラ114は、内部バス118を介して、1または複数の機能ユニット116と電気的に接続される。機能ユニット116は、制御対象との間で各種の信号をやり取りする機能などを含む。機能ユニット116は、例えば、制御対象からのデジタル信号を受取るDI(Digital Input)機能、制御対象に対してデジタル信号を出力するDO(Digital Output)機能、制御対象からのアナログ信号を受取るAI(Analog Input)機能、制御対象に対してアナログ信号を出力するAO(Analog Output)機能のうち1または複数の機能を有している。さらに、機能ユニット116としては、PID(Proportional Integral Derivative)制御やモーション制御といった特殊機能を実装したコントローラを含み得る。
【0060】
図5には、プロセッサ102がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。あるいは、PLC100の主要部を、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOS(Operating System)を並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
【0061】
さらに、PLC100に表示装置やサポート装置などの機能を統合した構成を採用してもよい。
【0062】
(b2:デバイス200)
図6は、本実施の形態に従う制御システム1のデバイス200のハードウェア構成例を示す模式図である。図6を参照して、デバイス200は、主たるハードウェアコンポーネントとして、制御回路206と、フィールドネットワークコントローラ212と、機能モジュール220とを含む。
【0063】
制御回路206は、デバイス200における処理を主体的に実行する演算処理部である。制御回路206は、典型的には、プロセッサ202と、メインメモリ204と、ストレージ210とを含む。プロセッサ202は、CPUやGPUなどで構成される。メインメモリ204は、DRAMやSRAMなどの揮発性記憶装置などで構成される。ストレージ210は、例えば、SSDなどの不揮発性記憶装置などで構成される。なお、ストレージ210として、ROM(Read Only Memory)を採用してもよい。
【0064】
なお、制御回路206は、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。
【0065】
フィールドネットワークコントローラ212は、第1ポート251および第2ポート252を有しており、通信フレームの送受信処理を担当する。デバイス200のフィールドネットワークコントローラ212は、通信スレーブ(スレーブ)として機能する。なお、フィールドネットワークコントローラ212は、通信フレームを周期的に送受信するための同期カウンタを有していてもよい。
【0066】
機能モジュール220は、図5に示す機能ユニット116と同様に、制御対象との間で各種の信号をやり取りする処理などを担当する。
【0067】
(b3:中継装置300)
図7は、本実施の形態に従う制御システム1の中継装置300のハードウェア構成例を示す模式図である。図7を参照して、中継装置300は、主たるハードウェアコンポーネントとして、制御回路306と、フィールドネットワークインターフェイス312とを含む。
【0068】
制御回路306は、中継装置300における通信フレームの転送処理を主体的に実行する演算処理部である。制御回路306は、典型的には、プロセッサ302と、メインメモリ304と、ストレージ310とを含む。プロセッサ302は、CPUやGPUなどで構成される。メインメモリ304は、DRAMやSRAMなどの揮発性記憶装置などで構成される。ストレージ310は、例えば、SSDなどの不揮発性記憶装置などで構成される。なお、ストレージ310として、ROMを採用してもよい。
【0069】
なお、制御回路306は、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。
【0070】
フィールドネットワークインターフェイス312は、第1ポート351、第2ポート352および第3ポート353を有しており、通信フレームの図示しない受信回路および送信回路を含む。
【0071】
<C.通信フレームの送受信処理>
上述したように、リング構成を採用した場合には、断線などの障害により非リング構成に変化し、その結果、ラウンドトリップ時間が伸びる場合がある。また、ネットワークを伝送する通信フレームが破損や消滅することもある。そのため、マスタであるPLC100は、ある通信フレームを送信してから、所定時間内に当該通信フレームが戻ってこなければ、通信フレームが途中で破損や消滅した(以下、「フレームロスト」とも称す。)と判断する。
【0072】
したがって、非リング構成を採用している場合には、マスタから送信された通信フレームの挙動としては、(1)通信フレームが所定時間内にマスタに戻る、(2)通信フレームがロストしてマスタへ戻らない、の2種類が想定される。
【0073】
一方、リング構成を採用している場合には、マスタから送信された通信フレームの挙動としては、(1)通信フレームが所定時間内にマスタに戻る、(2)非リング構成に変化して、通信フレームが所定時間を超えてマスタに戻る、(3)通信フレームがロストしてマスタへ戻らない、の3種類が想定される。
【0074】
図8は、本実施の形態に従う制御システム1における通信時間に関する処理を説明するための図である。図8(A)には非リング構成の例を示し、図8(B)にはリング構成の例を示す。
【0075】
図8(A)を参照して、非リング構成を前提としたシステム設計を採用した場合には、リング構成が正常であるか否かにかかわらず、出力処理162の終了から入力処理164の開始までの時間は相対的に長く設定されている。
【0076】
図8(B)を参照して、正常なリング構成においては、出力処理162の終了直後にPLC100から送信された通信フレームは、入力処理164の開始までにPLC100に戻る(図8(B)の「正常」)。一方、リング構成に何らかの障害が発生して非リング構成に変化すると、ラウンドトリップ時間が増大し、通信フレームは、入力処理164の開始までにPLC100に戻ることができない(図8(B)の「遅延」)。
【0077】
また、通信フレームが途中で破損や消滅すると、通信フレームは、PLC100に戻ってこないことになる(図8(B)の「フレームロスト」)。なお、図8(B)の「遅延」より遅れて通信フレームが戻ってきた場合も、フレームロストと同様の取り扱いとしてもよい。
【0078】
このように、図8(A)に示す例では、図8(B)の「遅延」といった概念は存在せず、出力処理162の終了直後にPLC100から送信された通信フレームが入力処理164の開始までにPLC100に戻ってくる場合(図8(A)の「正常」)と、それ以外の場合(図8(A)の「フレームロスト」)とが存在することになる。
【0079】
したがって、図8(A)の非リング構成においては、出力処理162の終了タイミングT0を基準として、しきい時間Th1が設定されることになる。一方、図8(B)のリング構成においては、出力処理162の終了タイミングT0を基準として、しきい時間Th2およびしきい時間Th3が設定される。なお、しきい時間Th1およびしきい時間Th3は、通信タイムアウト時間に相当し、しきい時間Th2は、リング構成に何らかの障害が発生したことを判断するためのしきい時間に相当する。
【0080】
ここで、しきい時間Th1およびしきい時間Th3は、非リング構造のラウンドトリップ時間に基づいて決定され、しきい時間Th2は、リング構成のラウンドトリップ時間に基づいて決定される。なお、しきい時間Th1およびしきい時間Th3は、同じ値であってもよいし、異なる値であってもよい。
【0081】
本実施の形態に従う制御システム1においては、正常、遅延、フレームロストの3種類でそれぞれ処理を異ならせる。
【0082】
図9は、本実施の形態に従う制御システム1のPLC100における入力処理164の例を説明するための図である。図9を参照して、PLC100に戻ってきた通信フレームに含まれるデバイス200などからのデータ(以下、入力データ)は、現周期入力データ170および予備入力データ172という、互いに独立した形でPLC100のメインメモリ104に保持される。
【0083】
現周期入力データ170は、現在のタスク実行周期で受信された通信フレームに含まれる入力データである。予備入力データ172は、現在のタスク実行周期以外で、最も新しく適切に受信された通信フレームに含まれる入力データである。
【0084】
図8(A)および図8(B)に示す「正常」において、制御演算160では、現周期入力データ170が入力データとして用いられる。一方、図8(B)に示す「遅延」、ならびに、図8(A)および図8(B)に示す「フレームロスト」において、制御演算160では、予備入力データ172が入力データとして用いられる。すなわち、「遅延」および「フレームロスト」では、現在のタスク実行周期の通信フレームを利用できないので、それ以前に受信されていた通信フレームを利用して、制御演算160が実行される。
【0085】
「正常」であれば、現在のタスク実行周期で受信された通信フレームに含まれる入力データは、現周期入力データ170として保持されるとともに、予備入力データ172としても保持される。すなわち、「正常」であれば、現周期入力データ170および予備入力データ172は、同一の入力データとなる。
【0086】
一方、「フレームロスト」であれば、現在のタスク実行周期で通信フレームを受信できないので現周期入力データ170および予備入力データ172はいずれも更新されず、そのままとなる。
【0087】
これに対して、「遅延」であれば、現在のタスク実行周期で通信フレームは受信できないので、現周期入力データ170は更新されないが、通信フレーム自体は受信しているので、予備入力データ172として保持することはできる。そのため、「遅延」であれば、受信された通信フレームに含まれる入力データは、制御演算160の実行後に、予備入力データ172として保持される。
【0088】
以上説明したように、リング構成を採用できる制御システムにおいては、システム設計の1つとして、リング構成が非リング構成に変化してラウンドトリップ時間が伸びた場合(最悪値)を想定した設計が可能である(図1(C)および図4(C)など参照)。この場合には、図8(B)に示す「遅延」を考慮することなく、「正常」と「フレームロスト」とを考慮すればよい。このようなシステム設計においては、フレームロストが発生しない限り、各タスク実行周期で受信された通信フレームに含まれる入力データを用いて入力処理164を実行できる。そのため、入力データが取得されたタイミングと、入力処理164の実行タイミングとの間に時間的なズレは発生しない。このような利点に着目して、この場合のPLC100の動作モードを「データ同期性優先モード」と称す。
【0089】
データ同期性優先モードにおいては、PLC100は、通信フレームを送信してからしきい時間Th1(第1のしきい時間)までに当該送信した通信フレームを受信しなければ、当該送信より前に受信した通信フレームに含まれていた入力データである予備入力データ172に基づいて制御演算160を実行する。予備入力データ172に関して、PLC100は、しきい時間Th1までに送信した通信フレームを受信すれば、当該受信した通信フレームに含まれる入力データで予備入力データ172を更新する。
【0090】
一方、リング構成で得られるラウンドトリップ時間を前提としてシステム設計することもできる。この場合には、図8(B)に示す「遅延」を考慮する必要がある。リング構成が非リング構成に変化した場合には、入力処理164に用いられる入力データは、1つ前のタスク実行周期で受信された通信フレームに含まれるものとなる。すなわち、リング構成が非リング構成に変化しても、入力データが取得されたタイミングと入力処理164の実行タイミングとの間の時間的なズレは、タスク実行周期の1周期分だけに抑制できる。このとき、タスク実行周期自体を短縮できるので、入出力の応答性能や制御演算160の演算量の観点からは、制御性能を向上できる。このような利点に着目して、この場合のPLC100の動作モードを「制御性能優先モード」と称す。
【0091】
制御性能優先モードにおいては、PLC100は、通信フレームを送信してからしきい時間Th2(第2のしきい時間)までに当該送信した通信フレームを受信しなければ、当該送信より前に受信した通信フレームに含まれていた入力データである予備入力データ172に基づいて制御演算160を実行する。予備入力データ172に関して、PLC100は、しきい時間Th2より長いしきい時間Th3(第3のしきい時間)までに送信した通信フレームを受信すれば、当該受信した通信フレームに含まれる入力データで予備入力データ172を更新する。
【0092】
上述したように、制御性能優先モードにおける実行周期は、データ同期性優先モードにおける実行周期より短く設定することもできる。なお、PLC100では、ネットワークがリング構成を含む場合に、制御性能優先モードを有効化するようにしてもよい。
【0093】
<D.処理手順>
次に、上述したデータ同期性優先モードおよび制御性能優先モードのそれぞれについてのPLC100における処理手順について説明する。PLC100は、データ同期性優先モードおよび制御性能優先モードのうち選択された動作モードに従って、後述するような入力処理を含む処理を周期的に実行する。
【0094】
(d1:データ同期性優先モード)
図10は、本実施の形態に従う制御システム1のPLC100によるデータ同期性優先モードでの処理手順を示すフローチャートである。図10に示す各ステップは、典型的には、PLC100のプロセッサ102がシステムプログラム1102およびユーザプログラム1104(図5参照)を実行することで実現される。
【0095】
図10を参照して、PLC100は、タスク実行周期が到来したか否かを判断する(ステップS100)。タスク実行周期が到来すれば(ステップS100においてYES)、PLC100は、前回の制御演算によって算出された出力データを含む通信フレームを生成および送信する(ステップS102)。すなわち、PLC100は、制御演算により決定された出力データを含む通信フレームを送信する。
【0096】
その後、PLC100は、ネットワークを一巡した通信フレームを受信したか否かを判断する(ステップS104)。
【0097】
ネットワークを一巡した通信フレームを受信すれば(ステップS104においてYES)、PLC100は、受信した通信フレームに含まれる入力データを現周期入力データ170として格納し(ステップS106)、現周期入力データ170を用いて制御演算を実行する(ステップS108)。併せて、PLC100は、現周期入力データ170で予備入力データ172を更新する(ステップS110)。このように、PLC100は、しきい時間Th1(第1のしきい時間)までに送信した通信フレームを受信すれば、当該受信した通信フレームに含まれる入力データで予備入力データ172を更新する。そして、ステップS100以下の処理が繰返される。
【0098】
一方、ネットワークを一巡した通信フレームを受信していなければ(ステップS104においてNO)、PLC100は、通信フレームを送信してから、しきい時間Th1が経過したか否かを判断する(ステップS112)。しきい時間Th1が経過していなければ(ステップS112においてNO)、ステップS104以下の処理が繰返される。
【0099】
しきい時間Th1が経過していれば(ステップS112においてYES)、PLC100は、予備入力データ172を制御演算に用いる入力データとして選択し(ステップS114)、予備入力データ172を用いて制御演算を実行する(ステップS116)。このように、PLC100は、通信フレームを送信してからしきい時間Th1(第1のしきい時間)までに当該送信した通信フレームを受信しなければ、当該送信より前に受信した通信フレームに含まれていた入力データである予備入力データを制御演算に用いる。このとき、予備入力データ172の更新は行われない。そして、ステップS100以下の処理が繰返される。
【0100】
(d2:制御性能優先モード)
図11は、本実施の形態に従う制御システム1のPLC100による制御性能優先モードでの処理手順を示すフローチャートである。図11に示す各ステップは、典型的には、PLC100のプロセッサ102がシステムプログラム1102およびユーザプログラム1104(図5参照)を実行することで実現される。
【0101】
図11を参照して、PLC100は、タスク実行周期が到来したか否かを判断する(ステップS200)。タスク実行周期が到来すれば(ステップS200においてYES)、PLC100は、前回の制御演算によって算出された出力データを含む通信フレームを生成および送信する(ステップS202)。すなわち、PLC100は、制御演算により決定された出力データを含む通信フレームを送信する。
【0102】
その後、PLC100は、ネットワークを一巡した通信フレームを受信したか否かを判断する(ステップS204)。
【0103】
ネットワークを一巡した通信フレームを受信すれば(ステップS204においてYES)、PLC100は、受信した通信フレームに含まれる入力データを現周期入力データ170として格納し(ステップS206)、現周期入力データ170を用いて制御演算を実行する(ステップS208)。併せて、PLC100は、現周期入力データ170で予備入力データ172を更新する(ステップS210)。そして、ステップS200以下の処理が繰返される。
【0104】
一方、ネットワークを一巡した通信フレームを受信していなければ(ステップS204においてNO)、PLC100は、通信フレームを送信してから、しきい時間Th2が経過したか否かを判断する(ステップS212)。しきい時間Th2が経過していなければ(ステップS212においてNO)、ステップS204以下の処理が繰返される。
【0105】
しきい時間Th2が経過していれば(ステップS212においてYES)、PLC100は、予備入力データ172を制御演算に用いる入力データとして選択し(ステップS214)、予備入力データ172を用いて制御演算を実行する(ステップS216)。このように、PLC100は、通信フレームを送信してからしきい時間Th2(第2のしきい時間)までに当該送信した通信フレームを受信しなければ、当該送信より前に受信した通信フレームに含まれていた入力データである予備入力データを制御演算に用いる。
【0106】
さらに、PLC100は、しきい時間Th3が経過するまでに、ネットワークを一巡した通信フレームを受信したか否かを判断する(ステップS218)。しきい時間Th3が経過するまでに、ネットワークを一巡した通信フレームを受信していれば(ステップS218においてYES)、PLC100は、受信した通信フレームに含まれる入力データで予備入力データ172を更新する(ステップS220)。このように、PLC100は、しきい時間Th3(第3のしきい時間)までに送信した通信フレームを受信すれば、当該受信した通信フレームに含まれる入力データで予備入力データ172を更新する。そして、ステップS200以下の処理が繰返される。
【0107】
一方、しきい時間Th3が経過するまでに、ネットワークを一巡した通信フレームを受信していなければ(ステップS218においてNO)、予備入力データ172の更新は行われず、ステップS100以下の処理が繰返される。
【0108】
<E.動作例>
次に、本実施の形態に従う制御システム1における動作例について説明する。
【0109】
図12は、本実施の形態に従う制御システム1の動作例を示すタイムチャートである。 図12(A)には、リング構成における動作例を示す。図12(A)に示す動作例においては、出力処理162の終了から入力処理164の開始までの間に、通信フレーム30が一巡するので、通信フレーム30に含まれる入力データが現周期入力データ170として格納され、同じタスク実行周期の制御演算160において用いられる。
【0110】
一方、図12(B)には、リング構成が非リング構成に変化している場合の動作例を示す。図12(B)に示す動作例においては、出力処理162の終了から入力処理164の開始までの間に、通信フレーム30が一巡できないので、1つ前のタスク実行周期において更新された予備入力データ172が制御演算160において用いられる。なお、同じタスク実行周期に受信された通信フレーム30に含まれる入力データは、予備入力データ172として格納され、次のタスク実行周期の制御演算160において用いられる。
【0111】
図12(C)には、非リング構成からリング構成に復帰した場合の動作例を示す。非リング構成からリング構成に復帰すると、出力処理162の終了から入力処理164の開始までの間に、通信フレーム30は一巡できるようになる。それに伴って、1つ前のタスク実行周期において更新された予備入力データ172ではなく、同じタスク実行周期において受信された通信フレーム30に含まれる入力データ(現周期入力データ170)が制御演算160において用いられるようになる。
【0112】
このように、本実施の形態に従う制御システム1においては、制御演算の実行中にリング構成が非リング構成に変化しても、あるいは、非リング構成がリング構成に変化したとしても、制御性能への影響を最小限にして、制御演算の実行を継続できる。
【0113】
<F.システム設計およびユーザ支援>
次に、本実施の形態に従う制御システム1におけるシステム設計を行うための構成および処理などについて説明する。
【0114】
(f1:サポート装置)
PLC100に格納されるユーザプログラム1104およびシステム設定情報1106は、PLC100に接続可能なサポート装置400を用いて作成および設定可能である。
【0115】
図13は、本実施の形態に従う制御システム1のサポート装置400のハードウェア構成例を示す模式図である。図13を参照して、サポート装置400は、一例として、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコン)を用いて実現される。
【0116】
サポート装置400は、制御システム1のPLC100およびデバイス200に対する設定、ならびに、PLC100で実行されるユーザプログラム1104の作成が統合的に可能な統合開発環境を提供する。統合開発環境においては、デバッグやシミュレーションなどが可能であってもよい。
【0117】
図13を参照して、サポート装置400は、主たるハードウェアコンポーネントとして、プロセッサ402と、メインメモリ404と、入力部406と、表示部408と、ストレージ410と、通信コントローラ412と、光学ドライブ416と、USBコントローラ424とを含む。これらのハードウェアコンポーネントは、内部バス228を介して電気的に接続される。
【0118】
プロセッサ402は、CPUやGPUなどで構成され、ストレージ410に格納されたプログラムを読出して、メインメモリ404に展開して実行することで、サポート装置400としての機能を実現する。
【0119】
メインメモリ404は、DRAMやSRAMなどの揮発性記憶装置などで構成される。ストレージ410は、例えば、HDDやSSDなどの不揮発性記憶装置などで構成される。
【0120】
ストレージ410には、基本的な機能を実現するためのOS4102、および、統合開発環境を実現するための開発プログラム4104などが格納される。開発プログラム4104は、プロセッサ402により実行されることで、統合開発環境を提供する。
【0121】
入力部406は、キーボードやマウスなどで構成され、ユーザ操作を受け付ける。
表示部408は、ディスプレイや各種インジケータなどで構成され、プロセッサ402からの処理結果などを出力する。
【0122】
通信コントローラ412は、任意の上位ネットワークを介して、任意の情報処理装置との間でデータをやり取りする。
【0123】
光学ドライブ416は、コンピュータ読取可能なプログラムを非一過的に格納する記憶媒体418(例えば、DVDなどの光学記憶媒体)から任意のデータを読み取り、および、任意のデータを記憶媒体418に書き込むことができる。
【0124】
USBコントローラ424は、USB接続を介して、任意の情報処理装置との間のデータをやり取りする。
【0125】
コンピュータ読取可能なプログラムを非一過的に格納する記憶媒体418から、その中に格納されたプログラムが読み取られてストレージ410などにインストールされてもよい。あるいは、サポート装置400で実行される各種プログラムは、ネットワーク上のサーバ装置などからダウンロードする形でインストールするようにしてもよい。また、本実施の形態に係るサポート装置400が提供する機能は、OS4102が提供するモジュールの一部を利用する形で実現される場合もある。
【0126】
なお、制御システム1の稼動中において、サポート装置400は、PLC100から取り外されていてもよい。
【0127】
(f2:しきい時間)
サポート装置400は、上述したしきい時間Th1,Th2,Th3をそれぞれ決定する機能を有していてもよい。
【0128】
しきい時間Th1(第1のしきい時間)は、フレームロストを判定するための時間であり、対象のネットワークにおけるラウンドトリップ時間に基づいて決定される。
【0129】
しきい時間Th2(第2のしきい時間)は、リング構成に何らの障害も発生していない状態のラウンドトリップ時間に基づいて決定される。すなわち、しきい時間Th1は、リング構成において、PLC100のフィールドネットワークコントローラ112(通信部)から送信された通信フレームが一巡してフィールドネットワークコントローラ112(通信部)に戻るまでの時間に基づいて決定される。
【0130】
しきい時間Th3(第3のしきい時間)は、リング構成に何らの障害も発生していない状態のラウンドトリップ時間に基づいて決定される。すなわち、しきい時間Th3は、リング構成に含まれるいずれかのケーブルが通信フレームを伝送できない状態で、フィールドネットワークコントローラ112(通信部)から送信された通信フレームが一巡してフィールドネットワークコントローラ112(通信部)に戻るまでの時間に基づいて決定される。
【0131】
例えば、サポート装置400は、制御システム1のネットワークにおける通信フレームが一巡するのに要する時間を測定し、測定された時間に基づいて、しきい時間Th2および/またはしきい時間Th3を決定してもよい。
【0132】
あるいは、サポート装置400は、シミュレーションによって、しきい時間Th2および/またはしきい時間Th3を決定してもよい。例えば、サポート装置400は、ネットワークに接続されるデバイス200の数、および、ネットワークの接続形態(ネットワークトポロジー)の情報に基づいて、予め定められた算出式に従って、しきい時間Th1および/またはしきい時間Th2を決定してもよい。
【0133】
(f3:ユーザインターフェイス画面)
ユーザは、サポート装置400が提供する統合開発環境を利用して、ユーザプログラム1104を作成するとともに、制御システム1に係る各種設定も行う。このとき、サポート装置400は、ユーザ操作に応じて、ユーザプログラム1104の実行時間などをシミュレーションにより推定することができる。その上で、サポート装置400は、シミュレーション結果に基づいて、動作モードの変更などをユーザへアドバイスすることもできる。
【0134】
図14は、本実施の形態に従う制御システム1のサポート装置400が提供するユーザインターフェイス画面450の一例を示す模式図である。図14を参照して、ユーザインターフェイス画面450は、現在の設定において算出されたユーザプログラム1104の実行時間を示すグラフ452と、ネットワーク構成を変更した上で、制御性能優先モードを採用した場合におけるユーザプログラム1104の実行時間を示すグラフ454とを含む。なお、グラフ452に示される実行時間としては、PLC100で測定された計測値を採用してもよい。
【0135】
ユーザは、グラフ452とグラフ454とを比較することで、ユーザプログラム1104の実行時間(タスク実行周期)をどの程度短縮できるのかを事前に把握できる。
【0136】
図14に示すユーザインターフェイス画面450の例においては、シミュレーション結果に基づいて、「リング構成に変更して制御性能優先モードを選択することで、タスク実行周期を2msから1msに短縮できます」といったメッセージ460が表示されている。
【0137】
ユーザは、メッセージ460を参照して、制御システム1のネットワーク構成を非リング構成からリング構成に変更した上で、チェックボックス458をチェックすることで、制御性能優先モードが有効化される。制御性能優先モードが有効化された場合には、ネットワーク内で何らかの障害が発生すると、データの同期性が失われる可能性がある旨をユーザへ通知するようにしてもよい。
【0138】
なお、図14に示す例では、チェックボックス456がチェックされており、データ同期性優先モードが選択されていることが分かる。
【0139】
(f4:動作モードの確認・取得)
PLC100の動作モードおよびユーザプログラム1104の実行時間などは、任意の方法で確認および取得できるようにしてもよい。
【0140】
典型的には、サポート装置400をPLC100に接続し、サポート装置400上で、PLC100の動作モード(データ同期性優先モードおよび制御性能優先モードのいずれkであるか)、ならびに、ユーザプログラム1104の実行時間などをモニターできるようにしてもよい。
【0141】
また、制御システム1にHMI(Human Machine Interface)を設け、PLC100の動作モード、およびに、ユーザプログラム1104の実行時間などを、HMI上に表示するようにしてもよい。
【0142】
さらに、PLC100が保持するシステム変数あるいは特殊イベントなどを利用することで、ユーザプログラム1104に含まれる専用命令によって、PLC100の動作モード、およびに、ユーザプログラム1104の実行時間などを取得できるようにしてもよい。このように、PLC100で実行されるユーザプログラム1104に含まれる命令により現在の動作モードを参照できるように構成されてもよい。例えば、PLC100の動作モードに応じて、入力処理を異ならせるようなユーザプログラム1104を作成することもできる。
【0143】
<G.リング構成のバリエーション>
上述の説明では、中継装置300を用いたリング構成の例について説明したが、これに限らず他の構成を採用してもよい。
【0144】
図15は、本実施の形態に従う制御システム1で採用可能なリング構成の一例を示す図である。
【0145】
図15(A)には、3つ以上のポートを有する中継装置300を用いたリング構成の例を示す。中継装置300は、ポートを3つ以上有することで、ジャンクション冗長性(Junction Redundancy)を提供する。図15(A)に示すリング構成においては、PLC100のフィールドネットワークコントローラ112(通信部)および複数のデバイス200(スレーブ)に接続された中継装置300を含む。
【0146】
図15(B)には、2つ以上のポート151,152を有するPLC100を用いたリング構成の例を示す。PLC100は、ポートを2つ以上有することで、ケーブル冗長性(Cable Redundancy)を提供する。図15(B)に示すリング構成においては、PLC100のフィールドネットワークコントローラ112(通信部)は、それぞれ異なるデバイス200(スレーブ)に接続された複数のポートを有している。
【0147】
また、図15(A)に示す中継装置300、および、図15(B)に示すPLC100を任意に組み合わせてリング構成を構成してもよい。
【0148】
本実施の形態に従う通信制御方法は、上述した構成例に限らず任意のリング構成に対して適用可能である。また、通信プロトコルとしても、EtherCATに限らず、定時性を有する様々な産業用ネットワーク用の通信プロトコルに適用可能である。
【0149】
<H.付記>
上述したような本実施の形態は、以下のような技術思想を含む。
[構成1]
通信フレーム(30)が一巡するように構成されたネットワークに接続される通信部(112)と、
前記通信部を介して受信した通信フレームに含まれる入力データに基づく制御演算(160)、および、当該制御演算により決定された出力データを含む通信フレームの送信を、実行周期毎に繰返し実行する演算処理部(102)とを備え、
前記演算処理部は、
通信フレームを送信してから第1のしきい時間(Th1)までに当該送信した通信フレームを受信しなければ、当該送信より前に受信した通信フレームに含まれていた入力データである予備入力データ(172)に基づいて制御演算を実行する第1の動作モードと、
通信フレームを送信してから前記第1のしきい時間より短い第2のしきい時間(Th2)までに当該送信した通信フレームを受信しなければ、当該送信より前に受信した通信フレームに含まれていた入力データである予備入力データ(172)に基づいて制御演算を実行する第2の動作モードとを選択可能に構成されており、
前記演算処理部は、
前記第1の動作モードにおいて、前記第1のしきい時間までに当該送信した通信フレームを受信すれば、当該受信した通信フレームに含まれる入力データで前記予備入力データを更新し、
前記第2の動作モードにおいて、前記第2のしきい時間より長い第3のしきい時間(Th3)までに当該送信した通信フレームを受信すれば、当該受信した通信フレームに含まれる入力データで前記予備入力データを更新する、制御装置(100)。
[構成2]
前記ネットワークは、通信スレーブに接続されたケーブル(21~26)の各々において、通信フレームが一方向にのみ伝送されるように構成されたリング構成を含む、構成1に記載の制御装置。
[構成3]
前記演算処理部は、前記ネットワークが前記リング構成を含む場合に、前記第2の動作モードを有効化可能になっている、構成2に記載の制御装置。
[構成4]
前記第2のしきい時間は、前記リング構成において、前記通信部から送信された通信フレームが一巡して前記通信部に戻るまでの時間に基づいて決定され、
前記第3のしきい時間は、前記リング構成に含まれるいずれかのケーブルが通信フレームを伝送できない状態で、前記通信部から送信された通信フレームが一巡して前記通信部に戻るまでの時間に基づいて決定される、構成2または3に記載の制御装置。
[構成5]
前記リング構成は、前記通信部および複数の通信スレーブ(200)に接続された中継装置(300)を含む、構成2~4のいずれか1項に記載の制御装置。
[構成6]
前記通信部は、それぞれ異なる通信スレーブに接続された複数のポート(151,152)を有している、構成2~4のいずれか1項に記載の制御装置。
[構成7]
前記第2の動作モードにおける実行周期(Tc1)は、前記第1の動作モードにおける実行周期(Tc2)より短く設定される、構成1に記載の制御装置。
[構成8]
前記演算処理部で実行されるユーザプログラム(1104)に含まれる命令により前記演算処理部の動作モードを参照できるように構成される、構成1~7のいずれか1項に記載の制御装置。
[構成9]
通信フレームが一巡するように構成されたネットワークに接続される通信部(112)を含む制御装置(100)で実行される通信制御方法であって、
第1の動作モードおよび第2の動作モードのうち選択された動作モードに従って、入力処理を実行するステップ(S104,S106,S110,S114;S204,S206,S210,S212,S214,S218,S220)と、
前記通信部を介して受信した通信フレームに含まれる入力データに基づく制御演算を実行するステップ(S108,S116;S208,S216)と、
前記制御演算により決定された出力データを含む通信フレームを送信するステップ(S102,S202)とを備え、
前記入力処理を実行するステップは、
前記第1の動作モードにおいて、
通信フレームを送信してから第1のしきい時間までに当該送信した通信フレームを受信しなければ、当該送信より前に受信した通信フレームに含まれていた入力データである予備入力データを前記制御演算に用いるステップ(S114)と、
前記第1のしきい時間までに当該送信した通信フレームを受信すれば、当該受信した通信フレームに含まれる入力データで前記予備入力データを更新するステップ(S110)とを含み、
前記第2の動作モードにおいて、
通信フレームを送信してから前記第1のしきい時間より短い第2のしきい時間までに当該送信した通信フレームを受信しなければ、当該送信より前に受信した通信フレームに含まれていた入力データである予備入力データを前記制御演算に用いるステップ(S214)と、
前記第2のしきい時間より長い第3のしきい時間までに当該送信した通信フレームを受信すれば、当該受信した通信フレームに含まれる入力データで前記予備入力データを更新するステップ(S220)とを含む、通信制御方法。
[構成10]
通信フレームが一巡するように構成されたネットワークに接続される通信部(112)を含むコンピュータ(100)で実行される制御プログラム(1102)であって、前記制御プログラムは前記コンピュータに、
第1の動作モードおよび第2の動作モードのうち選択された動作モードに従って、入力処理を実行するステップ(S104,S106,S110,S114;S204,S206,S210,S212,S214,S218,S220)と、
前記通信部を介して受信した通信フレームに含まれる入力データに基づく制御演算を実行するステップ(S108,S116;S208,S216)と、
前記制御演算により決定された出力データを含む通信フレームを送信するステップ(S102,S202)とを実行させ、
前記入力処理を実行するステップは、
前記第1の動作モードにおいて、
通信フレームを送信してから第1のしきい時間までに当該送信した通信フレームを受信しなければ、当該送信より前に受信した通信フレームに含まれていた入力データである予備入力データを前記制御演算に用いるステップ(S114)と、
前記第1のしきい時間までに当該送信した通信フレームを受信すれば、当該受信した通信フレームに含まれる入力データで前記予備入力データを更新するステップ(S110)とを含み、
前記第2の動作モードにおいて、
通信フレームを送信してから前記第1のしきい時間より短い第2のしきい時間までに当該送信した通信フレームを受信しなければ、当該送信より前に受信した通信フレームに含まれていた入力データである予備入力データを前記制御演算に用いるステップ(S214)と、
前記第2のしきい時間より長い第3のしきい時間までに当該送信した通信フレームを受信すれば、当該受信した通信フレームに含まれる入力データで前記予備入力データを更新するステップ(S220)とを含む、制御プログラム。
【0150】
<I.利点>
本実施の形態に係る制御システムは、リング構成によって得られるラウンドトリップ時間の短縮化と、リング構成に何らかの障害が発生した場合の制御の安定化とを両立できる。
【0151】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0152】
1 制御システム、20,21,22,23,24,25,26 ケーブル、30 通信フレーム、100 PLC、102,202,302,402 プロセッサ、104,204,304,404 メインメモリ、110,210,310,410 ストレージ、112,212 フィールドネットワークコントローラ、114 ローカルバスコントローラ、116 機能ユニット、118,228 内部バス、151,152 ポート、160 制御演算、162 出力処理、164 入力処理、166 余裕時間、170 現周期入力データ、172 予備入力データ、200 デバイス、206,306 制御回路、220 機能モジュール、251,351 第1ポート、252,352 第2ポート、300 中継装置、312 フィールドネットワークインターフェイス、353 第3ポート、400 サポート装置、406 入力部、408 表示部、412 通信コントローラ、416 光学ドライブ、418 記憶媒体、424 USBコントローラ、450 ユーザインターフェイス画面、452,454 グラフ、456,458 チェックボックス、460 メッセージ、1102 システムプログラム、1104 ユーザプログラム、1106 システム設定情報、4102 OS、4104 開発プログラム、T0 終了タイミング、Tc1,Tc2,Tc3 タスク実行周期、Th1,Th2,Th3 しきい時間、Tr1,Tr2,Tr3 ラウンドトリップ時間、Tt1,Tt2,Tt3,Tt4 通信時間。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15