以下、添付図面を参照して実施形態が詳しく説明される。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態で説明されている特徴の組み合わせの全てが発明に必須のものとは限らない。実施形態で説明されている複数の特徴のうち二つ以上の特徴が任意に組み合わされてもよい。また、同一または同様の構成には同一の参照番号が付され、重複した説明は省略される。同一または類似の要素を示す参照符号の末尾には小文字のアルファベットが付与されることがある。複数の要素に共通する事項が説明される場合、小文字のアルファベットが省略される。
<システム構成>
はじめにプログラマブルロジックコントローラ(PLC、単にプログラマブルコントローラと呼ばれてもよい)を当業者にとってよりよく理解できるようにするために、一般的なPLCの構成とその動作について説明する。
図1は、本発明の実施の形態によるプログラマブル・ロジック・コントローラシステムの一構成例を示す概念図である。図1が示すように、このシステムは、ラダープログラムなどのユーザプログラムの編集を行うためのPC2aと、工場等に設置される各種制御装置を統括的に制御するためのPLC(プログラマブルロジックコントローラ)1とを備えている。PCはパーソナルコンピュータの略称である。ユーザプログラムは、ラダー言語やSFC(シーケンシャルファンクションチャート)などのフローチャート形式のモーションプログラムなどのグラフィカルプログラミング言語を用いて作成されてもよいし、C言語などの高級プログラミング言語を用いて作成されてもよい。以下では、説明の便宜上、ユーザプログラムはラダープログラムとする。PLC1は、CPUが内蔵された基本ユニット3と、1つないし複数の拡張ユニット4を備えている。基本ユニット3に対して1つないし複数の拡張ユニット4が着脱可能となっている。
基本ユニット3は、表示部5および操作部6を備えている。表示部5は、基本ユニット3に取り付けられている各拡張ユニット4の動作状況などを表示することができる。操作部6の操作内容に応じて表示部5は表示内容を切り替える。表示部5は、通常、PLC1内のデバイスの現在値(デバイス値)やPLC1内で生じたエラー情報などを表示する。デバイスとは、デバイス値(デバイスデータ)を格納するために設けられたメモリ上の領域を指す名称であり、デバイスメモリと呼ばれてもよい。デバイス値とは、入力機器からの入力状態、出力機器への出力状態およびユーザプログラム上で設定される内部リレー(補助リレー)、タイマー、カウンタ、データメモリ等の状態を示す情報である。デバイス値の型にはビット型とワード型がある。ビットデバイスは1ビットのデバイス値を記憶する。ワードデバイスは1ワードのデバイス値を記憶する。
拡張ユニット4は、PLC1の機能を拡張するために用意されている。各拡張ユニット4には、その拡張ユニット4の機能に対応するフィールドデバイス(被制御装置)10が接続されることがあり、これにより、各フィールドデバイス10が拡張ユニット4を介して基本ユニット3に接続される。フィールドデバイス10は、センサやカメラなどの入力機器であってもよいし、アクチュエータなどの出力機器であってもよい。また、一つの拡張ユニット4に対して複数のフィールドデバイスが接続されてもよい。
たとえば、拡張ユニット4bはモータ(フィールドデバイス10)を駆動してワークの位置決めする位置決めユニットであってもよいし、カウンタユニットであってもよい。カウンタユニットは手動パルサなどのエンコーダ(フィールドデバイス10)からの信号をカウントする。
拡張ユニット4aは、フローを実行することで、基本ユニット3や拡張ユニット4bから収集対象データを収集し、収集対象データにデータ処理を施して表示対象データを作成し、ダッシュボードを表示部7またはPC2に表示するための表示データを作成するデータ収集ユニットである。基本ユニット3はCPUユニットと呼ばれることもある。なお、PLC1とPC2とを含むシステムはプログラマブルロジックコントローラシステムと呼ばれてもよい。
PC2aは主にプログラマーによって操作されるコンピュータである。一方、PC2bは、現場担当者によって操作されるコンピュータである。PC2aはプログラム作成支援装置(設定装置)と呼ばれてもよい。PC2は、たとえば、携帯可能なノートタイプやタブレットタイプのパーソナルコンピュータまたはスマートフォンであって、表示部7および操作部8を備えている外部コンピュータである。外部コンピュータとは、PLC1の外部にあるコンピュータである。PLC1を制御するためのユーザプログラムの一例であるラダープログラムは、PC2aを用いて作成される。その作成されたラダープログラムは、PC2a内でニモニックコードに変換される。PC2は、USB(Universal Serial Bus)ケーブルなどの通信ケーブル9を介してPLC1の基本ユニット3に接続される。たとえば、PC2aは、ニモニックコードに変換されたラダープログラムを基本ユニット3に送る。基本ユニット3はラダープログラムをマシンコードに変換し、基本ユニット3に備えられたメモリ内に記憶する。なお、ここではニモニックコードが基本ユニット3に送信されているが、本発明はこれに限られない。たとえば、PC2aは、ニモニックコードを中間コードに変換し、中間コードを基本ユニット3に送信してもよい。
なお、図1は示していないが、PC2の操作部8には、PC2に接続されたマウスなどのポインティングデバイスが含まれていてもよい。また、PC2は、USBケーブル以外の他の通信ケーブル9を介して、PLC1の基本ユニット3に対して着脱可能に接続されるような構成であってもよい。また、PC2は、通信ケーブル9を介さず、PLC1の基本ユニット3に対して無線通信によって接続されてもよい。
<プログラム作成支援装置>
図2はPC2の電気的構成について説明するためのブロック図である。図2が示すように、PC2は、CPU11、表示部7、操作部8、記憶装置12および通信部13を備えている。表示部7、操作部8、記憶装置12および通信部13は、それぞれCPU11に対して電気的に接続されている。記憶装置12はRAMやROM、HDD、SSDを含み、さらに着脱可能なメモリカードを含んでもよい。CPUは中央演算処理装置の略称である。ROMはリードオンリーメモリの略称である。RAMはランダムアクセスメモリの略称である。HDDはハードディスクドライブの略称である。SSDはソリッドステートドライブの略称である。
PC2aのユーザは記憶装置12に記憶されているプロジェクト編集プログラム14aをCPU11に実行させて、操作部8を通じてプロジェクトデータを編集する。プロジェクトデータは、一つ以上のユーザープログラム(例:ラダープログラム)と、基本ユニット3や拡張ユニット4の構成情報などを含む。構成情報は、基本ユニット3に対する複数の拡張ユニット4の接続位置や、基本ユニット3に備えられた機能(例:通信機能や位置決め機能)を示す情報、拡張ユニット4の機能(例:撮影機能)などを示す情報である。ここで、プロジェクトデータの編集には、プロジェクトデータの作成および変更(再編集)が含まれる。ユーザは、必要に応じて記憶装置12に記憶されているプロジェクトデータを読み出し、そのプロジェクトデータを、プロジェクト編集プログラム14aを用いて変更することができる。通信部13は、通信ケーブル9aを介して基本ユニット3と通信する。CPU11は通信部13を介してプロジェクトデータを基本ユニット3に転送する。通信部13は、通信ケーブル9bを介して拡張ユニット4aと通信する。CPU11は通信部13を介してフローやダッシュボードの設定データを拡張ユニット4aに転送する。
<PLC>
図3はPLC1の電気的構成について説明するためのブロック図である。図3が示すように、基本ユニット3は、CPU31、表示部5、操作部6、記憶装置32および通信部33を備えている。表示部5、操作部6、記憶装置32、および通信部33は、それぞれCPU31に電気的に接続されている。記憶装置32は、RAMやROM、メモリカードなどを含んでもよい。記憶装置32はデバイス部34やプロジェクト記憶部35などの複数の記憶領域を有している。デバイス部34はビットデバイスやワードデバイスなどを有し、各デバイスはデバイス値を記憶する。プロジェクト記憶部35は、PC2aから入力されたプロジェクトデータを記憶する。記憶装置32は基本ユニット3用の制御プログラムも記憶する。図3が示すように基本ユニット3と拡張ユニット4とは拡張バスの一種であるユニット内部バス90を介して接続されている。なお、ユニット内部バス90に関する通信機能はCPU31に実装されるが、通信部33の一部として実装されてもよい。通信部33はネットワーク通信回路を有してもよい。CPU31は通信部33を介してプロジェクトデータをPC2aから受信する。
ここで、ユニット内部バス90について、補足説明する。このユニット内部バス90は、入出力リフレッシュに使用される通信バスである。入出力リフレッシュとは、基本ユニット3と拡張ユニット4との間でデバイス値を更新する処理である。入出力リフレッシュは、ラダープログラムが一回実行されるごとに(つまり、一スキャンごとに)、実行される。
拡張ユニット4はCPU41とメモリ42を備えている。拡張ユニット4bのCPU41bは、デバイスに格納された基本ユニット3からの指示(デバイス値)にしたがってフィールドデバイス10を制御する。また、CPU41bは、フィールドデバイス10の制御結果をバッファメモリとよばれるデバイスに格納する。デバイスに格納された制御結果は入出力リフレッシュによって基本ユニット3に転送される。また、デバイスに格納されている制御結果は、基本ユニット3からの読み出し命令にしたがって、入出力リフレッシュとは異なるタイミングであっても、基本ユニット3に転送される。メモリ42はRAMやROMなどを含む。とりわけ、RAMにはバッファメモリとして使用される記憶領域が確保されている。メモリ42は、フィールドデバイス10によって取得されたデータ(例:静止画データや動画データ)を一時的に保持するバッファを有してもよい。
データ活用ユニットとして機能する拡張ユニット4aのCPU41aは、通信部43とケーブル9bを介してPC2aと通信する。データ活用ユニットは、データ活用アプリケーションを実行する拡張ユニットである。データ活用アプリケーションは、制御データを収集したりデータ処理したりするデータ活用プログラム(例:フロー)と、データ活用プログラムの実行結果を表示するダッシュボードとを含む。ここでは、データ活用プログラムの一例としてフローが採用されているが、他の言語によるユーザプログラムであってもよい。フローはデータを収集する演算ブロック、データ処理を実行する演算ブロック、および、表示データを作成する演算ブロックなどを有してもよい。ダッシュボードは、グラフ表示部品や数値表示部品などを有する。これらの表示部品は、HTMLデータ、CSSデータおよびJavaScript(登録商標)コードなどにより実現されてもよい。本実施形態で、フローはフローテンプレートにより実現される。フローテンプレートは予めアプリケーションごとに用意されており、ユーザにより指定されたパラメータが設定される一つ以上の演算ブロックを有している。ダッシュボードもテンプレートにより実現される。ダッシュボードテンプレートは、ユーザにより指定されたパラメータが設定される一つ以上の表示部品を有している。パラメータは、たとえば、ダッシュボードの名称、デバイス名、数値、ユニット変数名など多種多様な情報である。ユニット変数とは、拡張ユニット4aがフローの実行結果を保持するための変数である。
CPU41aはPC2aから受信したフローやダッシュボードの設定データをメモリ42aに格納する。CPU41aは、設定データにしたがってフローを実行し、デバイス値を収集し、ダッシュボードに表示するための表示データを作成する。CPU41aは、通信部43とケーブル9bを介してPC2bと通信する。CPU41aはPC2bに対してダッシュボードの表示データを送信する。これにより、PC2bはPLC1に関する各種データを含むダッシュボードを表示する。
図4はPC2のCPU11によって実現される機能を説明する図である。プロジェクト作成部50は、CPU11がプロジェクト編集プログラム14aを実行することで実現される機能である。プロジェクト作成部50は、操作部8を通じて入力されるユーザ指示にしたがってユーザプログラムを含むプロジェクトデータ70を作成する。
フロー・ダッシュボード作成部51は、CPU11がフロー・ダッシュボード編集プログラム14bを実行することで実現される機能である。ダッシュボード選択部52は、複数のダッシュボードから一つのダッシュボードをユーザが選択することを支援する選択画面を表示部7に表示し、ユーザによるダッシュボードの選択を受け付ける。ダッシュボードとしては、波形監視用のダッシュボードやロス解析のためのダッシュボード、FFT用のダッシュボードなどが存在してもよい。FFTは高速フーリエ変換の略称である。パラメータ指定部53は、ユーザにより選択されたダッシュボードに関連付けられているフローに関するパラメータやダッシュボードの表示設定に関するパラメータについてのユーザ指定を受け付ける。このパラメータとしては、収集対象のデバイスや、解析対象のデバイス、解析対象期間、表示対象、表示部品の名称、単位、などである。作成部54は、ユーザにより選択されたダッシュボードを表示するためのテンプレートを、ダッシュボードテンプレート71から抽出する。ダッシュボードテンプレート71は、ダッシュボードを実現するための様々な表示部品(グラフモジュール)を有している。作成部54は、ユーザにより選択されたダッシュボードにデータを表示するために必要となるデータ処理を実行するフローのテンプレートを、フローテンプレート72から抽出する。フローテンプレート72は、データ処理を実行するための演算部品(プログラムモジュール)を有している。作成部54は、ダッシュボードのテンプレート、フローのテンプレート、これらのテンプレートに設定されるパラメータを含む設定データ73を作成し、記憶装置12に格納する。
転送部60は、プロジェクトデータ70を基本ユニット3に転送したり、設定データ73を拡張ユニット4aに転送したりする。Webブラウザ61は、CPU11がWebブラウザプログラム14dを実行することで実現される機能である。Webブラウザ61は、拡張ユニット4aのWebサーバにアクセスし、ダッシュボードを表示するためのHTMLデータなどの表示データを取得し、表示部7にダッシュボードを表示する。フロー・ダッシュボード編集プログラム14bがWebベースで作成されてもよい。この場合、CPU11は、Webサーバプログラム14cにしたがって、フロー・ダッシュボード編集プログラム14bのUIに関するデータをWebブラウザ61に送信する。CPU11は、Webブラウザ61を介して入力されたユーザ指示を、Webサーバプログラム14cを介してフロー・ダッシュボード編集プログラム14bに渡す。
図5は拡張ユニット4aのCPU41aによって実現される機能を示している。設定部80は、PC2aから受信した設定データ73をメモリ42aに格納する。設定部80は、設定データ73にしたがって基本ユニット3に対してどのようなデバイス値を収集すべきかを設定してもよい。設定データ73は、ダッシュボードテンプレート71a、フローテンプレート72aおよびパラメータ設定74を含む。パラメータ設定74は、ダッシュボードテンプレート71aおよびフローテンプレート72aに代入された状態でPC2aから拡張ユニット4aに渡されてもよいし、ダッシュボードテンプレート71aおよびフローテンプレート72aから分離された状態でPC2aから拡張ユニット4aに渡されてもよい。フロー実行部81は、CPU41aが、パラメータ設定74にしたがってフローテンプレート72a内のフローを実行することで実現される機能である。収集部82は、パラメータ設定74により指定されたデバイス値を基本ユニット3や拡張ユニット4bから収集し、収集されたデータ75を作成し、メモリ42aに格納する。データ処理部83は、パラメータ設定74により指定されたデータ処理を、収集されたデータ75に適用し、解析されたデータ76を作成し、メモリ42aに格納する。表示処理部84は、パラメータ設定74により指定されたダッシュボードテンプレート71aと表示対象データとに基づきダッシュボードの表示データ77(例:HTMLデータや画像データ、CSS(カスケーディングスタイルシート)、JavaScript(登録商標)のコード)を作成する。Webサーバ85は、PC2bなどのWebブラウザ61に対して、ダッシュボードの表示データ77を提供する。
<フローチャート>
●ダッシュボードとフローの設定(作成)
図6はPC2aのCPU11が実行する設定処理を示すフローチャートである。CPU11はフロー・ダッシュボード編集プログラム14bにしたがって以下の処理を実行する。
S1でCPU11はダッシュボード(アプリケーション)の選択画面を表示部7に表示する。フロー・ダッシュボード作成部51は、図7に例示されているような選択画面100を表示部7に表示する。なお、すでに設定データ73が存在する場合、以下の処理は、再設定処理に相当する。
図7において、ポインタ101はマウスなどのポインティングデバイスの操作に連動して移動する表示オブジェクトである。ロス解析の選択ボタン102aはロス解析アプリケーションを選択するためのボタンである。波形監視の選択ボタン102bは波形監視アプリケーションを選択するためのボタンである。FFTの選択ボタン102cはFFTアプリケーションを選択するためのボタンである。なお、複数の選択ボタンが押されることで、複数のアプリケーションが選択されてもよい。OKボタン103はダッシュボードの選択を確定するためのボタンである。キャンセルボタン104はダッシュボードの選択をキャンセルするためのボタンである。ユーザはポインタ101を操作することでいずれかのダッシュボードを選択し、OKボタン103を押し下げる。
S2でCPU11はダッシュボードの選択を受け付ける。ダッシュボード選択部52は、ポインタ101により選択画面100におけるどの選択ボタンが押し下げられたかを認識する。
S3でCPU11(パラメータ指定部53)は選択されたダッシュボードに対応するパラメータの設定画面を表示部7に表示する。図8はロス解析についてのパラメータの設定画面110を例示している。図8において、名称ボックス111は、ロス解析のダッシュボードに表示される名称が入力されるテキストボックスである。解析対象設定部112は、解析対象となるデバイス名(例:R000,R001,R002 AND R003)、グラフにおける各デバイス名の表示色(例:棒グラフの棒の色)、解析対象の名称などの入力を受け付ける。稼働リレーであるR000やチョコ停リレーであるR001のように単一のデバイスが指定されてもよいし、故障リレーのように複数のデバイスの論理演算が指定されてもよい。稼働リレーとはPLC1が産業機械を制御しているときにONとなり、産業機械を制御していないときにOFFとなるビットデバイス(リレーデバイス)である。チョコ停リレーは、PLC1がチョコ停しているときにONとなり、チョコ停していないときにOFFとなるビットデバイスである。故障リレーはPLC1が故障しているときにONとなり、故障してないときにOFFとなるビットデバイスである。フローがこれらのリレーのON/OFFを監視することでPLC1が実際に稼働していた時間と停止していた時間とを求めてもよい。解析対象設定部112は、現在設定されているデバイス名(例:R000)を他のデバイス名(例:MR000)に再設定することを受け付けてもよい。操業期間設定部113は、製造ラインの操業期間の入力を受け付ける。画面選択部114は、ダッシュボードとして表示される表示画面の選択を受け付けるチェックボックスである。一つのダッシュボードが複数の表示画面(例:メイン画面と分析画面)から構成されることがある。たとえば、メイン画面では当日の稼働率が表示され、分析画面では過去12日間の稼働率化が対比可能に表示されてもよい。期間設定部115は、表示対象となるデータの収集期間(例:時間別、日別、週別、月別)の単位の設定を受け付けるリストボックスである。表示数設定部116はデータの表示数を受け付けるための数値ボックスである。収集期間が日別であり、表示数が12であれば、ダッシュボードは、12日間のデータを日ごと表示する。追加オブジェクト117が押されると、パラメータ指定部53は、解析対象デバイス(例:段取り調整を示すR004)を追加する。プレビューボタン118はダッシュボードのプレビューを表示部7に表示することをCPU11に指示するボタンである。
S4でCPU11(パラメータ指定部53)は、設定画面110を通じて入力されたパラメータの指定(パラメータ設定74)を、Webブラウザ61およびWebサーバ85を通じて受け付ける。
S5でCPU11(作成部54)は、選択されたダッシュボードのテンプレート71、当該ダッシュボードに対応するフローのテンプレート72、ユーザにより入力されたパラメータを含む設定データ73を作成する。たとえば、作成部54は、ロス解析のダッシュボードが選択されると、解析対象となるデバイスを収集するための収集フロー(例:設備状態更新ブロック)に対して、入力されたパラメータを設定する。たとえば、設備状態更新ブロックの動作期間として、操業期間設定部113により設定された開始時刻(例:09:00)と終了時刻(例:17:30)とが設定される。監視対象として解析対象設定部112により指定されたデバイス名(例:R000,R001,R002 AND R003)などが設定される。なお、設備状態更新ブロックの出力(ロス解析ブロックに渡される一時データ)として、デフォルト設定が採用されてもよい。デフォルト設定には、一時データの格納先として、ユニット変数が作成されたうえで、その作成された変数が指定されてもよい。さらに、作成部54は、データ処理を実行するデータ処理フロー(例:ロス解析ブロック)に対して、入力されたパラメータを設定する。ロス解析ブロックの入力としてデフォルト設定(例:machineStateTable)が採用されてもよい。また、ロス解析ブロックの出力として時間稼働率(例:wOperationTimeRatio)および性能稼働率(例:wPerformanceEfficiency)が採用されてもよい。このように、設備状態更新ブロックの出力とロス解析ブロックの入力とは同一の変数である。つまり、同一のパラメータを介して設備状態更新ブロックとロス解析ブロックとが関連付けられている(紐づけされている)。
S6でCPU11(転送部60)は設定データ73を拡張ユニット4aに転送する。これにより拡張ユニット4aのメモリ42aのROM領域に設定データ73が書き込まれる。
図9はダッシュボード120の一例を示している。図9において凡例部121は、解析対象のデバイスに割り当てられた色を示している。グラフ部122は、ロス解析の結果を表示する一つ以上のグラフを含む。グラフの種類は各ダッシュボードごとに予め用意されている。解析結果表示部123は、ロス解析の演算結果を表示する。解析結果表示部123に表示される表示対象も各ダッシュボードごとに予め用意されている。現在状態表示部124は、PLC1の現在状態を示す。
プレビューボタン118によりダッシュボード120のプレビューが指示されると、CPU11は、予め用意されているプレビュー用のデフォルトデータを用いてグラフや数値を表示してもよい。作成部54は、プレビュー用のダッシュボード120に対するポインタ101の操作に応じてダッシュボード120のカスタマイズを受け付けてもよい。たとえば、図9において数値表示部品としての「時間稼働率」がポインタ101によりダブルクリックされると、CPU11は、この数値表示部品の設定画面を表示してもよい。この設定画面で、CPU11は、数値表示部品の接頭文字(例:時間稼働率)、接尾文字(例:%)、参照デバイス/ユニット変数(例:wOperationTimeRatio)などの編集を受け付けてもよい。
●フローの実行とダッシュボードの提供
図10は拡張ユニット4aのCPU41aにより実行されるフローの実行とダッシュボードの提供とを示すフローチャートである。
S11でCPU41a(フロー実行部81の収集部82)は設定データ73により指定されたフロー(例:設備状態更新ブロック)を実行することによって収集対象のデバイス値(例:R000,R001,R002,R003)を収集し、メモリ42に収集されたデータ75として格納する。ここで、収集されたデータ75は、異なる時刻に収集された時系列データであってもよい。
S12でCPU41a(データ処理部83)は設定データ73により指定されたフロー(例:ロス解析ブロック)にしたがって収集されたデータ75(デバイス値)にデータ処理(例:時間稼働率、性能稼働率、良品率、設備総合効率の演算)を施す。これにより、解析されたデータ76が作成され、メモリ42aに保存される。
S13でCPU41a(表示処理部84)はダッシュボード120を表示するための表示データ(例:HTMLデータなど)をフローによって作成する。表示処理部84は、収集されたデータ75および/または解析されたデータ76などの表示対象データを用いて表示データを作成する。
S14でCPU41a(Webサーバ85)は表示データをPC2bに提供する。CPU41aは表示データをPLC1の表示器に表示してもよい。
S15でCPU41aはPC2bから表示終了が指示されたかどうかを判定する。表示終了が指示されていなければ、CPU41aはS11ないしS14を繰り返してもよい。表示終了が指示されれば、フローの実行とダッシュボードの提供とを終了する。
図11はPC2bの表示部7に表示されるWebブラウザのUI130を示している。URL入力部131には、拡張ユニット4aのWebサーバ85に割り当てられたURLが入力される。PC2bのCPU11は、入力されたURLにしたがって拡張ユニット4aのWebサーバ85にアクセスする。CPU11は、Webサーバ85により提供されるダッシュボード120の表示データ(HTMLファイルや画像データなど)をWebブラウザのUI130に表示する。
●ダッシュボードの表示部品のカスタマイズ
図9に関して説明されたように作成部54はダッシュボード120の表示部品のカスタマイズを受け付けてもよい。図9に示された円グラフがポインタ101によって右クリックされると、作成部54は、編集メニューを表示してもよい。CPU11は、編集メニューに含まれるグラフ削除(部品削除)がポインタ101によって選択されると、右クリックされた円グラフを削除してもよい。図12は、円グラフを削除されたダッシュボード120を示している。この場合、作成部54は、フローを構成する複数の演算ブロックのうち、円グラフを実現するための演算ブロックを削除または無効化するよう設定データ73を更新する。このように、作成部54は、表示部品の編集結果をフローに反映してもよい。逆に、作成部54は、フローを構成するフローブロックの編集結果を表示部品に反映してもよい。
このようなダッシュボード120のカスタマイズは、図11に示されたWebブラウザ61のUI130を通じて実行されてもよい。PC2aのCPU11は、拡張ユニット4aのCPU41a(設定部80)とHTTP通信を実行することで、円グラフが右クリックされたことを通知し、Webサーバ85から編集メニューの表示データを受信し、削除の指示を設定部80に送信してもよい。設定部80は、フローを構成する複数の演算ブロックのうち円グラフに対応する演算ブロックを削除または無効化する。これにより設定データ73が更新される。
●設定データのインポート
設定データ73は他のPLC1にインポートされてもよい。工場では複数の製造ラインが並行して動作していることがある。この場合、複数の製造ラインにおいてそれぞれ同種のPLC1が産業機械を制御している。よって、PC2aは、第一のPLC1用に作成した設定データ73を、第二のPLC1にコピーまたはインポートしてもよい。この際に、CPU11は、設定データ73の再設定(再編集)を実行してから第二のPLC1に設定データ73を転送してもよい。上述されたように、再設定によって、稼働に関するデバイス名がR000からMR000に変更されてもよい。
また、第二のPLC1においてすでに特定のデータ活用アプリケーションが存在する場合に、同一のデータ活用アプリケーションを第一のPLC1からインポートすると、ユニット変数の重複などが発生し、二つのデータ活用アプリケーションが正常に動作しなくなる可能性がある。つまり、元から存在する設定データ73におけるユニット変数(例:wOperationTimeRatio)と、インポートのために複製されたユニット変数(例:wOperationTimeRatio)とが重複すると、第二のPLC1においてフローが正しく動作しないことがあるかもしれない。この場合、CPU11(作成部54)はユニット変数の重複が解消するように、ユニット変数を変更してもよい(例:wOperationTimeRatioをwOperationTimeRatio2に変更)。
●複数のダッシュボードの組み合わせ
上述されたように、複数のダッシュボードが選択されることがある。この場合、複数のダッシュボード、つまり、複数のフローが連携してもよい。たとえば、波形監視アプリケーションが産業機械の振動データを収集し、時間軸に沿って振動データの波形をダッシュボードに表示することがある。この場合、波形監視アプリケーションに関連したフローが振動データを収集し、メモリ42aに振動データを保持している。一方で、FFTアプリケーションのフローが、この振動データについてFFTによる周波数分析を実行してもよい。FFTアプリケーションのダッシュボードが振動データの周波数分析結果を表示する。なお、周波数分析結果はメモリ42aに保持される。さらに、ロス解析アプリケーションのフローが、前回の周波数解析結果と今回の周波数解析結果をメモリ42aから取得してこれらの差分を求め、この差分と所定のエラー閾値と比較することで、エラーの有無の解析結果を求め、ロス解析アプリケーションのダッシュボードに表示してもよい。このように、複数のダッシュボードと、複数のフローとが連携してもよい。なお、複数のダッシュボードは並べて表示されてもよいし、各ダッシュボードに設けられた切替ボタンの操作に応じて複数のダッシュボードが一つずつ切り替えなられながら表示されてもよい。
●プロジェクトデータ70の変更に追随した設定データ73の変更
作成部54は、プロジェクトデータ70の変更に追随して設定データ73を変更してもよい。たとえば、稼働リレーとしてR000がすでに例示されているが、プロジェクトデータ70が変更されることで、この稼働リレーとして別のデバイス(例:MR000)が割り当てられることがある。そこで、作成部54は、設定データ73のタイムスタンプと、プロジェクトデータ70のタイムスタンプとを比較することで、設定データ73を保存した後に、プロジェクトデータ70が変更されたかどうかを判定する。プロジェクトデータ70が変更された場合、さらに、作成部54は、プロジェクトデータ70を解析することで、設定データ73に関連するデバイスの割り当てが変更されたかどうかを判定する。作成部54は、設定データ73に関連するデバイスの割り当てが変更されたことを検知すると、プロジェクトデータ70の変更を設定データ73に反映させる(例:R000→MR000)。これにより、ユーザは、設定データ73の再設定の作業負担を軽減されよう。
図14はPC2のCPU11によって実現される機能を説明する図である。プロジェクト作成部50は、CPU11がプロジェクト編集プログラム14aを実行することで実現される機能である。プロジェクト作成部50は、制御プログラム作成部150、フロー・ダッシュボード作成部51および収集設定部57を備えている。プロジェクト作成部50は、操作部8を通じて入力されるユーザ指示にしたがってラダープログラム等のユーザプログラムを含むプロジェクトデータ70を作成する。
制御プログラム作成部150は、操作部8を通じて入力されるユーザ指示にしたがって、CPU31で実行されるラダープログラム等の制御プログラム155を作成する。制御プログラム155はプロジェクトデータ70の一部として記憶装置12に格納される。
フロー・ダッシュボード作成部51は、CPU11がフロー・ダッシュボード編集プログラム14bを実行することで実現される機能である。フロー・ダッシュボード作成部51は、アプリケーション選択部55および設定データ作成部56を備える。アプリケーション選択部55は、複数のアプリケーションから一つのアプリケーションをユーザが選択することを支援する選択画面を表示部7に表示し、ユーザによるアプリケーションの選択を受け付ける。アプリケーションとしては、監視対象であるデバイスや変数をリアルタイムに監視するリアルタイム監視アプリケーションと、PLC1の運転状態を再現するための運転記録を分析する運転記録分析アプリケーションなどが存在してもよい。
リアルタイム監視アプリケーションとして、以下のものが存在してもよい。
(1)波形監視: あらかじめ設定された上限値から下限値までの範囲内で振幅が変化する波形(監視対象波形)が監視される
(2)タイミング監視: 監視対象のビットデバイスのONおよび/またはOFFのタイミングが監視される
(3)カメラ監視: 監視対象のカメラ画像の特徴量データがあらかじめ設定された検知条件を満たすかどうかが監視される
(4)サイクル監視: サイクル動作とは、複数の工程を一サイクルごとに繰り返し実行することをいう。サイクル監視では、サイクル動作を構成する複数の工程それぞれの開始タイミングを示すビットデバイスと終了タイミングを示すビットデバイスとが監視対象デバイスとして設定される。サイクル全体動作の開始から終了までの時間間隔と、一サイクル内の各工程の開始から終了までの時間間隔とが監視される。サイクル全体動作とは、一サイクルの全体を指す。
設定データ作成部56は、ユーザにより選択されたアプリケーションに関連付けられているデータ活用プログラムに関するパラメータやダッシュボードの表示設定に関するパラメータを含むアプリケーション設定データ154をユーザ指示に従い作成する。このパラメータとしては、監視対象のデバイスまたは変数、監視項目名(例:工程の名称)、各監視対象に対する監視条件や、解析対象のファイル、解析対象のデバイス、解析対象期間、表示対象、表示部品の名称、単位、などである。設定データ作成部56は、ユーザにより選択されたダッシュボードを表示するためのテンプレートを、ダッシュボードテンプレート151から設定データ73のダッシュボードテンプレート151aとして抽出する。ダッシュボードテンプレート151は、ダッシュボードを実現するための様々な表示部品(グラフモジュール)を有している。設定データ作成部56は、ユーザにより選択されたダッシュボードにデータを表示するために必要となるデータ処理を実行するデータ活用プログラムのテンプレートを、活用プログラムテンプレート152から設定データ73の活用プログラムテンプレート152aとして抽出する。活用プログラムテンプレート152は、データ処理を実行するための演算部品(プログラムモジュール)を有している。設定データ作成部56は、ダッシュボードのテンプレート、データ活用プログラムのテンプレート、これらのテンプレートに設定されるアプリケーション設定データ154を含む設定データ73を作成し、記憶装置12に格納する。なお、設定データ作成部56は、収集対象のデバイスまたは変数、収集条件等を含む収集設定データ153を作成してもよい。
収集設定部57は、ユーザ指示にしたがって、デバイスや変数の収集動作を定義する。さらに、収集設定部57は、収集対象のデバイスまたは変数、収集条件等を含む収集設定データ153を作成する。収集設定データ153は設定データ73に含まれてもよい。
転送部60は、プロジェクトデータ70を基本ユニット3に転送したり、設定データ73を拡張ユニット4aに転送したりする。Webブラウザ61は、CPU11がWebブラウザプログラム14dを実行することで実現される機能である。
図15はPC2aのCPU11が実行する設定処理を示すフローチャートである。CPU11はフロー・ダッシュボード編集プログラム14bにしたがって以下の処理を実行する。
S21でCPU11(アプリケーション選択部55)はアプリケーションの選択画面を表示部7に表示する。アプリケーション選択部55は、リアルタイム監視アプリケーションや運転記録分析アプリケーションの選択画面を表示部7に表示する。なお、すでに設定データ73が存在する場合、以下の処理は、再設定処理に相当する。
S22でCPU11(アプリケーション選択部55)はアプリケーションの選択を受け付ける。アプリケーション選択部55は、ポインタ等により選択画面におけるどの選択ボタンが押し下げられたかを認識する。複数のアプリケーションのそれぞれには選択ボタンが関連付けられている。つまり、アプリケーション選択部55は、押された選択ボタンに対応するアプリケーションを認識する。
S23でCPU11(設定データ作成部56)は選択されたアプリケーションに対応するアプリケーション設定データ154(設定項目)の設定画面を表示部7に表示する。図16はサイクル監視についてのアプリケーション設定データの設定画面である設定ウィザード161を例示している。図16において、監視チェックボックス162aは、監視対象としてユーザにより選択されたことを示すチェックを付与されるチェックボックスである。各入力欄162b〜162fは、それぞれ項目名、開始条件、終了条件、注意値、警報値が入力される入力欄である。項目名とは工程に付与される名称である。開始条件とは、各工程の開始条件となる信号(リレーデバイスまたは変数)の変化(立下り/立ち上がり)である。終了条件とは、各工程の終了条件となる信号(リレーデバイスまたは変数)の変化(立下り/立ち上がり)である。注意値とは、注意状態として定義される上限値と下限値である。警報値とは、警報状態として定義される上限値と下限値である。上限値および下限値は閾値と呼ばれてもよい。サイクル内の各工程と設定入力行163とが対応しており、設定入力行163ごとに監視項目が設定される。開始条件および終了条件は、サイクル内における各工程の開始タイミングや終了タイミングを規定するデバイスや変数により設定されるものであり、各タイミングを規定するデバイスや変数およびタイミングを規定する条件が開始条件および終了条件として設定される。タイミングを規定する条件とは、たとえば、立ち上がりタイミングである。注意値および警告値は、それぞれ上限値および/または下限値により設定される。対応するチェックボックスにチェックが付与されると、設定された閾値が有効状態となる。OKボタン164は、ユーザが設定完了を指示するためのボタンである。キャンセルボタン165はユーザにより入力された設定変更をキャンセルすることを指示するボタンである。
S24でCPU11(設定データ作成部56)は、設定ウィザード161を通じて入力されたアプリケーション設定データ154の指定を受け付ける。たとえば、設定データ作成部56は、各設定項目の設定入力を受け付ける。
S25でCPU11(収集設定部57)は、データ収集の設定画面を表示部7に表示する。S26でCPU11(収集設定部57)は、データ収集の設定画面を通じて入力された収集対象のデバイスや変数および収集条件などの収集設定データ153の指定(設定入力)を受け付ける。なお、アプリケーション設定データ154により収集設定データ153が設定される場合は、S25およびS26は必ずしも必要ではない。
S27でCPU11(設定データ作成部56)は、選択されたダッシュボードのテンプレート151a、当該ダッシュボードに対応するデータ活用プログラムのテンプレート152a、ユーザにより入力されたアプリケーション設定データ154および収集設定データ153を含む設定データ73を作成する。
S28でCPU11(設定データ作成部56)は、設定データ73を記憶装置12に保存する。CPU11(設定データ作成部56)は、制御プログラム155を有するプロジェクトデータ70の一部としてダッシュボードテンプレート151a、活用プログラムテンプレート152a、収集設定データ153およびアプリケーション設定データ154を含む設定データ73を保存してもよい。CPU11(転送部60)はプロジェクトデータ70の一部として設定データ73を拡張ユニット4aに転送する。これにより拡張ユニット4aのメモリ42aのROM領域に設定データ73が書き込まれる。プロジェクトデータ70の一部であるアプリケーション設定データ154を用いて選択されたアプリケーションの設定をするため、PLC1からプロジェクトデータ70が読み出されることがある。この際に、制御プログラム155やデータ活用プログラムとともにアプリケーション設定データ154も読み出されてもよい。PC2aにおいて、PC2aに保存されたアプリケーション設定データ154とPLC1に保存されたアプリケーション設定データ154とを照合し、照合結果を表示するようにしてもよい。このため、たとえば、PLC1に書き込まれたアプリケーション設定データ154がPLC1において書き換えられた後、再びPLC1からPC2aへ読み出されると、PC2aにおいて、書き換え後のアプリケーション設定データ154が確認されてもよい。
図17はリアルタイム監視アプリケーション用のダッシュボード171の一例を示している。図17において動作状態表示172は、リアルタイム監視の動作状態を示すものである。表示切替タブ173は、アプリケーションに対して複数のダッシュボードが設定されている場合に、アプリケーションに対応する他のダッシュボードに切り替えるためのタブボタン表示である。図17ではモニタボタンが押された状態が示されている。この状態で、トレンドタブが押されると、ダッシュボードは、トレンド表示のダッシュボードに切り替わる。履歴タブが押されると、ダッシュボードは、履歴表示のダッシュボードに切り替わる。各表示欄174a〜174gには、監視項目ごとに、項目名、余裕度、測定値、注意値、警報値、判定結果および測定値に関連するグラフが表示される。項目名、注意値、警報値は、アプリケーション設定データ154に基づき表示される。測定値は、アプリケーション設定データ154の開始条件および終了条件に基づいて決定される開始タイミングから終了タイミングまでの時間幅を示している。余裕度は、監視項目の測定値がどの程度余裕があるかを示す。たとえば、余裕度は、警報値や注意値に対し測定値がどの程度余裕があるかを示してもよい。判定結果は、測定値と有効な警報値または注意値に基づき求められた判定結果である。判定結果は、正常、注意、警報等の監視対象の状態区分を示してもよい。なお、最新の測定値に基づく判定結果が正常であったとしても、過去において、判定結果が、一旦、注意や警告の状態になっている場合がある。この場合は、過去から現在までの所定の判定期間において、警戒度のより高い状態が維持されてもよい。判定表示欄174fのクリアボタンを押すことで、最新の判定結果に更新されるようにしてもよい。測定値に関連するグラフは、測定値を視覚化したものである。たとえば、開始タイミングから終了タイミングまでの時間幅を示す棒グラフが表示されてもよい。注意値、および警報値に対応する線が、注意値、および警報値に対応する位置に表示されてもよい。たとえば、グラフ表示欄174gの閾値線表示チェックボックスがチェックされると、有効な注意値および警報値に対応する閾値線が表示される。グラフ表示欄174gの設定ボタンが押されると、アプリケーションに対応する他のダッシュボードうち設定ダッシュボードが表示される。
図18はリアルタイム監視アプリケーション用の設定ダッシュボード181の一例を示している。図17におけるグラフ表示欄174gの設定ボタンが押されると、設定ダッシュボード181が表示される。図18において動作状態表示182は、リアルタイム監視の動作状態を示すものである。監視状態切換スイッチ183は、リアルタイム監視を監視状態と非監視状態との間で切り換えるためのスイッチである。閾値一括設定ボタン184は、監視項目ごとに設けられた複数の閾値を一括で設定するための設定画面に移行するためのボタンである。各入力欄185a〜185fには、監視項目ごとに、監視チェックボックス、項目名、開始条件、終了条件、注意値、警報値が表示される。図2におけるプロジェクトデータ15のアプリケーション設定データを設定するための設定ウィザードと対応する入力欄が設けられてもよい。追加ボタン186aが押されると、新規の監視項目を入力するための入力行が追加される。削除ボタン186bが押されると、予め上下ボタン186cで選択されていた入力行が削除される。設定反映ボタン187が押されると、更新された設定内容をアプリケーション設定データ(表示設定62)に反映される。続いて、更新されたアプリケーション設定データ(表示設定62)に基づくリアルタイム監視アプリケーション用のダッシュボード171が表示される。キャンセルボタン188が押されると、更新された設定内容がアプリケーション設定データ(表示設定62)に反映されることなく、アプリケーション設定データ(表示設定62)に基づくリアルタイム監視アプリケーション用のダッシュボード171が表示される。
図19は拡張ユニット4aのCPU41aにより実行されるリアルタイム監視処理のデータ活用プログラムの実行とダッシュボードの提供とを示すフローチャートである。
S41でCPU41a(フロー実行部81の収集部82)は設定データ73のアプリケーション設定データ154に従い開始信号および終了信号に対応するデバイスまたは変数を監視する。アプリケーション設定データ154は、開始信号として利用されるデバイスまたは変数の名称と、デバイスまたは変数に格納される所定値とを保持している。当該デバイスまたは変数の値が所定値に変化したタイミングが開始タイミングである。図18で示されたように、デバイスまたは変数の変化が立ち上がりエッジまたは立下りエッジであることが開始条件として設定されてもよい。終了信号についても同様である。活用プログラムテンプレート152aに基づくデータ活用プログラムを実行することによってアプリケーション設定データ154により指定される収集対象のデバイス値が収集され、収集されたデータ75がメモリ42に格納される。ここで、収集されたデータ75は、異なる時刻に収集された時系列データであってもよい。データ活用プログラムとは別に、収集設定データ153に従い収集動作を実行する収集プログラムが備えられていてもよい。この場合、アプリケーション設定データ154に従い収集設定データ153が設定され、設定された収集設定データ153により指定される収集対象のデバイス値が収集され、収集されたデータ75がメモリ42に格納される。
S42でCPU41a(データ処理部83)は設定データ73により指定されたデータ活用プログラムにしたがって収集されたデータ75(デバイス値)に基づいて開始信号の条件を満たすタイミングから終了信号の条件を満たすタイミングまでの時間情報を決定する。CPU41a(データ処理部83)は、図16における開始条件162cや図18における開始条件185cに従い、監視対象として設定されたデバイスや変数が立ち上がりエッジ等の検知条件を満たすかを監視する。ここでは、検知条件を満たすタイミング、つまり開始信号の条件を満たすタイミングが監視される。CPU41a(データ処理部83)は、同様に、図16における終了条件162dや図18における終了条件185dに従い、監視対象として設定されたデバイスや変数が立ち上がりエッジ等の検知条件を満たすかを監視する。ここでは、検知条件を満たすタイミング、つまり終了信号の条件を満たすタイミングが監視される。CPU41a(データ処理部83)により決定される時間情報は、開始信号の条件を満たすタイミングから終了信号の条件を満たすタイミングまでの時間幅であってもよい。
S43でCPU41a(データ処理部83)はS42で決定された時間情報とアプリケーション設定データ154に従い設定された判定閾値に基づいて状態を判定する。判定閾値として注意値や警報値の上限値および下限値が設定されている場合がある。この場合、CPU41a(データ処理部83)は、測定値である決定された時間情報が上限値を上回るか否かを判定する。また、CPU41a(データ処理部83)は、決定された時間情報が下限値を下回るか否かを判定する。アプリケーション設定データ154は、各上限値や各下限値を判定閾値として使用するか否かを示すフラグを含んでいてもよい。この場合、CPU41a(データ処理部83)は、アプリケーション設定データ154に含まれるフラグに基づいて、測定値である決定した時間情報と各上限値や各下限値と比較することで、監視対象の状態を判定する。このフラグの値はチェックボックスなどのUI(ユーザインタフェース)を通じてユーザにより設定されうる。監視対象の状態としては、正常、注意、および警報が含まれてもよい。正常状態に対する測定値の乖離度に基づき注意状態と警報状態とが区別される。正常状態の測定値(正常値)と警報状態の測定値(警報値)との差は、正常状態の測定値と注意状態の測定値(注意値)との差よりも大きい。よって、警報値には、注意値よりも正常値から乖離した値が設定される。注意値と警報値とがそれぞれ上限値として設定される場合がある。この場合、CPU41a(データ処理部83)は、決定された時間情報が注意値以下であるときに監視対象の状態を「正常」と判定する。CPU41a(データ処理部83)は、決定された時間情報が注意値を超え、かつ、警報値以下であるときに監視対象の状態を「注意」と判定する。CPU41a(データ処理部83)は、決定された時間情報が警報値を超えるときに、監視対象の状態を「警報」と判定する。これにより、解析されたデータ76が作成され、メモリ42aに保存される。
注意値と警報値とがそれぞれ下限値として設定される場合がある。この場合、CPU41a(データ処理部83)は、決定された時間情報が注意値以上であるときに、監視対象の状態を「正常」と判定する。CPU41a(データ処理部83)は、決定された時間情報が注意値未満となり、かつ、警報値以上であるときに監視対象の状態を「注意」と判定する。CPU41a(データ処理部83)は、決定された時間情報が警報値未満であるときに、監視対象の状態を「警報」と判定する。これにより、解析されたデータが作成され、メモリに保存される。
注意値と警報値とがそれぞれ上限値および下限値により設定される場合がある。この場合、CPU41a(データ処理部83)は、決定された時間情報が下限注意値以上でありかつ、決定された時間情報が上限注意値以下であるときに、監視対象の状態を「正常」と判定する。CPU41a(データ処理部83)は、決定された時間情報が上限警報値未満となり、かつ、上限注意値以上であるときに監視対象の状態を「注意」と判定する。
同様に、CPU41a(データ処理部83)は、決定された時間情報が下限注意値未満となり、かつ、下限警報値以上であるときに監視対象の状態を「注意」と判定する。
CPU41a(データ処理部83)は、決定された時間情報が下限警報値未満であるか、または、決定された時間情報が上限警報値を超えているときに、監視対象の状態を「警報」と判定する。これにより、解析されたデータが作成され、メモリに保存される。
CPU41a(データ処理部83)は、警報値や注意値に対し測定値がどの程度余裕があるかを示す余裕度を算出してもよい。余裕度は、たとえば、十分余裕のある状態であるときに100とし、注意状態であるときに50、警報状態であるときに0となるように定義されてもよい。このように、注意値と測定値との距離(差分)に応じて段階的に値が変わるように余裕度が定義されてもよい。余裕度は、解析されたデータ76として、メモリ42aに保存される。CPU41a(データ処理部83)は、測定値が警報値を超えた場合に、測定値が警報値を超えたことを示す信号を生成してもよい。たとえば、CPU41a(データ処理部83)は、測定値が警報値を超えた場合に、測定値が警報値を超えたことを示すデバイスまたは変数の値を変化させる。測定値が警報値を超えたことを示すデバイスまたは変数がトリガとして割り当てられてもよい。たとえば、これはロギングの保存トリガに割り当てられてもよい。これにより、警報が発生したタイミングを基準としてPLC1の運転記録等が保存される。
S44でCPU41a(表示処理部84)はS42で決定した時間情報、判定閾値、S43で判定された監視対象の状態を含むダッシュボード171のソースデータを生成する。CPU41a(表示処理部84)は設定データ73のダッシュボードテンプレート151aに基づいて決定した時間情報、判定閾値、判定した監視対象の状態をダッシュボードテンプレート151aに割り当てられた変数に反映する。たとえば、CPU41a(表示処理部84)は、図17におけるグラフ表示欄174gに、開始信号の条件を満たすタイミングから終了信号の条件を満たすタイミングまでの時間幅を示す測定値が棒グラフの形式で表示されるように表示データを作成する。このとき、開始信号の条件を満たすタイミングから終了信号の条件を満たすタイミングまでの時間が帯状に表示されてもよい。これにより、時間幅だけでなく、サイクル動作の制御において各監視対象がサイクル内のどのタイミングで動作しているかを示すダッシュボードが表示される。たとえば、グラフ表示欄174gの右端から左端が監視対象の一サイクルに相当してもよい。帯(棒グラフの棒)の開始位置は、一サイクルにおける開始信号の条件が満たされたタイミングに相当する。帯の終了位置は、一サイクルにおける終了信号の条件が満たされたタイミングに相当する。よって、帯の長さは時間幅を示す。
余裕度が測定値とともに表示されるようにしてもよい。CPU41a(表示処理部84)はダッシュボード171を表示するための表示データ(例:HTMLデータなど)をダッシュボードテンプレート151aに割り当てられた変数に基づいて作成する。CPU41a(表示処理部84)はダッシュボード171のベースとなる画面データと測定値や状態情報などの更新されるデータとを別に管理するようにしてもよい。この場合、CPU41a(表示処理部84)は、参照先のデバイスや変数が割り当てられた画面データと、参照先のデバイスや変数の値である表示対象データとを個別に管理する。CPU41aは、表示対象データを定期的に更新することで表示データを作成してもよい。表示処理部84は、収集されたデータ75および/または解析されたデータ76などの表示対象データを用いて表示データを作成する。
S45でCPU41a(Webサーバ85)は表示データをPC2bに提供する。CPU41aは表示データをPLC1の表示器に表示してもよい。PLC1の表示器はPLC1に内蔵されていてもよいし、PLC1に対して有線たまは無線により接続されていてもよい。CPU41a(表示処理部84)が参照先のデバイスや変数が割り当てられた画面データと、参照先のデバイスや変数の値である表示対象データとを別々に管理する場合がある。この場合、CPU41a(Webサーバ85)は、ダッシュボード171の更新要求や更新スケジュールに応じて、表示データのうち画面データと、表示対象データとを選択的に提供する。ダッシュボード171の表示要求に応じてCPU41a(Webサーバ85)は画面データおよび表示対象データを含む表示データを提供する。ダッシュボード171の表示更新要求に応じてCPU41a(Webサーバ85)は更新された表示対象データを表示データとして選択的に提供する。
図20はPC2aのCPU11が実行するリアルタイム監視のダッシュボードを介した設定処理を示すフローチャートを示している。
S51でCPU41a(表示処理部84)は設定用のダッシュボード181を表示する。たとえば、表示処理部84は、図18に示された設定用のダッシュボード181を表示するために表示データを作成し、CPU41a(Webサーバ85)は設定用のダッシュボード181を表示するための表示データをPC2bに提供する。
S52でCPU41a(設定部80)は監視対象の追加・削除・変更および/または判定閾値の設定のユーザ入力を受け付ける。CPU41a(設定部80)は追加ボタン186aが押されたことを検出すると、新規の監視対象を設定するための入力行を追加する。CPU41a(表示処理部84)は新規の監視対象を設定するための入力行が追加された設定用のダッシュボード181を表示するために表示データを作成する。CPU41a(Webサーバ85)は更新された設定用のダッシュボード181を表示するための表示データをPC2bに提供する。ここで設定部80はフロー実行部81に設けられ、データ活用プログラム実行の一部として設定を受け付けるようにしてもよい。CPU41a(設定部80)は削除ボタン186bが押されたことを検知すると選択された入力行を削除する。CPU41a(表示処理部84)は選択された入力行が削除された設定用のダッシュボード181を表示するために表示データを作成する。CPU41a(Webサーバ85)は更新された設定用のダッシュボード181を表示するための表示データをPC2bに提供する。この際、上下ボタン186cによる入力行への選択操作が表示されてもよい。CPU41a(設定部80)は各入力欄185a〜185dへの変更入力を受け付けると、CPU41a(表示処理部84)は各入力欄185a〜185dへの変更入力が反映された設定用のダッシュボード181を表示するために表示データを作成し、CPU41a(Webサーバ85)は更新された設定用のダッシュボード181を表示するための表示データをPC2bに提供する。CPU41a(設定部80)は判定閾値の各入力欄185e〜185fへの変更入力を受け付けると、CPU41a(表示処理部84)は判定閾値の各入力欄185e〜185fへの変更入力が反映された設定用のダッシュボード181を表示するために表示データを作成する。CPU41a(Webサーバ85)は更新された設定用のダッシュボード181を表示するための表示データをPC2bに提供する。
S53でCPU41a(設定部80)はユーザ入力に従い、対応するアプリケーション設定データ154を更新する。CPU41a(設定部80)は設定反映ボタン187が押されたことを検出すると、更新された設定内容をアプリケーション設定データ154に反映する。一方、CPU41a(設定部80)はキャンセルボタン188が押されたことを検出すると、更新された設定内容をアプリケーション設定データ154に反映せず、更新された設定内容を破棄する。CPU41a(表示処理部84)は、更新された設定内容を反映することなく、アプリケーション設定データ154に基づくリアルタイム監視アプリケーション用のダッシュボード171を表示するために表示データを作成する。CPU41a(Webサーバ85)はリアルタイム監視アプリケーション用のダッシュボード171を表示するための表示データをPC2bに提供する。
S54でCPU41a(データ処理部83)はS53で更新されたアプリケーション設定データ154に従い、監視対象に関する決定した時間情報と設定された判定閾値とに基づいて監視対象の状態を判定する。CPU41a(データ処理部83)は更新されたアプリケーション設定データ154に従いS42と同様に決定された時間情報と、更新されたアプリケーション設定データ154に従い設定された判定閾値と、に基づいて監視対象の状態をS53と同様に判定する。
S55でCPU41a(表示処理部84)は更新されたアプリケーション設定データ154に従い決定された時間情報と更新されたアプリケーション設定データ154に従い設定された判定閾値と、S54で判定された監視対象の状態を図18に示された状態監視用のダッシュボードを表示するための表示データを作成する。CPU41a(Webサーバ85)は状態監視用のダッシュボード171を表示するための表示データをPC2bに提供する。
図21は運転記録分析アプリケーション用のダッシュボード221の一例を示している。運転記録分析アプリケーション用のダッシュボード221は、カメラ画像再生ビュー222、発生状況時系列ビュー223、いつもと違うデバイスビュー224、および、いつもと違う波形ビュー225を有している。運転記録分析アプリケーションは、CPU41a(データ処理部83)により予め保存されたPLC1の運転記録を分析して、CPU41a(表示処理部84)によりいつもと違う動作のデバイスや変数を提示するものである。CPU41a(データ処理部83)は、正常時の運転記録を分析することにより監視対象毎に検出アルゴリズムや検出閾値を設定する。CPU41a(データ処理部83)は、分析対象の運転記録に対し、監視対象毎に設定された検出アルゴリズムおよび検出閾値を適用していつもと違う動作のデバイスや変数を決定する。運転記録分析アプリケーションは、たとえばいつもと違う動作のデバイスや変数を正常時との乖離度合いに応じてランク表示してもよい。たとえば、正常時の値に対して最も乖離している値を保持しているデバイスや変数が一番上に表示されたり、強調表示されたりしてもよい。
PLC1の運転記録は、収集対象と保存条件とを定義する収集設定データ153に従い収集された収集対象のデバイスや変数を、保存条件に従いPLC1内の基本ユニット3や拡張ユニット4a、4bに保存したものである。たとえば、CPU31は、収集設定データ153に従い、収集対象のデバイスや変数を収集する。保存条件の成立が検出されると、CPU31は、保存条件が成立したタイミングを基準として収集されたデバイスや変数をPLC1の運転記録として記憶装置32に保存する。運転記録は保存条件の成立毎に保存される。たとえば、運転記録は、保存条件が成立したと時の時刻とともに、ファイルとして記憶装置32に保存されてもよい。PLC1の運転記録の収集対象は、制御プログラム155等のプログラム単位や基本ユニット3や拡張ユニット4a、4b等のユニット単位で一括して設定されてもよい。これにより、PLC1の運転に関わるデバイスや変数が一括して記録される。そのため、ユーザは予め個別の監視対象を特定することなく、PLC1の運転に関わるデバイスや変数を記録することができる。保存条件が成立したタイミングを基準としてPLC1の運転状態を再現したり、保存条件が成立したタイミングを基準としたPLC1の運転状態を分析したりすることが可能となる。保存条件は、制御プログラム155の保存命令、割り当てられたデバイスまたは変数による保存トリガ、予め定められた時間で発生する時間トリガ等から選択されてもよい。保存条件は、ユーザ入力に従って設定される。
図21においてカメラ画像再生ビュー222は、異常時画像再生表示部222aと、正常時画像再生表示部222bと、再生コントロールビュー222cとを有している。異常時画像再生表示部222aには、分析対象の運転記録に含まれるカメラ画像のうち、運転記録分析アプリケーションがいつもと違う動作のデバイスや変数が検出されたタイミングに取得されたカメラ画像が表示される。また、正常時画像再生表示部222bは、正常時に対応する運転記録に含まれるカメラ画像のうち、異常時画像再生表示部222aに表示されるカメラ画像と時刻同期されたカメラ画像が表示される。PLC1が周期性のある制御であるサイクル制御を実行することがある。この場合、サイクル制御に対応する運転記録に含まれる少なくとも一部のデバイスまたは変数の時系列データは、サイクル制御に従う周期性を有している。CPU41a(データ処理部83)は運転記録に含まれるデバイスや変数の時系列データからその周期性を分析してサイクル制御の周期を規定するデバイスや変数を決定する。CPU41a(設定部80)はユーザ入力に従いサイクル制御の周期を規定するデバイスや変数である基準デバイスを選択してもよい。異常時画像再生表示部222aに表示されるカメラ画像と、正常時画像再生表示部222bに表示されるカメラ画像とは、サイクル制御の周期性と、各カメラ画像に紐づいた時間情報とに基づき同期して再生される。たとえば、一定の周期ごとに、二つのカメラ画像の表示が更新されてもよい。この場合、二つのカメラ画像はあたかも動画のように表示されることになろう。
再生コントロールビュー222cは、カメラ画像再生ビュー222に表示される二つのカメラ画像の表示を同期して操作する操作ボタンを有する。操作ボタンは、停止ボタン、進むボタンおよび戻るボタンなどを含む。「停止ボタン」が押されると、異常時画像再生表示部222aに表示されるカメラ画像と、正常時画像再生表示部222に表示されるカメラ画像とが同期して一時停止される。「進むボタン」や「戻るボタン」が押されると、異常時画像再生表示部222aに表示されるカメラ画像の表示時刻と、正常時画像再生表示部222bに表示されるカメラ画像の表示時刻とが同期して変更される。
発生状況時系列ビュー223は、運転記録の分析結果を表示する画面である。分析結果は、たとえば、運転記録として保存された複数のデバイスに対して監視対象毎に設定された検出アルゴリズムおよび検出閾値を適用することで検出された、いつもと違う動作のデバイスや変数を含む。
サイクル表示欄223aには、サイクル制御の各サイクルが時系列に表示される。各サイクルの区切りは基準デバイスにより規定されてもよい。CPU41a(データ処理部83)は運転記録に含まれる基準デバイスの状態や値の変化が条件(サイクル条件または区切り条件と呼ばれてもよい)を満たすことを検出する。区切り条件が満たされたタイミングが、各サイクルの区切りに相当する。CPU41aは、決定されたサイクルの区切りに対応して各サイクルの期間を決定し、各サイクルをサイクル表示欄223aに表示する。この例では、サイクル1、サイクル2、サイクル3といった3サイクルが表示されている。発生デバイス表示欄223bには、いつもと違うデバイスの発生数が各サイクルに対応して時系列に表示される。CPU41a(データ処理部83)は分析対象の運転記録に対し、監視対象毎に設定された検出アルゴリズムおよび検出閾値を適用して、検出閾値を超えるデバイスや変数の数(発生数)を時系列に集計する。この例では、サイクル1とサイクル3で、いつもと違うデバイスが発生していることが示されている。
パターン別発生状況表示欄223cには、パターン別のいつもと違うデバイスの発生状況が表示される。CPU41a(データ処理部83)は分析対象の運転記録に対し、監視対象毎に設定された検出アルゴリズムおよび検出閾値を適用して、検出閾値を超えるデバイスや変数の発生期間を、いつもと違う状態のパターン別に集計する。この例で、パターン別発生状況表示欄223cは、上段、中段および下段を有している。上段では、いつもと違う状態のパターンとして、ON/OFFパターンが採用されている。つまり、上段には、いつものON/OFFパターンと異なるON/OFFパターンの発生状況が表示される。中段には、定数の値が正常時と違うものの発生状況が表示される。下段には、いつものON/OFFタイミングと異なるON/OFFタイミングの発生状況が表示される。カメラ特徴量表示欄223dには、いつものカメラの特徴量とは違うカメラの特徴量が発生した回数が表示される。ロギングの保存トリガが発生した際に保存される運転記録にはカメラの画像データが含まれてもよい。CPU41a(データ処理部83)は、カメラ画像に含まれる受光量や輝度に関する特徴量データを生成し、当該特徴量データを周期性に従って分析することで、いつもと違う特徴量が発生した回数を表示してもよい。
いつもと違うデバイスビュー224には、サイクル毎やスキャン毎のいつもと違うデバイスの発生状況についての詳細が表示される。各表示欄224a〜224cには、それぞれいつもと違う状況が発生したデバイス名、いつもと違う状況が発生した際の概要、および、発生時刻が表示される。いつもと違うデバイスビュー224に表示される情報の対象期間は、ユーザ入力に従い選択されてもよい。たとえばCPU41a(設定部80)は発生状況時系列ビュー223においてユーザ入力を受け付けると、ユーザ入力に対応するサイクルを選択する。CPU41a(データ処理部83)は、分析対象の運転記録から選択されたサイクルを分析することで、当該サイクルにおいていつもと違う状況が発生したデバイスを抽出する。CPU41a(表示処理部84)は、抽出されたデバイスの一覧をいつもと違うデバイスビュー224に表示する。いつもと違うデバイスビュー224では、どのデバイスでいつどのような変化が起こったのかを一覧的に確認することができる。
いつもと違う波形ビュー225には、いつもと違う状況のデバイスのうち特定のデバイスについて時系列データの波形が表示される。いつもと違う波形ビュー225に表示されるデバイスはユーザ入力に従い選択されてもよい。たとえばCPU41a(設定部80)はいつもと違うデバイスビュー224においてユーザ入力を受け付けると、ユーザ入力に対応するデバイスを選択する。CPU41a(データ処理部83)は分析対象の運転記録から選択されたデバイスを抽出する。CPU41a(表示処理部84)は、抽出されたデバイスについての時系列データの波形をいつもと違うデバイスビュー224に表示する。これにより、ユーザは、いつもと違うデバイスビュー224に表示されたデバイスが、いつどのように変化したのかを確認することができる。正常時に取得された運転記録に含まれる複数のデバイスのうち、所定のデバイスの時系列データもいつもと違うデバイスビュー224に同時に表示されてもよい。所定のデバイスとは、いつもと違う状況のデバイスに対応している。このように、あるデバイスについて、正常時の時系列データと、イレギュラー時(いつもと違う状況の発生時)の時系列データとが対比可能に表示されてもよい。
図22はデータ活用ユニット4aのCPU41aが実行する運転記録分析のダッシュボードを介した設定処理を示すフローチャートを示している。
S61でCPU41a(設定部80)はユーザから学習指示を受け付ける。CPU41a(設定部80)はユーザ入力に従い学習開始の指示を受け付けると運転記録の保存を開始する。たとえば、CPU41a(設定部80)は運転記録の保存条件に割り当てられた変数の値を保存条件が成立する値に変更する。CPU41a(設定部80)は学習開始の指示に従い保存された運転記録を、学習のための正常時の運転記録として、自動的に選択する。CPU41a(設定部80)はユーザ入力に従い予め保存されていた正常時の運転記録データを選択してもよい。この場合、CPU41a(表示処理部84)はいつもと違うデバイスの検出アルゴリズムや検出閾値を設定するために、正常時の運転記録データを選択する画面の表示データを作成する。CPU41a(Webサーバ85)は選択画面を表示するための表示データをPC2bに提供する。CPU41a(設定部80)は、正常時の運転記録データのユーザ選択を受け付ける。
S62でCPU41a(フロー実行部81)は運転記録に記録されたサイクルに基づいて、正常時の運転記録データを学習し、デバイス毎に分析アルゴリズムを決定する。たとえば、CPU41a(フロー実行部81)は、S61で選択された正常時の運転記録データと運転記録に記録されたサイクルとに基づいてデバイス毎に分析アルゴリズムを決定する。CPU41a(フロー実行部81)は、正常時の運転記録データからサイクル動作のサイクルに関連するデバイス信号の定常的な変化パターンを特定してもよい。CPU41a(フロー実行部81)は、特定されたデバイス信号の変化パターンごとに、分析アルゴリズムを決定してもよい。
S63でCPU41a(設定部80)は保存条件に従い保存された分析対象の運転記録データを選択する。分析対象の運転記録データを保存するための保存条件が成立して運転記録データが保存されるとCPU41a(設定部80)は保存された運転記録データを分析対象の運転記録データとして自動的に選択する。CPU41a(設定部80)はユーザ入力に従い分析対象の運転記録データを選択してもよい。この場合、CPU41a(表示処理部84)はいつもと違う状態を分析する対象である分析対象の運転記録データを選択する画面の表示データを作成する。CPU41a(Webサーバ85)は選択画面を表示するための表示データをPC2bに提供する。CPU41a(設定部80)は、分析対象の運転記録データのユーザ選択を受け付ける。
S64でCPU41a(データ処理部83)は決定された分析アルゴリズムに従い、いつもと違う状態が発生したデバイスを検出して、発生時刻とともに記録する。たとえば、CPU41a(データ処理部83)は、S62で決定された分析アルゴリズムに従って、S63で選択された運転記録データを分析する。CPU41a(データ処理部83)は、運転記録データを分析することで、いつもと違う状態が発生したデバイスを検出し、いつもと違う状態が発生した時刻とともにメモリ42aに記録する。
S65でCPU41a(データ処理部83)は発生時刻および/またはいつもと違う状態の発生パターンに基づき、発生状況を集計する。CPU41a(データ処理部83)は、いつもと違う状態が発生した時刻と、いつもと違う状態の発生パターンとのうちの少なくとも1つに基づいて、いつもと違う状態の発生状況を集計する。
S66でCPU41a(表示処理部84)は集計結果およびいつもと違う状態が発生したデバイスに関する情報をダッシュボードに表示する。CPU41a(表示処理部84)は、集計結果およびいつもと違う状態が発生したデバイスに関する情報を運転記録分析ダッシュボード221に表示するための表示データを作成する。CPU41a(Webサーバ85)は更新された運転記録分析ダッシュボード221を表示するための表示データをPC2bに提供する。S67でCPU41aは運転記録分析の終了条件を満たすと判断すると運転記録分析を終了する。CPU41aは運転記録分析の終了条件を満たすまでS63〜S66の処理を繰り返し実行する。
図23は、データ活用アプリケーション用のダッシュボード241の一例を示している。データ活用アプリケーション用のダッシュボード241は、リアルタイム監視アプリケーション用表示部242、運転記録分析アプリケーション用表示部246を有している。データ活用アプリケーション用のダッシュボード241は、設定されているリアルタイム監視アプリケーションや運転記録分析アプリケーションを統合して監視するためのダッシュボードである。ダッシュボード241は、各アプリケーションの概要を表示するとともに、各アプリケーションに対応するダッシュボードへのポータルとして機能してもよい。各アプリケーションが設定されると、設定されたアプリケーションは、データ活用アプリケーション用のダッシュボード241への表示対象として自動的に追加される。
リアルタイム監視アプリケーション用表示部242は、監視状態画面243と個別状況画面244とを有する。監視状態画面243には、グラフ243a、および集計アイコン243bが表示される。グラフ243aは、監視アプリケーションのうち、正常状態、注意状態、異常状態(警報状態)のアプリケーションがどのような割合で存在しているかを示すものである。図23ではグラフ243aは円グラフであるが、割合を表示できるグラフであれば他の形式のグラフであってもよい。集計アイコン243bは、監視アプリケーションのうち、正常状態、注意状態、異常状態のアプリケーションの数を表す。
個別状況画面244には、アプリケーション名244a、状態244b、余裕度244c、余裕度トレンド244d、リンクボタン244e、設定ボタン245が表示される。アプリケーション名244aは、個別状況画面244に表示されるアプリケーションの名称を表す。状態244bは、アプリケーション名244aに対応する監視状態を表す。監視状態は、図23に示されるように、正常、注意、および異常(警報)の三種類であってもよい。この場合、三種類の状態がそれぞれで異なるハッチングを付与されてもよい。あるいは、正常の場合は緑、注意の場合は黄色、異常の場合は赤などのように、三種類の状態にそれぞれ異なる色が付与されてもよい。このような強調表示が採用されてもよい。
余裕度244cは、アプリケーション名244aに対応する監視対象のデバイスや変数の余裕度をもとに算出されたアプリケーションごとの総合的な余裕度を示す。アプリケーションごとの余裕度は、たとえば、十分余裕のある状態を100とし、注意値のときに50、警報値のときに0となるように定義されていてもよい。たとえば、複数の監視対象それぞれの余裕度を平均することで、総合的な余裕度が算出されてもよい。余裕度244cは、十分余裕のある状態を示す値から離れるにしたがって、異なる表示形式で表示されてもよい。たとえば、50を上回る余裕度は黒で表示され、10より大きく50以下の余裕度は黄で表示され、10以下の余裕度は赤で表示されるといった、表示形式が採用されてもよい。
余裕度トレンド244dは、アプリケーション名244aに対応する余裕度の経時変化を表す。この例では、余裕度トレンド244dの右端が現在の余裕度を表し、左側に進むにつれて、過去の余裕度を示している。ユーザは余裕度トレンド244dを確認することで、どのタイミングから余裕度が低下していたのかを確認することができる。リンクボタン244eは、アプリケーション名244aに対応する個別のリアルタイム監視アプリケーション用のダッシュボード171へのリンクである。CPU41aは、リンクボタン244eが押されると、個別のアプリケーションの詳細な監視状態をPC2bに表示する。設定ボタン245は、リアルタイム監視アプリケーション用表示部242の設定を行う画面を表示するためのボタンである。設定ボタン245が押されると、CPU41aは、グラフ243aの表示形式や、個別状況画面244に表示される列の表示/非表示の切替、余裕度244cを余裕度の大きさに従ってソートするか否かなどの設定をユーザ入力にしたがって行う。
運転記録分析アプリケーション表示部246は、アプリケーション名246a、最終分析時刻246b、対象運転記録246c、異常検知数246d、異常検知数トレンド246e、リンクボタン246fを有する。アプリケーション名246aは、運転記録分析アプリケーション表示部246に表示するアプリケーションの名称を表示する。最終分析時刻246bは、運転記録分析を最後に行った時刻を表示する。運転記録分析は、所定時間ごとに保存された運転記録の分析と、ロギングの保存トリガが発生したときに保存された運転記録の分析とを含んでもよい。ユーザは、最終分析時刻246bを確認することにより、どの時点の運転記録までが分析されているのかを確認することができる。対象運転記録246cは、最終分析時刻246bに表示されている時刻に実行された分析においてその分析の対象となったデータを表す。
異常検知数246dは、最終分析時刻246bに表示されている時刻に実行された分析において異常が検知されたデバイスや変数の数を表す。異常検知数トレンド246eは、運転記録分析において検知された異常数の経時変化を表す。この例では、異常検知数トレンド246eの右端が現在の異常検知数を表す。異常検知数トレンド246eにおいて、右側から左側に向かって進むにつれて、より過去の異常検知数が示される。ユーザは異常検知数トレンド246eを確認することで、どのタイミングから異常検知数が増加していたのかを確認することができる。リンクボタン246fは、アプリケーション名246aに対応する運転記録分析アプリケーション用のダッシュボード221へのリンクである。リンクボタン246fが押されると、CPU41aは、最終分析時刻246bに対応する運転記録分析の詳細な結果をPC2bに表示してもよい。
図24はデータ活用アプリケーションダッシュボード241を生成する統合モニタ処理を示すフローチャートを示している。S71でCPU41a(データ処理部83)は、設定された監視アプリケーション毎に監視状態を決定する。たとえば、CPU41a(データ処理部83)は、設定された監視アプリケーションごとに、各アプリケーションを代表する監視状態を決定する。代表の監視状態は、監視対象のデバイスや変数ごとに定められた検出アルゴリズムに従って決定される、監視対象ごとの監視状態から決定される。たとえば、監視対象ごとの監視状態のうちで最も悪い監視状態がアプリケーションを代表する監視状態として決定されてもよい。
S72でCPU41a(データ処理部83)は監視アプリケーションの監視状態を集計する。CPU41a(データ処理部83)は、それぞれの監視アプリケーションを代表する監視状態を状態別に集計する。状態別に集計するとは、正常状態の数、注意状態の数、異常状態の数を個別に集計することが含まれる。S73でCPU41a(データ処理部83)は、設定された監視アプリケーション毎に余裕度を示す値を収集する。たとえば、CPU41a(データ処理部83)は、余裕度を有する監視アプリケーションについて、各アプリケーションを代表する余裕度の値を収集する。監視対象ごとの監視状態のうちで最も低い余裕度がアプリケーションを代表する余裕度として決定される。S74でCPU41a(データ処理部83)は運転記録分析アプリケーションの異常発生状態に関する値を集計する。たとえば、CPU41a(データ処理部83)はいつもと違う状況のデバイスや変数の個数を収集する。
S75で、CPU41a(表示処理部84)は、個別のアプリケーションごとの状態情報と、集計された状態情報を統合モニタダッシュボード(データ活用アプリケーションダッシュボード241)に表示する。たとえば、CPU41a(表示処理部84)は、データ活用アプリケーションダッシュボード241の表示データを作成する。CPU41a(Webサーバ85)は選択画面を表示するための表示データをPC2bに提供する。CPU41a(表示処理部84)が、参照先のデバイスや変数が割り当てられた画面データと、参照先のデバイスや変数の値である表示対象データとを別々に管理する場合がある。この場合、CPU41a(Webサーバ85)は、ダッシュボード241の更新要求や更新スケジュールに応じて、表示データのうち画面データと、表示対象データとを選択的に提供する。CPU41a(Webサーバ85)は、ダッシュボード241の表示要求に応じて画面データおよび表示対象データを含む表示データを提供する。CPU41a(Webサーバ85)は、ダッシュボード241の表示更新要求に応じて、更新された表示対象データを表示データとして選択的に提供する。
S76でCPU41a(設定部80)は、ユーザ入力に従い個別のアプリケーションに対応するダッシュボードに表示を切り替える。たとえば、CPU41a(設定部80)はダッシュボードを切り替えるユーザ入力を受け付ける。CPU41a(設定部80)は切替ボタンが押されたことを検出すると、リアルタイム監視アプリケーション用のダッシュボード171と運転記録分析アプリケーション用のダッシュボード221の選択画面を表示するための表示データを作成する。さらに、CPU41a(Webサーバ85)は選択画面を表示するための表示データをPC2bに提供する。CPU41a(設定部80)は、選択画面において、リアルタイム監視アプリケーション用のダッシュボード171と運転記録分析アプリケーション用のダッシュボード221のいずれを表示するかが選択されたことを検出してもよい。CPU41a(表示処理部84)は、選択されたダッシュボードを表示するための表示データを作成する。CPU41a(Webサーバ85)は選択されたダッシュボードを表示するための表示データをPC2bに提供する。
データ活用プログラムとして、ユーザ入力に従い作成されるフロープログラムやアプリケーション設定データにより設定されるプログラムモジュールの例が説明されたが、本発明は、これに限られない。たとえば、データ活用プログラムは、C言語等のテキスト言語により作成されてもよく、また、C言語で記述されたライブラリとそのライブラリを実行するライブラリ実行ブロックにより構成されてもよい。
<まとめ>
[観点1]
PC2はプログラマブルロジックコントローラを設定する設定装置の一例である。PLC1はプログラマブルロジックコントローラの一例である。CPU31はユーザプログラム(例:制御プログラム)を実行する第一実行手段として機能する。制御プログラムとは、たとえば、ラダープログラムなどであり、PLCの主目的である制御(例:位置決め装置の位置制御など)を実行するためのユーザプログラムである。記憶装置32およびデバイス部34は制御プログラムにしたがって第一実行手段がアクセスする記憶領域であるデバイスまたは変数である記憶手段として機能する。収集部82は収集対象として指定されたデータを記憶手段から収集する収集手段として機能する。フロー実行部81は記憶手段からそれぞれ異なるタイミングで収集された時系列のデータに対してデータ活用プログラム(例:フロー)にしたがって所定のデータ処理を実行する第二実行手段として機能する。データ活用プログラムは、ユーザにより収集対象として指定されたデータ(例:デバイスや変数に格納された情報)を収集するユーザプログラムである。データ活用プログラムは、デバイスから取得されたデバイス値を変数に格納し、この変数をデータメモリ(例:メモリ42a)に記憶する。さらに、データ活用プログラムは、データメモリに保持されている変数を読み出して、分析処理を実行したり、表示データを作成したりしてもよい。表示処理部84はデータ活用プログラムの実行結果を表示するダッシュボードの表示データを生成する生成手段として機能する。Webサーバ85は表示データを外部コンピュータ(例:PC2b)に提供する提供手段として機能する。記憶装置12は複数のダッシュボードの表示データのテンプレートと複数のデータ活用プログラムのテンプレートとを記憶する記憶手段として機能する。CPU11、操作部8、ダッシュボード選択部52、選択画面100などは複数のダッシュボードのうち一つのダッシュボードの選択を受け付ける第一受付手段として機能する。CPU11、操作部8、パラメータ指定部53、設定画面110などは、収集手段による収集対象のデータの指定を受け付ける第二受付手段として機能する。作成部54は、収集対象のデータをデータ活用プログラムにしたがって所定のデータ処理を実行することにより求められるデータである表示対象データを選択されたダッシュボードにより表示するために、選択されたダッシュボードのテンプレートと、選択されたダッシュボードに紐づけられているデータ活用プログラムのテンプレートとのセットを含む設定データを作成する作成手段として機能する。転送部60は、プログラマブルロジックコントローラに設定データを転送する転送手段として機能する。フロー実行部81は、設定データに基づき、収集対象のデータに対して所定のデータ処理を実行することで表示対象データを生成してもよい。選択されたダッシュボードの表示データのテンプレートに含まれているグラフ表示部品に対して表示対象データ(例:wOperationRatio)が紐づけられている。このように予めダッシュボードのテンプレートとデータ活用プログラムのテンプレートが用意されているため、ユーザはこれらに必要なパラメータを設定するだけで、ダッシュボードおよびデータ活用プログラムを完成させることができる。つまり、本発明によれば、PLCが保持している制御データを収集するデータ活用プログラムとそれを表示するダッシュボードとを作成する作業が容易化される。
なお、デバイスメモリは「制御プログラム(ユーザプログラム)」が扱うことが可能であって、「データ活用プログラム(ユーザプログラム)」がデータ収集の対象とすることが可能な記憶手段であると理解されてもよい。データメモリは「データ活用プログラム(ユーザプログラム)」が扱うことが可能であって、「ダッシュボード」の表示部品の値として表示することが可能なデータを記憶する記憶手段であると理解されてもよい。
[観点2]
表示部7は複数のダッシュボードのうち一つのダッシュボードの選択と、収集手段による収集対象のデータの指定とを受け付けるための設定画面を表示する表示手段として機能してもよい。図7が示すように、第一受付手段は設定画面を通じてダッシュボードの指定を受け付けてもよい。図8が示すように、第二受付手段は設定画面を通じて収集対象のデータの指定を受け付けてもよい。これにより、プログラミングの知識が少ないユーザであっても容易にダッシュボードの選択とパラメータの指定とを実行できるようになろう。
[観点3]
プレビューボタン118に関して説明されたように、記憶装置12は、ダッシュボードの表示データのテンプレートに入力されるダミーデータを記憶していてもよい。CPU11は、ダミーデータをダッシュボードの表示データのテンプレートに入力することで、ダッシュボードのプレビューを表示部7に表示してもよい。
[観点4]
表示データは、Webブラウザで表示可能な表示データ(例:HTMLデータ、CSSデータ、JavaScript(登録商標)コード)であってもよい。提供手段は、Webサーバ85であってもよい。これにより、PC2bのような一般的なコンピュータであってもダッシュボードを表示できるようになろう。
[観点5]
複数のダッシュボードはそれぞれ異なるデータ処理アプリケーション(例:ロス解析、波形監視、FFT)に関連付けられていてもよい。フロー・ダッシュボード作成部51は、複数のデータ処理アプリケーションのうち一つのデータ処理アプリケーションの選択を、当該一つのデータ処理アプリケーションに対応するダッシュボードの選択として受け付けてもよい。上述されたようにデータ活用アプリケーションがダッシュボードとデータ活用プログラムとから構成されている場合、アプリケーションの選択とダッシュボードの選択とは同義であろう。
[観点6]
フロー・ダッシュボード作成部51は、複数のデータ活用プログラムのテンプレートのうち、ダッシュボードの選択と収集対象のデータの指定とに対応するデータ活用プログラムのテンプレートを選択し、当該選択されたデータ活用プログラムのテンプレートに基づき当該データ活用プログラムを完成させてもよい。
[観点7]
図1が示すように、プログラマブルロジックコントローラは、基本ユニット3と、当該基本ユニットに接続された拡張ユニット4とを有していてもよい。基本ユニット3は、第一実行手段と、記憶手段とを有してもよい。拡張ユニット4のうちデータ活用ユニットは、収集手段と、第二実行手段と、生成手段と、提供手段とを有していてもよい。このようにデータ活用ユニットとして動作する拡張ユニット4aを基本ユニット3に接続することで、ユーザは容易にデータ活用を実現できるようになる。また、基本ユニット3のデータ処理に関する負荷が軽減される。
[観点8〜10]
フロー・ダッシュボード作成部51は、ダッシュボードを構成する表示部品の再編集を受け付け、ダッシュボードに対応するデータ活用プログラムを構成する複数の演算ブロックのうち当該再編集に応じた演算ブロックに表示部品の再編集の結果を反映させてもよい。たとえば、フロー・ダッシュボード作成部51は、ダッシュボードを構成する表示部品の再編集を受け付け、ダッシュボードに対応するデータ活用プログラムを構成する複数の演算ブロックのうち当該再編集に応じて不要となった演算ブロックを設定データにおいて削除または無効化するように構成されていてもよい。これにより、ユーザは、簡単にダッシュボードをカスタマイズすることが可能となろう。
フロー・ダッシュボード作成部51は、ダッシュボードに対応するデータ活用プログラムを構成する演算ブロックの再編集を受け付けてもよい。フロー・ダッシュボード作成部51は、ダッシュボードを構成する表示部品のうち、当該再編集された演算ブロックに対応する表示部品に、演算ブロックの再編集の結果を反映させてもよい。こにより、ユーザは簡単にデータ活用プログラムをカスタマイズすることが可能となる。
図13は再編集を説明する図である。この例では、フロープログラムは複数のフローブロックから構成されている。いずれかのフローブロックをクリックすると、フロー・ダッシュボード作成部51は、そのフローブロックについてのパラメータ設定画面を表示する。この例では、ロス解析を実行するフローブロックが指定されたため、ロス解析についてのパラメータ設定画面が表示されている。ユーザは、パラメータ設定画面を通じてパラメータを再編集する。
図13が示すように、このフロープログラムは、あるダッシュボードに紐づけされている。このダッシュボードを構成する表示部品がクリックされると、フロー・ダッシュボード作成部51は、その表示部品のパラメータ設定画面を表示する。ユーザは、パラメータ設定画面を通じてパラメータを再編集する。
ここで、フローブロックのパラメータ設定は、解析結果の保存先変数を有している。この例では、解析結果の保存先変数として、ResultDataが設定されている。一方で、ダッシュボードの表示部品の設定パラメータは、表示部品に表示するデータを指定するための参照データ指定部を有している。この例では、参照データ指定部と解析結果の保存先変数とが相互に紐づけられている。したがって、フロー・ダッシュボード作成部51は、フローブロックにおいて解析結果の保存先変数がResultDataからProcessDataに変更されると、表示部品の参照データ指定部もResultDataからProcessDataに変更する。同様に、フロー・ダッシュボード作成部51は、表示部品の参照データ指定部がResultDataからProcessDataに変更されると、フローブロックにおいて解析結果の保存先変数もResultDataからProcessDataに変更する。このように一方の変更が他方に自動的に反映されるため、ユーザは一方のパラメータを変更したときに、他方のパラメータを探し出して変更する手間を省ける。
[観点11]
追加オブジェクト117に関して説明されたように、フロー・ダッシュボード作成部51は、収集手段による収集対象のデータの追加を受け付けるように構成されていてもよい。フロー・ダッシュボード作成部51は、第二受付手段により受け付けられた収集対象のデータの追加に応じて設定データにおけるダッシュボードの表示部品とデータ活用プログラムの演算ブロックとに反映させるように構成されていてもよい。ユーザは収集対象のデータ(解析対象のデータ)の追加を指示するだけで、ダッシュボードとデータ活用プログラムとが編集されるようになる。
[観点12]
作成部54は、第一のプログラマブルロジックコントローラのために作成された設定データを第二のプログラマブルロジックコントローラのためにインポートするインポート手段をさらに有していてもよい。インポート手段は、第一のプログラマブルロジックコントローラのために作成された設定データを複製し、当該複製された設定データの一部を編集することで、第二のプログラマブルロジックコントローラのための設定データを作成してもよい。これにより複数のPLC間で設定データを再利用することが可能となるため、ユーザの作業負担が軽減されよう。
[観点13]
ダッシュボードはロス解析、波形監視または周波数分析の結果を表示するダッシュボードであってもよい。もちろん、他のタイプのデータ活用アプリケーションが採用されてもよい。
[観点14]
フロー実行部81は、第一のダッシュボードのためのデータ活用プログラムによって生成された演算結果を第二のダッシュボードのためのデータ活用プログラムに渡し、第二のダッシュボードのための当該データ活用プログラムにしたがって当該演算結果について解析処理を実行してもよい。このように複数のデータ活用アプリケーションが連携して解析結果を提供してもよい。
[観点15]
作成部54は、制御プログラムの再編集を監視する監視手段と、制御プログラムが再編集されると、制御プログラムの再編集箇所のデバイス名と設定データに含まれるデバイス名とが一致するかどうかを判定する判定手段と、制御プログラムの再編集箇所のデバイス名と設定データに含まれるデバイス名とが一致する場合、設定データに含まれるデバイス名を制御プログラムの再編集箇所のデバイス名に置換する置換手段とを有してもよい。また、作成部54は、制御プログラムが再編集されることで、制御プログラムにおいて使用されている記憶手段が第一記憶手段から第二記憶手段に変更されると、第一記憶手段の識別情報(例:再編集前のデバイス名)と設定データに含まれる記憶手段の識別情報とが一致するかどうかを判定する判定手段を有してもよい。作成部54は、第一記憶手段の識別情報と設定データに含まれる記憶手段の識別情報とが一致する場合、設定データに含まれる当該記憶手段の識別情報を第二記憶手段の識別情報(例:再編集後のデバイス名)に置換する置換手段を有してもよい。これにより、制御プログラムの再編集結果をデータ活用アプリケーションの設定データをマニュアルで反映させる手間が軽減されよう。
[観点16]
PC2やPLC1に接続される表示器は、プログラマブルロジックコントローラで実行されるデータ活用に関するデータ活用プログラムの実行結果をダッシュボードに表示する表示装置として機能する。PLC1はPLCシステムの一例である。
発明は上記の実施形態に制限されるものではなく、発明の要旨の範囲内で、種々の変形・変更が可能である。