(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024154542
(43)【公開日】2024-10-31
(54)【発明の名称】情報処理システム、情報処理方法およびプログラム
(51)【国際特許分類】
G05B 19/05 20060101AFI20241024BHJP
G06F 11/32 20060101ALI20241024BHJP
【FI】
G05B19/05 L
G06F11/32 130
【審査請求】未請求
【請求項の数】13
【出願形態】OL
(21)【出願番号】P 2023068403
(22)【出願日】2023-04-19
(71)【出願人】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】真鍋 美樹子
(72)【発明者】
【氏名】重森 弓束
(72)【発明者】
【氏名】玉嶋 大輔
(72)【発明者】
【氏名】大貫 はる奈
【テーマコード(参考)】
5B042
5H220
【Fターム(参考)】
5B042GB06
5B042MC01
5B042MC07
5B042MC35
5H220AA04
5H220BB15
5H220CC03
5H220CX05
5H220CX06
5H220DD04
5H220JJ12
5H220JJ16
5H220JJ27
5H220JJ41
5H220JJ53
(57)【要約】
【課題】可視化対象の変数値を可視化する複数の可視化モジュールにおける可視化対象時刻の同期の一時停止および再開を可能とする。
【解決手段】プログラム表示モジュールは、制御プログラムを表すラダー図上に可視化対象の変数値を記述する。波形表示モジュールは、可視化対象の変数値の推移を示す変数グラフを表示する。動画再生モジュールは、対象期間の撮影により得られる動画データを再生する。複数の可視化モジュールは、プログラム表示モジュール、波形表示モジュールおよび動画再生モジュールにおける可視化対象時刻を同期させる第1同期モードと、波形表示モジュールおよび動画再生モジュールにおける可視化対象時刻を同期させる第2同期モードとを有する。複数の可視化モジュールは、再現された変数値を可視化対象の変数値として取得する第1モードにおいて、ユーザ入力に応じて、第1同期モードおよび第2同期モードの間を遷移する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
情報処理システムであって、
プログラマブルロジックコントローラの制御状態を表す可視化対象の変数値を可視化する複数の可視化モジュールと、
対象期間において前記プログラマブルロジックコントローラによって記録された時系列データセットに基づいて、前記対象期間における前記プログラマブルロジックコントローラの制御周期ごとの、前記プログラマブルロジックコントローラが保持していた変数値を順次再現する再現モジュールとを備え、
前記複数の可視化モジュールは、前記再現モジュールによって再現された前記変数値を前記可視化対象の変数値として取得する第1モードを有し、
前記複数の可視化モジュールは、
制御プログラムを表すラダー図上に前記可視化対象の変数値が記述されたウィンドウを表示するプログラム表示モジュールと、
前記可視化対象の変数値の推移を示す変数グラフを含むウィンドウを表示する波形表示モジュールと、
前記対象期間の撮影により得られる動画データによって示される動画を再生する動画再生モジュールとを含み、
前記複数の可視化モジュールは、前記プログラム表示モジュール、前記波形表示モジュールおよび前記動画再生モジュールにおける可視化対象時刻を同期させる第1同期モードと、前記波形表示モジュールおよび前記動画再生モジュールにおける可視化対象時刻を同期させる第2同期モードとを有しており、前記第1モードにおいて、ユーザ入力に応じて、前記第1同期モードおよび前記第2同期モードの間を遷移する、情報処理システム。
【請求項2】
前記再現モジュールの再生に関するユーザ入力を受け付ける時刻指定モジュールをさらに備え、
前記再現モジュールは、
再生を指示するユーザ入力を前記時刻指定モジュールが受け付けたことに応じて、前記複数の可視化モジュールを前記第1同期モードに設定し、
再生の一時停止を指示するユーザ入力を前記時刻指定モジュールが受け付けたことに応じて、前記複数の可視化モジュールを前記第1同期モードから前記第2同期モードに切り替える、請求項1に記載の情報処理システム。
【請求項3】
前記第1同期モードにおいて、前記波形表示モジュールおよび前記動画再生モジュールの各々は、可視化対象時刻を指定するユーザ入力を受け付け不可に設定し、
前記第2同期モードにおいて、前記波形表示モジュールおよび前記動画再生モジュールの各々は、可視化対象時刻を指定するユーザ入力を受け付け可能に設定し、指定された可視化対象時刻を互いに遣り取りすることにより、前記波形表示モジュールおよび前記動画再生モジュールにおける可視化対象時刻を同期させる、請求項2に記載の情報処理システム。
【請求項4】
前記時刻指定モジュールは、再生を指示するユーザ入力に応じて、再生開始カウンタ値および再生条件を設定し、設定した前記再生開始カウンタ値および前記再生条件を前記再現モジュールに出力し、
前記再現モジュールは、
前記時刻指定モジュールから受けた前記再生開始カウンタ値および前記再生条件に従って、前記複数の可視化モジュールを前記第1同期モードに設定し、
前記再生開始カウンタ値を対象カウンタ値として、前記再生条件に従って前記対象カウンタ値を更新し、
前記対象カウンタ値に対応する対象時刻における前記変数値を再現する、請求項2に記載の情報処理システム。
【請求項5】
前記時刻指定モジュールは、前記再生の一時停止を指示するユーザ入力に応じて、再生速度を0とする前記再生条件を設定し、設定した前記再生条件を前記再現モジュールに出力し、
前記再現モジュールは、前記時刻指定モジュールから受けた前記再生速度を0とする前記再生条件に従って、前記複数の可視化モジュールを前記第1同期モードから前記第2同期モードに切り替えるとともに、前記対象カウンタ値の更新を停止する、請求項4に記載の情報処理システム。
【請求項6】
前記動画再生モジュールは、前記第1同期モードにおいて、
前記再現モジュールから前記対象時刻を取得し、取得した前記対象時刻に対応する時刻の動画のフレームを再生し、
ユーザによる前記動画データの再生位置の移動操作を受け付け不可に設定し、
前記波形表示モジュールは、前記第1同期モードにおいて、
前記再現モジュールから前記対象時刻を取得し、取得した前記対象時刻を示す第1時刻線を前記変数グラフ上に表示し、
前記動画再生モジュールが再生している動画のフレームの時刻を示す第2時刻線を前記変数グラフ上に表示し、
ユーザによる前記第2時刻線の移動操作を受け付け不可に設定する、請求項5に記載の情報処理システム。
【請求項7】
前記動画再生モジュールは、前記第2同期モードにおいて、
ユーザによる前記動画データの再生位置の移動操作を受け付け可能に設定し、
前記再生位置の移動操作に応じて、再生されるフレームの時刻を更新し、
前記再生位置に基づいて前記可視化対象時刻を指定し、指定した前記可視化対象時刻を前記波形表示モジュールに与え、
前記波形表示モジュールは、前記第2同期モードにおいて、
前記動画再生モジュールから与えられた前記可視化対象時刻を示す前記第2時刻線を前記変数グラフ上に表示する、請求項6に記載の情報処理システム。
【請求項8】
前記波形表示モジュールは、前記第2同期モードにおいて、
ユーザによる前記第2時刻線の移動操作を受け付け可能に設定し、
前記第2時刻線の移動操作に応じて、前記第2時刻線の位置を移動し、
前記第2時刻線の位置に対応する時刻を前記可視化対象時刻に指定し、指定した前記可視化対象時刻を前記動画再生モジュールに与え、
前記動画再生モジュールは、前記第2同期モードにおいて、
前記波形表示モジュールから与えられた前可視化記対象時刻に対応する時刻のフレームを再生する、請求項7に記載の情報処理システム。
【請求項9】
前記波形表示モジュールは、前記第2同期モードにおいて、
ユーザ入力に応じて、前記対象期間における前記可視化対象の変数値の推移を示す前記変数グラフとともに、過去の前記可視化対象の変数値の推移を示す参照用変数グラフを表示し、
前記動画再生モジュールは、前記第2同期モードにおいて、
前記対象期間の撮影により得られる前記動画データによって示される動画を再生するとともに、前記参照用変数グラフに対応する参照対象期間の撮影により得られる参照用動画データによって示される参照用動画を再生し、
ユーザによる前記参照用動画データの再生位置の移動操作に応じて、再生される前記参照用動画のフレームの時刻を更新し、
前記参照用動画データの再生位置に基づいて参照用可視化対象時刻を指定し、指定した前記参照用可視化対象時刻を前記波形表示モジュールに与え、
前記波形表示モジュールは、前記第2同期モードにおいて、
前記動画再生モジュールから与えられた前記参照用可視化対象時刻を示す第3時刻線を前記参照用変数グラフ上に表示する、請求項6に記載の情報処理システム。
【請求項10】
前記波形表示モジュールは、前記第2同期モードにおいて、
ユーザによる前記第3時刻線の移動操作に応じて、前記第3時刻線の位置を移動し、
前記第3時刻線の位置に対応する時刻を前記参照用可視化対象時刻に指定し、指定した前記参照用可視化対象時刻を前記動画再生モジュールに与え、
前記動画再生モジュールは、前記第2同期モードにおいて、
前記波形表示モジュールから与えられた前記参照用可視化対象時刻に対応する時刻の前記参照用動画のフレームを再生する、請求項9に記載の情報処理システム。
【請求項11】
前記複数の可視化モジュールは、前記プログラマブルロジックコントローラが現在保持する変数値を前記可視化対象の変数値として取得する第2モードをさらに有し、
前記情報処理システムは、指示に応じて、前記第1モードおよび前記第2モードを含む複数のモードの中から1つのモードを選択する選択部をさらに備える、請求項1から10のいずれか1項に記載の情報処理システム。
【請求項12】
プログラマブルロジックコントローラの制御状態を表す可視化対象の変数値を可視化する複数の可視化モジュールを含む情報処理装置における情報処理方法であって、
対象期間において前記プログラマブルロジックコントローラによって記録された時系列データセットに基づいて、前記対象期間における前記プログラマブルロジックコントローラの制御周期ごとの、前記プログラマブルロジックコントローラが保持していた変数値を順次再現するステップと、
再現された前記変数値を前記可視化対象の変数値として前記複数の可視化モジュールに送るステップとを備え、
前記複数の可視化モジュールは、
制御プログラムを表すラダー図上に前記可視化対象の変数値が記述されたウィンドウを表示するプログラム表示モジュールと、
前記可視化対象の変数値の推移を示す変数グラフを含むウィンドウを表示する波形表示モジュールと、
前記対象期間の撮影により得られる動画データによって示される動画を再生する動画再生モジュールとを含み、
ユーザ入力に応じて、前記複数の可視化モジュールの同期モードを、前記プログラム表示モジュール、前記波形表示モジュールおよび前記動画再生モジュールにおける可視化対象時刻を同期させる第1同期モードと、前記波形表示モジュールおよび前記動画再生モジュールにおける可視化対象時刻を同期させる第2同期モードとの間で切り替えるステップをさらに備える、情報処理方法。
【請求項13】
プログラマブルロジックコントローラの制御状態を表す可視化対象の変数値を可視化する複数の可視化モジュールを含むコンピュータに情報処理方法を実行させるプログラムであって、
前記情報処理方法は、
対象期間において前記プログラマブルロジックコントローラによって記録された時系列データセットに基づいて、前記対象期間における前記プログラマブルロジックコントローラの制御周期ごとの、前記プログラマブルロジックコントローラが保持していた変数値を順次再現するステップと、
再現された前記変数値を前記可視化対象の変数値として前記複数の可視化モジュールに送るステップとを備え、
前記複数の可視化モジュールは、
制御プログラムを表すラダー図上に前記可視化対象の変数値が記述されたウィンドウを表示するプログラム表示モジュールと、
前記可視化対象の変数値の推移を示す変数グラフを含むウィンドウを表示する波形表示モジュールと、
前記対象期間の撮影により得られる動画データによって示される動画を再生する動画再生モジュールとを含み、
ユーザ入力に応じて、前記複数の可視化モジュールの同期モードを、前記プログラム表示モジュール、前記波形表示モジュールおよび前記動画再生モジュールにおける可視化対象時刻を同期させる第1同期モードと、前記波形表示モジュールおよび前記動画再生モジュールにおける可視化対象時刻を同期させる第2同期モードとの間で切り替えるステップをさらに備える、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、情報処理システム、情報処理方法およびプログラムに関する。
【背景技術】
【0002】
生産設備の異常な動作の原因調査のために、生産設備を制御するプログラマブルロジックコントローラ(PLC)において収集された時系列データを記録し、記録された時系列データを可視化する技術が開発されている。
【0003】
例えば、特開2020-13528号公報(特許文献1)は、PLCにおいて収集された時系列の複数のデバイス値を保存する保存手段と、デバイス値を可視化する複数のソフトウェアモジュールとを有するエンジニアリングツールを開示している。特許文献1に開示のエンジニアリングツールは、履歴再生モードにおいて複数のソフトウェアモジュールにおける表示対象時刻を同期させる同期手段を備える。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1に開示されるエンジニアリングツールは、複数のソフトウェアモジュールにおける表示対象時刻を同期させることによって、デバイス値をラダー図上に表示させるとともに、当該デバイス値を時系列波形として表示させている。これにより、ユーザは、異常が発生したときのデバイス値がユーザプログラムのどの部分に関連しているのかを確認することができる。
【0006】
その一方で、上記エンジニアリングツールでは、同期手段は、複数のソフトウェアモジュールにおける表示対象時刻の同期を一時的に停止させる、および同期を再開させることが可能に構成されていない。そのため、ユーザは、時系列波形を表示するソフトウェアモジュールのみにおいて単独で表示対象時刻を進める、または戻すことにより、異常が発生した時点の前後においてデバイス値がどのように変化しているのかを確認することができない。また、ユーザは、時系列波形からデバイス値の時間変化を確認した後に、再び時系列波形とユーザプログラムとの関係を確認することができない。
【0007】
本開示は、上記の問題に鑑みてなされたものであり、その目的は、可視化対象の変数値を可視化する複数の可視化モジュールにおける可視化対象時刻の同期を一時停止させること、およびその同期を再開させることが可能な情報処理システム、情報処理方法およびプログラムを提供することである。
【課題を解決するための手段】
【0008】
本開示の一例によれば、情報処理システムは、複数の可視化モジュールと、再現モジュールとを備える。複数の可視化モジュールは、プログラマブルロジックコントローラの制御状態を表す可視化対象の変数値を可視化する。再現モジュールは、対象期間においてプログラマブルロジックコントローラによって記録された時系列データセットに基づいて、対象期間におけるプログラマブルロジックコントローラの制御周期ごとの、プログラマブルロジックコントローラが保持していた変数値を順次再現する。複数の可視化モジュールは、再現モジュールによって再現された変数値を可視化対象の変数値として取得する第1モードを有する。複数の可視化モジュールは、プログラム表示モジュールと、波形表示モジュールと、動画再生モジュールとを含む。プログラム表示モジュールは、制御プログラムを表すラダー図上に可視化対象の変数値が記述されたウィンドウを表示する。波形表示モジュールは、可視化対象の変数値の推移を示す変数グラフを含むウィンドウを表示する。動画再生モジュールは、対象期間の撮影により得られる動画データによって示される動画を再生する。複数の可視化モジュールは、プログラム表示モジュール、波形表示モジュールおよび動画再生モジュールにおける可視化対象時刻を同期させる第1同期モードと、波形表示モジュールおよび動画再生モジュールにおける可視化対象時刻を同期させる第2同期モードとを有する。複数の可視化モジュールは、第1モードにおいて、ユーザ入力に応じて、第1同期モードおよび第2同期モードの間を遷移する。
【0009】
この開示によれば、プログラマブルロジックコントローラの過去の制御状態の再現中において、複数の可視化モジュールを第1同期モードから第2同期モードに切り替えることにより、複数の可視化モジュールにおける可視化対象時刻の同期を一時停止させて、波形表示モジュールおよび動画再生モジュールにおける可視化対象時刻のみを同期させることができる。そして、複数の可視化モジュールを第2同期モードから第1同期モードに復帰させることにより、複数の可視化モジュールにおける可視化対象時刻の同期を再開することができる。これによると、制御システムに発生した異常の原因調査を行う場面において、ユーザは、確認したい内容に応じて第1同期モードおよび第2同期モードを使い分けることにより、異常の原因を詳細に分析することが可能となる。
【0010】
上述の開示において、情報処理システムは、再現モジュールの再生に関するユーザ入力を受け付ける時刻指定モジュールをさらに備える。再現モジュールは、再生を指示するユーザ入力を時刻指定モジュールが受け付けたことに応じて、複数の可視化モジュールを第1同期モードに設定する。再現モジュールは、再生の一時停止を指示するユーザ入力を時刻指定モジュールが受け付けたことに応じて、複数の可視化モジュールを第1同期モードから第2同期モードに切り替える。
【0011】
この開示によれば、ユーザは、時刻指定モジュールにおいて再生操作および一時停止操作を適宜行うことによって、複数の可視化モジュールを第1同期モードと第2同期モードとの間で容易に切り替えることができる。
【0012】
上述の開示において、第1同期モードにおいて、波形表示モジュールおよび動画再生モジュールの各々は、可視化対象時刻を指定するユーザ入力を受け付け不可に設定される。第2同期モードにおいて、波形表示モジュールおよび動画再生モジュールの各々は、可視化対象時刻を指定するユーザ入力を受け付け可能に設定される。波形表示モジュールおよび動画再生モジュールは、各々が指定された可視化対象時刻を互いに遣り取りすることにより、波形表示モジュールおよび動画再生モジュールにおける可視化対象時刻を同期させる。
【0013】
この開示よれば、第1同期モードでは、複数の可視化モジュールにおける可視化対象時刻の同期を保つことができる。第2同期モードでは、ユーザは、波形表示モジュールおよび動画再生モジュールにおける可視化対象時刻の同期を保ちつつ、可視化対象時刻を任意の時刻に指定することができる。
【0014】
上述の開示において、時刻指定モジュールは、再生を指示するユーザ入力に応じて、再生開始カウンタ値および再生条件を設定し、設定した再生開始カウンタ値および再生条件を再現モジュールに出力する。再現モジュールは、時刻指定モジュールから受けた再生開始カウンタ値および再生条件に従って、複数の可視化モジュールを第1同期モードに設定する。再現モジュールは、再生開始カウンタ値を対象カウンタ値として、再生条件に従って対象カウンタ値を更新する。再現モジュールは、対象カウンタ値に対応する対象時刻における変数値を再現する。
【0015】
この開示によれば、第1同期モードでは、時刻指定モジュールの指示を受けて再現モジュールが変数値の再現対象となる対象時刻を管理することにより、複数の可視化モジュールにおける可視化対象時刻を同期させることができる。
【0016】
上述の開示において、時刻指定モジュールは、再生の一時停止を指示するユーザ入力に応じて、再生速度を0とする再生条件を設定し、設定した再生条件を再現モジュールに出力する。再現モジュールは、時刻指定モジュールから受けた再生速度を0とする再生条件に従って、複数の可視化モジュールを第1同期モードから第2同期モードに切り替えるとともに、対象カウンタ値の更新を停止する。
【0017】
この開示によれば、第2同期モードでは、再現モジュールによる対象時刻の管理が一時的に停止されるため、波形表示モジュールおよび動画再生モジュールにおける可視化対象時刻の管理を再現モジュールから独立して行うことができる。
【0018】
上述の開示において、動画再生モジュールは、第1同期モードにおいて、再現モジュールから対象時刻を取得し、取得した対象時刻に対応する時刻の動画のフレームを再生する。動画再生モジュールは、ユーザによる動画データの再生位置の移動操作を受け付け不可に設定する。波形表示モジュールは、第1同期モードにおいて、再現モジュールから対象時刻を取得し、取得した対象時刻を示す第1時刻線を変数グラフ上に表示する。波形表示モジュールは、動画再生モジュールが再生している動画のフレームの時刻を示す第2時刻線を変数グラフ上に表示し、ユーザによる第2時刻線の移動操作を受け付け不可に設定する。
【0019】
この開示によれば、第1同期モードにおいて、複数の可視化モジュールにおける可視化対象時刻の同期を保つことができる。
【0020】
上述の開示において、動画再生モジュールは、第2同期モードにおいて、ユーザによる動画データの再生位置の移動操作を受け付け可能に設定する。動画再生モジュールは、再生位置の移動操作に応じて、再生されるフレームの時刻を更新する。動画再生モジュールは、再生位置に基づいて可視化対象時刻を指定し、指定した可視化対象時刻を波形表示モジュールに与える。波形表示モジュールは、第2同期モードにおいて、動画再生モジュールから与えられた可視化対象時刻を示す第2時刻線を変数グラフ上に表示する。
【0021】
この開示によれば、第2同期モードにおいて、ユーザは、波形表示モジュールおよび動画再生モジュールにおける可視化対象時刻の同期を保ちつつ、可視化対象時刻を任意の時刻に指定することができる。
【0022】
上述の開示において、波形表示モジュールは、第2同期モードにおいて、ユーザによる第2時刻線の移動操作を受け付け可能に設定する。波形表示モジュールは、第2時刻線の移動操作に応じて、第2時刻線の位置を移動する。波形表示モジュールは、第2時刻線の位置に対応する時刻を可視化対象時刻に指定し、指定した可視化対象時刻を動画再生モジュールに与える。動画再生モジュールは、第2同期モードにおいて、波形表示モジュールから与えられた可視化対象時刻に対応する時刻のフレームを再生する。
【0023】
この開示によれば、第2同期モードにおいて、ユーザは、表示波形モジュールおよび動画再生モジュールにおける可視化対象時刻の同期を保ちつつ、可視化対象時刻を任意の時刻に制御することができる。
【0024】
上述の開示において、波形表示モジュールは、第2同期モードにおいて、ユーザ入力に応じて、対象期間における可視化対象の変数値の推移を示す変数グラフとともに、過去の可視化対象の変数値の推移を示す参照用変数グラフを表示する。動画再生モジュールは、第2同期モードにおいて、対象期間の撮影により得られる動画データによって示される動画を再生するとともに、参照用変数グラフに対応する参照用対象期間の撮影により得られる参照用動画データによって示される参照用動画を再生する。動画再生モジュールは、ユーザによる参照用動画データの再生位置の移動操作に応じて、再生される参照用動画のフレームの時刻を更新する。動画再生モジュールは、参照用動画データの再生位置に基づいて参照用可視化対象時刻を指定し、指定した参照用可視化対象時刻を波形表示モジュールに与える。波形表示モジュールは、第2同期モードにおいて、動画再生モジュールから与えられた参照用可視化対象時刻を示す第3時刻線を参照用変数グラフ上に表示する。
【0025】
この開示によれば、ユーザは、波形表示モジュールに表示される、異常が発生したときの変数グラフと参照用変数グラフとを比較することにより、異常の発生によって変数値の推移にどのような変化が生じたのかなどを検証することが可能となる。また、異常が発生したときの動画と参照用動画とを比較することもできるため、ユーザは、異常が生じたタイミングのプログラマブルロジックコントローラの制御状態を詳細に分析することが可能となる。
【0026】
上述の開示において、波形表示モジュールは、第2同期モードにおいて、ユーザによる第3時刻線の移動操作に応じて、第3時刻線の位置を移動する。波形表示モジュールは、第3時刻線の位置に対応する時刻を参照用可視化対象時刻に指定し、指定した参照用可視化対象時刻を動画再生モジュールに与える。動画再生モジュールは、第2同期モードにおいて、波形表示モジュールから与えられた参照用可視化対象時刻に対応する時刻の参照用動画のフレームを再生する。
【0027】
この開示によれば、対象期間における変数グラフおよび動画の間の可視化対象時刻の同期とは独立して、波形表示モジュールにおける参照用変数グラフの可視化対象時刻と、動画再生モジュールにおける参照用動画の可視化対象時刻とを同期させることができる。これにより、ユーザは、参照用変数値を再現する参照用可視化対象時刻を、変数値を再現する可視化対象時刻とを別々に指定することが可能となる。
【0028】
上述の開示において、複数の可視化モジュールは、プログラマブルロジックコントローラが現在保持する変数値を可視化対象の変数値として取得する第2モードをさらに有する。情報処理システムは、指示に応じて、第1モードおよび第2モードを含む複数のモードの中から1つのモードを選択する選択部をさらに備える。
【0029】
この開示によれば、ユーザは、1以上の可視化モジュールによって可視化される変数値を、プログラマブルロジックコントローラが現在保持する変数値と、再現モジュールによって再現された対象期間の変数値とに切り替えることができる。
【0030】
本開示の別の例によれば、情報処理方法は、プログラマブルロジックコントローラの制御状態を表す可視化対象の変数値を可視化する複数の可視化モジュールを含む情報処理装置における情報処理方法である。情報処理方法は、対象期間においてプログラマブルロジックコントローラによって記録された時系列データセットに基づいて、対象期間におけるプログラマブルロジックコントローラの制御周期ごとの、プログラマブルロジックコントローラが保持していた変数値を順次再現するステップと、再現された変数値を可視化対象の変数値として複数の可視化モジュールに送るステップとを備える。複数の可視化モジュールは、プログラム表示モジュールと、波形表示モジュールと、動画再生モジュールとを含む。プログラム表示モジュールは、制御プログラムを表すラダー図上に可視化対象の変数値が記述されたウィンドウを表示する。波形表示モジュールは、可視化対象の変数値の推移を示す変数グラフを含むウィンドウを表示する。動画再生モジュールは、対象期間の撮影により得られる動画データによって示される動画を再生する。情報処理方法は、ユーザ入力に応じて、複数の可視化モジュールの同期モードを、プログラム表示モジュール、波形表示モジュールおよび動画再生モジュールにおける可視化対象時刻を同期させる第1同期モードと、波形表示モジュールおよび動画再生モジュールにおける可視化対象時刻を同期させる第2同期モードとの間で切り替えるステップをさらに備える。
【0031】
本開示のさらに別の例によれば、プログラムは、上記の情報処理方法をコンピュータに実行させる。
【0032】
これらの開示によっても、プログラマブルロジックコントローラの過去の制御状態の再現中において、ユーザは、複数の可視化モジュールにおける可視化対象時刻の同期を一時停止させることができる。また、ユーザは、複数の可視化モジュールにおける可視化対象時刻の同期を再開させることができる。
【発明の効果】
【0033】
本開示によれば、ユーザは、可視化対象の変数値を可視化する複数の可視化モジュールにおける可視化対象時刻の同期を一時停止させることができる。また、ユーザは、複数の可視化モジュールにおける可視化対象時刻の同期を再開させることができる。
【図面の簡単な説明】
【0034】
【
図1】実施の形態に係る情報処理システムが適用される製造システムの一例を模式的に例示する図である。
【
図2】実施の形態に係る製造システムの全体構成の一例を示す模式図である。
【
図3】実施の形態に従うPLCのハードウェア構成の一例を示す模式図である。
【
図4】PCおよびPLCのソフトウェア構成の一例を示すブロック図である。
【
図5】再現PLCの再生操作を行なうための第1ウィンドウの一例を示す図である。
【
図6】複数の可視化モジュールにおけるモードの切り替え方法を説明する図である。
【
図7】プレイバックモードにおける同期モードを説明する図である。
【
図8】全体同期モードにおけるPCの構成を示すブロック図である。
【
図9】全体同期モードにおける第2から第4ウィンドウの一例を示す図である。
【
図10】波形動画同期モードにおけるPCの構成を示すブロック図である。
【
図11】波形動画同期モードにおける第2から第4ウィンドウの一例を示す図である。
【
図12】プレイバックモードにおける再現PLCの処理の流れを示すフローチャートである。
【
図13】プレイバックモードにおけるプログラム表示モジュールの処理の流れを示すフローチャートである。
【
図14】プレイバックモードにおける波形表示モジュールの処理の流れを示すフローチャートである。
【
図15】プレイバックモードにおける動画再生モジュールの処理の流れを示すフローチャートである。
【
図16】波形動画同期モードにおいて波形比較を行うためのPCの構成を示すブロック図である。
【
図17】波形比較における第3から第6ウィンドウの一例を示す図である
【発明を実施するための形態】
【0035】
本開示の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。本明細書において、特に示さない限り、「または」の用語は、「または」の意味に加えて、「および」の意味を包含する。
【0036】
§1 適用例
図1は、実施の形態に係る情報処理システムが適用される製造システムの一例を模式的に例示する図である。
図1に示すように、製造システム1は、情報処理システム100と、プログラマブルロジックコントローラ(以下、「PLC200」と称する)と、1以上のフィールド機器300とを備える。
【0037】
PLC200は、1以上のフィールド機器300と接続され、予め作成された制御プログラムに従って1以上のフィールド機器300を制御する。1以上のフィールド機器300の各々は、生産設備または生産ラインなど(以下、「フィールド」とも総称する。)に対して何らかの物理的な作用を与えるアクチュエータ、フィールドに設置される各種のセンサ、またはフィールドとの間で情報を遣り取りする入出力装置などを含む。
【0038】
PLC200は、1以上のフィールド機器300との間で遣り取りされる各種の変数値を保持するメモリ206を有する。メモリ206に保持される変数値には、1以上のフィールド機器300の状態を示す各種の状態値と、1以上のフィールド機器300へ出力される各種の指令値とが含まれる。
【0039】
PLC200は、数100μsecオーダ~数10msecオーダの1以上の制御周期のうちのいずれかの制御周期で、メモリ206に保持される変数値を更新する。制御周期は、変数の種類に応じて予め設定される。例えば、PLC200は、メモリ206に保持される一部の変数の値を1msecで更新し、別の一部の変数の値を2msecで更新する。以下、1以上の制御周期のうち最短の制御周期を「第1制御周期」と称する。
【0040】
PLC200は、対象期間においてメモリ206に保持されていた変数値を記録することにより時系列データセット50を生成する。生成された時系列データセット50は、情報処理システム100に移動される。PLC200から情報処理システム100への時系列データセット50の移動は、特に限定されないが、例えばメモリカードなどの記憶媒体を用いて行なわれる。
【0041】
情報処理システム100は、1以上のコンピュータによって構成される。情報処理システム100は、複数の可視化モジュール30と、再現モジュール40と、時刻指定モジュール45とを備える。
【0042】
複数の可視化モジュール30は、PLC200の制御状態を表す可視化対象の変数値を画面上に可視化する。複数の可視化モジュール30は、制御プログラムを表すラダー図上に可視化対象の変数値が記述されたウィンドウを示すデータを生成する可視化モジュール(以下、「プログラム表示モジュール」と称する)と、可視化対象の変数値の推移を示す変数グラフを含むウィンドウを示すデータを生成する可視化モジュール(以下、「波形表示モジュール」と称する)とを含む。さらに、複数の可視化モジュール30は、図示しないネットワークカメラによって撮影された動画を再生する可視化モジュール(以下、「動画再生モジュール」と称する)を含む。
【0043】
再現モジュール40は、対象期間においてPLC200によって記録された時系列データセット50に基づいて、対象期間における第1の制御周期ごとの、PLC200が保持していた変数値を順次再現する。以下、再現モジュール40によって再現された変数値を示すデータを「再現データ」と称する。
【0044】
再現モジュール40は、時刻制御モジュール41と、コントローラ制御状態再現機能42とを含む。
【0045】
時刻制御モジュール41は、対象期間のうち、変数値の再現対象となる対象時刻を制御する。時刻制御モジュール41は、時刻指定モジュール45から受けた再生開始点と再生条件とに基づいて、規定時間ごとに対象時刻を更新する。再生開始点は、対象期間に属する1つの時刻を示す。再生条件は、再生速度などを示し、上記の規定時間を定義付ける。
【0046】
コントローラ制御状態再現機能42は、規定時間ごとに、時系列データセット50から、対象時刻に対応するデータを抽出し、抽出したデータに基づいて、対象時刻においてPLC200が保持していた変数値を示す再現データを生成する。
【0047】
時刻指定モジュール45は、ユーザ入力に応じて、再生開始点および再生条件を決定し、決定した再生開始点および再生条件を再現モジュール40に出力する。
【0048】
複数の可視化モジュール30は、再現データによって示される変数値を可視化対象の変数値として取得する第1モード(以下、「プレイバックモード」と称する)を有する。これにより、新たな可視化モジュールを追加する場合、ユーザは、可視化対象の変数値として再現モジュール40によって再現された変数値を取得可能なように当該新たな可視化モジュールを設定すればよく、既存の可視化モジュール30を改造する必要がない。そのため、ユーザは、新たな可視化モジュールを容易に追加できる。
【0049】
複数の可視化モジュール30は、プログラム表示モジュール、波形表示モジュールおよび動画再生モジュールにおける可視化対象時刻を同期させる第1同期モード(以下、「全体同期モード」と称する)と、波形表示モジュールおよび動画再生モジュールにおける可視化対象時刻を同期させる第2同期モード(以下、「波形動画同期モード」と称する)とを有する。複数の可視化モジュール30は、プレイバックモードにおいて、ユーザ入力に応じて、第1同期モードおよび第2同期モードの間を遷移する。
【0050】
これにより、PLC200の過去の制御状態の再現中、複数の可視化モジュール30を全体同期モードから波形動画同期モードに遷移させることにより、複数の可視化モジュール30における可視化対象時刻の同期を一時停止させて、波形表示モジュールおよび動画再生モジュールにおける可視化対象時刻のみを同期させることができる。そして、複数の可視化モジュール30を波形動画同期モードから全体同期モードに遷移させることにより、複数の可視化モジュール30における可視化対象時刻の同期を再開することができる。制御システムに発生した異常の原因調査を行う場面において、ユーザは、確認したい内容に応じて全体同期モードおよび波形動画同期モードを使い分けることにより、異常の原因を詳細に分析することが可能となる。
【0051】
§2 具体例
<製造システムの全体構成>
図2は、実施の形態に係る製造システムの全体構成の一例を示す模式図である。
図2に示されるように、製造システム1は、情報処理システム100を構成するパーソナルコンピュータ(以下、「PC100A」と称する)と、PLC200と、1以上のフィールド機器300と、ネットワークカメラ400と、ネットワークストレージ500と、記憶媒体600とを備える。PC100A、PLC200、ネットワークカメラ400、およびネットワークストレージ500は、例えば汎用的なEthernet(登録商標)を用いて互いに通信可能である。なお、PC100AとPLC200とは、別の通信手段(例えば、Universal Serial Bus(USB))を用いて互いに通信してもよい。
【0052】
ネットワークカメラ400は、フィールドに設置され、複数のフィールド機器300の少なくとも一部を撮影する。
【0053】
ネットワークストレージ500は、ネットワークカメラ400の撮影により生成された動画データ群を保存する。
【0054】
記憶媒体600は、PLC200からPC100Aへの時系列データセット50の持ち出しに利用される。記憶媒体600は、揮発性記憶媒体、不揮発性記憶媒体、CF(Compact Flash)もしくはSD(Secure Digital)などの汎用的な半導体記憶デバイス、フレキシブルディスク(Flexible Disk)などの磁気記憶媒体、またはCD-ROM(Compact Disk Read Only Memory)などの光学記憶媒体を含む。
【0055】
PC100Aは、典型的には、汎用的なアーキテクチャを有しているコンピュータである。
図2に示されるように、PC100Aは、CPU(Central Processing Unit)またはMPU(Micro Processing Unit)などのプロセッサ101と、DRAM(Dynamic Random Access Memory)またはSRAM(Static Random Access Memory)などの揮発性の記憶装置で構成されるメモリ102と、HDD(Hard Disk Drive)またはSSD(Solid State Drive)などの不揮発性の記憶装置で構成されるストレージ103と、入力インターフェイス104と、表示コントローラ105と、通信インターフェイス106と、リーダ/ライタ107とを含む。これらの各部は、バスを介して互いにデータ通信が可能なように接続されている。
【0056】
プロセッサ101は、ストレージ103に格納されたプログラムを読み出して、メモリ102に展開する。プロセッサ101は、展開されたプログラムを実行する。
【0057】
ストレージ103は、プロセッサ101によって実行されるプログラムと、メモリカードを用いてPLC200から持ち出された時系列データセット50と、ネットワークストレージ500から取得した動画データ55とを記憶する。
【0058】
プロセッサ101によって実行されるプログラムは、開発プログラム131と、ビューワープログラム132と、再現プログラム133とを含む。
【0059】
開発プログラム131は、主にPLC200が使用する制御プログラムの開発を支援する。さらに、開発プログラム131は、プレイバックモードに関する設定機能と、PLC200による制御プログラムの実行状況をモニタリングする機能(以下、「制御プログラムモニタ機能」と称する)と、検索機能とを提供する。プレイバックモードにおいて、制御プログラムモニタ機能は、再現プログラム133の実行により得られる再現データ(再現された変数値を示すデータ)を取得する機能を含む。検索機能は、例えば、PLC200による過去の制御プログラムの実行状況において、指定された変数が変化したタイミングを検索する機能を含む。
【0060】
ビューワープログラム132は、各種の情報を可視化してユーザに提供するためのプログラムである。ビューワープログラム132は、各種の変数値の推移を示す変数グラフを表示する機能(以下、「変数グラフ表示機能」と称する)と、動画データ55によって示される動画の再生機能とを提供する。プレイバックモードにおいて、変数グラフ表示機能は、再現プログラム133の実行により得られる変数値を取得する機能を含む。
【0061】
ビューワープログラム132は、例えば、DLL(Dynamic Link Library)ファイルであり、開発プログラム131が起動することにより、開発プログラム131と連結されてメモリ102に展開される。
【0062】
再現プログラム133は、PLC200の過去の制御状態を再現する。再現プログラム133は、制御状態が再現される対象時刻を管理する機能と、時系列データを管理する機能(以下、「データ管理機能」と称する)とを提供する。データ管理機能は、時系列データセット50から変数値を読み出す機能を含む。
【0063】
入力インターフェイス104は、プロセッサ101とキーボード、マウス、またはタッチパネルなどの入力装置110との間のデータ伝送を仲介する。表示コントローラ105は、ディスプレイ120と接続され、プロセッサ101によって生成された画面データによって示される画面をディスプレイ120に表示する。通信インターフェイス106は、通信ネットワークを介してPLC200およびネットワークストレージ500と通信する。リーダ/ライタ107は、プロセッサ101と外部の記憶媒体600との間のデータ伝送を仲介する。
【0064】
開発プログラム131、ビューワープログラム132および再現プログラム133の各々は、単体のプログラムとしてではなく、任意のプログラムの一部に組み込まれて提供されてもよい。この場合、任意のプログラムと協働して本実施の形態に従う処理が実現される。また、開発プログラム131、ビューワープログラム132および再現プログラム133によって提供される機能の一部または全部は、専用のハードウェア回路(例えば、ASIC(Application Specific Integrated Circuit)、またはFPGA(Field-Programmable Gate Array)によって実現されてもよい。
【0065】
<PLCのハードウェア構成>
図3は、実施の形態に従うPLCのハードウェア構成の一例を示す模式図である。
図3に示されるように、PLC200は、主たるコンポーネントとして、PLC200の各部に電力PWを供給する電源回路201と、CPU202と、チップセット204と、メモリ206と、ストレージ208と、USBコントローラ250と、フィールドネットワークコントローラ252と、ネットワークコントローラ254と、タイマ260と、リーダ/ライタ270とを含む。
【0066】
CPU202は、ストレージ208に格納されたプログラムを読出して、メモリ206に展開する。CPU202は、展開されたプログラムを実行する。
【0067】
メモリ206は、DRAMまたはSRAMなどの揮発性記憶装置で構成される。メモリ206は、上述したように、1以上のフィールド機器300からPLC200へ転送される状態値と、1以上のフィールド機器300へ出力される指令値とを含む各種の変数値を保持する。メモリ206に保持される各種の変数値は、ストレージ208に格納されるプログラムをCPU202が実行することにより、変数の種類に応じて予め設定された制御周期に従って更新される。
【0068】
ストレージ208は、例えば、HDD(Hard Disc Drive)、SSD(Solid State Drive)、またはフラッシュメモリなどの不揮発性記憶装置で構成されるが、一部は、揮発性ストレージで構成されてもよい。
【0069】
チップセット204は、CPU202と各コンポーネントとの間のデータの遣り取りを仲介することで、PLC200全体としての処理を実現する。
【0070】
ストレージ208には、PLC200の基本的な機能を実現するためのOS(Operating System)212およびスケジューラプログラム213を有するシステムプログラム211が格納される。
【0071】
さらに、ストレージ208は、PC100Aによって作成されたプログラムデータセット214を記憶する。プログラムデータセット214は、制御プログラムと、データ型定義データと、サンプリング設定データとを含む。
【0072】
制御プログラムは、1以上のフィールド機器300の状態を示す状態値を収集する処理と、収集された状態値に基づいた演算によって生成される、1以上のフィールド機器300への指令値を生成する処理とを定義する。状態値および指令値を含む変数値は、メモリ206に一時的に格納される。そのため、CPU202は、制御プログラムを実行することにより、メモリ206が保持する変数値を更新する。
【0073】
データ型定義データは、制御プログラムによって使用される各変数のデータ型を定義する。制御プログラムによって使用される変数には、1以上のフィールド機器300の状態を示す変数、および、1以上のフィールド機器300に出力される変数が含まれる。
【0074】
サンプリング設定データは、時系列データセット50の生成条件を定義する。時系列データセット50の生成条件は、サンプリングの開始条件、サンプリング対象となる変数、およびサンプリング時間などを示す。
【0075】
さらに、ストレージ208は、サンプリング設定データによって示される生成条件に従って生成された時系列データセット50を記憶する。
【0076】
USBコントローラ250は、USB接続を介して外部の装置(例えば、PC100A)との間のデータの遣り取りを担当する。
【0077】
フィールドネットワークコントローラ252は、フィールドネットワークに接続するコネクタ252aを有し、PLC200とフィールドネットワークを介した1以上のフィールド機器300との間のデータの遣り取りを制御する。フィールドネットワークコントローラ252は、フィールドネットワークから受信する入力データおよびPLC200からフィールドネットワークに出力される出力データを格納する内部バッファを有する。
【0078】
ネットワークコントローラ254は、上位ネットワークに接続するコネクタ254aを有し、PLC200と外部の装置(例えば、PC100A、ネットワークカメラ400またはネットワークストレージ500)との間のデータの遣り取りを制御する。
【0079】
タイマ260は、時間を計測するクロック回路またはカウンタ回路を含んで構成されるが、このような回路に限定されず、CPU202が実行するソフトウェアモジュールにより構成されてもよい。
【0080】
リーダ/ライタ270は、CPU202と外部の記憶媒体600との間のデータ伝送を仲介する。
【0081】
図3には、CPU202がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGA)を用いて実装してもよい。あるいは、PLC200の主要部を、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、マルチコア技術を適用して処理を並列に実行してもよい。または、仮想化技術を用いて、用途の異なる複数のOSを並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
【0082】
<機能構成>
図4は、PCおよびPLCのソフトウェア構成の一例を示すブロック図である。
図4に示すように、PC100Aは、制御プログラム編集部11と、データ型定義編集部12と、データ型メモリマップ生成部13と、サンプリング設定部14と、ビルド処理部15と、再現PLC生成部16と、PLC通信制御部17と、再現PLC通信制御部18と、1以上の可視化モジュール30と、再現PLC40aと、再現PLCクロック操作部45aとを備える。
【0083】
制御プログラム編集部11、データ型定義編集部12、データ型メモリマップ生成部13、サンプリング設定部14、ビルド処理部15、および再現PLC生成部16は、
図2に示すプロセッサ101が開発プログラム131を実行することにより実現される。PLC通信制御部17は、開発プログラム131を実行するプロセッサ101および通信インターフェイス106によって実現される。再現PLC通信制御部18および再現PLC40aは、プロセッサ101が再現プログラム133を実行することにより実現される。再現PLCクロック操作部45aは、再現プログラム133を実行するプロセッサ101および入力インターフェイス104によって実現される。複数の可視化モジュール30の各々は、プロセッサ101が開発プログラム131またはビューワープログラム132を実行することにより実現される。
【0084】
制御プログラム編集部11は、ユーザ入力に応じて、制御プログラムのソースコードの作成または編集を行なう。制御プログラムは、例えばラダープログラムであるが、これに限定されない。
【0085】
データ型定義編集部12は、ユーザ入力に応じて、制御プログラムによって使用される変数のデータ型を編集する。制御プログラムによって使用される変数には、1以上のフィールド機器300から収集される変数、制御プログラムの実行によって生成される変数(1以上のフィールド機器300に出力される変数)が含まれる。データ型定義編集部12は、各変数について編集されたデータ型を示すデータ型定義データを生成する。
【0086】
データ型メモリマップ生成部13は、ユーザ入力に応じて、配列要素または構造体メンバを有する変数について、各配列要素または構造体メンバのデータ型のサイズ、配列要素または構造体メンバの配置情報などを表すデータ型メモリマップ60を生成する。データ型メモリマップ60を用いることにより、任意の配列要素または構造体メンバの開始アドレスおよびサイズが特定され、任意の配列要素または構造体メンバの値が特定される。
【0087】
サンプリング設定部14は、ユーザ入力に応じて、時系列データセット50の生成条件を設定し、設定した生成条件を示すサンプリング設定データを生成する。時系列データセット50の生成条件は、上述したように、サンプリングの開始条件、サンプリング対象となる変数、およびサンプリング時間などを示す。サンプリングの開始条件は、例えば、特定の変数の値が第1値から第2値に変化するという条件である。サンプリングの開始条件が満たされることにより、時系列データセット50の生成が開始される。サンプリング対象となる変数は、制御プログラムによって使用される複数の変数の中から設定される。なお、制御プログラムによって使用される複数の変数の全てがサンプリング対象として設定されてもよいし、制御プログラムによって使用される複数の変数のうちの一部がサンプリング対象として設定されてもよい。サンプリング時間は、時系列データセット50の生成が開始されてから終了されるまでの期間であり、例えば10分間であるが、これに限定されない。
【0088】
ビルド処理部15は、制御プログラムのソースコードをビルドし、ソースコードからオブジェクトコードを生成する。ビルド処理部15は、生成されたオブジェクトコードの制御プログラムを含むプログラムデータセット214をPLC200に転送する。プログラムデータセット214には、オブジェクトコードの制御プログラムの他に、データ型定義編集部12によって生成されたデータ型定義データと、サンプリング設定部14によって生成されたサンプリング設定データとが含まれる。さらに、プログラムデータセット214とともに、データ型メモリマップ生成部13によって生成されたデータ型メモリマップ60もPLC200に転送される。
【0089】
再現PLC生成部16は、ユーザ入力に応じて、
図2に示す再現プログラム133を呼出し、再現PLC40aを生成するとともに、再現PLC40aの動作を開始させる。
【0090】
複数の可視化モジュール30は、上述したように、PLC200の制御状態を表す可視化対象の変数値を画面上に可視化する。複数の可視化モジュール30は、再現PLC40aによって再現される変数値を可視化対象の変数値として取得するプレイバックモードに加えて、PLC200が現在保持する変数値を可視化対象の変数値として取得する第2モード(以下、「リアルタイムモード」と称する)を有する。さらに、複数の可視化モジュール30は、PLC200の動作をシミュレーションするPLCシミュレーターによって生成される変数値を可視化対象の変数値として取得する第3モード(以下、「シミュレーションモード」と称する)を有してもよい。さらに、複数の可視化モジュール30は、変数値を可視化しない第4モード(以下、「オフラインモード」と称する)を有する。
【0091】
PLC通信制御部17は、PLC200との通信を制御する。PLC通信制御部17は、リアルタイムモードの開始を指定するユーザ入力に応じて、複数の可視化モジュール30とPLC200とを通信接続する。
【0092】
再現PLC通信制御部18は、プレイバックモードの開始を指定するユーザ入力に応じて、複数の可視化モジュール30と再現PLC40aとを通信接続する。
【0093】
再現PLC40aは、
図1に示す再現モジュール40の一例であり、対象期間においてPLC200によって記録された時系列データセット50に基づいて、対象期間における第1制御周期ごとの、PLC200が保持していた変数値を順次再現する。再現PLC40aは、
図1に示す時刻制御モジュール41およびコントローラ制御状態再現機能42にそれぞれ対応するクロック管理部41aおよび時系列データ管理部42aを備える。
【0094】
クロック管理部41aは、対象期間における、変数値の再現対象となる対象時刻に対応する対象カウンタ値を管理する。対象カウンタ値は、対象期間の開始時からの経過時間を表す。対象カウンタ値は、例えば、対象期間の開始時からの経過時間が第1制御周期の何倍であるかを表す。
【0095】
クロック管理部41aは、再現PLCクロック操作部45aからの指示に応じて、対象カウンタ値の更新を行なう。具体的には、クロック管理部41aは、再現PLCクロック操作部45aから指示された再生開始カウンタ値を対象カウンタ値として設定し、その後、規定時間が経過するたびに対象カウンタ値に1を加算する。クロック管理部41aは、再現PLCクロック操作部45aから指示された再生条件に応じて規定時間を設定する。
【0096】
時系列データ管理部42aは、対象カウンタ値に対応する対象時刻のデータを時系列データセット50から抽出し、抽出したデータに基づいて、対象時刻においてPLC200のメモリ206に保持されていた変数値を再現する。
【0097】
なお、時系列データ管理部42aは、データ型メモリマップ60を用いて、変数の配列要素または構造体メンバの値を再現してもよい。
【0098】
再現PLCクロック操作部45aは、
図1に示す時刻指定モジュール45の一例である。再現PLCクロック操作部45aは、ユーザ入力に応じて、再生開始カウンタ値と再生条件とを設定し、設定した再生開始カウンタ値と再生条件とを再現PLC40aに出力する。
【0099】
再現PLC40aは、同期モード管理部43aをさらに備える。同期モード管理部43aは、プレイバックモードにおいて、再現PLCクロック操作部45aからの指示に応じた再現PLC40aの再生状態を監視し、その監視結果に応じて、複数の可視化モジュール30の同期モードを切り替える。複数の可視化モジュール30は、プログラム表示モジュール、波形表示モジュールおよび動画再生モジュールにおける可視化対象時刻を同期させる全体同期モードと、波形表示モジュールおよび動画再生モジュールにおける可視化対象時刻を同期させる波形動画同期モードとを有する。同期モード管理部43aによる同期モードの切り替え方法については後述する。
【0100】
図4に示されるように、PLC200は、プログラム実行部21と、データ収集部22とを備える。さらに、PLC200は、PC100Aから転送されたプログラムデータセット214とデータ型メモリマップ60とを記憶する。プログラム実行部21およびデータ収集部22は、
図3に示すCPU202がプログラムデータセット214に含まれる制御プログラムを実行することにより実現される。
【0101】
プログラム実行部21は、1以上のフィールド機器300の状態を示す状態値を収集するとともに、収集された状態値に基づいた演算によって1以上のフィールド機器300への指令値を生成する。
【0102】
プログラム実行部21は、変数の種類ごとに定められた制御周期に従って、
図3に示すメモリ206が保持する変数値を更新する。なお、プログラム実行部21は、メモリ206が保持する各変数値を更新する際、プログラムデータセット214に含まれるデータ型定義データに従って、各変数値が格納されるメモリ領域内の各ビットを更新する。さらに、配列要素または構造体メンバを有する変数について、プログラム実行部21は、当該変数のデータ型メモリマップ60に従って、各配列要素または各構造体メンバの値が格納されるメモリ領域内の各ビットを更新する。
【0103】
プログラム実行部21は、演算のために用いる変数について、データ型定義データに従って、当該変数に対応するメモリ領域内の各ビット値から当該変数値を読み出す。さらに、プログラム実行部21は、変数が有する配列要素または構造体メンバについて、当該変数のデータ型メモリマップ60を用いて、配列要素または構造体メンバの値を読み出す。
【0104】
データ収集部22は、プログラムデータセット214に含まれるサンプリング設定データによって示される生成条件(サンプリングの開始条件、サンプリング対象の変数およびサンプリング時間を含む)に従って、時系列データセット50を生成する。具体的には、データ収集部22は、サンプリングの開始条件が満たされたことに応じて、サンプリング対象の変数についてメモリ206が保持する変数値の記録を開始する。データ収集部22は、変数値の記録を開始してからサンプリング時間が経過すると、変数値の記録を終了し、記録を開始してから終了するまでの対象期間における時刻ごとの変数値を示す時系列データセット50を生成する。時系列データセット50は、PLC200からPC100Aに転送される。
【0105】
<再現PLCの操作画面>
図5は、再現PLCの再生操作を行なうための第1ウィンドウの一例を示す図である。
図5に示す第1ウィンドウ70は、再現PLCクロック操作部45a(
図4参照)として動作するプロセッサ101(
図2参照)によって生成され、表示コントローラ105によってディスプレイ120に表示される。
【0106】
第1ウィンドウ70は、カーソル71と、表示領域72と、再生ボタン群73と、再生速度入力欄74とを含む。
【0107】
カーソル71は、再現PLC40aによって変数値が再現される時刻(「再生位置」とも称される)を表す。再現PLC40aによって対象カウンタ値が更新されると、再現PLCクロック操作部45aは、対象カウンタ値に対応する位置にカーソル71を移動させる。さらに、再現PLCクロック操作部45aは、ユーザによるカーソル71の移動操作を受け付け、移動操作に応じてカーソル71の位置を移動させる。
【0108】
表示領域72には、カーソル71の位置に対応する時刻が表示される。そのため、カーソル71の移動に応じて、表示領域72に表示される時刻が更新される。
【0109】
再生ボタン群73は、再現PLC40aの再生に関する操作を入力するための複数のボタンを含む。具体的には、再生ボタン群73は、再生ボタン73a、一時停止ボタン73b、停止ボタン73c、最初に移動するためのボタン73d、または最後に移動するためのボタン73eなどを含む。
【0110】
再生速度入力欄74は、再生速度の入力のために使用される。再現PLCクロック操作部45aは、再生速度入力欄74のプルダウンボタンが操作されたことに応じて、複数の再生速度の一覧を表示する。再現PLCクロック操作部45aは、一覧の中からユーザによって選択された再生速度を再生速度入力欄74に表示する。なお、
図5に示す例では、再生速度は倍率によって表される。そのため、以下では、「再生速度」を「倍率」として表記する。
【0111】
再現PLCクロック操作部45aは、第1ウィンドウ70の再生ボタン群73へのユーザ入力に応じて、再生開始カウンタ値と再生条件とを設定し、設定した再生開始カウンタ値と再生条件とを再現PLC40aに出力する。
【0112】
具体的には、再現PLCクロック操作部45aは、再生ボタン群73に含まれるいずれかのボタンが操作されると、カーソル71の位置に対応するカウンタ値を再生開始カウンタ値として設定する。例えば、再現PLCクロック操作部45aは、再生ボタン73aが操作されると、カーソル71の現在位置に対応するカウンタ値を再生開始カウンタ値として設定する。再現PLCクロック操作部45aは、最初に移動するためのボタン73dが操作されると、カーソル71を対象期間の先頭の位置に移動させた後に、当該先頭の位置に対応するカウンタ値を再生開始カウンタ値として設定する。
【0113】
さらに、再現PLCクロック操作部45aは、再生ボタン群73のうち操作されたボタンの種類、および、再生速度入力欄74に入力されている倍率に従って、再生条件を設定する。例えば、再現PLCクロック操作部45aは、再生ボタン73aまたは最初に移動するためのボタン73dが操作された場合、再生速度入力欄74に入力されている倍率を示すように再生条件を設定する。再現PLCクロック操作部45aは、一時停止ボタン73bが操作された場合、再生速度「0」を示す再生条件を設定する。
【0114】
なお、停止ボタン73cが操作された場合、再現PLCクロック操作部45aは、変数値の再現処理を停止するように再現PLC40aに指示する。
【0115】
再現PLC40aのクロック管理部41aは、再現PLCクロック操作部45aから受けた再生開始カウンタ値および再生条件に従って、対象カウンタ値の更新を行なう。具体的には、クロック管理部41aは、再生開始カウンタ値を対象カウンタ値として設定する。さらに、クロック管理部41aは、再生条件に応じて規定時間を設定する。例えば、再生条件として倍率「×1.0」が設定された場合、クロック管理部41aは、第1制御周期と同じ時間を規定時間として設定する。再生条件として倍率「×2.0」が設定された場合、クロック管理部41aは、第1制御周期を2で割った時間を規定時間として設定する。このように、クロック管理部41aは、第1制御周期を再生条件が示す倍率で割った時間を規定時間として設定する。
【0116】
なお、再生条件として再生速度「0」が設定された場合、クロック管理部41aは、対象カウンタ値の更新を停止する。
【0117】
<モードの切り替え>
図6は、複数の可視化モジュールにおけるモードの切り替え方法を説明する図である。
図6に示されるように、PC100Aは、複数の可視化モジュール30として、プログラム表示モジュール30aと、波形表示モジュール30bと、動画再生モジュール30cと、トラブルシュート表示モジュール30dとを備える。さらに、PC100Aは、データアクセサ19を備える。プログラム表示モジュール30aおよびトラブルシュート表示モジュール30dは、
図2に示すプロセッサ101が開発プログラム131を実行することにより実現される。波形表示モジュール30bおよび動画再生モジュール30cは、プロセッサ101がビューワープログラム132を実行することにより実現される。データアクセサ19は、開発プログラム131または再現プログラム133を実行するプロセッサ101および通信インターフェイス106によって実現される。
【0118】
プログラム表示モジュール30aは、PLC200による制御プログラムの実行状況をモニタリングし、モニタリングした結果を含む第2ウィンドウのデータを生成する。第2ウィンドウは、ディスプレイ120に表示される。
【0119】
波形表示モジュール30bは、各種の変数値の推移を示す変数グラフを含む第3ウィンドウのデータを生成する。第3ウィンドウ82は、ディスプレイ120に表示される。
【0120】
動画再生モジュール30cは、ネットワークカメラ400によって撮影された動画が再生される第4ウィンドウのデータを生成する。第4ウィンドウは、ディスプレイ120に表示される。
【0121】
プレイバックモードにおいて、動画再生モジュール30cは、対象期間の撮影により得られる動画データ55によって示される動画を再生する。動画再生モジュール30cは、再現PLC40aのクロック管理部41aによって管理される対象カウンタ値に対応する時刻のフレームを第4ウィンドウ84に表示させる。なお、動画データ55が対象カウンタ値に対応する時刻のフレームを含んでいない場合、動画再生モジュール30cは、当該時刻に最も近い時刻のクレームを第4ウィンドウ84に表示させる。
【0122】
リアルタイムモードにおいて、動画再生モジュール30cは、ネットワークカメラ400のリアルタイム映像を第4ウィンドウ84に表示させる。
【0123】
トラブルシュート表示モジュール30dは、制御プログラムのうちエラーの発生している箇所(例えばファンクションブロック)を示す第5ウィンドウのデータを生成する。第5ウィンドウは、ディスプレイ120に表示される。
【0124】
第2~第5ウィンドウは、ディスプレイ120において並べて表示されてもよい。あるいは、第2~第5ウィンドウのうちユーザによって選択された1以上のウィンドウのみがディスプレイ120に表示されてもよい。また、プレイバックモードでは、第2~第5ウィンドウに加えて、
図5に示す第1ウィンドウ70もディスプレイ120に表示される。
【0125】
データアクセサ19は、モードを選択する「選択部」の一例であり、ユーザ入力に応じて、プログラム表示モジュール30a、波形表示モジュール30bおよびトラブルシュート表示モジュール30dの接続先を切り替える。
【0126】
データアクセサ19は、プレイバックモードへの切り替え指示を受けると、プログラム表示モジュール30a、波形表示モジュール30bおよびトラブルシュート表示モジュール30dの接続先を再現PLC40aに切り替える。そして、データアクセサ19は、再現PLC40aによって再現されている変数値を示す再現データを取得し、取得した再現データを各可視化モジュール30に転送する。
【0127】
データアクセサ19は、リアルタイムモードへの切り替え指示を受けると、プログラム表示モジュール30a、波形表示モジュール30bおよびトラブルシュート表示モジュール30dの接続先をPLC200に切り替える。そして、データアクセサ19は、PLC200のメモリ206に現在保持されている変数値を示すデータを取得し、取得したデータを各可視化モジュール30に転送する。
【0128】
データアクセサ19は、シミュレーションモードへの切り替え指示を受けると、プログラム表示モジュール30a、波形表示モジュール30bおよびトラブルシュート表示モジュール30dの接続先をPLCシミュレーター700に切り替える。そして、データアクセサ19は、PLCシミュレーター700の仮想メモリ702に現在保持されている変数値を示すデータを取得し、取得したデータを各可視化モジュール30に転送する。
【0129】
データアクセサ19は、オフラインモードへの切り替え指示を受けると、プログラム表示モジュール30a、波形表示モジュール30bおよびトラブルシュート表示モジュール30dをPLC200、再現PLC40aおよびPLCシミュレーター700のいずれにも接続させない。
【0130】
<プレイバックモードにおける同期モード>
図7は、プレイバックモードにおける同期モードを説明する図である。
図7に示されるように、複数の可視化モジュール30は、プレイバックモードにおいて、ユーザ入力に応じて、全体同期モード(第1同期モード)と波形動画同期モード(第2同期モード)との間を遷移する。全体同期モードとは、プログラム表示モジュール30a、波形表示モジュール30bおよび動画再生モジュール30cにおける可視化対象時刻を同期させるモードである。波形動画同期モードとは、波形表示モジュール30bおよび動画再生モジュール30cにおける可視化対象時刻を同期させるモードである。
【0131】
プレイバックモードにおける同期モードの切り替えは、再現PLC40aの同期モード管理部43aによって行われる。同期モード管理部43aは、再現PLCクロック操作部45aがユーザから受け付ける再生操作に応じて、全体同期モードと波形動画同期モードとを切り替える。
【0132】
具体的には、プレイバックモードへの切り替え指示を受けて、プログラム表示モジュール30a、波形表示モジュール30bおよびトラブルシュート表示モジュール30dの接続先が再現PLC40aに切り替えられると、同期モード管理部43aは、初期状態として、複数の可視化モジュール30を全体同期モードとする。
【0133】
全体同期モードでは、プログラム表示モジュール30aおよび波形表示モジュール30bは、再現PLC40aによって再現される変数値を示す再現データを取得する。動画再生モジュール30cは、再現PLC40aのクロック管理部41aによって管理される対象カウンタ値に対応する時刻のフレームを再生する。
【0134】
全体同期モードにおいて、第1ウィンドウ70の再生ボタン群73に含まれる一時停止ボタン73bが操作された場合、再現PLCクロック操作部45aは、再生速度「0」を示す再生条件を設定して再現PLC40aに出力する。再現PLC40aのクロック管理部41aは、この再生条件に従って、対象カウンタ値の更新を停止する。同期モード管理部43aは、対象カウンタ値の更新が停止されると、複数の可視化モジュール30を全体同期モードから波形動画同期モードに切り替える。このようにして再生の一時停止を指示するユーザ入力を再現PLCクロック操作部45aが受け付けたことに応じて、複数の可視化モジュール30は、全体同期モードから波形動画同期モードへ遷移する。
【0135】
波形動画同期モードでは、プログラム表示モジュール30aは、再現PLC40aからの変数値の取得を停止することにより、PLC200による制御プログラムの実行状況のモニタリングを停止する。一方、波形表示モジュール30bは、再現PLC40aから変数値の取得を継続する。波形表示モジュール30bおよび動画再生モジュール30cの各々は、ユーザ入力に応じて可視化対象時刻を設定し、設定した可視化対象時刻を互いに遣り取りする。例えば、波形表示モジュール30bは、可視化対象時刻を指定するユーザ入力を受け付けると、指定された可視化対象時刻を動画再生モジュール30cに与えることにより、動画再生モジュール30cとの間で可視化対象時刻を同期させる。同様に、動画再生モジュール30cは、可視化対象時刻を指定するユーザ入力を受け付けると、指定された可視化対象時刻を波形表示モジュール30bに与えることにより、波形表示モジュール30bとの間で可視化対象時刻を同期させる。
【0136】
波形動画同期モードにおいて、プログラム表示モジュール30aおよび波形表示モジュール30bは、再現PLC40aの同期モード管理部43aの動きを監視している。再現PLCクロック操作部45aは、第1ウィンドウ70の再生ボタン群73に含まれる再生ボタン73aまたは最初に移動するためのボタン73dが操作されると、再生開始カウンタ値および再生条件を設定し、再現PLC40aに出力する。例えば、再生ボタン73aが操作されたことに応じて、再現PLCクロック操作部45aは、カーソル71の現在位置に対応するカウンタ値を再生開始カウンタ値として設定するとともに、再生速度入力欄74に入力されている倍率を示すように再生条件を設定して再現PLC40aへ出力する。
【0137】
再現PLC40aのクロック管理部41aは、再現PLCクロック操作部45aからの再生開始カウンタ値および再生条件に従って、対象カウンタ値の更新を再開する。同期モード管理部43aは、対象カウンタ値の更新が再開されると、複数の可視化モジュール30を波形動画同期モードから全体同期モードに切り替える。このようにして再生の再開を指示するユーザ入力を再現PLCクロック操作部45aが受け付けたことに応じて、複数の可視化モジュール30は、波形動画同期モードから全体同期モードへ遷移する。
【0138】
なお、全体同期モードまたは波形動画同期モードにおいて、リアルタイムモードへの切り替え指示を受けると、プログラム表示モジュール30a、波形表示モジュール30bおよびトラブルシュート表示モジュール30dの接続先はPLC200に切り替えられる。
【0139】
<全体同期モード>
図8は、全体同期モードにおけるPCの構成を示すブロック図である。
図8に示されるように、第1ウィンドウ70(
図5参照)の再生ボタン群73に含まれる再生ボタン73aまたは最初に移動するためのボタン73dが操作されると、再現PLCクロック操作部45aは、再生開始カウンタ値および再生条件を設定し、設定した再生開始カウンタ値および再生条件を再現PLC40aに出力する。
【0140】
再現PLC40aのクロック管理部41aは、再生開始カウンタ値を対象カウンタ値として設定し、その後、再生条件に応じて設定された規定時間に従って、対象カウンタ値の更新を行う。同期モード管理部43aは、再現PLCクロック操作部45aからの再生指示に従って、複数の可視化モジュール30を全体同期モードに設定する。
【0141】
時系列データ管理部42aは、時系列データセット50に含まれる各時系列データにアクセスし、対象カウンタ値に対応する対象時刻の変数値を取得する。
【0142】
再現データ検索モジュール32は、対象期間における再現データから、ユーザにより指定された変数が変化したタイミングを検索する。例えば、再現データ検索モジュール32は、ユーザの指示に応じて、製造システムにおいて異常が検知されたことを示す異常検知フラグに対応する変数がオフからオンに遷移したタイミングを検索する。再現データ検索モジュール32は、検索結果をプログラム表示モジュール30a、波形表示モジュール30bおよび動画再生モジュール30cに出力する。
【0143】
プログラム表示モジュール30aは、同期モード管理部43aによって全体同期モードに設定されたことに応じて、変数取得リクエストを再現PLC40aに発行することにより、再現PLC40aによって再現される変数値を取得する。プログラム表示モジュール30aは、制御プログラムを表すラダー図上に取得した変数値を記述することにより、対象時刻における制御プログラムの実行状況を再現した第2ウィンドウ80(
図9参照)のデータを生成する。プログラム表示モジュール30aは、第2ウィンドウ80をディスプレイ120に表示する。
【0144】
波形表示モジュール30bは、同期モード管理部43aによって全体同期モードに設定されたことに応じて、再現PLC40aに変数取得リクエストを発行する。具体的には、波形表示モジュール30bは、時刻範囲を指定して、指定された時刻範囲においてPLC200が保持していた変数値を取得するための変数取得リクエストを再現PLC40aに発行する。この時刻範囲は、変数グラフが示す変数値の時刻範囲を規定するものであり、対象期間に属するように指定することができる。例えば、異常検知フラグに対応する変数がオフからオンに遷移したタイミングを含むように、時刻範囲を指定することができる。波形表示モジュール30bは、時刻範囲における変数値を取得すると、取得した変数値の推移を示す変数グラフを含む第3ウィンドウ82(
図9参照)のデータを生成し、第3ウィンドウ82をディスプレイ120に表示する。
【0145】
波形表示モジュール30bは、さらに、再現PLC40aのクロック管理部41aから、対象カウンタ値に対応する対象時刻を取得する。この対象時刻は、プログラム表示モジュール30aにおいて変数値が可視化される可視化対象時刻に相当する。波形表示モジュール30bは、取得した対象時刻を示すための第1時刻線(以下、「再現PLC現在時刻線」と称する)を第3ウィンドウ82に含まれる変数グラフ上に表示する。
【0146】
動画再生モジュール30cは、同期モード管理部43aによって全体同期モードに設定されたことに応じて、再現PLC40aのクロック管理部41aから、対象カウンタ値に対応する対象時刻を取得する。動画再生モジュール30cは、取得した対象時刻に対応する時刻のフレームを第4ウィンドウ84(
図9参照)に表示させる。
【0147】
図9は、全体同期モードにおける第2から第4ウィンドウの一例を示す図である。
図9に示す第2ウィンドウ80は、プログラム表示モジュール30aによって生成される。第2ウィンドウ80には、制御プログラムを表すラダー図上に可視化対象の変数値が記述される。
【0148】
第3ウィンドウ82は、波形表示モジュール30bによって生成される。第3ウィンドウ82は、可視化対象の変数値の推移を示す変数グラフ82aを含む。変数グラフ82a上には、再現PLC現在時刻線L1(第1時刻線)と、第2時刻線L2(以下、「動画再生線L2」と称する)とが示される。再現PLC現在時刻線L1は、対象カウンタ値に対応する対象時刻、すなわち、プログラム表示モジュール30aにおける可視化対象時刻を表している。
【0149】
動画再生線L2は、動画再生モジュール30cが再生しているフレームの時刻を表している。全体同期モードでは、基本的に、再現PLC現在時刻線L1と動画再生線L2とは重なり合っている。ただし、対象時刻に対応する時刻のフレームを動画データ55が有していない場合には、動画再生モジュール30cは、対象時刻に最も近い時刻のフレームを表示する。この場合には、変数グラフ82aにおいて、再現PLC現在時刻線L1と動画再生線L2とは重なり合わず、多少のずれを有している。
【0150】
第3ウィンドウ82において、変数グラフ82aの下側には、時刻スクロールバー82bが配置されている。時刻スクロールバー82bは、変数グラフが表示する時間範囲を変更するための操作部であって、ユーザによる動画再生線L2の移動操作を受け付け可能に構成されている。動画再生線L2の移動操作に応じて、動画再生モジュール30cにて再生されるフレームの時刻が更新される。ただし、全体同期モードでは、再現PLCクロック操作部45aの指示に応じて再現PLC40aのクロック管理部41aによって管理される対象カウンタ値に従って、動画データ55の再生位置が制御されるため、時刻スクロールバー82bは、ユーザによる移動操作を受け付け不可に設定される。
【0151】
第4ウィンドウ84は、動画再生モジュール30cによって生成される。第4ウィンドウ84には、対象期間の撮影により得られた動画データ55によって示される動画84aが再生される。動画84aは、対象時刻に対応する時刻のフレームである。対象時刻に対応する時刻のフレームを動画データ55が有していない場合、動画84aは、対象時刻に最も近い時刻のフレームとなる。
【0152】
第4ウィンドウ84において、動画84aの下側には、シークバー84bが配置されている。シークバー84bは、動画再生モジュール30cが再生しているフレームの時刻をスライダー84cで表すように構成されている。全体同期モードでは、クロック管理部41aにおける対象カウンタ値の更新に従って、シークバー84bにおけるスライダー84cの位置(再生位置)が更新される。
【0153】
シークバー84bのスライダー84cは、動画の再生位置を示すとともに、ユーザによる再生位置の移動操作を受け付けるために設けられている。スライダー84cの移動操作に応じて、動画再生モジュール30cが再生しているフレームの時刻が更新される。ただし、全体同期モードでは、再現PLC40aのクロック管理部41aによって管理される対象カウンタ値に従って、動画データ55の再生位置が制御されるため、シークバー84bは、ユーザによるスライダー84cの移動操作を受け付け不可に設定される。
【0154】
<波形動画同期モード>
図10は、波形動画同期モードにおけるPCの構成を示すブロック図である。
図10に示されるように、第1ウィンドウ70(
図5参照)の再生ボタン群73に含まれる一時停止ボタン73bが操作されると、再現PLCクロック操作部45aは、再生速度「0」を示す再生条件を設定する。
【0155】
再現PLC40aのクロック管理部41aは、再生条件として再生速度「0」が設定されたことに応じて、対象カウンタ値の更新を停止する。なお、クロック管理部41aは、更新が停止された時点における対象カウンタ値に対応する対象時刻を、再現PLC40aの現在時刻として保持しておく。このようにすると、ユーザから再生再開の指示を受けて、複数のモジュール30が波形動画同期モードから全体同期モードに復帰した場合に、再生を一時停止したときの対象時刻におけるPLC200の制御状態に戻って、PLC200の制御状態の再現を再開することができる。
【0156】
同期モード管理部43aは、再現PLCクロック操作部45aからの一時停止指示に応じて、複数の可視化モジュール30を全体同期モードから波形動画モードに切り替える。
【0157】
時系列データ管理部42aは、対象カウンタ値の更新が停止されると、時系列データセット50から対象カウンタ値に対応する対象時刻のデータを抽出することを停止する。
【0158】
プログラム表示モジュール30aは、同期モード管理部43aにより設定される同期モードを監視している。プログラム表示モジュール30aは、波形動画同期モードに設定されたことに応じて、再現PLC40aに対する変数取得リクエストの発行を停止するとともに、第2ウィンドウ80のデータの生成を停止する。そのため、第2ウィンドウ80には、一時停止ボタンが操作されたときのデータが保持される。
【0159】
波形表示モジュール30bは、同期モード管理部43aによって波形動画同期モードに設定されたことに応じて、再現PLC40aに変数取得リクエストを発行する。具体的には、波形表示モジュール30bは、時刻範囲を指定して、指定された時刻範囲においてPLC200が保持していた変数値を取得するための変数取得リクエストを発行する。この時刻範囲は、変数グラフが示す変数値の時刻範囲を規定するものであり、対象期間に属するように指定することができる。波形表示モジュール30bは、時刻範囲における変数値を取得すると、取得した変数値の推移を示す変数グラフを含む第3ウィンドウ82(
図11参照)のデータを生成し、第3ウィンドウ82をディスプレイ120に表示する。
【0160】
第3ウィンドウ82における変数グラフには、再現PLC現在時刻線L1および動画再生線L2が示される。なお、再現PLC現在時刻線L1は、更新が停止されたタイミングでの対象カウンタ値に対応する対象時刻に固定される。一方、動画再生線L2は、ユーザによる移動操作を受け付けることが可能とされる。
【0161】
動画再生モジュール30cは、同期モード管理部43aによって波形動画同期モードに設定されたことに応じて、波形表示モジュール30bから可視化対象時刻を取得する。波形表示モジュール30bから与えられる可視化対象時刻は、第3ウィンドウ82に示される動画再生線L2の位置に基づいている。動画再生モジュール30cは、取得した可視化対象時刻に対応するフレームを第4ウィンドウ84(
図11参照)に表示させる。
【0162】
図11は、波形動画同期モードにおける第2から第4ウィンドウの一例を示す図である。
図11に示す第2ウィンドウ80は、プログラム表示モジュール30aによって生成される。ただし、第2ウィンドウ80には、全体同期モードから波形動画同期モードに遷移した時点のデータが保持される。
【0163】
第3ウィンドウ82は、波形表示モジュール30bによって生成される。第3ウィンドウ82は、可視化対象の変数値の推移を示す変数グラフ82aを含む。変数グラフ82a上には、再現PLC現在時刻線L1と、動画再生線L2とが示される。再現PLC現在時刻線L1は、更新が停止された時点の対象カウンタ値に対応する対象時刻に固定される。
【0164】
動画再生線L2は、動画再生モジュール30cが再生しているフレームの時刻を表している。波形動画同期モードでは、時刻スクロールバー82bは、ユーザによる動画再生線L2の移動操作を受け付け可能とされる。波形表示モジュール30bは、ユーザによる動画再生線L2の移動操作に応じて、変数グラフ82aにおける動画再生線L2の位置を移動させる。そして、波形表示モジュール30bは、動画再生線L2の位置に対応する時刻を可視化対象時刻に指定し、指定した可視化対象時刻を動画再生モジュール30cに与える。
【0165】
第4ウィンドウ84は、動画再生モジュール30cによって生成される。第4ウィンドウ84には、対象期間の撮影により得られた動画データ55によって示される動画84aが再生される。動画84aは、波形表示モジュール30bから与えられた可視化対象時刻に対応する時刻のフレームである。動画データ55に対象時刻に対応する時刻のフレームが存在しない場合、動画84aは、可視化対象時刻に最も近い時刻のフレームとなる。
【0166】
波形動画同期モードでは、シークバー84bは、ユーザによるスライダー84cの移動操作を受け付け可能となる。動画再生モジュール30cは、ユーザによるスライダー84cの移動操作に応じて、スライダー84cの位置に対応する時刻のフレームを再生する。そして、動画再生モジュール30cは、スライダー84cの位置に対応する時刻を可視化対象時刻に指定し、指定した可視化対象時刻を波形表示モジュール30bに与える。波形表示モジュール30bは、動画再生モジュール30cから与えられた可視化対象時刻に対応する位置に動画再生線L2を移動させる。
【0167】
このように波形動画同期モードでは、再現PLC40aのクロック管理部41aにおける対象カウンタ値の更新が停止されたことを受けて、プログラム表示モジュール30aにおける制御プログラムのモニタリングが停止される。その一方で、波形表示モジュール30bにおける変数グラフ82aの表示、および動画再生モジュール30cにおける動画84aの再生は、ユーザ入力に応じて、再現PLC40aのクロック管理部41aとは独立して行われる。
【0168】
具体的には、波形表示モジュール30bは、ユーザによる動画再生線L2の移動操作を受け付けると、動画再生線L2の位置を移動させるとともに、動画再生線L2の位置に対応する時刻を、動画再生モジュール30cにおける可視化対象時刻に指定する。その結果、動画再生モジュール30cは、動画再生線L2の位置に対応する時刻のフレームを再生する。また、動画再生モジュール30cは、ユーザによるスライダー84cの移動操作を受け付けると、スライダー84cの位置に対応する時刻のフレームを再生するとともに、スライダー84cの位置に対応する時刻を、波形表示モジュール30bにおける可視化対象時刻に指定する。波形表示モジュール30bは、指定された可視化対象時刻に従って、動画再生線L2の位置を移動させる。このように波形表示モジュール30bおよび動画再生モジュール30cの間で可視化対象時刻を遣り取りすることにより、波形表示モジュール30bおよび動画再生モジュール30cにおける可視化対象時刻を同期させることができる。
【0169】
<プレイバックモードにおけるPCの処理の流れ>
図12は、プレイバックモードにおける再現PLCクロック操作部および再現PLCの処理の流れを示すフローチャートである。まず、ステップS01において、再現PLCクロック操作部45aは、ユーザから再生指示を受け付けたか否かを判定する。
図5に示す第1ウィンドウ70の再生ボタン群73に含まれる再生ボタン73aまたは最初に移動するためのボタン73dが操作された場合にS01はYES判定とされ、ボタン73a,73dのいずれも操作されない場合にS01はNO判定とされる。
【0170】
再生指示を受け付けた場合(S01のYES判定時)、ステップS02において、再現PLCクロック操作部45aは、第1ウィンドウ70に含まれるカーソル71の現在位置に対応するカウンタ値を再生開始カウンタ値として設定する。
【0171】
次のステップS03において、再現PLCクロック操作部45aは、再生速度入力欄74に入力されている倍率を示すように再生条件を設定する。
【0172】
次のステップS04において、再現PLC40aの同期モード管理部43aは、再現PLCクロック操作部45aから受け付けた再生開始カウンタ値および再生条件に従って、複数の可視化モジュール30を全体同期モードに設定する。
【0173】
次のステップS05において、再現PLC40aのクロック管理部41aは、再生開始カウンタ値および再生条件に従って、対象カウンタ値の更新を行う。S03では、クロック管理部41aは、再生開始カウンタ値を対象カウンタ値として設定するとともに、再生条件に応じて規定時間を設定する。
【0174】
次のステップS06において、再現PLC40aの時系列データ管理部42aは、対象カウンタ値に対応する対象時刻のデータを時系列データセット50から抽出し、抽出したデータに基づいて、対象時刻においてPLC200のメモリ206に保持されていた変数値を再現する。
【0175】
一方、ステップS01にて再生指示を受け付けていない場合(S01のNO判定時)、ステップS07において、再現PLCクロック操作部45aは、ユーザから再生の一時停止の指示を受け付けたか否かを判定する。第1ウィンドウ70の再生ボタン群73に含まれる一時停止ボタン73bが操作された場合にS07はYES判定とされ、一時停止ボタン73bが操作されない場合にS07はNO判定とされる。
【0176】
一時停止指示を受け付けた場合(S07のYES判定時)、ステップS08において、再現PLCクロック操作部45aは、再生速度「0」を示す再生条件を設定する。
【0177】
次のステップS09において、同期モード管理部43aは、再現PLCクロック操作部45aから受け付けた再生条件に従って、複数の可視化モジュール30を波形動画同期モードに設定する。
【0178】
次のステップS10において、クロック管理部41aは、再生条件に従って、対象カウンタ値の更新を停止する。
【0179】
ステップS07において一時停止指示を受け付けていない場合(S07のNO判定時)、ステップS11において、再現PLCクロック操作部45aは、ユーザから再生の停止指示を受け付けたか否かを判定する。第1ウィンドウ70の再生ボタン群73に含まれる停止ボタン73cが操作された場合にS11はYES判定とされ、停止ボタン73cが操作されない場合にS11はNO判定とされる。停止ボタン73cが操作されない場合(S11のNO判定時)には、処理はステップS01に戻る。
【0180】
停止指示を受け付けた場合(S11のYES判定時)、ステップS12において、再現PLCクロック操作部45aは、変数値の再現処理を停止するように再現PLC40aに指示する。
【0181】
図13は、プレイバックモードにおけるプログラム表示モジュールの処理の流れを示すフローチャートである。まず、ステップS61において、プログラム表示モジュール30aは、プレイバックモードであるか否かを判定する。プログラム表示モジュール30aの接続先が再現PLC40aである場合にS61はYES判定とされ、プログラム表示モジュール30aの接続先がPLC200またはPLCシミュレーター700である場合、あるいは、プログラム表示モジュール30aが再現PLC40a、PLC200およびPLCシミュレーター700のいずれにも接続されていない場合にS61はNO判定とされる。
【0182】
プログラム表示モジュール30aがプレイバックモードである場合(S61のYES判定時)、次のステップS62において、プログラム表示モジュール30aは、再現PLC40aの同期モード管理部43aを監視することにより、同期モードが全体同期モードであるか波形動画同期モードであるかを判定する。
【0183】
同期モードが全体同期モードである場合(S62のYES判定時)、ステップS63において、プログラム表示モジュール30aは、再現PLC40aから可視化対象の変数値を取得する。
【0184】
次のステップS64において、プログラム表示モジュール30aは、制御プログラムを表すラダー図上に、取得した変数値を記述された第2ウィンドウ80を生成し、第2ウィンドウ80をディスプレイ120に表示する。
【0185】
ステップS62に戻って、同期モードが波形動画同期モードである場合(S62のNO判定時)、ステップS65において、プログラム表示モジュール30aは、再現PLC40aから可視化対象の変数値を取得することを停止する。これにより、第2ウィンドウ80の更新が停止される。
【0186】
図14は、プレイバックモードにおける波形表示モジュールの処理の流れを示すフローチャートである。まず、ステップS21において、波形表示モジュール30bは、プレイバックモードであるか否かを判定する。波形表示モジュール30bの接続先が再現PLC40aである場合にS21はYES判定とされ、波形表示モジュール30bの接続先がPLC200またはPLCシミュレーター700である場合、あるいは、波形表示モジュール30bが再現PLC40a、PLC200およびPLCシミュレーター700のいずれにも接続されていない場合にS21はNO判定とされる。
【0187】
波形表示モジュール30bがプレイバックモードである場合(S21のYES判定時)、次のステップS22において、波形表示モジュール30bは、再現PLC40aの同期モード管理部43aを監視することにより、同期モードが全体同期モードであるか波形動画同期モードであるかを判定する。
【0188】
同期モードが全体同期モードである場合(S22のYES判定時)、ステップS23において、波形表示モジュール30bは、時刻範囲を指定して、再現PLC40aから可視化対象の変数値を取得する。
【0189】
次のステップS24において、波形表示モジュール30bは、取得した変数値の推移を示す変数グラフ82aを含む第3ウィンドウ82のデータを生成し、第3ウィンドウ82をディスプレイ120に表示する。
【0190】
次のステップS25において、波形表示モジュール30bは、再現PLC40aから対象カウンタ値に対応する対象時刻を取得する。
【0191】
次のステップS26において、波形表示モジュール30bは、取得した対象時刻を表す再現PLC現在時刻線L1と、動画再生モジュール30cが再生しているフレームの時刻を表す動画再生線L2とを変数グラフ82a上に表示する。
【0192】
次のステップS27において、波形表示モジュール30bは、第3ウィンドウ82に含まれる時刻スクロールバー82bへのユーザ操作を禁止することにより、ユーザによる動画再生線L2の移動操作を不可に設定する。
【0193】
ステップS22に戻って、同期モードが波形動画同期モードである場合(S22のNO判定時)、ステップS28において、波形表示モジュール30bは、時刻スクロールバー82bへのユーザ操作を許可することにより、ユーザによる動画再生線L2の移動操作を可能に設定する。
【0194】
次のステップS29において、波形表示モジュール30bは、時刻スクロールバー82bが、動作再生線L2の移動操作を受け付けたか否かを判定する。
【0195】
動画再生線L2の移動操作を受け付けた場合(S29のYES判定時)、ステップS30において、波形表示モジュール30bは、移動操作に応じて動画再生線L2を移動させ、動画再生線L2の位置に対応する時刻を可視化対象時刻に指定する。
【0196】
次のステップS31において、波形表示モジュール30bは、指定された可視化対象時刻を動画再生モジュール30cに与える。
【0197】
次のステップS32において、波形表示モジュール30bは、動画再生モジュール30cにおいて可視化対象時刻が指定されたか否かを判定する。
【0198】
動画再生モジュール30cにおいて可視化対象時刻が指定された場合(S32のYES判定時)、ステップS33において、波形表示モジュール30bは、動画再生モジュール30cから与えられた可視化対象時刻に従って、動画再生線L2を移動させる。
【0199】
図15は、プレイバックモードにおける動画再生モジュールの処理の流れを示すフローチャートである。まず、ステップS41において、動画再生モジュール30cは、プレイバックモードであるか否かを判定する。
【0200】
動画再生モジュール30cがプレイバックモードである場合(S41のYES判定時)、次のステップS42において、動画再生モジュール30cは、再現PLC40aの同期モード管理部43aを監視することにより、同期モードが全体同期モードであるか波形動画同期モードであるかを判定する。
【0201】
同期モードが全体同期モードである場合(S42のYES判定時)、ステップS43において、動画再生モジュール30cは、再現PLC40aから対象カウンタ値に対応する対象時刻を取得する。
【0202】
次のステップS44において、動画再生モジュール30cは、取得した対象時刻に対応する時刻のフレームを第4ウィンドウ84に表示させる。
【0203】
次のステップS45において、動画再生モジュール30cは、第4ウィンドウ84に含まれるシークバー84bにおいて、ユーザによるスライダー84cの移動操作を受け付け不可に設定する。
【0204】
ステップS42に戻って、同期モードが波形動画同期モードである場合(S42のNO判定時)、ステップS46において、動画再生モジュール30cは、ユーザによるスライダー84cの移動操作を可能に設定する。
【0205】
次のステップS47において、動画再生モジュール30cは、スライダー84cが移動操作を受け付けたか否かを判定する。
【0206】
スライダー84cの移動操作を受け付けた場合(S47のYES判定時)、ステップS48において、動画再生モジュール30cは、移動操作に応じて動画データ55の再生位置を移動させ、スライダー84cの位置に対応する時刻のフレームを再生する。動画再生モジュール30cは、スライダー84cの位置に対応する時刻を可視化対象時刻に指定する。
【0207】
次のステップS49において、動画再生モジュール30cは、指定された可視化対象時刻を波形表示モジュール30bに与える。
【0208】
次のステップS50において、動画再生モジュール30cは、波形表示モジュール30bにおいて可視化対象時刻が指定されたか否かを判定する。
【0209】
波形表示モジュール30bにおいて可視化対象時刻が指定された場合(S50のYES判定時)、ステップS51において、動画再生モジュール30cは、波形表示モジュール30bから与えられた可視化対象時刻に対応する時刻のフレームを第4ウィンドウ84に表示させる。
【0210】
<波形動画同期モードにおける波形比較機能>
波形動画同期モードにおいて、波形表示モジュール30bは、ユーザ入力に応じて、可視化対象の変数値の推移を示す変数グラフとともに、予め設定された参照用変数グラフを表示させることが可能に構成される。ある局面では、波形表示モジュール30bは、可視化対象の変数値の推移を示す変数グラフに、参照用変数グラフを重ね合わせて表示することができる。別の局面では、波形表示モジュール30bは、可視化対象の変数値の推移を示す変数グラフと、参照用変数グラフとを並べて表示することができる。
【0211】
例えば、ユーザは、参照用変数グラフを、製造システム(
図1参照)が正常に稼働しているときの可視化対象の変数値の推移を示す変数グラフに予め設定しておくことができる。これによると、製造システムにて発生した異常な動作の原因を調査する場面において、ユーザは、波形表示モジュール30bに表示される、異常が発生したときの変数グラフと参照用変数グラフとを比較することにより、異常発生時では正常時と比べて変数値の推移にどのような変化があるかなどを検証することが可能となる。
【0212】
図16は、波形動画同期モードにおいて波形比較を行うためのPCの構成を示すブロック図である。
図16に示されるように、再現PLC生成部16は、波形比較を指示するユーザ入力に応じて、参照用変数値を再現するための再現PLC40bを生成するとともに、再現PLC40bの動作を開始させる。データアクセサ19は、波形比較を指示するユーザ入力に応じて、再現PLC40bを波形表示モジュール30bに接続する。
【0213】
再現PLC40bは、クロック管理部41bおよび時系列データ管理部42bを備える。クロック管理部41bは、予め設定された参照対象期間における、参照用変数値の再現対象となる対象時刻に対応する対象カウンタ値を管理する。参照対象期間は、例えば、製造システムが正常に稼働している期間であって、時系列データセット50における対象期間に対応するように設定することができる。対象カウンタ値は、参照対象期間の開始時からの経過時間を表す。
【0214】
時系列データ管理部42bは、対象カウンタ値に対応する対象時刻のデータを参照用時系列データセット50bから抽出し、抽出したデータに基づいて、対象時刻においてPLC200のメモリ206に保持されていた変数値を再現する。参照用時系列データセット50bは、参照対象期間においてPLC200のメモリ206に保持されていた変数値を記録することにより生成される。
【0215】
波形表示モジュール30bは、同期モード管理部43aによって波形動画同期モードに設定されたことに応じて、再現PLC40aおよび再現PLC40bの各々に変数取得リクエストを発行する。具体的には、波形表示モジュール30bは、時刻範囲を指定して、指定された時刻範囲においてPLC200が保持していた変数値を取得するための変数取得リクエストを再現PLC40aに発行する。例えば、異常検知フラグに対応する変数がオフからオンに遷移したタイミングを含むように、時刻範囲を指定することができる。波形表示モジュール30bは、時刻範囲における変数値を取得すると、取得した変数値の推移を示す変数グラフを含む第3ウィンドウ82(
図17参照)のデータを生成し、第3ウィンドウ82をディスプレイ120に表示する。
【0216】
さらに、波形表示モジュール30bは、波形比較を指示するユーザ入力に応じて、参照用時刻範囲を指定して、指定された参照用時刻範囲においてPLC200が保持していた変数値を取得するための変数取得リクエストを再現PLC40bに発行する。参照用時刻範囲は、参照用変数グラフが示す参照用変数値の時刻範囲を規定するものであり、参照対象期間に属するように指定することができる。波形表示モジュール30bは、参照用時刻範囲における参照用変数値を取得すると、取得した参照用変数値の推移を示す参照用変数グラフを含む第5ウィンドウ83(
図17参照)のデータを生成し、第5ウィンドウ83をディスプレイ120に表示する。
【0217】
動画再生モジュール30cは、同期モード管理部43aによって波形動画同期モードに設定されたことに応じて、波形表示モジュール30bから可視化対象時刻を取得する。波形表示モジュール30bから与えられる可視化対象時刻は、第3ウィンドウ82に示される動画再生線L2の位置に基づいている。動画再生モジュール30cは、取得した可視化対象時刻に対応するフレームを第4ウィンドウ84(
図17参照)に表示させる。
【0218】
さらに、動画再生モジュール30cは、波形比較を指示するユーザ入力に応じて、波形表示モジュール30bから参照用変数値の可視化対象時刻を取得する。波形表示モジュール30bから与えられる可視化対象時刻は、第5ウィンドウ83に示される第3時刻線L3(以下、「動画再生線L3」と称する)の位置に基づいて指定される。動画再生モジュール30cは、取得した可視化対象時刻に対応する参照用動画のフレームを第6ウィンドウ85(
図17参照)に表示させる。
【0219】
図17は、波形比較における第3から第6ウィンドウの一例を示す図である。図示は省略するが、プログラム表示モジュール30aによって生成される第2ウィンドウ80には、全体同期モードから波形動画同期モードに遷移した時点のデータが保持されている。
図17には、
図11と同じ第3ウィンドウ82および第4ウィンドウ84とともに、第5ウィンドウ83および第6ウィンドウ85が示されている。
【0220】
第5ウィンドウ83は、波形表示モジュール30bによって生成される。第5ウィンドウ83は、参照用時刻範囲における可視化対象の変数値の推移を示す参照用変数グラフ83aを含む。参照用変数グラフ83aには、再現PLC現在時刻線L1と、動画再生線L3とが示される。波形動画同期モードにおいて、再現PLC現在時刻線L1は、更新が停止された時点の対象カウンタ値に対応する対象時刻に固定される。
【0221】
動画再生線L3は、動画再生モジュール30cが再生している参照用動画のフレームの時刻を表している。第5ウィンドウ83において、参照用変数グラフ83aの下側には、時刻スクロールバー83bが配置されている。時刻スクロールバー83bは、ユーザによる動画再生線L3の移動操作を受け付けるために設けられている。波形表示モジュール30bは、ユーザによる動画再生線L3の移動操作に応じて、参照用変数グラフ83aにおける動画再生線L3の位置を移動させる。そして、波形表示モジュール30bは、動画再生線L3の位置に対応する時刻を参照用変数値の可視化対象時刻に指定し、指定した可視化対象時刻を動画再生モジュール30cに与える。
【0222】
第6ウィンドウ85は、動画再生モジュール30cによって生成される。第6ウィンドウ85には、参照対象期間の撮影により得られた動画データによって示される動画85aが再生される。動画85aは、波形表示モジュール30bから与えられた参照用変数値の可視化対象時刻に対応する時刻のフレームである。参照用動画データに可視化対象時刻に対応する時刻のフレームが存在しない場合、動画85aは、可視化対象時刻に最も近い時刻のフレームとなる。
【0223】
第6ウィンドウ85において、動画85aの下側には、シークバー85bが配置されている。シークバー85bは、動画再生モジュール30cが再生している参照用動画のフレームの時刻をスライダー85cで表すように構成されている。再現PLC40bのクロック管理部41bにおける対象カウンタ値の更新に従って、シークバー85bにおけるスライダー85cの位置(再生位置)が更新される。
【0224】
シークバー85bのスライダー85cは、参照用動画の再生位置を示すとともに、ユーザによる再生位置の移動操作を受け付けるために設けられている。動画再生モジュール30cは、ユーザによるスライダー85cの移動操作に応じて、スライダー85cの位置に対応する時刻の参照用動画のフレームを再生する。そして、動画再生モジュール30cは、スライダー85cの位置に対応する時刻を参照用変数値の可視化対象時刻に指定し、指定した可視化対象時刻を波形表示モジュール30bに与える。波形表示モジュール30bは、動画再生モジュール30cから与えられた可視化対象時刻に位置するように、動画再生線L3の位置を移動させる。
【0225】
波形動画同期モードにおいて波形比較を行う場合、波形表示モジュール30bは、ユーザによる動画再生線L3の移動操作を受け付けると、動画再生線L3の位置を移動させるとともに、動画再生線L3の位置に対応する時刻を、動画再生モジュール30cにおける参照用動画の可視化対象時刻に指定する。その結果、動画再生モジュール30cは、動画再生線L3の位置に対応する時刻の参照用動画のフレームを再生する。また、動画再生モジュール30cは、ユーザによるスライダー85cの移動操作を受け付けると、スライダー85cの位置に対応する時刻のフレームを再生するとともに、スライダー85cの位置に対応する時刻を、波形表示モジュール30bにおける参照用変数値の可視化対象時刻に指定する。波形表示モジュール30bは、指定された可視化対象時刻に従って、動画再生線L3の位置を移動させる。このように波形表示モジュール30bおよび動画再生モジュール30cの間で参照用変数値の可視化対象時刻を遣り取りすることにより、波形表示モジュール30bおよび動画再生モジュール30cにおける参照用変数値の可視化対象時刻を同期させることができる。
【0226】
なお、波形表示モジュール30bおよび動画再生モジュール30cにおける参照用変数値の可視化対象時刻の同期は、波形表示モジュール30bおよび動画再生モジュール30cにおける可視化対象の変数値の可視化対象時刻の同期とは独立して行われる。
【0227】
また、
図17では、第3ウィンドウ82と第5ウィンドウ83とをディスプレイ120に並べて表示させる構成例としたが、波形表示モジュール30bは、第3ウィンドウ82に含まれる変数グラフ82aと、第5ウィンドウ83に含まれる参照用変数グラフ83aとを重ね合わせて表示させる構成とすることも可能である。
【0228】
<変形例>
上記の説明では、情報処理システム100が1つのPC100Aによって構成されるものとした。しかしながら、情報処理システム100は、複数のコンピュータによって構成されてもよい。例えば、情報処理システム100は、1以上の可視化モジュール30を実現する第1コンピュータと、再現モジュール40および時刻指定モジュール45を実現する第2コンピュータとによって構成されてもよい。
【0229】
§3 使用例
最後に、本実施の形態に係る情報処理システムの使用例について説明する。
【0230】
図1に示す製造システムにて発生した異常な動作の原因を調査する場面において、ユーザは、最初に、
図5に示す第1ウィンドウ70の再生ボタン群73に含まれる再生ボタン73aまたは最初に移動するためのボタン73dを操作することにより、複数の可視化モジュール30を全体同期モードに設定する。全体同期モードにおいて、ある局面では、ユーザは、動画再生モジュール30cにて再生される動画データ55から異常が発生した時刻を調べることができる。そして、プログラム表示モジュール30aの第2ウィンドウ80に示される制御プログラムの実行状況を参照することにより、異常が発生した時刻周辺の制御プログラムの異常箇所を調べることができる。
【0231】
別の局面では、ユーザは、再現データ検索モジュール32を用いて、制御プログラムの異常箇所を検索することができる。例えば、異常検知フラグがオフからオンに遷移した箇所を検索することができる。そして、第1ウィンドウ70に含まれるカーソル71の移動操作を行うことにより、異常箇所に対応する時刻にジャンプして、制御プログラムの不具合箇所を調べることができる。
【0232】
制御プログラムの異常箇所または不具合箇所が見つかった場合には、ユーザは続いて、再生ボタン群73に含まれる一時停止ボタン73bを操作することにより、複数の可視化モジュール30を全体同期モードから波形動画同期モードに切り替えることができる。
【0233】
波形動画同期モードでは、ユーザは、波形表示モジュール30bの第3ウィンドウ82に表示される変数グラフ82aにおいて、異常箇所に関連する変数の推移を確認することができる。変数の推移に合わせて、動画再生モジュール30cの第4ウィンドウ84に示される動画84aを確認することにより、変数に異常が生じたタイミングのPLC200の制御状態を分析することができる。ここでは、ユーザは、動画再生線L2の移動操作またはシークバー84bのスライダー84cの移動操作を行うことで、変数に異常が発生した時刻およびその前後の制御状態を詳細に確認することができる。
【0234】
また、波形比較機能を用いることにより、波形表示モジュール30bに表示される、異常が発生したときの変数グラフ82aと参照用変数グラフ83aとを比較することにより、異常発生時では正常時と比べて変数値の推移にどのような変化があるかなどを検証することが可能となる。
【0235】
別の不具合箇所を確認したい場合、ユーザは、第1ウィンドウ70の再生ボタン群73に含まれる再生ボタン73aを操作することにより、複数の可視化モジュール30を全体同期モードに復帰させることができる。全体同期モードに復帰すると、プログラム表示モジュール30aは、再生が一時停止された箇所から、制御プログラムの実行状況の表示を再開する。このようにしてユーザは、確認したい内容に応じて、全体同期モードと波形動画モードとを使い分けることができる。
【0236】
§4 付記
以上のように、本実施の形態は以下のような開示を含む。
【0237】
(構成1)
情報処理システム(100,100A)であって、
プログラマブルロジックコントローラ(200)の制御状態を表す可視化対象の変数値を可視化する複数の可視化モジュール(30,30a~30c,101)と、
対象期間において前記プログラマブルロジックコントローラ(200)によって記録された時系列データセット(50)に基づいて、前記対象期間における前記プログラマブルロジックコントローラ(200)の制御周期ごとの、前記プログラマブルロジックコントローラ(200)が保持していた変数値を順次再現する再現モジュール(40,40a,101)とを備え、
前記複数の可視化モジュール(30,30a~30c,101)は、前記再現モジュール(40,40a、101)によって再現された前記変数値を前記可視化対象の変数値として取得する第1モードを有し、
前記複数の可視化モジュール(30,30a~30c,101)は、
制御プログラムを表すラダー図上に前記可視化対象の変数値が記述されたウィンドウを表示するプログラム表示モジュール(30a)と、
前記可視化対象の変数値の推移を示す変数グラフを含むウィンドウを表示する波形表示モジュール(30b)と、
前記対象期間の撮影により得られる動画データによって示される動画を再生する動画再生モジュール(30c)とを含み、
前記複数の可視化モジュール(30,30a~30c,101)は、前記プログラム表示モジュール(30a)、前記波形表示モジュール(30b)および前記動画再生モジュール(30c)における可視化対象時刻を同期させる第1同期モードと、前記波形表示モジュール(30b)および前記動画再生モジュール(30c)における可視化対象時刻を同期させる第2同期モードとを有しており、前記第1モードにおいて、ユーザ入力に応じて、前記第1同期モードおよび前記第2同期モードの間を遷移する、情報処理システム(100,100A)。
【0238】
(構成2)
前記再現モジュール(40,40a,101)の再生に関するユーザ入力を受け付ける時刻指定モジュール(45,45a,101)をさらに備え、
前記再現モジュール(40,40a,101)は、
再生を指示するユーザ入力を前記時刻指定モジュール(45,45a,101)が受け付けたことに応じて、前記複数の可視化モジュール(30a~30c)を前記第1同期モードに設定し、
再生の一時停止を指示するユーザ入力を前記時刻指定モジュール(45,45a,101)が受け付けたことに応じて、前記複数の可視化モジュール(30a~30c)を前記第1同期モードから前記第2同期モードに切り替える、構成1に記載の情報処理システム(100,100A)。
【0239】
(構成3)
前記第1同期モードにおいて、前記波形表示モジュール(30b)および前記動画再生モジュール(30c)の各々は、可視化対象時刻を指定するユーザ入力を受け付け不可に設定し、
前記第2同期モードにおいて、前記波形表示モジュール(30b)および前記動画再生モジュール(30c)の各々は、可視化対象時刻を指定するユーザ入力を受け付け可能に設定し、指定された可視化対象時刻を互いに遣り取りすることにより、前記波形表示モジュール(30b)および前記動画再生モジュール(30c)における可視化対象時刻を同期させる、構成1または2に記載の情報処理システム(100,100A)。
【0240】
(構成4)
前記時刻指定モジュール(45,45a,101)は、再生を指示するユーザ入力に応じて、再生開始カウンタ値および再生条件を設定し、設定した前記再生開始カウンタ値および前記再生条件を前記再現モジュールに出力し、
前記再現モジュール(40,40a,101)は、
前記時刻指定モジュールから受けた前記再生開始カウンタ値および前記再生条件に従って、前記複数の可視化モジュール(30,30a~30c,101)を前記第1同期モードに設定し、
前記再生開始カウンタ値を対象カウンタ値として、前記再生条件に従って前記対象カウンタ値を更新し、
前記対象カウンタ値に対応する対象時刻における前記変数値を再現する、構成2または3に記載の情報処理システム(100,100A)。
【0241】
(構成5)
前記時刻指定モジュール(45,45a,101)は、前記再生の一時停止を指示するユーザ入力に応じて、再生速度を0とする前記再生条件を設定し、設定した前記再生条件を前記再現モジュール(40,40a,101)に出力し、
前記再現モジュール(40,40a,101)は、前記時刻指定モジュール(45,45a,101)から受けた前記再生速度を0とする前記再生条件に従って、前記複数の可視化モジュール(30,30a~30c,101)を前記第1同期モードから前記第2同期モードに切り替えるとともに、前記対象カウンタ値の更新を停止する、構成4に記載の情報処理システム(100,100A)。
【0242】
(構成6)
前記動画再生モジュール(30c)は、前記第1同期モードにおいて、
前記再現モジュール(40,40a,101)から前記対象時刻を取得し、取得した前記対象時刻に対応する時刻の動画のフレームを再生し、
ユーザによる前記動画データの再生位置の移動操作を受け付け不可に設定し、
前記波形表示モジュール(30b)は、前記第1同期モードにおいて、
前記再現モジュール(40,40a,101)から前記対象時刻を取得し、取得した前記対象時刻を示す第1時刻線を前記変数グラフ上に表示し、
前記動画再生モジュール(30c)が再生している動画のフレームの時刻を示す第2時刻線を前記変数グラフ上に表示し、
ユーザによる前記第2時刻線の移動操作を受け付け不可に設定する、構成5に記載の情報処理システム(100,100A)。
【0243】
(構成7)
前記動画再生モジュール(30c)は、前記第2同期モードにおいて、
ユーザによる前記動画データの再生位置の移動操作を受け付け可能に設定し、
前記再生位置の移動操作に応じて、再生されるフレームの時刻を更新し、
前記再生位置に基づいて前記可視化対象時刻を指定し、指定した前記可視化対象時刻を前記波形表示モジュール(30b)に与え、
前記波形表示モジュール(30b)は、前記第2同期モードにおいて、
前記動画再生モジュールから与えられた前記可視化対象時刻を示す前記第2時刻線を前記変数グラフ上に表示する、構成6に記載の情報処理システム(100,100A)。
【0244】
(構成8)
前記波形表示モジュール(30b)は、前記第2同期モードにおいて、
ユーザによる前記第2時刻線の移動操作を受け付け可能に設定し、
前記第2時刻線の移動操作に応じて、前記第2時刻線の位置を移動し、
前記第2時刻線の位置に対応する時刻を前記可視化対象時刻に指定し、指定した前記可視化対象時刻を前記動画再生モジュール(30c)に与え、
前記動画再生モジュール(30c)は、前記第2同期モードにおいて、
前記波形表示モジュール(30b)から与えられた前可視化記対象時刻に対応する時刻のフレームを再生する、構成6または7に記載の情報処理システム(100,100A)。
【0245】
(構成9)
前記波形表示モジュール(30b)は、前記第2同期モードにおいて、
ユーザ入力に応じて、前記対象期間における前記可視化対象の変数値の推移を示す前記変数グラフとともに、過去の前記可視化対象の変数値の推移を示す参照用変数グラフを表示し、
前記動画再生モジュール(30c)は、前記第2同期モードにおいて、
前記対象期間の撮影により得られる前記動画データによって示される動画を再生するとともに、前記参照用変数グラフに対応する参照対象期間の撮影により得られる参照用動画データによって示される参照用動画を再生し、
ユーザによる前記参照用動画データの再生位置の移動操作に応じて、再生される前記参照用動画のフレームの時刻を更新し、
前記参照用動画データの再生位置に基づいて参照用可視化対象時刻を指定し、指定した前記参照用可視化対象時刻を前記波形表示モジュール(30b)に与え、
前記波形表示モジュール(30b)は、前記第2同期モードにおいて、
前記動画再生モジュール(30c)から与えられた前記参照用可視化対象時刻を示す第3時刻線を前記参照用変数グラフ上に表示する、構成6に記載の情報処理システム(100,100A)。
【0246】
(構成10)
前記波形表示モジュール(30b)は、前記第2同期モードにおいて、
ユーザによる前記第3時刻線の移動操作に応じて、前記第3時刻線の位置を移動し、
前記第3時刻線の位置に対応する時刻を前記参照用可視化対象時刻に指定し、指定した前記参照用可視化対象時刻を前記動画再生モジュール(30c)に与え、
前記動画再生モジュール(30c)は、前記第2同期モードにおいて、
前記波形表示モジュール(30b)から与えられた前記参照用可視化対象時刻に対応する時刻の前記参照用動画のフレームを再生する、構成9に記載の情報処理システム(100,100A)。
【0247】
(構成11)
前記複数の可視化モジュール(30,30a~30c,101)は、前記プログラマブルロジックコントローラ(200)が現在保持する変数値を前記可視化対象の変数値として取得する第2モードをさらに有し、
前記情報処理システム(100,100A)は、指示に応じて、前記第1モードおよび前記第2モードを含む複数のモードの中から1つのモードを選択する選択部(19,101)をさらに備える、構成1から10のいずれかに記載の情報処理システム(100,100A)。
【0248】
(構成12)
プログラマブルロジックコントローラ(200)の制御状態を表す可視化対象の変数値を可視化する複数の可視化モジュール(30,30a~30c,101)を含む情報処理装置における情報処理方法であって、
対象期間において前記プログラマブルロジックコントローラ(200)によって記録された時系列データセット(50)に基づいて、前記対象期間における前記プログラマブルロジックコントローラ(200)の制御周期ごとの、前記プログラマブルロジックコントローラ(200)が保持していた変数値を順次再現するステップと、
再現された前記変数値を前記可視化対象の変数値として前記複数の可視化モジュール(30,30a~30c,101)に送るステップとを備え、
前記複数の可視化モジュール(30,30a~30c,101)は、
制御プログラムを表すラダー図上に前記可視化対象の変数値が記述されたウィンドウを表示するプログラム表示モジュール(30a)と、
前記可視化対象の変数値の推移を示す変数グラフを含むウィンドウを表示する波形表示モジュール(30b)と、
前記対象期間の撮影により得られる動画データによって示される動画を再生する動画再生モジュール(30c)とを含み、
ユーザ入力に応じて、前記複数の可視化モジュール(30,30a~30c,101)の同期モードを、前記プログラム表示モジュール(30a)、前記波形表示モジュール(30b)および前記動画再生モジュール(30c)における可視化対象時刻を同期させる第1同期モードと、前記波形表示モジュール(30b)および前記動画再生モジュール(30c)における可視化対象時刻を同期させる第2同期モードとの間で切り替えるステップをさらに備える、情報処理方法。
【0249】
(構成13)
プログラマブルロジックコントローラ(200)の制御状態を表す可視化対象の変数値を可視化する複数の可視化モジュール(30,30a~30c、101)を含むコンピュータ(100A)に情報処理方法を実行させるプログラム(133)であって、
前記情報処理方法は、
対象期間において前記プログラマブルロジックコントローラ(200)によって記録された時系列データセット(50)に基づいて、前記対象期間における前記プログラマブルロジックコントローラ(200)の制御周期ごとの、前記プログラマブルロジックコントローラ(200)が保持していた変数値を順次再現するステップと、
再現された前記変数値を前記可視化対象の変数値として前記複数の可視化モジュール(30,30a~30c,101)に送るステップとを備え、
前記複数の可視化モジュール(30,30a~30c,101)は、
制御プログラムを表すラダー図上に前記可視化対象の変数値が記述されたウィンドウを表示するプログラム表示モジュール(30a)と、
前記可視化対象の変数値の推移を示す変数グラフを含むウィンドウを表示する波形表示モジュール(30b)と、
前記対象期間の撮影により得られる動画データによって示される動画を再生する動画再生モジュール(30c)とを含み、
ユーザ入力に応じて、前記複数の可視化モジュール(30,30a~30c,101)の同期モードを、前記プログラム表示モジュール(30a)、前記波形表示モジュール(30b)および前記動画再生モジュール(30c)における可視化対象時刻を同期させる第1同期モードと、前記波形表示モジュール(30b)および前記動画再生モジュール(30c)における可視化対象時刻を同期させる第2同期モードとの間で切り替えるステップをさらに備える、プログラム(133)。
【0250】
本開示の実施の形態について説明したが、今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本開示の範囲は特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0251】
1 製造システム、11 制御プログラム編集部、12 データ型定義編集部、13 データ型メモリマップ生成部、14 サンプリング設定部、15 ビルド処理部、16 再現PLC生成部、17 PLC通信制御部、18 再現PLC通信制御部、19 データアクセサ、21 プログラム実行部、22 データ収集部、30 可視化モジュール、30a プログラム表示モジュール、30b 波形表示モジュール、30c 動画再生モジュール、30d トラブルシュート表示モジュール、32 再現データ検索モジュール、40 再現モジュール、40a 再現PLC、41 時刻制御モジュール、41a,41b クロック管理部、42 コントローラ制御状態再現機能、42a,42b 時系列データ管理部、43a 同期モード管理部、45 時刻指定モジュール、45a 再現PLCクロック操作部、50 時系列データセット、55 動画データ、60 データ型メモリマップ、70 第1ウィンドウ、71 カーソル、72 表示領域、73 再生ボタン群、73a 再生ボタン、73b 一時停止ボタン、73c 停止ボタン、74 再生速度入力欄、100 情報処理システム、100A PC、101 プロセッサ、102,206 メモリ、103,208 ストレージ、104 入力インターフェイス、105 表示コントローラ、106 通信インターフェイス、107,270 リーダ/ライタ、110 入力装置、120 ディスプレイ、131 開発プログラム、132 ビューワープログラム、133 再現プログラム、200 PLC、201 電源回路、202 CPU、204 チップセット、211 システムプログラム、213 スケジューラプログラム、214 プログラムデータセット、250 USBコントローラ、252 フィールドネットワークコントローラ、252a,254a コネクタ、254 ネットワークコントローラ、260 タイマ、300 フィールド機器、400 ネットワークカメラ、500 ネットワークストレージ、600 記憶媒体、700 PLCシミュレーター、702 仮想メモリ、L1 第1時刻線(再現PLC現在時刻線)、L2 第2時刻線(動画再生線)、L3 第3時刻線(動画再生線)。