(57)【要約】【課題】学習演算時と推論演算時の制御動作が同一になるようなリアルタイムコントローラおよびそれを用いた分散制御システム、産業機械を提供する。【解決手段】その一部において深層学習の学習演算を行うネットワークに接続され、外部で計測された計測データを取り込んで深層学習の推論演算を実行するリアルタイムコントローラであって、複数の計測データのうち基準データについて、深層学習の学習演算により求めた基準データの入力遅延時間を含む設定情報を記憶する設定保持部と、計測データを記憶し、基準データの入力時刻から入力遅延時間が経過した時刻を基準データの入力時刻とするとともに、基準データ以外のデータについて入力遅延時間が経過した時刻に直近のタイミングにおける基準データ以外のデータを選択する時間補正部と、基準データと選択した基準データ以外のデータを組のデータとして深層学習の推論演算を実行する演算部を備えることを特徴とするリアルタイムコントローラ。【選択図】図３
2020149100.tif 000002
【特許請求の範囲】
【請求項１】
その一部において深層学習の学習演算を行うネットワークに接続され、外部で計測された計測データを取り込んで深層学習の推論演算を実行するリアルタイムコントローラであって、
複数の前記計測データのうち基準データについて、前記深層学習の学習演算により求めた基準データの入力遅延時間を含む設定情報を記憶する設定保持部と、前記計測データを記憶し、前記基準データの入力時刻から前記入力遅延時間が経過した時刻を前記基準データの入力時刻とするとともに、前記基準データ以外のデータについて前記入力遅延時間が経過した時刻に直近のタイミングにおける前記基準データ以外のデータを選択する時間補正部と、前記基準データと選択した前記基準データ以外のデータを組のデータとして前記深層学習の推論演算を実行する演算部を備えることを特徴とするリアルタイムコントローラ。
【請求項２】
請求項１に記載のリアルタイムコントローラであって、
前記ネットワークの試運転時に深層学習の学習演算が実行され、その結果得られた学習モデルによる推論演算を実運転時の前記演算部において実行することを特徴とするリアルタイムコントローラ。
【請求項３】
請求項１または請求項２に記載のリアルタイムコントローラであって、
一つあるいは複数の上流通信ポートと、一つあるいは複数の下流通信ポートと、前記上流通信ポートに対しデータの送受信を行うための上流データ制御部と、前記下流通信ポートに対しデータの送受信を行うための下流データ制御部と、前記上流通信ポートと前記下流通信ポートと前記上流データ制御部と下流データ制御部と接続される通信制御部と、前記上流データ制御部と前記下流データ制御部と接続される前記時間補正部と、前記時間補正部と前記通信制御部と前記上流データ制御部と下流データ制御部と接続される前記演算部を備えるとともに、
前記上流データ制御部あるいは前記下流データ制御部で取得したデータに対して、事前の設定に基づいて前記時間補正部で基準データを定め、前記事前の設定に基づき、前記時間補正部で前記基準データの入力遅延時間を補正し、前記事前の設定と前記基準データの前記入力遅延時間に基づき、前記時間補正部で前記基準データ以外の前記データを選択し、前記基準データと前記基準データ以外のデータの組を作成することを特徴とするリアルタイムコントローラ。
【請求項４】
請求項３に記載のリアルタイムコントローラであって、
前記設定保持部は、前記時間補正部の処理に要する設定情報を任意の手段で転送し、あるいは、前記リアルタイムコントローラが備える前期時間補正部が前記演算部の結果に基づいて処理することを特徴とするリアルタイムコントローラ。
【請求項５】
請求項４に記載のリアルタイムコントローラであって、
前記時間補正部の処理に要する前記設定情報は、前記演算部の演算に必要な複数の入力データをサンプリングする際の基準とするデータの指定情報と、前記演算部の演算に必要な複数の入力データの遅延補正情報であることを特徴とするリアルタイムコントローラ。
【請求項６】
請求項３から請求項５のいずれか１項に記載のリアルタイムコントローラであって、
前記時間補正部は、前記上流データ制御部と前記下流データ制御部と接続され、前記上流データ制御部あるいは前記下流データ制御部で取得したデータを解釈するデータ解釈部と前記データ解釈部と接続され、前記取得したデータを蓄積するデータバッファ部と、前記データバッファ部と接続され、時間を計測する時間カウント部と、前記データバッファ部と接続され、前記取得したデータから基準データを選定する基準選択部と、前記基準選択部と接続され、前記基準データを取得した際の入力遅延時間を補正する遅延補正部と、前記遅延補正部と接続され、前記データバッファ部から特定のデータを選定するタイミング調整部を備えることを特徴とするリアルタイムコントローラ。
【請求項７】
請求項６に記載のリアルタイムコントローラであって、
前記データ解釈部は受信したデータ内容を解釈し、前記データバッファ部は前記データを蓄積し、前記基準選択部は、事前の設定に基づき選定した基準データを受信したら前記遅延補正部に通知し、前記遅延補正部は、前記基準選択部からの通知に基づき入力遅延時間の時間計測を開始し、前記遅延補正部は、事前の設定に基づき特定の入力遅延時間となると前記タイミング調整部に通知し、前記タイミング調整部は、前記遅延補正部からの通知に基づき、前記データバッファ部から事前の設定に基づき前記データを選定し、データの組を作成することを特徴とするリアルタイムコントローラ。
【請求項８】
請求項１から請求項７のいずれか１項に記載のリアルタイムコントローラが、ネットワークを介して前記深層学習を実行する上流側計算機、及び前記計測データを取得する下流側計算機に接続されて構成された分散制御システム。
【請求項９】
請求項８に記載の分散制御システムであって、
前記リアルタイムコントローラをネットワーク上に複数接続し、複数の前記リアルタイムコントローラが備える前記演算部で、１種類あるいは複数種類の演算を実行することを特徴とする分散制御システム。
【請求項１０】
請求項８または請求項９に記載の分散制御システムであって、
前記上流側計算機はシステム管理をするシステム管理装置であって、前記下流側計算機は少なくともセ１つのンサ、あるいは少なくとも１つのアクチュエータ、あるいは少なくとも１つのセンサと少なくとも１つのアクチュエータの両方と接続され、前記接続されたセンサあるいはアクチュエータに入出力制御をする入出力中継装置であって、ネットワーク上にシステムログや設定情報を入力する設定端末装置を備えることを特徴とする分散制御システム。
【請求項１１】
請求項９に記載の分散制御システムであって、
システム管理装置は、ネットワークに接続されたサーバーを介して、深層学習の学習演算結果を受信し、さらに前記リアルタイムコントローラへ送信し、前記リアルタイムコントローラは、学習結果と入出力中継装置から転送される情報に基づいて演算することを特徴とする分散制御システム。
【請求項１２】
請求項８から請求項１０のいずれか１項に記載の分散制御システムにより構成された産業機械。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は実時間制御を実行するコントローラと深層学習による推論演算を用いた実時間制御によるリアルタイムコントローラおよびそれを用いた分散制御システム、産業機械に関する。
【背景技術】
【０００２】
近年、画像認識の精度向上や産業装置の故障予知などを目的として、深層学習技術が用いられる。特に教師ありの深層学習では、入力データとそれに対応する任意の教師（正解）データをパラメータとして、学習演算を実行することで、数理的な設計をしなくとも任意の演算モデルを得ることができる。また、入力データや正解の誤差に応じて再学習演算をすることで、演算モデルを更新することができる。そこで、深層学習を用いることで、制御対象の運用環境の差や複雑な物理現象を考慮せずに制御演算モデル（学習結果）を作成し、これに基づき演算する（以下、推論演算）ことができ、システム設計工数の削減が期待されている。
【０００３】
一般的に、産業装置やロボットなどの産業機械における機械制御は、任意のセンサあるいはアクチュエータの情報に基づき制御演算を実行する。これは、深層学習技術を用いた機械制御でも同様であり、たとえば特開特許文献１は、学習部と、推論部と、センサを備えた機械学習システムであって、機械学習システムの学習に重要なデータのみを選択し、活用することで、機械学習システムが高精度の推論演算を行うことを特徴としている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−５５３０３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
産業装置やロボットの機械制御は、ミリ秒からマイクロ秒周期での高速な制御周期が求められる。一方で、学習演算時と推論演算時は、各演算に必要な計算性能や実装形態によって、データの入出力経路や入出力方法が異なる場合が多く、入力の際の遅延時間が大きくなる。したがって、特許文献１の構成を高速な機械制御に適用すると、学習演算時と、推論演算時のデータの入力遅延時間の誤差について配慮が無いため、これが高速制御に影響し、学習演算時と推論演算時の制御動作が同一にならない場合がある。
【０００６】
以上のことから本発明においては、学習演算時と推論演算時の制御動作が同一になるようなリアルタイムコントローラおよびそれを用いた分散制御システム、産業機械を提供することを目的とする。
【課題を解決するための手段】
【０００７】
以上のことから本発明においては「その一部において深層学習の学習演算を行うネットワークに接続され、外部で計測された計測データを取り込んで深層学習の推論演算を実行するリアルタイムコントローラであって、複数の計測データのうち基準データについて、深層学習の学習演算により求めた基準データの入力遅延時間を含む設定情報を記憶する設定保持部と、計測データを記憶し、基準データの入力時刻から入力遅延時間が経過した時刻を基準データの入力時刻とするとともに、基準データ以外のデータについて入力遅延時間が経過した時刻に直近のタイミングにおける基準データ以外のデータを選択する時間補正部と、基準データと選択した基準データ以外のデータを組のデータとして深層学習の推論演算を実行する演算部を備えることを特徴とするリアルタイムコントローラ。」としたものである。
【０００８】
また本発明においては「リアルタイムコントローラが、ネットワークを介して深層学習を実行する上流側計算機、及び前記計測データを取得する下流側計算機に接続されて構成された分散制御システム」としたものである。
【０００９】
また本発明においては「分散制御システムにより構成された産業機械」としたものである。
【発明の効果】
【００１０】
本発明によれば、深層学習を用いた機械制御において、学習演算時と推論演算時のデータの入出力遅延を同一条件に補正することで、学習演算時と推論演算時の制御動作を同一にすることができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施例に係るリアルタイムコントローラの構成例を示す図。
【図２】リアルタイムコントローラが通信で用いるデータ構造を示す図。
【図３】リアルタイムコントローラが備える時間補正部１６の詳細構成例を示す図。
【図４】試運転モードにおける遅延時間補正をするための設定手順を示すフローチャート。
【図５】時間補正部１６が実行する遅延時間補正処理の手順を示すフローチャート。
【図６】入力データに対して、遅延時間補正処理を行わない場合のタイミングチャートを示す図。
【図７】入力データに対して、遅延時間補正処理を行う場合のタイミングチャートを示す図。
【図８】リアルタイムコントローラ１を適用した分散制御システム６の構成例を示す図。
【図９】リアルタイムコントローラが備える時間補正部に必要な設定情報を入力する設定端末画面を示す図。
【図１０】本発明の実施例３に係るリアルタイムコントローラ１の運用応用例を示す図。
【発明を実施するための形態】
【００１２】
以下、本発明の実施例について図面を用いて詳細に説明する。
【実施例１】
【００１３】
図１は本発明の実施例に係るリアルタイムコントローラの構成例を示す図である。
【００１４】
計算機で構成されたリアルタイムコントローラ１は、有線あるいは無線のネットワークを通じて、上流側及び下流側の計算機との間で通信を行っている。またネットワークの例えば上流側計算機は深層学習の学習演算を試運転時などの事前に実行し、リアルタイムコントローラ１は深層学習の結果を反映した推論演算を通常運転時に実行する。
【００１５】
図１のリアルタイムコントローラ１は、演算部１８と、上下流側計算機との間の通信を制御する通信制御部１２と、通信時間を補正する時間補正部１６と、データの送受信を制御する上流及び下流のデータ制御部１３、１４を少なくとも備えている。
【００１６】
さらに詳細に述べると、通信制御部１２は、上流方向の通信の伝送信号を受信あるいは送信する上流通信ポート１０と、下流方向の通信の伝送信号を受信あるいは送信する下流通信ポート１１とを備えて、送受信する通信の伝送信号データに変換、あるいは伝送信号の中継をおこなう。送受信するデータは、上流及び下流のデータ制御部１３、１４により制御される。
【００１７】
時間補正部１６は、時間補正部の処理に必要な設定情報を設定保持部１５から得、事前の設定に基づいて基準データを定め、その入力遅延時間を補正し、事前の設定と基準データの入力遅延時間に基づき、基準データ以外のデータを選択して基準データと基準データ以外のデータによるデータの組を作成する。
【００１８】
演算部１８は、時間補正部１６からのデータを用いた演算処理を実行するとともに、この際に演算計測部１７において演算時間の開始と終了の経過時間を計測する。
【００１９】
なお、上流通信ポート１０と下流通信ポート１１は通信制御部１２に接続され、通信制御部１２は上流データ制御部１３と下流データ制御部１４に接続され、上流データ制御部１３は設定保部１５と時間補正部１６に接続され、下流データ制御部１４は時間補正部１６と演算部１８に接続され、設定保持部１５は時間補正部１６に接続され、時間補正部１６は演算部１８に接続され、演算部１８は通信制御部１２と上流データ制御部１３と演算計測部１７に接続されている。
【００２０】
ここで、リアルタイムコントローラ１は、通信でデータを送受信するために、図２のパケット２に示す構造を用いる。パケット２は、リアルタイムコントローラ１が通信をする際の宛先を示すアドレス部２０と、演算に使用するパラメータや時間補正部１６で使用する設定情報などを格納するデータ部２１と、を備える。
【００２１】
図３は、リアルタイムコントローラ１が備える時間補正部１６の詳細を示した構成図である。
【００２２】
時間補正部１６は、上流データ制御部１３あるいは下流データ制御部１４で受信したパケットのデータ内容を解釈するデータ解釈部３０と、時間の計測をする時間カウント部３１と、受信したデータを蓄積するデータバッファ部３２と、設定保持部１５に格納された設定に基づき、基準のデータを選定する基準選択部１６１と、設定保持部１５に格納された設定に基づき、基準データの入力遅延時間を補正する遅延補正部１６２と、設定保持部１５に格納された設定と基準データの入力遅延時間に基づき、入力データを選定し、データの組を作るタイミング調整部１６３を備え、タイミング調整部１６３で時間調整したデータを演算部に引き渡す。
【００２３】
このようにデータ解釈部３０は、上流データ制御部１３と下流データ制御部１４とデータバッファ部と接続され、時間カウント部３１は、データバッファ部３２と接続され、データバッファ部は、基準選択部１６１とタイミング調整部１６３と接続され、基準選択部１６１は、遅延補正部１６２と接続され、遅延補正部１６２は、タイミング調整部１６３と接続され、タイミング調整部１６３は演算部１８と接続されている。
【００２４】
ここで、リアルタイムコントローラ１の基本動作を説明する。
【００２５】
まずリアルタイムコントローラ１は、上流通信ポート１０を介して時間補正部１６の処理に必要な設定を、上流データ制御部１３で受信する。上流データ制御部１３は受信した設定情報を設定保持部１５へ転送し、設定保持部１５は転送された設定情報を格納する。ここで、時間補正部１６の処理に必要な設定とは、遅延補償の対象とする基準データを選択するための基準データ設定情報、基準データの入力遅延時間を補正するための遅延時間補正設定情報を含む情報である。
【００２６】
この際、上流データ制御部１０と下流データ制御部１１は、どちらも受信あるいは送信が可能である。そのため、リアルタイムコントローラ１は常時、上流方向、下流方向でパケット２の構造のデータを送受信し続ける。特に、受信したデータは、時間補正部１６のデータバッファ部３２で蓄積し、タイミング調整部１６３が演算部１８の演算で使用するデータのみを選定する。また、リアルタイムコントローラ１は、受信したデータを基に定期的に演算部１８で演算を実行する。その際、演算部１８は演算結果を上流データ制御部１３あるいは下流データ制御部１４に転送する。上流データ制御部１３あるいは下流データ制御部１４は演算結果を転送されると、通信制御部１２へ転送し通信の伝送信号へと変換する。
【００２７】
またリアルタイムコントローラ１は、遅延時間補正処理の設定をするための試運転モードと、制御演算を実行する通常モードを備える。試運転モードにおいては、例えば上流側計算機により深層学習の学習演算を実行し、この試運転結果として時間補正部１６の処理に必要な各種設定情報がリアルタイムコントローラ１に入手されて設定処理が実施される。通常モードでは、リアルタイムコントローラ１において深層学習の学習演算の結果得られた学習モデルを用いた推論演算が実行され、この中で試運転モードにおいて求められ、予め定められた時間補正部１６の処理に必要な各種設定情報を用いた遅延時間補整処理が実行される。
【００２８】
次にリアルタイムコントローラ１が備える時間補正部１６で実行されるデータの遅延時間補正の処理について説明する。試運転モードにおける遅延時間補正をするための設定手順を、図４を用いて説明する。
【００２９】
図４ではまず、設定対象のデータの入力遅延や演算時間を見積もるために処理ステップＳ４０にてリアルタイムコントローラ１を試運転モードにする。試運転モードの中では、上流側計算機により深層学習の学習演算を実行している。その次に、処理ステップＳ４１にて試運転をした結果である動作情報を確認する。
【００３０】
動作情報の確認が完了すると、次に、処理ステップＳ４２にて、遅延時間を補正する際の基準となる基準データを選択する。
【００３１】
図４の設定手順（処理ステップＳ４３と処理ステップＳ４４）では、基準データごとに２種類の遅延情報を入力する。１つ目が内部遅延情報であり、これは入力対象のデータ（基準データ）がデジタル値として取得できてから、リアルタイムコントローラ１に送信され、データが到着するまでの時間のことである。２つ目が外部遅延情報であり、これは、入力対象のデータがアナログ値からデジタル値に変換されるまでの時間である。
【００３２】
ここで、内部遅延情報と外部遅延情報についてさらに詳述すると、例えば上流側計算機がプラント全体の制御装置、下流側計算機がプラント各部の個別制御装置という位置づけを想定した場合に、下流側計算機でプロセス量を計測してアナログ値をデジタル値に変換するまでの時間が外部遅延情報であり、さらにデジタル値が生成されてからリアルタイムコントローラ１に認知されるまでの時間が下流における内部遅延時間ということになる。
【００３３】
これら２種類の情報（遅延補償の対象とする基準データを選択するための基準データ設定情報と、基準データの入力遅延時間を補正するための遅延時間補正設定情報）を処理ステップＳ４３と処理ステップＳ４４にて、各データについて入力が完了次第、設定を完了とする。最後に処理ステップＳ４５にて、リアルタイムコントローラ１は通常モードの動作を開始する。
【００３４】
図５は時間補正部１６が通常モードにおいて実行する遅延時間補正処理の手順を示したフローチャートである。なお、ここでは、すでに処理に必要なデータは設定保持部１５に格納されていることを前提とする。図５には図示していないが、図５におけるリアルタイムコントローラ１の処理では、深層学習の学習演算の結果得られた学習モデルを用いた推論演算が実行されている。
【００３５】
時間補正部１６は、処理ステップＳ５０にて、データ解釈部３０でデータを受信する。この際、データ解釈部３０はデータ内容を確認後、データ受信時の時間を演算計測部１７から読み出し、処理ステップＳ５１に遷移する。次に処理ステップＳ５１にて、データバッファ部３２は、データ解釈部３０で受信したデータとデータ受信時刻を合わせて蓄積し、処理ステップＳ５２に遷移する。
【００３６】
処理ステップＳ５２にて、基準選択部１６１は、データバッファ部３２に蓄積されたデータを順次確認し、事前に設定した基準となるデータであるかを判定する。処理ステップＳ５２の判定で、事前に設定した基準のデータではないと判断した場合、処理ステップＳ５０に戻りデータの受信を続ける。
【００３７】
処理ステップＳ５２の判定で、事前に設定した基準のデータであると判断した場合、基準選択部１６１は遅延補正部１６２に通知し、処理ステップＳ５３へ遷移する。この際、基準データはパケット２に備える、アドレス部２０を指定することによって判別可能である。
【００３８】
次に、処理ステップＳ５３にて、遅延補正部１６２は、基準データが受信された時点から、時間計測を開始し、処理ステップＳ５４へ遷移する。処理ステップＳ５４にて、遅延補正部１６２で計測中の時間が、事前に設定した時間に到達したかを判定する。この際、処理ステップＳ５４の判定で、遅延補正部１６２が計測した時間が、事前に設定した入力遅延時間に達していない場合、処理ステップＳ５４にとどまる。
【００３９】
処理ステップＳ５４の判定で、遅延補正部１６２が計測した時間が、事前に設定した入力遅延時間に達した場合、遅延補正部１６２はタイミング調整部１６３へ通知し、処理ステップＳ５５へ遷移する。この際、事前に設定した入力遅延時間とは、前記内部遅延情報と前記外部遅延情報の合算した値である。
【００４０】
処理ステップＳ５３から処理ステップＳ５４までの時間計測は、事前に設定した基準データの入力遅延時間を補正するために実行する手順である。すなわち、基準データが到着した時点より、事前に設定した入力遅延時間分だけ、意図的に時間を調整することで、任意の入力遅延時間へ補正するものである。
【００４１】
処理ステップＳ５５では、タイミング調整部１６３が処理ステップＳ５４で計測した入力遅延時間と事前の設定に基づいて、データバッファ部３２に蓄積しているデータの中から、基準データ以外のデータを選択する。
【００４２】
ここで、タイミング調整部１６３がデータを選定する仕組みについて説明する。前提として、基準データ以外のデータに関しても、任意の入力遅延時間を設定することが可能である。タイミング調整部１６３がデータバッファ部３２からデータを選定するとき、まず処理ステップＳ５４で計測した入力遅延時間の範囲外のデータは無視する。この際、前述したとおり、データバッファ部３２は、受信したデータとデータ受信時刻を合わせて蓄積しているため、このデータに紐づくデータの受信時刻を参照することが可能である。そのあと、タイミング調整部１６３は、基準データ以外のデータに設定された入力遅延時間とデータ受信時刻を参照することで、基準データの入力遅延時間から相対的に計算し、特定の受信時刻のデータを選択する。
【００４３】
上記処理により、基準データ以外のデータの時系列的なデータ群のうち、基準データについて事前に設定した入力遅延時間で定まる時刻に直近の時刻で得られた基準データ以外のデータを選択することになる。
【００４４】
その後、処理ステップＳ５６へ遷移し、タイミング調整部１６３は基準データと選択された基準データ以外のデータを合わせて入力データの組を作成し、処理ステップＳ５７へ遷移する。
【００４５】
処理ステップＳ５７にて、タイミング調整部１６３は、事前に設定したすべてのデータを選択したかを判断する。処理ステップＳ５７の判定にて、事前に設定したすべてのデータを選択していないと判断した場合、処理ステップＳ５６へ遷移し、タイミング調整部１６３が再度データを選択する。
【００４６】
また、処理ステップＳ５７の判定にて、事前に設定したすべてのデータを選択したと判断した場合、処理ステップＳ５８へ遷移する。最後に処理ステップＳ５８にて、タイミング調整部１６３が演算部１８に入力データの組を出力する。
【００４７】
図６は、リアルタイムコントローラ１が備える時間補正部１６が、入力データに対して、遅延時間補正処理を行わない場合のタイミングチャートを示した図である。
【００４８】
ここで、図６に示す例はデータＡとデータＢを入力データとして、試運転モードで深層学習の学習演算を任意のコンピュータ（多くの場合に上流側計算機で実施）で実行する場合と、通常運転モードで学習結果としての推論演算をリアルタイムコントローラ１で実行する場合を対比して示している。なおここでは、試運転の時と通常運転の時で、異なる遅延時間の結果になってしまうことを説明しようとしている。
【００４９】
図６では、データＡに関して、学習演算時（試運転時）と推論演算時（実運転時）では、上流側計算機で実施する学習演算時のオーバヘッド時間Ｔ６０の方が、リアルタイムコントローラ１で実施する推論演算時のオーバヘッドＴ６２よりも長いものとする。また、データＢに関しては、学習演算時と推論演算時でオーバヘッドはほとんどかからないものとする。なおＴ６１、Ｔ６３は、学習演算時と推論演算時のデータＡの入力時点、Ｔ６４はデータＢの入力時点を表している。
【００５０】
上記の前提で、データＡは周期Ｔ６７で、データＢは周期Ｔ６６でデータをサンプリングしている。この場合、データＡが入力され次第、最新のサンプリングのデータＢを選択し、入力データの組として演算に使用する。
【００５１】
具体的には、学習演算時について、データＡは、下流側計算機でのデータ計測からオーバヘッドＴ６０を経て時点Ｔ６１でリアルタイムコントローラ１にデータ入力される。これに対し、データＢはデータＡの入力時点Ｔ６１に最も近く、最新のサンプリングであるＴ６５の時点のデータを選択し、入力データの組とする。
【００５２】
一方、推論演算時について、データＡは下流側計算機でのデータ計測からオーバヘッドＴ６２を経て時点Ｔ６３でリアルタイムコントローラ１にデータ入力される。これに対し、データＢはデータＡの入力時点Ｔ６３に最も近く最新のサンプリングであるＴ６４の時点のデータを選択し、入力データの組とする。
【００５３】
すなわち、データＡのオーバヘッドが学習演算時と推論演算時で異なることから、データＢが選択されるタイミングが異なり、学習演算時と推論演算時での入力データの組のうち、データＢの取得時刻が異なってしまう。
【００５４】
次に、図７により時間補正部１６が、入力データに対して、遅延時間補正処理を行う場合のタイミングチャートを説明する。なお、ここで説明する場合でも、図６で説明した際と同様の前提とする。
【００５５】
図７では、データＡを基準データ、データＢを基準データ以外のデータとして取り扱う。基準データＡは、学習演算時と推論演算時とでオーバヘッドが相違することから、オーバヘッドが短い推論演算時には、オーバヘッドが長い学習演算時に遅延時間を調整することで、学習演算時と推論演算時で、同じタイミングでの基準データ入力時刻を実現する。また基準データＡの入力時刻に直近のタイミングで、基準データ以外のデータＢを選択する。
【００５６】
まず、学習演算時、データＡは図６の場合と同様に下流側計算機でのデータ計測からオーバヘッドＴ６０を経て、時点Ｔ６１で入力される。この際、データＢは時点Ｔ６１に最も近く最新のサンプリングである時点Ｔ６１１のデータを選択し、入力データの組とする。
【００５７】
他方、リアルタイムコントローラ１で推論演算時には、時間補正部６で入力データの遅延時間を補正するために、データＡを基準データとして定め、さらにＴ６１０の遅延時間を設定する。ゆえに、推論演算時、データ到着時は下流側計算機でのデータ計測からオーバヘッドＴ６８を経て、実際にはタイミングＴ６９で入力されるが、時間Ｔ６１０だけ、入力遅延時間を加算する。そのあと、時点Ｔ６１２で入力されたものとし、その際、データＢに対して、時点Ｔ６１２に最も近く最新のサンプリングである時点Ｔ６１１のデータを選択し、入力データの組とする。
【００５８】
こうした入力遅延補正を行うことで、学習演算時と推論演算時で、データＡのオーバヘッドを同一に補正し、データＢが選択されるタイミングも同一にすることで、学習演算時と推論演算時での入力データの組のうち、データＢの取得タイミングが異なってしまう問題を解決可能である。
【００５９】
本実施例の態様に依れば、深層学習の学習演算と推論演算の実行時、データの入力経路や実行するための演算環境が異なっても、入力遅延時間などが同一条件での、入力データの組を作成することが可能である。
【実施例２】
【００６０】
図８は、本発明の実施例２に係るリアルタイムコントローラ１を実運用するためのシステムの一例としての分散制御システム６の構成例を示した図である。
【００６１】
分散制御システム７は、分散制御システム７全体のシステム管理をする、システム管理装置７０と、少なくとも１つのリアルタイムコントローラ１と、少なくとも１つの入出力中継装置７１と、少なくとも１つのセンサ７２、あるいは、少なくとも１つのアクチュエータ７３、あるいは少なくとも１つのセンサ７２と少なくとも１つのアクチュエータ７３の両方と、設定端末装置７４を備えて構成される。
【００６２】
ここではシステム管理装置７０が上流側計算機、入出力中継装置７１が下流側計算機とされる計算機システムを構成したものである。この場合にもまたネットワークの上流側計算機であるシステム管理装置７０が試運転時に深層学習の学習演算を実行し、リアルタイムコントローラ１が実運転時に深層学習の推論演算を実行している。
【００６３】
このようにシステム管理装置７０は、リアルタイムコントローラ１あるいは、入出力中継装置７１と接続され、リアルタイムコントローラ１は、他のリアルタイムコントローラ１あるいは入出力中継装置７１と接続され、入出力中継装置７１は、センサ７２あるいはアクチュエータ７３と接続され、設定端末装置７４は、システム管理装置７０と接続される。
【００６４】
次に各装置の詳細を説明する。
【００６５】
システム管理装置７０は、少なくとも１つの下流通信ポート１１と、システム管理部７０１と、通信制御部７０２と、端末接続ポート７０３と、を備え、システム管理部７０１は、通信制御部７０２と端末接続ポート７０３と接続され、通信制御部７０２は、少なくとも１つの下流通信ポート１１と接続される。
【００６６】
システム管理装置７０の基本動作を説明する。システム管理装置７０は、設定端末装置７４にて入力される設定をシステム管理部７０１で管理し、通信制御部７０２へ転送することで、下流通信ポート１１を介して、リアルタイムコントローラ１の時間補正部１６に必要な設定情報を伝送する。ここで、システム管理装置７０は、ネットワークに接続されるサーバーや、汎用コンピュータ、小型のコンピュータ基板などが想定される。リアルタイムコントローラ１は実施例１に記載したので、ここでは説明を割愛する。
【００６７】
入出力中継装置７１は、少なくとも１つの上流通信ポート１０と、少なくとも１つの下流通信ポート１１と、通信制御部７１０と、入出力部７１１と、デバイス接続ポート７１２と、を備え、通信制御部７１０は少なくとも１つの上流通信ポート１０と少なくとも１つの下流通信ポート１１と接続され、入出力部７１１は通信制御部７１０とデバイス接続ポート７１２と接続され、デバイス接続ポート７１２は、センサ７２あるいは、アクチュエータ７３と接続される。
【００６８】
入出力中継装置７１の基本動作を説明する。入出力中継装置７１は、デバイス接続ポート７１２と接続されセンサあるいはアクチュエータに対して入出力部７１１を介して入出力する。この際、入力データは、入出力部７１１で得たデータを通信制御部７１０と上流通信ポート１０あるいは下流通信ポート１１を介して、リアルタイムコントローラ１あるいはシステム管理装置７０へ送信するデータのことである。また、出力データとは、上流通信ポート１０あるいは下流通信ポート１１と通信制御部７１０を介して、リアルタイムコントローラ１あるいはシステム管理装置７０から受信したデータのことであり、入出力部７１１を介して出力する。
【００６９】
次に分散制御システム６の基本動作について説明する。
【００７０】
本実施例では、複数のセンサ７２の入力データに基づいて、アクチュエータ７３の制御指令を求めるための演算をリアルタイムコントローラ１で実行することとする。
【００７１】
分散制御システム６の使用時、まず設定端末装置７４において、リアルタイムコントローラ１が入力遅延補正を実行するための設定情報を入力する。
【００７２】
図９は、リアルタイムコントローラ１が備える時間補正部１６に必要な設定情報を入力する設定端末画面を示した図である。この際、設定端末装置７４は、図９に示すような構成である。設定端末装置７４は、設定領域８０と、システムログ領域８１と、を備える。設定領域８０は、入力遅延補正の処理を実行するために、基準データの指定、各データへの遅延時間設定を行う。また、システムログ領域８１は、入力された設定情報は、システム管理部７０１を介して通信制御部７０２へ転送し、リアルタイムコントローラ１へ伝送する。
【００７３】
この際の設定手順は、実施例１に記載したとおり、はじめに試運転モードを実行した後、システムログ領域８１にて、動作情報を確認する。その次に、設定領域にて、遅延時間補正対象の各データに対して、内部遅延情報と外部遅延情報を入力する。その後、設定端末装置７４で入力された設定情報は、システム管理装置７０を介してリアルタイムコントローラ１へ転送し、さらにリアルタイムコントローラ１は受信した設定情報を設定保持部１５へ格納する。
【００７４】
ここで、センサ７２Ａ、７２Ｂが接続された入出力中継装置７１Ａ、７１Ｂは、継続的にセンサ７２Ａ、７２Ｂのデータをサンプリングし、リアルタイムコントローラ１へ転送する。この際、図８に記載の通り、説明の便宜上、データＡのセンサ７２ＡとデータＢのセンサ７２Ｂとする。また、データＡを入力遅延補正の基準データ、データＢを基準データ以外のデータとする。リアルタイムコントローラ１は、基準データＡを受信すると、実施例１で記載した方法で基準データＡのセンサ７２Ａの入力遅延時間を補正する。そのあと、事前の設定と基準データＡのセンサ７２Ａの入力遅延時間に基づいて、リアルタイムコントローラ１に備えるデータバッファ部３０で蓄積した、複数の基準データ以外のデータＢのセンサ７２Ｂのデータのうち、１つのデータを選択する。
【００７５】
この際選択したセンサ７２Ｂの基準データ以外のデータＢと、基準データＡのセンサ７２のデータを入力データの組として、演算部１８へ転送する。演算部１８ではこの入力データに基づき、演算を行った後、演算結果をアクチュエータ７３が接続された入出力中継装置７１Ｃへ通信で転送する。アクチュエータ７３が接続された入出力中継装置７１Ｃは、受信した演算結果を入出力部７１１にてアクチュエータ７３への制御信号へと変換し、フィードバックする。
【００７６】
本実施例の態様に依れば、産業装置やロボットなどの産業機械にリアルタイムコントローラ１を備える分散制御システム６を適用することで、制御演算に入力するセンサあるいはアクチュエータなどの各データの遅延時間とその組み合わせを厳密に指定することが可能である。
その他をリアルタイムコントローラ１適用した場合の効果は実施例１と同一であるため、説明は割愛する。
【実施例３】
【００７７】
図１０は、本発明の実施例３に係るリアルタイムコントローラ１の運用応用例である。
【００７８】
リアルタイムコントローラ１が備える演算部１８は、演算実行部９１と、演算パラメータ記憶部９２と、演算管理部９３を備える。
【００７９】
また演算実行部９１は、時間補正部１６と上流データ制御部１０と下流データ制御部１１と接続され、演算パラメータ記憶部９２は演算実行部９１と通信制御部１２と接続され、演算管理部９３は、演算実行部９１と通信制御部１２と接続される。
【００８０】
この際、演算実行部９１は、任意の演算を実行する。また、演算パラメータ記憶部９２は、演算実行部９１で実行する演算に必要な係数やパラメータなどを格納し、通信を介してその内容を変更、更新をする。
【００８１】
図１０に示すようにリアルタイムコントローラ１は他のリアルタイムコントローラ１と接続して運用する。この際、リアルタイムコントローラ１を単体で使用したとき、目的とした演算処理に対する演算性能が不足した場合、図１０に示すように複数のリアルタイムコントローラ１を接続し、演算処理を分散して実装することで、演算性能の補強をする。具体的には、リアルタイムコントローラ１が備える演算管理部９３は、他のリアルタイムコントローラ１の演算管理部９３と通信を介して、演算処理の進捗状況や演算結果を共有する。すなわち、複数のリアルタイムコントローラ１で要求性能が高い１種類、あるいは複数種類の演算処理を連携して実行する。
【００８２】
また、クラウドサーバ９０から、演算パラメータ記憶部９２に対して、通信を介して任意のタイミングで演算処理に関する演算パラメータを転送する。さらに、リアルタイムコントローラ１は演算結果や動作状況を継続的にクラウドサーバ９０へ送信し、クラウドサーバ９０において演算パラメータの再考、更新をする。
【００８３】
実施例３に依れば、リアルタイムコントローラ１は、演算の目的に応じて演算内容の更新や演算性能の拡張が可能である。
【符号の説明】
【００８４】
１：リアルタイムコントローラ
１０：上流通信ポート
１１：下流通信ポート
１２：通信制御部
１３：上流データ制御部
１４：下流データ制御部
１５：設定保持部
１６：時間補正部
１６１：基準選択部
１６２：遅延補正部
１６３：タイミング調整部
１７：演算計測部
１８：演算部
２：パケット
２０：アドレス部
２１：データ部
３０：データ解釈部
３１：時間カウント部
３２：データバッファ部
７０：システム管理装置
７０１：システム管理部
７０２：通信制御部
７０３：端末接続ポート
７１：入出力中継装置
７１０：通信制御部
７１１：入出力部
７１２：デバイス接続ポート
７２：センサ
７３：アクチュエータ
７４：設定端末装置
８０：設定領域
８１：システムログ領域
９０：クラウドサーバ
９１：演算実行部
９２：演算パラメータ記憶部
９３：演算管理部
【図１】
2020149100.tif 000003
【図２】
2020149100.tif 000004
【図３】
2020149100.tif 000005
【図４】
2020149100.tif 000006
【図５】
2020149100.tif 000007
【図６】
2020149100.tif 000008
【図７】
2020149100.tif 000009
【図８】
2020149100.tif 000010
【図９】
2020149100.tif 000011
【図１０】
2020149100.tif 000012