(57)【要約】【課題】エンジニアリング作業を効率化する。【解決手段】記憶部は前記制御装置の構成要素である機能ブロックを示す要素情報を格納するデータファイルからなる第１データファイル群を記憶し、処理部は前記データファイルに格納される要素情報を変更し、判定部は他のエンジニアリング装置において変更された前記要素情報を格納するデータファイルからなる第２データファイル群を取得し、前記第１データファイル群と前記第２データファイル群のそれぞれから、変更された要素情報を格納するデータファイルである差分ファイルを抽出し、前記差分ファイルに格納された要素情報が示す機能ブロックの不整合の有無、又は前記機能ブロック間の入出力経路の不整合の有無のうち少なくともいずれかを判定する。【選択図】図２
2018132817.tif 000002
【特許請求の範囲】
【請求項１】
工業プラントにおける運転設備のエンジニアリングを支援するためのエンジニアリング装置であって、
前記プラントの運転制御を行うための制御ロジックの構成要素である１個又は複数の機能ブロックを示す要素情報を格納するデータファイルからなる第１データファイル群を記憶する記憶部と、
前記データファイルに格納される要素情報を変更する処理部と、
他のエンジニアリング装置において変更された前記要素情報を格納するデータファイルからなる第２データファイル群を取得し、
前記第１データファイル群と前記第２データファイル群のそれぞれから、変更された要素情報を格納するデータファイルである差分ファイルを抽出し、
前記差分ファイルに格納された要素情報が示す機能ブロックの不整合の有無、又は前記機能ブロック間の入出力経路の不整合の有無のうち少なくともいずれかを判定する判定部と、を備える
エンジニアリング装置。
【請求項２】
前記機能ブロックの不整合は、前記機能ブロックの名称の重複又は前記入出力経路で指定される入出力結合先である機能ブロックの種別の不適格であり、
前記機能ブロック間の入出力経路の不整合は、前記入出力経路で指定される入出力結合先である機能ブロックの重複又は欠落のうち少なくともいずれかを含む状態である
請求項１に記載のエンジニアリング装置。
【請求項３】
前記記憶部には、
機能ブロック間の入出力経路の一部の情報であって予め定義された情報を格納する定義ファイルが記憶され、
前記第１データファイル群、前記第２データファイル群は、それぞれ前記入出力経路の他の一部の情報を格納するデータファイルである個別ファイルを含み
前記判定部は、
前記差分ファイルのうち、前記個別ファイルに格納された入出力経路の他の一部の情報から前記入出力経路の不整合を検出する
請求項１又は請求項２に記載のエンジニアリング装置。
【請求項４】
前記データファイルは、前記プラントの運転制御を行うための制御装置の制御ループ毎に、又は複数の制御ループの組み合わせ毎に形成されている
請求項１から請求項３のいずれか一項に記載のエンジニアリング装置。
【請求項５】
前記第１データファイル群は、さらに前記制御ループ毎のフィールド機器の入出力設定を格納する第３データファイルを含み、
前記第２データファイル群は、さらに前記入出力設定を格納する第４データファイルを含み、
前記判定部は、
前記第１データファイル群と前記第２データファイル群のそれぞれから、変更された入出力設定を格納するデータファイルである第２差分ファイルを抽出し、
抽出した第２差分ファイルに格納された入出力設定の不整合、又は当該入出力設定と前記差分ファイルに格納された要素情報が示す機能ブロックに係る入出力経路との不整合のうち少なくともいずれかを検出する
請求項４に記載のエンジニアリング装置。
【請求項６】
前記処理部は、前記機能ブロックと前記入出力経路の不整合がないと判定するとき、
前記差分ファイルと変更されていない前記要素情報を格納するデータファイルとを統合し、前記プラントの運転制御を行うための制御装置に出力する
請求項１から請求項５のいずれか一項に記載のエンジニアリング装置。
【請求項７】
工業プラントにおける運転設備のエンジニアリングを支援するためのエンジニアリング装置であって、前記プラントの運転制御を行うための制御ロジックの構成要素である１個又は複数の機能ブロックを示す要素情報を格納するデータファイルからなる第１データファイル群を記憶する記憶部を、備えるエンジニアリング装置におけるエンジニアリング方法であって、
前記データファイルに格納される要素情報を変更する変更過程と、
他のエンジニアリング装置において変更された前記要素情報を格納するデータファイルからなる第２データファイル群を取得する取得過程と、
前記第１データファイル群と前記第２データファイル群のそれぞれから、変更された要素情報を格納するデータファイルである差分ファイルを抽出する抽出過程と、
前記差分ファイルに格納された要素情報が示す機能ブロックの不整合の有無、又は前記機能ブロック間の入出力経路の不整合の有無のうち少なくともいずれかを判定する判定過程と、
を有するエンジニアリング方法。
【請求項８】
工業プラントにおける運転設備のエンジニアリングを支援するためのエンジニアリング装置であって、前記プラントの運転制御を行うための構成要素である１個又は複数の機能ブロックを示す要素情報を格納するデータファイルからなる第１データファイル群を記憶する記憶部を、備えるエンジニアリング装置のコンピュータに、
前記データファイルに格納される要素情報を変更する変更手順と、
他のエンジニアリング装置において変更された前記要素情報を格納するデータファイルからなる第２データファイル群を取得する取得手順と、
前記第１データファイル群と前記第２データファイル群のそれぞれから、変更された要素情報を格納するデータファイルである差分ファイルを抽出する抽出手順と、
前記差分ファイルに格納された要素情報が示す機能ブロックの不整合の有無、又は前記機能ブロック間の入出力経路の不整合の有無のうち少なくともいずれかを判定する判定手順と、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明の開示は、工業プラントのための工業オートメーションの分野に関し、特に、工業プラントのためのプロセス制御システムの設定に関する。
【背景技術】
【０００２】
工業プラントは、一般に長期間にわたる連続的な運用が要求される。例えば、１日２４時間、年間３６５日ならびに３０年間運用を原則とすることがある。一方、工業プラントの長期に及ぶ運用年数に比べて、技術動向やビジネス環境は短期間で早く変化し、これらの変化への追従対応が適宜必要とされることもある。従来、エンジニアリングデータの修正時にはプラントの運転を停止して修正変更を実施していた。しかし、これらのエンジニアリングデータの修正は頻繁に要求されることがある。一方で、プラントの稼働率を向上させることは、ビジネス上重要であり、エンジニアリングデータの修正変更の度にブラントの運転を停止させることが問題となっていた。これを解決するために、例えば、特許文献１、２に記載の発明のように、工業プラントの稼働を維持しつつ、エンジニアリングデータの修正変更を可能とするオンラインメンテナンス技術が提案されている。
これらのオンラインメンテナンス技術は、エンジニアリングデータをタイムリーかつプラントの運転を停止せずに修正・変更することを可能とするが、運転中のプラントを構成する設備機器へ変更後のエンジニアリングデータを適用する。そのため、修正変更により生じる各機器の動作の不具合などにより、プラントの運転に大きな悪影響を与えてしまうことがある。例えば、プラントの運転を行うための設備機器の増改造において、増改造量が比較的多い場合には、オンラインメンテナンス技術を利用して直接エンジニアリングを行うことはリスクを伴う。従って、プラントの運転を実現する制御システムの複製システムにおいてエンジニアリングデータの修正変更後の動作を確認した後で、オンラインメンテナンスが実施されていた。
近年（２０１７年時点）では、特にプラントの大規模・複雑化などで改造量の増加や複雑さが増しており、修正変更後の不具合発生等のリスクが高まっている。
ここで、特許文献１には、制御装置に反映させるエンジニアリングデータを修正又は変更された範囲に限定してデータ量と反映時間を短縮するオンラインメンテナンス方法について記載されている。
【０００３】
上述したように、エンジニアリングにより修正又は変更されたエンジニアリングデータを制御システムに反映した後、その挙動に不具合が生じないことを事前に確認しておくことが重要である。特許文献２には、オンラインメンテナンス時にソースの再評価を行って作成されたデータベースと制御ステーション内の既存のデータベースとの差分を検出するとともに差分により生じる動作に関する警告を表示手段に表示する点について記載されている。これらの方法により、オンラインメンテナンス実行時の局所的な問題が解決されうる。しかしながら、技術の高度化により制御システムは、大規模化ならびに複雑化している。また、制御対象の工業プラントも、急激なビジネス環境の変化に応じて改変する必要が生じている。言い換えれば、技術動向やビジネス環境の変化への追従対応が重要になりつつある。
【０００４】
その際には、工業プラントの増改造に伴うエンジニアリングデータの修正変更が要求されることがある。エンジニアリングデータの修正変更は、通例、現場制御システムを模した別個の制御システムである複製制御システムにおいて行われる。これは、修正変更により生じる各機器の動作不具合などにより、直接プラント運転に大きな悪影響を及ぼさないため、即ち、現場制御システムに悪影響を直接及ぼさないためである。現場制御システムとは、実際に稼働している工業プラントの動作を制御する制御システムを指す。修正変更の対象となるエンジニアリングデータとして、現場制御システムにおいて適用されているエンジニアリングデータの複製が用いられる。複製制御システムとして、現場制御システムと同様の機器を備える制御システム、又は現場制御システムにより得られる測定値を算出するシミュレータを用いて動作確認試験が行われることがある。そして、修正変更が発生したときは、修正変更に係るエンジニアリングデータを格納した修正済みファイルが現場制御システムに移管ならびに反映され、現場制御システムにおいて動作確認が行われていた。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第３７９６６４５号公報
【特許文献２】特開２０００−１７２３０３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、複製制御システムにおいてエンジニアリングを完了した後、現場制御システムへの反映が必要な変更点をエンジニアが１つ１つ抽出する必要があった。その過程において、ヒューマンエラーなどに起因する作業の誤りが生じる可能性がある。また、抽出のために相当の時間が費やされることがある。また、制御システムの大規模化および複雑化に伴い、修正対象ファイル数が増加する傾向がある。そのため、現場制御システムと複製制御システムとの間において、エンジニアリングデータの運搬もしくは伝送の過程における消失、改ざん、流出などのリスクが高くなる。また、エンジニアリングによる修正内容を現場制御システムに反映する前に、現場制御システムにおける最新のエンジニアリングデータとの差分検出を行わずに、データの不整合が生じた状態で修正後のエンジニアリングデータが現場制御システムに反映される可能性があった。そのような可能性は、例えば、複製制御システムとは独立に現場制御システムにおいてエンジニアリングデータが変更される場合に生じうる。また、プラントは稼働中であるため、複製制御システムにおいてエンジニアリングが修正変更された後に、現場制御システムにおいてエンジニアリングデータが日々更新されうる。この更新により、データの不整合が生じる可能性もある。
【０００７】
本発明は上記の点に鑑みてなされたものであり、エンジニアリング作業を効率化する、即ち、確実には反映が必要な変更点を短時間に把握するとともにデータの移行、反映などのエンジニアリング作業の誤りを低減させて、短時間で当該作業を実施可能とする、エンジニアリング装置、エンジニアリング方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
（１）本発明は上記の課題を解決するためになされたものであり、本発明の一態様は、工業プラントにおける運転設備のエンジニアリングを支援するためのエンジニアリング装置であって、前記プラントの運転制御を行うための制御ロジックの構成要素である１個又は複数の機能ブロックを示す要素情報を格納するデータファイルからなる第１データファイル群を記憶する記憶部と、前記データファイルに格納される要素情報を変更する処理部と、他のエンジニアリング装置において変更された前記要素情報を格納するデータファイルからなる第２データファイル群を取得し、前記第１データファイル群と前記第２データファイル群のそれぞれから、変更された要素情報を格納するデータファイルである差分ファイルを抽出し、前記差分ファイルに格納された要素情報が示す機能ブロックの不整合の有無、又は前記機能ブロック間の入出力経路の不整合の有無のうち少なくともいずれかを判定する判定部と、を備えるエンジニアリング装置である。
【０００９】
（２）本発明の他の態様は、上述したエンジニアリング装置であって、前記機能ブロックの不整合は、前記機能ブロックの名称の重複又は前記入出力経路で指定される入出力結合先である機能ブロックの種別の不適格であり、前記機能ブロック間の入出力経路の不整合は、前記入出力経路で指定される入出力結合先である機能ブロックの重複又は欠落のうち少なくともいずれかを含む状態である。
【００１０】
（３）本発明の他の態様は、上述したエンジニアリング装置であって、機能ブロック間の入出力経路の一部の情報であって予め定義された情報を格納する定義ファイルが記憶され、前記第１データファイル群、前記第２データファイル群は、それぞれ前記入出力経路の他の一部の情報を格納するデータファイルである個別ファイルを含み、前記判定部は、前記差分ファイルのうち、前記個別ファイルに格納された入出力経路の他の一部の情報から前記入出力経路の不整合を検出する。
【００１１】
（４）本発明の他の態様は、上述したエンジニアリング装置であって、前記データファイルは、前記プラントの運転制御を行うための制御装置の制御ループ毎に、又は複数の制御ループの組み合わせ毎に形成されている。
【００１２】
（５）本発明の他の態様は、上述したエンジニアリング装置であって、前記第１データファイル群は、さらに前記制御ループ毎のフィールド機器の入出力設定を格納する第３データファイルを含み、前記第２データファイル群は、さらに前記入出力設定を格納する第４データファイルを含み、前記処理部は、前記第１データファイル群と前記第２データファイル群のそれぞれから、変更された入出力設定を格納するデータファイルである第２差分ファイルを抽出し、抽出した第２差分ファイルに格納された入出力設定の不整合、又は当該入出力設定と前記差分ファイルに格納された要素情報が示す機能ブロックに係る入出力経路との不整合のうち少なくともいずれかを検出する。
【００１３】
（６）本発明の他の態様は、上述したエンジニアリング装置であって、前記判定部は、前記機能ブロックと前記入出力経路の不整合がないと判定するとき、前記差分ファイルと変更されていない前記要素情報を格納するデータファイルとを統合し、前記プラントの運転制御を行うための制御装置に出力する。
【００１４】
（７）本発明の他の態様は、工業プラントにおける運転設備のエンジニアリングを支援するためのエンジニアリング装置であって、前記プラントの運転制御を行うための制御ロジックの構成要素である１個又は複数の機能ブロックを示す要素情報を格納するデータファイルからなる第１データファイル群を記憶する記憶部を、備えるエンジニアリング装置におけるエンジニアリング方法であって、前記データファイルに格納される要素情報を変更する変更過程と、他のエンジニアリング装置において変更された前記要素情報を格納するデータファイルからなる第２データファイル群を取得する取得過程と、前記第１データファイル群と前記第２データファイル群のそれぞれから、変更された要素情報を格納するデータファイルである差分ファイルを抽出する抽出過程と、前記差分ファイルに格納された要素情報が示す機能ブロックの不整合の有無、又は前記機能ブロック間の入出力経路の不整合の有無のうち少なくともいずれかを判定する判定過程と、を有するエンジニアリング方法である。
【００１５】
（８）本発明の他の態様は、工業プラントにおける運転設備のエンジニアリングを支援するためのエンジニアリング装置であって、前記プラントの運転制御を行うための制御ロジックの構成要素である１個又は複数の機能ブロックを示す要素情報を格納するデータファイルからなる第１データファイル群を記憶する記憶部を、備えるエンジニアリング装置のコンピュータに、前記データファイルに格納される要素情報を変更する変更手順と、他のエンジニアリング装置において変更された前記要素情報を格納するデータファイルからなる第２データファイル群を取得する取得手順と、前記第１データファイル群と前記第２データファイル群のそれぞれから、変更された要素情報を格納するデータファイルである差分ファイルを抽出する抽出手順と、前記差分ファイルに格納された要素情報が示す機能ブロックの不整合の有無、又は前記機能ブロック間の入出力経路の不整合の有無のうち少なくともいずれかを判定する判定手順と、を実行させるためのプログラムである。
【発明の効果】
【００１６】
本発明によれば、エンジニアリング作業を効率化することができる、即ち、確実に反映が必要な変更点を確実に把握するとともにデータの移行、反映などのエンジニアリング作業の誤りを低減させて、当該作業を短時間で実施可能とすることができる。
【図面の簡単な説明】
【００１７】
【図１】本実施形態に係るエンジニアリングシステムの構成の一例を示すブロック図である。
【図２】本実施形態に係るエンジニアリング装置の機能構成の一例を示すブロック図である。
【図３】エンジニアリングによるエンジニアリングデータの変化の一例を示す図である。
【図４】本実施形態のエンジニアリングデータの整合性の観点の例を示す概念図である。
【図５】本実施形態のエンジニアリングデータの整合性の判定対象の例を示す概念図である。
【図６】本実施形態に係る制御装置の機能構成の一例を示すブロック図である。
【図７】本実施形態に係るエンジニアリング方法の一例を示すフローチャートである。
【発明を実施するための形態】
【００１８】
以下、図面を参照し、本発明のエンジニアリング装置、エンジニアリング方法及びプログラムの実施形態について説明する。
【００１９】
（エンジニアリングシステム）
まず、本実施形態に係るエンジニアリングシステムの構成の一例について説明する。
図１は、本実施形態に係るエンジニアリングシステムの構成の一例を示すブロック図である。
エンジニアリングシステムＳ１は、現場制御システム１と、複製制御システム２と、を備える。現場制御システム１は、制御対象となるプラント１５Ａ、１５Ｂの現場に設置され、それらの運転状態を制御する制御システムである。現場制御システム１は、エンジニアリング装置１０と、操作監視装置１２と、制御装置１４Ａと、制御装置１４Ｂと、を含んで構成されるプロセス制御システムである。エンジニアリング装置１０、操作監視装置１２、制御装置１４Ａ及び制御装置１４Ｂは、それぞれ制御ネットワークＮＷ１に接続され、制御ネットワークＮＷ１を介して各種のデータを有線又は無線で送受信する。なお、以下の説明では、複数の制御装置を総称する場合又は互いに区別しない場合には、制御装置１４と呼ぶことがある。また、複数のプラントを総称する場合又は互いに区別しない場合には、プラント１５と呼ぶことがある。
【００２０】
エンジニアリング装置１０は、各制御装置１４のエンジニアリングを支援するための装置である。制御装置のエンジニアリングには、制御装置に実行させるプログラム一部又は全部の設計、作成、更新、削除、制御装置へのインストール、処理に用いられるパラメータの設定、更新もしくは削除、変更履歴の管理、動作テスト、等の処理がある。エンジニアリングは、エンジニアリングシステムＳ１の保守を行うエンジニアの操作に応じて行われる。また、プログラムを実行するとは、そのプログラムに記述された命令で指示される処理を実行することを指す。エンジニアリング装置１０の機能構成については、後述する。
【００２１】
操作監視装置１２は、オペレータが各プラント１５の運転状態を監視し、各プラント１５の運転を操作するためのＨＭＩ（Ｈｕｍａｎ  Ｍａｃｈｉｎｅ  Ｉｎｔｅｒｆａｃｅ）である。操作監視装置１２は、各プラント１５の運転を操作するためのスイッチ、キーボード、マウスなどの入力デバイスを備える。操作監視装置１２は、各プラント１５の運転状態を表示するためのディスプレイ、ランプ等の表示デバイスを備える。操作監視装置１２は、１個又は複数のディスプレイに、複数のウィンドウを表示し、各プラント１５の運転状態を表示してもよい。運転状態の指標として、例えば、センサ１６Ａ、１６Ｂから出力される測定値が表示される。操作監視装置１２は、操作入力による指示に応じて各制御装置１４の動作を制御する。
【００２２】
制御装置１４は、それぞれフィールドネットワークＮＷ１Ｆに接続され、操作監視装置１２からの監視のもとで各プラント１５の運転状態を制御する。制御装置１４は、エンジニアリング装置１０がインストールしたプログラムを、設定されたパラメータを用いて実行する。図１に示す例では、制御装置１４Ａ、１４Ｂには、フィールドネットワークＮＷ１Ｆを介してセンサ１６Ａ、１６Ｂから測定値がそれぞれ入力される。制御装置１４Ａ、１４Ｂは、それぞれ入力される測定値に基づいて所定の運転制御を行って操作量を求め、それぞれ求めた操作量を、フィールドネットワークＮＷ１Ｆを介してアクチュエータ１８Ａ、１８Ｂに出力する。
【００２３】
プラント１５Ａ、１５Ｂは、それぞれ工業プロセスを実現するプラントである。プラント１５Ａには、フィールド機器としてセンサ１６Ａ及びアクチュエータ１８Ａが設置されている。センサ１６Ａは、プラント１５Ａの運転状態を示す物理量を測定し、その測定値をそれぞれ制御装置１４Ａに入力する。アクチュエータ１８Ａは、制御装置１４Ａから出力される操作量に基づいてプラント１５Ａの運転状態を操作する。従って、センサ１６Ａ、制御装置１４Ａ及びアクチュエータ１８Ａにより１個の制御ループが形成される。
プラント１５Ｂには、フィールド機器としてセンサ１６Ｂ及びアクチュエータ１８Ｂが設置されている。センサ１６Ｂは、プラント１５Ｂの運転状態を示す物理量を測定し、その測定値をそれぞれ制御装置１４Ｂに入力する。アクチュエータ１８は、制御装置１４Ｂから出力される操作量に基づいてプラント１５Ｂの運転状態を操作する。従って、センサ１６Ｂ、制御装置１４Ｂ及びアクチュエータ１８Ｂにより１個の制御ループが形成される。
【００２４】
センサ１６Ａ、１６Ｂは、例えば、流量計、温度センサ、圧力センサなどである。アクチュエータ１８Ａ、１８Ｂは、例えば、流量制御弁、開閉弁、モータ、ポンプなどである。
図１に示す例では、プラント１５Ａ、１５Ｂの入出力チャネルの数は、それぞれ１入力１出力であるが、プラントの入出力チャネルの数は、一般にプラントによって異なる。入力チャネル、出力チャネルの数は、それぞれ２以上になることがある。
【００２５】
複製制御システム２は、制御装置１４Ａ、１４Ｂやプラント１５Ａ、１５Ｂを制御する制御装置１４Ａ、１４Ｂと独立に設置され、主に制御装置１４Ａ、１４Ｂのエンジニアリングを行うために複製された制御システムである。より具体的には、複製制御システム２は、エンジニアリング装置２０と、操作監視装置２２と、制御装置２４Ａと、制御装置２４Ｂと、を含んで構成されるプロセス制御システムである。エンジニアリング装置２０、操作監視装置２２、制御装置２４Ａ及び制御装置２４Ｂは、それぞれエンジニアリング装置１０、操作監視装置１２、制御装置１４Ａ及び制御装置１４Ｂと同様の構成を備える。なお、複製制御システム２において、上述の制御装置２４Ａ及び制御装置２４Ｂは、それぞれ実機である必要はなく、制御装置の動作を模擬可能なシミュレータ又は当該動作を模擬可能なシミュレーションモデルを搭載した演算装置、パーソナルコンピュータ、端末装置などの機器であってもよい。エンジニアリング装置２０、操作監視装置２２、制御装置２４Ａ及び制御装置２４Ｂは、それぞれ制御ネットワークＮＷ２に接続され、制御ネットワークＮＷ２を介して各種のデータを有線又は無線で送受信する。制御装置２４Ａには、例えば、プラント２５Ａ（図示せず）の運転状態を示す物理量を測定するセンサ２６Ａと、プラント２５Ａを操作するアクチュエータ２８Ａが接続される（図示せず）。また、制御装置２４Ｂには、プラント２５Ｂ（図示せず）の運転状態を示す物理量を測定するセンサ２６Ｂと、プラント２５Ｂを操作するアクチュエータ２８Ｂが接続される（図示せず）。
なお、複製制御システム２は、プラント外の社内制御システムであってもよい。「社内」とは、現場制御システム１で用いられるデータファイルのエンジニアリング作業が行われる場所の一例として、現場制御システム１を管理する事業者の事業所内（社内）にあることを示すに過ぎない。
【００２６】
プラント２５Ａ、２５Ｂは、それぞれプラント１５Ａ、１５Ｂと同様の構成を備える。例えば、アクチュエータ２８Ａに出力する操作量がアクチュエータ１８Ａに出力する操作量に等しいとき、センサ２６Ａから入力される測定量は、センサ１６Ａから入力される測定量と等しくなる。なお、複製制御システム２は、プラント２５Ａ、２５Ｂに代えて、プラント１５Ａ、１５Ｂの入出力特性を模擬するためのシミュレータ（図示せず）を備えてもよい。
【００２７】
エンジニアリングにおいて操作されるプログラムならびにパラメータは、一般に複数のデータファイルに格納される。図１は、制御装置１４Ａに関連するデータファイルの例として、ＦｉｌｅＡ〜ＦｉｌｅＦを示す。エンジニアリング装置１０は、各制御装置に関連するデータファイルを、フラッシュメモリ、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）などの外部メモリに出力してもよいし、制御ネットワークとは別個の情報ネットワーク（図示せず）を介して複製制御システム２のエンジニアリング装置２０に送信してもよい。制御装置２４Ａ、２４Ｂは、それぞれ制御装置１４Ａ、１４Ｂと同様の構成を有する。そのため、エンジニアリング装置２０において制御装置１４Ａ、１４Ｂのエンジニアリングが可能になる。なお、エンジニアリング装置２０においてエンジニアリング作業の対象となる制御装置は、実機、つまり制御装置１４Ａ、１４Ｂである必要はなく、制御装置１４Ａ、１４Ｂの動作を模擬可能なシミュレータ又は当該動作を模擬可能なシミュレーションモデルを搭載した演算装置、パーソナルコンピュータ、端末装置などの機器であってもよい。そして、エンジニアリング装置２０は、外部メモリ又は情報ネットワークを介してエンジニアリングにより編集されたデータファイルをエンジニアリング装置１０に提供する。図１に示す例では、エンジニアリング装置２０からエンジニアリング装置１０に提供されるデータファイルは、ＦｉｌｅＡ’、ＦｉｌｅＢ、ＦｉｌｅＣ’、ＦｉｌｅＤ’、ＦｉｌｅＥ、ＦｉｌｅＦである。ＦｉｌｅＡ’、ＦｉｌｅＣ’、ＦｉｌｅＤ’は、それぞれＦｉｌｅＡ、ＦｉｌｅＣ、ＦｉｌｅＤから、格納されている情報の一部又は全部がエンジニアリングにより変更されていることを示す。
【００２８】
（エンジニアリング装置）
次に、本実施形態に係るエンジニアリング装置１０の機能構成について説明する。
図２は、本実施形態に係るエンジニアリング装置１０の機能構成の一例を示すブロック図である。エンジニアリング装置２０の機能構成は、エンジニアリング装置１０の機能構成と同様であるため、その説明を援用する。
エンジニアリング装置１０は、制御部１０２と、記憶部１０４と、操作表示部１０６と、入出力通信部１０８と、を含んで構成される。
【００２９】
制御部１０２は、エンジニアリングデータ処理部１０２２と、エンジニアリングデータ判定部１０２４と、を含んで構成される。制御部１０２は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などの制御デバイスで構成される。制御デバイスは、記憶部１０４に予め記憶されたエンジニアリングツールのプログラムを読み出し、読み出したプログラムを実行して、エンジニアリングデータ処理部１０２２として機能する。また、制御デバイスは、記憶部１０４に予め記憶されたエンジニアリングツールのプログラムを読み出し、読み出したプログラムを実行して、エンジニアリングデータ判定部１０２４として機能する。
【００３０】
エンジニアリングデータ処理部１０２２は、制御装置１４の動作に用いられるエンジニアリングデータについてエンジニアリングに係る処理を行う。エンジニアリングデータ処理部１０２２は、入出力通信部１０８から入力される操作信号の指示に応じて、指示されたエンジニアリングデータの編集、エンジニアリングデータの動作テスト、制御装置１４への出力（移行、反映）を行う。エンジニアリングデータの編集には、予め記憶部１０４に記憶されたエンジニアリングデータの一部又は全部の作成、変更、削除が含まれる。エンジニアリングデータ処理部１０２２は、編集により得られたエンジニアリングデータを格納したデータファイル群を記憶部１０４に記憶する。
【００３１】
エンジニアリングデータは、主に、各制御装置１４が実行するアプリケーションプログラムと制御対象となるプラント１５に設置されたフィールド機器の入出力設定（Ｉ／Ｏ：Ｉｎｐｕｔ−Ｏｕｔｐｕｔ）に分類される。アプリケーションプログラムには、運転制御を行うための１個又は複数の機能ブロックを示す情報が記述される。つまり、記述される機能ブロックは、制御ロジックの構成要素となる。機能ブロックとして、例えば、ＰＩＤ制御、各種の論理制御など、事象の発生もしくは運転状態に応じた処理が実装される。運転制御は、各１個の制御ループ毎に行われる。その運転制御を実行するための制御ロジックが各１個のデータファイルに記述される。以下の説明では、この制御ロジックが記述されたデータファイルをアプリケーションモジュールと呼ぶことがある。アプリケーションモジュールには、各機能ブロックに係る情報として、その処理に用いられるパラメータ、機能ブロック間の入出力経路（結線）などが記述される。入出力設定として、フィールド機器に関するパラメータが記述される。記述されるパラメータとして、例えば、フィールド機器の種類、設置位置などの情報が設定される。以下の説明では、この入出力設定が記述されたデータファイルを、入出力設定ファイルと呼ぶことがある。アプリケーションモジュール、入出力設定ファイルは、各１個の制御ループ毎に形成されてもよいし、所定の複数の制御ループの組み合わせ毎に形成されてもよい。
【００３２】
エンジニアリングデータ処理部１０２２は、エンジニアリングデータに基づき、動作テストを行う。ここで、動作テストとは、エンジニアリングデータの移行、反映などのエンジニアリング作業の誤りを低減させるため、データの移行、反映後における複製制御システム２の挙動を確認するための処理をいう。エンジニアリングデータ処理部１０２２は、動作テストにおいて、例えば、次の処理を行う。
・各データファイルに記述された内容が所定の書式で記述されているか否かの判定
・センサ１６Ａ等から入力される測定値と同期したアプリケーションプログラムの実行
・測定値又はアプリケーションプログラムの実行により得られる操作量の操作表示部１０６への表示
・各制御装置１４を介したフィールド機器のループチェック
【００３３】
エンジニアリングデータ処理部１０２２は、操作信号で指示された制御装置に係るエンジニアリングデータを、その制御装置に出力する。ここで、エンジニアリングデータ処理部１０２２は、エンジニアリングデータを人間がその内容を視認できるデータ形式（例えば、テキスト形式）からバイナリ形式のバイナリデータに変換するものでもよい。また、制御装置は、テキスト形式のデータから自機が必要とするバイナリ形式のデータへデータ形式を変換する機器を有していてもよい。エンジニアリングデータ処理部１０２２は、変換により得られたバイナリデータを統合して、その制御装置に入出力通信部１０８を介して出力する。制御装置は、エンジニアリング装置１０から入力されたエンジニアリングデータをインストールする。
【００３４】
エンジニアリングデータ処理部１０２２は、ある制御装置に係るエンジニアリングデータを格納したデータファイル群を入力（インポート）する。
エンジニアリングデータ処理部１０２２は、記憶部１０４に記憶されたエンジニアリングデータのうち、操作信号で指定された制御装置に係るエンジニアリングデータを格納したデータファイル群を出力（エクスポート）する。入出力先は、自装置に物理的に接続された着脱可能な記憶媒体（メモリ）であってもよいし、情報ネットワークを介して接続された複製制御システム２のエンジニアリング装置２０であってもよい。
【００３５】
なお、エンジニアリングデータ処理部１０２２は、実行している処理（イベント）と、その処理の開始時刻を示す履歴情報を、その処理毎に記憶部１０４に記憶し、エンジニアリング履歴を形成するものでもよい。履歴情報には、例えば、イベントがデータファイルの変更である場合には、処理対象のデータファイルの情報とそのデータファイルにおける変更前後の情報が含まれる。エンジニアリング履歴は、開始時刻の順に各履歴情報が累積してなるものでもよい。エンジニアリング履歴は、制御装置毎に形成されてもよい。
【００３６】
エンジニアリングデータ判定部１０２４は、エンジニアリングデータ処理部１０２２に入力されたデータファイル群に格納されたエンジニアリングデータと、記憶部１０４に記憶されたエンジニアリングデータのそれぞれについて、エンジニアリングにより変更が生じた情報をデータファイル単位で判定する。ここで、記憶部１０４に記憶されたエンジニアリングデータを格納するデータファイル群を第１データファイル群と呼ぶ。エンジニアリングデータ処理部１０２２に入力されるデータファイル群を第２データファイル群と呼ぶ。ここで、第２データファイル群は、エンジニアリング装置１０の外部から電子記録媒体又はネットワークを介して入力されてもよい。エンジニアリングデータ判定部１０２４は、ある制御装置に係る第１データファイル群に含まれるデータファイルのうち自装置のエンジニアリングデータ処理部１０２２により変更された情報を格納するデータファイルと、その制御装置に係る第２データファイル群に含まれるデータファイルのうちエンジニアリング装置２０のエンジニアリングデータ処理部により変更された情報を格納するデータファイルとを、差分ファイルとして取得する。ここで、エンジニアリングデータ判定部１０２４は、エンジニアリング履歴を参照して、エンジニアリングデータ処理部１０２２が第１データファイル群に属するデータファイルの編集が開始した時点を第１データファイル群についてエンジニアリングが開始された時点として特定することができる。なお、エンジニアリングデータ判定部１０２４は、例えば、記憶部１０４に記憶されたエンジニアリング履歴を参照して、エンジニアリング装置１０から第１データファイル群がエンジニアリング装置２０に直接又は間接的に出力された時点を、第２データファイル群についてエンジニアリングが開始された時点として特定してもよい。なお、エンジニアリングデータ判定部１０２４は、エンジニアリング装置２０から直接又は間接的に入力されるエンジニアリング履歴を参照して、第２データファイル群に含まれる差分ファイルを特定してもよい。
【００３７】
エンジニアリングデータ判定部１０２４は、ある制御装置１４の第１データファイル群に属するデータファイルのうち、エンジニアリングデータ処理部１０２２によっても、変更された情報を含まないデータファイル（以下、未変更ファイルと呼ぶ）と、取得した差分ファイルと、をその制御装置に係る新たなデータファイル群（以下、更新ファイル群と呼ぶ）として集約する。そして、エンジニアリングデータ判定部１０２４は、更新ファイル群内のデータファイルに格納された情報の不整合の有無を判定する。
判定対象の不整合には、例えば、その制御装置に係る機能ブロックの不整合、機能ブロック間の入出力経路の不整合、制御ループに設定された入出力設定の不整合、などがある。
【００３８】
エンジニアリングデータ判定部１０２４は、不整合が判定された情報を操作表示部１０６に表示させてもよいし、さらにその不整合の事由を操作表示部１０６に表示させてもよい。
エンジニアリングデータ判定部１０２４は、不整合がないと判定するとき、その旨を示す確認情報と更新ファイル群とを対応付けて記憶部１０４に記憶する。従って、元の第１データファイル群が更新ファイル群に更新される。
エンジニアリングデータ処理部１０２２は、確認情報と対応付けて記憶されたデータファイル群に格納されたエンジニアリングデータを、その制御装置にインストール可能とする。即ち、エンジニアリングデータ処理部１０２２は、入力された操作信号で指示される場合であっても、確認情報と対応付けて記憶されないデータファイル群に格納されたエンジニアリングデータの反映（即ち、移行、出力など）を行わない。
【００３９】
操作表示部１０６は、ユーザの操作を受け付け、その操作に応じた操作信号を制御部１０２に出力する操作入力部を備える。操作入力部は、例えば、マウス、キーボード、タッチセンサなどのポインティングデバイスである。また、操作表示部１０６は、制御部１０２から入力される各種の情報を表示する表示部を備える。表示部は、例えば、液晶ディスプレイ、ディスプレイパネルなどのディスプレイデバイスである。操作入力部と表示部とは、別体であってもよいし、一体化されたタッチパネルとして構成されてもよい。
【００４０】
入出力通信部１０８は、エンジニアリング装置１０の外部から各種のデータを入力し、制御部１０２から入力された各種のデータをエンジニアリング装置の外部に出力する入出力部を備える。入出力部は、例えば、入出力インタフェースである。入出力通信部１０８は、制御ネットワークＮＷ１に接続された機器との間で各種のデータを有線又は無線で送受信する通信部を備える。通信部は、例えば、通信インタフェースである。
【００４１】
（差分ファイルの検出例）
現場制御システム１に設置された制御装置のエンジニアリングは、現場制御システム１のエンジニアリング装置１０、複製制御システム２のエンジニアリング装置２０のいずれにおいても行われる可能性がある。例えば、現場制御システム１の制御装置１４Ａに関連するファイルＦｉｌｅＡ〜ＦｉｌｅＦ（修正前）は、現場制御システム１、複製制御システム２で独立に変更されうる。そのため、両者間で変更箇所が異なりうる。図３に示す例では、エンジニアリング装置２０により情報が変更されたデータファイルがＦｉｌｅＡ’、ＦｉｌｅＣ’、ＦｉｌｅＤ’であるのに対し、エンジニアリング装置１０により情報が変更されたデータファイルはＦｉｌｅＢ’である。そこで、エンジニアリング装置１０のエンジニアリングデータ判定部１０２４は、エンジニアリング履歴を参照して、その時点の第１データファイル群のうち修正前の元のデータファイルＦｉｌｅＢから変更された情報を含むデータファイルＦｉｌｅＢ’とその元のデータファイルＦｉｌｅＢを特定する。また、エンジニアリングデータ判定部１０２４は、その他のデータファイルＦｉｌｅＡ、ＦｉｌｅＣ、ＦｉｌｅＤ、ＦｉｌｅＥ、ＦｉｌｅＦが変更されていないと判定する。そして、エンジニアリングデータ判定部１０２４は、エンジニアリング装置２０から搬入される第２データファイル群のうち、修正前の情報、つまり出力された時点における情報から変更された情報を含むＦｉｌｅＡ’、ＦｉｌｅＣ’、ＦｉｌｅＤ’を特定する。エンジニアリング装置１０は、第１データファイル群に含まれるＦｉｌｅＡ、ＦｉｌｅＣ、ＦｉｌｅＤを、それぞれ特定したＦｉｌｅＡ’、ＦｉｌｅＣ’、ＦｉｌｅＤ’に更新する。これらのファイルは、不整合の有無の検出対象となる。不整合の有無の検出は、制御装置１４に反映される前に実行される。
【００４２】
図３に示す例では、情報が変更されたデータファイルが、第２データファイル群ではＦｉｌｅＡ’、ＦｉｌｅＣ’、ＦｉｌｅＤ’となり、第１データファイル群では、ＦｉｌｅＢ’となり、互いに重複していない。しかしながら、共通の変更前のデータファイルに含まれる情報から変更された情報を含むデータファイルが、第１データファイル群と第２データファイル群のそれぞれに存在する場合がある。例えば、第２データファイル群のＦｉｌｅＢ’の他に、元のＦｉｌｅＢに含まれる情報から変更された情報が格納されたＦｉｌｅＢ”が第１データファイル群に含まれることがある。その場合には、エンジニアリングデータ判定部１０２４は、共通の元のデータファイルから変更された情報を含む２つのデータファイル、つまり、ＦｉｌｅＢ’とＦｉｌｅＢ”のいずれを選択するかを示す照会情報を、操作表示部１０６に表示させてもよい。そして、エンジニアリングデータ判定部１０２４は、操作表示部１０６から入力される操作信号に基づいて、いずれのデータファイル群に含まれるデータファイル、つまり、ＦｉｌｅＢ’とＦｉｌｅＢ”のいずれのデータファイルを選択する。
また、エンジニアリングデータ判定部１０２４は、情報が変更されたデータファイルが重複する場合、第１データファイル群と第２データファイル群のいずれに含まれるデータファイルを優先して選択するかが予め設定されていてもよい。エンジニアリングデータ判定部１０２４は、その設定に基づいて重複するデータファイルのいずれかを選択する。
【００４３】
なお、エンジニアリングデータ判定部１０２４は、第１データファイル群に含まれるデータファイルのうち、元の情報から変更された情報とその位置を操作表示部１０６に表示させてもよい（差分表示機能）。そして、エンジニアリングデータ判定部１０２４は、その情報を格納するデータファイルのインポートの照会を操作表示部１０６に表示させ、操作信号によるインポートの指示に応じて、そのデータファイルを選択してもよい（変更点選択機能）。
【００４４】
（整合性の判定）
不整合の有無の判定は、主にアプリケーションモジュールの観点での判定と、入出力（Ｉ／Ｏ）の観点での判定とがある。アプリケーションモジュールの観点での判定とは、アプリケーションモジュールを構成する機能ブロック間での不整合の有無の判定を指す。図４、５に示す例では、アプリケーションモジュールであるＦｉｌｅＡ’（Ａｐｐ１）、ＦｉｌｅＢ’（Ａｐｐ２）、ＦｉｌｅＣ’（Ａｐｐ３）間で整合性が判定される。入出力の観点での判定には、入出力設定ファイル間の不整合の有無の判定と、アプリケーションモジュールと入出力設定ファイルとの間の不整合の有無の判定とが含まれる。図４、５に示す例では、アプリケーションモジュールであるＦｉｌｅＡ’（Ａｐｐ１）と、このアプリケーションモジュールに係る入出力設定ファイルであるＦｉｌｅＤ’（Ｉ／Ｏ１）との間と、入出力設定ファイルであるＦｉｌｅＤ’（Ｉ／Ｏ１）、ＦｉｌｅＦ（I／Ｏ２）間で、それぞれ整合性が判定される。整合性の判定項目の例については、後述する。
【００４５】
（制御装置）
次に、本実施形態に係る制御装置１４の機能構成の一例について説明する。次の説明では、制御装置１４が、プラント１５から２チャネルの入力データが入力され、１チャネルの出力データを出力する２入力１出力制御を実現する場合を例にする。図６は、本実施形態に係る制御装置１４の機能構成の一例を示すブロック図である。
制御装置１４は、フィールド機器側入出力部１４２と、演算処理部１４４と、操作監視装置側入出力部１４６と、を含んで構成される。
【００４６】
フィールド機器側入出力部１４２は、フィールドネットワークＮＷ１Ｆに接続され、フィールド機器との間で各種のデータを送受信する。ここで、フィールド機器側入出力部１４２は、センサから入力される測定値を演算処理部１４４に出力する。また、フィールド機器側入出力部１４２は、演算処理部１４４から出力される操作量をアクチュエータに出力する。フィールド機器側入出力部１４２は、入出力インタフェースを含んで構成され、１個又は複数のＩ／Ｏカードが設置されるノードと接続される。各１個のＩ／Ｏカードは、１個のユニットとして機能し、演算処理部１４４への入力、演算処理部１４４からの出力を媒介するためのＩ／Ｏカードのスロットが、エンジニアリングデータ処理部１０２２から提供された入出力設定ファイルに格納された入出力チャネル毎の入出力設定で指示される。
【００４７】
演算処理部１４４は、１個又は複数の機能ブロックを含んで構成される。各１個の機能ブロックは、入力部、演算部及び出力部を備える。入力部には、入力元としてフィールド機器側入出力部１４２、他の機能ブロック及び操作監視装置側入出力部１４６のいずれか又はその組み合わせから入力情報が入力される。演算部は、入力部に入力される入力情報に対して演算処理を行い、出力情報を生成する。出力部は、演算部が生成した出力情報を、出力先としてフィールド機器側入出力部１４２、他の機能ブロック及び操作監視装置側入出力部１４６のいずれか又はその組み合わせに出力する。
【００４８】
演算処理部１４４は、ＣＰＵなどの制御デバイスを含んで構成され、制御デバイスは、エンジニアリングデータ処理部１０２２から提供されたアプリケーションモジュールに記述された制御ロジックを実行し、その機能ブロックの機能を実現する。制御ロジックは、これらの機能ブロックと、フィールド機器側入出力部１４２と機能ブロックとの間、機能ブロックと操作監視装置側入出力部１４６との間、ならびに機能ブロック間の入出力経路結線から構成される。機能ブロックの種別には、制御機能ブロックと、入出力機能ブロックとがある。制御機能ブロックとは、シーケンス制御、連続制御等の制御演算を行う機能を有する機能ブロックである。制御機能ブロックの入力部は、他の機能ブロックから出力された出力情報を自ブロックの入力情報とする。制御機能ブロックの出力部は、自ブロックで生成された出力情報を、他の機能ブロックに出力する。入出力機能ブロックは、入力情報がフィールド機器側入出力部１４２と操作監視装置側入出力部１４６の一方又は両方から入力される入力部、又は出力情報をフィールド機器側入出力部１４２と操作監視装置側入出力部１４６の一方又は両方に出力する出力部、を有する機能ブロックである。
【００４９】
図６に示す例では、演算処理部１４４は、４個の機能ブロック１４４Ａ〜１４４Ｄを備える。機能ブロック１４４Ｃの入力部Ｃには、結線Ｃを介してフィールド機器側入出力部１４２からの入力情報が入力される。機能ブロック１４４Ｄの入力部Ｄには、結線Ｄを介してフィールド機器側入出力部１４２からの入力情報が入力される。機能ブロック１４４Ｂの入力部Ｂ−１には、自部への入力情報として機能ブロック１４４Ｃの出力部Ｃからの出力情報が結線ＣＢを介して入力される。機能ブロック１４４Ｂの入力部Ｂ−２には、自部への入力情報として機能ブロック１４４Ｄの出力部Ｄからの出力情報が結線ＤＢを介して入力される。機能ブロック１４４Ａの入力部Ａには、自部への入力情報として機能ブロック１４４Ｂの出力部からの出力情報が結線ＢＡを介して入力される。機能ブロック１４４Ａの出力部Ａは、演算部Ａが生成した出力情報を、結線Ａ−１を介して操作監視装置側入出力部１４６に、結線Ａ−２を介してフィールド機器側入出力部１４２に出力する。
【００５０】
操作監視装置側入出力部１４６は、制御ネットワークＮＷ１に接続され、操作監視装置１２又はエンジニアリング装置１０と各種のデータを送受信する。操作監視装置側入出力部１４６は、例えば、入出力インタフェースを含んで構成される。操作監視装置側入出力部１４６は、演算処理部１４４から出力される出力情報を、操作監視装置１２に出力する。出力される出力情報は、例えば、機能ブロック１４４Ｂで算出される操作量又はその変化傾向を示す情報である。
【００５１】
（エンジニアリングデータの編集）
エンジニアリングデータ処理部１０２２は、操作信号の指示によりエンジニアリングデータを編集する際、エンジニアリングデータが示す情報を操作表示部１０６に表示させる。エンジニアは、この表示された情報を視認してエンジニアリングデータとして設定された情報を把握することができる。
例えば、エンジニアリングデータ処理部１０２２は、図６に示すように制御装置１４Ａに実行させようとする制御ロジックの機能ブロック、機能ブロック間の結線、機能ブロックとフィールド機器側入出力部１４２もしくは操作監視装置側入出力部１４６との間の結線をグラフィックで表示（描画）させる。以下の説明では、この表示画面をエディタ画面と呼ぶ。また、エンジニアリングデータ処理部１０２２は、これらの機能ブロック、結線ならびにそれぞれのパラメータその他の情報を、操作信号の指示により定める。この制御ロジックの情報は、制御ループ毎に形成される。
【００５２】
しかしながら、アプリケーションモジュールに記述された制御ロジックの情報は、バイナリデータに変換されたうえで制御装置１４Ａに出力される。バイナリデータでは、制御ロジックの各構成要素が、０又は１の値からなるビット列で表現される。例えば、機能ブロック１４４Ａの入力部Ａ、機能ブロック１４４Ｂの出力部Ｂは、それぞれ「０１０１０１」、「１００１０１」と表現される。そして、機能ブロック間の結線ＢＡは、入力部Ａと出力部Ｂとをもって定義される。そのため、各構成要素を示すバイナリデータは、その構成要素に特有の唯一の情報を示すデータでなければならない。このことは、各構成要素の名称が唯一であり、複数の構成要素間で名称が重複すること、つまり共通の名称を有することは許されない。
【００５３】
また、エンジニアリングデータ処理部１０２２が、操作信号に基づいて入力部Ａと出力部Ｂとを接続する結線ＢＡを設定する際、入力部Ａ又は出力部Ｂに他の機能ブロックと接続する他の結線と重複しないこと、ならびに、入力部Ａと出力部Ｂとの間を接続する他の結線と重複しないことを要する。これは、制御ロジックで実現される機能として、記述される機能ブロックと機能ブロック間の結線をもって、これらの機能の有機的な連結関係が定義されるためである。
【００５４】
また、機能ブロック１４４Ａの入力部Ａ、機能ブロック１４４Ｂの出力部Ｂとの間の結線ＢＡが設定されず、欠落している場合には、機能ブロック１４４Ａには入力情報が提供されないので、機能ブロック１４４Ａはその機能を発揮しない。そのため、設定される制御ロジックで指示される制御が成立しなくなる。
さらに、演算処理部１４４には、本来含まれるべき機能ブロックとして、少なくともフィールド機器側入出力部１４２からの入力情報を入力する入出力機能ブロックと、フィールド機器側入出力部１４２への出力情報を出力する入出力機能ブロックとが含まれなければならない。また、入出力機能ブロックに代えて機能制御ブロックが設定されるときには機能制御ブロックは、その機能を発揮しない。そのため、適格な機能を有する機能ブロックの欠落や、不適格な機能を有する機能ブロックの設定やその機能ブロックとの結線も、設定される制御ロジックで指示される制御が成立しなくなる。
【００５５】
そこで、エンジニアリングデータ判定部１０２４は、未変更ファイルと差分ファイルからなる更新ファイル群に属するアプリケーションモジュールについて、アプリケーションモジュールの観点の判定として次に説明する（Ａ１）〜（Ａ４）の判定を行う。エンジニアリングデータ判定部１０２４は、（Ａ１）〜（Ａ４）の判定結果が、いずれも「なし」である場合には、アプリケーションモジュールの観点で不整合がないと判定する。
【００５６】
（Ａ１）アプリケーションモジュールに記述された機能ブロック、入出力経路それぞれの名称に重複があるか否か。
より具体的には、エンジニアリングデータ判定部１０２４は、それらのアプリケーションモジュールにおいて互いに共通の名称を有する複数の機能ブロックを有するとき、機能ブロックの名称に重複があると判定し、共通の名称を有する複数の機能ブロックがないとき機能ブロックの名称に重複がないと判定する。また、エンジニアリングデータ判定部１０２４は、それらのアプリケーションモジュールにおいて互いに共通の名称を有する複数の入出力経路を有するとき、入出力経路の名称に重複があると判定し、共通の名称を有する複数の入出力経路がないとき入出力経路に重複がないと判定する。
【００５７】
（Ａ２）結線の配置として、入出力経路で指定される入力元の機能ブロック、出力先の機能ブロックのいずれかまたは両方に重複があるか否か。
より具体的には、エンジニアリングデータ判定部１０２４は、それらのアプリケーションモジュールにおいて入力元と出力元の一方又は両方に２個以上の機能ブロックを指定する入出力経路を有するとき、入出力経路で指定される入力元の機能ブロック、出力先の機能ブロックのいずれかまたは両方に重複があると判定する。また、エンジニアリングデータ判定部１０２４は、それらのアプリケーションモジュールにおいて入力元と出力元の一方又は両方に２個以上の機能ブロックを指定する入出力経路がないとき、入出力経路で指定される入力元の機能ブロック、出力先の機能ブロックのいずれかまたは両方に重複がないと判定する。
【００５８】
（Ａ３）機能ブロック間の入出力経路で指定される入力元又は出力先の欠落した入出力経路、つまり入出力結合先が定義されていない入出力経路があるか否か。
より具体的には、エンジニアリングデータ判定部１０２４は、それらのアプリケーションモジュールにおいて入力元と出力先の一方又は両方に他の機能ブロック、フィールド機器側入出力部１４２又は操作監視装置側入出力部１４６が指定されていない入出力経路があるとき、入力元又は出力先の欠落した入出力経路があると判定する。エンジニアリングデータ判定部１０２４は、それらのアプリケーションモジュールにおいて入力元と出力元の一方又は両方に他の機能ブロック、フィールド機器側入出力部１４２又は操作監視装置側入出力部１４６が指定されていない入出力経路がないとき、入力元又は出力先の欠落した入出力経路がないと判定する。
【００５９】
（Ａ４）入出力経路で指定される入出力結合先の機能ブロックに、所定の結合できない種類の機能ブロックがあるか否か。
より具体的には、エンジニアリングデータ判定部１０２４は、フィールド機器側入出力部１４２又は操作監視装置側入出力部１４６が入力先又は出力元として指定された入出力経路について、出力元又は入力先として入出力機能ブロックが指定されているとき、その入出力機能ブロックを結合できる種類の機能ブロックとして判定する。エンジニアリングデータ判定部１０２４は、その入出力経路について、出力元又は入力先として制御機能ブロックが指定されているとき、その制御機能ブロックを結合できない種類の機能ブロックとして判定する。
【００６０】
また、入出力設定ファイルに記述された入出力設定の情報も、バイナリデータに変換されたうえで制御装置１４Ａに出力され、制御装置１４Ａからの入出力先となるフィールド機器の指定に用いられる。フィールド機器の入出力設定が欠落している場合には、入出力先となるフィールド機器を特定することができず、ひいては制御対象のプラントが特定されない。入出力設定が欠落している場合には、例えば、入出力機能ブロックで要求されるデータの入力又は生成されるデータの出力に係る入出力設定が存在しない場合、入出力設定で指定される設置位置（例えば、スロット）に接続されているフィールド機器が存在しない場合、などがある。
その他、多重化設定により、それぞれ異なる設置位置に共通の制御ループとの間で入出力されうるＩ／Ｏカードが複数個存在する場合がある。そのような場合には、注目する制御ループの入出力設定で指定される設置位置が、他の制御ループの入出力設定で指定される設置位置と重複すること、つまり、ある制御ループの入出力設定で指定される設置位置が、他の制御ループの入出力設定で指定される設置位置と共通となるおそれがある。
【００６１】
また、入出力設定で指定される設置位置に重複や欠落がない場合であっても接続されているフィールド機器の種類（例えば、センサ、アクチュエータなど）が、制御ループを構成する入出力機能ブロックがフィールド機器側入出力部１４２を介して入力又は出力するデータの種類（例えば、測定値を示す入力情報、操作量を示す出力量）と整合しない場合には、入出力機能ブロックで要求されるデータを取得できない、又は生成されるデータが提供されない。
【００６２】
そこで、エンジニアリングデータ判定部１０２４は、未変更ファイルと差分ファイルからなる更新ファイル群に属する入出力データとアプリケーションモジュールについて、入出力の観点の判定として次の（Ｂ１）〜（Ｂ３）の判定を行う。
エンジニアリングデータ判定部１０２４は、（Ｂ１）〜（Ｂ３）の判定結果が、いずれも「なし」である場合には、入出力の観点で不整合がないと判定する。
【００６３】
（Ｂ１）アプリケーションモジュールに記述された入出力機能ブロックとフィールド機器側入出力部１４２との入出力に対応した入出力設定に欠落があるか否か。
より具体的には、エンジニアリングデータ判定部１０２４は、それらのアプリケーションモジュールにおいて、入力元又は出力先としてフィールド機器側入出力部１４２を指定する入出力経路に対応する入出力設定が入出力設定ファイルに複数個記述されているとき、入出力設定に重複があると判定する。エンジニアリングデータ判定部１０２４は、それらのアプリケーションモジュールにおいて、入力元又は出力先としてフィールド機器側入出力部１４２を指定する入出力経路に対応する入出力設定が入出力設定ファイルに記述されていないとき、入出力設定に欠落があると判定する。エンジニアリングデータ判定部１０２４は、それらのアプリケーションモジュールにおいて、入力元又は出力先としてフィールド機器側入出力部１４２を指定する入出力経路に対応する入出力設定が各１個入出力設定ファイルに記述されているとき、入出力設定に重複も欠落もないと判定する。
【００６４】
（Ｂ２）入出力設定ファイルに記述された入出力設定で指定される設置位置に重複があるか否か。
より具体的には、エンジニアリングデータ判定部１０２４は、それらの入出力設定ファイルにおいて、指定する設置位置が相互に共通する入出力設定が複数個あるとき、設置位置に重複があると判定する。エンジニアリングデータ判定部１０２４は、それらの入出力設定ファイルにおいて、入出力設定で指定される設置位置が個々に異なるとき、設置位置に重複がないと判定する。
【００６５】
（Ｂ３）入出力設定で指定されるフィールド機器の種類と、入出力機能ブロックで入出力されるデータの種類に整合しない入出力設定があるか否か。
より具体的には、記憶部１０４に予め入力データ又は出力データの種類毎に、対応するフィールド機器の種類を示す入出力データテーブルを記憶させておく。例えば、入力データである測定値の種類が温度である場合には、対応するフィールド機器の種類は温度センサである。出力データである操作量の種類が回転数である場合には、対応するフィールド機器の種類はモータである。エンジニアリングデータ判定部１０２４は、入出力データテーブルを参照し、入出力設定ファイルに記述される入出力設定毎に指定されるフィールド機器の種類に対応するフィールド機器の種類を特定する。そして、エンジニアリングデータ判定部１０２４は、特定したフィールド機器の種類が、その入出力設定に対応する入出力経路を介してフィールド機器側入出力部１４２と入力又は出力されるデータの種類とが一致しない場合、入出力されるデータの種類が整合しないと判定する。エンジニアリングデータ判定部１０２４は、特定したフィールド機器の種類が、その入出力設定に対応する入力又は出力されるデータの種類に一致する場合、入出力されるデータの種類が整合すると判定する。
【００６６】
アプリケーションモジュールの観点、入出力の観点、ともに不整合がないと判定するとき、エンジニアリングデータ判定部１０２４は、確認情報と更新ファイル群とを対応付けて記憶部１０４に記憶する。
なお、更新ファイルに入出力設定ファイルが含まれない場合には、エンジニアリングデータ判定部１０２４は、入出力の観点での判定、つまり（Ｂ１）〜（Ｂ３）の判定を行わなくてもよい。
【００６７】
（エンジニアリング方法）
次に、本実施形態に係るエンジニアリング方法について説明する。
図７は、本実施形態に係るエンジニアリング方法の一例を示すフローチャートである。
（ステップＳ１０２）制御部１０２は、記憶部１０４からエンジニアリングツールのプログラムを読み出し、読み出したプログラムの実行を開始して、エンジニアリングデータ判定部１０２４を起動する。その後、ステップＳ１０４の処理に進む。
（ステップＳ１０４）エンジニアリングデータ判定部１０２４は、自装置で保持されるエンジニアリングデータを格納する第１データファイル群、エンジニアリングデータ処理部１０２２に入力されるエンジニアリングデータを格納する第２データファイル群のそれぞれについて、エンジニアリング履歴を参照し、変更前後の情報を特定する。エンジニアリングデータ判定部１０２４は、変更された情報を格納するデータファイルを差分ファイルとして特定し、情報が変更されないデータファイルを未変更ファイルとして特定する。その後、ステップＳ１０６の処理に進む。
（ステップＳ１０６）エンジニアリングデータ判定部１０２４は、差分ファイルと未変更ファイルとを集約し更新ファイル群を形成する。これにより、変更前の情報を格納する元のデータファイルが、変更後の情報が格納される差分ファイルに更新される。その後、ステップＳ１０８の処理に進む。
【００６８】
（ステップＳ１０８）エンジニアリングデータ判定部１０２４は、エンジニアリング対象の制御装置のアプリケーションモジュールについて、機能ブロック、結線の名称、結線の配置に重複がないか否かを判定する。この判定は、上述の判定Ａ１、Ａ２に相当する。重複がないと判定する場合（ステップＳ１０８  ＹＥＳ）、ステップＳ１１２の処理に進む。重複があると判定する場合（ステップＳ１０８  ＮＯ）、ステップＳ１１０の処理に進む。
（ステップＳ１１０）エンジニアリングデータ判定部１０２４は、重複の検出を示す所定の警告メッセージを生成し、生成した警告メッセージを操作表示部１０６に出力し、操作表示部１０６に表示させる。警告メッセージには、重複が検出された部分、つまり機能ブロック、結線の名称、結線の配置の名称などの情報が含まれる。警告メッセージは、例えば、「警告：○○○に重複あり」との文字列を含む。なお、エンジニアリングデータ判定部１０２４は、エディタ画面に、該当する機能ブロック、結線の位置を表示させてもよい。また、エンジニアリングデータ判定部１０２４は、その警告メッセージを記憶部１０４に記憶し、警告ログの一部として累積してもよい。その後、ステップＳ１１２に進む。
【００６９】
（ステップＳ１１２）エンジニアリングデータ判定部１０２４は、エンジニアリング対象の制御装置のアプリケーションモジュールについて、入出力結合先が定義されていない機能ブロックがないか否かを判定する。この判定は、上述の判定Ａ３に相当する。入出力結合先が定義されていないと判定する場合（ステップＳ１１２  ＹＥＳ）、ステップＳ１１６の処理に進む。入出力結合先が定義されていない機能ブロックがあると判定する場合（ステップＳ１１２  ＮＯ）、ステップＳ１１４の処理に進む。
（ステップＳ１１４）エンジニアリングデータ判定部１０２４は、入出力結合先が定義されていない機能ブロックの検出を示す所定の警告メッセージを生成し、生成した警告メッセージを操作表示部１０６に出力し、操作表示部１０６に表示させる。警告メッセージには、入出力結合先が定義されていない機能ブロックの名称などの情報が含まれる。警告メッセージは、例えば、「警告：△△△に未結合あり」との文字列を含む。なお、エンジニアリングデータ判定部１０２４は、エディタ画面に、該当する機能ブロックの位置を表示させてもよい。また、エンジニアリングデータ判定部１０２４は、その警告メッセージを記憶部１０４に記憶し、警告ログの一部として累積してもよい。その後、ステップＳ１１６に進む。
【００７０】
（ステップＳ１１６）エンジニアリングデータ判定部１０２４は、入出力結合先の結合ブロック又は入出力部がいずれも結合可能であるか否かを判定する。この判定は、上述の判定Ａ４に相当する。いずれも結合可能であると判定する場合（ステップＳ１１６  ＹＥＳ）、ステップＳ１２０の処理に進む。結合できない入出力結合先があると判定する場合（ステップＳ１１６  ＮＯ）、ステップＳ１１８の処理に進む。
（ステップＳ１１８）エンジニアリングデータ判定部１０２４は、結合できない入出力結合先の検出を示す所定の警告メッセージを生成し、生成した警告メッセージを操作表示部１０６に出力し、操作表示部１０６に表示させる。警告メッセージには、結合できない入出力結合先の名称などの情報が含まれる。警告メッセージは、例えば、「警告：□□□に不適切結合あり」との文字列を含む。なお、エンジニアリングデータ判定部１０２４は、エディタ画面に、該当する入出力結合先となる機能ブロック又は入出力部の位置を表示させてもよい。また、エンジニアリングデータ判定部１０２４は、その警告メッセージを記憶部１０４に記憶し、警告ログの一部として累積してもよい。その後、ステップＳ１２０の処理に進む。
【００７１】
（ステップＳ１２０）エンジニアリングデータ判定部１０２４は、判定終了メッセージを操作表示部１０６に出力し、操作表示部１０６に表示させる。判定終了メッセージは、例えば、「判定終了」の文字列を含む。その後、ステップＳ１２２の処理に進む。
（ステップＳ１２２）エンジニアリングデータ判定部１０２４は、不整合が検出されたか否かを判定する。不整合が検出されない場合（ステップＳ１２２  ＹＥＳ）、ステップＳ１２４の処理に進む。不整合が検出された場合（ステップＳ１２２  ＮＯ）、図７の処理を終了する。
（ステップＳ１２４）エンジニアリングデータ判定部１０２４は、その制御装置１４に係るデータファイル群について不整合が検出されないことを示す確認情報を記憶部１０４に記憶する。これにより、エンジニアリングデータ処理部１０２２は、確認情報が記憶された制御装置に係るデータファイルについてバイナリ変換を行い、得られたデータファイルをその制御装置に出力することができる。その後、図７の処理を終了する。
【００７２】
上述では、エンジニアリング装置１０が図７の処理を行う場合を例にしたが、エンジニアリング装置２０が図７の処理を実行してもよい。また、新たに生成されたエンジニアリングデータに係るデータファイルについては、ステップＳ１０６の処理が省略されてもよい。図７の処理には、ステップＳ１０８〜Ｓ１１８において、アプリケーションモジュールについて判定Ａ１〜Ａ４を行う場合を例にしたが、差分ファイルに入出力データが含まれる場合には、判定Ｂ１〜Ｂ３の処理を行ってもよい。
【００７３】
判定Ｂ１において入出力設定に欠落があると判定する場合、エンジニアリングデータ判定部１０２４は、その入出力設定の欠落の検出を示す所定の警告メッセージを生成し、操作表示部１０６に表示させてもよい。警告メッセージには、差分ファイルに含まれる情報のうち、その入出力設定に係る入出力機能ブロックの名称などの情報が含まれる。警告メッセージは、例えば、「警告：×××に入出力設定なし」との文字列を含む。なお、エンジニアリングデータ判定部１０２４は、エディタ画面に、該当する入出力機能ブロックの位置を表示させてもよい。また、エンジニアリングデータ判定部１０２４は、その警告メッセージを記憶部１０４に記憶し、警告ログの一部として累積してもよい。
【００７４】
判定Ｂ２において設置位置に重複があると判定する場合、エンジニアリングデータ判定部１０２４は、その設置位置の重複の検出を示す所定の警告メッセージを生成し、操作表示部に表示させてもよい。警告メッセージには、差分ファイルに含まれる情報のうち、その入出力設定に係る入出力機能ブロックとその設置位置の名称などの情報が含まれる。警告メッセージは、例えば、「警告：×〇〇の入出力設定に重複あり」との文字列を含む。なお、エンジニアリングデータ判定部１０２４は、エディタ画面に、該当する入出力機能ブロックの位置を表示させてもよい。また、エンジニアリングデータ判定部１０２４は、その警告メッセージを記憶部１０４に記憶し、警告ログの一部として累積してもよい。
【００７５】
判定Ｂ３においてデータの種類に整合しない入出力設定があると判定する場合、エンジニアリングデータ判定部１０２４は、その入出力設定の検出を示す所定の警告メッセージを生成し、操作表示部１０６に表示させてもよい。警告メッセージには、差分ファイルに含まれる情報のうち、その入出力データの名称などの情報が含まれる。警告メッセージは、例えば、「警告：×△△の入出力データの種類が不適切」との文字列を含む。なお、エンジニアリングデータ判定部１０２４は、エディタ画面に、該当する入出力機能ブロックの位置を表示させてもよい。また、エンジニアリングデータ判定部１０２４は、その警告メッセージを記憶部１０４に記憶し、警告ログの一部として累積してもよい。
なお、これらの判定、警告メッセージの表示ならびに記憶を、エンジニアリング装置２０のエンジニアリング判定部が行ってもよい。
【００７６】
なお、機能ブロック間の入出力経路については、オブジェクト指向プログラミングでいうクラスモジュールとインスタンスモジュールとの関係に適用することができる。クラスモジュールとは、予め定義された制御ロジックのモデルである。インスタンスモジュールとは、個別の制御ロジックの具体例である。即ち、本実施形態に係る個別のアプリケーションモジュールが示す制御ロジックは、インスタンスモジュールとして、参照先となる予め定義された定義ファイルに格納された所定のクラスモジュールと、そのクラスモジュールとの差分情報で表される。クラスモジュールとして、例えば、入出力系統数毎の典型的な制御ロジックを定義しておく。インスタンスモジュールとして、入出力系統数と制御ロジックとが共通する複数のプラント１５をそれぞれ制御するための制御ロジックが用いられる。エンジニアリングデータ処理部１０２２は、生成されたエンジニアリングデータから制御装置に出力する実行形式のプログラムを、インスタンスモジュールを用いて構成（ビルド）する際、参照先のクラスモジュールを参照し、そのクラスモジュールと個別の差分情報とからインスタンスモジュールとして用いられる制御ロジックを特定する。
【００７７】
そこで、機能ブロック間の各入出力経路の入出力結合先の一部の情報について、上述した不整合を生じないように定義ファイルに予め定義しておく。エンジニアリング装置１０、２０のエンジニアリングデータ処理部は、個々のプラント１５の制御ロジックに応じた入出力経路の入出力結合先の情報を含む差分情報を格納した個々のアプリケーションモジュール（インスタンスモジュール）を生成する。そこで、エンジニアリングデータ判定部１０２４は、上述のＡ１〜Ａ４の判定、Ｂ１〜Ｂ３の判定のいずれか又は両方を行う際、エンジニアリングデータ判定部１０２４は、差分情報が記述された個別のアプリケーションモジュールを処理対象とする。これにより、不整合の検出に係る処理が軽減される。
【００７８】
（総括）
以上に説明したように、本実施形態に係るエンジニアリング装置１０は、工業プラントの制御を行う制御装置１４のエンジニアリングを支援するためのエンジニアリング装置である。エンジニアリング装置１０は、制御装置１４の構成要素である機能ブロックを示す要素情報を格納するデータファイルからなる第１データファイル群を記憶する記憶部１０４と、データファイルに格納される要素情報を変更するエンジニアリングデータ処理部１０２２とを備える。また、エンジニアリング装置１０は、他のエンジニアリング装置２０において変更された要素情報を格納するデータファイルからなる第２データファイル群を取得し、第１データファイル群と第２データファイル群のそれぞれから、変更された要素情報を格納するデータファイルである差分ファイルを抽出し、差分ファイルに格納された要素情報が示す機能ブロックの不整合の有無、又は機能ブロック間の入出力経路の不整合の有無のうち少なくともいずれかを判定するエンジニアリングデータ判定部１０２４を備える。
【００７９】
この構成により、制御装置単位でエンジニアリングデータが移行され、エンジニアリングにより変更された情報を格納したデータファイルが個々に特定される。そのため、互いに異なる場所に設置された制御システム間でエンジニアリングデータの移行に係る作業が効率化する。例えば、従来は、現場制御システム１と複製制御システム２との間で制御システム全体のエンジニアリングデータを移行することがあったが、移行対象のエンジニアリングデータの容量が大きいために、電子メールによるファイル添付など通信による移行が困難であった。これに対して、本実施形態に係るエンジニアリング装置１０では、エンジニアリングデータの移行がより容易かつ迅速に行われる。また、エンジニアリングの開始までの時間や、エンジニアリングを繰り返す際の所要時間を短縮することができる。
【００８０】
また、従来は、複製制御システム２において修正したエンジニアリングデータを現場制御システム１に適用する際、エンジニアが現場制御システム１に反映する部分を抽出し、とりまとめるための操作を要していた。特にエンジニアリングデータが大量である場合には、操作においてヒューマンエラーが発生するリスクが高く、修正内容を正確に現場制御システム１に反映するために細心の注意を要していた。これに対して、本実施形態に係るエンジニアリング装置１０は、変更された情報を格納するデータファイルが反映されるべき情報を格納したデータファイルとして特定する。そのため、現場制御システム１の制御装置１４に反映するまでにヒューマンエラーが発生するリスクを低減することができる。
【００８１】
また、エンジニアリングにより変更された情報が示す機能ブロックと入出力経路の不整合が特定される。機能ブロックの不整合として、機能ブロックの名称の重複又は入出力経路で指定される入出力結合先である機能ブロックの種別の不適格が判定され、機能ブロック間の入出力経路の不整合として、入出力経路で指定される入出力結合先である機能ブロックの重複又は欠落のうち少なくともいずれかを含む状態が判定される。そのため、制御システムが大規模化かつ複雑化しても不整合が判別できないためにエンジニアリングのやり直しを行う必要性が低くなるので、エンジニアリングに係る作業を効率化することができる。
【００８２】
また、エンジニアリングデータ判定部１０２４は、機能ブロックと入出力経路の不整合がないと判定するとき、エンジニアリングデータ処理部１０２２は、差分ファイルと変更されていない要素情報を格納するデータファイルとを統合し、制御装置１４に出力する。つまり、修正内容が現場制御システム１の制御装置１４に反映される前に機能ブロックと入出力経路の整合性が確認されるので、制御装置１４によるプラント１５の制御をより確実に行うことができる。
【００８３】
以上、図面を参照してこの発明の実施形態について説明してきたが、具体的な構成は上述のものに限られることはなく、この発明の要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。
【符号の説明】
【００８４】
Ｓ１…エンジニアリングシステム、１…現場制御システム、２…複製制御システム、１０…エンジニアリング装置、１２…操作監視装置、１４（１４Ａ、１４Ｂ）…制御装置、１５（１５Ａ、１５Ｂ）…プラント、１６（１６Ａ、１６Ｂ）…センサ、１８（１８Ａ、１８Ｂ）…アクチュエータ、２０…エンジニアリング装置、２２…操作監視装置、２４（２４Ａ、２４Ｂ）…制御装置、１０２…制御部、１０４…記憶部、１０６…操作表示部、１０８…入出力通信部、１４２…フィールド機器側入出力部、１４４…演算処理部、１４６…操作監視装置側入出力部、１０２２…エンジニアリングデータ処理部、１０２４…エンジニアリングデータ判定部
【図１】
2018132817.tif 000003
【図２】
2018132817.tif 000004
【図３】
2018132817.tif 000005
【図４】
2018132817.tif 000006
【図５】
2018132817.tif 000007
【図６】
2018132817.tif 000008
【図７】
2018132817.tif 000009