(57)【要約】【課題】二つの制御演算ロジックを自動で照合できる装置を得るものである。【解決手段】制御演算ロジック３１ａ、３１ｂをコンパイルした制御演算ロジックデータ３２ａ、３２ｂから命令と入力信号と出力信号とパラメータを抽出して演算順にテキストフォーマットのファイル３３ａ、３３ｂにして出力する保守ツール３ａ、３ｂと、同じフォーマットのテキストファイル３３ａ、３３ｂを比較して照合する照合ツール５を備えることで、自動照合を可能とする。【選択図】図１
2015156068.tif 000002
【特許請求の範囲】
【請求項１】
監視制御システムにおける制御装置上で動作する制御演算ロジックを作成してコンパイルし、このコンパイルされた制御演算ロジックデータから命令と入力信号と出力信号とパラメータを抽出して演算順にテキストフォーマットに変換したファイルを出力する少なくとも２つの保守ツールと、前記保守ツールから出力された２つの前記テキストフォーマットのファイルを比較して照合する照合ツールとを備えたプログラム照合装置。
【請求項２】
前記２つの保守ツールは、制御演算ロジックがそれぞれ異なるプログラミング言語で作成され、前記制御演算ロジックをコンパイルした制御演算ロジックデータからテキストフォーマットのファイルに変換する際に同一フォーマットで出力するようにした請求項１に記載のプログラム照合装置。
【請求項３】
監視制御システムにおける制御装置上で動作する制御演算ロジックを作成してコンパイルし、このコンパイルされた制御演算ロジックデータから命令と入力信号と出力信号とパラメータを抽出して演算順にテキストフォーマットに変換したファイルを出力する第１の保守ツールと、制御装置上の制御演算ロジックデータをアップロードし、このアップロードされた制御演算ロジックデータから命令と入力信号と出力信号とパラメータを抽出して演算順にテキストフォーマットに変換したファイルを出力する第２の保守ツールと、前記第１の保守ツールと前記第２の保守ツールから出力された２つの前記テキストフォーマットのファイルを比較して照合する照合ツールとを備えたプログラム照合装置。
【請求項４】
前記照合ツールで照合した結果に不一致があった場合に、両保守ツールの制御演算ロジックに該当箇所をマーキングすることを特徴とする請求項１から請求項３のいずれか１項に記載のプログラム照合装置。
【請求項５】
前記照合ツールで照合した結果に不一致があった場合に、一方の制御ロジックに合わせてもう一方の制御演算ロジックを自動修正することを特徴とする請求項１から請求項３のいずれか１項に記載のプログラム照合装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、監視制御システムにおける制御装置上で動作する制御演算ロジックデータ（以下、単にロジックデータと称す場合がある）について、二つの制御演算ロジック（以下、単に制御ロジックと称す場合がある）を照合するためのプログラム照合装置に関するものである。
【背景技術】
【０００２】
従来は、異なるプログラミング言語や異なるエンジニアリングツールで作成した制御ロジックを照合する場合、人間が制御ロジックの意味を理解して目視で確認したり、ロジックデータを制御装置にダウンロードして動作の差異を確認したりしている。
【０００３】
図８の例では、パソコン１上に搭載された保守ツール３ａで作成した制御ロジックと保守ツール３ｂで作成した制御ロジックを照合する場合、制御ロジック３１ａと制御ロジック３１ｂを目視で照合するか、制御ロジック３１ａをコンパイル（プログラムのソースコードをコンピュータ上で実現可能なオブジェクトコードに変換すること）したロジックデータ３２ａを制御ネットワーク４ａで接続された制御装置２ａにダウンロードし、同様に制御ロジック３１ｂをコンパイルしたロジックデータ３２ｂを制御ネットワーク４ｂで接続された制御装置２ｂにダウンロードして、制御装置２ａ上で動作するロジックデータ３４ａと制御装置２ｂ上で動作するロジックデータ３４ｂの差異を確認している。
【０００４】
また、二つのシーケンスプログラムを照合する方法として、最初に入力したオリジナルのシーケンスプログラムと変更が加えられたシーケンスプログラムとからそれぞれ同一のブロックを順次抽出し、抽出したそれぞれのブロックを論理式で表したときの論理式が同一であればそれら両ブロックは一致していると判断し、同一でなければ不一致であると判断するようにしたものが知られている（特許文献１参照）。
【０００５】
また、二つのプログラムを照合した結果、不一致部分をプログラム修正部分として表示器に可視出力することも知られている（特許文献２、３参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平４−２０５３１２号公報
【特許文献２】特開平６−６７９２５号公報
【特許文献３】特開平９−２３０９１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
従来は、異なる保守ツールで作成した制御ロジックを照合する場合、制御ロジックを目視で確認したり、ロジックデータを制御装置にダウンロードして動作の差異を確認したりしている。そのため、制御ロジックを全て目視確認するか、制御装置上で動作させる必要があり、手間がかかり、ヒューマンエラーも発生しやすいという問題があった。
【０００８】
また、特許文献１のように、照合する２つのシーケンスプログラムからそれぞれ同一のブロックを順次抽出し、抽出したそれぞれのブロックを論理式で表したときの論理式が同一であるかどうかを判断するものでは、コンパイル後のロジックデータは照合できず、また、異なるプログラミング言語で作成されたロジックには対応できない。 さらに制御装置上のデータとの照合ができないなど、照合できるシーケンスプログラムが限られてしま
うという問題点があった。
【０００９】
この発明は、上記のような課題を解決するためになされたものであり、二つの制御ロジックの照合を目視確認や制御装置上での動作確認を不要として、自動で照合できる装置を得ることを目的とするものである。
【課題を解決するための手段】
【００１０】
この発明に係るプログラム照合装置は、監視制御システムにおける制御装置上で動作する制御演算ロジックを作成してコンパイルし、このコンパイルされた制御演算ロジックデータから命令と入力信号と出力信号とパラメータを抽出して演算順にテキストフォーマットに変換したファイルを出力する少なくとも２つの保守ツールと、保守ツールから出力された２つのテキストフォーマットのファイルを比較して照合する照合ツールとを備えたものである。
【００１１】
また、この発明に係るプログラム照合装置は、監視制御システムにおける制御装置上で動作する制御演算ロジックを作成してコンパイルし、このコンパイルされた制御演算ロジックデータから命令と入力信号と出力信号とパラメータを抽出して演算順にテキストフォーマットに変換したファイルを出力する第１の保守ツールと、制御装置上の制御演算ロジックデータをアップロードし、このアップロードされた制御演算ロジックデータから命令と入力信号と出力信号とパラメータを抽出して演算順にテキストフォーマットに変換したファイルを出力する第２の保守ツールと、第１の保守ツールと第２の保守ツールから出力された２つのテキストフォーマットのファイルを比較して照合する照合ツールとを備えたものである。
【発明の効果】
【００１２】
この発明によれば、制御装置に転送する制御演算ロジックデータから、命令と入力信号と出力信号とパラメータを抽出し、演算順にテキストフォーマットのファイルで出力したものをツールで自動照合するようにしているから、制御ロジックを目視で確認したり、ロジックデータを制御装置にダウンロードして動作の差異を確認する作業が不必要となり、作業コストや時間、およびヒューマンエラーを削減できる。
【図面の簡単な説明】
【００１３】
【図１】この発明の実施の形態１のプログラム照合装置を示す構成図である。
【図２】この発明のプログラム照合装置で使用されるテキストフォーマットのファイルの一例を示す図である。
【図３】この発明のプログラム照合装置で使用される照合ツールのフロー図である。
【図４】この発明の実施の形態２のプログラム照合装置を示す構成図である。
【図５】この発明の実施の形態３のプログラム照合装置を示す構成図である。
【図６】この発明の実施の形態４のプログラム照合装置を示す構成図である。
【図７】この発明の実施の形態５のプログラム照合装置を示す構成図である。
【図８】保守ツールから制御装置に制御ロジックをダウンロードする経路を示す構成図である。
【発明を実施するための形態】
【００１４】
実施の形態１．
以下、この発明の実施の形態１に係るプログラム照合装置を図１から図３に基づいて説明する。
図１はプログラム照合装置の構成図を示し、パソコン１には、２つの保守ツール３ａ、３ｂ及び照合ツール５が搭載されている。
保守ツール３ａは、監視制御システムにおける制御装置（図８の２ａ）上で動作する制御演算ロジック３１ａを所定のプログラミング言語で作成する機能と、制御演算ロジック３１ａをコンパイラによりコンパイルして制御演算ロジックデータ３２ａを作成する機能と、コンパイルされた制御演算ロジックデータ３２ａから命令と入力信号と出力信号とパラメータを抽出して、演算順にテキストフォーマットに変換したファイル（制御ロジックテキストと称する）３３ａを作成する機能とを有している。
【００１５】
保守ツール３ｂは、保守ツール３ａと同様に、監視制御システムにおける制御装置（図８の２ｂ）上で動作する制御演算ロジック３１ｂを保守ツール３ａと同じプログラミング言語で作成する機能と、制御演算ロジック３１ｂをコンパイラによりコンパイルして制御演算ロジックデータ３２ｂを作成する機能と、コンパイルされた制御演算ロジックデータ３２ｂから命令と入力信号と出力信号とパラメータを抽出して、演算順にテキストフォーマットに変換したファイル（制御ロジックテキストと称する）３３ｂを作成する機能とを有している。
【００１６】
照合ツール５は、２つの保守ツール３ａ、３ｂからそれぞれ出力された２つのテキストフォーマットのファイル（制御ロジックテキスト）３３ａ、３３ｂを比較して自動的に照合することにより、それぞれの保守ツール３ａ、３ｂで作成された制御演算ロジック３１ａ、３１ｂが一致しているかどうかを判断する。なお、以下の説明において、各構成の添え字ａ、ｂは総称する場合は省略する。
【００１７】
次にこの発明の実施の形態１に係るプログラム照合装置の動作を、図２および図３に基づいて説明する。
図２（ａ）は、保守ツール３ａで作成した制御ロジック３１ａをコンパイルしたロジックデータ３２ａから、命令と入力信号と出力信号とパラメータを抽出して演算順にテキストフォーマットでファイル（制御ロジックテキスト）３３ａを出力したものを示す。
【００１８】
同様に、図２（ｂ）は、保守ツール３ｂで作成した制御ロジック３１ｂをコンパイルしたロジックデータ３２ｂから、命令と入力信号と出力信号とパラメータを抽出して演算順にテキストフォーマットでファイル（制御ロジックテキスト）３３ｂを出力したものを示す。
このように制御ロジックテキスト３３ａ、３３ｂは、演算順に命令と入力信号と出力信号とパラメータが羅列されたもので、２つの制御ロジック３１ａ、３１ｂが一致している場合は、両者は全く同じものとなる。図２は２つの制御ロジック３１ａ、３１ｂが不一致の場合を示しており、ｎ番目では命令が、ｎ＋１番目ではパラメータが、ｎ＋２番目では入力信号と出力信号が不一致となっている。
【００１９】
照合ツール５は、保守ツール３ａから出力された制御ロジックテキスト３３ａと保守ツール３ｂから出力された制御ロジックテキスト３３ｂを照合する。
照合ツール５にて差異を抽出するのに使用するアルゴリズムは、一般にＯ（ＮＤ）アルゴリズムと呼ばれる差異が最小になるように変更点を抽出するアルゴリズムを用い、その照合ツール５の具体的なフロー図を図３に示す。
【００２０】
図３において、照合が開始されると、ステップＳ１では、命令をキーにして２つの制御ロジックテキスト３３ａ、３３ｂの差異を抽出し、同じ命令毎に入力信号と出力信号とパラメータを整列させる。ステップＳ２では、整列した同じ命令内で、入力信号、出力信号、パラメータと順番にその差異を抽出する。こうして２つの制御ロジックテキスト３３ａ、３３ｂが一致しているか不一致であるかを判断して照合が完了する。
【００２１】
以上により、制御ロジックを目視で確認したり、ロジックデータを制御装置にダウンロードして動作の差異を確認する作業を実施することなく、制御ロジックテキストを照合ツールで比較するだけで、２つの制御ロジックを照合することができる。よって、作業コストや時間、およびヒューマンエラーを削減できる。
【００２２】
実施の形態２．
次に、この発明の実施の形態２に係るプログラム照合装置を図４に基づいて説明する。
実施の形態１では、同じプログラミング言語で作成された制御ロジックを照合する場合について述べたが、実施の形態２では、図４に示すように、保守ツール３ａで作成した制御ロジック３１ａと保守ツール３ｂで作成した制御ロジック３１ｂが異なるプログラミング言語で作成されている。その他の構成は実施の形態１の図１と同じに付き、同じ構成または相当部分には同じ符号をして説明を省略する。
【００２３】
実施の形態２では、制御ロジック３１ａはプログラミング言語Ａで、制御ロジック３１ｂはプログラミング言語Ｂで作成されているため、制御ロジック３１ａをコンパイルしてロジックデータ３２ａを作成する場合と、制御ロジック３１ｂをコンパイルしてロジックデータ３２ｂを作成する場合とでは、コンパイルする場合の互いのコンパイルラは異なるが、コンパイル後のデータは同じテキストフォーマットのファイル（制御ロジックテキスト）３３ａ、３３ｂに変換している。
【００２４】
この実施の形態２でも、実施の形態１と同様に、保守ツール３ａで作成した制御ロジック３１ａをコンパイルしたロジックデータ３２ａから命令と入力信号と出力信号とパラメータを抽出して演算順に出力した制御ロジックテキスト３３ａと、保守ツール３ｂで作成した制御ロジック３１ｂをコンパイルしたロジックデータ３２ｂから命令と入力信号と出力信号とパラメータを抽出して演算順に出力した制御ロジックテキスト３３ｂを、照合ツール５で照合する。照合の仕方は実施の形態１と同じである。
【００２５】
以上により、制御ロジックを目視で確認したり、ロジックデータを制御装置にダウンロードして動作の差異を確認する作業を実施することなく、制御ロジックテキストを照合ツールで比較することにより、異なるプログラミング言語で作成された二つの制御ロジックを照合することができる。
【００２６】
実施の形態３．
次に、この発明の実施の形態３に係るプログラム照合装置を図５に基づいて説明する。
実施の形態１及び実施の形態２では、パソコン１上のロジックデータ３２から制御ロジックテキスト３３を出力し照合する場合について述べたが、実施の形態３では、図５に示すように、パソコン１上のロジックデータ３２ｂと、パソコン１と制御ネットワーク４で接続された制御装置２上のロジックデータ３４ａを照合するようにしたものである。
【００２７】
図５において、保守ツール３ｂは、監視制御システムにおける制御装置上で動作する制御演算ロジック３１ｂを所定のプログラミング言語で作成する機能と、制御演算ロジック３１ｂをコンパイラによりコンパイルして制御演算ロジックデータ３２ｂを作成する機能と、コンパイルされた制御演算ロジックデータ３２ｂから命令と入力信号と出力信号とパラメータを抽出して、演算順にテキストフォーマットに変換したファイル（制御ロジックテキスト）３３ｂを作成する機能とを有している。
【００２８】
保守ツール３ａは、保守ツール３ａによって監視制御システムにおける制御装置２上のロジックデータ３４ａを制御ネットワーク４を介してアップロードし、アップロードしたロジックデータ３４ａをテキストフォーマットに変換して、命令と入力信号と出力信号とパラメータを抽出し、演算順に出力した制御ロジックテキスト３３ａを作成する機能を有している。
【００２９】
照合ツール５は、２つの保守ツール３ａ、３ｂからそれぞれ出力された２つのテキストフォーマットのファイル（制御ロジックテキスト）３３ａ、３３ｂを比較して自動的に照合することにより、保守ツール３ｂで作成されたロジックデータ３２ｂと制御装置２上のロジックデータ３４ａが一致しているかどうかを判断して、互いの制御ロジックを照合する。なお、図５において、実施の形態１の図１と同じ構成または相当部分には同じ符号をしている。
【００３０】
図５の構成において、実施の形態１と同様に保守ツール３ｂで作成された制御ロジック３１ｂをコンパイルしたロジックデータ３２ｂから命令と入力信号と出力信号とパラメータを抽出して演算順に出力された制御ロジックテキスト３３ｂと、保守ツール３ａによって制御ネットワーク４で接続された制御装置２上のロジックデータ３４ａをアップロードして命令と入力信号と出力信号とパラメータを抽出して演算順に出力した制御ロジックテキスト３３ａを、照合ツール５で照合する。照合の仕方は実施の形態１と同じである。
【００３１】
以上により、制御ロジックを目視で確認したり、ロジックデータを制御装置にダウンロードして動作の差異を確認する作業を実施することなく、制御ロジックテキストを照合ツールで比較することにより、保守ツールで作成した制御ロジックと制御装置上のロジックデータを照合することができる。
【００３２】
実施の形態４．
次に、この発明の実施の形態４に係るプログラム照合装置を図６に基づいて説明する。
実施の形態１〜３では、二つの制御ロジックの照合について述べたが、実施の形態４では、図６に示すように、制御ロジックテキスト３３ａ、３３ｂの照合の結果、二つの制御ロジック３１ａ、３１ｂに不一致があった場合に、照合ツール５は制御ロジック３１ａ、３１ｂの該当箇所を自動でマーキングできるようにしたものである。その他の構成は実施の形態１の図１と同じに付き、同じ構成または相当部分には同じ符号をして説明を省略する。
【００３３】
図６の構成において、実施の形態１、２と同様に、パソコン１上の保守ツール３ａで作成された制御ロジック３１ａをコンパイルしたロジックデータ３２ａから命令と入力信号と出力信号とパラメータを抽出して、演算順に出力された制御ロジックテキスト３３ａと、保守ツール３ｂで作成された制御ロジック３１ｂをコンパイルしたロジックデータ３２ｂから命令と入力信号と出力信号とパラメータを抽出して、演算順に出力された制御ロジックテキスト３３ｂを、照合ツール５で照合し、検出した命令、入力信号、出力信号、パラメータ、及び演算順序の差異を保守ツール３ａで作成された制御ロジック３１ａと保守ツール３ｂで作成された制御ロジック３１ｂに反映し、該当箇所を自動でマーキングする。
【００３４】
制御ロジック３１ａ、３１ｂへのマーキングは、色を変えての表示などで行う。なお、二つの制御ロジック３１ａ、３１ｂは同じプログラミング言語で作成されていても、異なるプログラミング言語で作成されていてもよい。
以上により、照合した二つの制御ロジックに差異があった場合、該当箇所を視覚的に判別することができる。
【００３５】
実施の形態５．
次に、この発明の実施の形態５に係るプログラム照合装置を図７に基づいて説明する。実施の形態４では、照合した二つの制御ロジックの差異の自動マーキングについて述べたが、実施の形態５では、図７に示すように、制御ロジックテキスト３３ａ、３３ｂの照合の結果、二つの制御ロジック３１ａ、３１ｂに不一致があった場合に、一方の制御ロジックに合わせてもう一方の制御ロジックを自動修正し、二つの制御ロジックを同一制御ロジックとするようにしたものである。その他の構成は実施の形態１の図１と同じに付き、同じ構成または相当部分には同じ符号をして説明を省略する。
【００３６】
図７の構成において、実施の形態１、２と同様に、パソコン１上の保守ツール３ａで作成された制御ロジック３１ａをコンパイルしたロジックデータ３２ａから命令と入力信号と出力信号とパラメータを抽出して、演算順に出力された制御ロジックテキスト３３ａと、保守ツール３ｂで作成された制御ロジック３１ｂをコンパイルしたロジックデータ３２ｂから命令と入力信号と出力信号とパラメータを抽出して、演算順に出力された制御ロジックテキスト３３ｂを、照合ツール５で照合し、検出した命令、入力信号、出力信号、パラメータ、及び演算順序の差異を一方の制御ロジックに合わせて、もう一方の制御ロジックを自動修正する。
【００３７】
二つの制御ロジック３１ａ、３１ｂに差異があった場合、どちらの制御ロジックが正しいかの判断は、照合の結果、マーキング箇所などからユーザが判定し、ユーザはどちらか一方を選択すると装置が自動で修正する。
自動修正は、制御ロジックテキスト３３での差異のある箇所を修正することで実現できる。即ち、パラメータが異なる場合はパラメータを修正し、入力信号・出力信号が異なる場合は入力信号・出力信号を修正し、命令が異なる場合は命令を修正する。
【００３８】
以上により、照合した二つの制御ロジックに差異があった場合、手動で修正することなく、二つの制御ロジックを同一制御ロジックとすることができる。
なおこの発明は、その発明の範囲内において、各実施の形態を自由に組み合わせたり、各実施の形態を適宜、変形、省略することが可能である。
【符号の説明】
【００３９】
１：パソコン、２：制御装置、３ａ、３ｂ：保守ツール、４：制御ネットワーク、
５：照合ツール、  ３１ａ、３１ｂ：制御演算ロジック（制御ロジック）、
３２ａ、３２ｂ：制御演算ロジックデータ（ロジックデータ）、  
３３ａ、３３ｂ：テキストフォーマットに変換したファイル（制御ロジックテキスト）
３４ａ：制御装置上の制御演算ロジックデータ 
【図２】
2015156068.tif 000003
【図３】
2015156068.tif 000004
【図１】
2015156068.tif 000005
【図４】
2015156068.tif 000006
【図５】
2015156068.tif 000007
【図６】
2015156068.tif 000008
【図７】
2015156068.tif 000009
【図８】
2015156068.tif 000010