(57)【要約】【課題】プログラマブル・コントローラで実行するラダープログラムの中からラダー回路を検索／抽出する際に、効率よく目的のラダー回路の検索／抽出が可能なラダープログラム検索装置を提供すること。【解決手段】本発明のラダープログラム検索装置は、複数の信号と、前記複数の信号に含まれるいずれか２つの信号の間の論理演算関係とを検索条件として指定する検索条件指定手段と、前記ラダープログラムに含まれる前記複数のラダー回路について、前記検索条件に指定された前記複数の信号が全て含まれることを判定する検索信号有無判定手段と、前記論理演算関係に含まれる各信号の前記ラダー回路における接続関係を判別し、当該判別結果に基づいて前記ラダー回路に前記論理演算関係が含まれているかの判定する検索論理有無判定手段とを備える。【選択図】図３
2016118883.tif 000002
【特許請求の範囲】
【請求項１】
指定した検索条件に基づいてラダープログラムに含まれる複数のラダー回路を検索するラダープログラム検索装置において、
少なくとも２つの複数の信号と、少なくとも１つの前記複数の信号に含まれるいずれか２つの信号の間の論理演算関係と、を検索条件として指定する検索条件指定手段と、
前記ラダープログラムに含まれる前記複数のラダー回路について、前記検索条件に指定された前記複数の信号が全て含まれることを判定する検索信号有無判定手段と、
前記検索信号有無判定手段により前記検索条件に指定された信号が全て含まれると判定された前記ラダー回路について、前記論理演算関係が含まれているかを判定する検索論理有無判定手段と、
前記検索信号有無判定手段および前記検索論理有無判定手段により前記検索条件に合致すると判定された前記ラダー回路を表示する表示手段と、
を備え、
前記検索論理有無判定手段は、前記論理演算関係に含まれる各信号の前記ラダー回路における接続関係を判別する判別手段を備え、前記判別手段の判別結果に基づいて前記ラダー回路に前記論理演算関係が含まれているかの判定を行う、
ことを特徴とするラダープログラム検索装置。
【請求項２】
前記判別手段は、前記ラダー回路から前記論理演算関係に含まれる各信号以外の信号を前記ラダー回路から削除して簡略化したラダー回路を生成し、前記簡略化したラダー回路に基づいて前記論理演算関係に含まれる各信号の前記ラダー回路における接続関係を判別する、
ことを特徴とする請求項１に記載のラダープログラム検索装置。
【請求項３】
前記判別手段は、前記ラダー回路から計算ツリーを生成し、前記計算ツリーに基づいて前記論理演算関係に含まれる各信号の前記ラダー回路における接続関係を判別する、
ことを特徴とする請求項１に記載のラダープログラム検索装置。
【請求項４】
あいまい検索モードを選択する検索モード検索手段を更に備え、
前記検索論理有無判定手段は、前記検索モード検索手段によりあいまい検索モードが選択されている場合、前記論理演算関係に含まれる信号が、否定の論理が付与されていない信号と否定の論理が付与されている信号の両方と合致するように判定を行う、
ことを特徴とする請求項１〜３のいずれか１つに記載のラダープログラム検索装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ラダープログラム検索装置に関し、特に指定した信号の演算条件によりラダー回路を検索可能なラダープログラム検索装置に関する。
【背景技術】
【０００２】
ラダープログラムを作成、動作を検証(デバッグ)、動作時の異常等を診断する際は、ラダープログラム中から関連するラダー回路を画面上に呼び出すことが頻繁に行われる。そのため、目的のラダー回路で使われている信号や命令を条件としてラダー回路を検索、抽出するための機能が提供されていることが多い。
【０００３】
一般に、ラダープログラムの中から特定のラダー回路を探す場合、そのラダー回路で使われている信号を指定し、その信号が含まれるラダー回路を検索することで目的のラダー回路を抽出している。検索条件の信号はその信号に割り当てられた名称(識別子)やアドレス等を表す文字列で指定するのが一般的であり、また、検索の結果は、最初に条件に合致すると判定されたラダー回路を画面上に呼び出したり、条件に合致すると判定された全ラダー回路を一覧で表示したりして、オペレータに通知される。
【０００４】
例えば、ラダープログラムの編集装置上で「Ａ」という信号を検索条件として指定し、その検索条件でラダー回路を検索するよう指令する場合、図１４に示す検索結果１のように、結果として「Ａ」という信号が回路中に登場するラダー回路が全て一覧として画面に表示される。このような検索手法を用いた場合、ラダープログラムの規模が大きくなってくると、同じ条件でもより多くのラダー回路が合致してしまう。
【０００５】
このように、多くのラダー回路が一覧表示された場合、目的の回路を抽出することがより困難になり、最終的にはオペレータが表示されたすべてのラダー回路を見て判断する必要があることも多い。しかしながら、検索の結果一覧表示されたラダー回路の数が多いと、目的とするラダー回路をその一覧から探し出すには手間がかかり、見逃し等の誤りが発生する危険性も高い。
【０００６】
そこで、検索条件を更に付け加えて詳細な条件の設定ができるようにすることで合致と判定されるラダー回路の数を減らし、より精度良く目的のラダー回路を見つけ出せるようにする技術が従来から提案されてきた。例えば、特許文献１には、命令と変数(信号)の組み合わせを検索条件として指定することが可能な制御プログラム検索装置が開示されている。また、特許文献２には、命令と信号の並びを検索条件として指定することが可能なプログラマブル・コントローラが開示されている。さらに、特許文献３には、ラダー図のパターンで検索条件を指定することが可能なラダー回路編集装置が開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特許第３８４７６６５号公報
【特許文献２】特開昭６２−０８６４０８号公報
【特許文献３】特許第４２４５８１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１〜３に開示されるような技術を導入したとしても、以下に示す問題が生じる。すなわち、ラダー回路の場合、同等の論理を持つ回路であっても、演算命令や信号の並びが異なったり、補助的な条件を表す接点が間に挿入されていたりする場合があるため、単に命令の並びやラダー図のパターンの比較だけで合致を判定するのでは、合致と判定すべきラダー回路を見逃してしまう危険性がある。
【０００９】
そこで本発明の目的は、プログラマブル・コントローラで実行するラダープログラムの中からラダー回路を検索／抽出する際に、効率よく目的のラダー回路の検索／抽出が可能なラダープログラム検索装置を提供することである。
【課題を解決するための手段】
【００１０】
本願の請求項１に係る発明は、指定した検索条件に基づいてラダープログラムに含まれる複数のラダー回路を検索するラダープログラム検索装置において、少なくとも２つの複数の信号と、少なくとも１つの前記複数の信号に含まれるいずれか２つの信号の間の論理演算関係と、を検索条件として指定する検索条件指定手段と、前記ラダープログラムに含まれる前記複数のラダー回路について、前記検索条件に指定された前記複数の信号が全て含まれることを判定する検索信号有無判定手段と、前記検索信号有無判定手段により前記検索条件に指定された信号が全て含まれると判定された前記ラダー回路について、前記論理演算関係が含まれているかを判定する検索論理有無判定手段と、前記検索信号有無判定手段および前記検索論理有無判定手段により前記検索条件に合致すると判定された前記ラダー回路を表示する表示手段と、を備え、前記検索論理有無判定手段は、前記論理演算関係に含まれる各信号の前記ラダー回路における接続関係を判別する判別手段を備え、前記判別手段の判別結果に基づいて前記ラダー回路に前記論理演算関係が含まれているかの判定を行う、ことを特徴とするラダープログラム検索装置である。
【００１１】
本願の請求項２に係る発明は、前記判別手段は、前記ラダー回路から前記論理演算関係に含まれる各信号以外の信号を前記ラダー回路から削除して簡略化したラダー回路を生成し、前記簡略化したラダー回路に基づいて前記論理演算関係に含まれる各信号の前記ラダー回路における接続関係を判別する、ことを特徴とする請求項１に記載のラダープログラム検索装置である。
【００１２】
本願の請求項３に係る発明は、前記判別手段は、前記ラダー回路から計算ツリーを生成し、前記計算ツリーに基づいて前記論理演算関係に含まれる各信号の前記ラダー回路における接続関係を判別する、ことを特徴とする請求項１に記載のラダープログラム検索装置である。
【００１３】
本願の請求項４に係る発明は、あいまい検索モードを選択する検索モード検索手段を更に備え、前記検索論理有無判定手段は、前記検索モード検索手段によりあいまい検索モードが選択されている場合、前記論理演算関係に含まれる信号が、否定の論理が付与されていない信号と否定の論理が付与されている信号の両方と合致するように判定を行う、ことを特徴とする請求項１〜３のいずれか１つに記載のラダープログラム検索装置である。
【発明の効果】
【００１４】
本発明により、ラダー回路の検索条件として、使用している信号だけでなく、その論理関係も条件に加えることで、より精度良く目的のラダー回路を抽出することができ、ラダーの作成や診断などの作業を効率化できる。また、本発明では、命令の並びやラダー図のパターンではなく、２つの信号を結ぶ論理的な演算に基づいて条件合致の判定をするため、同じ論理構造を持っているラダー回路であれば、他の信号への参照によって回路の形が異なる場合でも合致すると判定できるため、検索漏れを防ぐことができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施の形態におけるラダープログラム検索装置の要部ブロック図である。
【図２】本発明の実施の形態におけるラダープログラム検索装置で用いられるデータのデータ構造を説明する図である。
【図３】本発明の実施の形態におけるラダープログラム検索装置上で実行される処理の概略フローチャートである。
【図４】本発明の実施の形態における検索信号有無判定処理の概略フローチャートである。
【図５】本発明の実施の形態における検索論理有無判定処理の概略フローチャートである。
【図６】従来技術における命令の並びによるラダープログラムの検索例を示す図である。
【図７】従来技術におけるラダー図のパターンによるラダープログラムの検索例を示す図である。
【図８】本発明の実施の形態におけるラダー回路の簡略化処理を説明する図である。
【図９】本発明の実施の形態におけるラダー回路の簡略化を用いた検索論理一致判定処理の概略フローチャートである。
【図１０】本発明の実施の形態におけるラダー回路の簡略化を用いた信号間接続関係の判別例１を示す図である。
【図１１】本発明の実施の形態におけるラダー回路の簡略化を用いた信号間接続関係の判別例２を示す図である。
【図１２】本発明の実施の形態におけるラダー回路から計算ツリーを生成した例を示す図である。
【図１３】本発明の実施の形態における計算ツリーを用いた信号間接続関係の判別方法を説明する図である。
【図１４】従来技術における信号によるラダープログラムの検索例を示す図である。
【図１５】従来技術における２つの信号によるラダープログラムの検索例を示す図である。
【発明を実施するための形態】
【００１６】
以下、本発明の実施の形態を図面と共に説明する。最初に、本発明の技術的概要を説明する。
図１５は、図１４と同じ検索対象に対して、信号Ａだけでなく信号Ｂも検索条件に加えて検索した検索結果２を表している。検索結果２では、図１４に示した検索結果１で表示されていたラダー回路＃１−２と＃１−３は信号Ｂを含んでいないため、検索結果一覧には現れなくなる。
【００１７】
ここで、図１５に示した検索結果２を更に絞り込むことを考える場合、信号Ａと信号Ｂ以外にも目的の回路に含まれる信号があれば、単にその信号を検索条件に追加することで絞り込みは可能であるが、実際には絞り込みに適当な信号がない場合も多い。
【００１８】
そこで、本発明では、これに加えて更に検索結果を絞り込むことを可能とするために、検索条件に論理演算関係を導入する。例えば、信号Ａと信号Ｂが両方ともＯＮであることが基本的な動作条件(コイルがオンする条件)である回路を検索することを考える。両方の信号がＯＮの時に動作するのであるから、そのラダー回路には信号Ａと信号Ｂの論理積（ａｎｄ）の論理演算が含まれるはずである。そこで、これを検索条件として「Ａ  ａｎｄ  Ｂ」を設定する。なお、一般にこういった検索条件の論理演算は複数指定することができる。
【００１９】
本発明では、ラダープログラム検索装置に対して以下の機能を追加することにより、論理演算関係を導入した、より精度の高い検索結果を得る検索手段を提供する。
●［手段１］検索条件として、複数の信号を指定する機能
●［手段２］検索条件に指定された信号について、いずれか２つの信号の論理演算関係（例えば、信号ＡとＢに対して「Ａ  ａｎｄ  Ｂ」，「Ａ  ｏｒ  Ｂ」，「Ａ  ａｎｄ  （ｎｏｔ  Ｂ）」等）を１つ以上指定する機能
●［手段３］ラダープログラムに含まれる各ラダー回路について、検索条件に指定された信号が全て含まれることを判定する機能
●［手段４］検索条件に指定された信号が全て含まれると判定されたラダー回路について、２つの信号の論理演算の関係がラダー回路中に現れているか判定する機能
●［手段５］上記２つの判定手段によって検索条件に合致すると判定されたラダー回路を画面上に表示する機能
【００２０】
図１は、本発明の一実施の形態におけるラダープログラム検索装置１０の要部ブロック図である。本実施の形態におけるラダープログラム検索装置１０は、ラダープログラムの編集装置やモニタ装置などに対して本発明で提案するラダープログラムの検索機能を実装したものである。
【００２１】
ラダープログラム検索装置１０が備えるＣＰＵ１１は、ラダープログラム検索装置１０を全体的に制御するプロセッサであり、ＲＯＭ１２に格納されたシステムプログラムをバス１８を介して読み出し、該システムプログラムに従ってラダープログラム検索装置１０を制御する。ＲＡＭ１３には、一時的な計算データや表示器１６に表示される表示データ、キーボード１５などを介して入力された各種データを格納するワークメモリ領域と、検索・編集対象となるラダープログラムなどのシーケンスプログラムを格納する領域が設けられている。
【００２２】
二次記憶装置１４は、ハードディスク装置、メモリカード、ＵＳＢメモリといった不揮発性の記憶装置や、バッテリバックアップされた不揮発性のメモリなどで構成され、ラダープログラム検索装置１０が取り扱うラダープログラムなどのシーケンスプログラムや、設定ファイル、パラメータファイルなどの各種ファイルが記憶されている。
【００２３】
ラダープログラム検索装置１０は、通信インタフェース１７を介してシーケンス制御装置２０と接続されており、ラダープログラム検索装置１０においてオペレータの操作により編集されたラダープログラムなどのシーケンスプログラムを該通信インタフェース１７を介してシーケンス制御装置２０へと送信する。シーケンス制御装置２０は、通信インタフェース２５を介して該シーケンスプログラムを受信してＲＡＭ２３に設けられたシーケンスプログラムを格納する領域に記憶し、該記憶したシーケンスプログラムをＣＰＵ２１により実行することでシーケンス制御を行う。シーケンス制御装置２０の他の構成の説明については省略する。
【００２４】
ラダープログラム検索装置１０上では、オペレータの操作により、以下で説明するラダープログラム検索処理が実行される。当該処理は、ＲＯＭ１２に格納されたシステムプログラムに含まれるラダープログラム検索処理プログラムをＣＰＵ１１が実行することにより実現される。
【００２５】
ラダープログラム検索装置１０のＲＡＭ１３内には、ラダープログラム検索処理において利用される図２に示す各種データが記憶されている。
「プログラムデータ」は検索対象となるラダープログラム中のラダー回路のデータが並んでいるデータの集合である。「回路ポインタ」は、プログラムデータ中のラダー回路の位置を指し示すために使われる。
【００２６】
「検索信号テーブル」には、オペレータにより入力された検索条件となる信号の一覧が格納される。「信号ポインタ」は検索信号テーブル中の信号の位置を指し示すために使われる。
「検索論理テーブル」には、オペレータにより入力された検索条件となる論理演算の一覧が格納される。「論理ポインタ」は検索論理テーブル中の論理演算の位置を指し示すために使われる。
【００２７】
「検索結果テーブル」は、ラダープログラム検索処理を実行した結果、合致と判定されたラダー回路の位置情報を格納するために使われる。「結果ポインタ」は検索結果テーブル中の情報の位置を指し示すために使われる。
これらの各データを用いて実行されるラダープログラム検索処理の概略フローチャートを図３に示す。
【００２８】
●［ステップＳＡ０１］検索ポインタに１を設定する。
●［ステップＳＡ０２］回路ポインタに１を設定する。
●［ステップＳＡ０３］検索対象となるラダー回路のデータが残っているか、即ち、回路ポインタが検索対象となるラダー回路の個数Ｎｃ以下であるか否かを判定する。回路ポインタがＮｃ以下である場合にはステップＳＡ０４へ進み、そうでない場合にはステップＳＡ１２へ進む。
【００２９】
●［ステップＳＡ０４］プログラムデータの回路ポインタが指す位置からラダー回路のデータを取得する。
●［ステップＳＡ０５］ステップＳＡ０４で抽出したラダー回路のデータに対して、後述する検索信号有無判定処理を実行し、検索対象となる信号の全てが該ラダー回路に含まれているかを検索する。
●［ステップＳＡ０６］ステップＳＡ０５で実行した検索信号有無判定処理において、検索対象となる信号の全てがラダー回路に含まれていたか否かを判定する。含まれていた場合にはステップＳＡ０７へ進み、含まれていない場合にはステップＳＡ１１へ進む。
【００３０】
●［ステップＳＡ０７］ステップＳＡ０４で抽出したラダー回路のデータに対して、後述する検索論理有無判定処理を実行し、検索対象となる信号の検索論理の全てが該ラダー回路に含まれているかを検索する。
●［ステップＳＡ０８］ステップＳＡ０７で実行した検索論理有無判定処理において、検索対象となる信号の検索論理の全てがラダー回路に含まれていたか否かを判定する。含まれていた場合にはステップＳＡ０９へ進み、含まれていない場合にはステップＳＡ１１へ進む。
【００３１】
●［ステップＳＡ０９］検索結果テーブル中で結果ポインタが指す位置に回路ポインタの値を格納する。
●［ステップＳＡ１０］結果ポインタを１増加（インクリメント）する。
●［ステップＳＡ１１］回路ポインタを１増加（インクリメント）して、ステップＳＡ０３へ戻る。
●［ステップＳＡ１２］検索結果テーブルから、結果ポインタより前の位置に格納されているポインタ値をすべて抽出し、該ポインタ値が指し示す位置に記憶されているラダー回路の一覧を画面に表示して、本処理を終了する。
【００３２】
図４は、図３のフローチャートにおけるステップＳＡ０５で実行される検索信号有無判定処理の概略フローチャートである。
●［ステップＳＢ０１］信号ポインタに１を設定する。
●［ステップＳＢ０２］検索していない検索信号が残っているか、即ち、信号ポインタが検索信号テーブルに記憶されている検索信号の個数Ｎｓ以下であるか否かを判定する。信号ポインタがＮｓ以下である場合にはステップＳＢ０３へ進み、そうでない場合にはステップＳＢ０７へ進む。
【００３３】
●［ステップＳＢ０３］検索信号テーブルの信号ポインタが指す位置から検索信号を取得する。
●［ステップＳＢ０４］ステップＳＢ０３で取得した検索信号を用いて検索対象となるラダー回路を検索する。
●［ステップＳＢ０５］ステップＳＢ０４において、検索信号がラダー回路に含まれていたか否かを判定する。含まれていた場合にはステップＳＢ０６へ進み、含まれていなかった場合にはステップＳＢ０８へ進む。
【００３４】
●［ステップＳＢ０６］信号ポインタを１増加（インクリメント）し、ステップＳＢ０２へ戻る。
●［ステップＳＢ０７］検索信号が全て発見されたと判定し、本処理を終了する。
●［ステップＳＢ０８］検索信号が見つからなかったと判定し、本処理を終了する。
【００３５】
図５は、図３のフローチャートにおけるステップＳＡ０７で実行される検索論理有無判定処理の概略フローチャートである。
●［ステップＳＣ０１］論理ポインタに１を設定する。
●［ステップＳＣ０２］検索していない検索論理が残っているか、即ち、論理ポインタが検索論理テーブルに記憶されている検索論理の個数Ｎｌ以下であるか否かを判定する。論理ポインタがＮｌ以下である場合にはステップＳＣ０３へ進み、そうでない場合にはステップＳＣ０７へ進む。
【００３６】
●［ステップＳＣ０３］検索論理テーブルの論理ポインタが指す位置から検索論理を取得する。
●［ステップＳＣ０４］ステップＳＣ０３で取得した検索論理と、プログラムデータから取得した検索対象となるラダー回路に対して、後述する検索論理一致判定処理を実行する。
●［ステップＳＣ０５］ステップＳＣ０４において、検索論理がラダー回路に含まれていたか否かを判定する。含まれていた場合にはステップＳＣ０６へ進み、含まれていなかった場合にはステップＳＣ０８へ進む。
【００３７】
●［ステップＳＣ０６］論理ポインタを１増加（インクリメント）し、ステップＳＣ０２へ戻る。
●［ステップＳＣ０７］検索論理が全て発見されたと判定し、本処理を終了する。
●［ステップＳＣ０８］検索論理が見つからなかったと判定し、本処理を終了する。
【００３８】
ここまで説明してきた各処理の中で、指定された検索信号が特定のラダー回路に含まれるかを判定する処理は比較的簡単に実装できるが、一方で、ある論理演算が特定のラダー回路に含まれるかを判定する処理は、従来と同様の命令の並びやラダー図のパターンの比較による判定では問題が発生することがある。この問題について図６，７を用いて説明する。
【００３９】
図６，７に示す＃２−１のラダー回路のように、信号Ａと信号Ｂの論理積そのものが部分的に含まれているラダー回路であれば、従来の命令の並びやラダー図のパターンの一致による判定方法で、ラダー回路が検索条件に合致していると判定できる。
【００４０】
しかしながら、実際のラダー回路では、付加的な条件や例外的な条件を表す接点が付け加えられていることが多く、大筋では信号Ａと信号Ｂの論理積を動作条件としていても、＃２−２や＃２−３のように、他の接点との論理演算が挿入されているラダー回路も多い。＃２−２や＃２−３のようなラダー回路の場合、全体で見れば信号Ａと信号Ｂとが論理積の形で演算されているのがわかるが、他の接点も回路中に登場するため、命令の並びやラダー図のパターンの一致による検索手段では「合致しない」と判定されてしまうという問題がある。
【００４１】
よって、従来の命令の並びやラダー回路のパターンによる一致判定を用いてラダー回路を検索すると、＃２−１は合致すると判定できる一方で、＃２−２や＃２−３のような別の動作条件を含むラダー回路の場合、挿入された他の接点の存在により、命令の並びやラダー図のパターンの一致による検索手段では「合致しない」と判定されてしまう。
そこで本発明では、着目した２つの接点同士の位置関係から当該接点の論理的な接続関係を判別することにより、他の接点による影響を排除して一致判定をする検索論理一致判定処理を導入する。検索論理一致判定処理はいくつかの方法がある。
【００４２】
図８を用いて、ラダー回路の簡単化処理を用いた検索論理一致判定処理の例を説明する。ラダー回路の簡単化処理を用いた検索論理一致判定処理では、以下の手順によって検索論理（Ａ  ａｎｄ  Ｂ）がラダー回路に含まれているか否かを判定する。
【００４３】
●［手順１］ラダー回路中の信号Ａと信号Ｂをそれぞれ１つずつ選択する。複数同じ信号が登場する場合は、その全ての組み合わせについて以下の手順２〜４を実行する。
●［手順２］選択した信号Ａと信号Ｂ以外の全ての信号について、下記手順２−１〜２−３を繰り返し、回路中に選択した信号Ａと信号Ｂだけが残った状態にする。
●［手順２−１］直近の他の接点や部分回路と直接直列に並んでいる接点は接続線に置き換える。
●［手順２−２］直近の他の接点や部分回路と直接並列に並んでいる接点は削除する。
●［手順２−３］ライトコイルは削除する。
【００４４】
●［手順３］選択した信号Ａと信号Ｂ以外の全ての信号が消えた回路から余計な接続線を取り去って、簡単なラダー回路の形に整形する。
●［手順４］整形後の形により、信号Ａと信号Ｂの接続形態（論理積、論理和）を判別し、検索論理との一致／不一致を判定する。
【００４５】
このような手順を装置上で実行する、簡略化処理を用いた検索論理一致判定処理の概略フローチャートを図９に示す。
●［ステップＳＤ０１］ラダー回路のデータに含まれる接点の内、着目した２つの接点に対してマーク（メモリ上に設けたフラグなど）を付ける。
●［ステップＳＤ０２］ラダー回路のデータ内にマークのついていない接点乃至コイルが残っているか否かを判定する。マークのついていない接点乃至コイルが残っている場合にはステップＳＤ０３へ進み、残っていない場合にはステップＳＤ０９へ進む。
【００４６】
●［ステップＳＤ０３］ラダー回路のデータ内にマークのついていない接点乃至コイルを選択する。
●［ステップＳＤ０４］ステップＳＤ０３で選択したのがコイルか否かを判定する。コイルである場合はステップＳＤ０８へ進み、そうでない場合にはステップＳＤ０５へ進む。
●［ステップＳＤ０５］ステップＳＤ０３で選択した接点と、直近の接点乃至部分回路との接続形態を確認する。
【００４７】
●［ステップＳＤ０６］ステップＳＤ０５で確認した接続形態が論理和であるか否かを判定する。論理和である場合には、ステップＳＤ０８へ進み、そうでない場合にはステップＳＤ０７へ進む。
●［ステップＳＤ０７］ステップＳＤ０３で選択した接点を接続線に置換する。
●［ステップＳＤ０８］ステップＳＤ０３で選択した接点乃至コイルを削除する。
【００４８】
●［ステップＳＤ０９］マークを付けた２つの接点のみが残った回路から余計な接続線を整理して整形する。
●［ステップＳＤ１０］マークを付けた２接点の接続形態を確認する。
●［ステップＳＤ１１］ステップＳＤ１１で確認した接続形態が論理和であるか否かを判定する。論理和である場合にはステップＳＤ１３へ進み、そうでない場合にはステップＳＤ１２へ進む。
【００４９】
●［ステップＳＤ１２］着目した２つの接点は論理積であると判別する。
●［ステップＳＤ１３］着目した２つの接点は論理和であると判別する。
●［ステップＳＤ１４］ステップＳＤ１２，ステップＳＤ１３で判別した結果に基づいて、検索論理との一致不一致を判定して、本処理を終了する。
【００５０】
このようなこの簡略化処理を用いた検索論理一致判定処理の具体例を図１０，１１に示す。
例えば、検索論理が（Ａ  ａｎｄ  Ｂ）であるとした時に、図１０に示すラダー回路＃２−２に当該検索論理が含まれているかを判定する場合、上記した手順に従って信号Ａと信号Ｂに着目した簡略化処理を実行する。
【００５１】
最初に、着目した信号Ａ，信号Ｂ以外の接点である接点Ｅを見た場合、当該接点は直近の接点Ａと直列で接続されているので手順２−１が適用され、接点Ｅは接続線に置き換えられる。次に、接点Ｆを見た場合、当該接点は直近の接点Ａと並列で接続されているので手順２−２が適用され、接点Ｆは削除される。更に、コイルＹ４に対しては手順２−３が適用され、コイルＹ４は削除される。
【００５２】
最後に、余計な接続線を整理してラダー回路を整形し、信号Ａと信号Ｂの接続形態を判別することで、このラダー回路＃２−２には、検索論理（Ａ  ａｎｄ  Ｂ）が含まれていることが判定できる。
【００５３】
一方で、検索論理が（Ａ  ａｎｄ  Ｂ）であるとした時に、図１１に示すラダー回路＃２−４に当該検索論理が含まれているかを判定する場合について考える。
最初に、着目した信号Ａ，信号Ｂ以外の接点である接点Ｃを見た場合、当該接点は直近の接点Ｄと並列で接続されているので手順２−２が適用され、接点Ｃは削除される。次に、接点Ｄを見た場合、当該接点は直近の部分回路（接点Ａ，接点Ｂ）と直列で接続されているので手順２−１が適用され、接点Ｄは接続線に置き換えられる。
【００５４】
最後に、余計な接続線を整理してラダー回路を整形し、信号Ａと信号Ｂの接続形態を判別すると、このラダー回路＃２−４では信号Ａと信号Ｂとが論理和で結ばれていることが確認できるため、検索論理（Ａ  ａｎｄ  Ｂ）が含まれていないことが判定できる。
【００５５】
このように、簡略化処理を施した後のラダー回路の形で論理を判別すれば、両信号の回路中の位置や他の接点を考慮する必要がなくなり、正確な一致判定を行うことができる。このような判定方法を用いることで、検索論理（Ａ  ａｎｄ  Ｂ）について、図６，７に示したラダー回路＃２−１、ラダー回路＃２−２、ラダー回路＃２−３を不一致と判定することなく、また、図１１に示したラダー回路＃２−４のようなラダー回路だけを検索結果から除去することが可能となる。
【００５６】
なお、ここに示した簡略化手法は一例にすぎず、他にも計算手順をリスト構造で表した計算ツリーを使って、着目する信号Ａと信号Ｂの計算ツリー上の位置からラダー回路における信号Ａと信号Ｂの接続関係を判別し、一致判定に利用することもできる。
図１２は、ラダー回路＃２−２を、その論理演算を表す計算ツリーで表現した例である。ラダー回路＃２−２は、論理式Ｙ４＝（（Ａ  ａｎｄ  Ｅ）  ｏｒ  Ｆ）ａｎｄ  Ｂ）と表すことができるため、同図下に示す計算ツリーとして表現することができる。
【００５７】
そして、このように計算ツリーで表現した場合、図１３に示すように、着目した２つの接点に相当するノードからそれぞれ上に辿った時に合流するノードで、着目した２つの接点の接続関係を判別することができ、判別した接続関係に基づいて検索論理一致判定処理を行うことができる。
【００５８】
以上、本発明の実施の形態について説明したが、本発明は上述した実施の形態の例に限定されることなく、適宜の変更を加えることにより、その他の態様で実施することができる。
例えば、否定の論理を含む検索条件を指定する際に、あいまい検索を指定できるようにし、当該指定をすることで検索条件に含まれる信号が、否定の論理が付与されていない信号と否定の論理が付与されている信号の両方と合致するように判定させるようにしてもよい。このような機能を付与することにより、例えば、否定の論理「Ａ  ａｎｄ  （ｎｏｔ  Ｂ）」の検索条件に対してあいまい検索を実行し、「Ａ  ａｎｄ  （ｎｏｔ  Ｂ）」だけでなく「（ｎｏｔ  Ａ）  ｏｒ  Ｂ」の回路を含んだラダー回路を検索／抽出することができるようになる。
【符号の説明】
【００５９】
１０    ラダープログラム検索装置
１１    ＣＰＵ
１２    ＲＯＭ
１３    ＲＡＭ
１４    二次記憶装置
１５    キーボード
１６    表示器
１７    通信インタフェース
１８    バス
２０    シーケンス制御装置
２１    ＣＰＵ
２２    ＲＯＭ
２３    ＲＡＭ
２４    Ｉ／Ｏ機器インタフェース
２５    通信インタフェース
２６    バス
【図１】
2016118883.tif 000003
【図２】
2016118883.tif 000004
【図３】
2016118883.tif 000005
【図４】
2016118883.tif 000006
【図５】
2016118883.tif 000007
【図９】
2016118883.tif 000008
【図６】
2016118883.tif 000009
【図７】
2016118883.tif 000010
【図８】
2016118883.tif 000011
【図１０】
2016118883.tif 000012
【図１１】
2016118883.tif 000013
【図１２】
2016118883.tif 000014
【図１３】
2016118883.tif 000015
【図１４】
2016118883.tif 000016
【図１５】
2016118883.tif 000017