(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025011446
(43)【公開日】2025-01-24
(54)【発明の名称】情報処理システム、情報処理方法およびプログラム
(51)【国際特許分類】
G05B 23/02 20060101AFI20250117BHJP
G06F 11/36 20060101ALI20250117BHJP
G06F 11/34 20060101ALI20250117BHJP
【FI】
G05B23/02 302V
G06F11/36 164
G06F11/34 147
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2023113567
(22)【出願日】2023-07-11
(71)【出願人】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】大貫 はる奈
(72)【発明者】
【氏名】岩村 慎太郎
(72)【発明者】
【氏名】玉嶋 大輔
(72)【発明者】
【氏名】重森 弓束
(72)【発明者】
【氏名】真鍋 美樹子
【テーマコード(参考)】
3C223
5B042
【Fターム(参考)】
3C223AA11
3C223BA03
3C223BB08
3C223BB17
3C223CC02
3C223DD03
3C223EB02
3C223FF16
3C223FF23
3C223GG01
3C223HH03
3C223HH07
5B042HH07
5B042JJ29
5B042MA08
5B042MC08
(57)【要約】
【課題】監視対象の異常な動作の原因探索を適切に支援可能な情報処理システムを提供する。
【解決手段】情報処理システムは、監視対象の状態を表す複数の変数の実績値の時系列データを用いた情報処理を行なう。情報処理システムは、複数の変数のうち第1変数を除く1以上の第2変数の実績値を用いて、仮想空間における監視対象に対応する仮想モデルの挙動をシミュレートするシミュレータを備える。さらに、情報処理システムは、仮想モデルにおいて生成される第1変数の仮想値と時系列データによって示される第1変数の実績値との差が基準を超える異常時刻を特定する特定モジュールを備える。
【選択図】
図1
【特許請求の範囲】
【請求項1】
監視対象の状態を表す複数の変数の実績値の時系列データを用いた情報処理を行なう情報処理システムであって、
前記複数の変数のうち第1変数を除く1以上の第2変数の実績値を用いて、仮想空間における前記監視対象に対応する仮想モデルの挙動をシミュレートするシミュレータと、
前記仮想モデルにおいて生成される前記第1変数の仮想値と前記時系列データによって示される前記第1変数の実績値との差が基準を超える異常時刻を特定する特定モジュールとを備える、情報処理システム。
【請求項2】
前記異常時刻の一覧を示すデータを出力する出力モジュールをさらに備える、請求項1に記載の情報処理システム。
【請求項3】
前記監視対象は、対象物の存在を検知する第1センサを含み、
前記第1変数は、前記第1センサによる検知結果を表し、
前記シミュレータは、
前記仮想空間における前記対象物に対応する仮想対象物の移動に基づいて、前記第1変数の仮想値を計算する、請求項1または2に記載の情報処理システム。
【請求項4】
前記監視対象は、視覚センサを含み、
前記1以上の第2変数は、前記視覚センサによって計測された前記対象物の実位置を示す特定変数を含み、
前記仮想モデルは、前記第1センサに対応する仮想センサを含み、
前記シミュレータは、
前記仮想空間において、前記特定変数の実績値によって表される実位置に対応する仮想初期位置に前記仮想対象物を配置し、
前記仮想空間において、前記仮想モデルの挙動に応じて前記仮想対象物を前記仮想初期位置から移動させ、
前記仮想空間における前記仮想対象物と前記仮想センサとの位置関係に基づいて、前記第1変数の仮想値を計算する、請求項3に記載の情報処理システム。
【請求項5】
前記仮想モデルは、前記第1センサに対応する仮想センサを含み、
前記シミュレータは、
前記監視対象を撮影するカメラから得られた実画像に基づいて前記対象物の実位置を特定し、
前記仮想空間において、前記実位置に対応する仮想初期位置に前記仮想対象物を配置し、
前記仮想空間において、前記仮想モデルの挙動に応じて前記仮想対象物を前記仮想初期位置から移動させ、
前記仮想空間における前記仮想対象物と前記仮想センサとの位置関係に基づいて、前記第1変数の仮想値を計算する、請求項3に記載の情報処理システム。
【請求項6】
前記第1センサは、前記監視対象の第1の場所における前記対象物の存在を検知し、
前記監視対象は、前記第1の場所よりも上流の第2の場所における前記対象物の存在を検知する第2センサを含み、
前記1以上の第2変数は、前記第2センサによる検知結果を表す特定変数を含み、
前記仮想モデルは、前記第1センサに対応する仮想センサを含み、
前記シミュレータは、
前記特定変数の実績値が前記対象物の存在を示すことに基づいて、前記仮想空間における前記第2の場所に対応する仮想初期位置に前記仮想対象物を配置し、
前記仮想空間において、前記仮想モデルの挙動に応じて前記仮想対象物を前記仮想初期位置から移動させ、
前記仮想空間における前記仮想対象物と前記仮想センサとの位置関係に基づいて、前記第1変数の仮想値を計算する、請求項3に記載の情報処理システム。
【請求項7】
前記第1変数は、前記監視対象に含まれる可動部品の位置または速度またはトルクであり、
前記1以上の第2変数は、前記可動部品に対する指令値を示す変数を含み、
前記シミュレータは、前記指令値に基づいて、前記可動部品に対応する仮想可動部品の前記第1変数の仮想値を計算する、請求項1または2に記載の情報処理システム。
【請求項8】
監視対象の状態を表す複数の変数の実績値の時系列データを用いた情報処理方法であって、
1以上のプロセッサが、前記複数の変数のうち第1変数を除く1以上の第2変数の実績値を用いて、仮想空間における前記監視対象に対応する仮想モデルの挙動をシミュレートすることと、
前記1以上のプロセッサが、前記仮想モデルにおいて生成される前記第1変数の仮想値と前記時系列データによって示される前記第1変数の実績値との差が基準を超える異常時刻を特定することとを備える、情報処理方法。
【請求項9】
監視対象の状態を表す複数の変数の実績値の時系列データを用いた情報処理方法をコンピュータに実行させるプログラムであって、
前記情報処理方法は、
前記複数の変数のうち第1変数を除く1以上の第2変数の実績値を用いて、仮想空間における前記監視対象に対応する仮想モデルの挙動をシミュレートすることと、
前記仮想モデルにおいて生成される前記第1変数の仮想値と前記時系列データによって示される前記第1変数の実績値との差が基準を超える異常時刻を特定することとを備える、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、情報処理システム、情報処理方法およびプログラムに関する。
【背景技術】
【0002】
生産設備などの監視対象の異常な動作の原因調査を支援する装置が開発されている。特開2022-99341号公報(特許文献1)は、監視対象を撮影することにより得られる動画データと、仮想的な監視対象の動作を再現させた動作再現模擬データとを表示部に表示する技術を開示している。動作再現模擬データは、監視対象の状態と、監視対象と監視対象を制御する制御装置との間の制御信号の入出力データと、を時系列で記録したログデータに基づいて生成される。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2022-99341号公報
【特許文献2】特開2017-97426号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1に開示の技術によれば、ユーザは、動画データによって示される実動画または動作再現模擬データによって示される仮想動画の中から異常が発生している時刻(以下、「異常時刻」と称される)を見つけ、その前後の監視対象の状態を確認する。しかしながら、撮影時間が長い場合、実動画または仮想動画から異常時刻を目視で見つけるのに時間がかかる。そのため、監視対象の異常な動作の原因探索に時間がかかる。
【0005】
監視対象に異常が発生したときのログデータによって示される異常波形と、監視対象が正常であるときのログデータによって示される正常波形とを比較することにより、異常時刻を特定することが考えられる。しかしながら、監視対象において規則的な動作が実施されないケース、例えば、ワークがランダムに搬送されるケースでは、正常波形を準備することができない。また、導入直後の監視対象についても、正常波形を準備することができない。したがって、これらの場合には、ユーザは、異常波形と正常波形との比較によって、異常時刻を特定できない。そのため、監視対象の異常な動作の原因探索に時間がかかる。
【0006】
本開示は、上記の問題に鑑みてなされたものであり、その目的は、監視対象の異常な動作の原因探索を適切に支援可能な情報処理システム、情報処理方法およびプログラムを提供することである。
【課題を解決するための手段】
【0007】
本開示の一例によれば、情報処理システムは、監視対象の状態を表す複数の変数の実績値の時系列データを用いた情報処理を行なう。情報処理システムは、複数の変数のうち第1変数を除く1以上の第2変数の実績値を用いて、仮想空間における監視対象に対応する仮想モデルの挙動をシミュレートするシミュレータを備える。さらに、情報処理システムは、仮想モデルにおいて生成される第1変数の仮想値と時系列データによって示される第1変数の実績値との差が基準を超える異常時刻を特定する特定モジュールを備える。
【0008】
この開示によれば、ユーザは、特定モジュールによって特定された異常時刻およびその前後の監視対象の状態を詳細に調査することにより、監視対象の異常な動作の原因を探索しやすくなる。このように、本開示に係る情報処理システムは、監視対象の異常な動作の原因探索を適切に支援できる。
【0009】
上述の開示において、情報処理システムは、異常時刻の一覧を示すデータを出力する出力モジュールをさらに備える。この開示によれば、ユーザは、一覧を用いて、異常時刻を容易に認識できる。
【0010】
上述の開示において、監視対象は、対象物の存在を検知する第1センサを含む。第1変数は、第1センサによる検知結果を表す。シミュレータは、仮想空間における対象物に対応する仮想対象物の移動に基づいて、第1変数の仮想値を計算する。この開示によれば、ユーザは、第1センサの異常時刻を把握できる。
【0011】
上述の開示において、監視対象は、視覚センサを含む。1以上の第2変数は、視覚センサによって計測された対象物の実位置を示す特定変数を含む。仮想モデルは、第1センサに対応する仮想センサを含む。シミュレータは、仮想空間において、特定変数の実績値によって表される実位置に対応する仮想初期位置に仮想対象物を配置する。シミュレータは、仮想空間において、仮想モデルの挙動に応じて仮想対象物を仮想初期位置から移動させる。シミュレータは、仮想空間における仮想対象物と仮想センサとの位置関係に基づいて、第1変数の仮想値を計算する。
【0012】
あるいは、仮想モデルは、第1センサに対応する仮想センサを含む。シミュレータは、監視対象を撮影するカメラから得られた実画像に基づいて対象物の実位置を特定する。シミュレータは、仮想空間において、実位置に対応する仮想初期位置に仮想対象物を配置する。シミュレータは、仮想空間において、仮想モデルの挙動に応じて仮想対象物を仮想初期位置から移動させる。シミュレータは、仮想空間における仮想対象物と仮想センサとの位置関係に基づいて、第1変数の仮想値を計算する。
【0013】
あるいは、第1センサは、監視対象の第1の場所における対象物の存在を検知する。監視対象は、第1の場所よりも上流の第2の場所における対象物の存在を検知する第2センサを含む。1以上の第2変数は、第2センサによる検知結果を表す特定変数を含む。仮想モデルは、第1センサに対応する仮想センサを含む。シミュレータは、特定変数の実績値が対象物の存在を示すことに基づいて、仮想空間における第2の場所に対応する仮想初期位置に仮想対象物を配置する。シミュレータは、仮想空間において、仮想モデルの挙動に応じて仮想対象物を仮想初期位置から移動させる。シミュレータは、仮想空間における仮想対象物と仮想センサとの位置関係に基づいて、第1変数の仮想値を計算する。
【0014】
これらの開示によれば、シミュレータは、仮想対象物の仮想初期位置を精度良く設定できる。
【0015】
上述の開示において、第1変数は、監視対象に含まれる可動部品の位置または速度またはトルクである。1以上の第2変数は、可動部品に対する指令値を示す変数を含む。シミュレータは、指令値に基づいて、可動部品に対応する仮想可動部品の第1変数の仮想値を計算する。この開示によれば、ユーザは、可動部品の動作の異常時刻を把握できる。
【0016】
本開示の別の例によれば、情報処理方法は、監視対象の状態を表す複数の変数の実績値の時系列データを用いる。情報処理方法は、1以上のプロセッサが、複数の変数のうち第1変数を除く1以上の第2変数の実績値を用いて、仮想空間における監視対象に対応する仮想モデルの挙動をシミュレートすることを備える。さらに、情報処理方法は、1以上のプロセッサが、仮想モデルにおいて生成される第1変数の仮想値と時系列データによって示される第1変数の実績値との差が基準を超える異常時刻を特定することを備える。
【0017】
本開示のさらに別の例によれば、プログラムは、上記の情報処理方法をコンピュータに実行させる。
【0018】
これらの開示によっても、情報処理方法およびプログラムは、監視対象の異常な動作の原因探索を適切に支援できる。
【発明の効果】
【0019】
本開示によれば、情報処理システム、情報処理方法およびプログラムは、監視対象の異常な動作の原因探索を適切に支援できる。
【図面の簡単な説明】
【0020】
【
図1】実施の形態に係る情報処理システムが適用される製造システムの一例を模式的に例示する図である。
【
図2】実施の形態に係る製造システムの全体構成の一例を示す模式図である。
【
図3】実施の形態に従う制御装置のハードウェア構成の一例を示す模式図である。
【
図6】視覚センサの計測結果を示す変数の一例を示す図である。
【
図7】異常時刻の第1の解析処理に関するPCのソフトウェア構成の一例を示す図である。
【
図10】PCにおける異常時刻の第1の解析処理の流れの前半を示すフローチャートである。
【
図11】PCにおける異常時刻の第1の解析処理の流れの後半を示すフローチャートである。
【
図12】ステップS20においてディスプレイに表示されるウィンドウの一例を示す図である。
【
図13】仮想ワークの仮想初期位置のさらに別の設定例を説明する図である。
【
図15】異常時刻の第2の解析処理に関するPCのソフトウェア構成の一例を示す図である。
【
図16】軸変数の仮想値の波形と軸変数の実績値の波形との一例を示す図である。
【
図17】PCにおける異常時刻の第2の解析処理の流れの前半を示すフローチャートである。
【
図18】PCにおける異常時刻の第2の解析処理の流れの後半を示すフローチャートである。
【
図19】対象期間のデータの可視化処理に関するPCのソフトウェア構成の一例を示す図である。
【
図21】ディスプレイに表示される画面例を示す図である。
【発明を実施するための形態】
【0021】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。本明細書において、特に示さない限り、「または」の用語は、「または」の意味に加えて、「および」の意味を包含する。
【0022】
§1 適用例
図1は、実施の形態に係る情報処理システムが適用される製造システムの一例を模式的に例示する図である。
図1に示すように、製造システム1は、情報処理システム100と、制御装置200と、監視対象300とを備える。
【0023】
制御装置200は、典型的には、プログラマブルロジックコントローラ(PLC)である。制御装置200は、監視対象300と接続され、予め作成された制御プログラムに従って監視対象300を制御する。
【0024】
監視対象300は、生産設備または生産ラインなど(以下、「フィールド」と称される)に対して何らかの物理的な作用を与えるアクチュエータ、フィールドに設置される各種のセンサ、またはフィールドとの間で情報を遣り取りする入出力装置などを含み得る。
【0025】
制御装置200は、監視対象の状態を表す複数の変数の実績値を保持し、複数の変数のうちの選択された1以上の変数の実績値を用いた演算を行なうことにより、監視対象300を制御する。複数の変数は、監視対象300から取得される各種の変数と、監視対象300へ出力される各種の変数とを含む。
【0026】
複数の変数の実績値は、制御周期ごとに更新される。制御装置200は、制御周期ごとの複数の変数の実績値を記録し、何らかの異常が生じた対象期間における複数の変数の実績値の時系列データ11を生成する。時系列データ11は、制御装置200から情報処理システム100に転送される。
【0027】
情報処理システム100は、時系列データ11を用いた情報処理を行なう。情報処理システム100は、1以上のコンピュータによって構成される。情報処理システム100は、データベース10と、シミュレータ20と、特定モジュール30とを備える。
【0028】
データベース10は、対象期間における監視対象300の状態を表す複数の変数の実績値の時系列データ11を記憶する。
【0029】
シミュレータ20は、複数の変数のうち第1変数を除く1以上の第2変数の実績値を用いて、仮想空間における監視対象300に対応する仮想モデルの挙動をシミュレートする。
【0030】
特定モジュール30は、仮想モデルにおいて生成される第1変数の仮想値と時系列データ11によって示される第1変数の実績値との差が基準を超える異常時刻t_bを特定する。
【0031】
本実施の形態によれば、ユーザは、特定モジュール30によって特定された異常時刻t_bおよびその前後の監視対象300の状態を詳細に調査することにより、監視対象300の異常な動作の原因を探索しやすくなる。
【0032】
このように、本実施の形態に係る情報処理システム100は、監視対象300の異常な動作の原因探索を適切に支援できる。
【0033】
§2 具体例
<製造システムの全体構成>
図2は、実施の形態に係る製造システムの全体構成の一例を示す模式図である。
図2に示されるように、製造システム1は、情報処理システム100を構成するパーソナルコンピュータ(以下、「PC100A」と称される)と、制御装置200と、監視対象300と、記憶媒体500と、ネットワークカメラ600とを備える。PC100Aおよび制御装置200およびネットワークカメラ600は、例えば汎用的なEthernet(登録商標)を用いて互いに通信可能である。なお、PC100Aと制御装置200とは、別の通信手段(例えば、Universal Serial Bus(USB))を用いて互いに通信してもよい。
【0034】
ネットワークカメラ600は、監視対象300の少なくとも一部を撮影する。ネットワークカメラ600の撮影によって生成される動画データは、例えばネットワークストレージ(図示しない)またはPC100Aに保存される。
【0035】
記憶媒体500は、揮発性記憶媒体、不揮発性記憶媒体、CF(Compact Flash)もしくはSD(Secure Digital)などの汎用的な半導体記憶デバイス、フレキシブルディスク(Flexible Disk)などの磁気記憶媒体、またはCD-ROM(Compact Disk Read Only Memory)などの光学記憶媒体を含む。記憶媒体500は、例えばSDメモリカードである。
【0036】
PC100Aは、典型的には、汎用的なアーキテクチャを有しているコンピュータである。
図2に示されるように、PC100Aは、CPU(Central Processing Unit)またはMPU(Micro Processing Unit)などのプロセッサ101と、DRAM(Dynamic Random Access Memory)またはSRAM(Static Random Access Memory)などの揮発性の記憶装置で構成されるメモリ102と、ストレージ103と、入力インターフェイス104と、表示コントローラ105と、通信インターフェイス106と、リーダ/ライタ107とを含む。これらの各部は、バスを介して互いにデータ通信が可能なように接続されている。
【0037】
プロセッサ101は、ストレージ103に格納されたプログラムを読み出して、メモリ102に展開する。プロセッサ101は、展開されたプログラムを実行する。
【0038】
ストレージ103は、例えば、HDD(Hard Disc Drive)、SSD(Solid State Drive)、またはフラッシュメモリなどの不揮発性記憶装置で構成される。ストレージ103は、プロセッサ101によって実行されるプログラムと、データベース10とを記憶する。
【0039】
プロセッサ101によって実行されるプログラムは、開発プログラム131と、ビューワープログラム132と、データ再現プログラム133と、シミュレーションプログラム134とを含む。
【0040】
開発プログラム131は、主に、制御装置200が使用する制御プログラムの開発を支援するための命令群を含む。さらに、開発プログラム131は、時系列データ11の生成に関する設定機能と、制御装置200による制御プログラムの実行状況をモニタリングする機能(以下、「プログラムモニタ機能」と称される)とを提供する。
【0041】
開発プログラム131を用いて開発された制御プログラムは、制御装置200にインストールされる。さらに、開発プログラム131の設定機能を用いて生成されたモニタリング設定データは、制御装置200に転送される。
【0042】
ビューワープログラム132は、各種の情報を可視化してユーザに提供するための命令群を含む。ビューワープログラム132は、1以上の変数の値の推移を示すグラフを表示する機能(以下、「変数グラフ表示機能」と称される)と、動画を再生する機能とを提供する。
【0043】
データ再現プログラム133は、過去のデータを再現するための命令群を含む。データ再現プログラム133は、時刻を管理する機能と、再現対象のデータを要求する機能とを含む。
【0044】
シミュレーションプログラム134は、仮想空間における監視対象300の仮想モデルの挙動をシミュレートするための命令群を含む。シミュレーションプログラム134は、仮想モデルの挙動を再現する機能(以下、「動作再現機能」と称される)、制御装置200によって制御されない対象物に対応する仮想対象物を動かすためのスクリプトと、データ管理機能と、解析機能とを含む。
【0045】
なお、スクリプトは、例えばC#形式で記述され、スタートメソッドとレンダーメソッドとを含む。スタートメソッドは、スクリプトの実行開始時に1回だけ実行される。レンダーメソッドは、周期的に実行される。
【0046】
データベース10は、時系列データ11を記憶する。時系列データ11は、制御装置200から転送され、対象期間における監視対象300の状態を表す複数の変数の時刻ごとの実績値を示す。
【0047】
入力インターフェイス104は、プロセッサ101とキーボード、マウス、またはタッチパネルなどの入力装置110との間のデータ伝送を仲介する。表示コントローラ105は、ディスプレイ120と接続され、プロセッサ101によって生成された画面データによって示される画面をディスプレイ120に表示する。通信インターフェイス106は、通信ネットワークを介して制御装置200と通信する。リーダ/ライタ107は、プロセッサ101と外部の記憶媒体(例えば記憶媒体500を含み得る)との間のデータ伝送を仲介する。
【0048】
開発プログラム131、ビューワープログラム132、データ再現プログラム133、およびシミュレーションプログラム134の各々は、単体のプログラムとしてではなく、任意のプログラムの一部に組み込まれて提供されてもよい。この場合、任意のプログラムと協働して本実施の形態に従う処理が実現される。また、開発プログラム131、ビューワープログラム132、データ再現プログラム133、およびシミュレーションプログラム134によって提供される機能の一部または全部は、専用のハードウェア回路(例えば、ASIC(Application Specific Integrated Circuit)、またはFPGA(Field-Programmable Gate Array)によって実現されてもよい。
【0049】
<制御装置のハードウェア構成>
図3は、実施の形態に従う制御装置のハードウェア構成の一例を示す模式図である。
図3に示されるように、制御装置200は、主たるコンポーネントとして、制御装置200の各部に電力PWを供給する電源回路201と、CPU202と、チップセット204と、メモリ206と、ストレージ208と、USBコントローラ250と、フィールドネットワークコントローラ252と、ネットワークコントローラ254と、タイマ260と、リーダ/ライタ270とを含む。
【0050】
CPU202は、ストレージ208に格納されたプログラムを読出して、メモリ206に展開する。CPU202は、展開されたプログラムを実行する。
【0051】
メモリ206は、DRAMまたはSRAMなどの揮発性記憶装置で構成される。メモリ206は、複数の変数の実績値を保持する。メモリ206に保持される複数の変数の実績値は、ストレージ208に格納されるプログラムをCPU202が実行することにより、制御周期に従って更新される。
【0052】
複数の変数の実績値は、一定期間だけ、メモリ206のバッファ領域207に蓄積される。
【0053】
ストレージ208は、例えば、HDD、SSDまたはフラッシュメモリなどの不揮発性記憶装置で構成されるが、一部は、揮発性ストレージで構成されてもよい。
【0054】
チップセット204は、CPU202と各コンポーネントとの間のデータの遣り取りを仲介することで、制御装置200全体としての処理を実現する。
【0055】
ストレージ208には、制御装置200の基本的な機能を実現するためのOS(Operating System)212およびスケジューラプログラム213を有するシステムプログラム211が格納される。
【0056】
さらに、ストレージ208は、PC100Aによって作成されたプログラムデータセット214を記憶する。プログラムデータセット214は、制御プログラムと、サンプリング設定データとを含む。
【0057】
制御プログラムは、監視対象300から各種の変数の値を収集する処理と、収集された変数の値に基づいた演算を行ない、監視対象300へ出力すべき各種の変数の値を生成する処理とを定義する。各種の変数の値は、メモリ206に一時的に保持される。CPU202は、制御プログラムを実行することにより、制御周期ごとに、メモリ206が保持する変数の値を更新する。
【0058】
サンプリング設定データは、時系列データ11の生成条件を定義する。時系列データ11の生成条件は、サンプリングのトリガ条件、サンプリング対象となる変数、およびサンプリング時間などを示す。
【0059】
トリガ条件は、例えば、監視対象300の異常に関連する変数の値が特定値に変化したという条件を含む。CPU202は、トリガ条件が満たされたタイミングを含む対象期間における複数の変数の値を示す時系列データ11をバッファ領域207から読み出し、リーダ/ライタ270を制御して記憶媒体500に時系列データ11を書き込む。対象期間は、例えば、トリガ条件が満たされたタイミングの前の第1所定期間と、トリガ条件が満たされたタイミングの後の第2所定期間とを含む。第1所定期間および第2所定期間の長さは、サンプリング設定データによって定義される。
【0060】
USBコントローラ250は、USB接続を介して外部の装置(PC100Aを含み得る)との間のデータの遣り取りを担当する。
【0061】
フィールドネットワークコントローラ252は、フィールドネットワークに接続するコネクタ252aを有し、監視対象300との間のデータの遣り取りを制御する。フィールドネットワークコントローラ252は、フィールドネットワークから受信する入力データおよび制御装置200からフィールドネットワークに出力される出力データを格納する内部バッファを有する。
【0062】
ネットワークコントローラ254は、上位ネットワークに接続するコネクタ254aを有し、制御装置200と外部の装置(PC100Aを含み得る)との間のデータの遣り取りを制御する。
【0063】
タイマ260は、時間を計測するクロック回路またはカウンタ回路を含んで構成されるが、このような回路に限定されず、CPU202が実行するソフトウェアモジュールにより構成されてもよい。
【0064】
リーダ/ライタ270は、CPU202と記憶媒体500との間のデータ伝送を仲介する。CPU202は、サンプリング設定データによって示される生成条件に従って生成された時系列データ11をバッファ領域207から記憶媒体500にコピーする。記憶媒体500に保存された時系列データ11は、所定のタイミングにおいて、ネットワークコントローラ254を介して、PC100Aに転送される。あるいは、ユーザは、記憶媒体500をPC100Aに接続し、時系列データ11を記憶媒体500からPC100Aにコピーまたは移動させてもよい。
【0065】
<異常時刻の第1の解析処理>
図4~
図13を参照して、PC100Aによる異常時刻の第1の解析処理について説明する。
【0066】
(監視対象)
図4は、監視対象の構成の一例を示す図である。
図4に示されるように、監視対象300Aは、搬送システム310と、ロボット320と、視覚センサ330と、物体検知センサ340とを含む。
【0067】
搬送システム310は、本開示の対象物の一例であるワーク3を搬送する。搬送システム310は、エンコーダ312を含む。エンコーダ312の計測結果を示す変数は、制御装置200によって収集される。エンコーダ312の計測結果を示す変数の実績値は、「エンコーダ値」と称される。
【0068】
ロボット320は、ワーク3に対する加工などを行なう。ロボット320は、制御装置200から受ける各種の変数の実績値(指令値)に応じた動作を行なう。ロボット320の現在の状態を表す変数の実績値(状態値)は、制御装置200によって収集される。
【0069】
視覚センサ330は、監視対象300Aを撮影するカメラ332から取得された画像に対してパターンマッチングなどの画像計測処理を行なう。カメラ332は、搬送システム310の一部の領域313を撮影するように設置される。
【0070】
図5は、視覚センサの処理内容を説明する図である。視覚センサ330は、カメラ332が撮影すると、オン状態の撮影フラグを制御装置200に出力する。撮影フラグは、制御装置200によって収集される変数の1つである。視覚センサ330は、カメラ332から画像を取得する。画像は、搬送システム310の一部の領域313を撮像することにより得られる。視覚センサ330は、画像に写るワーク3の個数と、各ワーク3の実位置および実姿勢を計測する。さらに、視覚センサ330は、画像に写るワーク3の種別を判定してもよい。視覚センサ330の計測結果を示す変数の実績値は、制御装置200によって収集される。
【0071】
図6は、視覚センサ330の計測結果を示す変数の一例を示す図である。
図6に示されるように、視覚センサ330から、変数「コントローラ名」、変数「ワーク3の検出フラグ」、変数「ワーク3の検出数」、変数「ワーク3のX座標」、変数「ワーク3のY座標」、変数「ワーク3の回転角度」、変数「ワーク3の種別」の実績値が収集される。変数「ワーク3のX座標」、変数「ワーク3のY座標」、変数「ワーク3の回転角度」、変数「ワーク3の種別」の実績値は、検出された各ワーク3について計測される。そのため、変数「ワーク3のX座標」、変数「ワーク3のY座標」、変数「ワーク3の回転角度」、変数「ワーク3の種別」は、配列変数を構成する。
【0072】
図4に戻って、物体検知センサ340は、搬送システム310の領域313よりも下流側の場所におけるワーク3の存在を検知する。物体検知センサ340による検知結果を示す変数の実績値は、制御装置200によって収集される。物体検知センサ340から出力される変数は、物体が存在することを示す「1」と、物体が存在しないことを示す「0」とのいずれかの値をとる。物体検知センサ340は、本開示の「第1センサ」の一例である。
【0073】
(ソフトウェア構成)
図7は、異常時刻の第1の解析処理に関するPCのソフトウェア構成の一例を示す図である。
図7に示されるように、PC100Aは、データ再現モジュール14と、動作設定モジュール21と、初期情報設定モジュール22と、変数選択モジュール23と、動作再現モジュール24と、仮想ワーク生成モジュール25と、スクリプト実行モジュール26と、仮想空間構築モジュール27と、仮想センサモジュール28と、特定モジュール30と、出力モジュール32とを備える。
【0074】
データ再現モジュール14は、
図2に示すプロセッサ101がデータ再現プログラム133を実行することにより実現される。動作設定モジュール21、初期情報設定モジュール22、変数選択モジュール23、動作再現モジュール24、仮想ワーク生成モジュール25、スクリプト実行モジュール26、仮想空間構築モジュール27、仮想センサモジュール28、特定モジュール30、および出力モジュール32は、プロセッサ101がシミュレーションプログラム134を実行することにより実現される。
【0075】
なお、動作設定モジュール21、初期情報設定モジュール22、変数選択モジュール23、動作再現モジュール24、仮想ワーク生成モジュール25、スクリプト実行モジュール26、仮想空間構築モジュール27、および仮想センサモジュール28は、
図1に示すシミュレータ20を構成する。
【0076】
データ再現モジュール14は、データベース10を用いて、対象期間に含まれる時刻のデータを再現する。データ再現モジュール14は、時刻制御モジュール15と、データ要求モジュール16とを含む。
【0077】
時刻制御モジュール15は、対象期間内の時刻を表すカウンタ値を管理する。カウンタ値は、制御周期の周期カウンタの値である。このため、カウンタ値は、対象期間の開始時からの経過時間を表すことができる。
【0078】
時刻制御モジュール15は、カウンタ値の更新を行なう。具体的には、時刻制御モジュール15は、初期カウンタ値を「0」に設定し、その後、規定時間が経過するたびにカウンタ値に1を加算する。
【0079】
データ要求モジュール16は、カウンタ値が表す指定時刻に応じたクエリを生成する。指定時刻は、対象期間の開始時刻から、規定時間とカウンタ値との積だけ経過した時刻である。データ要求モジュール16は、生成したクエリを用いて、データベース10に格納された時系列データ11から指定時刻における各変数の実績値を取得する。データ要求モジュール16は、取得した各変数の実績値を動作再現モジュール24、仮想ワーク生成モジュール25、スクリプト実行モジュール26および特定モジュール30に出力する。
【0080】
動作設定モジュール21は、監視対象300Aを構成する各可動部品について、関連する変数の値と可動部品の動作との対応関係を示す対応関係情報を設定する。動作設定モジュール21は、ユーザ入力に応じて対応関係情報を設定する。
【0081】
図8は、対応関係情報の一例を示す図である。
図8に示されるように、対応関係情報21aは、可動部品の名称と、可動部品の動作と関連する変数と、並進動作のベクトル(並進ベクトル)と、回転動作の情報(回転情報)とを示す。並進ベクトルは、変数の値に応じた可動部品の並進動作を定義する。回転情報は、変数の値に応じた可動部品の回転動作を定義する。回転情報は、回転軸を定義する情報または回転量を定義する情報を含む。
【0082】
図7に戻って、初期情報設定モジュール22は、監視対象300Aの各部品および監視対象300Aの周囲の物体(ワーク3を含む)の各々について、対象期間の開始時刻における初期情報を設定する。監視対象300Aの周囲の物体は、ワーク3の他に、例えば、トレーまたは固定台などを含み得る。初期情報設定モジュール22は、ユーザ入力に応じて初期情報を設定する。
【0083】
図9は、初期情報の一例を示す図である。
図9に示されるように、初期情報22aは、オブジェクト名と、外表面のメッシュ形状と、位置姿勢を定義付ける座標と、従属情報とを含む。従属情報は、従属先(監視対象300Aの部品、監視対象300Aの周囲の物体を含む)と、従属先との相対位置関係とを示す。なお、従属先が存在しない場合、従属情報はNullに設定される。第1物体が第2物体に従属することは、第1物体が第2物体との相対位置関係を維持しながら第2物体に追従することを意味する。
【0084】
図7に戻って、変数選択モジュール23は、複数の変数のうちの第1変数を選択する。変数選択モジュール23は、ユーザ入力に応じて、第1変数を選択してもよい。あるいは、変数選択モジュール23は、監視対象300Aが物体検知センサを含むことに応じて、物体検知センサから出力される変数を第1変数として選択してもよい。第1の解析処理において、物体検知センサ340から出力される変数が「第1変数」として選択される。
【0085】
動作再現モジュール24は、複数の変数のうち第1変数を除く1以上の第2変数の実績値に基づいて、対象期間における監視対象300Aの仮想モデルの動作をシミュレートする。
【0086】
具体的には、動作再現モジュール24は、データ再現モジュール14から、対象期間における時刻ごとの1以上の第2変数の実績値を時系列に沿って順に取得する。動作再現モジュール24は、各時刻の1以上の第2変数の実績値に基づいて、仮想モデルの状態を示すデータ(1)を生成する。データ(1)は、仮想モデルの各部分の位置姿勢を示す。以下、対象期間の開始時刻t0から制御周期のk倍が経過した時刻tkに対応するデータ(1)は、「第kデータ(1)」と称される。
【0087】
動作再現モジュール24は、時刻tkにおける1以上の第2変数の実績値を取得すると、取得した実績値と対応関係情報21aとに基づいて、時刻tkにおける仮想モデルのうち各可動部品に対応する部分の動作をシミュレートする。動作再現モジュール24は、各部分の動作を統合することにより、時刻tkにおける仮想モデルの状態を示す第kデータ(1)を生成する。動作再現モジュール24は、第kデータ(1)を仮想空間構築モジュール27に出力する。
【0088】
仮想ワーク生成モジュール25は、ワーク3に対応する仮想ワークの仮想初期位置を設定する。仮想ワーク生成モジュール25は、データ再現モジュール14から、対象期間における時刻ごとの1以上の第2変数の実績値を時系列に沿って順に取得する。仮想ワーク生成モジュール25は、取得した1以上の第2変数の実績値の中に視覚センサ330の計測結果を示す変数の実績値が含まれることに応じて、仮想ワークの仮想初期位置を設定する。仮想ワークは、本開示の「仮想対象物」の一例である。
【0089】
具体的には、仮想ワーク生成モジュール25は、視覚センサ330によって計測されたワーク3の実位置を示す特定変数の実績値に基づいて、仮想ワークの仮想初期位置を設定する。さらに、仮想ワーク生成モジュール25は、視覚センサによって計測されたワーク3の実姿勢を示す変数の実績値に基づいて、仮想ワークの仮想初期姿勢を設定する。
【0090】
仮想ワーク生成モジュール25は、カメラ332が画像を撮影してから、視覚センサ330が当該画像に基づいてワークの実位置および実姿勢を計測するまでのタイムラグを考慮して、仮想初期位置を補正することが好ましい。例えば、仮想ワーク生成モジュール25は、特開2017-97426号公報(特許文献2)に記載の技術を用いて、エンコーダ312の計測結果を示す変数の実績値(エンコーダ値)と、視覚センサ330から出力される撮影フラグとを用いて、仮想初期位置を補正する。
【0091】
具体的には、仮想ワーク生成モジュール25は、データ再現モジュール14からオン状態を示す撮影フラグを受けると、当該撮影フラグに対応する時刻tpと、当該時刻tpにおけるエンコーダ値とを記録する。仮想ワーク生成モジュール25は、時刻tqに対応する1以上の第2変数の実績値の中に視覚センサ330の計測結果を示す変数の実績値が含まれる場合、当該1以上の第2変数の実績値の中から時刻tqにおけるエンコーダ値を抽出する。時刻tqは、時刻tpより後である。仮想ワーク生成モジュール25は、時刻tpにおけるエンコーダ値と時刻tqにおけるエンコーダ値との差に基づいて、時刻tpから時刻tqまでの間における搬送システム310の移動量を計算する。仮想ワーク生成モジュール25は、当該移動量だけ仮想初期位置を補正する。
【0092】
仮想ワーク生成モジュール25は、仮想初期位置および仮想初期姿勢を設定すると、仮想初期位置および仮想初期姿勢を示すデータ(2)を仮想空間構築モジュール27に出力する。
【0093】
スクリプト実行モジュール26は、対象期間における仮想ワークの運動をシミュレートする。スクリプト実行モジュール26は、データ再現モジュール14から、対象期間における時刻ごとの1以上の第2変数の実績値を時系列に沿って順に取得する。スクリプト実行モジュール26は、時刻tkにおける1以上の第2変数の実績値に基づいて、ワーク3の従属先の部品に対応する仮想モデルの部分の動作をシミュレートする。当該シミュレートの方法は、動作再現モジュール24におけるシミュレートの方法と同じである。スクリプト実行モジュール26は、ワーク3の初期情報22aに含まれる従属情報が示す相対位置関係と、従属先の部品に対応する仮想モデルの部品の位置姿勢とに基づいて、時刻tkにおける仮想ワークの位置姿勢をシミュレートする。スクリプト実行モジュール26は、時刻tkにおける仮想ワークの位置姿勢を示す第kデータ(3)を生成する。動作再現モジュール24は、第kデータ(3)を仮想空間構築モジュール27に出力する。
【0094】
スクリプト実行モジュール26は、仮想空間に複数の仮想ワークが存在する場合、複数の仮想ワークの各々について、位置姿勢をシミュレートする。
【0095】
なお、スクリプト実行モジュール26は、動作再現モジュール24によって生成された第kデータ(1)と従属情報が示す相対位置関係とに基づいて、時刻tkにおける仮想ワークの位置姿勢をシミュレートしてもよい。
【0096】
仮想空間構築モジュール27は、対象期間における時刻ごとに、仮想空間を構築する。仮想空間構築モジュール27は、動作再現モジュール24から第kデータ(1)を取得すると、第kデータ(1)によって示される位置姿勢をとるように、仮想空間上に仮想モデルを配置する。
【0097】
仮想空間構築モジュール27は、仮想ワーク生成モジュール25からデータ(2)を取得すると、仮想空間において、データ(2)によって示される仮想初期位置に仮想ワークを配置する。このとき、仮想空間構築モジュール27は、データ(2)によって示される仮想初期姿勢と一致するように仮想ワークの姿勢を決定する。
【0098】
仮想空間構築モジュール27は、スクリプト実行モジュール26から第kデータ(3)を取得すると、第kデータ(3)によって示される位置姿勢をとるように、仮想空間において、仮想ワークを初期位置姿勢から移動させる。
【0099】
仮想センサモジュール28は、物体検知センサ340に対応する仮想センサの動作をシミュレートする。仮想センサは、仮想モデルの一部であり、監視対象300Aにおける物体検知センサ340の位置姿勢に応じて仮想空間に配置される。仮想センサモジュール28は、仮想空間における仮想ワークと仮想センサとの位置関係に基づいて、第1変数の仮想値を計算する。例えば、仮想センサモジュール28は、仮想空間において、仮想センサによる物体検知の対象領域に仮想ワークが位置することに応じて、第1変数の仮想値を物体が存在することを示す値に設定する。
【0100】
特定モジュール30は、仮想モデルにおいて生成される第1変数の仮想値と時系列データ11によって示される第1変数の実績値との差が基準を超える異常時刻t_bを特定する。
【0101】
出力モジュール32は、異常時刻t_bの一覧を示すデータを生成し、当該データを表示コントローラ105に出力する。これにより、異常時刻t_bの一覧がディスプレイ120に表示される。
【0102】
(第1の解析処理の流れ)
図10は、PCにおける異常時刻の第1の解析処理の流れの前半を示すフローチャートである。
図11は、PCにおける異常時刻の第1の解析処理の流れの後半を示すフローチャートである。
【0103】
まずステップS1において、PC100Aのプロセッサ101は、対象期間の開始時刻t0を時刻tとして設定する。具体的には、プロセッサ101は、カウンタ値を0に設定する。さらに、プロセッサ101は、時刻t_r,t_vを-1に設定し、序数iを0に設定する。
【0104】
次のステップS2において、プロセッサ101は、時刻tにおける複数の変数の実績値を時系列データ11から取得する。複数の変数は、物体検知センサ340から取得される第1変数と、第1変数以外の1以上の第2変数とを含む。
【0105】
次のステップS3において、プロセッサ101は、第1変数の実績値が「0」から「1」に変化したか否かを判断する。
【0106】
第1変数の実績値が「0」から「1」に変化した場合(ステップS3でYES)、ステップS4において、プロセッサ101は、時刻t_rを時刻tと同一時刻に設定する。すなわち、時刻t_rは、第1変数の実績値が「0」から「1」に変化した時刻を表す。
【0107】
ステップS4の後、または、第1変数の実績値が「0」から「1」に変化していない場合(ステップS3でNO)、第1の解析処理はステップS5に移る。ステップS5において、プロセッサ101は、1以上の第2変数の実績値に基づいて、監視対象300Aに対応する仮想モデルの挙動をシミュレートする。ステップS5において、プロセッサ101は、1以上の第2変数の実績値が視覚センサ330の計測結果を示す変数の実績値を含む場合、当該計測結果に応じて仮想ワークの仮想初期位置を設定する。そして、プロセッサ101は、仮想空間において、仮想初期位置に仮想ワークを配置する。さらに、ステップS5において、プロセッサ101は、仮想空間上に既に仮想ワークが配置されている場合、仮想モデルの挙動に応じて、既存の仮想ワークを仮想初期位置から移動させる。
【0108】
次のステップS6において、プロセッサ101は、仮想空間における、仮想ワークと物体検知センサ340に対応する仮想センサとの位置関係に基づいて、仮想センサからの第1変数の仮想値を計算する。
【0109】
次のステップS7において、プロセッサ101は、第1変数の仮想値が「0」から「1」に変化したか否かを判断する。
【0110】
第1変数の仮想値が「0」から「1」に変化した場合(ステップS7でYES)、ステップS8において、プロセッサ101は、時刻t_vを時刻tと同一時刻に設定する。すなわち、時刻t_vは、第1変数の仮想値が「0」から「1」に変化した時刻を表す。
【0111】
なお、仮想空間に仮想ワークが存在しない場合、プロセッサ101は、ステップS6~S8の処理を省略する。
【0112】
次のステップS9において、プロセッサ101は、時刻t_r≠-1、かつ、時刻t_v≠-1が満たされるか否かを判断する。時刻t_r≠-1、かつ、時刻t_v≠-1が満たされる場合(ステップS9でYES)、ステップS10において、プロセッサ101は、|t_r-t_v|>Th1が満たされるか否かを判断する。閾値Th1は、予め定められる。|t_r-t_v|>Th1が満たされる場合(ステップS10でYES)、ステップS11において、プロセッサ101は、i番目の異常時刻t_b[i]を時刻t_vと同一時刻に設定する。さらに、プロセッサ101は、序数iに1を加算する。
【0113】
ステップS11の後、または、|t_r-t_v|>Th1が満たされない場合(ステップS10でNO)、第1の解析処理はステップS12に移る。ステップS12において、プロセッサ101は、時刻t_r,t_vを-1に設定し直す。
【0114】
時刻t_r≠-1、かつ、時刻t_v≠-1が満たされない場合(ステップS9でNO)、ステップS13において、プロセッサ101は、時刻t_r≠-1が満たされるか否かを判断する。
【0115】
時刻t_r≠-1が満たされない場合(ステップS13でNO)、ステップS14において、プロセッサ101は、時刻t_v≠-1が満たされるか否かを判断する。時刻t_v≠-1が満たされる場合(ステップS14でYES)、ステップS15において、プロセッサ101は、|t_v-t|>Th2が満たされるか否かを判断する。閾値Th2は、予め定められた。なお、閾値Th2は、閾値Th1と同じであってもよいし、異なっていてもよい。|t_v-t|>Th2が満たされる場合(ステップS15でYES)、第1の解析処理はステップS11に移る。
【0116】
時刻t_r≠-1が満たされる場合(ステップS13でYES)、ステップS16において、プロセッサ101は、|t_r-t|>Th2が満たされるか否かを判断する。|t_r-t|>Th2が満たされる場合(ステップS16でYES)、ステップS17において、プロセッサ101は、i番目の異常時刻t_b[1]を時刻t_rと同一時刻に設定する。さらに、プロセッサ101は、序数iに1を加算する。ステップS17の後、第1の解析処理はステップS12に移る。
【0117】
ステップS12の後、あるいは、ステップS15,S16でNOの場合、第1の解析処理はステップS18に移る。ステップS18において、プロセッサ101は、時刻tが対象期間の終了時刻Tより前か否かを判断する。時刻tが終了時刻Tよりも前である場合(ステップS18でYES)、ステップS19において、プロセッサ101は、時刻tを制御周期分だけ進める。具体的には、プロセッサ101は、カウンタ値を1だけ進める。ステップS19の後、第1の解析処理はステップS2に戻る。時刻tが終了時刻Tよりも前ではない場合(ステップS18でNO)、ステップS20において、プロセッサ101は、異常時刻t_bの一覧を示すデータを生成し、当該データを表示コントローラ105に出力する。これにより、異常時刻t_bの一覧がディスプレイ120に表示される。ステップS20の後、第1の解析処理は終了する。
【0118】
(画面例)
図12は、ステップS20においてディスプレイに表示されるウィンドウの一例を示す図である。
図12に示すウィンドウのデータは、プロセッサ101によって生成される。
図12に示されるように、ウィンドウ50は、表示領域51,52を含む。表示領域51には、第1変数の仮想値の波形と、第1変数の実績値の波形とが表示される。表示領域52には、仮想値と実績値との差が基準を超える異常時刻t_bの一覧(t_b[1],t_b[2])が表示される。
【0119】
(第1の解析処理の変形例)
上記の説明では、仮想ワーク生成モジュール25は、取得した1以上の第2変数の実績値の中に視覚センサ330の計測結果を示す変数の実績値が含まれることに応じて、仮想ワークの仮想初期位置を設定する。しかしながら、仮想ワークの仮想初期位置の設定方法はこれに限定されない。
【0120】
例えば、仮想ワーク生成モジュール25は、カメラ332によって撮影された画像に基づいて、仮想ワークの仮想初期位置を設定してもよい。例えば、カメラ332によって撮影された画像は、データベース10に蓄積される。データ再現モジュール14は、指定時刻に対応する画像がデータベース10に蓄積されている場合、複数の変数の実績値とともに当該画像を仮想ワーク生成モジュール25に出力する。仮想ワーク生成モジュール25は、データ再現モジュール14から画像を受けると、当該画像に対して視覚センサ330と同じ処理を実行することにより、当該画像に写るワーク3の実位置および実姿勢を特定する。仮想ワーク生成モジュール25は、特定した実位置および実姿勢に基づいて、仮想ワークの仮想初期位置および仮想初期姿勢を設定すればよい。そして、仮想空間構築モジュール27は、実位置に対応する仮想初期位置に仮想ワークを配置する。このとき、仮想空間構築モジュール27は、仮想ワークの姿勢を、実姿勢に対応する仮想初期姿勢と一致させる。
【0121】
図13は、仮想ワークの仮想初期位置のさらに別の設定例を説明する図である。
図13に示されるように、搬送システム310において、ワーク3は、一列に沿って搬送される。物体検知センサ345は、物体検知センサ340よりも上流側に配置され、場所314におけるワーク3の存在を検知する。物体検知センサ340は、場所315におけるワーク3の存在を検知する。物体検知センサ340,345の検知精度は、設置環境または仕様に依存する。
図13に示す例では、物体検知センサ345の検知精度は、物体検知センサ340の検知精度よりも優れている。
図13において、物体検知センサ345は、本開示の「第2センサ」の一例である。場所314は、本開示の「第2の場所」の一例であり、場所315は、本開示の「第1の場所」の一例である。
【0122】
1以上の第2変数は、物体検知センサ345の検知結果を示す特定変数を含む。仮想ワーク生成モジュール25は、特定変数の実績値がワーク3の存在を示すことに基づいて、仮想空間における場所314に対応する位置を仮想ワークの仮想初期位置として設定すればよい。
【0123】
<異常時刻の第2の解析処理>
図14~
図18を参照して、PC100Aによる異常時刻の第2の解析処理について説明する。
【0124】
(監視対象)
図14は、監視対象の構成の別の例を示す図である。
図14に示されるように、監視対象300Bは、電動シリンダ350を含む。電動シリンダ350は、可動部品352を並進移動させることにより第1部材420に対して力を印加し、第2部材430に形成された凹部に第1部材420を嵌め込む動作を繰り返し行なう。可動部品352の動作に関する変数は、「軸変数」と称される。軸変数は、可動部品352に対する指令値を示す変数と、可動部品352の現在の状態を示す変数とを含む。可動部品352の状態を示す変数は、例えば、可動部品352の位置または速度またはトルクの状態値(実測値)を示す。指令値は、制御装置200によって生成される。位置または速度またはトルクの状態値は、電動シリンダ350から収集される。軸変数は、アナログ値を有する。
【0125】
電動シリンダ350が正常に動作すると、第1部材420は、第2部材430の凹部に完全に嵌め込まれる。電動シリンダ350において異常(例えば減速機異常)が発生すると、第1部材420は、第2部材430の凹部に不完全に嵌め込まれる。
【0126】
(ソフトウェア構成)
図15は、異常時刻の第2の解析処理に関するPCのソフトウェア構成の一例を示す図である。
図15に示されるように、PC100Aは、データ再現モジュール14と、動作設定モジュール21と、初期情報設定モジュール22と、変数選択モジュール23と、動作再現モジュール24と、仮想空間構築モジュール27と、軸変数値算出モジュール29と、特定モジュール30と、出力モジュール32とを備える。
【0127】
データ再現モジュール14は、
図2に示すプロセッサ101がデータ再現プログラム133を実行することにより実現される。動作設定モジュール21、初期情報設定モジュール22、変数選択モジュール23、動作再現モジュール24、仮想空間構築モジュール27、軸変数値算出モジュール29、特定モジュール30、および出力モジュール32は、プロセッサ101がシミュレーションプログラム134を実行することにより実現される。
【0128】
なお、動作設定モジュール21、初期情報設定モジュール22、変数選択モジュール23、動作再現モジュール24、仮想空間構築モジュール27、および軸変数値算出モジュール29は、
図1に示すシミュレータ20を構成する。
【0129】
データ再現モジュール14は、第1の解析処理と同じように、データベース10を用いて、対象期間に含まれる指定時刻のデータを再現する。データ再現モジュール14は、再現した各変数の実績値を動作再現モジュール24および特定モジュール30に出力する。
【0130】
動作設定モジュール21は、監視対象300Bを構成する可動部品352について、関連する変数の値と可動部品352の動作との対応関係を示す対応関係情報21a(
図8参照)を設定する。動作設定モジュール21は、ユーザ入力に応じて対応関係情報21aを設定する。
【0131】
初期情報設定モジュール22は、監視対象300Bの各部品および監視対象300Bの周囲の物体(第1部材420および第2部材430を含む)の各々について、対象期間の開始時刻における初期情報22a(
図9参照)を設定する。初期情報設定モジュール22は、ユーザ入力に応じて初期情報22aを設定する。
【0132】
変数選択モジュール23は、複数の変数のうちの第1変数を選択する。変数選択モジュール23は、ユーザ入力に応じて、第1変数を選択してもよい。あるいは、変数選択モジュール23は、監視対象300Bが電動シリンダを含むことに応じて、電動シリンダから出力される軸変数のうち可動部品352の状態(位置または速度またはトルク)を示す変数を第1変数として選択してもよい。第2の解析処理において、電動シリンダ350から出力される軸変数のうち可動部品352の状態を示す変数が「第1変数」として選択される。
【0133】
動作再現モジュール24は、複数の変数のうち第1変数を除く1以上の第2変数の実績値に基づいて、対象期間における監視対象300Bの仮想モデルの動作をシミュレートする。具体的には、動作再現モジュール24は、データ再現モジュール14から、対象期間における時刻ごとの1以上の第2変数の実績値を時系列に沿って順に取得する。動作再現モジュール24は、仮想モデルのうち可動部品352に対応する部分を除く部分の状態を示すデータ(1)を生成する。データ(1)は、仮想モデルのうち可動部品352に対応する部分を除く各部分の位置姿勢を示す。以下、対象期間の開始時刻t0から制御周期のk倍が経過した時刻tkに対応するデータ(1)は、「第kデータ(1)」と称される。
【0134】
軸変数値算出モジュール29は、対象期間における時刻ごとの1以上の第2変数の実績値を時系列に沿って順に取得する。軸変数値算出モジュール29は、1以上の第2変数の実績値のうちの可動部品352に対する指令値に基づいて、軸変数のうち可動部品352の状態を示す変数(第1変数)の仮想値を算出する。仮想値は、仮想モデルのうち可動部品352に対応する仮想可動部品の位置または速度またはトルクを表す。軸変数値算出モジュール29は、仮想モデルのうち可動部品352に対応する仮想可動部品の状態を示すデータ(2)を生成する。データ(2)は、仮想可動部品の位置姿勢を示す。以下、対象期間の開始時刻t0から制御周期のk倍が経過した時刻tkに対応するデータ(2)は、「第kデータ(2)」と称される。
【0135】
仮想空間構築モジュール27は、対象期間における時刻ごとに、仮想空間を構築する。仮想空間構築モジュール27は、軸変数値算出モジュール29から第kデータ(2)を取得すると、第kデータ(2)によって示される位置姿勢をとるように、仮想空間上に仮想可動部品を配置する。同様に、仮想空間構築モジュール27は、動作再現モジュール24から第kデータ(1)を取得すると、第kデータ(1)によって示される位置姿勢をとるように、仮想モデルのうち仮想可動部品以外の部品のモデルを配置する。
【0136】
特定モジュール30は、軸変数値算出モジュール29によって生成される第1変数の仮想値と時系列データ11によって示される第1変数の実績値との差が基準を超える異常時刻t_bを特定する。
【0137】
図16は、第1変数(可動部品の状態を示す変数)の仮想値の波形と第1変数の実績値の波形との一例を示す図である。
図16には、速度を示す状態値の波形が示される。仮想可動部品は、軸変数値算出モジュール29によって算出された第1変数の仮想値に応じた動作を行なう。一方、監視対象300Bに何らかの異常が発生した場合、電動シリンダ350は、指令値に従った動作を行なうことができない。その結果、
図16に示されるように、第1変数(可動部品の状態を示す変数)の実績値の波形は、第1変数の仮想値の波形と異なり得る。これにより、特定モジュール30は、第1変数の仮想値と第1変数の実績値との差に基づいて、異常時刻t_bを特定できる。例えば、特定モジュール30は、第1変数の仮想値の極大値と、第1変数の実績値の極大値との差が基準を超えることに応じて、第1変数の実績値が極大値をとる時刻を異常時刻t_bとして特定する。
【0138】
出力モジュール32は、異常時刻t_bの一覧を示すデータを生成し、当該データを表示コントローラ105に出力する。これにより、異常時刻t_bの一覧がディスプレイ120に表示される。
【0139】
(第2の解析処理の流れ)
図17は、PCにおける異常時刻の第2の解析処理の流れの前半を示すフローチャートである。
図18は、PCにおける異常時刻の第2の解析処理の流れの後半を示すフローチャートである。
【0140】
まずステップS31において、PC100Aのプロセッサ101は、対象期間の開始時刻t0を時刻tとして設定する。具体的には、プロセッサ101は、カウンタ値を0に設定する。さらに、プロセッサ101は、時刻t_r,t_vを-1に設定し、速度v_r,v_vを-1に設定し、序数iを0に設定する。
【0141】
次のステップS32において、プロセッサ101は、時刻tにおける複数の変数の実績値を時系列データ11から取得する。複数の変数は、電動シリンダ350から取得される軸変数(第1変数)と、軸変数以外の1以上の第2変数とを含む。1以上の第2変数は、電動シリンダ350への指令に関する変数を含む。
【0142】
次のステップS33において、プロセッサ101は、時刻tにおける軸変数「速度」の実績値が速度v_rよりも大きいか否かを判断する。
【0143】
軸変数「速度」の実績値が速度v_rよりも大きい場合(ステップS33でYES)、ステップS34において、プロセッサ101は、速度v_rを時刻tにおける軸変数「速度」の実績値と同じ速度に設定する。
【0144】
軸変数「速度」の実績値が速度v_r以下である場合(ステップS33でNO)、ステップS35において、プロセッサ101は、時刻t_rを時刻tと同一時刻に設定する。
【0145】
ステップS34またはステップS35の後、第2の解析処理はステップS36に移る。ステップS36において、プロセッサ101は、1以上の第2変数の実績値に基づいて、監視対象300Bに対応する仮想モデルの挙動をシミュレートする。さらに、プロセッサ101は、仮想モデルの挙動に応じて、第1変数である軸変数「速度」の仮想値を算出する。
【0146】
次にステップS37において、プロセッサ101は、軸変数「速度」の仮想値が速度v_vよりも大きいか否かを判断する。
【0147】
軸変数「速度」の仮想値が速度v_vよりも大きい場合(ステップS37でYES)、ステップS38において、プロセッサ101は、速度v_vを時刻tにおける軸変数「速度」の仮想値と同じ速度に設定する。
【0148】
軸変数「速度」の仮想値が速度v_v以下である場合(ステップS37でNO)、ステップS39において、プロセッサ101は、時刻t_vを時刻tと同一時刻に設定する。
【0149】
ステップS38またはステップS39の後、第2の解析処理はステップS40に移る。ステップS40において、プロセッサ101は、時刻t_r≠-1、かつ、時刻t_v≠-1が満たされるか否かを判断する。時刻t_r≠-1、かつ、時刻t_v≠-1が満たされる場合(ステップS40でYES)、ステップS41において、プロセッサ101は、|v_r-v_v|>Th3が満たされるか否かを判断する。閾値Th3は、予め定められる。|v_r-v_v|>Th3が満たされる場合(ステップS41でYES)、ステップS42において、プロセッサ101は、i番目の異常時刻t_b[i]を時刻t_rと同一時刻に設定する。さらに、プロセッサ101は、序数iに1を加算する。
【0150】
ステップS42の後、または、|v_r-v_v|>Th3が満たされない場合(ステップS41でNO)、第2の解析処理はステップS43に移る。ステップS43において、プロセッサ101は、時刻t_r,t_vを-1に設定し直す。
【0151】
ステップS43の後、または、時刻t_r≠-1、かつ、時刻t_v≠-1が満たされない場合(ステップS40でNO)、第2の解析処理はステップS44に移る。ステップS44において、プロセッサ101は、時刻tが対象期間の終了時刻Tより前か否かを判断する。時刻tが終了時刻Tよりも前である場合(ステップS44でYES)、ステップS45において、プロセッサ101は、時刻tを制御周期分だけ進める。具体的には、プロセッサ101は、カウンタ値を1だけ進める。ステップS45の後、第2の解析処理はステップS32に戻る。
【0152】
時刻tが終了時刻Tよりも前ではない場合(ステップS44でNO)、ステップS46において、プロセッサ101は、異常時刻t_bの一覧を示すデータを生成し、当該データを表示コントローラ105に出力する。これにより、異常時刻t_bの一覧がディスプレイ120に表示される。ステップS46の後、第2の解析処理は終了する。
【0153】
図17および
図18に示すフローチャートによれば、軸変数「速度」の実績値が速度v_r以下となるまで、速度v_rが更新され続ける。これにより、速度v_rは、軸変数「速度」の実績値の極大値を表す。時刻t_rは、軸変数「速度」の実績値が速度v_r以下となる時刻t、つまり、軸変数「速度」の実績値が極大となるときの時刻を表す。同様に、軸変数「速度」の仮想値が速度v_v以下となるまで、速度v_vが更新され続ける。これにより、速度v_vは、軸変数「速度」の仮想値の極大値を表す。時刻t_vは、軸変数「速度」の仮想値が速度v_v以下となる時刻t、つまり、軸変数「速度」の仮想値が極大となるときの時刻を表す。
【0154】
ステップS40~S42により、軸変数「速度」の仮想値の極大値と軸変数「速度」の実績値の極大値との差の絶対値が閾値Th3を超える場合に、軸変数「速度」の実績値が極大となるときの時刻t_rが異常時刻t_bとして特定される。
【0155】
(第2の解析処理の変形例)
軸変数値算出モジュール29は、可動部品352に対応する仮想可動部品の位置を示す軸変数(軸変数「位置」)の仮想値を計算してもよい。この場合、特定モジュール30は、軸変数「位置」の仮想値と軸変数「位置」の実績値との差が基準を超える時刻を異常時刻t_bとして特定すればよい。
【0156】
<対象期間のデータの可視化処理>
図19は、対象期間のデータの可視化処理に関するPCのソフトウェア構成の一例を示す図である。
図19に示されるように、PC100Aは、時刻指定モジュール13と、データ再現モジュール14と、波形表示モジュール41と、プログラム表示モジュール42と、動画再生モジュール43とを備える。波形表示モジュール41および動画再生モジュール43は、プロセッサ101がビューワープログラム132を実行することにより実現される。プログラム表示モジュール42は、プロセッサ101が開発プログラム131を実行することにより実現される。
【0157】
データベース10には、時系列データ11に加えて、ネットワークカメラ600によって撮影された動画データ12が格納される。
【0158】
時刻指定モジュール13は、再生開始カウンタ値と再生条件とを設定し、設定した再生開始カウンタ値と再生条件とをデータ再現モジュール14に出力する。時刻指定モジュール13は、操作ウィンドウに対するユーザ入力に応じて、再生開始カウンタ値と再生条件とを設定する。
【0159】
図20は、操作ウィンドウの一例を示す図である。
図20に示す操作ウィンドウ60は、時刻指定モジュール13によって生成され、
図2に示すディスプレイ120に表示される。操作ウィンドウ60は、カーソル61と、入力欄62,66と、再生ボタン63と、コマ戻しボタン64と、コマ送りボタン65とを含む。
【0160】
カーソル61は、対象期間内の時刻を表す。時刻指定モジュール13は、ユーザによるカーソル61の移動操作を受け付け、移動操作に応じてカーソル61の位置を移動させる。さらに、データ再現モジュール14によってカウンタ値が更新されると、時刻指定モジュール13は、カウンタ値に対応する位置にカーソル61を移動させる。
【0161】
入力欄62には、カーソル61の位置に対応するカウンタ値が表示される。カウンタ値は、対象期間における制御周期の序数を表す。ユーザは、入力欄62にカウンタ値を入力してもよい。入力欄62にカウンタ値が入力されると、時刻指定モジュール13は、入力されたカウンタ値に対応する位置にカーソル61を移動させる。さらに、データ再現モジュール14によってカウンタ値が更新されると、時刻指定モジュール13は、入力欄62に表示される数値を更新する。
【0162】
入力欄66は、再生速度の入力のために使用される。時刻指定モジュール13は、入力欄66のプルダウンボタンが操作されたことに応じて、複数の再生速度の一覧を表示する。時刻指定モジュール13は、一覧の中からユーザによって選択された再生速度を入力欄66に表示する。なお、
図20に示す例では、再生速度は倍率によって表される。そのため、以下では、「再生速度」を「再生倍率」として表記する。
【0163】
再生ボタン63、コマ戻しボタン64およびコマ送りボタン65は、データ再現モジュール14によるデータ再現に関する操作を入力するために利用される。時刻指定モジュール13は、再生ボタン63、コマ戻しボタン64およびコマ送りボタン65のいずれかがクリックされたことに応じて、再生開始カウンタ値と再生条件とを設定し、設定した再生開始カウンタ値および再生条件をデータ再現モジュール14に出力する。
【0164】
再生ボタン63は、データ再現モジュール14によるデータ再現の開始を指示するために使用される。時刻指定モジュール13は、再生ボタン63がクリックされると、再生開始カウンタ値と再生条件とを設定し、設定した再生開始カウンタ値と再生条件とをデータ再現モジュール14に出力する。具体的には、時刻指定モジュール13は、カーソル61の位置に対応するカウンタ値を再生開始カウンタ値として設定する。さらに、時刻指定モジュール13は、入力欄66に入力されている再生倍率に従って、再生条件を設定する。
【0165】
コマ戻しボタン64は、時刻の巻き戻しを指示するために使用される。時刻指定モジュール13は、コマ戻しボタン64がクリックされると、カーソル61の位置に対応するカウンタ値から1を引いたカウンタ値を再生開始カウンタ値として設定する。さらに、時刻指定モジュール13は、再生倍率「0」を示す再生条件を設定する。
【0166】
コマ送りボタン65は、時刻の早送りを指示するために使用される。時刻指定モジュール13は、コマ送りボタン65がクリックされると、カーソル61の位置に対応するカウンタ値に1を加えたカウンタ値を再生開始カウンタ値として設定する。さらに、時刻指定モジュール13は、再生倍率「0」を示す再生条件を設定する。
【0167】
図19に戻って、データ再現モジュール14は、再生開始カウンタ値と再生条件とに基づいて、データを再現する。データ再現モジュール14の時刻制御モジュール15は、再生開始カウンタ値を初期カウンタ値として設定し、その後、規定時間が経過するたびにカウンタ値に規定値(例えば50または100)に再生倍率を乗じた値を加算する。規定時間は、制御周期に規定値を乗じた時間である。再生条件として再生倍率「×1.0」が設定された場合、時刻制御モジュール15は、規定時間が経過するたびに、カウンタ値に規定値を加算する。再生条件として再生倍率「×2.0」が設定された場合、時刻制御モジュール15は、規定時間が経過するたびに、カウンタ値に規定値の2倍の値を加算する。なお、再生条件として再生倍率「0」が設定された場合、時刻制御モジュール15は、カウント値を更新しない。
【0168】
データ要求モジュール16は、カウンタ値が表す指定時刻に応じたクエリを生成する。データ要求モジュール16は、クエリを用いて、時系列データ11から指定時刻における複数の変数の実績値を取得する。さらに、データ要求モジュール16は、クエリを用いて、動画データ12から指定時刻のフレームを取得する。データ要求モジュール16は、取得した複数の変数の実績値を波形表示モジュール41およびプログラム表示モジュール42に出力する。データ要求モジュール16は、取得したフレームを動画再生モジュール43に出力する。
【0169】
波形表示モジュール41は、データ再現モジュール14から受けた複数の変数の実績値に基づいて、対象期間における変数の値の推移を示すグラフを含むウィンドウのデータを生成し、当該データを表示コントローラ105に出力する。これにより、対象期間における変数の値の推移を示すグラフを含むウィンドウがディスプレイ120に表示される。
【0170】
プログラム表示モジュール42は、データ再現モジュール14から受けた複数の変数の実績値に基づいて、対象期間における制御プログラムの実行状況を示すウィンドウのデータを生成し、当該データを表示コントローラ105に出力する。これにより、対象期間における制御プログラムの実行状況を示すウィンドウがディスプレイ120に表示される。
【0171】
動画再生モジュール43は、データ再現モジュール14から受けたフレームに基づいて、対象期間に撮影された動画が再生されるウィンドウのデータを生成する。動画再生モジュール43は、当該データを表示コントローラ105に出力する。これにより、対象期間に撮影された動画が再生されるウィンドウがディスプレイ120に表示される。
【0172】
図21は、ディスプレイに表示される画面例を示す図である。
図21に示されるように、ディスプレイ120には、操作ウィンドウ60と、変数の値の推移を示すグラフを含むウィンドウ81と、制御プログラムの実行状況を示すウィンドウ82と、動画が再生されるウィンドウ83とが並べて表示される。
【0173】
ユーザは、操作ウィンドウ60を操作することにより、第1の解析処理または第2の解析処理によって特定された異常時刻t_bとその前後における、変数の値の推移、制御プログラムの実行状況および動画を確認できる。これにより、ユーザは、監視対象300の異常な動作の原因を探索しやすくなる。
【0174】
<変形例>
上記の説明では、情報処理システム100が1つのPC100Aによって構成されるものとした。しかしながら、情報処理システム100は、複数のコンピュータによって構成されてもよい。すなわち、情報処理システム100は、複数のプロセッサを含んでもよい。あるいは、情報処理システム100は、クラウド上の仮想マシン等、汎用的なPC以外のハードウェア環境を含んでもよい。
【0175】
§3 付記
以上のように、本実施の形態は以下のような開示を含む。
【0176】
(構成1)
監視対象(300,300A,300B)の状態を表す複数の変数の実績値の時系列データ(11)を用いた情報処理を行なう情報処理システム(100,100A)であって、
前記複数の変数のうち第1変数を除く1以上の第2変数の実績値を用いて、仮想空間における前記監視対象(300,300A,300b)に対応する仮想モデルの挙動をシミュレートするシミュレータ(20~29、101)と、
前記仮想モデルにおいて生成される前記第1変数の仮想値と前記時系列データによって示される前記第1変数の実績値との差が基準を超える異常時刻を特定する特定モジュール(30,101)とを備える、情報処理システム(100,100A)。
【0177】
(構成2)
前記異常時刻の一覧を示すデータを出力する出力モジュール(32,101)をさらに備える、構成1に記載の情報処理システム(100,100A)。
【0178】
(構成3)
前記監視対象(300,300A)は、対象物(3)の存在を検知する第1センサ(340)を含み、
前記第1変数は、前記第1センサ(340)による検知結果を表し、
前記シミュレータ(20~28,101)は、
前記仮想空間における前記対象物(3)に対応する仮想対象物の移動に基づいて、前記第1変数の仮想値を計算する、構成1または2に記載の情報処理システム(100,100A)。
【0179】
(構成4)
前記監視対象(300A)は、視覚センサ(330)を含み、
前記1以上の第2変数は、前記視覚センサ(330)によって計測された前記対象物(3)の実位置を示す特定変数を含み、
前記仮想モデルは、前記第1センサ(340)に対応する仮想センサを含み、
前記シミュレータ(20~28,101)は、
前記仮想空間において、前記特定変数の実績値によって表される実位置に対応する仮想初期位置に前記仮想対象物を配置し、
前記仮想空間において、前記仮想モデルの挙動に応じて前記仮想対象物を前記仮想初期位置から移動させ、
前記仮想空間における前記仮想対象物と前記仮想センサとの位置関係に基づいて、前記第1変数の仮想値を計算する、構成3に記載の情報処理システム(100,100A)。
【0180】
(構成5)
前記仮想モデルは、前記第1センサ(340)に対応する仮想センサを含み、
前記シミュレータ(20~28,101)は、
前記監視対象(300A)を撮影するカメラ(332)から得られた実画像に基づいて前記対象物(3)の実位置を特定し、
前記仮想空間において、前記実位置に対応する仮想初期位置に前記仮想対象物を配置し、
前記仮想空間において、前記仮想モデルの挙動に応じて前記仮想対象物を前記仮想初期位置から移動させ、
前記仮想空間における前記仮想対象物と前記仮想センサとの位置関係に基づいて、前記第1変数の仮想値を計算する、構成3に記載の情報処理システム(100,100A)。
【0181】
(構成6)
前記第1センサ(340)は、前記監視対象(300A)の第1の場所(315)における前記対象物(3)の存在を検知し、
前記監視対象(300A)は、
前記第1の場所(315)よりも上流の第2の場所(314)における前記対象物(3)の存在を検知する第2センサ(345)を含み、
前記1以上の第2変数は、前記第2センサ(345)による検知結果を表す特定変数を含み、
前記仮想モデルは、前記第1センサ(340)に対応する仮想センサを含み、
前記シミュレータ(20~28,101)は、
前記特定変数の実績値が前記対象物(3)の存在を示すことに基づいて、前記仮想空間における前記第2の場所(314)に対応する仮想初期位置に前記仮想対象物を配置し、
前記仮想空間において、前記仮想モデルの挙動に応じて前記仮想対象物を前記仮想初期位置から移動させ、
前記仮想空間における前記仮想対象物と前記仮想センサとの位置関係に基づいて、前記第1変数の仮想値を計算する、構成3に記載の情報処理システム(100,100A)。
【0182】
(構成7)
前記第1変数は、前記監視対象(300B)に含まれる可動部品(352)の位置または速度またはトルクであり、
前記1以上の第2変数は、前記可動部品(352)に対する指令値を示す変数を含み、
前記シミュレータ(20~27,29)は、前記指令値に基づいて、前記可動部品(352)に対応する仮想可動部品の前記第1変数の仮想値を計算する、構成1または2に記載の情報処理システム(100,100A)。
【0183】
(構成8)
監視対象(300,300A,300B)の状態を表す複数の変数の実績値の時系列データ(11)を用いた情報処理方法であって、
1以上のプロセッサ(101)が、前記複数の変数のうち第1変数を除く1以上の第2変数の実績値を用いて、仮想空間における前記監視対象(300,300A,300B)に対応する仮想モデルの挙動をシミュレートすること(S5,S6,S36)と、
前記1以上のプロセッサ(101)が、前記仮想モデルにおいて生成される前記第1変数の仮想値と前記時系列データ(11)によって示される前記第1変数の実績値との差が基準を超える異常時刻を特定すること(S11,S17,S42)とを備える、情報処理方法。
【0184】
(構成9)
監視対象(300,300A,300B)の状態を表す複数の変数の実績値の時系列データ(11)を用いた情報処理方法をコンピュータに実行させるプログラムであって、
前記情報処理方法は、
前記複数の変数のうち第1変数を除く1以上の第2変数の実績値を用いて、仮想空間における前記監視対象(300,300A,300B)に対応する仮想モデルの挙動をシミュレートすること(S5,S6,S36)と、
前記仮想モデルにおいて生成される前記第1変数の仮想値と前記時系列データ(11)によって示される前記第1変数の実績値との差が基準を超える異常時刻を特定すること(S11,S17,S42)とを備える、プログラム。
【0185】
本発明の実施の形態について説明したが、今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0186】
1 製造システム、3 ワーク、10 データベース、11 時系列データ、12 動画データ、13 時刻指定モジュール、14 データ再現モジュール、15 時刻制御モジュール、16 データ要求モジュール、20 シミュレータ、21 動作設定モジュール、21a 対応関係情報、22 初期情報設定モジュール、22a 初期情報、23 変数選択モジュール、24 動作再現モジュール、25 仮想ワーク生成モジュール、26 スクリプト実行モジュール、27 仮想空間構築モジュール、28 仮想センサモジュール、29 軸変数値算出モジュール、30 特定モジュール、32 出力モジュール、41 波形表示モジュール、42 プログラム表示モジュール、43 動画再生モジュール、50,81,82,83 ウィンドウ、51,52 表示領域、60 操作ウィンドウ、61 カーソル、62,66 入力欄、63 再生ボタン、64 コマ戻しボタン、65 コマ送りボタン、100 情報処理システム、100A PC、101 プロセッサ、102,206 メモリ、103,208 ストレージ、104 入力インターフェイス、105 表示コントローラ、106 通信インターフェイス、107,270 リーダ/ライタ、110 入力装置、120 ディスプレイ、131 開発プログラム、132 ビューワープログラム、133 データ再現プログラム、134 シミュレーションプログラム、200 制御装置、201 電源回路、202 CPU、204 チップセット、207 バッファ領域、211 システムプログラム、213 スケジューラプログラム、214 プログラムデータセット、250 USBコントローラ、252 フィールドネットワークコントローラ、252a,254a コネクタ、254 ネットワークコントローラ、260 タイマ、300,300A,300B 監視対象、310 搬送システム、312 エンコーダ、313 領域、314,315 場所、320 ロボット、330 視覚センサ、332 カメラ、340,345 物体検知センサ、350 電動シリンダ、352 可動部品、420 第1部材、430 第2部材、500 記憶媒体、600 ネットワークカメラ。