(57)【要約】      （修正有）【課題】制御プログラム開発を効果的に支援することが可能な環境を提供する。【解決手段】制御対象を制御する制御装置において実行される制御プログラムを表示する情報処理装置であって、前記制御プログラムを、当該制御プログラムを構成する命令要素を示すオブジェクト同士を繋いだ回路態様で表示するプログラム表示手段と、前記回路態様で表示されたオブジェクトのうちの特定のオブジェクトの選択に応じて、当該特定のオブジェクトが示す命令の実行に関する情報であって、前記回路態様で表示されている状態において示されていない情報を示す追加オブジェクトを、前記回路態様で表示されているオブジェクトの状態を維持して追加で表示する追加表示手段とを備える。【選択図】図１
2020017225.tif 000002
【特許請求の範囲】
【請求項１】
制御対象を制御する制御装置において実行される制御プログラムを表示する情報処理装置であって、
前記制御プログラムを、当該制御プログラムを構成する命令要素を示すオブジェクト同士を繋いた回路態様で表示するプログラム表示手段と、
前記回路態様で表示されたオブジェクトのうちの特定のオブジェクトの選択に応じて、当該特定のオブジェクトが示す命令の実行に関する情報であって、前記回路態様で表示されている状態において示されていない情報を示す追加オブジェクトを、前記回路態様で表示されているオブジェクトの状態を維持して追加で表示する追加表示手段とを備える、情報処理装置。
【請求項２】
前記追加表示手段は、前記回路態様で表示されているオブジェクトの密集度合いに基づいて前記追加オブジェクトの位置を決定する、請求項１に記載の情報処理装置。
【請求項３】
前記追加表示手段は、前記追加オブジェクトと前記回路態様で表示されているオブジェクトとの重なる面積が相対的に小さくなるように前記追加オブジェクトの位置を決定する、請求項１または請求項２に記載の情報処理装置。
【請求項４】
前記追加表示手段は、前記選択された特定のオブジェクトからの距離に基づいて前記追加オブジェクトの位置を決定する、請求項１に記載の情報処理装置。
【請求項５】
前記追加表示手段は、前記追加オブジェクトと前記回路態様で表示されているオブジェクトとの重なり度合いと、前記選択された特定のオブジェクトからの距離とに基づいて前記追加オブジェクトの位置を決定する、請求項１に記載の情報処理装置。
【請求項６】
前記追加表示手段は、前記回路態様で表示されているオブジェクトを予め定められた形状にモデル化することで、当該回路態様で表示されているオブジェクトの表示面積および表示位置を取得する、請求項１〜請求項５のうちいずれかに記載の情報処理装置。
【請求項７】
前記追加表示手段は、前記選択された特定のオブジェクトを中心に、前記追加オブジェクトを表示する位置を探索する、請求項１〜請求項６のうちいずれかに記載の情報処理装置。
【請求項８】
前記追加表示手段は、前記回路態様で表示されたオブジェクトのうちの前記選択された特定のオブジェクトと隣接する位置に配置されたオブジェクトと、当該選択された特定のオブジェクトとの間の領域に、前記追加オブジェクトが収まらない場合に、前記回路態様で表示されたプログラムの外に当該追加オブジェクトを表示する、請求項７に記載の情報処理装置。
【請求項９】
制御対象を制御する制御装置において実行される制御プログラムを表示するための表示プログラムであって、前記表示プログラムはコンピュータに、
前記制御プログラムを、当該制御プログラムを構成する命令要素を示すオブジェクト同士を繋いた回路態様に含まれるオブジェクトのうちの特定のオブジェクトの選択を受け付けるステップと、
前記特定のオブジェクトの選択を受け付けた場合に、当該特定のオブジェクトが示す命令の実行に関する情報であって、前記回路態様で表示されている状態において示されていない情報を示す追加オブジェクトを、前記回路態様で表示されているオブジェクトの状態を維持して追加で表示するステップと、を実行させる、表示プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、制御対象を制御する制御装置において実行される制御プログラムを表示する情報処理装置およびそれを実現するための表示プログラムに関する。
【背景技術】
【０００２】
様々な製造現場において、ＰＬＣ（Programmable Logic Controller）などの制御装置が導入されている。このような制御装置は、一種のコンピュータであり、製造装置や製造設備などに応じて設計されたユーザプログラムに含まれる制御プログラムが実行される。このような制御プログラムは、制御装置とは別に用意された開発環境にて作成される。
【０００３】
ユーザは、制御プログラムを作成するフェーズ、制御プログラムの動作を確認するフェーズ、制御プログラムのバグを修正するフェーズなど、様々な場面で制御プログラムを表示する。そのため、開発を効率的に進めることのできる制御プログラムの表示が求められている。
【０００４】
例えば、特開２００４−２８０３４１号公報（特許文献１）は、ファンクションブロック呼び出し命令の表示形態として、全ての複数の入出力端子を表示する全表示形態と、ラダー回路と連結していない入出力端子を表示しない簡易矩形表示形態を持つ装置を開示する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−２８０３４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、特許文献１に開示の装置では、ファンクションブロック呼出し命令のような一つの命令要素の表示形態については鑑みられてはいたものの、一つの命令要素を詳細に表示する場合の他の命令要素の表示形態については鑑みられていなかった。
【０００７】
本開示の一つの目的は、シーケンスプログラム開発を効果的に支援することが可能な環境を提供することである。
【課題を解決するための手段】
【０００８】
本開示の一例によれば、制御対象を制御する制御装置において実行される制御プログラムを表示する情報処理装置が提供される。情報処理装置は、制御プログラムを、制御プログラムを構成する命令要素を示すオブジェクト同士を繋いた回路態様で表示するプログラム表示手段と、回路態様で表示されたオブジェクトのうちの特定のオブジェクトの選択に応じて、特定のオブジェクトが示す命令の実行に関する情報であって、回路態様で表示されている状態において示されていない情報を示す追加オブジェクトを、回路態様で表示されているオブジェクトの状態を維持して追加で表示する追加表示手段とを含む。
【０００９】
この開示によれば、制御プログラムの一部が示す情報と、制御プログラム全体の流れとが効果的に表示されるため、制御プログラム開発を効果的に支援することが可能な環境を提供することができる。
【００１０】
上述の開示において、追加表示手段は、前記回路態様で表示されているオブジェクトの密集度合いに基づいて前記追加オブジェクトの位置を決定する。
【００１１】
この開示によれば、回路態様で表示されているプログラムに含まれるオブジェクトの配置状況に応じた適当な位置に追加オブジェクトを表示することができる。
【００１２】
上述の開示において、追加表示手段は、追加オブジェクトと回路態様で表示されているオブジェクトとの重なる面積が相対的に小さくなるように追加オブジェクトの位置を決定する。
【００１３】
この開示によれば、命令要素を示すオブジェクトが新たに追加で表示される追加オブジェクトで隠れてしまうことを防止することができる。その結果、より多くの情報を提供することができる。
【００１４】
上述の開示において、追加表示手段は、選択された特定のオブジェクトからの距離に基づいて追加オブジェクトの位置を決定する。
【００１５】
この開示によれば、互いに共通する命令を示すオブジェクトを関連付けて表示することができる。
【００１６】
上述の開示において、追加表示手段は、追加オブジェクトと回路態様で表示されているオブジェクトとの重なり度合いと、選択された特定のオブジェクトからの距離とに基づいて追加オブジェクトの位置を決定する。
【００１７】
この開示によれば、互いに共通する命令を示すオブジェクトを関連付けて表示しつつ、他のオブジェクトを追加オブジェクトで隠してしまうことを防止することができる。
【００１８】
上述の開示において、追加表示手段は、回路態様で表示されているオブジェクトを予め定められた形状にモデル化することで、回路態様で表示されているオブジェクトの表示面積および表示位置を取得する。
【００１９】
この開示によれば、オブジェクトの表示面積および表示位置を容易に取得することができる。
【００２０】
上述の開示において、追加表示手段は、選択された特定のオブジェクトを中心に、追加オブジェクトを表示する位置を探索する。
【００２１】
この開示によれば、選択された特定のオブジェクトと関連した適当な位置を早くに探索することができる。その結果、表示位置を決定する処理の負担を軽減することができる。
【００２２】
上述の開示において、追加表示手段は、回路態様で表示されたオブジェクトのうちの選択された特定のオブジェクトと隣接する位置に配置されたオブジェクトと、選択された特定のオブジェクトとの間の領域に、追加オブジェクトが収まらない場合に、回路態様で表示されたプログラムの外に追加オブジェクトを表示する。
【００２３】
この開示によれば、オブジェクトを隠すことなく追加オブジェクトを表示することができるとともに、追加オブジェクトの表示位置の決定方法に法則性があるため、ユーザはどこに追加オブジェクトが表示されるかを予測しやすく、表示された追加オブジェクトを探しやすい。
【００２４】
本開示の別の一例によれば、制御対象を制御する制御装置において実行される制御プログラムを表示するための表示プログラムが提供される。表示プログラムはコンピュータに、制御プログラムを、制御プログラムを構成する命令要素を示すオブジェクト同士を繋いた回路態様に含まれるオブジェクトのうちの特定のオブジェクトの選択を受け付けるステップと、特定のオブジェクトの選択を受け付けた場合に、特定のオブジェクトが示す命令の実行に関する情報であって、回路態様で表示されている状態において示されていない情報を示す追加オブジェクトを、回路態様で表示されているオブジェクトの状態を維持して追加で表示するステップと、を実行させる。
【００２５】
この開示によれば、制御プログラムの一部が示す情報と、制御プログラム全体の流れとが効果的に表示されるため、制御プログラム開発を効果的に支援することが可能な環境を提供することができる。
【発明の効果】
【００２６】
本開示の一例によれば、制御プログラム開発を効果的に支援することが可能な環境を提供することができる。
【図面の簡単な説明】
【００２７】
【図１】本実施の形態に係る制御プログラムの表示の遷移を示す図である。
【図２】サポート装置を適用可能な制御システムの構成例を示す模式図である。
【図３】サポート装置のハードウェア構成例を示す模式図である。
【図４】ユーザインターフェイス画面の一例を示す図である。
【図５】オブジェクトの一例を示す図である。
【図６】追加表示後のプログラム表示領域の一例を示す図である。
【図７】詳細オブジェクトの表示例を示した図である。
【図８】（ａ）は、詳細オブジェクト４４０を空いている領域に表示する例を示した図であり、（ｂ）は、選択オブジェクト４５０と近い位置に表示する例を示した図である。
【図９】詳細オブジェクト表示処理のフローチャートである。
【図１０】探索処理のフローチャートである。
【図１１】右母線の右側を表示領域としたときの表示例を示す図である。
【図１２】Ｄ１方向が探索対象であるときの探索手法の概念図である。
【図１３】Ｄ１方向が探索対象であるときの探索結果の一例を示す図である。
【図１４】Ｄ２方向が探索対象であるときの探索手法の概念図である。
【図１５】Ｄ２方向が探索対象であるときの探索結果の一例を示す図である。
【図１６】追加表示がされる前後のプログラム表示領域の一例を示す図である。
【図１７】サポート装置のソフトウェア構成を示す模式図である。
【図１８】（ａ）は、第１の変形例に係る詳細オブジェクト４４０ａを示す図であり、（ｂ）は、第２の変形例に係る詳細オブジェクト４４０ｂを示す図である。
【図１９】変形例における探索処理のフローチャートである。
【発明を実施するための形態】
【００２８】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【００２９】
§１  適用例
図１を参照して、本発明が適用される場面の一例について説明する。図１は、本実施の形態に係る制御プログラムの表示の遷移を示す図である。制御プログラムは、ＦＡ分野で使用される各種装置を制御する制御装置が実行するプログラムである。
【００３０】
本明細書において、「制御プログラム」は、ＦＡ分野で使用される各種装置を制御する制御装置の基本的な機能を提供するためのプログラムと、制御対象に応じて任意に設計されるプログラム（「ユーザプログラム」ともいう）とを包含する概念である。但し、制御プログラムは、制御対象に応じて任意に設計されるプログラムのみを含む場合もある。
【００３１】
国際規格ＩＥＣ６１１３１−３においては、ＰＬＣアプリケーションのプログラミング言語として、ラダーダイアグラム（ＬＤ：Ladder Diagram）、ファンクションブロックダイアグラム（ＦＢＤ：Function Block Diagram）、シーケンシャルファンクションチャート（ＳＦＣ：Sequential Function Chart）、インストラクションリスト（ＩＬ：Instruction List）、ストラクチャードテキスト（ＳＴ：Structured Text）の５種類を規定する。本発明に係る制御プログラムは、複数の命令要素を互いに繋いだ回路態様で表示可能なプログラミング言語で記述されているプログラムを対象としており、具体的には、ＬＤ，ＦＢＤ，またはＳＦＣで記述されたプログラムを対象とする。以下では、典型例としてＬＤで記述されているものとして説明する。なお、プログラム全体を複数の言語で記述する方式を採用する場合に、制御プログラム内にＳＴまたはＩＬで記述されたプログラムが含まれていてもよい。
【００３２】
ユーザは、制御プログラムを作成するフェーズ、制御プログラムの動作を確認するフェーズ、制御プログラムのバグを修正するフェーズなど、様々な場面で制御プログラムを確認する。制御プログラムを表示する情報処理装置は、確認時の状況に応じた装置が提供されており、たとえば、プログラムの開発を支援するサポート装置２００、制御装置に制御される各種装置を監視するプログラマブル表示器などが提供されている。以下では、典型例として、サポート装置２００にプログラムの構成が表示されるものとして説明する。
【００３３】
サポート装置２００は、サポート装置２００が備えるディスプレイ２１４に、制御プログラムに含まれる複数の命令要素を互いに繋いだ回路態様で制御プログラムを表示する。表示先は、サポート装置２００が備えるディスプレイ２１４を一例としたが、サポート装置２００とは異なる装置が備える表示部であってもよい。
【００３４】
サポート装置２００は、制御プログラムの全体を表示することができないような場合、制御プログラムのうちの指定された部分の命令を回路態様で表示する。たとえば、図１においては、制御プログラム全体２７４ａのうちの一部２７４ｂが回路図４００としてディスプレイ２１４に表示されているものとする。
【００３５】
各命令要素は、各々、オブジェクト４２０で表示される。すなわち、回路図４００は、複数のオブジェクト４２０と、オブジェクト４２０同士を繋ぐ線４３０から構成されている。なお、図１においては、図示を簡略化するため、符号を一部省略している。
【００３６】
ユーザは、マウスやキーボードなどの入力部を操作することで、表示されているオブジェクト４２０のうち、特定のオブジェクト４２０を選択することができる。サポート装置２００は、表示されているオブジェクト４２０のうち、選択されたオブジェクト４２０（「選択オブジェクト４５０」ともいう）が示す命令の実行に関する情報を示す詳細オブジェクト４４０を追加で表示する。なお、図１においては、追加で表示される前後でディスプレイの大きさを便宜的に変化させている。
【００３７】
詳細オブジェクト４４０が示す情報は、詳細オブジェクト４４０を追加で表示する前の回路態様で表示されている状態（追加表示前の状態）では示されていない情報を含む。たとえば、図１において、追加表示前の状態では、選択オブジェクト４５０が示す命令の名称４２８が示されている。一方、詳細オブジェクト４４０には、選択オブジェクト４５０が示す命令の詳細が示されている。具体的には、図１においては、選択オブジェクト４５０が示す命令において用いられるパラメータ（表の「Parameter Name」欄）ごとに、そのパラメータの型（表の「Data Type」欄）、そのパラメータに対して付けられた変数名（表の「Variable Name」欄）、および、そのパラメータに入力された値（表の「Value」欄）が示されている。
【００３８】
サポート装置２００は、詳細オブジェクト４４０を追加で表示する場合に、追加で表示する前に表示していた回路図４００を維持したまま詳細オブジェクト４４０を表示する。回路図４００を維持したままとは、追加で表示する前に表示されていた回路図４００に含まれる各オブジェクト４２０の相対的な位置関係を変えることなく、追加で表示する前に表示されていた全てのオブジェクト４２０を表示したままとすることをいう。換言すると、サポート装置２００は、回路態様で表示されているオブジェクト４２０の状態を維持したまま、詳細オブジェクト４４０を追加で表示する。
【００３９】
このように、詳細オブジェクト４４０を追加で表示する場合に、回路態様で表示されているオブジェクト４２０の状態を維持したままとすることで、詳細オブジェクト４４０を追加で表示する前の情報を欠落させることなく、選択されたオブジェクト４２０が示す命令に関する情報を追加で示すことができる。すなわち、制御プログラムの詳細と、制御プログラムの流れとを効果的に確認することができるサポート装置２００が提供される。その結果、制御プログラム開発を効果的に支援することが可能な環境を提供することができる。
【００４０】
§２  具体例
以下、本発明の具体例として、本実施の形態に係るサポート装置２００のより詳細な構成および処理について説明する。
【００４１】
＜Ａ．サポート装置を適用可能な制御システム＞
図２は、サポート装置２００を適用可能な制御システム１の構成例を示す模式図である。図２を参照して、制御システム１は、複数のＰＬＣ１００−１，１００−２，１００−３，１００−４，…（以下、「ＰＬＣ１００」とも総称する。）を含んでいる。ＰＬＣ１００の各々は、リレー，センサー等のフィールド機器である制御対象を制御する制御装置の一例である。サポート装置２００は、ＰＬＣ１００に接続可能であり、ＰＬＣ１００の制御プログラムの開発を支援する環境を提供する。制御システム１は、１台のＰＬＣ１００を含む構成であってもよい。以下では、説明を簡単にするために、１台のＰＬＣ１００を対象にした開発環境を説明する。
【００４２】
ＰＬＣ１００は、典型的には、制御プログラムを含む各種プログラムを実行する主体であるＣＰＵユニット１０と、ＣＰＵユニット１０などへ電力を供給する電源ユニット１２と、フィールドからの信号を遣り取りするＩ／Ｏ（Input/Output）ユニット１４とを含む。Ｉ／Ｏユニット１４は、ＣＰＵユニット１０とシステムバス１１を介して接続されている。
【００４３】
サポート装置２００が提供する開発支援環境は、制御プログラムのエディタ（編集）、デバッカ、シミュレータおよびこれらの出力情報をディスプレイ等のモニタに出力するためのモニタ機能等を有し得る。サポート装置２００は、さらに、運転中のＰＬＣ１００の状態値を取得し、ディスプレイ等のモニタに出力する機能なども備える。
【００４４】
光学記録媒体８に格納されたアプリケーションプログラムであるサポートプログラムがサポート装置２００にインストールされることで、上述したような開発支援環境のための各種機能が実現される。光学記録媒体８に代えて、外部のサーバ装置などからネットワークを介して、サポートプログラムをダウンロードするようにしてもよい。サポート装置２００は、一例として、接続ケーブルを介してＰＬＣ１００のＣＰＵユニット１０と接続される。サポート装置２００は、典型的には、パーソナルコンピュータで実現される。
【００４５】
＜Ｂ．サポート装置２００のハードウェア構成例＞
図３は、サポート装置２００のハードウェア構成例を示す模式図である。図３を参照して、サポート装置２００は、典型的には、汎用のコンピュータで構成される。なお、ＰＬＣ１００が配置される製造現場における保守性の観点からは、可搬性に優れたノート型のパーソナルコンピュータが好ましい。
【００４６】
サポート装置２００は、記憶部２０１と、オペレーティングシステム（ＯＳ）を含む各種プログラムを実行するＣＰＵ２０２とを備える。記憶部２０１は、ＢＩＯＳや各種データを格納するＲＯＭ（Read Only Memory）１０４と、ＣＰＵ２０２でのプログラムの実行に必要なデータを格納するための作業領域を提供するメモリＲＡＭ２０６と、ＣＰＵ２０２で実行されるプログラムなどを不揮発的に格納するハードディスク（ＨＤＤ）２０８とを含む。
【００４７】
サポート装置２００は、さらに、サポート装置２００に指示を入力するためにユーザが操作するキーボード２１０およびマウス２１２を含む操作部２０３、および情報をユーザに提示するためのディスプレイ２１４を含む。サポート装置２００は、ＰＬＣ１００（ＣＰＵユニット１０）などと通信するための通信インターフェイス２１８を含む。通信インターフェイス２１８は、ＰＬＣ１００が備えるＵＳＢインターフェイス（図示略）と通信するためにＵＳＢ通信モジュールを含み得る。
【００４８】
サポート装置２００は、光学記録媒体８からそれに格納されている開発支援環境を提供するためのサポートプログラムを読み取るための光学記録媒体読取装置２１６を含む。
【００４９】
図３には、ＣＰＵ２０２等のプロセッサがプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路（例えば、ＡＳＩＣまたはＦＰＧＡなど）を用いて実装してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のＯＳを並列的に実行させるとともに、各ＯＳ上で必要なアプリケーションを実行させるようにしてもよい。
【００５０】
＜Ｃ．ユーザインターフェイス画面＞
図４は、ユーザプログラムが表示されるユーザインターフェイス画面１０００の一例を示す図である。ユーザインターフェイス画面１０００は、ディスプレイ２１４を介してユーザに提示される。
【００５１】
ユーザインターフェイス画面１０００は、プログラム表示領域１４００を含む。図４に示すように、プログラム表示領域１４００は、ユーザインターフェイス画面１０００内の予め定められた表示範囲に設定されている。プログラム表示領域１４００の範囲をユーザ操作により任意に変更可能な構成であってもよい。
【００５２】
プログラム表示領域１４００には、ユーザプログラムのうち、指定された部分の命令が表示されている。ユーザプログラムは、命令要素を示すオブジェクト４２０同士を線４３０でつないだ回路態様で表示される。すなわち、プログラム表示領域１４００には回路図４００が表示されている。
【００５３】
図５は、オブジェクト４２０の一例を示す図である。オブジェクト４２０は、接点４２４やコイル４２６などの一部品そのものを示す実オブジェクト４２２と、所定の処理を一まとまりに示した集合オブジェクト４２１とを含む。
【００５４】
集合オブジェクト４２１は、異なる２つの表示形式で表示され得る。具体的には、集合オブジェクト４２１は、簡略形式と、簡略形式よりも情報量の多い詳細形式とのうち、いずれか一方の表示形式で表示される。図５に示すように、詳細形式の集合オブジェクト４２５は、簡略形式の集合オブジェクト４２３に比べて、一つのオブジェクトに含まれる情報量が多い。表示形式は、予め定められていてもよく、ユーザによって選択可能であってもよい。また、回路態様で表示されているときに表示形式を切り替えることができるようにしてもよい。なお、以下では、簡略形式と詳細形式とを特に分ける必要がない場合は「集合オブジェクト４２１」とし、簡略形式の集合オブジェクトについて説明する場合は「集合オブジェクト４２３」とし、詳細形式の集合オブジェクトについて説明する場合は「集合オブジェクト４２５」とする。
【００５５】
集合オブジェクト４２１が示す一まとまりの処理は、ファンクション（ＦＵＮ：function）またはファンクションブロック（ＦＢ：Function Block）によって定義されているもの、およびＳＴ言語など他の言語で記述されたものを含み得る。
【００５６】
＜Ｄ．追加表示＞
サポート装置２００は、簡略形式で表示された集合オブジェクト４２３について、その集合オブジェクト４２３が示す処理の内容のうち、簡略形式では示されていない情報をさらに追加してディスプレイ２１４に表示することができる。
【００５７】
図６は、追加表示後のプログラム表示領域１４００の一例を示す図である。なお、図６においては、図を簡略化するため、詳細形式の集合オブジェクト４２５に詳細な情報を示していない。プログラム表示領域１４００に表示された集合オブジェクト４２３が操作部２０３からの操作に基づいて選択されると、その選択に応答して、プログラム表示領域１４００に詳細オブジェクト４４０が表示されることで、簡略形式では示されていない情報がさらに追加して示される。ここで、詳細オブジェクト４４０がプログラム表示領域１４００に表示されることを追加表示されるともいう。
【００５８】
追加表示をするための操作としては、たとえば、マウス２１２を操作して一つの集合オブジェクト４２３を選択する方法が挙げられる。また、キーボード２１０のファンクションキーなど、キーボード２１０の特定の操作に詳細オブジェクト４４０の表示切替機能を割り当ててもよい。
【００５９】
なお、一度表示した詳細オブジェクト４４０を非表示にすることも可能である。非表示にするタイミングは、詳細オブジェクト４４０を閉じるための操作が受け付けられたとき、および詳細オブジェクト４４０が設けられている位置に実オブジェクト４２２や集合オブジェクト４２１を追加する操作が受け付けられたときを含む。詳細オブジェクト４４０を閉じるための操作には、詳細オブジェクト４４０に閉じるためのボタンを設け、そのボタンを操作すること、および、マウスを右クリックする等してメニュー画面を表示し、表示されたメニュー画面から閉じることを選択することを含む。また、詳細オブジェクト４４０が設けられている位置に実オブジェクト４２２や集合オブジェクト４２１を追加する操作が受け付けられたときには、詳細オブジェクト４４０の表示位置を再度決定し、配置するようにしてもよい。
【００６０】
追加表示される前後で、回路態様で表示されているオブジェクト４２０の位置関係は変わらない。換言すると、サポート装置２００は、回路態様で表示されているオブジェクト４２０の状態を維持したまま追加表示する。このとき、詳細オブジェクト４４０は、追加表示される前にプログラム表示領域１４００に表示されていた画像の上に重ねて表示される。すなわち、詳細オブジェクト４４０は、回路態様で表示されているオブジェクト４２０および線４３０とから構成された回路図４００の上に重ねて表示される。重ねて表示するとは、回路図４００が表示されるレイヤーよりも手前側（ユーザが位置する側）に位置するレイヤーに詳細オブジェクト４４０を表示することを意味する。このように、詳細オブジェクト４４０を表示するレイヤーを、回路図４００を表示するレイヤーと異ならせることで、詳細オブジェクト４４０を表示したまま、回路図４００に変更を加えることができ、詳細オブジェクト４４０を表示した前と後とで、回路図４００を変更する上での操作性を同じにすることができる。また、制御プログラムの動作を確認するために制御プログラムの実行結果を回路図４００に反映する場合であっても、実行結果の反映に影響を与えることなく詳細オブジェクト４４０を表示することができる。
【００６１】
詳細オブジェクト４４０は、集合オブジェクト４２１を詳細形式で示したときの情報と同じ情報を示してもよく、また、集合オブジェクト４２１を詳細形式で示したときの情報よりも多い情報を示してもよく、また、集合オブジェクト４２１を詳細形式で示したときの情報よりも少ない情報を示してもよい。
【００６２】
詳細オブジェクト４４０が集合オブジェクト４２１を詳細形式で示したときの情報よりも多い情報を示す場合、集合オブジェクト４２５を選択したことに応答して詳細オブジェクト４４０を追加で表示するようにしてもよい。すなわち、本実施の形態においては、集合オブジェクト４２３が選択されて所定の操作を受け付けたときに、詳細オブジェクト４４０を表示するものとしたが、集合オブジェクト４２５が選択されて所定の操作を受け付けたときであっても、詳細オブジェクト４４０を表示できるようにしてもよい。なお、以下では、集合オブジェクト４２３が選択されて所定の操作を受け付けたときに、詳細オブジェクト４４０を表示するものとして説明する。
【００６３】
図７は、詳細オブジェクト４４０の表示例を示した図である。詳細オブジェクト４４０は、たとえば、詳細形式と同じ形式（集合オブジェクト形式）、表形式、ドキュメント形式など、様々な形式で表示可能である。ドキュメント形式としては、箇条書きで文字を表示する方法、一行で表示する方法など、様々な形式を利用可能である。
【００６４】
＜Ｅ．詳細オブジェクト４４０の表示位置＞
サポート装置２００は、プログラム表示領域１４００内での詳細オブジェクト４４０の表示位置を、回路態様で表示されているオブジェクト４２０の位置およびオブジェクト４２０のサイズに基づいて決定する。より具体的には、選択された集合オブジェクト４２３（以下、「選択オブジェクト４５０」ともいう）と詳細オブジェクト４４０との位置関係、および、回路態様で表示されているオブジェクト４２０と詳細オブジェクト４４０との重なり度合いのうちの少なくとも一方の観点に基づいて詳細オブジェクト４４０の表示位置を決定する。
【００６５】
図８（ａ）は、詳細オブジェクト４４０を空いている領域に表示する例を示した図であって、図８（ｂ）は、選択オブジェクト４５０と近い位置に表示する例を示した図である。
【００６６】
図８（ａ）に示すように、サポート装置２００は、プログラム表示領域１４００のうち、オブジェクト４２０が表示されていない空き領域１４１０（図８（ａ）の右斜め斜線で示した領域）を特定し、空き領域１４１０に詳細オブジェクト４４０を配置するように詳細オブジェクト４４０の表示位置を決定してもよい。空き領域１４１０とは、オブジェクト４２０が表示されていない領域である。そのため、空き領域１４１０に詳細オブジェクト４４０を配置するとは、換言すると、オブジェクト４２０の密集度合いに応じて詳細オブジェクト４４０の位置が決定されているともいえる。
【００６７】
より具体的には、詳細オブジェクト４４０を配置したときに、詳細オブジェクト４４０とオブジェクト４２０とが重なる面積が相対的に小さくなるように表示位置が決定される。
【００６８】
図８（ｂ）に示すように、サポート装置２００は、選択オブジェクト４５０の表示位置を中心として、その中心Ｏからの距離に基づいて詳細オブジェクト４４０の表示位置を決定してもよい。たとえば、図８（ｂ）に示す例では、中心Ｏからの距離がＲ以内の位置を詳細オブジェクト４４０の表示範囲として規定されている。
【００６９】
本実施の形態においては、回路態様で表示される各オブジェクト４２０について、そのオブジェクト４２０の表示位置（ｘ，ｙ）と、表示面積（Ｓ）とを特定することで空き領域１４１０を特定し、選択オブジェクト４５０を中心にその周囲の空き領域１４１０から詳細オブジェクト４４０を表示する位置を決定する。
【００７０】
図９は、詳細オブジェクト表示処理のフローチャートである。詳細オブジェクト表示処理は、サポート装置２００のＣＰＵ２０２が実行する処理である。詳細オブジェクト表示処理は、後述するＧＵＩモジュール２５８が示す命令コードをＣＰＵ２０２が実行することで実現される。
【００７１】
ステップＳ１１０において、ＣＰＵ２０２は、集合オブジェクト４２３が選択されたか否かを判定する。選択されなかったと判定した場合（ステップＳ１１０においてＮＯ）、ＣＰＵ２０２は、処理を終了する。選択されたと判定した場合（ステップＳ１１０においてＹＥＳ）、ＣＰＵ２０２は、処理を終了する。
【００７２】
ステップＳ１１２において、ＣＰＵ２０２は、選択オブジェクト４５０のプログラム表示領域１４００内における位置（Ｘａ，Ｙａ）とサイズ（Ｓａ）とを取得する。このとき、ＣＰＵ２０２は、選択オブジェクト４５０の形状を予め定められた形状にモデル化して位置およびサイズを取得してもよい。本実施の形態においては、ＣＰＵ２０２は、四角形にモデル化しているものとする。このように、予め定められた形状にモデル化して集合オブジェクト４２３の位置およびサイズを取得することで、容易に位置およびサイズを算出することができる。
【００７３】
ステップＳ１１４において、ＣＰＵ２０２は、表示する詳細オブジェクト４４０のサイズ（Ｓｂ）を取得する。詳細オブジェクト４４０のサイズ（Ｓｂ）は、詳細オブジェクト４４０の表示形式および詳細オブジェクト４４０に示す情報量に基づいて取得される。
【００７４】
ステップＳ１１６において、ＣＰＵ２０２は、探索処理を行う。探索処理は、詳細オブジェクト４４０を表示する位置を探索するための処理である。
【００７５】
ステップＳ１１８において、ＣＰＵ２０２は、探索結果に基づいて決定された表示領域の最前面に詳細オブジェクト４４０を表示して処理を終了する。
【００７６】
＜Ｆ．探索処理＞
図１０〜図１６を参照して、詳細オブジェクト４４０を表示する位置を探索するための処理について説明する。図１０は、探索処理のフローチャートである。
【００７７】
ステップＳ２０２において、ＣＰＵ２０２は、全方向探索したか否かを判定する。全方向とは、選択オブジェクト４５０を中心として、その中心からみた方向をいう。具体的には、本実施の形態においては、選択オブジェクト４５０を中心とした上下左右の４方向を全方向とする。なお、全方向は、４方向に限らず、５方向以上、または３方向以下であってもよい。
【００７８】
全方向探索したと判定した場合（ステップＳ２０２においてＹＥＳ）、ＣＰＵ２０２は、ステップＳ２０４において、右母線の右側を表示領域に決定して、詳細オブジェクト表示処理に戻る。より詳細に、図１１を参照して説明する。図１１は、右母線の右側を表示領域としたときの表示例を示す図である。なお、図１１においては、図の簡略化のため、詳細な情報について記述していない。
【００７９】
オブジェクト４２０は、左母線４５１と右母線４５２とに挟まれた領域に表示されている。左母線４５１と右母線４５２とのうち、外側に何も表示されていない右母線４５２の外側に詳細オブジェクト４４０は表示される。
【００８０】
探索していない方向があると判定した場合（ステップＳ２０２においてＮＯ）、ＣＰＵ２０２は、ステップＳ２０６に進む。
【００８１】
ステップＳ２０６において、ＣＰＵ２０２は、未探索の方向を探索方向Ｄに設定する。複数の未探索の方向が存在する場合、ＣＰＵ２０２は、予め定められた優先順位に沿って探索方向Ｄを設定する。優先順位は、ユーザによって設定されてもよく、プログラム提供者によって設定されていてもよい。本実施の形態においては、右方向（Ｄ１）、下方向（Ｄ２）、左方向、上方向の順に探索するものとする。
【００８２】
ステップＳ２０８において、ＣＰＵ２０２は、選択オブジェクト４５０を起点に探索方向Ｄと、探索方向Ｄと隣り合う探索方向Ｄ’と探索方向Ｄ”にオブジェクト４２０があるか否かを判定する。すなわち、ＣＰＵ２０２は選択オブジェクト４５０を中心に詳細オブジェクト４４０を表示する位置を探索する。
【００８３】
オブジェクト４２０があると判定した場合（ステップＳ２０８においてＹＥＳ）、ＣＰＵ２０２は、ステップＳ２１０に進む。
【００８４】
ステップＳ２１０において、ＣＰＵ２０２は、探索方向Ｄ，Ｄ’，Ｄ”にあるオブジェクト４２０の位置（Ｘｃ，Ｙｃ）とサイズ（Ｓｃ）とを取得する。
【００８５】
ステップＳ２１２において、ＣＰＵ２０２は、空き領域１４１０に詳細オブジェクト４４０が収まるか否かを判定する。空き領域１４１０は、位置（Ｘａ，Ｙａ）の選択オブジェクト４５０と、位置（Ｘｃ，Ｙｃ）のオブジェクト４２０との間の領域である。
【００８６】
収まると判定した場合（ステップＳ２１２においてＹＥＳ）、ＣＰＵ２０２は、ステップＳ２１４において、詳細オブジェクト４４０が収まる空き領域１４１０を詳細オブジェクト４４０の表示領域に決定して、詳細オブジェクト表示処理に戻る。
【００８７】
収まらないと判定した場合（ステップＳ２１２においてＮＯ）、ＣＰＵ２０２は、ステップＳ２０２に戻り、全方向の探索が終了するまで、あるいは、詳細オブジェクト４４０が収まる空き領域１４１０が見つかるまでステップＳ２０２〜ステップＳ２１２を繰り返す。
【００８８】
空き領域１４１０に詳細オブジェクト４４０が収まるということは、詳細オブジェクト４４０とオブジェクト４２０とが重ならないことを意味する。すなわち、詳細オブジェクト４４０が収まる空き領域１４１０が見つかるまでステップＳ２０２〜ステップＳ２１２を繰り返すことは、詳細オブジェクト４４０を配置したときに、詳細オブジェクト４４０とオブジェクト４２０とが重なる面積が相対的に小さくなるように表示位置を決定しているともいえる。
【００８９】
また、ＣＰＵ２０２は、空き領域に詳細オブジェクト４４０が収まらない場合、探索方向を変えて再度、その探索方向に設けられた空き領域に詳細オブジェクト４４０が収まるか否かを判定する。そして、全方向を探索しても詳細オブジェクト４４０が収まる空き領域が見つからなかった場合は、ステップＳ２０４において、右母線４５２の右側、すなわちユーザプログラムを示す回路図の外側を詳細オブジェクト４４０の表示領域に決定する。つまり、ＣＰＵ２０２は、選択オブジェクト４５０の周囲がオブジェクト４２０に囲まれているような場合に、オブジェクト４２０と選択オブジェクト４５０との間の領域に詳細オブジェクト４４０を収めることができなければ、ユーザプログラムを示す回路図の外側に詳細オブジェクト４４０を表示する。
【００９０】
図１２〜図１５を参照して、ステップＳ２０２〜ステップＳ２１２の繰り返しにより詳細オブジェクト４４０の表示位置を決定する概略について説明する。図１２は、Ｄ１方向が探索対象であるときの探索手法の概念図である。図１３は、Ｄ１方向が探索対象であるときの探索結果の一例を示す図である。図１４は、Ｄ２方向が探索対象であるときの探索手法の概念図である。図１５、Ｄ２方向が探索対象であるときの探索結果の一例を示す図である。
【００９１】
図１２に示すように、Ｄ１方向、Ｄ１’方向およびＤ１”方向には、オブジェクト４２０が１つ位置している。ＣＰＵ２０２は、Ｄ１方向に位置するオブジェクト４２０−Ａの位置（ＸｃＡ，ＹｃＡ）およびサイズ（ＳｃＡ）を取得する。
【００９２】
このとき、ＣＰＵ２０２は、オブジェクト４２０の形状を予め定められた形状にモデル化してオブジェクト４２０の位置およびサイズを取得してもよい。図１２においては、ＣＰＵ２０２は、四角形にモデル化しているものとする。このように、予め定められた形状にモデル化してオブジェクト４２０の位置およびサイズを取得することで、容易に位置およびサイズを算出することができる。
【００９３】
図１３に示すように、図１２に示す例では、サイズ（Ｓｂ）の詳細オブジェクト４４０が、選択オブジェクト４５０とオブジェクト４２０−Ａとの間に収まらない。このような場合、ＣＰＵ２０２は、探索方向Ｄを再度設定し、設定した探索方向Ｄに詳細オブジェクト４４０が収まるか否かを探索する。本実施の形態においては、方向Ｄ１の次に方向Ｄ２が設定される。
【００９４】
図１４に示すように、Ｄ２方向、Ｄ２’方向およびＤ２”方向には、オブジェクト４２０が２つ位置している。２つのオブジェクトの各々について、その位置とサイズとをＣＰＵ２０２は取得する。具体的には、オブジェクト４２０−１の位置（Ｘｃ１，Ｙｃ１）およびサイズ（Ｓｃ１）ならびにオブジェクト４２０−２の位置（Ｘｃ２，Ｙｃ２）およびサイズ（Ｓｃ２）をＣＰＵ２０２は取得する。
【００９５】
このとき、ＣＰＵ２０２は、オブジェクト４２０の形状を予め定められた形状にモデル化してオブジェクト４２０の位置およびサイズを取得してもよい。図１４においては、ＣＰＵ２０２は、四角形にモデル化しているものとする。このように、予め定められた形状にモデル化してオブジェクト４２０の位置およびサイズを取得することで、容易に位置およびサイズを算出することができる。
【００９６】
図１５に示すように、図１４に示す例では、サイズＳｂの詳細オブジェクト４４０が、選択オブジェクト４５０とオブジェクト４２０−１との間に収まる。ＣＰＵ２０２は、選択オブジェクト４５０とオブジェクト４２０−１との間を詳細オブジェクト４４０の表示位置に決定して、詳細オブジェクト表示処理に戻る。
【００９７】
図１０の探索処理のフローチャートに戻り、オブジェクト４２０がないと判定した場合（ステップＳ２０８においてＮＯ）の処理について説明する。オブジェクト４２０がないと判定した場合（ステップＳ２０８においてＮＯ）、ＣＰＵ２０２は、ステップＳ２２０に進む。
【００９８】
ステップＳ２２０において、ＣＰＵ２０２は、選択オブジェクト４５０の表示位置が右端か否かを判定する。
【００９９】
選択オブジェクト４５０の表示位置が右端であると判定した場合（ステップＳ２２０においてＹＥＳ）、ＣＰＵ２０２は、ステップＳ２０４において、右母線の右側を表示領域に決定して、詳細オブジェクト表示処理に戻る。
【０１００】
選択オブジェクト４５０の表示位置が右端ではないと判定した場合（ステップＳ２２０においてＮＯ）、ＣＰＵ２０２は、ステップＳ２２２に進む。
【０１０１】
ステップＳ２２２において、ＣＰＵ２０２は、選択オブジェクト４５０を含む回路がプログラムの一番下に位置するか否かを判定する。
【０１０２】
一番下ではないと判定した場合（ステップＳ２２２においてＮＯ）、ＣＰＵ２０２は、ステップＳ２０４において、右母線の右側を表示領域に決定して、詳細オブジェクト表示処理に戻る。
【０１０３】
一番下であると判定した場合（ステップＳ２２２においてＹＥＳ）、ＣＰＵ２０２は、ステップＳ２２４に進む。
【０１０４】
ステップＳ２２４において、ＣＰＵ２０２は、選択オブジェクト４５０の下にある空き領域に詳細オブジェクト４４０が収まるか否かを判定する。選択オブジェクト４５０の下にある空き領域に詳細オブジェクト４４０が収まらないと判定した場合（ステップＳ２２４においてＮＯ）、ＣＰＵ２０２は、ステップＳ２０４に進み、右母線４５２の右側、すなわちユーザプログラムを示す回路図の外側を詳細オブジェクト４４０の表示領域に決定する。一方、選択オブジェクト４５０の下にある空き領域に詳細オブジェクト４４０が収まると判定した場合（ステップＳ２２４においてＹＥＳ）、ＣＰＵ２０２は、ステップＳ２２６に進む。
【０１０５】
ステップＳ２２６において、ＣＰＵ２０２は、選択オブジェクト４５０の下側を表示領域に決定して、詳細オブジェクト表示処理に戻る。
【０１０６】
図１６は、追加表示がされる前後のプログラム表示領域１４００の一例を示す図である。図１６においては、選択オブジェクト４５０を含む回路がプログラムの一番下に位置するものとする。
【０１０７】
プログラムの一番下に選択オブジェクト４５０を含む回路が位置し、選択オブジェクト４５０の下側に空き領域がある場合、サポート装置２００は、選択オブジェクト４５０の下に詳細オブジェクト４４０を表示する。
【０１０８】
＜Ｇ．サポート装置２００のソフトウェア構成＞
図１７を参照して、サポート装置２００が備えるソフトウェア構成について説明する。図１７は、サポート装置２００のソフトウェア構成を示す模式図である。図１７に示すソフトウェアに含まれる命令コードは、適切なタイミングで読出され、サポート装置２００のＣＰＵ２０２へ提供されて実行される。また、図１７に示すソフトウェアは、光学記録媒体８に格納されて提供されるサポートプログラムに含まれる。
【０１０９】
図１７を参照して、サポート装置２００には、ＯＳ２４０およびプログラミングアプリケーション２５０が実装される。サポート装置２００ではＯＳ２４０が実行され、プログラミングアプリケーション２５０を実行可能な環境が提供される。本実施の形態に係るサポート装置２００を実現するためのサポートプログラムは、少なくともプログラミングアプリケーション２５０を含む。
【０１１０】
プログラミングアプリケーション２５０は、エディタ２５２と、コンパイラ２５４と、デバッガ２５６と、ＧＵＩ（Graphical User Interface）モジュール２５８と、シミュレータ２６０と、データ格納部２７０とを含む。プログラミングアプリケーション２５０に含まれるそれぞれのモジュールは、典型的には、光学記録媒体８にサポートプログラムとして格納された状態で流通して、サポート装置２００にインストールされる。
【０１１１】
エディタ２５２は、実行可能プログラム（ソースプログラム）を作成するための入力および編集といった機能を提供する。より具体的には、エディタ２５２は、ユーザがキーボード２１０やマウス２１２を操作してユーザプログラム２７４のソースプログラムを作成する機能に加えて、作成したソースプログラムの保存機能および編集機能を提供する。
【０１１２】
コンパイラ２５４は、ユーザプログラム２７４のソースプログラムをコンパイルして、ＣＰＵユニット１０で実行可能（オブジェクト）プログラム形式の実行可能プログラムを生成する機能を提供する。
【０１１３】
デバッガ２５６は、実行可能プログラム（ソースプログラム）に対してデバッグを行うための機能を提供する。このデバッグの内容としては、ソースプログラムのうちユーザが指定した範囲を部分的に実行する、ソースプログラムの実行中における変数値の時間的な変化を追跡する、といった動作を含む。
【０１１４】
ＧＵＩモジュール２５８は、ユーザが各種データやパラメータなどを入力するためのユーザインターフェイスを提供する機能を有する。すなわち、前述したユーザインターフェイス画面１０００は、ＧＵＩモジュール２５８によって提供される。ＧＵＩモジュール２５８は、操作部２０３が受け付けた操作、並びに、ユーザプログラム２７４、プログラムの実行に必要な変数設定２７２、表示形式に係る設定情報２７６、およびオブジェクトに係るオブジェクト情報２７８に基づいてユーザインターフェイス画面１０００を提供する。ＧＵＩモジュール２５８は、本願発明のプログラム表示手段および追加表示手段の機能を提供する。
【０１１５】
シミュレータ２６０は、サポート装置２００内にＰＬＣ１のＣＰＵユニット１０でのプログラムの実行をシミュレーションする環境を構築する。
【０１１６】
データ格納部２７０には、ユーザプログラム２７４、変数設定２７２、設定情報２７６、およびオブジェクト情報２７８が格納されている。
【０１１７】
＜Ｈ．変形例＞
（ｈ１．追加表示）
本実施の形態においては、詳細オブジェクト４４０のサイズ（Ｓｂ）を変更することなく追加表示する例を示した。ＣＰＵ２０２は、空き領域１４１０の範囲に基づいて詳細オブジェクト４４０のサイズを決定してもよい。図１８は、追加表示の変形例を示す図である。図１８（ａ）は、第１の変形例に係る詳細オブジェクト４４０ａを示す図であり、（ｂ）は、第２の変形例に係る詳細オブジェクト４４０ｂを示す図である。
【０１１８】
ＣＰＵ２０２は、図１８（ａ）に示すように、詳細オブジェクト４４０として表示する画像を縮小することなく、決定したサイズの表示領域に収まる画像のみ表示し、スクロールバー４４２などを操作することで、ユーザが全体を確認することができるようにしてもよい。また、図１８（ｂ）に示すように、詳細オブジェクト４４０として表示する画像を縮小することで、決定したサイズに画像を収めるようにしてもよい。
【０１１９】
（ｈ２．探索処理）
図１９は、変形例における探索処理のフローチャートである。本実施の形態においては、探索する方向に優先順位を設定し、優先順位に沿って探索し、詳細オブジェクト４４０が収まる方向が見つかったことを以て探索処理が終了するとした。すなわち、選択オブジェクトを中心としてその周囲を全方向探索することなく、探索処理が終了することがある。なお、全方向探索し、表示位置の候補を複数挙げて、複数の候補の各々を評価して、表示位置を決定してもよい。
【０１２０】
変形例における探索処理のフローチャートについて、本実施の形態と共通する処理については共通のステップ番号を付しており、共通する処理については、説明を省略する。
【０１２１】
具体的に、変形例において、ＣＰＵ２０２は、図１０に示すステップＳ２０４、ステップＳ２１４、ステップＳ２２６の代わりにステップＳ２０４−２、ステップＳ２１４−２、ステップＳ２２６−２を実行する。また、ステップＳ２０２において、全方向探索したと判定した場合、ステップＳ２３０に進む。
【０１２２】
ステップＳ２０４−２において、ＣＰＵ２０２は、右母線の右側を詳細オブジェクト４４０の表示領域の候補に設定する。
【０１２３】
ステップＳ２１４−２において、ＣＰＵ２０２は、詳細オブジェクト４４０が収まる空き領域１４１０を詳細オブジェクト４４０の表示領域の候補に設定する。
【０１２４】
ステップＳ２２６−２において、ＣＰＵ２０２は、選択オブジェクト４５０の下側を表示領域の候補に設定する。
【０１２５】
ＣＰＵ２０２は、ステップＳ２０４−２、ステップＳ２１４−２、およびステップＳ２２６−２の後、ステップＳ２０２に進み、全方向の探索が終了するまで、ステップＳ２０６〜ステップＳ２０４−２、ステップＳ２１４−２、ステップＳ２２６−２の処理を繰り返す。
【０１２６】
全方向の探索が終了したと判定した場合（ステップＳ２０２においてＹＥＳ）、ＣＰＵ２０２は、ステップＳ２３０において、表示領域の候補の中から最適な表示領域を決定する。候補に設定された表示領域の評価方法としては、たとえば、他のオブジェクト４２０との重なり度合いを示す第１の因子と、選択オブジェクト４５０からの距離を示す第２の因子とに基づいて決定する。第１の因子と第２の因子とのうち、どちらの因子に評価の重み付けをするかをユーザが設定できる構成であってもよい。
【０１２７】
（ｈ３．情報処理装置）
本実施の形態においては、プログラムを表示する情報処理装置の一例として、プログラムの開発を支援するサポート装置２００を挙げた。なお、プログラムを表示することが可能な情報処理装置であればサポート装置２００に限られるものではなく、たとえば、ＰＬＣ１００が制御する各種装置を監視するＨＭＩや、ＰＬＣ１００とオンライン接続されるＰＣなどであってもよい。また、表示するプログラムを実行する装置と、表示に係る機能を有する装置とが別体で構成されてもよい。
【０１２８】
＜Ｉ．作用・効果＞
本実施の形態においては、サポート装置２００は、簡略形式で表示された集合オブジェクト４２３について、その集合オブジェクト４２３が示す処理の内容のうち、詳細オブジェクト４４０を表示することで、簡略形式では示されていない情報を追加してディスプレイ２１４に示すことができる。このとき、回路態様で示されたオブジェクト４２０の状態を変えずに詳細オブジェクト４４０を追加で表示する。そのため、詳細オブジェクト４４０を追加で表示する前の情報を欠落させることなく、選択されたオブジェクト４２０が示す命令に関する情報を追加で示すことができる。すなわち、制御プログラムの詳細と、制御プログラムの流れとを効果的に確認することができるサポート装置２００が提供される。その結果、制御プログラム開発を効果的に支援することが可能な環境を提供することができる。
【０１２９】
また、図８（ａ）に示すように、オブジェクト４２０の密集度合いに応じて詳細オブジェクト４４０の位置が決定される。そのため、オブジェクト４２０が密集している領域を避けて詳細オブジェクト４４０を表示することができる。すなわち、回路態様で表示されているプログラムに含まれるオブジェクト４２０の配置状況に応じた適当な位置に詳細オブジェクト４４０を表示することができる。
【０１３０】
また、ＣＰＵ２０２は、詳細オブジェクト４４０が収まる空き領域１４１０が見つかるまで図１０のステップＳ２０２〜ステップＳ２１２を繰り返す。すなわち、ＣＰＵ２０２は、詳細オブジェクト４４０を配置したときに、詳細オブジェクト４４０とオブジェクト４２０とが重なる面積が相対的に小さくなるように表示位置を決定する。そのため、詳細オブジェクト４４０が表示されるときに、命令要素を示すオブジェクト４２０が新たに追加で表示される詳細オブジェクト４４０で隠れてしまうことを防止することができる。その結果、詳細オブジェクト４４０を追加で表示する前後で情報を欠落させることがなく、より多くの情報を提供することができる。
【０１３１】
図８（ｂ）に示すように、サポート装置２００は、選択オブジェクト４５０の表示位置を中心として、その中心Ｏからの距離に基づいて詳細オブジェクト４４０の表示位置を決定してもよい。すなわち、サポート装置２００は、選択オブジェクト４５０の表示位置からの距離に基づいて詳細オブジェクト４４０の表示位置を決定する。そのため、詳細オブジェクト４４０と共通の命令について示した選択オブジェクト４５０の表示位置に応じた位置に詳細オブジェクト４４０を表示することができる。その結果、互いに共通する命令を示すオブジェクトを関連付けて表示することができる。
【０１３２】
また、図１９のステップＳ２３０において、ＣＰＵ２０２は、詳細オブジェクト４４０と他のオブジェクト４２０との重なり度合いと、選択オブジェクト４５０からの距離とに基づいて、詳細オブジェクト４４０の位置を決定する。そのため、互いに共通する命令を示すオブジェクトを関連付けて表示しつつ、他のオブジェクト４２０を詳細オブジェクト４４０で隠してしまうことを防止することができる。その結果、効果的に詳細オブジェクト４４０と、プログラムの全体の流れとを表示することができる。
【０１３３】
また、図１２および図１４に示すように、ＣＰＵ２０２は、オブジェクト４２０の形状を予め定められた形状にモデル化してオブジェクト４２０の位置およびサイズを取得する。このように、予め定められた形状にモデル化してオブジェクト４２０の位置およびサイズを取得することで、容易に位置およびサイズを算出することができる。その結果、ＣＰＵ２０２への処理負担を軽減することができる。
【０１３４】
また、図１０および図１９のステップＳ２０８に示すように、ＣＰＵ２０２は選択オブジェクト４５０を中心に詳細オブジェクト４４０を表示する位置を探索する。そのため、選択オブジェクト４５０と関連した適当な位置を早くに探索することができる。その結果、表示位置を決定する処理の負担を軽減することができる。
【０１３５】
図１０に示すように、ＣＰＵ２０２は、選択オブジェクト４５０の周囲がオブジェクト４２０に囲まれているような場合に、オブジェクト４２０と選択オブジェクト４５０との間の領域に詳細オブジェクト４４０を収めることができなければ、ユーザプログラムを示す回路図の外側に詳細オブジェクト４４０を表示する。そのため、オブジェクト４２０を隠すことなく詳細オブジェクト４４０を表示することができるとともに、詳細オブジェクト４４０の表示位置の決定方法に法則性があるため、ユーザはどこに詳細オブジェクト４４０が表示されるかを予測しやすく、表示された詳細オブジェクト４４０を探しやすい。
【０１３６】
§４  付記
以上のように、上記の実施の形態および変形例は以下のような技術思想を含む。
【０１３７】
［構成１］
制御対象を制御する制御装置において実行される制御プログラムを表示する情報処理装置（２００）であって、
前記制御プログラムを、当該制御プログラムを構成する命令要素を示すオブジェクト（４２０）同士を繋いた回路態様で表示するプログラム表示手段（２５８）と、
前記回路態様で表示されたオブジェクトのうちの特定のオブジェクト（４５０）の選択に応じて、当該特定のオブジェクトが示す命令の実行に関する情報であって、前記回路態様で表示されている状態において示されていない情報を示す追加オブジェクト（４４０）を、前記回路態様で表示されているオブジェクトの状態を維持して追加で表示する追加表示手段（２５８）とを備える、情報処理装置。
【０１３８】
［構成２］
前記追加表示手段は、前記回路態様で表示されているオブジェクトの密集度合いに基づいて前記追加オブジェクトの位置を決定する、構成１に記載の情報処理装置。
【０１３９】
［構成３］
前記追加表示手段は、前記追加オブジェクトと前記回路態様で表示されているオブジェクトとの重なる面積が相対的に小さくなるように前記追加オブジェクトの位置を決定する（ステップＳ２０２〜ステップＳ２１２）、構成１または構成２に記載の情報処理装置。
【０１４０】
［構成４］
前記追加表示手段は、前記選択された特定のオブジェクトからの距離（Ｒ）に基づいて前記追加オブジェクトの位置を決定する、構成１に記載の情報処理装置。
【０１４１】
［構成５］
前記追加表示手段は、前記追加オブジェクトと前記回路態様で表示されているオブジェクトとの重なり度合いと、前記選択された特定のオブジェクトからの距離とに基づいて前記追加オブジェクトの位置を決定する（ステップＳ２３０）、構成１に記載の情報処理装置。
【０１４２】
［構成６］
前記追加表示手段は、前記回路態様で表示されているオブジェクトを予め定められた形状にモデル化することで、当該回路態様で表示されているオブジェクトの表示面積（Ｓ）および表示位置（Ｘ，Ｙ）を取得する、構成１〜構成５のうちいずれかに記載の情報処理装置。
【０１４３】
［構成７］
前記追加表示手段は、前記選択された特定のオブジェクトを中心に、前記追加オブジェクトを表示する位置を探索する（ステップＳ２０８）、構成１〜構成６のうちいずれかに記載の情報処理装置。
【０１４４】
［構成８］
前記追加表示手段は、前記回路態様で表示されたオブジェクトのうちの前記選択された特定のオブジェクトと隣接する位置に配置されたオブジェクト（４２０−１，４２０−２，４２０−Ａ）と、当該選択された特定のオブジェクトとの間の領域に、前記追加オブジェクトが収まらない場合に、前記回路態様で表示されたプログラムの外に当該追加オブジェクトを表示する（ステップＳ２０４）、構成７に記載の情報処理装置。
【０１４５】
［構成９］
制御対象を制御する制御装置において実行される制御プログラムを表示するための表示プログラム（２５８）であって、前記表示プログラムはコンピュータ（２００）に、
前記制御プログラムを、当該制御プログラムを構成する命令要素を示すオブジェクト同士を繋いた回路態様に含まれるオブジェクトのうちの特定のオブジェクトの選択を受け付けるステップ（Ｓ１１０）と、
前記特定のオブジェクトの選択を受け付けた場合に、当該特定のオブジェクトが示す命令の実行に関する情報であって、前記回路態様で表示されている状態において示されていない情報を示す追加オブジェクトを、前記回路態様で表示されているオブジェクトの状態を維持して追加で表示するステップ（Ｓ１１８）と、を実行させる、表示プログラム。
【０１４６】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。また、実施の形態および各変形例において説明された発明は、可能な限り、単独でも、組合せても、実施することが意図される。
【符号の説明】
【０１４７】
１  制御システム、８  光学記録媒体、１０  ＣＰＵユニット、１４  Ｉ／Ｏユニット、１１  システムバス、１２  電源ユニット、２００  サポート装置、２０１  記憶部、２０２  ＣＰＵ、２０３  操作部、２０６  ＲＡＭ、２１０  キーボード、２１２  マウス、２１４  ディスプレイ、２１６  光学記録媒体読取装置、２１８  通信インターフェイス、２５０  プログラミングアプリケーション、２５２  エディタ、２５４  コンパイラ、２５６  デバッガ、２５８  モジュール、２６０  シミュレータ、２７０  データ格納部、２７２  変数設定、２７４  ユーザプログラム、２７４ａ  全体、２７４ｂ  一部、２７６  設定情報、２７８  オブジェクト情報、４００  回路図、４２０  オブジェクト、４２１，４２３，４２５  集合オブジェクト、４２２  実オブジェクト、４２４  接点、４２６  コイル、４２８  名称、４３０  線、４４０，４４０ａ，４４０ｂ  詳細オブジェクト、４４２  スクロールバー、４５０  選択オブジェクト、４５１  左母線、４５２  右母線、１０００  ユーザインターフェイス画面、１４００  プログラム表示領域、１４１０  空き領域、Ｄ  探索方向、Ｏ  中心。
【図１】
2020017225.tif 000003
【図２】
2020017225.tif 000004
【図３】
2020017225.tif 000005
【図４】
2020017225.tif 000006
【図５】
2020017225.tif 000007
【図６】
2020017225.tif 000008
【図７】
2020017225.tif 000009
【図８】
2020017225.tif 000010
【図９】
2020017225.tif 000011
【図１０】
2020017225.tif 000012
【図１１】
2020017225.tif 000013
【図１２】
2020017225.tif 000014
【図１３】
2020017225.tif 000015
【図１４】
2020017225.tif 000016
【図１５】
2020017225.tif 000017
【図１６】
2020017225.tif 000018
【図１７】
2020017225.tif 000019
【図１８】
2020017225.tif 000020
【図１９】
2020017225.tif 000021