(57)【特許請求の範囲】
【請求項１】
指定したジャンプ先命令または指定したサブルーチンプログラムにジャンプさせるジャンプ元命令を含むプログラムを作成するエディタ装置において、
前記ジャンプ先命令または前記サブルーチンプログラムを指示する操作が行われると、前記ジャンプ元命令の各々が有する、前記ジャンプ元命令が、前記ジャンプ先命令にジャンプさせるジャンプ命令であるか、または前記サブルーチンプログラムにジャンプさせるサブルーチンジャンプ命令であるかを特定するための命令特定情報および前記ジャンプ先命令または前記サブルーチンプログラムを指定するための指定情報に基づいて、指示された前記ジャンプ先命令または前記サブルーチンプログラムを指定するジャンプ元の前記ジャンプ元命令を検索する命令検索手段を備えていることを特徴とするエディタ装置。
【請求項２】
前記ジャンプ元命令を指示する操作が行われると、当該ジャンプ元命令が有する前記ジャンプ先命令または前記サブルーチンプログラムを指定する指定情報に基づいて、当該ジャンプ元命令で指定された前記ジャンプ先命令または前記サブルーチンプログラムを検索し、見出した前記ジャンプ先命令を含む前記プログラムの部分または見出した前記サブルーチンプログラムを表示するジャンプ先検索手段を備えていることを特徴とする請求項１に記載のエディタ装置。
【請求項３】
前記命令検索手段は、探し出した前記ジャンプ元命令の一覧を表示することを特徴とする請求項１に記載のエディタ装置。
【請求項４】
前記命令検索手段は、一覧表示した前記ジャンプ元命令から１つが選択されると、当該ジャンプ元命令を表示することを特徴とする請求項３に記載のエディタ装置。
【請求項５】
前記プログラムは、プログラマブルロジックコントローラの制御手順を規定する制御手順プログラムであることを特徴とする請求項１ないし４のいずれか１項に記載のエディタ装置。
【請求項６】
請求項１ないし５の何れか１項に記載のエディタ装置の前記各手段としてコンピュータを機能させるためのエディタプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、指定されたジャンプ先に移行する命令を含むプログラムを作成するエディタ装置、エディタプログラムおよびそれを記録した記録媒体に関するものである。
【背景技術】
【０００２】
プログラマブルロジックコントローラ（以降、ＰＬＣと称する）などと呼ばれる制御装置は、シーケンス制御をはじめとする各種制御を制御システムにおいて実現するために、ユーザが作成したプログラム（ロジックプログラム）を実行する。ＰＬＣは、ＣＰＵおよびメモリを中心とするハードウェアの部分と、このハードウェアの部分にプログラムを実行させるシステムプログラムなどのソフトウェアの部分を備えている。
【０００３】
ユーザが作成するプログラムは、ＰＬＣに所望の制御動作をさせる基本となる制御フローにしたがって、各種の命令語を組み合わせることによって構築される。このようなプログラムの作成においては、コンピュータの専門知識を持たなくてもロジックプログラムを簡単に作成できるように、ラダープログラム（シーケンスプログラム）のようなグラフィカルな独自のプログラミング言語が用いられており、他にも利用者に使いやすい各種のプログラミング言語が次々と開発されるようになった。例えば、ラダー図（ＬＤ）は、命令記号のようなオブジェクトを用いて比較的容易にラダー回路を設計することができるので広く普及しており、現在、最もよく用いられているプログラミング言語である。
【０００４】
このようなプログラミング言語によるプログラム作成において用いられるプログラミングツールとしては、ラダーエディタなどのプログラミングソフトウェアが普及してきている。このソフトウェアは、汎用コンピュータなどのコンピュータ装置において、ラダー図のような記号化された命令を含む形態でプログラムを容易に作成および編集することができる（例えば特許文献１）。
【特許文献１】特開２０００−２５９２１６号公報（２０００年９月２２日公開）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ロジックプログラムは、ジャンプ命令やサブルーチンジャンプ命令を含んでおり、この命令が実行されると、指定されたジャンプ先へ移行する。近年のエディタには、ロジックプログラムの作成やデバッグにおいて、ジャンプ命令やサブルーチンジャンプ命令で指定されたジャンプ先を確認する場合、ロジックプログラム中で使用される全てのジャンプ先の一覧を表示させ、その中から所望のジャンプ先を選択すると、当該ジャンプ先を検索して表示させる機能を持ったものもある。
【０００６】
このようなエディタでは、まず、ジャンプ先の一覧を表示させてから、所望のジャンプ先を選択するという操作が必要となる。確認する必要があるジャンプ先が多くなるほど操作数が増加するため、操作性が著しく低下する。
【０００７】
また、上記のようなエディタでは、ロジックプログラムのジャンプ先の部分を表示させることができるものの、ジャンプ先を指定したジャンプ元の部分を自動的に探し出すことができない。このため、ジャンプ元の部分を探し出すには、ユーザが、予めジャンプ元のリストを用意したり、記憶に頼ったりすることで、ジャンプ元を探し出すといった手間のかかる作業を行う必要がある。それゆえ、ロジックプログラムのデバッグ作業を効率的に行うことができなかった。これは、同一のジャンプ先を指定している命令が複数あれば、ジャンプ元が複数あることになり、より上記の作業に手間がかかる。
【０００８】
また、ロジックプログラム以外の一般のプログラム（例えばＣ＋＋言語によるプログラム）でも、同様な命令を含んでいるため、やはり上記のような問題が生じている。
【０００９】
本発明は、上記の問題点に鑑みてなされたものであり、その目的は、指定したジャンプ先にジャンプさせる命令を含むプログラムにおけるジャンプ先の部分およびジャンプ元の部分を容易に探し出すことにある。
【課題を解決するための手段】
【００１０】
本発明に係るエディタ装置は、指定したジャンプ先にジャンプさせる命令を含むプログラムを作成するエディタ装置において、上記課題を解決するために、前記命令を指示する操作が行われると、当該命令が有するジャンプ先を指定する指定情報に基づいて、当該命令で指定されたジャンプ先を検索するジャンプ先検索手段を備えていることを特徴としている。
【００１１】
上記の構成では、ユーザによって前記命令を指示する操作（例えばマウスのクリック操作）が行われると、ジャンプ先検索手段によって、プログラムにおいて、指示された命令が有する指定情報に基づいて、ジャンプ先が検索される。例えば、指定されたラベルにジャンプさせるジャンプ命令の場合、あるジャンプ命令が指示されると、ラベルを指定する指定情報に基づいて、当該ラベルが検索される。また、指定されたサブルーチンプログラムにジャンプさせるサブルーチンジャンプ命令の場合、あるサブルーチンプログラムが指示されると、サブルーチンプログラムを指定する指定情報に基づいて、サブルーチンジャンプ命令が検索される。
【００１２】
これにより、プログラムにおいて命令を指示するだけで、ジャンプ先を容易に探し出すことができる。
【００１３】
本発明に係る他のエディタ装置は、指定したジャンプ先にジャンプさせる命令を含むプログラムを作成するエディタ装置において、上記課題を解決するために、前記ジャンプ先を指示する操作が行われると、前記命令の各々が有する、前記命令を特定するための命令特定情報およびジャンプ先を指定するための指定情報に基づいて、指示されたジャンプ先を指定するジャンプ元の前記命令を検索する命令検索手段を備えていることを特徴としている。
【００１４】
上記の構成では、ユーザによってジャンプ先を指示する操作（例えばマウスのクリック操作）が行われると、命令検索手段によって、プログラムにおいて、各命令が有する命令特定情報および指定情報に基づいて、当該ジャンプ先を指定するジャンプ元の命令が検索される。例えば、指定されたラベルにジャンプさせるジャンプ命令の場合、あるラベルが指示されると、ジャンプ命令であることを特定する命令特定情報およびラベルを指定する指定情報に基づいて、指示されたラベルを指定するジャンプ命令が検索される。また、指定されたサブルーチンプログラムにジャンプさせるサブルーチンジャンプ命令の場合、あるサブルーチンプログラムが指示されると、サブルーチンジャンプ命令であることを特定する命令特定情報およびサブルーチンプログラムを指定する指定情報に基づいて、指示されたサブルーチンプログラムを指定するサブルーチンジャンプ命令が検索される。
【００１５】
これにより、ジャンプ先から所望のジャンプ元を容易に探し出すことができる。
【００１６】
前記エディタ装置において、命令検索手段は、探し出した前記命令の一覧を表示することが好ましい。これにより、ジャンプ元を容易に確認することができる。
【００１７】
さらに、前記エディタ装置において、前記命令検索手段は、一覧表示した前記命令から１つが選択されると、当該命令を表示することが好ましい。これにより、ジャンプ先から所望のジャンプ元へプログラムの表示を切り替えることができる。
【００１８】
前記エディタ装置において、前記プログラムは、プログラマブルロジックコントローラの制御手順を規定する制御手順プログラムであることが好ましい。これにより、多数行で構成されることの多い制御手順プログラムにおいて、容易にジャンプ元の命令を探し出すといったことが可能となる。
【００１９】
本発明のエディタプログラムは、前述のいずれかのエディタ装置の前記命令検索手段としてコンピュータを機能させるプログラムである。また、このエディタプログラムは、コンピュータ読み取り可能な記録媒体に記録される。このように、エディタプログラムをコンピュータに読み取らせて実行させることにより、前記エディタ装置を実現することができる。
【発明の効果】
【００２０】
本発明に係るエディタ装置は、以上のように、指定したジャンプ先にジャンプさせる命令を指示する操作が行われると、当該命令が有するジャンプ先を指定する指定情報に基づいて、当該命令で指定されたジャンプ先を検索するジャンプ先検索手段を備えているので、ジャンプ先を容易に探し出すことができる。
【００２１】
また、本発明に係る他のエディタ装置は、以上のように、指定したジャンプ先にジャンプさせる命令の各々が有する、命令を特定するための命令特定情報およびジャンプ先を指定するための指定情報に基づいて、選択されたジャンプ先を指定するジャンプ元の前記命令を検索する命令検索手段を備えているので、ジャンプ先から所望のジャンプ元を容易に探し出すことができる。
【００２２】
したがって、プログラムの作成・編集作業やデバッグ作業をより効率的に行うことができるという効果を奏する。
【発明を実施するための最良の形態】
【００２３】
本発明の一実施形態について図１ないし図５に基づいて説明すると、以下の通りである。
【００２４】
本実施の形態に係るエディタ装置は、図１に示すように、エディタコンピュータ１によって構成されている。エディタコンピュータ１は、ＣＰＵ、メモリ（ＲＡＭ、ＲＯＭなど）、外部記憶装置（ハードディスクドライブ、ＭＯドライブなど）、表示装置および入力装置（キーボード、マウスなど）を有している。また、エディタコンピュータ１は、図１に示すように、制御部１１、インターフェース部（図中、Ｉ／Ｆ）１２、エディタ部１３およびデータ記憶部１４を備えている。
【００２５】
インターフェース部１２は、プログラマブル表示器２との間の通信を行うための通信制御部であり、転送ケーブル３に接続されている。転送ケーブル３としては、例えばＵＳＢケーブルなどが用いられる。
【００２６】
プログラマブル表示器２は、ＣＰＵなどの演算処理装置を備えており、ユーザが作成した入力操作および表示用の画面データを表示することによりプログラマブル表示器特有の操作機能および表示機能を実現する専用コンピュータである。
【００２７】
このプログラマブル表示器２は、シリアルケーブル６を介したＰＬＣ４との通信により、ＰＬＣ４を介して表示画面に表示される各デバイス５の状態を取得して、例えば、後述のディスプレイ２３に各デバイス５の状態を表示する機能を有している。また、プログラマブル表示器２は、後述のタッチパネル２４への操作に応じて、デバイス５の状態制御をＰＬＣ４に指示する機能を有している。また、プログラマブル表示器２は、後述するように、ＰＬＣとしての制御機能を備えている。
【００２８】
ＨＭＩ機器として好適に使用されるプログラマブル表示器２は、ＨＭＩ処理部２１を制御の中心として備えている。このＨＭＩ処理部２１は、ＨＭＩ処理のプログラムを実行することによって実現される機能ブロックである。また、プログラマブル表示器２は、上記のＰＬＣとしての制御機能を実現するために、コントローラ部２２を備えている。このコントローラ部２２は、コントローラ処理のプログラムを実行することによって実現される機能ブロックである。
【００２９】
上記のＨＭＩ処理部２１は、所定の時間間隔毎や所定のイベント毎にＰＬＣ４と通信することによって、ＰＬＣ４のメモリから、デバイス５の状態を状態データとして取得して、プログラマブル表示器２内に用意された一時的なメモリ空間、例えば作業メモリ２５の特定の領域（状態メモリ領域）に書き込む。また、ＨＭＩ処理部２１は、ＰＬＣ４のメモリにおける状態データを更新するように、状態メモリ領域におけるデバイス５の状態データを書き替えて、ＰＬＣ４に送信する。また、ＨＭＩ処理部２１は、後述する部品などのオブジェクトを組み合わせて作成された画面データに基づいて、デバイス５の状態データをＰＬＣ４から取得してプログラマブル表示器２に描画表示するときの動作や、画面上のタッチパネル２４への操作に応じてデバイス５の状態の変更を指示するときの動作を処理規定情報によって特定する。
【００３０】
画面データは、エディタコンピュータ１や他の画面エディタ機能を有するコンピュータによって作成されてＨＭＩ処理部２１で処理可能な形式として画面ファイルに変換された状態で、エディタコンピュータ１から転送ケーブル３を介して転送され、データメモリ２６に格納される。プログラマブル表示器２における画面ファイルの受信は、インターフェース部（図中Ｉ／Ｆ）２７によって行われる。
【００３１】
また、ＨＭＩ処理部２１は、インターフェース部（図中Ｉ／Ｆ）２８によるシリアルケーブル６を介したＰＬＣ４との通信により、ＰＬＣ４のメモリに格納された各デバイス５の状態を取得し、ディスプレイ２３に表示される画面上に各デバイス５の状態を描画表示する機能を有する。
【００３２】
コントローラ部２２は、データメモリ２２からラダーファイルを読み出して作業メモリ２３にラダープログラムとして展開し、当該ラダープログラムを数十ｍｓなどの予め定められた周期でスキャンして、ラダー命令を一つずつ実行していく。コントローラ部２２は、Ｉ／Ｏ部２９を介したデバイス５との通信によって、デバイス５の状態を変更したり、デバイス５の状態を読み取ったりする。
【００３３】
ラダープログラム（ロジックプログラム）は、ユーザがＰＬＣ４やコントローラ部２２に実現させたい制御フロー（制御手順）をユーザによって組み上げられたラダーロジックで規定している。このラダープログラムは、エディタコンピュータ１によって作成されてコントローラ部２２で処理可能な形式としてラダーファイルに変換された状態で、エディタコンピュータ１から転送ケーブル３を介して転送され、データメモリ２６に格納される。
【００３４】
Ｉ／Ｏ部２９は、Ｉ／Ｏ制御インターフェース部およびＩ／Ｏユニットからなる。Ｉ／Ｏユニットは、デバイス５が接続可能となるように、多数の入出力端子、入出力回路などを備えている。このＩ／Ｏユニットは、接続される通信システムに応じて異なる機種が、プログラマブル表示器２の本体に着脱可能に取り付けられる。Ｉ／Ｏ制御インターフェース部は、コントローラ部２２とＩ／Ｏユニットとの間の信号の授受を仲介するインターフェース回路であって、入出力メモリ、Ｄ／Ａ変換器、Ａ／Ｄ変換器などを備えている。
【００３５】
ラダープログラムは、エディタ部１３で作成されて、コントローラ部２２で処理可能な形式としてラダーファイルに変換された上で、エディタコンピュータ１から転送ケーブル３を介して転送されて、データメモリ２６に格納される。プログラマブル表示器２における画面ファイルの受信は、画面ファイルと同様、インターフェース部２７によって行われる。
【００３６】
ここで、ＰＬＣ４について説明する。
【００３７】
ＰＬＣ４は、ユーザが作成したロジックプログラム（ラダープログラムなど）にしたがって、例えば、数十ｍｓなどの予め定められたスキャンタイム毎に、入力ユニットを介して入力用のデバイス５の状態を取り込むとともに、出力用のデバイス５に状態を変更するように制御指示を与える。
【００３８】
入力用のデバイス５としては、センサ（温度センサ、光センサなど）、スイッチ（押ボタンスイッチ、リミットスイッチ、圧力スイッチなど）のような機器が用いられる。出力用のデバイス５としては、アクチュエータ、リレー、電磁弁、表示器などが用いられる。これらのデバイス５は、製造ラインなどの所要各部に配置される。また、プログラマブル表示器２に表示されるユーザ画面に設けられるスイッチ部品や表示器部品もデバイス５として扱われる。
【００３９】
なお、デバイス５は、プログラマブル表示器２における特定のメモリ領域であってもよいし、ＰＬＣ４内のメモリにおける特定のメモリ領域であってもよい。これらのメモリ領域は内部デバイスとして設定される。
【００４０】
ＰＬＣ４内のメモリは、デバイス５の状態（デバイス５からの出力値やデバイス５への設定値）を示すデータ（ワードデータやビットデータ）を、デバイスアドレスで特定される領域に格納している。上記メモリにおいて、ワードデバイスとビットデバイスとが設定される。ワードデバイスは、入出力されるデータが数値のようなワードデータを格納する領域として設定され、ワードアドレス（デバイスアドレス）で指定される。また、ビットデバイスは、オン・オフ状態のようなビットデータを格納する領域として設定され、ビットアドレス（デバイスアドレス）で設定される。このような設定により、メモリ内の任意のワードデバイスまたはビットデバイスをデバイスアドレスとして指定してアクセスするだけでデバイス５を制御し、またはその状態に関する情報を個別に取り出すことができる。
【００４１】
ＰＬＣ４のメーカ毎に固有の名称で呼ばれるデバイスアドレスには、変数が対応付けられている。変数は、ユーザによって任意に設定可能な名称であり、後述するコメントを変数として扱うことができる。
【００４２】
ここで、再びエディタコンピュータ１の説明に戻る。
【００４３】
制御部１１は、ハードウエア（ＣＰＵやメモリなど）およびソフトウエア（オペレーティングシステムなど）によって実現される機能ブロックであり、アプリケーションプログラムの実行や周辺機器の動作を制御する部分である。制御部１１は、その機能を果たすために作業メモリ１１ａを有している。作業メモリ１１ａは、ＲＡＭなどによって構成され、エディタ部１３がラダープログラムを展開するためなどに用いられる。
【００４４】
また、制御部１１は、アプリケーションプログラムであるラダープログラミングソフトウェアを実行することにより、ラダーエディタをエディタ部１３に実現する。エディタ部１３は、エディタコンピュータ１と分離可能に構成される記録媒体に記録され、この記憶媒体からエディタコンピュータ１にインストールすることが可能である。また、エディタコンピュータ１は、エディタ部１３を備えることによりエディタ装置として機能する。
【００４５】
上記の記録媒体（プログラムメディア）は、コンピュータに読み取り可能な記録媒体であり、磁気テープやカセットテープなどのテープ系、フレキシブルディスクやハードディスクなどの磁気ディスク系、ＣＤ−ＲＯＭ、ＭＯ、ＭＤ、ＤＶＤなどの光ディスク系、ＩＣカード（メモリカードを含む）、光カードなどのカード系が好適である。その他、上記のプログラムメディアは、マスクＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュＲＯＭなどによる半導体メモリを含めた固定的にプログラムを担持する媒体であってもよい。
【００４６】
また、エディタコンピュータ１が、インターネットを含む通信ネットワークと接続可能な環境に置かれていれば、通信ネットワークからプログラムをダウンロードするように流動的にプログラムを担持する媒体であってもよい。ただし、このように通信ネットワークからプログラムをダウンロードする場合には、そのダウンロード用プログラムは予めエディタコンピュータ１に格納されるか、あるいは別な記録媒体からインストールされるものであことが好ましい。
【００４７】
エディタ部１３は、作成したラダープログラムを前述のラダーファイルに変換した上で、データ記憶部１４に保存する。また、エディタ部１３は、ラダーファイルをデータ記憶部１４から読み出して、転送ケーブル３を介してプログラマブル表示器２に転送する。あるいは、エディタ部１３は、ラダーファイルをデータ記憶部１４から読み出して、図示しない転送ケーブルを用いてＰＬＣ４にロードする。
【００４８】
エディタ部１３は、ラダープログラムの作成のために各種の命令を用意している。このような命令としては、ａ接点（Normal Open）、ｂ接点（Normal Close）、コイル出力、コイル反転出力、ジャンプ、サブルーチンジャンプ（サブルーチン処理開始）などの基本命令を始めとして、演算命令、比較命令、タイマ命令、カウンタ命令などが上げられる。
【００４９】
上記の命令のうち、ジャンプ命令は、指定したラベルが配置されている位置までジャンプして、当該ラベル以降のラダープログラムを実行させるための命令である。ラベルは、ジャンプ命令で指定されるジャンプ先を特定するために設けられている。ここでは、ＬＡＢＥＬ−００１，ＬＡＢＥＬ−００２，ＬＡＢＥＬ−００３，…をラベル名と称する。
【００５０】
また、サブルーチンジャンプ命令は、メインプログラムから、指定したサブルーチンプログラムへラダープログラムの実行を移行させるための命令である。サブルーチンプログラムの実行後は、サブルーチンジャンプ命令の次の行からメインプログラムが実行される。
【００５１】
各命令は、データ構造上、先頭に情報エリアを有しており、それ以外にコマンド部、変数部などを含んでいる。情報エリアは、当該命令を特定する情報（命令特定情報）を含んでいる。上記のラベルも命令として扱われ、ラベルの情報エリアがラベル特定情報（上記のラベル名）を含んでいる。コマンド部は、命令およびオペランドの内容を含んでいる。このオペランドには、ラベル名やサブルーチンプログラムを指定するためのサブルーチン名を設定することが可能である。変数部は、前述の変数およびデバイスアドレスを含んでいる。
【００５２】
エディタ部１３は、ユーザがラダープログラムの作成・編集作業を行うために、図２に示すように、メインウインドウ１０１をエディタコンピュータ１の表示面（ディスプレイ）に表示する。メインウインドウ１０１は、ラダープログラムを表示するための作業エリア１０２を有している。作業エリア１０２は、エディタ部１３によるラダープログラムの作成（編集）に用いられる領域である。
【００５３】
また、エディタ部１３は、ジャンプ処理部１３１を含んでいる。このジャンプ処理部１３１は、ユーザの指示を受けて、作業エリア１０２におけるラダープログラムの表示を、ジャンプ元命令（前述のジャンプ命令やサブルーチンジャンプ命令）で指定されたジャンプ先を含む部分へ切り替える。ジャンプ命令に対するジャンプ先はラベルであり、サブルーチンジャンプ命令に対するジャンプ先はサブルーチンプログラムである。また、ジャンプ処理部１３１は、ユーザの指示を受けて、作業エリア１０２におけるラダープログラムの表示を、ジャンプ先を含む部分から、当該ジャンプ先を指定するジャンプ元の命令（ジャンプ命令やサブルーチンジャンプ命令）をリストアップして、そこから選択された命令を含む部分へ切り替える。
【００５４】
ジャンプ処理部１３１は、上記の機能を実現するために、ラベル表示部１３１ａ、サブルーチン表示部１３１ｂおよび命令サーチ部１３１ｃを有している。
【００５５】
ラベル表示部１３１ａは、ユーザの指示を受けて、ラダープログラムにおいて、ジャンプ命令で指定されたラベルを含む部分を表示する。具体的には、ラベル表示部１３１ａは、ユーザによってジャンプ命令が指示されると、当該ジャンプ命令のオペランドに設定されたラベル名に基づいて、各ラベルが有する前述の情報エリアに格納されているラベル特定情報を参照しながら、当該ジャンプ命令によって指定されたラベルをサーチする。また、ラベル表示部１３１ａは、指定されたラベルを見出すと、ラダープログラムの当該ラベルを含む部分を作業エリア１０２に表示する。
【００５６】
サブルーチン表示部１３１ｂは、ユーザの指示を受けて、ラダープログラムにおいて、サブルーチンジャンプ命令で指定されたサブルーチンプログラムを含む部分を表示する。具体的には、サブルーチン表示部１３１ｂは、ユーザによってサブルーチンジャンプ命令が指示されると、当該サブルーチンジャンプ命令のオペランドに設定されているサブルーチン名に基づいて、登録されているサブルーチン名を参照しながら、当該サブルーチンジャンプ命令によって指定されたサブルーチンプログラムをサーチする。また、サブルーチン表示部１３１ｂは、指定されたサブルーチンプログラムを見出すと、当該サブルーチンプログラムを作業エリア１０２に表示する。
【００５７】
命令サーチ部１３１ｃは、ユーザの指示を受けて、ラダープログラムにおいて、ラベルの指定元（ジャンプ元）となるジャンプ命令をサーチ（検索）して、該当する１つ以上のジャンプ命令をリスト表示（一覧表示）し、そこから選択されたジャンプ命令を含む部分を表示する。具体的には、命令サーチ部１３１ｃは、ユーザによってラベルが指示されると、各命令が有する前述の情報エリアに格納されている命令特定情報およびオペランドに設定されているラベル名（指定情報）に基づいて、当該ラベルを指定するジャンプ命令をサーチする。そして、命令サーチ部１３１ｃは、該当するジャンプ命令を見出すと、ユーザに選択可能な形態でリスト表示する。さらに、命令サーチ部１３１ｃは、ユーザによってリストから選択されたジャンプ命令を、各命令が有する上記の命令特定情報およびラベル名を参照しながらサーチ（検索）して見出すと、当該ジャンプ命令を含む部分を作業エリア１０２に表示する。
【００５８】
また、命令サーチ部１３１ｃは、ユーザの指示を受けて、ラダープログラムにおいて、サブルーチンプログラムの指定元（ジャンプ元）となるサブルーチンジャンプ命令をサーチ（検索）して、該当する１つ以上のサブルーチンジャンプ命令をリスト表示（一覧表示）し、そこから選択されたサブルーチンジャンプ命令を含む部分を表示する。具体的には、命令サーチ部１３１ｃは、ユーザによってサブルーチンプログラムの開始部分（サブルーチン開始ラベル）が指示されると、各命令が有する前述の情報エリアに格納されている命令特定情報およびオペランドに設定されているサブルーチン名（指定情報）に基づいて、当該サブルーチンプログラムを指定するサブルーチンジャンプ命令をサーチする。そして、命令サーチ部１３１ｃは、該当するサブルーチンジャンプ命令を見出すと、ユーザに選択可能な形態でリスト表示する。さらに、命令サーチ部１３１ｃは、ユーザによってリストから選択されたサブルーチンジャンプ命令を、各命令が有する上記の命令特定情報およびサブルーチン名を参照しながらサーチ（検索）して見出すと、当該サブルーチンジャンプ命令を含む部分を作業エリア１０２に表示する。
【００５９】
ここで、上記のように構成されるエディタコンピュータ１のジャンプ処理部１３１によるジャンプ処理について説明する。以下には、作業エリア１０２に図２に示すようなラダープログラムが表示されている場合について説明する。
【００６０】
このラダープログラムには、メインプログラムの５行目に、“ＬＡＢＥＬ−００１”というラベル名を付したジャンプ命令が記述されている。ここで、ユーザが当該ジャンプ命令の記述箇所にマウスカーソルを置いた状態で右クリック操作をすると、ラベル表示部１３１ａによって、図３（ａ）に示すように、ポップアップメニュー２０１が表示される。また、ラベル表示部１３１ａは、上記の右クリック操作を受けて、当該ジャンプ命令のオペランドに設定されたラベル名“ＬＡＢＥＬ−００１”を、ラダープログラムの第１行から各ラベルの情報エリアにおけるラベル特定情報を参照しながらサーチする。そして、ラベル表示部１３１ａは、当該ラベルを見出すと、ラダープログラムの当該ラベルを含む部分を一旦作業メモリ１１ａに保存しておく。そして、ユーザがそのポップアップメニューから「対応箇所へ」という項目をクリック操作で選択すると、ラベル表示部１３１ａは、図３（ｂ）に示すように、作業メモリ１１ａに保存しておいたラダープログラムの当該ラベルを含む部分を読み出して作業エリア１０２に表示する。
【００６１】
また、上記のラダープログラムには、メインプログラムの３行目に、“ＳＵＢ−００１”というサブルーチン名を付したサブルーチンジャンプ命令が記述されている。ここで、ユーザが当該サブルーチンジャンプ命令の記述箇所にマウスカーソルを置いた状態で右クリック操作をすると、サブルーチン表示部１３１ｂによって、図４（ａ）に示すように、ポップアップメニュー２０１が表示される。また、サブルーチン表示部１３１ｂは、上記の右クリック操作を受けて、当該サブルーチンジャンプ命令のオペランドに設定されたサブルーチン名“ＳＵＢ−００１”のサブルーチンプログラムを、作業メモリ１１ａに展開されている各サブルーチンプログラムのサブルーチン名を参照しながらサーチする。そして、ラベル表示部１３１ａは、当該サブルーチンプログラムを見出すと、当該サブルーチン名を一旦作業メモリ１１ａに保存しておく。そして、ユーザがそのポップアップメニューから「対応箇所へ」という項目をクリック操作で選択すると、サブルーチン表示部１３１ｂは、図４（ｂ）に示すように、作業メモリ１１ａに保存しておいたサブルーチン名のサブルーチンプログラムを読み出して作業エリア１０２に表示する。
【００６２】
続いて、ラベルから当該ラベルを指定するジャンプ命令を探す動作について説明する。
【００６３】
まず、ユーザが、図３（ｂ）に示すように表示されたラベル（ＬＡＢＥＬ−００１）について右クリック操作をすると、命令サーチ部１３１ｃによって、図５（ａ）に示すように、ポップアップメニュー２０１が表示される。また、命令サーチ部１３１ｃは、上記の右クリック操作を受けて、各命令の情報エリアにおける命令特定情報およびオペランドにおけるラベル名に基づいて、当該ラベルを指定するジャンプ命令をサーチする。命令サーチ部１３１ｃは、サーチの結果で見出した該当するジャンプ命令の場所を一旦作業メモリ１１ａに保存しておく。
【００６４】
そして、ユーザがそのポップアップメニュー２０１から「対応箇所へ」という項目をクリック操作で選択すると、命令サーチ部１３１ｃは、作業メモリ１１ａに保存しておいた該当する全てのジャンプ命令をポップアップメニュー２０２にリスト表示する。さらに、ユーザがそのポップアップメニューから１つ（例えばメインプログラムの５行目のジャンプ命令（ＪＭＰ））を選択すると、命令サーチ部１３１ｃは、作業メモリ１１ａに保存した前記ジャンプ命令の場所の情報を元に、図２に示すように、当該ジャンプ命令を含む部分を作業エリア１０２に表示する。
【００６５】
さらに、サブルーチン開始ラベルから当該ラベルを指定するジャンプ命令を探す動作について説明する。
【００６６】
まず、ユーザが、図４（ｂ）に示すように表示されたサブルーチン開始ラベル（ＳＵＢ−００１）について右クリック操作をすると、命令サーチ部１３１ｃによって、図５（ｂ）に示すように、ポップアップメニュー２０１が表示される。また、命令サーチ部１３１ｃは、上記の右クリック操作を受けて、各命令の情報エリアにおける命令特定情報およびオペランドにおけるサブルーチン名に基づいて、当該サブルーチン名を指定するサブルーチンジャンプ命令をサーチする。命令サーチ部１３１ｃは、サーチの結果で見出した該当するサブルーチンジャンプ命令を一旦作業メモリ１１ａに保存しておく。
【００６７】
そして、ユーザがそのポップアップメニュー２０１から「対応箇所へ」という項目をクリック操作で選択すると、命令サーチ部１３１ｃは、作業メモリ１１ａに保存しておいた該当する全てのサブルーチンジャンプ命令をポップアップメニュー２０２にリスト表示する。さらに、ユーザがそのポップアップメニューから１つ（例えばメインプログラムの３行目のサブルーチンジャンプ命令（ＪＳＲ））を選択すると、命令サーチ部１３１ｃは、当該サブルーチンジャンプ命令を、各命令の命令特定情報およびサブルーチン名を参照しながらサーチし、図２に示すように、当該サブルーチンジャンプ命令を含む部分を作業エリア１０２に表示する。
【００６８】
このように、エディタコンピュータ１（エディタ部１３）は、ラダープログラムにおけるジャンプ先（ラベルやサブルーチンプログラム）から、当該ジャンプ先を指定するジャンプ元（ジャンプ命令やサブルーチンジャンプ命令）をサーチして表示する。これにより、ジャンプ先から所望のジャンプ元へラダープログラムの表示を切り替えることができる。それゆえ、ジャンプ先とジャンプ元との間の移動を容易にすることができる。また、ジャンプ元のジャンプ命令やサブルーチンジャンプ命令を探し出すときには、各命令における先頭部分の情報エリアに含まれる命令特定情報を参照しながら検索を行うので、各命令の全ての情報を参照する必要がなく、検索速度を高めることができる。
【００６９】
したがって、ラダープログラムの作成・編集作業やデバッグ作業をより効率的に行うことができる。
【００７０】
なお、本実施の形態では、ラダープログラムについてジャンプ処理を行う例について説明したが、本発明が対象とするプログラムはラダープログラムに限定されない。例えば、特定可能なジャンプ命令やサブルーチンジャンプ命令を含んでいるプログラムであれば、広く一般に普及しているＣ＋＋言語によって作成されたプログラムにも上記の実施の形態の手法を適用することが可能である。
【００７１】
本発明は上述した実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能である。すなわち、請求項に示した範囲で適宜変更した技術的手段を組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【産業上の利用可能性】
【００７２】
本発明のエディタ装置は、プログラムのジャンプ先から、当該ジャンプ先を指定するジャンプ元をサーチして表示するので、プログラミング一般に好適に利用できる。
【図面の簡単な説明】
【００７３】
【図１】本発明の実施形態に係るエディタコンピュータを含むシステムの構成を示すブロック図である。
【図２】上記エディタコンピュータにおけるエディタ部が表示するメインウインドウを示す図である。
【図３】（ａ）は上記エディタ部のラベル表示部によってジャンプ命令からラベルへ表示を切り替えるときのユーザによる操作を示す図であり、（ｂ）は当該操作の結果で表示されたラベルの部分を示す図である。
【図４】（ａ）は上記エディタ部のサブルーチン表示部によってサブルーチンジャンプ命令からサブルーチンプログラムへ表示を切り替えるときのユーザによる操作を示す図であり、（ｂ）は当該操作の結果で表示されたサブルーチンプログラムを示す図である。
【図５】（ａ）は上記エディタ部の命令サーチ部によってラベルからジャンプ命令へ表示を切り替えるときのユーザによる操作を示す図であり、（ｂ）は上記命令サーチ部によってサブルーチンプログラムからサブルーチンジャンプ命令へ表示を切り替えるときのユーザによる操作を示す図である。
【符号の説明】
【００７４】
１      エディタコンピュータ（エディタ装置）
１３      エディタ部
１３１      ジャンプ処理部
１３１ａ    ラベル表示部（ジャンプ先検索手段）
１３１ｂ    サブルーチン表示部（ジャンプ先検索手段）
１３１ｃ    命令サーチ部（命令検索手段）
【図１】
0004964036.tif 000002
【図２】
0004964036.tif 000003
【図３】
0004964036.tif 000004
【図４】
0004964036.tif 000005
【図５】
0004964036.tif 000006