以下、この発明の実施の形態について図面を参照しながら詳細に説明する。
実施の形態1.
図1は実施の形態1に係るエンジニアリングシステム1000の構成例を示す図である。エンジニアリングシステム1000は、図1に示すように、第1エンジニアリング装置10と、第2エンジニアリング装置20とを含んで構成される。
また、第2エンジニアリング装置20は、プライマリデバイス30、及びセカンダリデバイス40と接続されている。ここでは、第2エンジニアリング装置20、プライマリデバイス30、及びセカンダリデバイス40により、施設監視システムが構成されている。
なお、図1では施設監視システムにプライマリデバイス30が1つ、セカンダリデバイス40が3つ備えられているが、プライマリデバイス30及びセカンダリデバイス40の台数はこれに限られない。また、セカンダリデバイス40には、制御又は監視の対象となる機器が接続されているが、図1ではこの機器の表示を省略している。
第2エンジニアリング装置20は、例えば管理者Xにより使用される。第2エンジニアリング装置20は、上述した設定データの作成を含むエンジニアリング処理を行い、施設監視システムを構築する。設定データは、例えば、プライマリデバイス30が配下のセカンダリデバイス40を監視又は制御するためのプライマリデバイス30用の設定データ、及びセカンダリデバイス40が配下の機器を監視又は制御するためのセカンダリデバイス40用の設定データである。また、第2エンジニアリング装置20は、プライマリデバイス30用の設定データ、及びセカンダリデバイス40用の設定データをまとめたデータを、エンジニアリングデータとして保持部205(図3参照)に保持する。ここでは、管理者Xは、保持部205に保持されたエンジニアリングデータをマスタデータとして管理する。
また、第2エンジニアリング装置20は、保持部205に保持されたエンジニアリングデータのコピーを作成し、作成したエンジニアリングデータのコピーを第1エンジニアリング装置10に送信する。
第1エンジニアリング装置10は、管理者Aにより使用される。第1エンジニアリング装置10は、第2エンジニアリング装置20から、マスタデータとして管理されているエンジニアリングデータのコピーを受信する。そして、第1エンジニアリング装置10は、管理者Aの指示に応じて、第2エンジニアリング装置20から受信したエンジニアリングデータに対する編集を行う。また、第1エンジニアリング装置10は、この編集前後での当該エンジニアリングデータの差分を示す差分データを抽出する。そして、第1エンジニアリング装置10は、抽出した差分データを第2エンジニアリング装置20に送信する。
第2エンジニアリング装置20は、第1エンジニアリング装置10から上記差分データを受信する。そして、第2エンジニアリング装置20は、第1エンジニアリング装置10から受信した差分データを、保持部205に保持されたエンジニアリングデータに反映させる。
プライマリデバイス30は、第2エンジニアリング装置20が保持するエンジニアリングデータのうち、自機に対応する設定データを第2エンジニアリング装置20からダウンロードし、当該ダウンロードした設定データに基づいて動作することで、配下のセカンダリデバイス40を監視又は制御する。
セカンダリデバイス40は、第2エンジニアリング装置20が保持するエンジニアリングデータのうち、自機に対応する設定データを第2エンジニアリング装置20からダウンロードし、当該ダウンロードした設定データに基づいて動作することで、配下の機器を監視又は制御する。機器は、施設内に設置されており、例えば、センサ、温度計、モータ、ダンパ又は電力計で構成される。
なお、ここでは、第1エンジニアリング装置10は、第2エンジニアリング装置20から、マスタデータとして管理されているエンジニアリングデータのコピーを受信する例を説明するが、第1エンジニアリング装置10は、必ずしもエンジニアリングデータ全体のコピーを受信する必要はなく、例えばエンジニアリングデータのうちの少なくとも一部のデータのコピーを受信するものであってもよい。例えば、第1エンジニアリング装置10は、エンジニアリングデータのうちの一部のデータであって、管理者Aが編集を担当する設定データのコピーのみを受信するものであってもよい。
また、ここでは、管理者Aは、第1エンジニアリング装置10を用いて、第2エンジニアリング装置20から、エンジニアリングデータのコピーを通信により受信する例を説明するが、管理者Aがエンジニアリングデータのコピーを受け取る方法はこれに限られない。例えば、管理者Aは、保存媒体に保存されたエンジニアリングデータのコピーを管理者Xから直接受け取り、この保存媒体からエンジニアリングデータのコピーを第1エンジニアリング装置10に読み込ませてもよい。
次に、実施の形態1における第1エンジニアリング装置10及び第2エンジニアリング装置20の構成例について、図2及び図3を参照しながら説明する。
<第1エンジニアリング装置10>
第1エンジニアリング装置10は、図2に示すように、受信部101、編集部102、差分抽出部103、送信部104、登録部105(第1登録部1051、及び第2登録部1052)、及び保持部106(第1保持部1061、及び第2保持部1062)を備える。また、第1エンジニアリング装置10は、ディスプレイ等の表示装置50に接続されている。
受信部101は、第2エンジニアリング装置20の後述する送信部202から送信されたエンジニアリングデータのコピーを受信する。
第1登録部1051は、受信部101により受信されたエンジニアリングデータのコピーを第1保持部1061に登録する。
なお、第1登録部1051により、第1保持部1061に登録されたエンジニアリングデータのコピーは、実質的には第2エンジニアリング装置20により保持されているエンジニアリングデータと同一である。したがって、以下の説明では、第1保持部1061に登録されたエンジニアリングデータのコピーを、単に「エンジニアリングデータ」と称して説明する。
編集部102は、管理者Aの指示に応じて、第1保持部1061に登録されたエンジニアリングデータに対する編集を行う。
第2登録部1052は、編集部102により編集されたエンジニアリングデータを第2保持部1062に登録する。
差分抽出部103は、自機で編集用に保持するエンジニアリングデータに対して編集が加えられる前後での当該エンジニアリングデータの差分を示す差分データを抽出する。具体的には、差分抽出部103は、第1保持部1061に保持されているエンジニアリングデータと、第2保持部1062に保持されている、編集後のエンジニアリングデータとの差分を示す差分データを抽出する。
送信部104は、差分抽出部103により抽出された差分データを第2エンジニアリング装置20に送信する。
第1保持部1061は、第1エンジニアリング装置10が使用する各種情報を保持する。例えば、第1保持部1061は、第2エンジニアリング装置20の後述する送信部202から送信されたエンジニアリングデータを保持する。
第2保持部1062は、第1エンジニアリング装置10が使用する各種情報を保持する。例えば、第2保持部1062は、編集部102により編集されたエンジニアリングデータを保持する。
なお、第1保持部1061及び第2保持部1062は、例えばHDD(Hard Disc Drive)、SSD(Solid State Drive)、又はメモリ等で構成される。また、図2では、第1保持部1061及び第2保持部1062が第1エンジニアリング装置10の内部に設けられた場合を示しているが、第1保持部1061及び第2保持部1062は第1エンジニアリング装置10の外部に設けられていてもよい。
また、受信部101、編集部102、差分抽出部103、送信部104、及び登録部105の機能は、例えば第1エンジニアリング装置10が備える不図示のCPU(Central Processing Unit)が、不図示のメモリに展開された所定のプログラムを実行することにより実現される。
また、上記の説明では、受信部101は、第2エンジニアリング装置20の後述する送信部202からエンジニアリングデータのコピーを受信する例を説明したが、受信部101は必ずしもエンジニアリングデータ全体のコピーを受信する必要はない。例えば、受信部101は、エンジニアリングデータのうちの少なくとも一部のデータのコピー(例えば管理者Aが編集を担当する設定データのコピー)を受信するものであってもよい。
また、第1エンジニアリング装置10は、差分抽出部103により抽出された差分データを出力する出力部(不図示)を備えていてもよい。例えば、出力部は、差分抽出部103により抽出された差分データをファイルに出力してもよい。
また、図2では、受信部101及び登録部105が第1エンジニアリング装置10に設けられた場合を示しているが、これらの各部は必須の構成ではなく、省略されていてもよい。
<第2エンジニアリング装置20>
第2エンジニアリング装置20は、図3に示すように、生成部201、送信部202、受信部203、反映部204、及び保持部205を備える。また、第2エンジニアリング装置20は、ディスプレイ等の表示装置60に接続されている。
保持部205は、第2エンジニアリング装置20が使用する各種情報を保持する。例えば、保持部205は、施設内に設置された機器を監視又は制御するための複数のデバイス(プライマリデバイス30及びセカンダリデバイス40)に対して設定される設定データをまとめたエンジニアリングデータを保持する。ここでは、この保持部205に保持されたエンジニアリングデータが、マスタデータとして管理される。
生成部201は、保持部205に保持されたエンジニアリングデータのコピーを生成する。
送信部202は、生成部201により生成されたエンジニアリングデータのコピーを、第1エンジニアリング装置10に送信する。
受信部203は、第1エンジニアリング装置の送信部104から送信された差分データを受信する。
反映部204は、受信部203により受信された差分データを、保持部205に保持されたエンジニアリングデータに反映させる。
なお、保持部205は、例えばHDD(Hard Disc Drive)、SSD(Solid State Drive)、又はメモリ等で構成される。また、図2では、保持部205が第2エンジニアリング装置20の内部に設けられた場合を示しているが、保持部205は第2エンジニアリング装置20の外部に設けられていてもよい。
また、生成部201、送信部202、受信部203、及び反映部204の機能は、例えば第2エンジニアリング装置20が備える不図示のCPU(Central Processing Unit)が、不図示のメモリに展開された所定のプログラムを実行することにより実現される。
また、第2エンジニアリング装置20は、受信部203とは別に、エンジニアリングデータのうちの少なくとも一部のデータに対する編集が加えられる前後での当該データの差分を示す差分データを受け付ける受付部(不図示)を備えていてもよい。また、反映部204は、受付部により受け付けられた差分データを、保持部205に保持されたエンジニアリングデータに反映させてもよい。
また、図3では、生成部201及び送信部202が第2エンジニアリング装置20に設けられた場合を示しているが、これらの各部は必須の構成ではなく、省略されていてもよい。
次に、実施の形態1における第1エンジニアリング装置10及び第2エンジニアリング装置20の動作例について、図4及び図5を参照しながら説明する。
図4は、実施の形態1における第1エンジニアリング装置10及び第2エンジニアリング装置20の動作例を示す図である。また、図5は、実施の形態1における第2エンジニアリング装置20の動作例の概要を説明する図である。なお、図5に付されたST401等の番号は、図4に示すフローチャートのステップ番号に対応している。
なお、ここでは、説明を分かり易くするため、管理者Aは、第1エンジニアリング装置10を用いて、第2エンジニアリング装置20から、エンジニアリングデータのコピーを通信により受信するものとする。
まず、第2エンジニアリング装置20の生成部201は、第2エンジニアリング装置20の保持部205に保持されたエンジニアリングデータのコピーを生成する(ステップST401)。
次に、第2エンジニアリング装置20の送信部202は、ステップST401で生成部201により生成されたエンジニアリングデータのコピーを第1エンジニアリング装置10に送信する(ステップST402)。
次に、第1エンジニアリング装置10の受信部101は、第2エンジニアリング装置20の送信部202から送信されたエンジニアリングデータのコピーを受信する(ステップST403)。
次に、第1エンジニアリング装置10の第1登録部1051は、ステップST403で受信部101により受信されたエンジニアリングデータのコピーを第1保持部1061に登録する(ステップST404)。なお、以下の説明では、上述したように、第1保持部1061に登録されたエンジニアリングデータのコピーを、単に「エンジニアリングデータ」と称して説明する。
次に、第1エンジニアリング装置10の編集部102は、管理者Aの指示に応じて、第1保持部1061に登録されたエンジニアリングデータに対する編集を行う(ステップST405)。
次に、第1エンジニアリング装置10の第2登録部1052は、編集部102により編集されたエンジニアリングデータを第2保持部1062に登録する(ステップST406)。
次に、第1エンジニアリング装置10の差分抽出部103は、第1保持部1061に保持されているエンジニアリングデータと、第2保持部1062に保持されている、編集後のエンジニアリングデータとの差分を示す差分データを抽出する(ステップST407)。なお、この差分抽出部103による差分データの抽出は、第1エンジニアリング装置10が差分チェックモードとして動作する際に行われる。
次に、第1エンジニアリング装置10の送信部104は、差分抽出部103により抽出された差分データを第2エンジニアリング装置20に送信する(ステップST408)。
なお、第1エンジニアリング装置10の表示制御部(不図示)は、ステップST407で差分抽出部103により抽出された差分データが表示された画面を表示装置50に表示させてもよい。
この場合の画面例を図6に示す。図6の画面例では、差分抽出部103により抽出された差分データが表示されている。図6の画面中央には、比較の対象となる2つのエンジニアリングデータに関する情報が表示されている。
例えば、画面中央左側の欄には、第1保持部1061に保持されている、編集前のエンジニアリングデータに関する情報が表示されている。ここでは、編集前のエンジニアリングデータは、2つのデバイス(Device1及びDevice2)に対する設定データで構成されている。
また、画面中央右側の欄には、第2保持部1062に保持されている、編集後のエンジニアリングデータに関する情報が表示されている。ここでは、編集後のエンジニアリングデータも、2つのデバイス(Device1及びDevice2)に対する設定データで構成されている。
また、画面中央の下部には、編集前後のエンジニアリングデータに基づいて差分抽出部103により抽出された差分データ601が表示されている。差分データ601は、図6に示すように、複数の差分No.を含んで構成されている。また、各差分No.は、例えば「UDコード」、「デバイス名称」、及び「差分結果」を含んで構成されている。「UDコード」及び「デバイス名称」は、差分が抽出されたデバイスのUDコード及び名称を示している。
また、「差分結果」は、「該当画面」、「判別情報」、「該当項目」、「比較元設定値」、及び「比較先設定値」を含んで構成されている。「該当画面」は、差分が抽出された画面を示し、「判別情報」は、該当画面内での差分が抽出された項目(セル)の位置を示している。「該当項目」は、差分が抽出された項目名を示し、「比較元設定値」は、比較元(編集が行われる前)の該当項目の設定値を示し、「比較先設定値」は、比較先(編集が行われた後)の該当項目の設定値を示している。
例えば、差分No.1には、エンジニアリングデータに含まれる、Device1に対する設定データについての差分データが表示されている。ここでは、Device1に対する設定データのうち、該当画面が「機能>I/Oオブジェクト」、判別情報が「BO-1-1」、該当項目が「名称」である設定データが、「熱源群指令」から「熱源群指令a」に変更されたことが分かる。
同様に、差分No.2には、エンジニアリングデータに含まれる、Device2に対する設定データについての差分データが表示されている。ここでは、Device2に対する設定データのうち、該当画面が「機能>I/Oオブジェクト」、判別情報が「AO-1-2」、該当項目が「最小値」である設定データが、「0」から「10」に変更されたことが分かる。
このように、第1エンジニアリング装置10の表示制御部は、差分抽出部103により抽出された差分データが表示された画面を表示装置50に表示させる。これにより、管理者Aは、エンジニアリングデータのうちどの部分が変更されたのかを確認することができる。また、管理者Aは、自ら行った編集内容に漏れがないかを確認することもできる。
また、第1エンジニアリング装置10の表示制御部は、管理者Aの指示に応じて、変更が行われた該当画面を表示装置50に表示させてもよい。
例えば、管理者Aは、図6の画面例において、差分データ601から差分No.1を選択し、差分No.1が選択された状態で、画面右側に表示されている該当情報表示アイコン602を押下する。
そして、第1エンジニアリング装置10の受付部(不図示)により、この押下が受け付けられると、表示制御部は、Device1の該当画面である「機能>I/Oオブジェクト」画面を表示するために必要な設定データ(画面構成データ)を、第1保持部1061に登録されている、編集前のエンジニアリングデータから取得する。また、表示制御部は、Device1の該当画面である「機能>I/Oオブジェクト」画面を表示するために必要な設定データ(画面構成データ)を、第2保持部1062に登録されている、編集後のエンジニアリングデータから取得する。
そして、表示制御部は、編集前のエンジニアリングデータから取得した画面構成データを用いて、編集前の状態における当該「機能>I/Oオブジェクト」画面を生成し、同様に、編集後のエンジニアリングデータから取得した画面構成データを用いて、編集後の状態における当該「機能>I/Oオブジェクト」画面を生成し、これらの画面を並べて表示装置50に表示する。
この場合の表示例を図7に示す。表示制御部は、図7に示すように、Device1の「機能>I/Oオブジェクト」画面について、編集前の状態の画面を画面中央左側に、編集後の状態の画面を画面中央右側にそれぞれ表示させる。また、このとき、表示制御部は、差分が抽出された「比較元設定値」及び「比較先設定値」が表示されている項目(セル)の表示色を例えば赤色等で表示させてもよい。
また、表示制御部は、表示装置50に表示させた当該「機能>I/Oオブジェクト」画面が、図7の左右方向にスクロール可能なほど長く、実際に変更された「比較元設定値」及び「比較先設定値」の項目が画面上に表示されていない場合は、当該変更された「比較元設定値」及び「比較先設定値」の項目が表示されるように、自動的に画面をスクロールさせてもよい。
この点、従来は、管理者等は、変更された内容を確認するためには手間がかかっていた。例えば従来は、管理者等は、変更された内容を確認する際には、図8に示すような変更内容表示画面において、画面左側に表示されているツリーのノードをクリックし、当該ノードに関する設定データを表示する画面を表示装置に表示させる。そして、管理者等は、この画面において、差分となっている設定値を探す必要がある。なお、従来は、差分となっている設定値が全体で何件あるかを示す情報は表示されず、また、差分となっている設定値に画面をスクロールさせる機能もなかったため、管理者等は差分の確認には手間がかかっていた。
一方、第1エンジニアリング装置10では上記のように、管理者Aは自ら画面をスクロールさせずとも、変更された項目を容易に確認することができ、確認のための手間が従来よりも大幅に軽減される。
次に、第2エンジニアリング装置20の受信部203は、第1エンジニアリング装置10の送信部104から送信された差分データを受信する(ステップST409)。
次に、第2エンジニアリング装置20の反映部204は、ステップST409で受信部203により受信された差分データを、第2エンジニアリング装置20の保持部205に保持されているエンジニアリングデータに反映させる(ステップST410)。
なお、ここでは、管理者Aは、第1エンジニアリング装置10を用いて、第2エンジニアリング装置20から、エンジニアリングデータのコピーを通信により受信する例を説明したが、管理者Aがこれ以外の方法(例えば保存媒体経由)でエンジニアリングデータのコピーを受け取り、第1保持部1061に登録する場合は、ステップST401~ST404は省略されていてもよい。
このように、実施の形態1に係るエンジニアリングシステム1000では、エンジニアリングデータに対する編集を行った第1エンジニアリング装置10において、編集の前後で生じた差分を示す差分データを抽出し、抽出した差分データを第2エンジニアリング装置20に送信する。
差分データは、第1エンジニアリング装置10による編集内容のみを示すため、その容量はエンジニアリングデータ全体の容量に比べて十分小さい。したがって、エンジニアリングシステム1000では、第1エンジニアリング装置が容量の大きい編集後のエンジニアリングデータ全体を第2エンジニアリング装置に送信する従来構成に比べて、通信環境にかかる負荷を軽減できる。また、同一の通信環境を使用する他の管理者への影響も回避でき、他の管理者の作業効率が低下することも抑制できる。
また、管理者Aは、編集後のエンジニアリングデータを第2エンジニアリング装置に送信する際、当該エンジニアリングデータを複数のデータに分割する必要もなくなり、自身の作業効率の低下も抑制できる。
なお、上記の説明では、第2エンジニアリング装置20は、エンジニアリングデータを保持部205に保持しており、このエンジニアリングデータのコピーを第1エンジニアリング装置10に送信する例を説明した。また、第1エンジニアリング装置10は、第2エンジニアリング装置20から受信したエンジニアリングデータに対して編集を行い、その編集前後でのエンジニアリングデータの差分を示す差分データを抽出する例を説明した。
しかしながら、これに限らず、第1エンジニアリング装置10は、エンジニアリングデータのうちの少なくとも一部のデータに対して編集を行い、その編集後のデータと、エンジニアリングデータとの差分を示す差分データを抽出してもよい。
例えば、第1エンジニアリング装置10は、第2エンジニアリング装置20からエンジニアリングデータのコピーを受信し、受信したエンジニアリングデータのコピーを第1保持部1061に登録する。その後、第1エンジニアリング装置10は、管理者Aの指示に応じて、任意のセカンダリデバイス40から設定データを取得(バックアップ)し、取得した設定データ(すなわち、エンジニアリングデータのうちの一部のデータ)に対して編集を行う。そして、第1エンジニアリング装置10は、編集後の設定データと、第1保持部1061に保持しているエンジニアリングデータとの差分を示す差分データを抽出し、抽出した差分データを第2エンジニアリング装置20へ送信する。そして、第2エンジニアリング装置20では、受信した差分データを、保持部205で保持するエンジニアリングデータに反映させてもよい。
または、上記の場合において、第2エンジニアリング装置20は、エンジニアリングデータ全体を保持部205に保持するのではなく、例えばすべてのセカンダリデバイス40から取得した設定データ(すなわち、第1エンジニアリング装置10が保持する設定データを少なくとも含むエンジニアリングデータ)を保持部205に保持していてもよい。この場合、第2エンジニアリング装置20は、すべてのセカンダリデバイス40から取得した設定データのコピーを第1エンジニアリング装置10へ送信する。そして、第1エンジニアリング装置10は、受信した設定データのコピーを第1保持部1061に登録する。その後、第1エンジニアリング装置10は、管理者Aの指示に応じて、任意のセカンダリデバイス40から設定データを取得(バックアップ)し、取得した設定データ(すなわち、エンジニアリングデータのうちの一部のデータ)に対して編集を行う。そして、第1エンジニアリング装置10は、編集後の設定データと、第1保持部1061に保持している、すべてのセカンダリデバイス40から取得した設定データとの差分を示す差分データを抽出し、抽出した差分データを第2エンジニアリング装置20へ送信する。そして、第2エンジニアリング装置20では、受信した差分データを、保持部205で保持する、すべてのセカンダリデバイス40から取得した設定データに反映させてもよい。
以上のように、実施の形態1によれば、エンジニアリングシステム1000は、施設内に設置された機器を監視又は制御するための複数のデバイスに対して設定される設定データをまとめたエンジニアリングデータのうちの少なくとも一部のデータを保持する第1エンジニアリング装置10と、第1エンジニアリング装置10が保持するデータを少なくとも含むエンジニアリングデータを保持する第2エンジニアリング装置20と、を備える。第1エンジニアリング装置10は、自機で保持するデータに対する編集を行う編集部102と、編集部102による編集が加えられる前後での当該データの差分を示す差分データを抽出する差分抽出部103と、差分抽出部103により抽出された差分データを第2エンジニアリング装置20に送信する送信部104と、を備える。第2エンジニアリング装置20は、第1エンジニアリング装置10の送信部104から送信された差分データを受信する受信部203と、受信部203により受信された差分データを、自機で保持するエンジニアリングデータに反映させる反映部204と、を備える。これにより、第1エンジニアリング装置10を使用する管理者Aは、容量の大きいデータの送信が不要となり、データを複数のデータに分割する等の手間がなくなる。また、通信環境にかかる負荷を従来よりも軽減でき、同一の通信環境を使用する他の管理者への影響も回避できる。したがって、エンジニアリングシステム1000は、エンジニアリングデータの容量増大に伴う管理者等のエンジニアリング作業の効率低下を抑制可能となる。
また、第1エンジニアリング装置10は、差分抽出部103により抽出された差分データを表示装置50に表示させる表示制御部を備える。これにより、管理者Aは、エンジニアリングデータのうちどの部分が変更されたのかを確認することができる。また、管理者Aは、自ら行った編集内容に漏れがないかを確認することもできる。
実施の形態2.
実施の形態1では、第1エンジニアリング装置10が、変更前後のエンジニアリングデータに基づいて抽出された差分データを第2エンジニアリング装置20に送信し、第2エンジニアリング装置20にて、第1エンジニアリング装置10から受信した差分データを、自機で保持するエンジニアリングデータに反映させる例について説明した。実施の形態2では、第2エンジニアリング装置20が、差分データを、自機で保持するエンジニアリングデータに反映させた後、当該エンジニアリングデータを反映前の状態に復旧(ロールバック)させる例について説明する。
例えば、実施の形態1において、第1エンジニアリング装置10から送信された差分データに誤りが含まれている場合がある。例えば、第1エンジニアリング装置10において、本来なら変更されるべきではなかった項目に対して変更が行われ、その点が看過されて差分データが送信されてしまった場合等である。
その場合、当該差分データが第2エンジニアリング装置20で保持するエンジニアリングデータに反映されてしまうと、当該差分データに含まれる誤りが、マスタデータとして管理されているエンジニアリングデータに残ってしまう。したがって、第2エンジニアリング装置20では、自機で保持するエンジニアリングデータを当該反映前の状態に復旧するのが望ましい。そこで、実施の形態2では、第2エンジニアリング装置20が、自機で保持するエンジニアリングデータを反映前の状態に復旧することを可能としている。
なお、実施の形態2における第1エンジニアリング装置10bは、実施の形態1における第1エンジニアリング装置10と同一の構成であるため、図示及びその説明を省略する。
図9は、実施の形態2における第2エンジニアリング装置20bの構成例を示す図である。実施の形態2に係る第2エンジニアリング装置20bは、実施の形態1に係る第2エンジニアリング装置20に対し、履歴生成部206と、表示制御部207と、受付部208と、復旧部209とが追加されている。第2エンジニアリング装置20bのその他の構成については、実施の形態1に係る第2エンジニアリング装置20と同様であるため、同一の符号を付してその説明を省略する。
履歴生成部206は、差分データに対し、反映部204による反映が行われた日時を示す情報が付加された変更履歴データを生成する。
表示制御部207は、履歴生成部206により生成された変更履歴データを表示装置60に表示させる。
受付部208は、保持部205で保持するエンジニアリングデータの復旧指示を管理者等(例えば管理者X)から受け付ける。
復旧部209は、受付部208により管理者等から復旧指示が受け付けられた場合、保持部205で保持するエンジニアリングデータを、反映部204による反映前の状態に復旧する。また、復旧部209は、履歴生成部206により生成された変更履歴データに含まれる日時の単位で復旧を行うこともできる。
次に、実施の形態2に係る第2エンジニアリング装置20bの動作例について、図10のフローチャートを参照しながら説明する。なお、以下では、復旧部209が、履歴生成部206により生成された変更履歴データに含まれる日時の単位で復旧を行う例を説明する。
まず、履歴生成部206は、差分データに対し、反映部204による反映が行われた日時を示す情報が付加された変更履歴データを生成する(ステップST1001)。なお、履歴生成部206は、生成した変更履歴データをファイルに出力してもよい。
次に、表示制御部207は、履歴生成部206により生成された変更履歴データが表示された履歴表示画面を表示装置60に表示させる(ステップST1002)。
ここで、履歴表示画面の例を図11に示す。履歴表示画面は、履歴生成部206により生成された変更履歴データが表示された画面である。
図11の画面例における「取り込みNo.」は、差分データがエンジニアリングデータに取り込まれた(反映された)際の取り込みの単位を示している。つまり、同じタイミングで取り込まれた差分データは、同じ取り込みNo.で管理される。図11の例では、1行目から3行目までの差分データが、同じ取り込み日時(2021/01/10 10:10:20)に取り込まれ、これらの差分データが取り込みNo.1として管理されている。
また、図11の例では、4行目から9行目までの差分データが、同じ取り込み日時(2021/02/22 13:40:50)に取り込まれ、これらの差分データが取り込みNo.2として管理されている。
同様に、図11の例では、10行目から12行目までの差分データが、同じ取り込み日時(2021/04/01 09:03:12)に取り込まれ、これらの差分データが取り込みNo.3として管理されている。
なお、図11の画面例における「差分No.」より右側の項目は、図6で説明した差分データ601に含まれる項目と概ね同じ内容である。図11では、図6で説明した「差分結果」が「取り込み項目」と表示され、「比較元設定値」が「取り込み前設定値」と表示され、「比較先設定値」が「取り込み後設定値」と表示されている。
このように、変更履歴データは、差分データがエンジニアリングデータに取り込まれる度に更新される。その際、変更履歴データは、新たな変更履歴が、前回までの変更履歴に追加されるような形で更新される。このとき、履歴生成部206は、変更履歴データが更新される毎にバージョンを付与して、バージョン毎に変更履歴データを生成してもよい。
ステップST1002において、履歴表示画面が表示装置60に表示された後、受付部208は、保持部205で保持するエンジニアリングデータの復旧指示を管理者Xから受け付ける(ステップST1003)。
例えば、管理者Xは、表示装置60に表示された履歴表示画面を見て、エンジニアリングデータに取り込まれた差分データに誤りがあったことに気付いた場合、エンジニアリングデータの復旧指示を行う。
その際、管理者Xは、図11の履歴表示画面の右端の操作領域に表示されているロールバックアイコン1101を押下する。また、その際、管理者Xは、図11の履歴表示画面に表示された変更履歴データを確認し、どの取り込みNo.の取り込みを取り消すか、すなわち、どの日時の時点までエンジニアリングデータを復旧させるかを指示する。
次に、復旧部209は、受付部208により管理者Xから復旧指示が受け付けられた場合、履歴生成部206により生成された変更履歴データに基づいて、保持部205で保持するエンジニアリングデータを、反映部204による反映前の状態に復旧する(ステップST1004)。
具体的には、復旧部209は、取り込みNo.の単位で、過去の時点までエンジニアリングデータを復旧させる。例えば、復旧部209は、受付部208が管理者Xから取り込みNo.3の取り込みを取り消す旨の指示を受け付けた場合、エンジニアリングデータに対する取り込みNo.3の取り込みを取り消し、取り込みNo.2の取り込みが完了した時点までエンジニアリングデータの状態を戻す。
このとき、復旧部209は、取り込みNo.3で管理されている差分データで示される変更内容を参照し、この変更を元に戻していくようにして、エンジニアリングデータの状態を戻す。例えば、復旧部209は、Device1に対する設定データのうち、該当画面が「機能>I/Oオブジェクト」、判別情報が「BO-1-1」、該当項目が「名称」である設定データを、取り込み後設定値である「熱源群指令a」から、取り込み前設定値である「熱源群指令」に戻す。
同様に、復旧部209は、Device2に対する設定データのうち、該当画面が「機能>I/Oオブジェクト」、判別情報が「AO-1-2」、該当項目が「最小値」である設定データを、取り込み後設定値である「10」から、取り込み前設定値である「0」に戻す。
なお、復旧部209は、指定された取り込みNo.よりも後に取り込まれた内容の取り消しを省略(スキップ)して上記復旧を行うことはできない。例えば、復旧部209は、受付部208が管理者Xから取り込みNo.2の取り込みを取り消す旨の指示を受け付けた場合、取り込みNo.3の取り込み内容も併せて取り消さなければならない。
このように、第2エンジニアリング装置20bは、エンジニアリングデータの復旧指示を受け付けた場合、当該変更履歴データに基づいて、エンジニアリングデータを、反映部204による反映前の状態に復旧させる。また、その際、第2エンジニアリング装置20bは、取り込みNo.単位で、過去の取り込み時点までエンジニアリングデータを復旧させる。これにより、管理者等は、希望する時点までのエンジニアリングデータの復旧を容易に行うことができ、作業性が向上する。
また、第2エンジニアリング装置20bは、反映部204による反映の前後でのエンジニアリングデータに基づいて、当該エンジニアリングデータの変更履歴を示す変更履歴データを生成し、生成した変更履歴データを表示装置60に表示させる。これにより、管理者等は、エンジニアリングデータが実際にどのように変更されたのかを容易に確認することができる。
なお、第2エンジニアリング装置20bは、履歴生成部206により変更履歴データがバージョン毎に生成されている場合、異なるバージョンの変更履歴データ同士の差分を抽出する差分抽出部(不図示)を備えていてもよい。
例えば、第2エンジニアリング装置20bの差分抽出部は、履歴生成部206により生成された変更履歴データであって、取り込みNo.1の取り込みが行われた後に生成された変更履歴データ(例えばバージョン1)と、履歴生成部206により生成された変更履歴データであって、取り込みNo.3の取り込みが行われた後に生成された変更履歴データ(例えばバージョン3)との差分を抽出する。
また、表示制御部207は、差分抽出部による抽出結果を表示する画面を表示装置60に表示させてもよい。例えば、表示制御部207は、図12に示すような画面を表示装置60に表示させる。図12に示す画面は、差分抽出部による抽出結果を表示する画面の一例である。
図12において、画面中央左側には、履歴生成部206により生成された変更履歴データであって、取り込みNo.1の取り込みが行われた後に生成された変更履歴データが表示されている。また、画面中央右側には、履歴生成部206により生成された変更履歴データであって、取り込みNo.3の取り込みが行われた後に生成された変更履歴データが表示されている。
この場合、差分抽出部は、両データの差分として、取り込みNo.2の取り込み、及び取り込みNo.3の取り込みを抽出する。この場合、表示制御部207は、例えば取り込みNo.2の取り込み、及び取り込みNo.3の取り込みを表示する行の左端に、差分として抽出されたことを示す記号(ここでは丸の中に「>」)を表示させてもよい。
以上のように、実施の形態2によれば、第2エンジニアリング装置20bは、保持部205で保持するエンジニアリングデータの復旧指示を受け付ける受付部208と、受付部208により復旧指示が受け付けられた場合、保持部205で保持するエンジニアリングデータを、反映部204による反映前の状態に復旧する復旧部209と、を備えた。これにより、管理者等は、例えば反映部204により反映内容に誤りが含まれていたような場合に、その反映が行われる前の状態にエンジニアリングデータを戻すことができる。
また、第2エンジニアリング装置20bは、差分データに対し、反映部204による反映が行われた日時を示す情報が付加された変更履歴データを生成する履歴生成部206を備え、復旧部209は、履歴生成部206により生成された変更履歴データに含まれる日時の単位で復旧を行う。これにより、管理者等は、希望する時点までのエンジニアリングデータの復旧を容易に行うことができ、作業性が向上する。
実施の形態3.
実施の形態2では、第2エンジニアリング装置20bが変更履歴データを生成し、この変更履歴データに基づいて、自機で保持するエンジニアリングデータを変更履歴データの取り込みNo.単位で復旧させる例について説明した。実施の形態3では、変更履歴データの取り込みNo.単位で、変更内容をエンジニアリングデータに取り込み可能とする例について説明する。
なお、ここでは、説明分かり易くするため、実施の形態2で第2エンジニアリング装置20bにより生成された変更履歴データを、第1エンジニアリング装置10へ送信し、第1エンジニアリング装置において、当該変更履歴データの取り込みNo.単位で、変更内容を、第1保持部1061に保持しているエンジニアリングデータに取り込む例を説明する。
図13は、実施の形態3における第1エンジニアリング装置10cの構成例を示す図である。実施の形態3における第1エンジニアリング装置10cは、実施の形態1における第1エンジニアリング装置10に対し、受信部101が受信部101cに変更され、反映部107が追加されている。第1エンジニアリング装置10cのその他の構成については、実施の形態1における第1エンジニアリング装置10と同様であるため、同一の符号を付してその説明を省略する。
受信部101cは、第2エンジニアリング装置20cの後述する送信部202cから送信されたエンジニアリングデータのコピーを受信する。また、受信部101cは、第2エンジニアリング装置20cの後述する送信部202cから送信された変更履歴データを受信する。
反映部107は、受信部101cにより受信された変更履歴データが示す変更履歴を、当該変更がなされた日時の単位で、第1保持部1061に保持しているエンジニアリングデータに反映させる。
図14は、実施の形態3における第2エンジニアリング装置20cの構成例を示す図である。実施の形態3における第2エンジニアリング装置20cは、実施の形態2における第2エンジニアリング装置20bに対し、送信部202が送信部202cに変更されている。第2エンジニアリング装置20cのその他の構成については、実施の形態2における第2エンジニアリング装置20bと同様であるため、同一の符号を付してその説明を省略する。
送信部202cは、生成部201により生成されたエンジニアリングデータのコピーを、第1エンジニアリング装置10に送信する。また、送信部202cは、履歴生成部206により生成された変更履歴データを第1エンジニアリング装置10cへ送信する。
次に、実施の形態3における第1エンジニアリング装置10c及び第2エンジニアリング装置20cの動作例について、図15を参照しながら説明する。
まず、第2エンジニアリング装置20cの送信部202cは、履歴生成部206により生成された変更履歴データを第1エンジニアリング装置10cへ送信する(ステップST1501)。例えば、第2エンジニアリング装置20cの送信部202cは、履歴生成部206により生成された変更履歴データとして、図11で説明した変更履歴データ(取り込みNo.1~No.3を含む変更履歴データ)を第1エンジニアリング装置10cへ送信する。
次に、第1エンジニアリング装置10cの受信部101cは、第2エンジニアリング装置20cの送信部202cから送信された変更履歴データを受信する(ステップST1502)。
次に、第1エンジニアリング装置10cの反映部107は、受信部101cにより受信された変更履歴データが示す変更履歴を、当該変更がなされた日時の単位で、第1保持部1061に保持しているエンジニアリングデータに反映させる(ステップST1203)。
ここで、第1エンジニアリング装置10cの第1保持部1061には、実施の形態1と同様に、第2エンジニアリング装置20cの送信部202cから送信されたエンジニアリングデータ(のコピー)が登録されている。また、このエンジニアリングデータは、未だ変更が加えられていないデータである。
そこで、第1エンジニアリング装置10cの反映部107は、受信部101cにより受信された変更履歴データが示す変更履歴を、当該変更がなされた日時の単位、すなわち取り込みNo.の単位で、第1保持部1061に保持しているエンジニアリングデータに取り込む(反映させる)。
このとき、どの取り込みNo.までの変更履歴をエンジニアリングデータに取り込むかについては、例えば管理者Aにより指示される。また、反映部107は、ある取り込みNo.までの変更履歴を取り込む場合、その取り込みNo.よりも前の取り込みNo.での変更履歴の取り込みを省略(スキップ)することはできない。
例えば、管理者Aにより、取り込みNo.3までの変更履歴をエンジニアリングデータに取り込む旨の指示がなされた場合、反映部107は、取り込みNo.3よりも前の取り込みNo.1及び取り込みNo.2での変更履歴も合わせてエンジニアリングデータに取り込む。これは、前述のように、変更履歴データが、新たな変更履歴を、前回までの変更履歴に追加するような形で更新されることによる。つまり、新たな変更履歴は、前回までの変更履歴が存在することを前提として追加されるため、反映部107は、前回までの変更履歴を取り込まずに新たな変更履歴のみを取り込むことはできないようにして、エンジニアリングデータの整合性を維持する。
また、反映部107による取り込みの前提として、第1エンジニアリング装置10cの第1保持部1061で保持しているエンジニアリングデータと、第2エンジニアリング装置20cの保持部205で保持しているエンジニアリングデータとが、当該取り込みの時点で同じデータである必要がある。例えば、上記2つのエンジニアリングデータが別々のエンジニアリングデータであると、反映部107により変更履歴データが、第1保持部1061で保持しているエンジニアリングデータに取り込まれても、取り込み後のエンジニアリングデータに不具合が生じたり、管理者等の意図通りの結果とならなくなる可能性があるためである。
そこで、このような事態を避けるため、反映部107は、変更履歴データを、第1保持部1061で保持しているエンジニアリングデータに取り込む際、以下のようなチェックを行うようにしてもよい。
例えば、反映部107は、変更履歴データの各取り込みNo.で管理される変更履歴のうちの「取り込み前設定値」の値と、第1保持部1061で保持しているエンジニアリングデータのうちの、当該「取り込み前設定値」に対応する値とを比較し、両者が一致するか否かを確認する。
例えば、図11で説明した変更履歴データでは、取り込みNo.1で管理される変更履歴のうちの1行目の「取り込み前設定値」の値は「入力」となっている。そこで、反映部107は、図16に示すように、第1保持部1061で保持しているエンジニアリングデータのうちの、当該「取り込み前設定値」に対応する値が「入力」となっているか否かを確認する。その結果、第1保持部1061で保持しているエンジニアリングデータのうちの、当該「取り込み前設定値」に対応する値が「入力」となっていれば、反映部107は両者が一致すると判断する。
一方、第1保持部1061で保持しているエンジニアリングデータのうちの、当該「取り込み前設定値」に対応する値が「入力」となっていない、もしくは、第1保持部1061で保持しているエンジニアリングデータの中に、当該「取り込み前設定値」に対応する値が存在しない場合は、両者は不一致であると判断する。
そして、反映部107は、上記のような確認を、変更履歴データの各取り込みNo.で管理される変更履歴のうちの、すべての「取り込前設定値」の値について行う。そして、反映部107は、この確認の結果、不一致が1件もない場合に、変更履歴データを第1保持部1061で保持しているエンジニアリングデータに取り込むようにする。これにより、反映部107は、取り込み後のエンジニアリングデータに不具合が生じたり、管理者等の意図通りの結果とならなくなる事態を回避する。
なお、上記の説明では、第2エンジニアリング装置20bにより生成された変更履歴データを第1エンジニアリング装置10cへ送信し、第1エンジニアリング装置10cにおいて、当該変更履歴データの取り込みNo.単位で、変更内容を、第1保持部1061に保持しているエンジニアリングデータに取り込む例を説明した。しかしながら、これに限らず、例えば、第1エンジニアリング装置10cの反映部107は、当該変更履歴データが示す変更内容を、第2保持部1062に保持している編集後のエンジニアリングデータに取り込んでもよい。
または、第2エンジニアリング装置20cは、復旧部209により、保持部205で保持するエンジニアリングデータが復旧された後、変更履歴データが示す変更内容を、保持部205で保持するエンジニアリングデータに再度取り込みたいような場合に、当該変更履歴データが示す変更内容を、保持部205に保持しているエンジニアリングデータに取り込んでもよい。
以上のように、実施の形態3によれば、第2エンジニアリング装置20cの送信部202cは、履歴生成部206により生成された変更履歴データを第1エンジニアリング装置10cへ送信し、第1エンジニアリング装置10cの受信部101cは、第2エンジニアリング装置20cの送信部202cから送信された変更履歴データを受信する。また、第1エンジニアリング装置10cは、受信部101cにより受信された変更履歴データが示す変更履歴を、当該変更がなされた日時の単位で、第1保持部1061に保持しているエンジニアリングデータに反映させる反映部107を備える。これにより、管理者等は、第2エンジニアリング装置20cで生成された変更履歴データが示す変更履歴を、第1エンジニアリング装置10cで保持しているエンジニアリングデータに反映させることができる。
また、反映部107は、ある日時までの変更履歴を、第1保持部1061に保持しているエンジニアリングデータに反映させる場合、当該日時よりも前の日時までにおける変更履歴も合わせて当該エンジニアリングデータに反映させる。これにより、第1エンジニアリング装置10cは、第1保持部1061に保持しているエンジニアリングデータの整合性を維持することができる。
また、反映部107は、変更履歴データが示す変更履歴に含まれる、当該変更が行われる前の設定値と、第1保持部1061で保持しているエンジニアリングデータのうちの、当該設定値に対応する値とを比較し、双方がすべて一致する場合に反映を行う。これにより、第1エンジニアリング装置10cは、取り込み後のエンジニアリングデータに不具合が生じたり、管理者等の意図通りの結果とならなくなる事態を回避することができる。
なお、本願発明はその発明の範囲内において、各実施の形態の自由な組合わせ、或いは各実施の形態の任意の構成要素の変形、若しくは各実施の形態において任意の構成要素の省略が可能である。