(57)【特許請求の範囲】
【請求項１】
ラダープログラムに対する編集を支援するプログラム編集装置であって、
前記ラダープログラムを記憶する記憶部と、
前記ラダープログラムに対応するラダー図を第１画面に表示し、前記ラダー図を構成する複数の回路ブロックのうちの一の回路ブロックを検索対象とする検索コマンドの入力を受け付けた後、前記検索対象の回路ブロックが含む接点を開閉するコイルを有する回路ブロックを前記ラダー図から検索する単位検索処理を実行する処理部と、
を備え、
前記処理部は、前記検索された回路ブロックを検索対象として前記単位検索処理を繰り返し実行し、各単位検索処理により検索された回路ブロックを、当該回路ブロックが検索された際の検索対象の回路ブロックの１つ下位の階層の回路ブロックとして第２画面に表示する、
ことを特徴とするプログラム編集装置。
【請求項２】
前記処理部は、前記第２画面に表示する対象の回路ブロックについて、前記対象の回路ブロックそのものを表示せず、前記対象の回路ブロックが存在することを示す記号を表示し、その記号に対するポインティングデバイスによる操作入力に応じて前記対象の回路ブロックを表示したり非表示にしたりする、
ことを特徴とする請求項１に記載のプログラム編集装置。
【請求項３】
ラダープログラムに対する編集を支援するプログラム編集装置であって、
前記ラダープログラムを記憶する記憶部と、
前記ラダープログラムに対応するラダー図を第１画面に表示し、前記ラダー図を構成する複数の回路ブロックのうちの一の回路ブロックを検索対象とする検索コマンドの入力を受け付けたとき、前記検索対象の回路ブロックが含む接点を開閉するコイルを有する回路ブロックを前記ラダー図から検索する第１の単位検索処理を実行し、前記第１の単位検索処理によって検索された回路ブロックを第２画面に表示する処理部と、
を備え、
前記処理部は、前記第２画面に表示された回路ブロックのうちの一の回路ブロックを新たな検索対象とする検索コマンドの入力を受け付けたとき、前記新たな検索対象の回路ブロックが含む接点を開閉するコイルを有する回路ブロックを前記ラダー図から検索する第２の単位検索処理を実行し、前記第２の単位検索処理によって検索された回路ブロックを前記新たな検索対象の回路ブロックの下位の階層の回路ブロックとして前記第２画面に表示し、同様にこの検索結果の回路ブロックについてさらに検索コマンドの入力を受け付け、複数階層にわたってこの検索を繰り返し実行できる
ことを特徴とするプログラム編集装置。
【請求項４】
各検索コマンドは、接点を指定する入力を含み、
前記単位検索処理は、前記指定された接点を開閉するコイルを有する回路ブロックを前記ラダー図から検索する処理である、
ことを特徴とする請求項３に記載のプログラム編集装置。
【請求項５】
プログラマブルロジックコントローラ（ＰＬＣ）に接続するインタフェース部をさらに備え、
前記処理部は、
前記インタフェース部を介して前記ＰＬＣに前記ラダープログラムを設定し、
前記ＰＬＣが前記ラダープログラムを実行している際に、前記第２画面に表示された回路ブロックに含まれる各接点または各コイルの動作状態を前記インタフェース部を介して前記ＰＬＣから取得して、前記取得した各接点または各コイルの動作状態を視認可能な様態で前記第２画面に表示する、
ことを特徴とする請求項１から請求項４の何れか１項に記載のプログラム編集装置。
【請求項６】
前記第２画面は、GUI機能を有し、
前記処理部は、前記第２画面に表示された回路ブロックに対する編集入力を受け付けたとき、前記受け付けた編集入力を前記ラダープログラムに反映させる、
ことを特徴とする請求項１から請求項４の何れか１項に記載のプログラム編集装置。
【請求項７】
前記処理部は、前記第２画面に、予め設定された階層より下位の階層の回路ブロックを表示しない、
ことを特徴とする請求項１または請求項２に記載のプログラム編集装置。
【請求項８】
コンピュータが、ラダープログラムに対応するラダー図を第１画面に表示するステップと、
前記コンピュータが、前記ラダー図を構成する複数の回路ブロックのうちの一の回路ブロックを検索対象とする検索コマンドの入力を受け付けるステップと、
前記コンピュータが、前記検索対象の回路ブロックが含む接点を開閉するコイルを有する回路ブロックを前記ラダー図から検索する単位検索処理を実行するステップと、
前記コンピュータが、前記検索された回路ブロックを検索対象として前記単位検索処理を繰り返し実行するステップと、
前記コンピュータが、各単位検索処理により検索された回路ブロックを、当該回路ブロックが検索された際の検索対象の回路ブロックの１つ下位の階層の回路ブロックとして第２画面に表示するステップと、
を備えることを特徴とする方法。
【請求項９】
コンピュータが、ラダープログラムに対応するラダー図を第１画面に表示するステップと、
前記コンピュータが、前記ラダー図を構成する複数の回路ブロックのうちの一の回路ブロックを検索対象とする検索コマンドの入力を受け付けるステップと、
前記コンピュータが、前記検索対象の回路ブロックが含む接点を開閉するコイルを有する回路ブロックを前記ラダー図から検索する第１の単位検索処理を実行するステップと、
前記コンピュータが、前記第１の単位検索処理によって検索された回路ブロックを第２画面に表示するステップと、
前記コンピュータが、前記第２画面に表示された回路ブロックのうちの一の回路ブロックを新たな検索対象とする検索コマンドの入力を受け付けるステップと、
前記コンピュータが、前記新たな検索対象の回路ブロックが含む接点を開閉するコイルを有する回路ブロックを前記ラダー図から検索する第２の単位検索処理を実行するステップと、
前記コンピュータが、前記第２の単位検索処理によって検索された回路ブロックを前記新たな検索対象の回路ブロックの下位の階層の回路ブロックとして前記第２画面に表示するステップと、
を備えることを特徴とする方法。
【請求項１０】
ラダープログラムに対応するラダー図を第１画面に表示するステップと、
前記ラダー図を構成する複数の回路ブロックのうちの一の回路ブロックを検索対象とする検索コマンドの入力を受け付けるステップと、
前記検索対象の回路ブロックが含む接点を開閉するコイルを有する回路ブロックを前記ラダー図から検索する単位検索処理を実行するステップと、
前記検索された回路ブロックを検索対象として前記単位検索処理を繰り返し実行するステップと、
各単位検索処理により検索された回路ブロックを、当該回路ブロックが検索された際の検索対象の回路ブロックの１つ下位の階層の回路ブロックとして第２画面に表示するステップと、
をコンピュータに実行させることを特徴とするプログラム。
【請求項１１】
ラダープログラムに対応するラダー図を第１画面に表示するステップと、
前記ラダー図を構成する複数の回路ブロックのうちの一の回路ブロックを検索対象とする検索コマンドの入力を受け付けるステップと、
前記検索対象の回路ブロックが含む接点を開閉するコイルを有する回路ブロックを前記ラダー図から検索する第１の単位検索処理を実行するステップと、
前記第１の単位検索処理によって検索された回路ブロックを第２画面に表示するステップと、
前記第２画面に表示された回路ブロックのうちの一の回路ブロックを新たな検索対象とする検索コマンドの入力を受け付けるステップと、
前記新たな検索対象の回路ブロックが含む接点を開閉するコイルを有する回路ブロックを前記ラダー図から検索する第２の単位検索処理を実行するステップと、
前記第２の単位検索処理によって検索された回路ブロックを前記新たな検索対象の回路ブロックの下位の階層の回路ブロックとして前記第２画面に表示するステップと、
をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブルロジックコントローラ（以降、ＰＬＣ）の制御シーケンスを定めるプログラムを編集するためのプログラム編集装置、方法、およびプログラムに関する。
【背景技術】
【０００２】
ＰＬＣの制御シーケンスを定めるプログラムの１つに、ラダー図形式がある。ラダー図は、動力をシンボリックに表現する２つの母線（プラス母線とマイナス母線）が互いに間隔をあけて描かれ、これら２つの母線を結ぶようにして、リレー接点（以下、接点）およびコイル等で表現される論理回路が梯子状に描かれた構成を有している。ラダー図形式のプログラム（以降、ラダープログラム）を編集するにあたっては、プログラム編集装置が使用される。
【０００３】
例えば非特許文献１には、プログラム編集装置が開示されている。非特許文献１の技術によれば、プログラム編集装置は、デバイスまたは命令などが入力されると、入力されたデバイスまたは命令などを含む箇所を検索し、ラダー図の編集画面におけるラダー図の表示位置を、現在の表示位置から検索された箇所にジャンプさせる。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】「Integrated  FA  Software  GX  Works2  Version  1  オペレーティングマニュアル（共通編）」、三菱電機株式会社、２００９年９月、１０章、p.９−２２
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ユーザは、制御シーケンスを定めるプログラムをプログラミングする際、ラダー図中のあるコイルを駆動するために必要な条件を確認する場合がある。この場合、プログラム編集装置は、ユーザが調べたいコイルを駆動するために必要な接点に関して、これに関わる回路ブロックを検索してユーザに表示することが必要である。しかし、上記従来技術では、これらの要求に対して十分に対応できなかった。
【０００６】
本発明は、上記に鑑みてなされたものであって、コイルを駆動するための条件を記述した箇所をわかりやすく提示することが可能な、プログラム編集装置、方法、およびプログラムを得ることを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、本発明は、ラダープログラムに対する編集を支援するプログラム編集装置であって、前記ラダープログラムを記憶する記憶部と、前記ラダープログラムに対応するラダー図を第１画面に表示し、前記ラダー図を構成する複数の回路ブロックのうちの一の回路ブロックを検索対象とする検索コマンドの入力を受け付けた後、前記検索対象の回路ブロックが含む接点を開閉するコイルを有する回路ブロックを前記ラダー図から検索する単位検索処理を実行する処理部と、を備え、前記処理部は、前記検索された回路ブロックを検索対象として前記単位検索処理を繰り返し実行し、各単位検索処理により検索された回路ブロックを、当該回路ブロックが検索された際の検索対象の回路ブロックの１つ下位の階層の回路ブロックとして第２画面に表示する、ことを特徴とする。
【発明の効果】
【０００８】
本発明によれば、プログラム編集装置は、検索された回路ブロック間の関連性を簡単に理解することが可能なように検索された各回路ブロックを第２画面に表示するので、コイルを駆動するための条件を記述した箇所をわかりやすく提示することができる。さらに、検索された回路ブロックを表示する第２画面において、各接点が導通しているか否かをユーザに示し、かつ、プログラムを編集することができるので、ユーザは速やかに試験およびデバッグを行うことが可能となる。
【図面の簡単な説明】
【０００９】
【図１】図１は、プログラム編集装置の使用の一様態を説明する図である。
【図２】図２は、プログラム編集装置のハードウェア構成例を示す図である。
【図３】図３は、ディスプレイに表示される表示画面例を示す図である。
【図４】図４は、ラダー図表示画面の表示例を示す図である。
【図５】図５は、実施の形態１の検索結果表示画面の表示例を示す図である。
【図６】図６は、実施の形態１の検索処理にかかる動作を説明するフローチャートである。
【図７】図７は、実施の形態１と比較される、検索結果の表示方法を示す図である。
【図８】図８は、実施の形態１と比較される、検索結果の表示方法を示す図である。
【図９】図９は、実施の形態２の検索結果表示画面の表示例を示す図である。
【図１０】図１０は、実施の形態３の検索結果表示画面の表示例を示す図である。
【図１１】図１１は、実施の形態４のラダー図表示画面の表示例を示す図である。
【図１２】図１２は、実施の形態４の検索結果表示画面の表示例を示す図である。
【図１３】図１３は、実施の形態４の検索結果表示画面の表示例を示す図である。
【図１４】図１４は、実施の形態５の検索結果表示画面の表示例を示す図である。
【発明を実施するための形態】
【００１０】
以下に、本発明にかかる実施の形態のプログラム編集装置、方法、およびプログラムを図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１１】
実施の形態１．
図１は、実施の形態１のプログラム編集装置の使用の一様態を説明する図である。ＰＬＣ２は、１以上（ここでは２つ）のデバイス３に接続されている。デバイス３は、例えば、バルブ、スイッチ、またはセンサである。ＰＬＣ２は、内部に記憶するユーザプログラムに従って、デバイス３を動作させたりデバイス３からの信号を取り込んだりすることができる。ユーザプログラムは、ＰＬＣ２の制御シーケンスを定めるプログラムである。実施の形態においては、ユーザプログラムは、ラダー図の形式により記述されたプログラム（ラダープログラム）であるものとする。
【００１２】
プログラム編集装置１は、ユーザがユーザプログラムを作成したり編集したりすることを支援する。プログラム編集装置１は、ＰＬＣ２と通信線を用いて接続され、作成されたユーザプログラムを、ユーザからの指示を受けてＰＬＣ２に転送する。通信線が準拠する規格は任意である。例えば、USB（Universal  Serial  Bus）、RS232C、などが通信線の規格として採用可能である。ＰＬＣ２の運転中には、プログラム編集装置１はＰＬＣ２と接続されていてもよいし接続されていなくてもよい。
【００１３】
図２は、プログラム編集装置１のハードウェア構成例を示す図である。プログラム編集装置１は、演算装置７、記憶装置８、およびインタフェース装置９を備える。即ち、プログラム編集装置１は、汎用のパーソナルコンピュータと同様の構成を有している。
【００１４】
記憶装置８は、不揮発性メモリと揮発性メモリとの組み合わせによって構成される。不揮発性メモリは、プログラム編集ソフトウェア１０を予め記憶する記録媒体である。プログラム編集ソフトウェア１０は、プログラム編集装置１を動作させるコンピュータプログラムである。また、不揮発性メモリは、電源オフ時においても記憶すべき各種データが保存される、ストレージである。ここでは、プログラム編集装置１によって編集されたユーザプログラム１１が不揮発性メモリに保存される。不揮発性メモリとしては、例えば、フラッシュメモリ、HDD（Hard  Disk  Drive）、SSD（Solid  State  Drive）、光ディスク、磁気ディスク、着脱可能なメモリデバイス、またはこれらの組み合わせが、採用可能である。揮発性メモリとしては、例えばRAM（Random  Access  Memory）が採用可能である。揮発性メモリは、プログラム編集ソフトウェア１０を実行するためのワークエリアを演算装置７に提供する。
【００１５】
演算装置７は、例えば中央演算ユニット（CPU）によって構成される。演算装置７は、プログラム編集ソフトウェア１０を実行することによって、実施の形態の処理部として機能する。演算装置７は、ディスプレイ１２およびユーザインタフェース（I／F）１３に接続される。ディスプレイ１２は、例えば液晶ディスプレイであって、ユーザに対する表示画面を出力する表示装置である。ユーザI／F１３は、マウスなどのポインティングデバイス、またはキーボードであって、ユーザからの入力を受け付ける入力装置である。ユーザI／F１３に入力された情報は演算装置７に送られて演算装置７において処理される。また、演算装置７において表示画面の画像フレームが生成される。生成された画像フレームはディスプレイ１２に送られる。ディスプレイ１２は、演算装置７から送られてきた画像フレームを表示する。
【００１６】
図３は、ディスプレイ１２に表示される表示画面例を示す図である。ディスプレイ１２には、プログラム編集ソフトウェア１０に関する作業領域を示すメイン画面１００が表示されている。メイン画面１００上には、編集中のユーザプログラム１１をラダー図の形式で表示するラダー図表示画面１０１と、検索処理により検索された複数の回路ブロックを表示する検索結果表示画面１０２と、が表示される。検索処理とは、１つの回路ブロックが選択されているとき、選択された回路ブロックを導通させるためのコイルを動作部に有する回路ブロックをユーザプログラム１１から検索する処理である。
【００１７】
なお、検索結果表示画面１０２は、検索処理が行われたときのみメイン画面１００に表示されてもよい。また、メイン画面１００およびメイン画面１００上に表示される各画面（ラダー図表示画面１０１、検索結果表示画面１０２）は、GUI機能を有するものとする。
【００１８】
図４は、ラダー図表示画面１０１の表示例を示す図である。図示するように、ラダー図は、２本の母線２００の間に論理回路が梯子状に描かれて構成される。図中の接点およびコイルは、夫々論理回路を表している。ラダー図は、複数の回路ブロックによって構成される。各回路ブロックは、１つの条件部と１つの動作部とによって構成される。条件部は、接点が直列あるいは並列に接続されたひとかたまりの回路である。動作部は、１以上のコイルが直列に接続されたひとかたまりの回路である。図４に示すラダー図は、回路ブロック２０１、２０２、２０３を含む。例えば、接点X11、接点R01、接点R02、および接点X12の組み合わせが、回路ブロック２０２の条件部に該当し、コイルY01は、回路ブロック２０２の動作部に該当する。番号の前の「X」、「Y」は、夫々入力機器、出力機器を示す。番号の前に「R」を有する接点およびコイルは、内部リレーの一種である。内部リレーとは、ユーザプログラム１１内に接点およびコイルが含まれるリレーである。
【００１９】
ユーザは、例えば、ラダー図表示画面１０１上でポインティングデバイスを操作することによって、接点またはコイルを追加したり削除したりすることができる。また、ユーザは、各論理回路間の接続を変更したりすることができる。ラダー図表示画面１０１にラダー図が表示されている状態で保存コマンドが入力されると、処理部は、表示中のラダー図が示すユーザプログラム１１を記憶装置８に保存する。また、処理部は、ユーザプログラム１１を表示させるコマンドの入力をうけて、ユーザプログラム１１として保存されたラダー図をラダー図表示画面１０１に表示させることができる。処理部は、記憶装置８に保存されているユーザプログラム１１をＰＬＣ２に設定することができる。処理部は、ラダー図表示画面１０１に表示されているラダー図が示すユーザプログラム１１を、記憶装置８に保存することなくＰＬＣ２に設定してもよい。また、処理部は、ＰＬＣ２からユーザプログラム１１を読み出して、読み出したユーザプログラム１１を示すラダー図をラダー図表示画面１０１に表示してもよい。
【００２０】
また、ユーザは、ポインティングデバイスの操作によって、所望の回路ブロックを選択するとともに選択した回路ブロックに対して所望のコマンドを入力することができる。例えば、処理部は、ラダー図表示画面１０１上において回路ブロックを右クリックまたは左クリックする入力を受け付けたとき、その回路ブロックが選択されたことを認識する。処理部は、選択された回路ブロックを強調表示する。強調表示とは、他の回路ブロックと識別可能な表示様態であって、例えば、選択された回路ブロックの周囲に枠を表示したり、選択された回路ブロックの表示色を反転したり、選択された回路ブロックを点滅表示したりすることである。例えば、処理部は、回路ブロックが選択されている状態において右クリックまたは左クリックの入力がなされたとき、コマンド一覧を記述したコンテキストメニューをラダー図表示画面１０１上に表示する。ユーザは、ポインティングデバイスの操作によって、所望のコマンドをコンテキストメニューから選択することができる。ここでは、検索処理を実行するための検索コマンドが少なくとも選択可能である。このように、ユーザは、ポインティングデバイスの操作によって、検索処理の対象の回路ブロックを指定するとともに検索コマンドを入力することができる。
【００２１】
図５は、実施の形態１の検索結果表示画面１０２の表示例を示す図である。これは、検索対象として回路ブロック２０２のコイルY01の駆動に関連する回路を検索し、抽出されたものである。
【００２２】
検索結果表示画面１０２には、階層構造がユーザにとって認識可能な様態で複数の回路ブロックが表示される。同階層の回路ブロックが複数存在する場合には、同階層に属する複数の回路ブロックは、同じ列（即ち検索結果表示画面１０２における縦方向）に配列されて表示される。ここでは、第１階層を最高階層とし、階層が下るに従って階層数が昇順に増加するものとする。即ち、例えば第２階層は第１階層の１つ下位の階層である。検索結果表示画面１０２の最も左側の列に最高階層の回路ブロックが表示される。そして、検索結果表示画面１０２には、第i＋１階層の回路ブロックは、第i階層の回路ブロックが表示される列の右側に隣接する列に表示される。検索コマンドが入力された際にラダー図表示画面１０１において選択された回路ブロックが、検索結果表示画面１０２において最高階層の回路ブロックとして表示される。図５の例によれば、回路ブロック２０２が第１階層の回路ブロックとして表示され、回路ブロック２０４〜２０６が夫々第２階層の回路ブロックとして表示され、回路ブロック２０７が第３階層の回路ブロックとして表示されている。
【００２３】
検索結果表示画面１０２には、回路ブロック間を相互に接続する接続線２１０が表示され、回路ブロック同士の親子関係が示される。第２階層より下位の階層に属する全ての回路ブロックは、１つ上位の階層に属する何れか１つの回路ブロックと親子の関係をもつ。第i階層の回路ブロックと第i＋１階層の回路ブロックとの間には、次に説明する関係がある。即ち、第i階層の回路ブロックの条件部に含まれる接点を開閉するコイルを動作部に有する全ての回路ブロックは、その第i階層の回路ブロックを親ノードとする第i＋１階層の回路ブロックとして検索結果表示画面１０２に表示される。親ノードと子ノードとの間は、接続線２１０で結ばれる。このように、検索結果表示画面１０２には、検索された複数の回路ブロックが、ツリー構造の様態で表示される。
【００２４】
例えば、回路ブロック２０２の条件部は、ユーザプログラム１１内のコイルによって開閉される接点として、接点R01および接点R02を含んでいる。接点R01を開閉するコイルR01は、回路ブロック２０４の動作部および回路ブロック２０５の動作部に含まれている。また、接点R02を開閉するコイルR02は、回路ブロック２０６の動作部に含まれている。よって、回路ブロック２０２は、回路ブロック２０４、回路ブロック２０５、および回路ブロック２０６と夫々接続線２１０で接続される。さらに、回路ブロック２０４の条件部は、内部リレーの接点R11を含んでいる。接点R11を開閉するコイルR11は、回路ブロック２０７の動作部に含まれている。よって、回路ブロック２０４と回路ブロック２０７とは接続線２１０で接続される。回路ブロック２０２は、第１階層に属し、回路ブロック２０４、回路ブロック２０５、および回路ブロック２０６は第２階層に属し、回路ブロック２０７は第３階層に属する。
【００２５】
なお、１つの親ノードが複数の接点を有し、複数の接点が夫々別々の子ノードと接続される場合には、処理部は、異なる接点にかかる子ノード同士が互いに区別可能な様態で検索結果表示画面１０２に表示してもよい。
【００２６】
インタフェース装置９は、プログラム編集装置１がＰＬＣ２に接続するためのインタフェースである。演算装置７は、インタフェース装置９を介してＰＬＣ２と通信を実行する。演算装置７は、インタフェース装置９を介してＰＬＣ２と接続されることによって、ユーザプログラム１１をＰＬＣ２に設定したり、ＰＬＣ２からユーザプログラム１１を読み出したりすることができる。
【００２７】
図６は、実施の形態１の検索処理にかかる動作を説明するフローチャートである。まず、処理部は、回路ブロックを選択する入力と検索コマンドの入力とを受け付ける（S１）。すると、処理部は、選択された回路ブロックを第１階層の回路ブロックとして記憶する（S２）。S２においては、処理部は、選択された回路ブロックを、例えばワークエリアに記憶する。処理部は、S４〜S１０のループ処理により使用するパラメータiを、値「１」で初期化する（S３）。パラメータiは例えばワークエリアに記憶される。
【００２８】
S４〜S７の処理は、着目ブロックが含む接点を開閉するコイルを有する回路ブロックをラダー図から検索する単位検索処理を構成する。
【００２９】
具体的には、処理部は、第i階層の回路ブロックを１つ選択し、選択した回路ブロックを着目ブロックに設定する（S４）。i＝１の場合には、S１の処理によって選択された回路ブロックが、着目ブロックに設定される。なお、２以上の着目ブロックが同時に存在することはないものとする。
【００３０】
処理部は、着目ブロックに内部リレーの接点があるか否かを判定する（S５）。着目ブロックに内部リレーの接点がある場合（S５、Yes）、処理部は、その接点を開閉するコイルを有する回路ブロックを、ラダー図表示画面１０１に表示中のラダー図から抽出する（S６）。なお、ラダー図表示画面１０１に表示中のラダー図は、ユーザプログラム１１に対応する。処理部は、ラダー図表示画面１０１に表示中のラダー図から回路ブロックを抽出することは、ユーザプログラム１１から回路ブロックを抽出することと同義である。S６の処理の後、処理部は、抽出した回路ブロックを、着目ブロックを親ノードとする第i＋１階層の回路ブロックとして記憶する（S７）。着目ブロックに内部リレーの接点がない場合（S５、No）、処理部は、S６およびS７の処理をスキップする。
【００３１】
なお、着目ブロックに内部リレーの接点が複数存在する場合には、処理部は、S６の処理において、全ての内部リレーの接点について回路ブロックを抽出する。処理部は、S６の処理において、接点毎に全ての回路ブロックを抽出する。異なる接点に属する子ノード同士を区別可能な様態で各回路ブロックを検索結果表示画面１０２に表示する場合には、処理部は、例えば、第i＋１階層の回路ブロックを着目ブロックに含まれる接点毎に分類して記憶する。
【００３２】
続いて、処理部は、第i階層の回路ブロックのうち、未選択の回路ブロックがあるか否かを判定する（S８）。第i階層の回路ブロックのうち、未選択の回路ブロックがある場合（S８、Yes）、処理部は、S４の処理を再び実行する。第i階層の回路ブロックの全てが選択済みである場合（S８、No）、処理部は、第i＋１階層の回路ブロックを記憶しているか否かを判定する（S９）。処理部は、第i＋１階層の回路ブロックを記憶している場合（S９、Yes）、パラメータiの値を「１」だけインクリメントし（S１０）、その後、S４の処理を再び実行する。
【００３３】
処理部は、第i＋１階層の回路ブロックを記憶していない場合（S９、No）、記憶している全ての階層の回路ブロックを検索結果表示画面１０２に表示する（S１１）。処理部は、全ての階層の回路ブロックを、図５に示すように階層構造が判別可能かつ親ノードと子ノードとの関係が判別可能な様態で、検索結果表示画面１０２に表示する。S１１の処理の後、処理部は、検索処理にかかる動作を終了する。
【００３４】
図７および図８は、実施の形態１と比較される、検索結果の表示方法を示す図である。例えば図７によれば、画面３００には、検索処理によって検索された回路ブロック２０４〜２０７が一列に羅列されて表示されている。また、図８によれば、画面４００には、ユーザプログラム１１を示すラダー図が表示される。そして、検索処理によって検索された回路ブロック２０４〜２０７のうちのラダー図における所定の位置（例えばラダー図の先頭）に近い１つの回路ブロック２０４が画面４００上において強調表示される。そして、所定の入力（例えば所定のキーによる入力）が行われる毎に、強調表示の対象が、回路ブロック２０５〜２０７のラダー図上における並びの順番（ここでは回路ブロック２０５、回路ブロック２０７、回路ブロック２０６の順番）でジャンプせしめられる。図７および図８に示す表示方法によれば、選択した回路ブロック２０２に含まれる接点を直接に開閉するコイルを有する回路ブロック２０４〜２０６と、回路ブロック２０４〜２０６のうちの回路ブロック２０４に含まれる接点を直接に開閉することで回路ブロック２０２に含まれる接点を間接に開閉するコイルを有する回路ブロック２０７と、が同列に表示されている。したがって、ユーザは、検索された各回路ブロック間の関連性を理解することが困難である。
【００３５】
これに対し、実施の形態１によれば、処理部は、単位検索処理によって回路ブロックを検索し、検索された回路ブロックを新しい検索対象として単位検索処理を繰り返し実行し、各単位検索処理により検索された回路ブロックを、その回路ブロックが検索された際の検索対象の回路ブロックの１つ下位の階層の回路ブロックとして検索結果表示画面１０２に表示する。ユーザは、例えば回路ブロック２０４〜２０６と、回路ブロック２０７とが異なる階層に属することが視認可能であるので、検索された回路ブロック間の関連性を簡単に理解することが可能となる。回路ブロック２０４〜２０７は、回路ブロック２０２が有するコイルY01を駆動するための条件を構成する。即ち、プログラム編集装置１は、所望のコイルを駆動するための条件を記述した箇所をわかりやすく提示することができる。
【００３６】
また、処理部は、各単位検索処理により検索された回路ブロックの夫々を、その回路ブロックが検索された際の検索対象の回路ブロックと接続線２１０で接続して検索結果表示画面１０２に表示する。これにより、ユーザは、検索結果表示画面１０２に表示されているどの回路ブロックについても、その回路ブロックに含まれる接点を開閉するコイルを有する全ての回路ブロックを簡単に理解することが可能となる。
【００３７】
また、処理部は、検索結果表示画面１０２に表示されている回路ブロックに対する編集入力を検索結果表示画面１０２を介して受け付けることが可能に構成されてもよい。処理部は、検索結果表示画面１０２に表示されている回路ブロックを編集する入力を受け付けたとき、入力された編集内容をユーザプログラム１１に反映させる。ユーザは回路ブロックを検索した後に検索された回路ブロックをラダー図表示画面１０１から回路ブロックを探すことなく速やかに修正することができるので、編集操作の操作性が向上する。
【００３８】
また、処理部は、検索結果表示画面１０２に、予め設定された階層より下位の階層の回路ブロックを表示しないように構成されてもよい。表示しない階層は、ユーザによって可変に構成されてもよい。
【００３９】
実施の形態２．
処理部は、検索結果表示画面１０２において、検索された回路ブロックのうち一部の階層に属する回路ブロックを隠してもよい。図９は、実施の形態２の検索結果表示画面１０２の表示例を示す図である。
【００４０】
まず、処理部は、回路ブロック２０２が選択されるとともに検索コマンドが入力されると、図９の上段に示すように、第１階層に回路ブロック２０２を表示し、第２階層以下に属する回路ブロックの表示を隠す。そして、処理部は、回路ブロック２０２に接続された接続線２１０の中央部分に、「＋」の形を示す表示オブジェクト２１１を表示する。
【００４１】
表示オブジェクト２１１がポインティングデバイスの操作により押下されると、処理部は、その表示オブジェクト２１１を中央に有する接続線２１０の下位側に接続されている回路ブロックの表示を展開するための表示コマンドが入力されたものとして認識する。即ち、ユーザは、所望の接続線２１０を指定して表示コマンドを入力することができる。回路ブロック２０２に接続された接続線２１０に表示されている表示オブジェクト２１１が押下されると、図９の中段の検索結果表示画面１０２のように、処理部は、表示オブジェクト２１１を「−」の形を示す表示オブジェクト２１２に変更する。そして、処理部は、回路ブロック２０２を親ノードとする子ノードに相当する回路ブロック２０４〜２０６の表示を展開する。処理部は、回路ブロック２０４の子ノードに相当する回路ブロック２０７の表示を隠す。そして、処理部は、子ノードが存在する回路ブロック２０４の下位側（即ち回路ブロック２０４の右側）に接続線２１０を接続して表示し、その接続線２１０の中央部分に、表示オブジェクト２１１を表示する。
【００４２】
さらに回路ブロック２０４に接続された接続線２１０に表示されている表示オブジェクト２１１が押下されると、図９の下段の検索結果表示画面１０２のように、処理部は、表示オブジェクト２１１を「−」の形を示す表示オブジェクト２１２に変更する。そして、処理部は、回路ブロック２０４を親ノードとする子ノードに相当する回路ブロック２０７を表示する。回路ブロック２０７を親ノードとする子ノードの回路ブロックを有さない。
【００４３】
表示オブジェクト２１２がポインティングデバイスの操作により押下されると、処理部は、その表示オブジェクト２１２を中央に有する接続線２１０の下位側に接続されている、回路ブロックの表示を隠すための表示コマンドが入力されたものとして認識する。例えば図９の下段に示す状態の検索結果表示画面１０２において、回路ブロック２０２に接続された接続線２１０に表示されている表示オブジェクト２１２が押下されると、処理部は、その接続線２１０の下位側に、直接に接続されている回路ブロック２０４〜２０６と、間接に接続されている回路ブロック２０７と、の表示を隠し、図９の上段に示す状態の検索結果表示画面１０２を表示する。
【００４４】
このように、実施の形態２によれば、処理部は、下位側に接続される回路ブロックの表示を隠したり展開したりする表示コマンドを接続線２１０毎に受け付けることができる。処理部は、表示コマンドの入力を受け付けたとき、受け付けた表示コマンドに応じて各単位検索処理により検索された回路ブロックの検索結果表示画面１０２における表示を隠したり展開したりする。これにより、ユーザは、検索された回路ブロック群のうちの所望の部分のみを表示させ、他の部分を非表示にさせることができるので、階層構造の全体をより簡単に理解することが可能となる。また、視認性が向上する。
【００４５】
また、処理部は、表示を展開する表示コマンドを受け付けたとき、指定された接続線に直接に接続される回路ブロックの表示を展開し、表示が展開された回路ブロックにさらに下位の階層の回路ブロックが接続されている場合、当該下位の階層の回路ブロックの表示を隠す。これによりユーザは、順次表示コマンドを入力することによって、１階層ずつ表示を展開させることが可能となる。
【００４６】
なお、処理部は、初期状態で全ての回路ブロックを表示するか、所定の階層よりも下位の階層の回路ブロックを隠すか、が予めユーザにより設定されてもよい。
【００４７】
実施の形態３．
図１０は、実施の形態３の検索結果表示画面１０２の表示例を示す図で、一階層ごとに結果を表示する様子を示した図である。関連する回路として検索された回路ブロックを図１０に示すように一階層分、つまり接点R01、R02に直接関わる回路ブロックのみを処理部は表示する。それより下位の階層を表示する場合は図１０に示す例のように、コイルR01に関連する一つの回路ブロックを検索対象として選択する。これにより、図５に示す回路と同じく下位の階層まで表示が可能となる。
【００４８】
実施の形態３によれば、処理部は、検索結果表示画面１０２に表示された回路ブロックのうちの１つの回路ブロックを新たな検索対象とする検索コマンドの入力を受け付けることができる。検索結果表示画面１０２に表示されている回路ブロック２０４が選択されると、図１０の枠２２０に示すように、回路ブロック２０４が強調表示される。この状態で検索コマンドが入力されると、処理部は、回路ブロック２０４を着目ブロックとする単位検索処理を実行する。回路ブロックが検索されると、処理部は、回路ブロック２０４の１つ下位の階層の回路ブロックとして前記検索された回路ブロックを検索結果表示画面１０２に表示する。
【００４９】
このように、実施の形態３によれば、検索結果表示画面１０２に表示された回路ブロックのうちの１つの回路ブロックを新たな検索対象とする検索コマンドの入力を受け付けたとき、新たな検索対象の回路ブロックが含む接点を開閉するコイルを有する回路ブロックをラダー図から検索する単位検索処理を実行する。そして、処理部は、検索された回路ブロックを新たな検索対象の回路ブロックの下位の階層の回路ブロックとして検索結果表示画面１０２に表示する。これにより、ユーザは、回路ブロック２０２の動作に関連する複数の回路ブロック２０４〜２０７を階層構造を順次掘り下げながら検索し、表示させることができる。そして、回路ブロック２０４〜２０６と、回路ブロック２０７とが異なる階層に属することが視認可能であるので、回路ブロック間の関連性を簡単に理解することが可能となる。即ち、プログラム編集装置１は、所望のコイルを駆動するための条件を記述した箇所をわかりやすく提示することができる。
【００５０】
実施の形態４．
実施の形態３においては、処理部は、選択された回路ブロックが条件部に有する各接点を開閉するコイルを有する回路ブロックを検索した。検索対象の接点がユーザによって選択されてもよい。
【００５１】
図１１は、実施の形態４のラダー図表示画面１０１の表示例を示す図である。ラダー図表示画面１０１において、ユーザは、ポインティングデバイスの操作によって接点を選択することができる。処理部は、選択された接点を強調表示する。図１１の例によれば、回路ブロック２０２が有する接点R01が選択されている。そして、選択された接点R01の周囲は枠２３０で囲まれて表示されている。処理部は、接点が選択されている状態において右クリックまたは左クリックの入力がなされたとき、コマンド一覧を記述したコンテキストメニュー２３１をラダー図表示画面１０１上に表示する。ユーザは、ポインティングデバイスの操作によって、所望のコマンドをコンテキストメニュー２３１から選択することができる。図１１に示すコンテキストメニュー２３１によれば、検索処理を実行するための検索コマンドとして「回路検索」が選択可能である。このように、実施の形態４においては、検索コマンドは、接点の指定の入力を含む。
【００５２】
処理部は、指定された接点を開閉させるコイルを有する回路ブロックを検索し、検索された回路ブロックを、指定された接点を有する回路ブロックの１つ下位の階層の回路ブロックとして検索結果表示画面１０２に表示する。
【００５３】
図１２は、実施の形態４の検索結果表示画面１０２の表示例を示す図である。検索結果表示画面１０２には、接点R01を開閉するコイルR01を有する回路ブロック２０４および回路ブロック２０５が検索され、表示されている。
【００５４】
また、処理部は、検索結果表示画面１０２に表示された回路ブロックのうちの任意の回路ブロックに含まれる接点を指定した検索コマンドの入力を受け付けることができる。図１２において、回路ブロック２０４に含まれる接点R11が選択されると、処理部は、接点R11の周囲に枠２３２を表示する。この状態で検索コマンドが入力されると、処理部は、接点R11を開閉するコイルR11を有する回路ブロックを検索する。そして、処理部は、図１３に示すように、検索された回路ブロック２０７を、回路ブロック２０４の１つ下位の階層の回路ブロックとして検索結果表示画面１０２に表示する。
【００５５】
このように、実施の形態４においては、検索コマンドは、接点の指定の入力を含む。処理部は、指定された接点を開閉させるコイルを有する回路ブロックを検索し、検索された回路ブロックを、指定された接点を有する回路ブロックの１つ下位の階層の回路ブロックとして検索結果表示画面１０２に表示する。これにより、ユーザは、所望の接点に関連する回路ブロックを階層を掘り下げながら検索することが可能となる。
【００５６】
実施の形態５．
処理部は、ＰＬＣ２がユーザプログラム１１を実行している際に、検索結果表示画面１０２に表示されている回路ブロックに含まれる各接点および各コイルの動作状態をインタフェース装置９を介して取得することができるように構成されてもよい。処理部は、取得した各接点および各コイルの動作状態を、ユーザが視認可能な様態で検索結果表示画面１０２に表示する。
【００５７】
図１４は、実施の形態５の検索結果表示画面１０２の表示例を示す図である。この図によれば、接点R01、接点X22、接点X23、接点X32、および接点X42が閉状態であり、回路ブロック２０４のコイルR01が導通状態であることが表示されている。
【００５８】
なお、処理部は、接点の動作状態のみを取得し表示してもよい。また、処理部は、コイルの動作状態のみを取得し表示してもよい。
【００５９】
このように実施の形態５によれば、検索結果表示画面１０２に表示された回路ブロックに含まれる各接点または各コイルの動作状態を、ユーザが視認可能な様態で検索結果表示画面１０２に表示する。これにより、ユーザは、検索された回路ブロックの状態をリアルタイムで確認できるので、バグのある回路ブロックを効率よく発見することが可能となる。
【産業上の利用可能性】
【００６０】
以上のように、本発明にかかるプログラム編集装置、方法、およびプログラムは、ＰＬＣの制御シーケンスを定めるプログラムを編集するためのプログラム編集装置、方法、およびプログラムに適用して好適である。
【符号の説明】
【００６１】
１  プログラム編集装置、２  ＰＬＣ、３  デバイス、７  演算装置、８  記憶装置、９  インタフェース装置、１０  プログラム編集ソフトウェア、１１  ユーザプログラム、１２  ディスプレイ、１３  ユーザI／F、１００  メイン画面、１０１  ラダー図表示画面、１０２  検索結果表示画面、２００  母線、２０１〜２０７  回路ブロック、２１０  接続線、２１１，２１２  表示オブジェクト、２２０，２３０，２３２  枠、２３１  コンテキストメニュー、３００，４００  画面。
【要約】
【課題】コイルを駆動するための条件を記述した箇所をわかりやすく提示すること。
【解決手段】処理部は、ユーザから検索対象ブロックが指定され、指定された検索対象ブロックが含む接点を開閉するコイルを有する回路ブロックをラダー図から検索する単位検索処理を実行する。そして、処理部は、単位検索処理によって検索された回路ブロックをさらに検索対象として単位検索処理を繰り返し実行する。そして、処理部は、各単位検索処理により検索された回路ブロックを、その回路ブロックが検索された際の検索対象の回路ブロックの１つ下位の階層の回路ブロックとして検索結果表示画面１０２に表示する。
【選択図】図５【図１】
0005762601.tif 000002
【図２】
0005762601.tif 000003
【図３】
0005762601.tif 000004
【図４】
0005762601.tif 000005
【図５】
0005762601.tif 000006
【図６】
0005762601.tif 000007
【図７】
0005762601.tif 000008
【図８】
0005762601.tif 000009
【図９】
0005762601.tif 000010
【図１０】
0005762601.tif 000011
【図１１】
0005762601.tif 000012
【図１２】
0005762601.tif 000013
【図１３】
0005762601.tif 000014
【図１４】
0005762601.tif 000015