(57)【要約】【課題】  第１制御プログラムと第２制御プログラムとを比較するユーザーの作業を容易にする照合プログラムを提供する。  【解決手段】本発明に係る照合プログラムは、コンピュータに、第１処理命令に割り当てられる処理命令ＩＤと前記移行条件に割り当てられる移行条件ＩＤと前記リンク情報とを比較要素として、第１制御プログラムが有する単位ブロックである第１ブロックに含まれる比較要素と、第２制御プログラムが有する単位ブロックである第２ブロックに含まれる比較要素とを抽出する抽出手順（ステップＳ２０３）と、第１ブロックに含まれる比較要素と、第２ブロックに含まれる比較要素とが一致するか否かを判定する比較要素判定手順（Ｓ２０５）とを実行させることを特徴とする照合プログラム。【選択図】  図８
2006235999.tif 000002
【特許請求の範囲】
【請求項１】
第１処理命令、前記第１処理命令から第２処理命令に移行するための移行条件及び、前記第１処理命令と前記移行条件と前記第２処理命令とを対応付けるリンク情報を含む単位ブロックを有する第１制御プログラムと、前記単位ブロックを有する第２制御プログラムとを照合する照合プログラムであって、コンピュータに、
前記第１処理命令に割り当てられる処理命令ＩＤと前記移行条件に割り当てられる移行条件ＩＤと前記リンク情報とを比較要素として、前記第１制御プログラムが有する前記単位ブロックである第１ブロックに含まれる前記比較要素と、前記第２制御プログラムが有する前記単位ブロックである第２ブロックに含まれる前記比較要素とを抽出する抽出手順と、
前記第１ブロックに含まれる抽出された前記比較要素と、前記第２ブロックに含まれる抽出された前記比較要素とが一致するか否かを判定する比較要素判定手順とを実行させることを特徴とする照合プログラム。
【請求項２】
前記抽出手順は、前記第１処理命令の内容と、前記第１処理命令の種類と、前記移行条件の内容とを更に前記比較要素として抽出する手順を含むことを特徴とする請求項１に記載の照合プログラム。 
【請求項３】
前記比較要素には、前記比較要素の重要度に応じて重み付け値が対応付けられ、前記比較要素判定手順における判定結果及び前記重み付け値に基づいて、前記第１ブロックと前記第２ブロックとの一致度を判定するブロック判定手順を更に含むことを特徴とする請求項１または請求項２に記載の照合プログラム。
【請求項４】
前記比較要素判定手順における判定結果、又は、前記ブロック判定手順における判定結果を出力する出力手順を含むことを特徴とする請求項３に記載の照合プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、照合プログラムに関する。
【背景技術】
【０００２】
従来、機械を制御するための制御プログラムを記憶するプログラム・ロジック・コントローラ（Ｐｒｏｇｒａｍｍａｂｌｅ Ｌｏｇｉｃ Ｃｏｎｔｒｏｌｌｅｒ）（以下ＰＬＣ）が、広く知られている。また、制御プログラムの記述方式としては、機械の動作に対応して制御プログラムを記述可能なＳｅｑｕｅｎｔｉａｌ Ｆｕｎｃｔｉｏｎ Ｃｈａｒｔ(以下ＳＦＣ)方式が、広く普及している。尚、ＳＦＣ方式は、ＩＥＣ規格(ＩＥＣ６１１３１-３)、ＪＩＳ規格（ＪＩＳ Ｂ３５０３）に規定されている。ＳＦＣ方式で記述された制御プログラムは、複数の単位ブロックによって構成され、各単位ブロックは、処理命令、移行条件及び、処理命令と移行条件と次の処理命令とを対応付けるリンク情報を含んでいる。
【０００３】
ここで、機械のメンテナンス等で同じ動きをする設備について、異なる号機を調整する際には、制御プログラムの確認が必要となるが、異なる号機の制御プログラムを比較して確認するのは容易ではない。従って、一般的には各号機に記憶された制御プログラムについてメモリー等を介してコンピュータにコピーする。そして、コピーした各号機の制御プログラムをコンピュータで比較し、異なる部分があるときは書き換える手法がとられる。具体的には、ユーザーは、１号機に記憶された制御プログラム（以下、第１制御プログラム）と２号機に記憶されたプログラム（以下、第２制御プログラム）とを比較することで、書換えが正確に行われたか否かを確認する。また、第１制御プログラムと第２制御プログラムとの比較を容易にする照合プログラムも知られている。
【０００４】
この照合プログラムは、第１制御プログラムの単位ブロックと第２制御プログラムの単位ブロックとが完全に一致すれば「一致」と判定し、第１制御プログラムの単位ブロックと第２制御プログラムの単位ブロックとが少しでも異なれば「不一致」と判定する。また、照合プログラムは、判定後、どの単位ブロックが「不一致」と判定されたかを出力する。
【０００５】
一方、ＳＦＣ方式で記述された制御プログラムの進行状況を容易に把握するための方法として、制御プログラムの進行状況をＳＦＣによって出力する方法も提案されている（例えば、文献１）。この出力方法によれば、制御プログラムの進行状況に応じて機械等の動作を容易に確認することができる。
【特許文献１】特開平８-３１４５０９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上述したように、照合プログラムは、単位ブロックで一致または、不一致の判定を行うとともに、どのブロックが不一致と判定されたかを出力する。
【０００７】
しかしながら、上述した照合プログラムでは、単位ブロックがどのように不一致なのかが不明である。従ってユーザーは、不一致と判定された単位ブロックをもう一度見直さなければならない。
【０００８】
そこで、本発明は、上述の課題に鑑みてなされたものであり、第１制御プログラムと第２制御プログラムとを比較するユーザーの作業を容易にする照合プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本発明に係る照合プログラムの特徴は、第１処理命令（処理命令Ｆ１０）、前記第１処理命令から第２処理命令に移行するための移行条件（移行条件Ｆ２０）及び、前記第１処理命令と前記移行条件と前記第２処理命令とを対応付けるリンク情報（リンク情報Ｆ３０）を含む単位ブロック（単位ブロックＦ１）を有する第１制御プログラム（第１制御プログラム４００Ｐ）と前記単位ブロックを有する第２制御プログラム（第２制御プログラム４１０Ｐ）とを照合する照合プログラムであって、コンピュータ（コンピュータ２００）に、前記第１処理命令に割り当てられる処理命令ＩＤ（処理命令ＩＤ Ｆ１１）と前記移行条件に割り当てられる移行条件ＩＤ（移行条件ＩＤ Ｆ２１）と前記リンク情報とを比較要素（比較要素Ｆ３）として、前記第１制御プログラムが有する前記単位ブロックである第１ブロックに含まれる前記比較要素と、前記第２制御プログラムが有する前記単位ブロックである第２ブロックに含まれる前記比較要素とを抽出する抽出手順（ステップＳ２０３）と、前記第１ブロックに含まれる前記比較要素と、前記第２ブロックに含まれる前記比較要素とが一致するか否かを判定する比較要素判定手順（ステップＳ２０５）とを実行させることを要旨とする。
【００１０】
かかる発明によれば、照合プログラムは、各単位ブロックについて比較要素毎に一致判定もしくは不一致判定をすることにより、比較要素毎の判定情報をユーザーに提供することができる。すなわち、ユーザーは、単位ブロック毎に一致もしくは不一致の判定をするのみの照合よりも詳細な情報を知ることができる。従って、照合プログラムは、第１制御プログラムと第２制御プログラムとを比較するユーザーの作業を容易にすることができる。
【００１１】
また、かかる発明によれば、照合プログラムは、処理命令ＩＤと移行条件ＩＤとリンク情報とを比較要素とすることにより、制御プログラムの一致もしくは不一致に大きな影響を与える情報を比較要素として抽出することができる。照合プログラムは、制御プログラムの一致もしくは不一致に大きな影響を与える情報を比較要素として用いることにより、ユーザーに効率的にプログラムの内容を把握させることができる。従って、照合プログラムは、第１制御プログラムと第２制御プログラムとを比較するユーザーの作業を容易にすることができる。
【００１２】
また、本発明の特徴に係る照合プログラムにおける抽出手順は、第１処理命令の内容（命令内容Ｆ１５）と、前記第１処理命令の種類（命令内容種類Ｆ１３）と、移行条件の内容（移行条件内容Ｆ２３）とを更に比較要素として抽出する手順（ステップＳ２０３）を実行させてもよい。
【００１３】
かかる発明によれば、照合プログラムは、処理命令の内容と、命令の種類と、移行条件情報の内容とを更に比較要素とすることにより、更に詳細な情報をユーザーに提供することができる。従って、照合プログラムは、第１制御プログラムと第２制御プログラムとを比較するユーザーの作業を更に容易にすることができる。
【００１４】
また、本発明の特徴に係る照合プログラムにおける比較要素には、前記比較要素の重要度に応じて重み付け値（重み付け値Ｆ５）が対応付けられ、前記比較要素判定手順における判定結果及び重み付け値に基づいて、前記第１ブロックと前記第２ブロックとの一致度（ブロック一致度Ｆ７）を判定するブロック判定手順（ステップＳ２０９）を更に含んでもよい。
【００１５】
かかる発明によれば、照合プログラムは、比較要素判定素手順における判定結果及び重み付け値に応じて単位ブロック毎に一致度を算出することにより、ブロック毎に一致度を判定することができる。従って、照合プログラムは、第１制御プログラムと第２制御プログラムとを比較するユーザーの作業を更に容易にすることができる。（例えば、第１制御プログラムに処理命令と、移行条件とを１ブロックだけ挿入することで、処理命令ＩＤ、移行条件ＩＤがずれる場合、処理命令ＩＤ、移行条件ＩＤの重み付け値を低くして、照合することができる。）
また、照合プログラムは、ブロック一致度に応じて段階を設けることで、段階的に判定することにより、ユーザーに単位ブロックの構成が大きく変わったところ（一致度が低いところ）から見直しすべきブロックに関する情報を提供することができる。従って、照合プログラムは、第１制御プログラムと第２制御プログラムとを比較するユーザーの作業を更に容易にすることができる。
【００１６】
また、本発明の特徴に係る照合プログラムにおける比較要素判定手順における判定結果、又は、ブロック判定手順における判定結果を出力する出力手順（ステップＳ２１３）を実行させてもよい。
【００１７】
かかる発明によれば、照合プログラムは、単位ブロックで比較要素毎に一致するか否かを出力することにより、ユーザーに単位ブロック毎に一致もしくは不一致の判定をするのみの照合よりも詳細な情報を提供することができる。従って、照合プログラムは、第１制御プログラムと第２制御プログラムとを比較するユーザーの作業を容易にすることができる。
【００１８】
また、照合プログラムは、ブロック判定手順における一致度を判定結果として出力することにより、ユーザーに比較要素毎の全ての不一致情報を提供するのではなく、制御プログラムに大きな影響を与える比較要素についてのブロック一致度の情報を提供することができる。
【００１９】
また、照合プログラムは、ブロックの一致度を段階的に分けた結果を出力することにより、ユーザーがブロックの構成が大きく変わったところ（一致度が低いところ）をすぐに把握できる情報を提供することができる。従って、照合プログラムは、第１制御プログラムと第２制御プログラムとを比較するユーザーの作業を更に容易にすることができる。
【発明の効果】
【００２０】
本発明によれば、第１制御プログラムと第２制御プログラムとを比較するユーザーの作業を容易にする照合プログラムを提供することができる。
【発明を実施するための最良の形態】
【００２１】
次に、図面を参照して、本発明の実施の形態を説明する。尚、以下の図面の記載において、同一または類似の部分には、同一又は類似の符号を付している。ただし、図面は模式的なものであり、各寸法の比率などは現実のものとは異なることを留意するべきである。
【００２２】
（システムの全体概略構成）
図１は、本実施形態に係る照合プログラムが用いられるシステムの全体概略構成図である。本実施形態に係るシステムは、照合プログラムを記憶するコンピュータ２００と、機械１号機６００を制御する第１制御プログラム（以下第１制御プログラム４００Ｐ）を記憶するＰＬＣ１号機４００と、第１制御プログラム４００Ｐで制御される機械１号機６００と、機械２号機６１０を制御する第２制御プログラム（以下第２制御プログラム４１０Ｐ）を記憶するＰＬＣ２号機４１０と、第２制御プログラム４１０Ｐで制御される機械２号機６１０とによって構成される。
【００２３】
第１制御プログラム４００Ｐ及び第２制御プログラム４１０Ｐの記述方式は、各制御機器の記号をその動作の順序に従って配列したラダー方式で、ＩＥＣ６１１３１−３及びＪＩＳ Ｂ３５０３に規格されている。
【００２４】
（制御プログラムの構成）
図２は、ラダー方式で記述される制御プログラムの一例である。
【００２５】
ＳＦＣ方式で記述された制御プログラムは、処理命令Ｆ１０と、移行条件Ｆ２０と、処理命令と移行条件とを関連付けるリンク情報Ｆ３０とにより構成されている。以下、各構成情報について説明する。
【００２６】
（１） 処理命令Ｆ１０
処理命令Ｆ１０は、命令内容Ｆ１５（例えば、Ａｃｔｉｏｎ０）と、命令内容種類Ｆ1３（例えば、Ｎ）と、命令に割り当てられる処理命令ＩＤ Ｆ１１とで構成される。
【００２７】
命令内容Ｆ１５は、例えばコンベアを動かすモータを作動、タイマーを１秒作動、コンベアを動かすモータを停止などの情報である。
【００２８】
命令内容種類Ｆ１３は、命令の内容がどのような種類に属するのか示す情報である。例えば非保持（Ｎ）、リセット（Ｒ）、セット（Ｓ）、限時（Ｌ）、遅延（Ｄ）、パルス（Ｐ）、保持後遅延（ＳＤ）、遅延後保持（ＤＳ）、保持後限時（ＳＬ）などがある。
【００２９】
処理命令ＩＤ Ｆ１１は、命令に応じて適宜割り当てられる識別子である。例えば、Ｓ０、Ｓ１、Ｓ２のように表現される。
【００３０】
（２） 移行条件Ｆ２０
移行条件Ｆ２０は、移行条件内容Ｆ２３（例えば、Ｃｏｎｄｉｔｉｏｎ０）と、移行条件に割り当てられる移行条件ＩＤ Ｆ２１とで構成される。
【００３１】
移行条件内容Ｆ２３は、処理命令Ｆ１０に移る前の条件を示す情報で、例えば、「スイッチ１がＯＮで尚且、スイッチ２もＯＮ。」などの情報である。この条件を満たすと次の処理命令Ｆ１０が実行され、直前の処理命令Ｆ１０が停止される。
【００３２】
移行条件ＩＤ Ｆ２１は、移行条件に応じて適宜割り当てられる識別子である。例えば、ＴＮ０、ＴＮ１、ＴＮ２のように表現される。
【００３３】
（３） リンク情報Ｆ３０
リンク情報Ｆ３０は、処理命令Ｆ１０と移行条件Ｆ２０を関連付ける情報で、第１処理命令（例えば、Ｓ０に関連する処理命令）、第２処理命令（例えばＳ１に関連する処理命令）及び第１処理命令から第２処理命令に移行するための移行条件（例えば、ＴＮ０）を対応づける情報である。リンク情報Ｆ３０の記述は、例えば、Ｓ０−Ｓ１,ＴＮ０のように表現される。
【００３４】
このリンク情報を用いることにより、ユーザーはＳＦＣに並列分岐や選択分岐を挿入することができる。並列分岐は、共通の第１処理命令と移行条件とを有し、第２処理命令を変えることにより表現される。選択分岐は、共通の第１処理命令を有し、第２処理命令と移行条件とを変えることにより表現される。例えば、図２において、並列分岐は、Ｓ０−Ｓ１,ＴＮ０とＳ０−Ｓ２,ＴＮ０という情報を記載することにより表現される。具体的には、図２において、制御プログラムは、Ｓ０に関連する命令内容Ａｃｔｉｏｎ０を実行し、ＴＮ０に関連する移行条件Ｃｏｎｄｉｔｉｏｎ０を充たすと、Ｓ１に関連する命令内容Ａｃｔｉｏｎ1と、Ｓ２に関連する命令内容Ａｃｔｉｏｎ２とを同時に実行することにより、並列分岐を実行する。
【００３５】
尚、本実施形態に係る制御プログラムは、図２のように処理命令と、移行条件と、処理命令と移行条件とを関連付けるリンク情報とを含む制御プログラムであればＳＦＣ方式で記述された制御プログラムである必要がないのは勿論である。
【００３６】
図３は、図２のＳＦＣ方式で記述された制御プログラムをＳＦＣで示した一例である。
【００３７】
ＳＦＣは、複数の単位ブロックＦ１で構成されている。具体的には、ＳＦＣは、第１処理命令（例えば、Ｓ０に関連する処理命令Ｆ１０）、第２処理命令（例えば、Ｓ１に関連する処理命令Ｆ１０）及び、第１処理命令から第２処理命令に移行するための移行条件（例えば、ＴＮ０に関連する移行条件Ｆ２０）を単位とする。  
（コンピュータの論理ブロック構成）
図４は、上述したコンピュータ２００の論理ブロック構成図である。尚、本実施形態に係る照合プログラムは、コンピュータ２００で実行される。以下本発明との関連がある部分について主に説明する。従って、図４に示すコンピュータ２００は、当該コンピュータの機能を実現する上で必須な、図示しない或いは説明を省略した論理ブロック（電源部など）を備える場合がある。
【００３８】
コンピュータ２００は、取込部２０１と、編集用プログラム記憶部２０３と、抽出部２０５と、判定部２０７と、出力部２０９と、重み付け記憶部２１１と、判定基準記憶部２１３とを備える。
【００３９】
取込部２０１は、ＰＬＣ１号機４００と接続してＰＬＣ１号機４００に記憶された第１制御プログラム４００Ｐを取り込む。同様にして、取込部２０１は、ＰＬＣ２号機４１０と接続してＰＬＣ２号機４１０に記憶された第２制御プログラム４１０Ｐを取り込む。
【００４０】
具体的には、取込部２０１は、ＰＬＣ１号機４００で第１制御プログラム４００Ｐが記録された外部記録媒体をコンピュータ２００の取込部２０１に接続して第１制御プログラム４００Ｐを取り込む。
【００４１】
同様にして、取込部２０１は、ＰＬＣ２号機４１０で第２制御プログラム４１０Ｐが記録された外部記録媒体をコンピュータ２００の取込部２０１に接続して第２制御プログラム４１０Ｐを取り込む。
【００４２】
なお、取込部２０１は、有線ＬＡＮインターフェイスによってＰＬＣ１号機４００と接続し、制御プログラムを取り込んでもよい。取り込まれた制御プログラムは、それぞれ、第１制御プログラム４００Ｐ及び第２制御プログラム４１０Ｐとして、編集用プログラム記憶部２０３に記憶される。
【００４３】
編集用プログラム記憶部２０３は、第１制御プログラム４００Ｐと第２制御プログラム４１０Ｐとを記憶する。具体的には、編集用プログラム記憶部２０３は、ＲＡＭ等の内部記憶装置を用いても良く、ハードディスクやフレキシブルディスク等の外部記録媒体を用いても良い。
【００４４】
抽出部２０５は、第１制御プログラム４００Ｐが有する単位ブロックＦ１と、第２制御プログラム４１０Ｐが有する単位ブロックＦ１とを比較要素毎に抽出する。（ここで、第１制御プログラム４００Ｐが有する単位ブロックＦ１を以下第１ブロックと呼び、第２制御プログラム４１０Ｐが有する単位ブロックＦ１を以下第２ブロックと呼ぶ。）比較要素Ｆ３は、制御プログラムを構成する上で重要な処理命令Ｆ１０と、移行条件Ｆ２０と、リンク情報Ｆ３０とを基に構成されている。従って、比較要素Ｆ３は、ブロックが一致するか否かを判定する上で、特に重要な情報である。本実施形態では、比較要素Ｆ３は、単位ブロックに含まれる処理命令ＩＤ Ｆ１１と、命令内容種類Ｆ１３と、命令内容Ｆ１５と、移行条件ＩＤ Ｆ２１と、移行条件内容Ｆ２３と、リンク情報Ｆ３０等とである。
【００４５】
判定部２０７は、第１ブロックに含まれる比較要素Ｆ３と、第２ブロックに含まれる比較要素Ｆ３とが一致するか否かを比較要素Ｆ３毎に判定する（比較要素判定）。具体的には、判定部２０７は、第１ブロックと第２ブロックとに含まれる処理命令ＩＤ Ｆ１１と、命令内容種類Ｆ１３と、命令内容Ｆ１５と、移行条件ＩＤ Ｆ２１と、移行条件内容Ｆ２３と、リンク情報Ｆ３０とが、それぞれ一致するか否かを判定する。
【００４６】
また、判定部２０７は、第１ブロックと、第２ブロックとのブロック一致度Ｆ７（後述）を算出する。このブロック一致度Ｆ７は、重み付けテーブルＤ２１１（後述）の比較要素Ｆ３の重み付け値Ｆ５（後述）を利用して算出される。具体的には、判定部２０７は、前述した比較要素判定に基づいて、一致した比較要素Ｆ３の重み付け値Ｆ５を加算することによって、ブロック一致度Ｆ７を算出する。
【００４７】
判定部２０７は、ブロック一致度Ｆ７と一致度判定テーブルＤ２１３とに基づいて、単位ブロックＦ１について一致か否かを判定する（ブロック判定）。ブロック判定で不一致の判定がされた場合、判定部２０７は、第２プログラムに含まれる全ての第２ブロックと第１ブロックとが比較されたか否かの判定をする。全ての第２ブロックと第1ブロックとが比較され、全ての第２ブロックで不一致と判定された場合、判定部２０７は、不一致の判定をする。一方、全ての第２ブロックと第１ブロックとが比較されていない場合、判定部２０７は、全ての第２ブロックが比較されていないという情報を抽出部２０５へ送信する。
【００４８】
尚、判定部２０７は、一致度判定テーブルＤ２１３に基づいて一致判定を「完全一致」判定と、「相違あり一致」判定とに分けてもよい。また、判定部２０７は、一致度判定テーブルＤ２１３に基づいて不一致判定を「一致可能性あり」判定と、「不一致」判定とに分けてもよい。
【００４９】
出力部２０９は、上述した判定部２０７の判定結果を出力する。具体的には、出力部２０９は、比較要素Ｆ３毎の判定結果若しくは、ブロック一致度Ｆ７と一致度判定テーブルＤ２１３とに基づいて、単位ブロックＦ１について一致か否かの判定結果を出力する。
【００５０】
重み付け記憶部２１１は、後述する重み付けテーブルＤ２１１（図５参照）を記憶する。具体的には、重み付け記憶部２１１は、ＲＡＭ等の内部記憶装置を用いても良く、ハードディスクやフレキシブルディスク等の外部記録媒体を用いても良い。
【００５１】
判定基準記憶部２１３は、後述する一致度判定テーブルＤ２１３（図６参照）を記憶する。具体的には、判定基準記憶部２１３には、ＲＡＭ等の内部記憶装置を用いても良く、ハードディスクやフレキシブルディスク等の外部記録媒体を用いても良い。
【００５２】
次に上述した重み付け記憶部２１１に記憶される重み付けテーブルＤ２１１について説明する。図５は、重み付けテーブルＤ２１１の内容を示している。重み付けテーブルＤ２１１は、比較要素Ｆ３と重み付け値Ｆ５とを対応づけたテーブルである。重み付けテーブルＤ２１１は、比較要素Ｆ３毎に重み付け値Ｆ５を有する。重み付け値Ｆ５は、比較要素Ｆ３が関係する情報に応じて、処理命令と、移行条件とに分けられる。また、重み付け値Ｆ５は、予めユーザーにより設定されている値である。尚、重み付け値Ｆ５は、処理命令と移行条件とに分けられなくてもよい。また、重み付け値Ｆ５は、比較要素Ｆ３に応じて細かく分類されてもよい。
【００５３】
次に、上述した判定基準記憶部２１３に記憶される一致度判定テーブルＤ２１３について説明する。図６は、一致度判定テーブルＤ２１３の内容を示している。一致度判定テーブルＤ２１３は、ブロック一致度Ｆ７と、照合判定とを対応づけたテーブルである。ブロック一致度Ｆ７は、比較要素Ｆ３に応じて処理命令と移行条件とに分けられる。照合判定は、一致・不一致判定と、詳細判定とに分けられる。
【００５４】
一致・不一致判定は、一致判定もしくは不一致判定の二つである。具体的には、判定部２０７は、ブロック一致度が処理命令で６５点以上、かつ移行条件が２０点以上である場合に一致判定をする。また、判定部２０７は、ブロック一致度が一致判定の条件を充たさない場合に不一致判定をする。
【００５５】
詳細判定は、「完全一致」と、「相違あり一致」と、「一致可能性あり」と、「不一致」とである。詳細判定の種類は、ブロック一致度Ｆ７に応じてブロック一致度Ｆ７が高い順に段階的に分別される。具体的には、判定部２０７は、処理命令が７０点、かつ移行条件が３０点である場合に「完全一致」判定をする。判定部２０７は、処理命令が６５点以上、かつ移行条件が２０点である場合に「相違あり一致」の判定をする。判定部２０７は、処理命令が５０点以上である場合に「一致可能性あり」の判定をする。判定部２０７は、処理命令が５０点未満である場合に「不一致」の判定をする。
【００５６】
尚、詳細判定をする際、判定部２０７は、ブロック一致度の基準値が高い詳細判定から順にブロック一致度の条件を充たすか否かの判定を行う。判定部２０７は、ブロック一致度が条件を充たした際に、そのブロック一致度の詳細判定とする。例えば、ブロック一致度が処理命令７０点、移行条件２５点である場合、判定部２０７は、始めに「完全一致」の条件を充たすか否かの判定をする。条件を充たさないため次に、判定部２０７は「相違あり一致」の条件を充たすか否かの判定をする。ここでブロック一致度Ｆ７が条件を充たすため、判定部２０７は、「相違あり一致」の判定をする。
【００５７】
尚、ブロック一致度Ｆ７は、予めユーザーにより設定されている値である。また、詳細判定は、この４段階に限られるものではなく、ユーザーの必要に応じて増減できるものである。
【００５８】
図７は、照合プログラムによって得られた判定結果を出力した一例の一部抜粋である。図７は、照合対照となる第１制御プログラム４００Ｐと第２制御プログラム４１０ＰとをＳＦＣで表示している。図７は、一致度判定テーブルＤ２１３を基に不一致と判定された単位ブロックの処理命令Ｆ１０と移行条件Ｆ２０とに網掛けしたものである。また、図７は、比較対照の制御プログラムを左右に表示することで、制御プログラムの構造の違いをすぐに確認できるようにしている。また、照合プログラムによって得られた判定結果は、網掛けの種類を図６の一致度判定テーブルＤ２１３の詳細判定別に段階的に分ける方法をとってもよい。尚、図７は、ＳＦＣで判定結果を出力したものであるが、第１ブロックと第２ブロックとの比較要素Ｆ３毎の判定結果か、若しくは、第１ブロックと第２ブロックとのブロック一致度Ｆ７を判定結果として出力すれば、他の形態でも構わない。
【００５９】
（照合プログラムの動作）
次に、図８を参照して、単位ブロックＦ１を有する第１制御プログラム４００Ｐと、単位ブロックＦ１を有する第２制御プログラム４１０Ｐとを照合する照合プログラムの動作フローについて説明する。
【００６０】
ここで、第１制御プログラム４００Ｐは、第１番目から第ｎ番目までの単位ブロックＦ１（第１ブロック）を有する。また、第２制御プログラム４１０Ｐは、第１番目から第ｍ番目までの単位ブロックＦ１（第２ブロック）を有する。
【００６１】
図８に示すように、ステップＳ２０１において、取込部２０１は、ＰＬＣ１号機４００で第１制御プログラム４００Ｐが記録された外部記録媒体より第１制御プログラム４００Ｐを取り込む。取り込まれた第１制御プログラム４００Ｐは、編集用プログラム記憶部２０３に第１制御プログラム４００Ｐとして記憶される。同様にして、取込部２０１は、ＰＬＣ２号機４１０で第２制御プログラム４１０Ｐが記録された外部記録媒体より第２制御プログラム４１０Ｐを取り込む。取り込まれた第２制御プログラム４１０Ｐは、編集用プログラム記憶部２０３に第２制御プログラム４１０Ｐとして記憶される。
【００６２】
ステップＳ２０３において、抽出部２０５は、第１制御プログラム４００Ｐの１つの単位ブロックＦ１（第１ブロック）と、第２制御プログラム４１０Ｐの１つの単位ブロックＦ１（第２ブロック）とを抽出する。（例えば、抽出部２０５は、始めに第１制御プログラム４００Ｐの第１番目の第１ブロックと、第２制御プログラム４１０Ｐの第１番目の第２ブロックとを抽出する。）次に、抽出部２０５は、第１ブロックに含まれる比較要素Ｆ３と、第２ブロックに含まれる比較要素Ｆ３とを抽出する。
【００６３】
ステップＳ２０５において、判定部２０７は、第１制御プログラム４００Ｐの単位ブロックＦ１（第１ブロック）に含まれる比較要素Ｆ３と、第２制御プログラム４１０Ｐの単位ブロックＦ１（第２ブロック）に含まれる比較要素Ｆ３とが一致するか否かを判定する。
【００６４】
ステップＳ２０７において、判定部２０７は、ステップＳ２０５で一致と判定された比較要素Ｆ３の重み付け値Ｆ５を加算することによってブロック一致度Ｆ７として算出する。
【００６５】
ステップＳ２０９において、判定部２０７は、ステップＳ２０７で算出されたブロック一致度Ｆ７と一致度判定テーブルＤ２１３とに基づいて一致もしくは不一致の判定をする。
【００６６】
ステップＳ２１１において、判定部２０７は、ブロック一致度Ｆ７が、ステップＳ２０９で一致と判定されれば、ステップＳ２１３へ進み、不一致と判定されればステップＳ２１５へ進む。
【００６７】
ステップＳ２１３において、出力部２０９は、ブロック一致度Ｆ７についてのステップＳ２０９の判定をもとに一致もしくは不一致の出力をする。具体的には、出力部２０９は、ブロック一致度Ｆ７が、ステップＳ２０９で一致と判定された場合、つまりステップＳ２１１のＹｅｓでは一致の出力をする。また、出力部２０９は、ステップＳ２１５（後述）で、全ブロックが比較されていた場合、つまりステップＳ２１３のＹｅｓでは不一致の出力をする。尚、出力部は、一致度判定テーブルＤ２１３のブロック一致度Ｆ７に基づいて、「完全一致」と、「相違あり一致」と、「一致可能性あり」と、「不一致」とのいずれかを出力してもよい。
【００６８】
ステップＳ２１５において、判定部２０７は、第２制御プログラム４１０Ｐの第１番目から第ｍ番目の全ての単位ブロックＦ１（第２ブロック）が第１制御プログラム４００Ｐの単位ブロックＦ１（第１ブロック）と比較されたか否かを検索する。判定部２０７は、第１番目から第ｍ番目の全ブロックで比較がされていればステップＳ２１３へ進み、第１番目から第ｍ番目の全ブロックで比較がされていなければ、ステップＳ２０３へ進む。
【００６９】
尚、全ブロックで比較がされていない場合、ステップＳ２０３において、抽出部２０５は、第２制御プログラム４１０Ｐの次の単位ブロックＦ１（第２ブロック）にて、第１制御プログラム４００Ｐの単位ブロックＦ１（第１ブロック）との比較をする。
【００７０】
照合プログラムは、第１制御プログラム４００Ｐの第１番目から第ｎ番目までの単位ブロックＦ１（第１ブロック）についてステップＳ２０３と、ステップＳ２０５と、ステップＳ２０７と、ステップＳ２０９と、ステップＳ２１１と、ステップＳ２１５とを実施する。
【００７１】
また、照合プログラムは、ステップＳ２０７と、ステップＳ２０９と、ステップＳ２１１と、ステップＳ２１５とを省略してもよい。この場合、ステップＳ２１３において、出力部２０９は、ステップＳ２０５における判定結果を出力する。具体的には、出力部２０９は、第１制御プログラム４００Ｐの単位ブロックＦ１に含まれる比較要素Ｆ３と、第２制御プログラム４１０Ｐの単位ブロックＦ１に含まれる比較要素Ｆ３とが一致するか否かの情報を比較要素Ｆ３毎に出力する。
【００７２】
尚、比較対照となる制御プログラムは、第１制御プログラム４００Ｐと、第２制御プログラム４１０Ｐとでなくてもよく、照合する目的のある２つの制御プログラムであっても勿論よい。
【００７３】
（本実施形態に係る照合プログラムの作用・効果）
以上説明した本実施形態に係る照合プログラムによれば、照合プログラムは、各単位ブロックＦ１について比較要素Ｆ３毎に一致もしくは不一致判定をすることにより、比較要素Ｆ３毎の判定情報をユーザーに提供することができる。すなわち、ユーザーは、単位ブロックＦ１毎に一致もしくは不一致の判定をするのみの照合よりも詳細な情報を知ることができる。従って、照合プログラムは、第１制御プログラム４００Ｐと、第２制御プログラム４１０Ｐとを比較するユーザーの作業を容易にすることができる。
【００７４】
また、照合プログラムは、処理命令ＩＤ Ｆ１１と移行条件ＩＤ Ｆ２１とリンク情報Ｆ３０とを比較要素Ｆ３とすることにより、照合プログラムの一致もしくは不一致に大きな影響を与える情報を比較要素Ｆ３として比較することができる。照合プログラムは、制御プログラムの一致もしくは不一致に大きな影響を与える情報を比較要素Ｆ３として用いる事により、ユーザーに効率的にプログラムの内容を把握させることができる。従って、照合プログラムは、第１制御プログラム４００Ｐと、第２制御プログラム４１０Ｐとを比較するユーザーの作業を容易にすることができる。
【００７５】
また、照合プログラムは、命令内容Ｆ１５と、命令内容種類Ｆ１３と、移行条件内容Ｆ２３とを更に比較要素Ｆ３とすることにより、更に詳細な情報をユーザーに提供することができる。従って、照合プログラムは、第１制御プログラム４００Ｐと、第２制御プログラム４１０Ｐとを比較するユーザーの作業を容易にすることができる。
【００７６】
また、照合プログラムは、比較要素手順（ステップＳ２０５）における判定結果及び重み付け値Ｆ５に応じて単位ブロックＦ１毎にブロック一致度Ｆ７を算出することにより、制御プログラムに大きな影響を与える比較要素Ｆ３について、より正確に判定することができる。また、照合プログラムは、重み付け値Ｆ５の低い比較要素Ｆ３の不一致情報を含んでいてもブロック判定手順（ステップＳ２０９）で一致と判定することにより、ユーザーに比較要素Ｆ３毎の全ての不一致情報を提供するのではなく、制御プログラムに大きな影響を与える比較要素についてのみ不一致情報を提供することができる。従って、照合プログラムは、第１制御プログラム４００Ｐと、第２制御プログラム４１０Ｐとを比較するユーザーの作業を容易にすることができる。
【００７７】
また、照合プログラムは、ブロック一致度Ｆ７に応じて段階を設けることで、段階的に判定することにより、ユーザーに単位ブロックＦ１の構成が大きく変わったところ（一致度が低いところ）から見直しができる情報を提供することができる。従って、照合プログラムは、第１制御プログラム４００Ｐと、第２制御プログラム４１０Ｐとを比較するユーザーの作業を容易にすることができる。
【００７８】
また、照合プログラムは、比較要素判定手順（ステップＳ２０５）における結果である、単位ブロックＦ１で比較要素Ｆ３毎に一致するか否かを出力（ステップＳ２１３）することにより、ユーザーに単位ブロックＦ１毎に一致もしくは不一致の判定をするのみの照合よりも詳細な情報を提供することができる。従って、照合プログラムは、第１制御プログラム４００Ｐと、第２制御プログラム４１０Ｐとを比較するユーザーの作業を容易にすることができる。
【００７９】
また、照合プログラムは、ブロック判定手順（ステップＳ２０９）におけるブロック一致度Ｆ７を判定結果として出力（ステップＳ２１３）することにより、ユーザーに、比較要素Ｆ３毎の全ての不一致情報を提供するのではなく、制御プログラムに大きな影響を与える比較要素Ｆ３についてのみの不一致情報を提供することができる。従って、照合プログラムは、第１制御プログラム４００Ｐと、第２制御プログラム４１０Ｐとを比較するユーザーの作業を容易にすることができる。
【００８０】
また、照合プログラムは、ブロック一致度Ｆ７を段階的に分けた結果を出力（ステップＳ２１３）することにより、ユーザーがブロックの構成が大きく変わったところ（ブロック一致度Ｆ７が低いところ）をすぐに把握できる情報を提供することができる。従って、照合プログラムは、第１制御プログラム４００Ｐと、第２制御プログラム４１０Ｐとを比較するユーザーの作業を更に容易にすることができる。
【図面の簡単な説明】
【００８１】
【図１】本発明の一実施形態に係る照合プログラムの全体概略構成図である。
【図２】本発明の一実施形態に係る照合プログラムにより照合される制御プログラムの構成を説明する説明図である。
【図３】本発明の一実施形態に係る照合プログラムにより照合される制御プログラムのＳＦＣによる表現を説明する説明図である。
【図４】本発明の一実施形態に係る照合プログラムの論理ブロック構成図である。
【図５】本発明の一実施形態に係る照合プログラムに設定される重み付け情報を説明する説明図である。
【図６】本発明の一実施形態に係る照合プログラムに設定される一致度判定情報を説明する説明図である。
【図７】本発明の一実施形態に係る照合プログラムにより出力される情報を説明する説明図である。
【図８】本発明の一実施形態に係る照合プログラムの動作フロー図である。
【符号の説明】
【００８２】
２００…コンピュータ
２００Ｐ…編集用プログラム
２０１…抽出部
２０３…編集用プログラム記憶部
２０５…抽出部
２０７…判定部
２０９…出力部
２１１…重み付け記憶部
Ｄ２１１…重み付けテーブル
２１３…判定基準記憶部
Ｄ２１３…一致度判定テーブル
４００…ＰＬＣ１号機
４００Ｐ…第１制御プログラム
４１０…ＰＬＣ２号機
４１０Ｐ…第２制御プログラム
６００…機械１号機
６１０…機械２号機
Ｆ１…単位ブロック
Ｆ３…比較要素
Ｆ５…重み付け値
Ｆ７…ブロック一致度
Ｆ１０…処理命令
Ｆ１１…処理命令ＩＤ
Ｆ１３…命令内容種類
Ｆ１５…命令内容
Ｆ２０…移行条件
Ｆ２１…移行条件ＩＤ
Ｆ２３…移行条件内容
Ｆ３０…リンク情報
【図１】
2006235999.tif 000003
【図２】
2006235999.tif 000004
【図３】
2006235999.tif 000005
【図４】
2006235999.tif 000006
【図５】
2006235999.tif 000007
【図６】
2006235999.tif 000008
【図７】
2006235999.tif 000009
【図８】
2006235999.tif 000010