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