(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024163804
(43)【公開日】2024-11-22
(54)【発明の名称】エッジモジュール、制御システム、遠隔制御システム、コントローラおよび通信方法
(51)【国際特許分類】
H04Q 9/00 20060101AFI20241115BHJP
【FI】
H04Q9/00 311L
【審査請求】未請求
【請求項の数】14
【出願形態】OL
(21)【出願番号】P 2023079703
(22)【出願日】2023-05-12
(71)【出願人】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(71)【出願人】
【識別番号】598076591
【氏名又は名称】東芝インフラシステムズ株式会社
(74)【代理人】
【識別番号】100120031
【弁理士】
【氏名又は名称】宮嶋 学
(74)【代理人】
【識別番号】100107582
【弁理士】
【氏名又は名称】関根 毅
(74)【代理人】
【識別番号】100118843
【弁理士】
【氏名又は名称】赤岡 明
(74)【代理人】
【識別番号】100118876
【弁理士】
【氏名又は名称】鈴木 順生
(72)【発明者】
【氏名】萩原 剛
【テーマコード(参考)】
5K048
【Fターム(参考)】
5K048BA23
5K048EB02
5K048EB10
5K048EB11
5K048FA08
(57)【要約】
【課題】定周期処理を可能とするエッジモジュール、制御システム、遠隔制御システム、コントローラおよび通信方法を提供する。
【解決手段】本実施形態に係るエッジモジュールは、通し番号を含む第1データを生成するデータ生成部と、前記第1データに第1時刻を付与し、前記第1データをコントローラに送信する送信部と、前記第1データに基いて前記コントローラによって生成された、前記通し番号および前記第1時刻を含む第2データを受信し、前記第2データが受信された時刻である第2時刻を取得する受信部と、前記第2データに含まれる前記通し番号、および、前記第2データに含まれる前記第1時刻と前記第2時刻との間の差分の少なくとも一方に基いて、前記コントローラとの間の通信が正常に行われたか判定する異常検出部と、を備える。
【選択図】
図2
【特許請求の範囲】
【請求項1】
通し番号を含む第1データを生成するデータ生成部と、
前記第1データに第1時刻を付与し、前記第1データをコントローラに送信する送信部と、
前記第1データに基いて前記コントローラによって生成された、前記通し番号および前記第1時刻を含む第2データを受信し、前記第2データが受信された時刻である第2時刻を取得する受信部と、
前記第2データに含まれる前記通し番号、および、前記第2データに含まれる前記第1時刻と前記第2時刻との間の差分の少なくとも一方に基いて、前記コントローラとの間の通信が正常に行われたか判定する異常検出部と、
を備えるエッジモジュール。
【請求項2】
前記異常検出部は、前記第2データに含まれる前記通し番号に欠落が生じた場合、および、前記第1時刻と前記第2時刻との間の差分が所定の遅延時間以上の場合の少なくとも一方を満たす場合、前記コントローラとの間の通信が正常に行われていないと判定する
請求項1に記載のエッジモジュール。
【請求項3】
前記異常検出部は、前記コントローラとの間の通信が正常に行われていないことを所定の回数判定すると、非常事態と判定する
請求項1に記載のエッジモジュール。
【請求項4】
前記送信部は、インターネットを介して前記コントローラに前記第1データを送信し、
前記受信部は、インターネットを介して前記コントローラから前記第2データを受信する
請求項1に記載のエッジモジュール。
【請求項5】
前記コントローラは、クラウド上に設けられたバーチャルマシンである
請求項4に記載のエッジモジュール。
【請求項6】
請求項1に記載のエッジモジュールと、
制御対象となる対象機器と、
前記対象機器の制御に関する値を計測する計測機器と、
を備え、
前記第1データは、前記計測機器によって計測されたデータであり、
前記第2データは、前記対象機器を制御するためのデータである
制御システム。
【請求項7】
請求項6に記載の制御システムと、
前記コントローラと、
を備え、
前記送信部は、インターネットを介して前記コントローラに前記第1データを送信し、
前記受信部は、インターネットを介して前記コントローラから前記第2データを受信し、
前記コントローラは、クラウド上に設けられたバーチャルマシンであり、
前記コントローラは、
前記第1データを受信する受信機能部と、
前記第1データに基いて前記第2データを生成するデータ生成機能部と、
前記第2データを前記エッジモジュールに送信する送信機能部と、を備える
遠隔制御システム。
【請求項8】
前記データ生成機能部による前記第2データの生成と、前記送信機能部による前記第2データの前記エッジモジュールへの送信が、異なるスキャン周期内で実行される
請求項7に記載の遠隔制御システム。
【請求項9】
前記エッジモジュールは、前記異常検出部が前記コントローラとの間の通信が正常に行われていないことを判定すると、異常通知を生成する異常通知生成部をさらに備え、
前記送信部は、前記異常通知を前記コントローラに送信し、
前記受信機能部は、前記異常通知を受信し、
前記コントローラは、前記異常通知の受信回数が所定の回数に達した場合、非常事態と判定する状態判定機能部をさらに備える
請求項7に記載の遠隔制御システム。
【請求項10】
通し番号を含む第2データを生成するデータ生成機能部と、
前第2データに第3時刻を付与し、前記第2データをエッジモジュールに送信する送信機能部と、
前記第2データに基いて前記エッジモジュールによって生成された、前記通し番号および前記第3時刻を含む第3データを受信し、前記第3データが受信された時刻である第4時刻を取得する受信機能部と、
前記第3データに含まれる前記通し番号、および、前記第3データに含まれる前記第3時刻と前記第4時刻との間の差分の少なくとも一方に基いて、前記エッジモジュールとの間の通信が正常に行われたか判定する異常検出機能部と、
を備えるコントローラ。
【請求項11】
前記異常検出機能部は、前記第3データに含まれる前記通し番号に欠落が生じた場合、および、前記第3時刻と前記第4時刻との間の差分が所定の遅延時間以上の場合の少なくとも一方を満たす場合、前記エッジモジュールとの間の通信が正常に行われていないと判定する
請求項10に記載のコントローラ。
【請求項12】
クラウド上に設けられたバーチャルマシンである
請求項10に記載のコントローラ。
【請求項13】
通し番号を含む第1データを生成するステップと、
前記第1データに第1時刻を付与し、前記第1データをコントローラに送信するステップと、
前記第1データに基いて前記コントローラによって生成された、前記通し番号および前記第1時刻を含む第2データを受信し、前記第2データが受信された時刻である第2時刻を取得するステップと、
前記第2データに含まれる前記通し番号、および、前記第2データに含まれる前記第1時刻と前記第2時刻との間の差分の少なくとも一方に基いて、前記コントローラとの間の通信が正常に行われたか判定するステップと、
を備える通信方法。
【請求項14】
通し番号を含む第2データを生成するステップと、
前第2データに第3時刻を付与し、前記第2データをエッジモジュールに送信するステップと、
前記第2データに基いて前記エッジモジュールによって生成された、前記通し番号および前記第3時刻を含む第3データを受信し、前記第3データが受信された時刻である第4時刻を取得するステップと、
前記第3データに含まれる前記通し番号、および、前記第3データに含まれる前記第3時刻と前記第4時刻との間の差分の少なくとも一方に基いて、前記エッジモジュールとの間の通信が正常に行われたか判定するステップと、
を備える通信方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、エッジモジュール、制御システム、遠隔制御システム、コントローラおよび通信方法に関する。
【背景技術】
【0002】
産業プラントなどの制御システムは、制御対象となる機器(対象機器)および制御に関する値を計測するセンサを含むエッジ側システムと、センサからの出力に基いて対象機器を制御するためのコントローラと、が接続されて構築されている。
【0003】
コントローラとエッジ側システムとの間をローカルLANで接続する場合、両者間の通信は高速であり、かつ同時性が担保されている。またコントローラが物理マシンである場合、エッジ側システムに対する制御データの生成およびエッジ側システムへの出力は1スキャン周期(1演算周期)内で完結させることが可能である。そのため、定周期処理を行うことが可能である。
【0004】
これに対し、コントローラをクラウド上に移管させると、制御システムの初期導入コストおよび更新コストの低減や、制御システム構成の柔軟性および運用性向上等の利点がある。しかし、コントローラをクラウド空間上に移管させた場合、エッジ側システムとコントローラとの間にネットワーク遅延の大きいインターネットを介するため、同時性を担保できない。また、クラウド空間上ではローカルLANで接続された物理マシンほどリソース(計算資源)を確保できないため、エッジ側システムに対する制御データの生成およびエッジ側システムへの出力を1スキャン内で完結させることができない場合がある。これにより、処理ごとにかかる時間がばらつき、定周期処理ができない。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特表2021-525044号公報
【特許文献2】特開2021-121065号公報
【特許文献3】特開2018-152675号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
本発明の実施形態は、定周期処理を可能とするエッジモジュール、制御システム、遠隔制御システム、コントローラおよび通信方法を提供する。
【課題を解決するための手段】
【0007】
本実施形態に係るエッジモジュールは、通し番号を含む第1データを生成するデータ生成部と、前記第1データに第1時刻を付与し、前記第1データをコントローラに送信する送信部と、前記第1データに基いて前記コントローラによって生成された、前記通し番号および前記第1時刻を含む第2データを受信し、前記第2データが受信された時刻である第2時刻を取得する受信部と、前記第2データに含まれる前記通し番号、および、前記第2データに含まれる前記第1時刻と前記第2時刻との間の差分の少なくとも一方に基いて、前記コントローラとの間の通信が正常に行われたか判定する異常検出部と、を備える。
【図面の簡単な説明】
【0008】
【
図1】第1実施形態に係る遠隔制御サービスを示すブロック図。
【
図2】第1実施形態に係る遠隔制御システムを示すブロック図。
【
図4】第1実施形態に係る遠隔制御システムの処理を説明するシーケンス図。
【
図5】第1実施形態に係る遠隔制御システムの別の処理を説明するシーケンス図。
【
図7】第1実施形態の変形例に係る遠隔制御システムを示すブロック図。
【
図8】第1実施形態の変形例に係る遠隔制御システムの処理を説明するシーケンス図。
【
図9】第2実施形態に係る遠隔制御システムを示すブロック図。
【
図10】第2実施形態に係る遠隔制御システムの処理を説明するシーケンス図。
【発明を実施するための形態】
【0009】
以下、図面を参照しながら、本発明の実施形態について説明する。
【0010】
(第1実施形態)
図1は、第1実施形態に係る遠隔制御サービス10の一例を示すブロック図である。遠隔制御サービス10は、複数の制御システム2_1~2_Nと、複数のコントローラバーチャルマシン(コントローラ)3_1~3_Mと、通信ネットワーク4と、を備える。以下、複数の制御システム2_1~2_Nのうちの1つを単に制御システム2と表記し、複数のコントローラ3_1~3_Mのうちの1つを単にコントローラ3と表記する。遠隔制御サービス10は、産業プラント等が備える複数の機器(対象機器21)を制御するためのサービスである。
【0011】
制御システム2は、制御対象となる対象機器21と、センサ(計測機器)22と、I/O機器23と、エッジモジュール24と、を備える。制御システム2は、センサ22が取得した計測データをコントローラ3に送信し、コントローラ3から受信した制御データに基いて実際に対象機器21を制御するための、エッジ側の制御システムである。計測データは、エッジモジュール24からコントローラ3に送信される第1データの一例である。制御データは、コントローラ3からエッジモジュール24に送信される第2データの一例である。
【0012】
対象機器21は、産業プラントを構成する機器である。対象機器21は、例えばバルブ、ポンプ、熱交換器、混合機などである。
【0013】
センサ22は、対象機器21の制御に関する値を計測し、計測信号(アナログ信号)として出力する。センサ22は、対象機器21自体の動作を監視するものであってもよいし、対象機器21に関連する別の機器の動作を監視するものであってもよい。センサ22は、対象機器21に組み込まれていてもよいし、対象機器21と物理的に離れた場所に配置されていてもよい。1つの制御システム2が複数のセンサ22を備えてもよい。対象機器21がポンプの場合、センサ22は、例えば流量計である。
【0014】
I/O機器23は、プラントを構成する対象機器21およびセンサ22との入出力を行うための機器である。I/O機器23は、例えば、センサ22から、センサ22が計測した計測信号を収集し、エッジモジュール24に出力する。また、I/O機器23は、エッジモジュール24から受け取った制御信号を対象機器21に出力し、対象機器21を制御する。
【0015】
エッジモジュール24は、センサ22からの計測信号に基いて計測データを生成し、コントローラ3からの制御データに基いて制御信号を生成するための電子装置である。またエッジモジュール24は、コントローラ3との通信を行う。
【0016】
コントローラ3は、制御システム2から計測データを受信し、計測データに基いて対象機器21を制御するための制御データを生成する。またコントローラ3は、制御データを制御システム2に送信する。本実施形態において、コントローラ3は、クラウド空間(クラウドサーバ)上に設けられたバーチャルマシンであるが、コントローラ3は物理マシンであってもよい。
【0017】
通信ネットワーク4は、複数の制御システム2_1~2_Nとコントローラ3_1~3_Mとの間を接続する。本実施形態において、通信ネットワーク4はインターネットであるが、これはその他の種類の通信ネットワークを採用する構成を排除するものではない。
【0018】
複数の制御システム2_1~2_Nのそれぞれが、複数のコントローラ3_1~3_Mとデータのやり取りを行う。ここで、1つの制御システム2と、当該制御システム2とデータのやり取りを行う1つのコントローラ3と、の組を、遠隔制御システム1と呼ぶことにする。つまり、遠隔制御サービス10は、複数の遠隔制御システム1を備える。
【0019】
図2は、第1実施形態に係る遠隔制御システム1の一例を示すブロック図である。なお、
図2は、特定の制御システム2と特定のコントローラ3とが一対一で対応していることを示しているわけではない。つまり、ある制御システム2に対応するコントローラ3が固定されているわけではない。また例えば、制御システム2_2が備えるセンサ22から取得された計測データに基いて、制御システム2_2と異なる制御システム2_3が備える対象機器21を制御する場合もある。そのような場合、1つの制御システム2が、対象機器21またはセンサ22を備えていなくともよい。
【0020】
遠隔制御システム1は、センサ22が計測した計測信号に基いて、コントローラ3が対象機器21を制御するための制御データを生成し、制御データに基いて対象機器21を制御するためのシステムである。
【0021】
エッジモジュール24は、計測データ生成部241と、送信部242と、受信部243と、異常検出部244と、制御信号生成部245と、を備える。
【0022】
計測データ生成部241は、I/O機器23から計測信号を取得し、計測データを生成する。例えば、計測データ生成部241は、アナログ信号である計測信号をデジタル信号に変換して計測データを生成する。或いは、計測データ生成部241は、複数のセンサ22から得られた複数の計測信号に基いて、計測データを生成してもよい。
【0023】
送信部242は、計測データを送信する時刻を第1時刻として計測データに付与して、計測データを、通信ネットワーク4を介してコントローラ3に送信する。
受信部243は、コントローラ3から送信された制御データを、通信ネットワーク4を介して受信する。この際、受信部243は、制御データを受信した時刻を第2時刻として取得する。
【0024】
異常検出部244は、受信された制御データに基いて、エッジモジュール24とコントローラ3との間の通信が正常に行われたか否か(異常が発生していないか否か)を判定する。つまり、コントローラ3による処理が過度な遅延なく正常に行われ、計測データの送信および当該計測データに対応する制御データの受信の両方が過度な遅延なく成功したか否か判定する。また異常検出部244は、遠隔制御システム1の稼働中において、異常が検出された回数に応じて、非常事態であるか否かを判定する。回数は一定時間当たりの平均回数でもよい。
【0025】
制御信号生成部245は、受信した制御データに基いて制御信号を生成する。また制御信号生成部245は、異常検出部244が非常事態であると判定した場合、非常時用の制御信号を生成してもよい。非常時用の制御信号は、例えば対象機器21を緊急停止する命令や安全装置を作動させる命令を含む。
【0026】
要素21~23、要素241~245の少なくとも一部はASIC(application specific integrated circuit)、FPGA(Field-Programmable Gate Array)等の回路またはプロセッサにより構成されてもよい。あるいはこれらの要素のうちの一部または全部が、プログラムを実行するCPUによって実行されてもよい。
【0027】
コントローラ3は、受信機能部F31と、演算機能部F32と、制御データ生成機能部F33と、送信機能部F34と、を備える。換言すれば、コントローラ3は、クラウド上で各種機能部として機能する。
【0028】
受信機能部F31は、エッジモジュール24から送信された計測データを、通信ネットワーク4を介して受信する。
送信機能部F34は、制御データを、通信ネットワーク4を介して送信する。
【0029】
演算機能部F32は、受信機能部F31によって受信された計測データを処理する。例えば、演算機能部F32は、計測データを解析し、対象機器21が正常に動作しているか、計測データに異常値が含まれているか否か等を判定する。
【0030】
制御データ生成機能部F33は、演算機能部F32による処理の結果に基いて、対象機器21を制御するための制御データを生成する。制御データ生成機能部F33は、1つ(例えば、1つのパケット)の計測データに基いて1つの制御データを生成する。
【0031】
コントローラ3は、任意の制御プログラムを実行することで、機能部F31~F34の処理を含む各種処理を行う。制御プログラムは、所定のスキャン周期で実行される。スキャン周期には、リフレッシュ、制御プログラムの実行(演算)時間、END処理時間等が含まれる。
【0032】
本実施形態のコントローラ3が設けられているクラウドサーバは、例えばMPUなどの制御装置と、記憶装置などを備えたハードウェア構成によって実現される。記憶装置は、ROM(Read Only Memory)やRAM(Random Access Memory)などのメモリ装置、HDD、CDドライブ装置などの外部記憶装置、またはこれらの両方によって実現される。さらにクラウドサーバが、ディスプレイ装置などの表示装置と、キーボードやマウスなどの入力装置を備えることも排除されない。
【0033】
本実施形態のコントローラ3で実行される制御プログラムは、インストール可能な形式又は実行可能な形式のファイルでDVD(Digital Versatile Disk)等のコンピュータで読み取り可能なディスク状記録媒体、USBメモリ、SSD(Solid State Disk)等の半導体記憶装置に記録されて提供される。
【0034】
また、本実施形態のコントローラ3で実行される制御プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、本実施形態のコントローラ3で実行される制御プログラムを、ROM等に予め組み込んで提供するように構成してもよい。
【0035】
本実施形態では、コントローラ3は、計測データを受信すると、次回(直後)のスキャン周期内に演算処理を行い、制御データを生成する。そして、コントローラ3は、その次以降のスキャン周期内にエッジモジュール24に制御データを送信することとする。つまり、コントローラ3は、制御データの生成と、制御データのエッジモジュール24への送信を、異なるスキャン周期内で行う。これにより、コントローラ3内で過度な遅延が発生しない場合、制御データの生成から送信までにかかる時間を一定(1スキャン周期分)にすることができ、処理時間のばらつきを抑制することができる。
【0036】
図3は、計測データおよび制御データの形式を説明する図である。計測データおよび制御データは、例えばパケットの形式で生成される。計測データおよび制御データはいずれも、
図3に示されるように、通し番号(第1通し番号)と、第1時刻と、ペイロード(データ1、データ2、・・・)を含む。
【0037】
通し番号は、計測データ生成部241が計測データに付与する番号であり、異常検出部244による異常検出のために用いられる。
図3に示されているデータには、通し番号「0x987F」が付与されている。通し番号は、例えば計測データ生成部が備えるPLC(Programmable Logic Controller)のカウンタ値を流用してもよい。
【0038】
第1時刻は、送信部242が計測データを送信する際の時刻である。第1時刻は、例えば計測データ生成部241が計測データを生成した時刻であってもよい。
図3に示す例では、通し番号「0x987F」のデータは、時刻「0x07836287f32a」に送信されたことを示す。
【0039】
ペイロードは、計測データまたは制御データの本体である。例えば制御データのペイロードには、例えば対象機器21を停止する命令が含まれている。
【0040】
(動作例1)
ここで、遠隔制御システム1が行う処理の全体像を説明する。
図4は、通常時(非常事態に陥らない場合)の遠隔制御システム1のシーケンス図である。以下、
図4を参照して、遠隔制御システム1の動作例について説明する。
【0041】
まず、I/O機器23が、センサ22によって得られた計測信号をエッジモジュール24に出力する(ステップS101)。
【0042】
次に、計測データ生成部241が、入力された計測信号に基いて計測データを生成する。この際、計測データ生成部241は、生成した計測データに第1通し番号を付与する(ステップS102)。
【0043】
次に、送信部242が、計測データをコントローラ3に送信する。この際、送信時刻を第1時刻として計測データに付与して送信する(ステップS103)。
【0044】
次に、コントローラ3が、受信機能部F31として機能し、計測データを受信する(ステップS104)。次に、コントローラ3が、演算機能部F32として機能し、計測データを処理する(ステップS105)。ここで、コントローラ3は、所定の演算周期毎に計測データを処理するため、ステップS104が完了してからステップS105が開始するまでは、最大で1スキャン周期分の待機時間が発生する。
【0045】
次に、コントローラ3が、制御データ生成機能部F33として機能し、ステップS105の処理結果に基いて、対象機器21の制御を行うための制御データを生成する(ステップS106)。
【0046】
次に、コントローラ3が、制御データ生成機能部F33として機能し、生成した制御データに、通し番号および第1時刻を付与する(ステップS107)。このとき付与される通し番号および第1時刻は、当該制御データに対応する計測データに含まれるものと同一である。
【0047】
次に、コントローラ3が、送信機能部F34として機能し、制御データをエッジモジュール24に送信する(ステップS108)。ステップS108は、ステップS107が実行されたスキャン周期と異なるスキャン周期内で実行される。
【0048】
次に、受信部243が、制御データを受信する。この際、制御データを受信した時刻(第2時刻)を取得する(ステップS109)。
【0049】
次に、異常検出部244が、受信された制御データに基き、コントローラ3との通信が正常に行われたか否か判定する(ステップS110)。異常が検出されなかった場合(ステップS111:No)、ステップS112に移行する。
【0050】
異常が検出された場合(ステップS110:Yes)、異常検出部244が、非常事態であるか否か判定する(ステップS111)。非常事態ではないと判定された場合、ステップS112に移行する(ステップS111:No)。非常事態と判定された場合、ステップAに移行する。
【0051】
次に、制御信号生成部245が、受信した制御データに基いて制御信号を生成し、I/O機器23に送信する(ステップS112)。
【0052】
次に、I/O機器23が制御信号を受信し、制御信号に基いて対象機器21を制御する(ステップS113)。
【0053】
(動作例2)
次に、非常事態に陥る場合(ステップA以降)の遠隔制御システム1が行う処理を説明する。
図5は、非常事態に陥る場合の遠隔制御システム1のシーケンス図である。以下、
図5を参照して、遠隔制御システム1の動作例について説明する。ステップA以前の動作については、
図4と同様であるため省略する。
【0054】
まず、異常検出部244が非常事態であると判定した場合、ステップS201に移行する(ステップA)
【0055】
次に、制御信号生成部245は、非常時における制御信号(非常時制御信号)を生成し、I/O機器23に送信する(ステップS201)。非常時制御信号は、例えば、対象機器21を停止する命令や安全装置を作動させる命令を含む。I/O機器23は、その後、受信した非常時制御信号に基き、対象機器21を制御する(ステップS202)。
【0056】
次に、エッジモジュール24が、非常事態になったことを通知するために、非常通知を生成し、コントローラ3に送信する(ステップS203)。
【0057】
次に、コントローラ3は、非常通知を受信し、処理する(ステップS204)。その後、コントローラ3は、非常状態に陥ったことをユーザに通知してもよいし、制御システム2の復旧を試みてもよい。
【0058】
以上説明したように、遠隔制御システム1は、エッジモジュール24とコントローラ3との間で通信を行い、対象機器21の制御を行う。また、エッジ側で非常事態の判定を行うことで、非常事態に陥った際に迅速に対応することができる。
【0059】
次に、
図6を参照して、ステップS110、S111において異常検出部244が行う処理を説明する。
図6は、異常検出部244が行う処理を説明するための図である。
【0060】
異常検出部244は、制御データに含まれる通し番号、および、第1時刻と第2時刻との間の差分の少なくとも一方に基いて、コントローラ3との間の通信が正常に行われたか否か判定する。より詳しくは、異常検出部244は、制御データに含まれる通し番号に欠落が生じた場合、および、第1時刻と第2時刻との間の差分が所定の遅延時間以上の場合の少なくとも一方を満たす場合、異常と判定する。また、異常が所定の回数(1回または複数回)検出(判定)された場合、異常検出部244は、非常事態であると判定する。1回の異常検出で非常事態であると判定する場合、異常に対する迅速な対応が可能である。複数回の異常検出で非常事態であると判定する場合、偶発的な異常を排除することができる。
【0061】
第1時刻と第2時刻との間の差分は、ステップS103が開始してからステップS109が完了するまでにかかる時間に相当する(
図4参照)。
ここで、計測データ処理が開始してから制御データ送信が開始するまで(ステップS105開始~S108開始)にかかる時間は、コントローラ3内で過度な遅延が発生しなければ、1スキャン周期分である。
また、計測データ受信が完了してから計測データ処理が開始するまで(ステップS104完了~S105開始)の待機時間は、最大で1スキャン周期分である。
そして、エッジモジュール24とコントローラ3との間の通信にかかる時間(ステップS103開始~S104完了、ステップS108開始~S109完了)の合計が、両者間の通信が正常であれば、1スキャン周期未満になると仮定する。
これらを考慮すると、エッジモジュール24とコントローラ3との間の通信が正常に行われた場合、第1時刻と第2時刻との間の差分は3スキャン周期分に収まることが期待される。
【0062】
図6に示す例では、1スキャン周期は100msである。そこで、所定の遅延時間は例えば300msとする。通し番号が2の制御データ(制御データ2とする)は、第1時刻と第2時刻の差分が302.25msであるため、異常検出部244によって異常と判定される。しかし、制御データ2の判定時点では、累計異常検出回数は1回なので非常事態とは判定されない。通し番号が5である制御データ5は、その直前の制御データの通し番号が3のため、異常と判定される。また、この時点で累計異常検出回数が2回に達したため、異常検出部244によって非常事態と判定される。
【0063】
以上説明したように、計測データに第1時刻および第1通し番号を付与し、当該計測データに基く制御データにも同じ第1時刻および第1通し番号を付与する。これにより、制御データを受信した際に、第1時刻と第2時刻との間の差分、または第1通し番号を確認することで、エッジモジュール24とコントローラ3との間の通信が正常に行われなかった場合に、異常を検出することができる。またこれにより、遠隔制御システム1内の定周期処理を可能とすることができる。
【0064】
また、第1時刻と第2時刻との間の差分を確認するために、第1時刻をエッジモジュール24側に記憶しておき、制御データを受信した際に、記憶していた第1時刻と制御データに含まれる第2時刻との間の差分を確認してもよい。
【0065】
(変形例)
上記の説明では、エッジモジュール24が備える異常検出部244が、非常状態か否かを判定していたが、コントローラ3が、非常状態か否かを判定してもよい。コントローラ3が非常事態か否かを判定することにより、遠隔制御サービス10全体の状況を考慮したより総合的な判断を下せるようになる。
【0066】
図7は、第1実施形態の変形例に係る遠隔制御システム1を示すブロック図である。上述した第1実施形態における
図2と同じ名称または機能の要素には同じ符号を付している。以後、変更または追加された事項を除き説明を省略する。
【0067】
エッジモジュール24は、異常通知生成部246を備える。異常通知生成部246は、異常検出部244が異常を検出すると、その旨をコントローラ3に通知するために異常通知を生成する。生成された異常通知は、送信部242によってコントローラ3に送信され、受信機能部F31によって受信され、演算機能部F32によって処理される。
【0068】
コントローラ3は、状態判定機能部F35を備える。状態判定機能部F35は、受信され処理された異常通知の数(異常通知の受信回数)に基いて、非常事態であるか否か判定する。状態判定機能部F35は、異常通知の受信回数が所定の回数(1回または複数回)に達した場合、非常事態と判定する。状態判定機能部F35が非常状態であると判定すると、制御データ生成機能部F33が、非常時用の制御データを生成する。制御データ生成機能部F33は、他のコントローラ3からの情報から、他の遠隔制御システム1の状況を確認した上で、非常時用の制御データを生成してもよい。これにより、例えばある対象機器21を停止したことで他の対象機器21に悪影響が出るといったことを防ぐことができる。
【0069】
図8は、本変形例に係る遠隔制御システム1のシーケンス図である。以下、
図8を参照して、本変形例に係る遠隔制御システム1の動作例について説明する。ステップS110:No以前の動作については、
図4と同様であるため省略する。
【0070】
まず、異常検出部244が、異常が発生したことを検出する(ステップS111:Yes)。
【0071】
次に、異常通知生成部246が、異常が発生した旨を通知するための異常通知を生成し、コントローラ3に送信する(ステップS301)。
【0072】
次に、コントローラ3は、受信機能部F31として機能し、異常通知を受信する。そして、コントローラ3は、演算機能部F32として機能し、異常通知を処理する(ステップS302)。
【0073】
次に、コントローラ3は、状態判定機能部F35として機能し、異常通知を受信した回数に基いて、非常事態か否かを判定する(ステップS303:Yes)。
【0074】
次に、コントローラ3は、制御データ生成機能部F33として機能し、非常事態に応じた制御を行うために、非常時制御データを生成する。そして、コントローラ3は、送信機能部F34として機能し、非常時制御データをエッジモジュール24に送信する(ステップS304)。非常時制御データは、例えば、対象機器21を停止する命令や安全装置を作動させる命令を含む。
【0075】
次に、受信部243は、非常時制御データを受信する(ステップS305)。そして、制御信号生成部245は、非常時制御データに基いて非常時制御信号を生成しI/O機器23に送信する(ステップS306)。
【0076】
次に、I/O機器23が、対象機器21を制御する(ステップS307)。
【0077】
(第2実施形態)
第1実施形態で、エッジモジュール24がコントローラ3との間で定周期処理を行う方法について説明した。第2実施形態では、コントローラ3側から見て、コントローラ3とエッジモジュール24との間の通信が正常に行われたことを確認する方法について説明する。
【0078】
図9は、第2実施形態に係る遠隔制御システム1Aを示すブロック図である。上述した第1実施形態における
図2と同じ名称または機能の要素には同じ符号を付している。以後、変更または追加された事項を除き説明を省略する。
【0079】
制御データ生成機能部F33は、制御データを生成する際、制御データに第2通し番号を付与する。第2通し番号は、コントローラ3独自のものであり、計測データ生成部241が計測データに付与する第1通し番号とは別物である。
【0080】
送信機能部F34は、制御データを送信する際の時刻を第3時刻として制御データに付与する。または、制御データ生成機能部F33が制御データを生成した時刻を第3時刻としてもよい。
【0081】
エッジモジュール24は、応答データ生成部247を備える。応答データ生成部247は、受信部243が制御データを受信した場合、応答データを生成する。応答データ生成部247は、応答データに、第2通し番号および第3時刻を付与する。応答データは送信部242によってコントローラ3に送信される。応答データの形式は、
図3に示される計測データまたは制御データの例と同様である。応答データは、エッジモジュール24からコントローラ3に送信される第3データの一例である。
【0082】
受信機能部F31は、エッジモジュール24から送信された応答データを、通信ネットワーク4を介して受信する。この際、受信機能部F31は、応答データを受信した時刻を第4時刻として取得する。
【0083】
コントローラ3は、異常検出機能部F36を備える。異常検出機能部F36は、受信された応答データに基いて、コントローラ3とエッジモジュール24と間の通信が正常に行われたか否か(異常が発生していないか否か)を判定する。つまり、制御データの送信および当該制御データに対応する応答データの受信の両方が過度な遅延なく成功したか否か判定する。
【0084】
異常検出機能部F36は、応答データに含まれる通し番号、および、第3時刻と第4時刻との間の差分の少なくとも一方に基いて、エッジモジュール24との間の通信が正常に行われたか否か判定する。より詳しくは、異常検出機能部F36は、応答データに含まれる通し番号に欠落が生じた場合の少なくとも一方を満たす場合、および、第3時刻と第4時刻との間の差分が所定の遅延時間以上の場合の少なくとも一方を満たす場合、異常と判定する。また、異常が所定の回数(1回または複数回)検出された場合、異常検出機能部F36は、非常事態であると判定する。
【0085】
図10は、本実施形態に係る遠隔制御システム1Aのシーケンス図である。以下、
図10を参照して、本実施形態に係る遠隔制御システム1Aの動作例について説明する。ステップS105以前の動作については、
図4と同様であるため省略する。既述のシーケンス図と同じ機能のステップには同じ符号を付し、適宜説明を省略または簡略化している。
【0086】
まず、コントローラ3が、制御データ生成機能部F33として機能し、対象機器21の制御を行うための制御データを生成する(ステップS106)。そして、コントローラ3が、制御データ生成機能部F33として機能し、制御データに第2通し番号を付与する(ステップS401)。
【0087】
次に、コントローラ3が、送信機能部F34として機能し、制御データをエッジモジュール24に送信する。この際、送信時刻を第3時刻として制御データに付与して送信する(S402)。そして、受信部243が、制御データを受信する(ステップS109)。
【0088】
次に、応答データ生成部247が、制御データが受信されたことに応じて、応答データを生成する(ステップS402)。そして、応答データ生成部247は、応答データに第2通し番号および第3時刻を付与する(ステップS403)。そして、送信部242が、応答データをコントローラ3に送信する(ステップS404)。
【0089】
次に、コントローラ3が、受信機能部F31として機能し、応答データを受信する。この際、受信時刻を第4時刻として取得する。そして、コントローラ3は、演算機能部F32として機能し、応答データを処理する(ステップS405)。
【0090】
次に、コントローラ3が、異常検出機能部F36として機能し、エッジモジュール24が正常に制御データを受信したか否か判定し、異常を検出すると、ステップS303に移行する(ステップS406:Yes)。その後の処理は
図8と同様なため省略する。
【0091】
以上説明したように、第2実施形態によれば、コントローラ3側から見て、コントローラ3とエッジモジュール24との間の通信が正常に行われたことを確認することができる。
【0092】
なお、本発明は上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記各実施形態に開示されている複数の構成要素を適宜組み合わせることによって種々の発明を形成できる。また例えば、各実施形態に示される全構成要素からいくつかの構成要素を削除した構成も考えられる。さらに、異なる実施形態に記載した構成要素を適宜組み合わせてもよい。
【0093】
本実施形態は、以下のように構成することもできる。
[項目1]
通し番号を含む第1データを生成するデータ生成部と、
前記第1データに第1時刻を付与し、前記第1データをコントローラに送信する送信部と、
前記第1データに基いて前記コントローラによって生成された、前記通し番号および前記第1時刻を含む第2データを受信し、前記第2データが受信された時刻である第2時刻を取得する受信部と、
前記第2データに含まれる前記通し番号、および、前記第2データに含まれる前記第1時刻と前記第2時刻との間の差分の少なくとも一方に基いて、前記コントローラとの間の通信が正常に行われたか判定する異常検出部と、
を備えるエッジモジュール。
[項目2]
前記異常検出部は、前記第2データに含まれる前記通し番号に欠落が生じた場合、および、前記第1時刻と前記第2時刻との間の差分が所定の遅延時間以上の場合の少なくとも一方を満たす場合、前記コントローラとの間の通信が正常に行われていないと判定する
項目1に記載のエッジモジュール。
[項目3]
前記異常検出部は、前記コントローラとの間の通信が正常に行われていないことを所定の回数判定すると、非常事態と判定する
項目1または2に記載のエッジモジュール。
[項目4]
前記送信部は、インターネットを介して前記コントローラに前記第1データを送信し、
前記受信部は、インターネットを介して前記コントローラから前記第2データを受信する
項目1-3のいずれかに記載のエッジモジュール。
[項目5]
前記コントローラは、クラウド上に設けられたバーチャルマシンである
項目4に記載のエッジモジュール。
[項目6]
項目1に記載のエッジモジュールと、
制御対象となる対象機器と、
前記対象機器の制御に関する値を計測する計測機器と、
を備え、
前記第1データは、前記計測機器によって計測されたデータであり、
前記第2データは、前記対象機器を制御するためのデータである
制御システム。
[項目7]
項目6に記載の制御システムと、
前記コントローラと、
を備え、
前記送信部は、インターネットを介して前記コントローラに前記第1データを送信し、
前記受信部は、インターネットを介して前記コントローラから前記第2データを受信し、
前記コントローラは、クラウド上に設けられたバーチャルマシンであり、
前記コントローラは、
前記第1データを受信する受信機能部と、
前記第1データに基いて前記第2データを生成するデータ生成機能部と、
前記第2データを前記エッジモジュールに送信する送信機能部と、を備える
遠隔制御システム。
[項目8]
前記データ生成機能部による前記第2データの生成と、前記送信機能部による前記第2データの前記エッジモジュールへの送信が、異なるスキャン周期内で実行される
項目7に記載の遠隔制御システム。
[項目9]
前記エッジモジュールは、前記異常検出部が前記コントローラとの間の通信が正常に行われていないことを判定すると、異常通知を生成する異常通知生成部をさらに備え、
前記送信部は、前記異常通知を前記コントローラに送信し、
前記受信機能部は、前記異常通知を受信し、
前記コントローラは、前記異常通知の受信回数が所定の回数に達した場合、非常事態と判定する状態判定機能部をさらに備える
項目7または8に記載の遠隔制御システム。
[項目10]
通し番号を含む第2データを生成するデータ生成機能部と、
前第2データに第3時刻を付与し、前記第2データをエッジモジュールに送信する送信機能部と、
前記第2データに基いて前記エッジモジュールによって生成された、前記通し番号および前記第3時刻を含む第3データを受信し、前記第3データが受信された時刻である第4時刻を取得する受信機能部と、
前記第3データに含まれる前記通し番号、および、前記第3データに含まれる前記第3時刻と前記第4時刻との間の差分の少なくとも一方に基いて、前記エッジモジュールとの間の通信が正常に行われたか判定する異常検出機能部と、
を備えるコントローラ。
[項目11]
前記異常検出機能部は、前記第3データに含まれる前記通し番号に欠落が生じた場合、および、前記第3時刻と前記第4時刻との間の差分が所定の遅延時間以上の場合の少なくとも一方を満たす場合、前記エッジモジュールとの間の通信が正常に行われていないと判定する
項目10に記載のコントローラ。
[項目12]
クラウド上に設けられたバーチャルマシンである
項目10または11に記載のコントローラ。
[項目13]
通し番号を含む第1データを生成するステップと、
前記第1データに第1時刻を付与し、前記第1データをコントローラに送信するステップと、
前記第1データに基いて前記コントローラによって生成された、前記通し番号および前記第1時刻を含む第2データを受信し、前記第2データが受信された時刻である第2時刻を取得するステップと、
前記第2データに含まれる前記通し番号、および、前記第2データに含まれる前記第1時刻と前記第2時刻との間の差分の少なくとも一方に基いて、前記コントローラとの間の通信が正常に行われたか判定するステップと、
を備える通信方法。
[項目14]
通し番号を含む第2データを生成するステップと、
前第2データに第3時刻を付与し、前記第2データをエッジモジュールに送信するステップと、
前記第2データに基いて前記エッジモジュールによって生成された、前記通し番号および前記第3時刻を含む第3データを受信し、前記第3データが受信された時刻である第4時刻を取得するステップと、
前記第3データに含まれる前記通し番号、および、前記第3データに含まれる前記第3時刻と前記第4時刻との間の差分の少なくとも一方に基いて、前記エッジモジュールとの間の通信が正常に行われたか判定するステップと、
を備える通信方法。
【符号の説明】
【0094】
1、1A 遠隔制御システム
2、2_1~2_N 制御システム
3、3_1~3_M コントローラ
4 通信ネットワーク
21 対象機器
22 センサ(計測機器)
23 I/O機器
24 エッジモジュール
241 計測データ生成部
242 送信部
243 受信部
244 異常検出部
245 制御信号生成部
246 異常通知生成部
247 応答データ生成部
F31 受信機能部
F32 演算機能部
F33 制御データ生成機能部
F34 送信機能部
F34 制御データ生成機能部
F35 状態判定機能部
F36 異常検出機能部