(57)【要約】      （修正有）【課題】プログラム中の各構成要素についても一意に特定でき、ユーザプログラムのデバッグ・編集等が容易に行える開発支援装置を提供すること。【解決手段】ラダープログラムを記憶するラダープログラム記憶部３４ａと、そのラダープログラムを構成する出力命令を含む所定の構成要素を、そのラダープログラム上での出現順の情報とともに記録したアウトライン情報記憶部３４ｂを備える。表示画面には、ラダープログラムを表示するラダー表示部と、アウトライン情報表示部を設け、構成要素には、固有のインデックス番号が付し、その固有のインデックス番号を用いてアウトライン情報と、ラダープログラムを連係させる。クロスリファレンス情報生成部３３ｃは、ララダープログラム上で指定された命令と同一のオペランドを有する命令を抽出し、その抽出した命令に関する情報をクロスリファレンス情報表示部に表示する。【選択図】図１５
2006146955.tif 000002
【特許請求の範囲】
【請求項１】
プログラマブルコントローラのユーザプログラムを開発するための開発支援装置であって、
ユーザプログラムを記憶するプログラム記憶手段と、
前記プログラム記憶手段に記憶されたユーザプログラムを先頭から順に走査して、構成要素を抽出し、抽出した構成要素にユーザプログラム上での出現順に固有のインデックス番号を付したアウトライン情報を生成するアウトライン情報生成手段と、
前記アウトライン情報を格納するアウトライン情報記憶手段と、
ユーザプログラムを表示するユーザプログラム表示部と、前記アウトライン情報に基づいて抽出した構成要素をインデックス番号とともに前記出現順に表示するアウトライン情報表示部とを有する表示手段と、
を設けたことを特徴とする開発支援装置。
【請求項２】
当該開発支援装置は、開発対象のプログラマブルコントローラのユーザプログラム中にコメントを記述してプログラミングできるものであり、
前記アウトライン情報生成手段は、
ユーザプログラムにおいてステップ番号が付与されないコメントを含む所定の構成要素を抽出対象として選択されると、前記プログラム記憶手段に記憶されたユーザプログラムを先頭から順に走査し、前記選択された構成要素であるか否かを判断した結果に基づいて、コメントを含む所定の構成要素を抽出するものであり、
その抽出したコメントおよび他の構成要素をユーザプログラム上での出現順に登録することによってアウトライン情報を生成するものである
ことを特徴とする請求項１に記載の開発支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ユーザプログラムの開発支援装置に関するものである。
【背景技術】
【０００２】
ファクトリーオートメーション（ＦＡ）の制御装置として、プログラマブルコントローラ（ＰＬＣ）が用いられている。このＰＬＣは、複数のユニットから構成される。すなわち、電源供給源の電源ユニット，ＰＬＣ全体の制御を統率するＣＰＵユニット，ＦＡの生産装置や設備装置の適所に取り付けたスイッチやセンサの信号を入力する入力ユニット，アクチュエータなどに制御出力を出す出力ユニット，通信ネットワークに接続するための通信ユニットなどの各種のユニットを適宜組み合わせて構成される。
【０００３】
ＰＬＣのＣＰＵユニットにおける制御は、入力ユニットで入力した信号をＣＰＵユニットのＩ／Ｏメモリに取り込み（ＩＮリフレッシュ）、予め登録されたラダー言語で組まれたユーザプログラムに基づき論理演算をし（演算実行）、その演算実行結果をＩ／Ｏメモリに書き込んで出力ユニットに送り出し（ＯＵＴリフレッシュ）、その後、いわゆる周辺処理を行うということをサイクリックに繰り返し処理するようになる。
【０００４】
上記したユーザプログラムは、通常、開発支援装置を用いて生成したラダープログラムであり、通信回線を介してＰＬＣのＣＰＵユニットにダウンロードする。また、作成したラダープログラムに不具合が生じた場合には、ユーザは開発支援装置の表示画面にそのラダープログラムを表示させて検証し、不良箇所を見つけて修正作業を行なう。そして、修正したラダープログラムをＰＬＣにダウンロードする。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ラダープログラムのデバッグの作業は、想定外の動作をした出力命令のオペランド（接点番号やメモリ番号）をキーにして、その出力命令に関連する入力命令または出力命令を探して、ラダープログラムを修正、編集することを繰り返す。接点番号は、入力ユニットの端子台の端子場所を示す端子番号や、出力ユニットの端子台の端子場所を示す端子番号である。メモリ番号は、プログラマブルコントローラ内のＩＯデータメモリのアドレス値である。この際、デバッグ作業者にとって、想定外の動作をした出力命令に関連する入力命令または出力命令を探すことは煩雑である。例えば、ある出力命令に問題がある場合において、その出力命令に関連する入力命令が複数あるような場合には、それら複数の入力命令を全てチェックする必要があり、探し出す処理が煩雑である。また、上記出力命令と同じオペランドを持つ入力命令を含むプログラム部分がある場合は、問題となる出力命令に関係するプログラムを修正した後、そのプログラムも正常に動作することを確認する必要があり、確認すべき命令を漏らすことなく全てチェックすることは非常に煩雑である。そして、ラダープログラムが長くなるほどその問題は顕著となる。
【０００６】
この発明は、プログラム中の各構成要素（ステップ番号が付与されないコメント等）についても一意に特定でき、ユーザプログラムのデバッグ・編集等が容易に行える開発支援装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の開発支援装置は、例えばプログラマブルコントローラにダウンロードするユーザプログラムを編集等するのに適したものである。具体的な構成としては、プログラマブルコントローラのユーザプログラムを開発するための開発支援装置であって、ユーザプログラムを記憶するプログラム記憶手段と、前記プログラム記憶手段に記憶されたユーザプログラムを先頭から順に走査して、構成要素を抽出し、抽出した構成要素にユーザプログラム上での出現順に固有のインデックス番号を付したアウトライン情報を生成するアウトライン情報生成手段と、前記アウトライン情報を格納するアウトライン情報記憶手段と、ユーザプログラムを表示するユーザプログラム表示部と、前記アウトライン情報に基づいて抽出した構成要素をインデックス番号とともに前記出現順に表示するアウトライン情報表示部とを有する表示手段と、を設けた。
【０００８】
当該開発支援装置は、開発対象のプログラマブルコントローラのユーザプログラム中にコメントを記述してプログラミングできるものであり、前記アウトライン情報生成手段は、ユーザプログラムにおいてステップ番号が付与されないコメントを含む所定の構成要素を抽出対象として選択されると、前記プログラム記憶手段に記憶されたユーザプログラムを先頭から順に走査し、前記選択された構成要素であるか否かを判断した結果に基づいて、コメントを含む所定の構成要素を抽出するものであり、その抽出したコメントおよび他の構成要素をユーザプログラム上での出現順に登録することによってアウトライン情報を生成するものとすることができる。
【０００９】
インデックス番号は、ユーザプログラム上でユニークに存在する番号であり、各命令はもちろんのこと、ステップ番号が付与されないコメントに対しても昇順に設定される。これにより、デバッグ作業者は、ユーザプログラム内において、インデックス番号を特定すると、任意の命令，コメントを一意に特定することができる。
【００１０】
これにより、通常、コメントには、ユーザプログラム上での位置を示すステップ番号は付与されないが、本発明ではコメントを含めてユーザプログラムのすべての構成要素に別途固有のインデックス番号を付与したことにより、コメントを所定の構成要素に設定した場合でもそのインデックス番号を用いてアウトライン情報表示部と、ユーザプログラム表示部の連係を取ることができる。つまり、アウトライン情報表示部に表示された所定の構成要素を選択すると、その選択された構成要素に付されたインデックス番号に対応するユーザプログラムの構成要素を認識し、それをユーザプログラム表示部に表示することができる。よって、目的とするユーザプログラムの構成要素を簡単に見つけることができる。
【００１１】
なお、ユーザプログラムを記憶するプログラム記憶手段と、プログラム記憶手段に記憶されたラダープログラムの構成要素を先頭から順に走査して、少なくとも出力命令を含む所定の構成要素を抽出し、その抽出した構成要素にユーザプログラム上での出現順に固有のインデックス番号を付したアウトライン情報を生成するアウトライン情報生成手段と、アウトライン情報を格納するアウトライン情報記憶手段と、表示画面には、前記ラダープログラムを表示するユーザプログラム表示部（実施の形態では、ラダー表示部）と、アウトライン情報記憶手段に格納された構成要素を前記出現順にツリー状に表示するアウトライン情報表示部とを設け、アウトライン表示部に表示された構成要素とユーザプログラム表示部に表示されたユーザプログラムを連携させるようにすることもできる。
【００１２】
このようにすると、出力命令を含む所定の構成要素がアウトライン情報表示部にプログラム上での出現順に表示されるため、その表示された構成要素を見ることにより、ユーザプログラム上で所定の構成要素が全体のどの位の位置に存在しているかなどのユーザプログラムのアウトラインを認識することができる。
【００１３】
本発明の開発支援装置はまた、上述したアウトライン情報を自動で生成し、登録することができる。
【００１４】
さらに、ユーザプログラム表示部に表示されたユーザプログラムにおいて選択された命令と同一のオペランドを有する命令を抽出し、その抽出した命令に関する情報を前記表示画面上に設けられたクロスリファレンス情報表示部に表示するクロスリファレンス情報生成手段を備えるとよい。このようにすると、例えば、ユーザプログラム表示部に表示されたユーザプログラムの出力命令を選択することにより、クロスリファレンス情報表示部には、その出力命令と同一のオペランドを持つ入力命令等を抽出し表示することができる。これにより、出力命令の影響を受ける入力命令を一覧リストとして表示することができる。
【００１５】
クロスリファレンス情報表示部に表示された所定の命令が選択された際に、その選択された命令が属するユーザプログラムを検知し、その選択された命令を前記ユーザプログラム表示部に表示する機能を備えるとよい。このようにすると、クロスリファレンス情報表示部に表示された命令に対応する実際のユーザプログラムを表示することができ、その命令が、プログラム上でどのように他の回路に影響しているかを容易に確認できる。
【００１６】
さらに、クロスリファレンス情報表示部に表示された１または複数の命令についての情報を記憶保持し、クロスリファレンス情報表示部に表示される情報が切り替った後で、記録保持した情報をクロスリファレンス情報表示部に再表示可能とするとよい。これは、実施の形態におけるブックマーク機能に対応する。このように一旦表示したクロスリファレンス情報を記憶することにより、後で簡単に戻って再表示することができる。
【００１７】
出力命令を抽出し表示すると、ユーザプログラムの中で他の命令に影響を与える出力命令を含む所定のプログラム構成要素を簡単に抽出し、アウトライン表示部に表示することができる。また、クロスリファレンス情報生成手段を設けたことにより、その出力命令と同じオペランドを持つ他の命令を抽出して表示することができる。これらにより、多数存在する命令の中から問題となる命令を探したり、問題のある出力命令に接続される入力命令が複数あるような場合に、それら複数の入力命令を全て探してチェックしたり、また問題となる出力命令に関係するプログラムを修正した場合に、その出力命令と同じオペランドを持つ入力命令を含むプログラム部分が正常に動作することの確認が漏れなくでき、ユーザプログラムのデバッグを容易に行うことができる。
【発明の効果】
【００１８】
本発明は、プログラム中の各構成要素（ステップ番号が付与されないコメント等）についても一意に特定でき、ユーザプログラムのデバッグ・編集等が容易に行える。
【発明を実施するための最良の形態】
【００１９】
図１は、本発明の好適な一実施の形態を示している。開発支援装置１０とＰＬＣ（ＣＰＵユニット）２０が、所定の通信回線２１を介して接続されている。この通信回線２１は、例えば、ＲＳ２３２Ｃなどのシリアル回線を用いて直接ケーブル接続することにより実現される。もちろん、このように直接接続するものに限ることはなく、他の通信回線を用いネットワーク経由でＰＬＣ２０と開発支援装置１０とを接続する構成を採っても良い。開発支援装置１０は、プログラマブルコントローラで実行されるユーザプログラムを作成する機能、通信回線２１を介して作成したユーザプログラムをＰＬＣ２０にダウンロードする機能、プログラマブルコントローラの動作に関する各種のパラメータ等を設定する機能、を持っている。ユーザプログラムは、図４のようなラダー言語によって記述されたプログラムである。開発支援装置１０は、パソコンに、予めインストールしてあるソフトウェアを起動することにより、上述の機能を実現する。そのハードウエア構成は、キーボード，ポインティングデバイス等の入力装置１１と、表示装置１２と、中央演算装置１３と、記憶装置１４とからなる。記憶装置１４には図示しないが不揮発性記憶装置と揮発性記憶装置があり、不揮発性記憶装置はラダープログラムやラダープログラムのアウトライン情報、クロスリファレンス情報などを記憶する。また中央演算装置１３の実行時のワークメモリとして揮発性記憶装置が適宜使用される。
【００２０】
図１５は、図１の中央演算装置１３、記憶装置１４を使って実現される本発明の開発支援装置１０の機能ブロック図である。開発支援装置１０は、入力装置１１からの入力を処理する入力処理部３１、表示装置１２に出力する表示データを作成する表示処理部３２、各機能を実行する演算部３３、演算結果やラダープログラム等を格納する記憶部３４、ＰＬＣとの通信を処理する通信処理部３５からなる。演算部３３はユーザプログラム編集部３３ａ、アウトライン情報生成部３３ｂ、クロスリファレンス情報生成部３３ｃを含む。また記憶部３４はユーザプログラム記憶部３４ａ、アウトライン情報記憶部３４ｂ、クロスリファレンス情報記憶部３４ｃを含む。
【００２１】
図２は、表示装置１２に表示される表示画面を示している。図示するように、ラダープログラムを表示するラダー表示部１２ａと、ラダープログラムの構成を示すアウトライン情報を表示するアウトライン情報表示部１２ｂと、指定された命令のオペランドと同一のオペランドを持つ命令についての情報を表示するクロスリファレンス情報表示部１２ｃを備えている。具体的には図８，９，１２，１３などを用いて後述するが、本実施例では命令のオペランドに相当する接点番号やメモリ番号にそれぞれ対応させて変数名をつけることができ、変数名を用いたプログラム編集が可能となっている。変数名を用いたプログラム編集が可能であることにより、ラダー表示部、アウトライン情報表示部、クロスリファレンス情報表示部にもオペランドを変数名で表示することもできる。もちろん、こういった変数名を利用せずに、接点番号や、メモリ番号を利用して表示してもよい。
【００２２】
アウトライン情報表示部１２ｂに表示するアウトライン情報は、アウトライン情報生成部３３ｂが作成し、記憶部３４内のアウトライン情報記憶部３４ｂに格納する。そして、表示処理部３２は、ラダー表示部１２ａに表示されているラダープログラムについてのアウトライン情報をアウトライン情報表示部１２ｂに表示する。
【００２３】
アウトライン情報は、ラダープログラムの構成の概要を示す情報のことであり、ラダープログラムに使用されている所定の構成要素をそのラダープログラムの先頭から順に抽出したものである。図４に示すラダープログラムのアウトライン情報は一例として、図６のように表示される。このように、アウトライン情報をアウトライン情報表示部１２ｂに表示する際には、ラダープログラムの先頭から出現順に所定の構成要素を配列するとともに、複数の命令の集合体である回路部品については一列右に字下げしてツリー状に表示する。デバッグ作業者は、このアウトライン情報を見ることにより、抽出した各構成要素がそのラダープログラム中にどんな順番で、どの位置に存在しているかを認識することができる。
【００２４】
アウトライン情報表示部に表示するラダープログラムの構成要素は、固定ではなく選択可能である。本実施の形態では、出力命令，コメント，エンド，ファンクションブロック（ＦＢ），インタロック／インタロッククリア，回路部品の開始および終了を選択している。他の例として、出力命令のみを選択した場合には、ラダープログラム中の出力命令だけを抽出し、先頭から出現順に配列して表示する。
【００２５】
アウトライン情報生成部３３ｂは、アウトライン情報生成命令を受けると、対象となったラダープログラムの先頭から構成要素をひとつずつ走査し、予め抽出対象として選択した構成要素があると、それを抽出するとともに、順次登録し、階層構造を持つアウトライン情報を生成する。図３にアウトライン生成部のフローチャートを示す。すなわち、プログラムの先頭から順に走査し、構成要素があったならば（Ｓ１０でＹｅｓ）その構成要素を取得する（Ｓ１１）。ここではラダープログラムで使用されているすべての構成要素を取得する。そして、取得した構成要素が抽出対象構成要素か否かを判断する（Ｓ１２）。Ｓ１１で取得した構成要素が抽出対象の構成要素でなければ、分岐判断はＮｏとなる。そして、対象構成要素でない場合には、次の構成要素を探すために、走査の続きを行う（Ｓ２０）。次の構成要素がない場合にはＳ１０の分岐判断がＮｏとなるので、処理を終了する。
【００２６】
一方、取得した構成要素が対象構成要素である場合は、さらに回路部品かそれ以外かを判断する（Ｓ１２）回路部品以外の場合には、それぞれの構成要素に対応するアイコンを取得し（Ｓ１３）、ツリーに登録する（Ｓ１４）。
【００２７】
対応するアイコンは、構成要素の種類ごとに異なるとし、各構成要素とアイコンの対応関係は、予めテーブルを作成し、記憶装置１４に登録しておく。例えば抽出した構成要素が出力命令の場合には電球のようなマークとし、コメントの場合にはしおりのようなマークとする。これにより、Ｓ１３の処理では取得した命令の種類を認識し、上記テーブルを参照して、対応するアイコンを取得することになる。また、ツリーへの登録は、現在の階層の一行下に追加する。
【００２８】
ツリーに登録する情報としては、アイコンと、インデックス番号と、ステップ番号と、変数名である。ここでインデックス番号とは、ラダープログラム上でユニークに存在する番号であり、各命令はもちろんのこと、ステップ番号が付与されないコメントに対しても昇順に設定される。デバッグ作業者は、ラダープログラム内において、インデックス番号を特定すると、任意の命令，コメントを一意に特定することができる。
【００２９】
一方、取得した命令が回路部品の開始または終了の場合には、回路部品の開始か否かを判断し（Ｓ１５）、開始の場合には、回路部品のアイコンを取得するとともに（Ｓ１６）、ツリーに登録する（Ｓ１７）。このツリーへの登録処理は、Ｓ１４の処理と同様である。その後、ツリーを一列右に字下げをする（Ｓ１８）。そして、Ｓ２０（次の構成要素へ進む）を経由してＳ１０に戻る。これにより、これ以降に検出された構成要素についてのツリーの登録（Ｓ１４の処理）は、この字下げしたツリーの下に追加されることになり、回路部品に属する構成要素であることが一目で分かる。
【００３０】
また、取得した構成要素（命令）が、回路部品の終了の場合には、Ｓ１５の分岐判断はＮｏとなるのでＳ１９に進み、ツリーの字下げを解除し（Ｓ１９）、Ｓ２０（次の構成要素へ進む）を経由してＳ１０に戻る。これにより、これ以降に検出された構成要素（命令等）は、元（字下げされた１つ前、つまり１つ上位の階層）のツリーに追加されることになる。
【００３１】
このように、プログラムの先頭から出現順に走査して処理することにより、プログラム上で出現する順番通りに、ツリーの上から順に構成要素を登録することができる。次に、具体例に基づき各処理を説明する。例えば、処理対象のラダープログラムが図４（ラダー図表示）のようになっているとすると、その構成要素リストは図５のようになる。各図において、丸数字がそれぞれ対応する対象構成要素である。図５に示すように、ステップ番号は、命令の先頭から出現する順番で、０番から昇順した番号を付与する。命令に付与されるため、コメントには付与されない。そこで、本実施の形態では、上述したごとく図５に示すようにプログラムの構成要素（命令，コメントなど）に対して出現順に昇順でインデックス番号を付与した。また、図４において、９行目から１５行目は１つの回路部品（部品名が［ｐａｒｔｓ１］）である。
【００３２】
係るラダープログラムに対応した構成要素リスト（図５）対して、先頭の命令から順に処理すると、最初の構成要素（Ｉｎｄｅｘ００００００）は、入力命令であるので、Ｓ１２でＮｏとなる。次のＩｎｄｅｘ０００００１の構成要素は出力命令（ＯＵＴ）であるので、Ｓ１２でＹｅｓとなり、対応するアイコン（電球マーク）を取得し（Ｓ１３）、Ｓ１４の処理を実行し、ツリーへ登録する。これにより、図６に示すように１行目に「アイコン，ステップ番号（０００００１），変数名（ｂ）」が追加される。次の構成要素（ステップ番号無し，Ｉｎｄｅｘ０００００２）はコメントであるのでＳ１２でＹｅｓとなり、対応するアイコン（しおりマーク）を取得し（Ｓ１３）、Ｓ１４の処理を実行しツリーへ登録する。これにより、図６に示すように、２行目に「アイコン，コメント」（ステップ番号はないので非表示）が追加される。
【００３３】
以下順次処理し、例えば、Ｉｎｄｅｘ０００００Ａでは、構成要素は回路部品の開始であるため、Ｓ１５からＳ１７の処理をすることにより、図６に示すように、７行目に「回路部品名（［ｐａｒｔｓ１］）」が追加される。そして、Ｓ１８の実行によりツリーが一列右に字下げされるため、その次に検出された対象構成要素であるＩｎｄｅｘ０００００Ｂのコメント（「＊ｃｏｍｍｅｎｔ２＊」）が、８行目に追加されるが、このとき、７行目の［ｐａｒｔｓ１］の下に字下げされて表示される。以降検出された構成要素は、回路部品の終了を示すＩｎｄｅｘ００００１３のＰＡＲＴＳ＿ＥＮＤにてＳ１９を実行しツリーの字下げが解除されるまで、全て一列右に字下げされて表示される。
【００３４】
ツリーの字下げが解除されたあと、Ｉｎｄｅｘ００００１５のファンクションブロック（「ＦＢ１  ｉｎｓｔ１」）が、図６の１３行目に追加される。そして、Ｉｎｄｅｘ００００１７のＥＮＤ命令についてＳ１４の処理を実行してツリーに追加すると、それ以降は構成要素がないのでＳ１０の分岐判断がＮｏとなり処理を終了することになる。
【００３５】
上記のようにして生成されたアウトライン情報は、アウトライン情報記憶部３４ｂに格納される。そして、アウトライン情報表示部１２ｂにツリー状に表示されるアウトライン情報を見ると、他の命令に影響を与える出力命令やコメントなどが、プログラムにおける出現順に配置されるとともに、回路部品は字下げ表示により階層的に表示されるため、各構成要素のプログラム中のおおよその存在位置などが一目で分かる。
【００３６】
次にラダー表示部１２ａに表示されるラダープログラムと、アウトライン情報表示部１２ｂに表示されるツリー状のアウトライン情報の連動について説明する。すなわち、アウトライン情報表示部１２ｂに表示されたツリー状のアウトライン情報の中から任意の構成要素を選択すると、それに対応したラダープログラムの該当する構成要素を表示するようになる。具体的には、図７に示すフローチャートを実施する機能により、係る連動させることを実現している。
【００３７】
すなわち、アウトライン情報表示部１２ｂ内のカーソル位置の登録情報を取得する（Ｓ２１）。これは、例えばユーザは、ポインティングデバイス等の入力装置１１を操作して、ツリー状のリストの中で任意の構成要素を選択する。すると、選択された構成要素を認識し、アウトライン情報記憶部３４ｂにアクセスしアウトライン情報の中からインデックス番号を取得する。
【００３８】
次いで、現在ラダー表示部１２ａに表示されているラダー画面を表示する表示処理部３２に対し、ジャンプ依頼をする（Ｓ２２）。つまり、インデックス番号を渡す。そして、そのインデックス番号を取得したならば、ラダー表示部１２ａに表示されたラダープログラムの該当位置にジャンプする（Ｓ２３）。すなわち、取得したインデックス番号をキーにラダープログラム記憶部３４ａにアクセスし、該当する構成要素を認識する。そして、その構成要素が、現在ラダー表示部１２ａに表示されている場合には、対応する構成要素にカーソルを移動する。また、ラダー表示部１２ａに表示されていない場合には、該当する構成要素をラダー表示部１２ａ内に表示するとともに、その構成要素にカーソルを移動する。
【００３９】
これにより、例えば、図８に示すように、アウトライン情報表示部１２ｂのツリーの中で、「ステップ番号：００００７，変数名：Ｃｏｍｐｌｅｔｅ１」が選択すれると、ラダー表示部１２ａにおいても対応する出力命令（変数名：Ｃｏｍｐｌｅｔｅ１）にカーソルが当てられる（反転表示している）。この状態で、アウトライン情報表示部１２ｂのツリーの中で、「ステップ番号：０００１０，変数名：Ｃｏｍｐｌｅｔｅ２」が選択すれると、図９に示すように、ラダー表示部１２ａにおいても対応する出力命令（変数名：Ｃｏｍｐｌｅｔｅ２）にカーソルが移動する。
【００４０】
次に、クロスリファレンス情報表示部１２ｃに表示するクロスリファレンス情報について説明する。クロスリファレンス情報表示部１２ｃには、ラダー表示部１２ａに表示されたラダープログラム中の所定の構成要素を選択すると、その構成要素と同一のオペランド（変数名）を持つ構成要素を抽出し、それをクロスリファレンス情報表示部１２ｃに表示する。係る処理は、ラダープログラム編集部３３ａが、図１０に示すフローチャートを実行することにより得られた情報に基づき、図１１に示すフローチャートをクロスリファレンス情報生成部３３ｃが実行することにより行なう。図１０でまず、ラダー表示部１２ａに表示されたラダー画面上でカーソルを移動する（Ｓ３１）。移動したカーソルのカーソル位置が、オペランド部か否かを判断し（Ｓ３２）、オペランド部の場合には、そのカーソル位置にある構成要素についてのプログラム名，ステップ番号，オペランド（変数名）をクロスリファレンス情報生成部３３ｃに渡す（Ｓ３３）。
【００４１】
図１１に示すように、ラダープログラム編集部３３ａから所定の情報を取得すると（Ｓ４０）、オペランド（変数名）がグローバル変数か否かを判断する（Ｓ４１）。グローバル変数とは複数のＰＬＣで共通に使用される変数のことである。グローバル変数か否かは、オペランド（変数名）の前に付加されたパスにより判断できる。例えば、グローバル変数のパスは、「プロジェクト名￥コンフィグレーション名￥変数名」となる。また、特定のＰＬＣでのみ使用されるローカル変数（タスク）の場合は、「プロジェクト名￥コンフィグレーション名￥タスク名￥変数名」となる。このように、グローバル変数かローカル変数かにより、パスが異なるので、容易に判断できる。
【００４２】
グローバル変数の場合には、パスで指定されるプログラムが存在するか否かを判断し（Ｓ４２）、存在しなければそこで処理を終了し、存在する場合には、プログラムを取得する（Ｓ４３）。
【００４３】
取得したプログラムを先頭の命令から順に走査し、命令が存在するか否かを判断する（Ｓ４４）。そして、命令を検出したならば、その命令を取得し（Ｓ４５）、その命令のオペランド（変数名）と、ラダーエディタから取得したオペランド（変数名）が一致するか否かを判断する（Ｓ４６）。そして、一致する場合には、そのプログラムがタスク実行中か否かを判断し（Ｓ４７）、実行の有無により対応するアイコンを取得する（Ｓ４８，Ｓ４９）。その後、その命令についてのクロスリファレンス情報を登録する（Ｓ５０）。ここで登録する情報としては、少なくともオペランド（変数名），アドレス，言語，パス，タスク実行状態，ステップ番号である。
【００４４】
この登録後、或いはＳ４６の分岐判断でオペランド（変数名）が一致しない場合には、次の命令へ進む（Ｓ５１）。最後の命令まで処理すると、Ｓ４４の分岐判断がＮｏとなるので、Ｓ５２に飛び、次のプログラムを走査する。このようにして、全てのプログラムに付いてオペランド（変数名）が一致する命令の抽出・登録処理を終了したならば、Ｓ４２の分岐判断がＮｏとなるので一連の処理を終了する。
【００４５】
一方、グローバル変数でない場合には、Ｓ４１の分岐判断がＮｏとなるので、パスにて指定されたプログラムが存在するか否かを判断し（Ｓ５３）、存在しない場合には、処理を終了する。また、存在する場合には、そのプログラムについてＳ４３からＳ５１までの処理を実行し、そのプログラム中に存在するオペランド（変数名）が一致する命令を取得するともに、関連する情報（アイコン，クロスリファレンス情報）を登録する。なお、プログラムの最後まで走査したならば、Ｓ４４の分岐判断はＮｏとなるが、その場合は処理を終了する（Ｓ５４）。
【００４６】
これらのクロスリファレンス情報等は、記憶装置４内の一時ファイルに格納されるとともに、例えば図１２に示すように、クロスリファレンス情報表示部に表示される。図１２では、ラダー表示部に表示されたラダー画面中の変数名がＣｏｍｐｌｅｔｅ１の出力命令が選択されたため、同一の変数名を持つ入力命令等として４つの命令が抽出され、表示された例を示している。
【００４７】
この状態から、クロスリファレンス情報表示部１２ｃに表示された任意の変数名（例えば、図１３に示すように、２行目の変数名）を選択すると、該当する変数名（命令）を含むプログラムをラダー表示部1２ａに表示する。このとき、カーソルを当てた強調表示することにより、ユーザに容易に理解させることができる。
【００４８】
係る処理を行うための機能は、図１４に示すフローチャートを実行するようなる。まずクロスリファレンス情報表示部１２ｃ上のカーソル位置を取得する（Ｓ６１）。このカーソル位置は、図では、選択されて反転表示されている位置である。そして、そのカーソルで選択された変数名のパス情報から、その変数名が属するプログラムを探索し（Ｓ６２）、ラダー表示部1２ａにプログラムが表示されているか否かを判断する（Ｓ６３）。プログラムが表示されていない場合には、Ｓ６２で探索したプログラムを表示する（Ｓ６４）。
【００４９】
そして、ラダー表示部1２ａに表示された対応するプログラムにジャンプし（Ｓ６５）、そのプログラム中の該当する命令位置にジャンプする（Ｓ６６）。このＳ６６の処理は、図７におけるＳ２３の処理と同様である。これにより、該当する命令をラダー表示部１２ａ上に表示するとともに、カーソルを移動し、強調して表示する。
【００５０】
また、クロスリファレンス情報表示部１２ｃに表示する情報は、ラダー表示部１２ａに表示されたラダープログラム中の選択された構成要素（命令）に対応してクロスリファレンス情報生成部３３ｃが都度生成し、表示する。従って、現在クロスリファレンス情報表示部１２ｃに表示されていない構成要素がラダー表示部１２ａ側で選択されると、クロスリファレンス情報表示部１２ｃに表示されるクロスリファレンス情報も変化する。ここでユーザは１つ前に表示していた情報に簡単に戻ることができない。実際のデバッグ処理では、１つ前さらには何回か前の表示に戻したいという要求があるが、従来は係る要求を満たすことができなかった。
【００５１】
そこで、図２に示すように、クロスリファレンス情報表示部１３ｃの上部に、ブックマークボタンＢ１と、後退ボタンＢ２と、前進ボタンＢ３を用意した。ブックマークボタンＢ１をクリックしたときに表示されていたクロスリファレンス情報を記憶装置１４に記憶保持する機能を備えた。記憶装置１４に記憶保持されたクロスリファレンス情報は、記憶した順に番号を付与する。これにより、後退ボタンＢ１を選択実行する都度、番号を参照し、現在表示されているクロスリファレンス情報の１つ前に表示（格納）されたクロスリファレンス情報を記憶装置１４から呼び出して表示する。また、前進ボタンＢ３をクリックすることにより、番号を参照し、現在表示されているクロスリファレンス情報の次に表示（格納）されたクロスリファレンス情報を記憶装置１４から呼び出して表示する。
【００５２】
このように、クロスリファレンス情報の表示履歴を逐次表示することができ、所望のクロスリファレンス情報を簡単に見ることができるため、ラダープログラムのデバッグ作業を容易に行うことができる。
【図面の簡単な説明】
【００５３】
【図１】本発明の一実施の形態を示すハードウェアブロック図である。
【図２】表示画面の一例を示す図である。
【図３】アウトライン情報生成部の機能を示すフローチャートである。
【図４】ラダー表示部に表示されるラダープログラムの一例を示す図である。
【図５】図４に示すプログラムのリストを示す図である。
【図６】アウトライン情報表示部に表示される図４に示すラダープログラムに対するアウトライン情報を示す図である。
【図７】アウトライン情報表示部に表示されたリストからラダー表示部に表示されるラダープログラムへのジャンプ機能の一例を示す図である。
【図８】作用効果を説明する表示画面の表示例である。
【図９】作用効果を説明する表示画面の表示例である。
【図１０】ラダーエディタの機能を説明するフローチャートである。
【図１１】クロスリファレンス情報生成部の機能を示すフローチャートである。
【図１２】作用効果を説明する表示画面の表示例である。
【図１３】作用効果を説明する表示画面の表示例である。
【図１４】クロスリファレンス情報表示部に表示された命令からラダー表示部に表示されるラダープログラムへのジャンプ機能の一例を示す図である。
【図１５】本発明の一実施の形態を示す機能ブロック図である。
【符号の説明】
【００５４】
１０  開発支援装置
１１  入力装置
１２  表示装置
１２ａ  ラダー表示部（ユーザプログラム表示部）
１２ｂ  アウトライン情報表示部
１２ｃ  クロスリファレンス情報表示部
１３  中央演算装置
１４  記憶装置
１５  通信Ｉ／Ｆ
２０  ＰＬＣ
２１  通信回線
３１  入力処理部
３２  表示処理部
３３  演算部
３３ａ  ユーザプログラム編集部
３３ｂ  アウトライン情報生成部
３３ｃ  クロスリファレンス情報生成部
３４  記憶部
３４ａ  ラダープログラム記憶部（プログラム記憶手段）
３４ｂ  アウトライン情報記憶部
３４ｃ  クロスリファレンス情報記憶部
３５  通信処理部
【図１】
2006146955.tif 000003
【図２】
2006146955.tif 000004
【図３】
2006146955.tif 000005
【図４】
2006146955.tif 000006
【図５】
2006146955.tif 000007
【図６】
2006146955.tif 000008
【図７】
2006146955.tif 000009
【図８】
2006146955.tif 000010
【図９】
2006146955.tif 000011
【図１０】
2006146955.tif 000012
【図１１】
2006146955.tif 000013
【図１２】
2006146955.tif 000014
【図１３】
2006146955.tif 000015
【図１４】
2006146955.tif 000016
【図１５】
2006146955.tif 000017