(57)【特許請求の範囲】
【請求項１】
複数のオペランドを備える演算処理部を含むプログラムの実行による前記複数のオペランドのうちのデスティネーションオペランドで指定されているレジスタに格納された演算処理結果から前記プログラムのデバッグ処理を行うプログラムデバッグ装置であって、
前記プログラムの実行位置と、前記実行位置の前記演算処理部が備えるオペランドで指定されているレジスタと、を対応付けたデバイス使用情報を記憶する使用情報記憶手段と、
前記演算処理結果を取得して、前記取得した前記演算処理結果を、前記プログラムの内容とともに前記実行位置に対応させて表示装置に表示し、前記表示されているプログラムが含む任意の演算処理部を強調表示するデバッグ処理手段と、
利用者からの前記デバッグ処理の実行指示を受け付ける入力受け付け手段と、
前記入力受け付け手段が前記実行指示を受け付けたとき、前記表示装置に強調表示されている演算処理部が備える複数のオペランドのうちのソースオペランドで指定されているレジスタを選択し、前記選択したレジスタをキーとして前記デバイス使用情報を検索することによって前記選択したレジスタをデスティネーションオペランドに指定している演算処理部の実行位置を求める検索処理手段と、
を備え、
前記デバッグ処理手段は、前記検索処理手段が求めた実行位置の演算処理部を強調表示する、
ことを特徴とするプログラムデバッグ装置。
【請求項２】
前記デバッグ処理手段は、前記プログラムの内容と前記演算処理結果とともに、前記デバイス使用情報の内容を前記表示装置に表示することを特徴とする請求項１に記載のプログラムデバッグ装置。
【請求項３】
複数のオペランドを備える演算処理部を含むプログラムの実行による前記複数のオペランドのうちのデスティネーションオペランドで指定されているレジスタに格納された演算処理結果から前記プログラムのデバッグ処理を行うプログラムデバッグ方法であって、
前記演算処理結果を取得して、取得した前記演算処理結果を、前記プログラムの内容とともに前記実行位置に対応させて表示装置に表示するステップと、
前記表示されているプログラムが含む任意の演算処理部を強調表示するステップと、
利用者からの前記デバッグ処理の実行指示を受け付けるステップと、
前記実行指示を受け付けたとき、前記表示装置に強調表示されている演算処理部が備える複数のオペランドのうちのソースオペランドで指定されているレジスタを選択し、前記選択したレジスタをキーとして前記デバイス使用情報を検索することによって、前記選択したレジスタをデスティネーションオペランドに指定している演算処理部の実行位置を求めるステップと、
前記求めた実行位置の演算処理部を強調表示するステップと、
を含むことを特徴とするプログラムデバッグ方法。
【請求項４】
複数のオペランドを備える演算処理部を含むプログラムの実行による前記複数のオペランドのうちのデスティネーションオペランドで指定されているレジスタに格納された演算処理結果から前記プログラムのデバッグ処理を行うデバッグプログラムであって、
前記演算処理結果を取得して、取得した前記演算処理結果を、前記プログラムの内容とともに前記実行位置に対応させて表示装置に表示するステップと、
前記表示されているプログラムが含む任意の演算処理部を強調表示するステップと、
利用者からの前記デバッグ処理の実行指示を受け付けるステップと、
前記実行指示を受け付けたとき、前記表示装置に強調表示されている演算処理部が備える複数のオペランドのうちのソースオペランドで指定されているレジスタを選択し、前記選択したレジスタをキーとして前記デバイス使用情報を検索することによって、前記選択したレジスタをデスティネーションオペランドに指定している演算処理部の実行位置を求めるステップと、
前記求めた実行位置の演算処理部を強調表示するステップと、
をコンピュータに実行させるデバッグプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムのデバッグ処理を実行するプログラムデバッグ装置、プログラムデバッグ方法およびデバッグプログラムに関する。
【背景技術】
【０００２】
シーケンス回路の設計、編集を行う際に、シーケンス回路のシーケンスプログラムの動作を確認する必要がある。このようなシーケンスプログラムの動作確認を行う場合には、通常、シーケンスプログラムを実行するシーケンサエンジンによってシーケンスプログラムを動作させ、動作状態を、シーケンサエンジンとネットワークで接続されたシーケンスプログラム編集装置で確認するデバッグ作業を行うことが一般的である。
【０００３】
シーケンスプログラム編集装置は、例えば、特許文献１に開示されているように、シーケンス回路をリレーシンボルでプログラムを表したラダー図で表示し、シーケンス回路のリレー接点と、リレー接点に接続されている命令と、シーケンス回路で使用しているレジスタ等のデバイスのデバイス値とをモニタに表示させてデバッグ作業を可能とし、シーケンスプログラムを設計する装置である。
【０００４】
【特許文献１】特開２００３−３０３００２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、このような従来のシーケンスプログラム編集装置では、不正な演算を行ったシーケンスプログラムにおける演算処理部（演算処理箇所）を特定するために時間を要していた。
【０００６】
すなわち、シーケンスプログラム編集装置では、シーケンサエンジンでシーケンスプログラムを動作させながら、シーケンスプログラムの動作状態をモニタに表示しているので、利用者は、動作中のシーケンスプログラムの演算処理結果をレジスタ値などで確認することにより、不正な演算処理結果を出力した演算処理部を把握することができる。
【０００７】
ところが、シーケンスプログラムの実行中にレジスタ値が不正になった場合、不正なレジスタ値を出力した箇所の演算処理部が必ずしも不正な処理を行っているとは限らず、その不正な演算結果を出力した演算処理部にいたるまでの途中の演算処理部で、不正な処理をしていた結果、最終的に、その後実行される他の演算処理部でレジスタ値が不正となって出力される場合が多い。
【０００８】
このため、利用者は、シーケンスプログラム中の演算処理部のそれぞれを動作させながら、その演算結果が不正か否かをレジスタ値を目視することにより確認する必要があり、根本的な不正の原因となった演算処理部を特定することが困難でかつ長時間を要し、その結果、プログラムの開発工数が増大するという問題があった。
【０００９】
本発明は、上記に鑑みてなされたものであって、プログラム中の不正な演算結果の起因となる根本的な演算処理部を迅速に特定することができ、これによって、プログラム開発工数の削減を図ることができるプログラムデバッグ装置、プログラムデバッグ方法およびデバッグプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決し、目的を達成するために、本発明は、演算処理部を含むプログラムの実行による演算処理結果から前記プログラムのデバッグ処理を行うプログラムデバッグ装置であって、前記プログラムの実行位置と、前記実行位置において使用されるデバイスの使用情報とを対応付けたデバイス使用情報を記憶する使用情報記憶手段と、前記演算処理結果を取得して、取得した前記演算処理結果を、前記プログラムの内容とともに前記実行位置に対応させて前記表示装置に表示するデバッグ処理手段と、前記演算処理結果が不正である場合に、不正な前記演算処理結果を出力した前記演算処理部における前記デバイスの使用状況に基づいて、前記デバイス使用情報から、不正な演算結果を出力した前記演算処理部の実行位置から遡った前記演算処理部の前記実行位置を検索する検索処理手段と、を備え、前記デバッグ処理手段は、前記検索処理手段によって検索された前記実行位置に対応する前記演算処理部を特定することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、プログラム中の不正な演算結果の起因となる根本的な演算処理部を迅速に特定することができ、プログラム開発工数の削減を図ることができるという効果を奏する。
【発明を実施するための最良の形態】
【００１２】
以下に添付図面を参照して、この発明にかかるプログラムデバッグ装置、プログラムデバッグ方法およびデバッグプログラムの最良な実施の形態を詳細に説明する。本実施の形態では、本発明にかかるプログラムデバッグ装置を、シーケンスプログラムの内容とシーケンスプログラムで使用しされているレジスタ等のデバイスのデバイス値とを表示装置に表示させてデバッグ処理を行いシーケンスプログラムを設計するシーケンスプログラム編集装置に適用している。
【００１３】
なお、本発明は、かかる実施の形態に限定されるものではなく、例えば、シーケンスプログラム以外のプログラムをデバッグするものに適用することも可能であり、またデバッグ機能を有するが、プログラムの設計機能を有さないデバッグ装置にも適用することができる。
【００１４】
図１は、本実施の形態にかかるシーケンスプログラム編集装置を含むシーケンスプログラムデバッグシステムのネットワーク構成およびシーケンスプログラム編集装置の機能的構成を示すブロック図である。
【００１５】
本実施の形態にかかるシーケンスプログラムデバッグシステムは、図１に示すように、シーケンサエンジン１１０とシーケンスプログラム編集装置１００とが、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等のネットワークで接続された構成となっている。
【００１６】
シーケンサエンジン１１０は、利用者であるユーザが作成したシーケンスプログラム１１１をハードディスクドライブ装置（ＨＤＤ）等の記憶媒体に保持し、このシーケンスプログラム１１１を記憶媒体から読み出して実行するものである。また、シーケンサエンジン１１０は、シーケンスプログラム１１１の実行中の動作状況をシーケンスプログラム編集装置１００に送信する。シーケンサエンジン１１０のこのような機能は、一般的にはハードウェアで構成されているが、ソフトウェアで実現してＰＣ（Personal Computer）に実装するように構成してもよい。
【００１７】
シーケンスプログラム１１１は、リレー接点とリレー接点がＯＮになると演算が実行される命令との組み合わせで構成されたプログラムであり、リレー接点がＯＮになると、そのリレー接点に接続している命令が動作し、命令の記述内容にしたがって、演算処理が実行される。シーケンスプログラム１１１では、このような命令が演算処理部としてリレー接点に接続されて記述される。
【００１８】
図２は、シーケンスプログラム１１１の一例を含む説明図である。図２に示すように、リレー接点２０１にデバイスとしてのレジスタ（Ｄ１０２，Ｄ０，Ｄ２，Ｄ４，Ｄ６等）をパラメータとした命令（Ｅ＊，ＳＱＬ等）である演算処理部２０４がリレー接点２０１毎に接続されている。
【００１９】
また、図２に示すシーケンスプログラム１１１において、２０２はシーケンサ全体の各演算処理部の位置を示しており、具体的には、演算処理部ごとに先頭から順番に割り振られた演算処理のステップ番号である。
【００２０】
図１に戻り、シーケンサエンジン１１０は、デバイス値変更一覧データ１１２をメモリ、ＨＤＤ等の記憶媒体に保持している。デバイス値変更一覧データ１１２は、デバイスとしてのレジスタの値（レジスタ値）の変更状況を示すデータである。
【００２１】
図３は、デバイス値変更一覧データ１１２の一例を示す説明図である。デバイス値変更一覧データ１１２には、図３に示すように、シーケンスプログラム１１１上の実行位置の位置情報（ステップ番号）と、レジスタの情報と、演算処理により変化したレジスタ値の変更内容が対応付けられて記録されている。図３の第１行目の例では、シーケンスプログラム１１１の実行位置が行番号２の演算処理部による演算処理によって、レジスタＤ０のレジスタ値が「１００」から「−１０」に変更されたことを示している。このデバイス値変更一覧データ１１２には、シーケンスプログラム１１１の実行により演算処理が行われ、レジスタ値が変化した場合に、テーブルの最後尾に変更内容が追記され蓄積されるようになっている。また、このようなデバイス値変更一覧データ１１２におけるレジスタ値の変更内容は実行位置の位置情報とともに、シーケンサエンジン１１０からシーケンスプログラム編集装置１００に送信される。
【００２２】
図１に戻り、シーケンスプログラム編集装置１００は、シーケンサエンジン１１０にシーケンスプログラム１１１を実行させて、その実行による動作状況をシーケンサエンジン１１０から受信し、シーケンスプログラム１１１をデバッグしながら設計および編集する装置である。
【００２３】
シーケンスプログラム編集装置１００は、図１に示すように、通信制御部１０８と、編集処理部１０１と、デバッグ処理部１０２と、検索処理部１０３と、表示制御部１０４と、入力受け付け部１０９と、デバイス使用テーブル１０５と、表示装置１０６と、入力装置１０７とを主に備えている。
【００２４】
通信制御部１０８は、シーケンサエンジン１１０との通信を制御するものである。表示装置１０６は、ディスプレイ装置等の表示デバイスであり、表示制御部１０４が各種画面やデータの表示装置１０６に対する表示制御を行っている。
【００２５】
入力装置１０７は、キーボードや、マウス等のポインティングデバイスであり、入力受け付け部１０９が、入力装置からのユーザによる入力を受け付けて、各部へ受け渡している。
【００２６】
編集処理部１０１は、シーケンスプログラム１１１を表示装置１０６に表示して、入力装置１０７からの指示等によりシーケンスプログラム１１１を設計、編集するエディタである。
【００２７】
デバッグ処理部１０２は、シーケンサエンジン１１０からシーケンスプログラム１１１中の演算処理部による演算処理結果を取得して、取得した演算処理結果とシーケンスプログラムの内容とを実行位置に対応させて編集画面として表示制御部１０４を介して表示装置に表示する処理部である。また、デバッグ処理部１０２は、検索処理部１０３によって検索された実行位置に対応する演算処理部を特定する処理を行う。また、デバッグ処理部１０２は、シーケンスプログラム１１１の内容と演算処理結果とともに、後述するデバイス使用テーブルの内容を表示制御部１０４を介して表示装置１０６に表示する処理を行う。
【００２８】
検索処理部１０３は、不正な演算処理結果を出力したレジスタ以外で、かつ不正な演算処理結果を出力した演算処理部で使用される他のレジスタをキーにして、デバイス使用テーブル１０５から、不正な演算結果を出力した演算処理部の実行位置から遡って他のレジスタに対応する実行位置を検索する処理部である。
【００２９】
デバイス使用テーブル１０５は、シーケンスプログラムの実行位置（行番号）と、実行位置における演算処理部で使用されるレジスタを対応付けたテーブルであり、メモリやＨＤＤ等の記憶媒体に生成される。図４は、デバイス使用テーブルの一例を示す説明図である。デバイス使用テーブルは、図４に示すように、レジスタごとに、シーケンスプログラム１１１中でそのレジスタを使用する実行位置が対応付けられている。
【００３０】
次に、以上のように構成された本実施の形態にかかるシーケンスプログラム編集装置１００によるシーケンスプログラムのデバッグ処理について説明する。図５は、シーケンスプログラムのデバッグ処理の手順を示すフローチャートである。
【００３１】
図６は、本実施の形態にかかるシーケンスプログラム編集装置１００の編集処理部１０１によって表示装置に表示されるエディタ画面の一例を示す模式図である。エディタ画面は、編集処理部１０１とデバッグ処理部１０２によって、シーケンサエンジン１１０によって実行されるシーケンスプログラム１１１の動作状況が表示される。具体的には、シーケンスプログラムの内容、すなわちリレー接点とリレー接点に接続された命令およびレジスタを含む演算処理部を編集処理部１０１によって表示装置１０６に表示し、さらにデバッグ処理部１０２によって、各演算処理部による演算処理結果としてのレジスタごとのレジスタ値６０２をエディタ画面に表示している。また、エディタ画面では、デバッグ処理部１０２によって、実行中の演算処理部をハイライト表示６０１により強調して表示している。
【００３２】
さらに、本実施の形態では、従来のシーケンスプログラム編集装置と異なり、デバッグ処理部１０２は、デバイス使用テーブル１０５の内容を、エディタ画面中のデバイス使用テーブルウィンドウ６０３に表示している。
【００３３】
従来のシーケンスプログラム編集装置では、このようなシーケンスプログラム１１１の動作状況をユーザによる目視によって把握してデバッグ作業を行っていた。すなわち、ユーザは、エディタ画面上で、シーケンスプログラムとその演算結果としてのレジスタ値を確認する。そして、不正なレジスタ値が表示された場合には、ユーザは手動でシーケンスプログラム編集装置１００とシーケンサエンジン１１０との通信を切断することによりエディタ画面上でのシーケンスプログラムの動作を停止し、レジスタの不正な値を出力している演算処理部で使用されている他のレジスタを使用している他の演算処理部の命令を、シーケンスプログラム１１１の中から目視やシーケンスプログラム編集装置１００の検索機能などによって検索し、検索された演算処理部による演算処理が正しいか否かについてプログラム記述を目視で確認することによって判断している。
【００３４】
例えば、図６のＳＱＬ命令において，仮にレジスタＤ６のレジスタ値が不正な値である場合には、ＳＱＬ命令が記述されている演算処理部で不正なレジスタ値のレジスタＤ６以外のレジスタＤ４を使用している他の演算処理部を目視により検索する。そして、このような演算処理部として「Ｅ＊  Ｄ０  Ｄ２  Ｄ４」が見つかり、この演算処理部のプログラム記述が正しいか否かをユーザは判断する。そして、プログラム記述が正しい場合には、その演算処理部で使用しているレジスタを使用している他の演算処理部を検索し、検索された演算処理部のプログラム記述を確認する。ユーザは、プログラム記述の記載の不正を発見するまで、上記の作業を繰り返す必要があり、演算処理結果をみながら不正な演算に関連する演算処理部の箇所を確認することができないため、シーケンスプログラム１１１の記述を目視で確認する必要があり、不正な演算の根本原因を発見することが非常に困難であった。
【００３５】
本実施の形態にかかるシーケンスプログラム編集装置１００によるデバッグ処理では、以下のような処理を行うことによって、不正な演算の根本原因となる演算処理部の位置を容易にかつ正確に特定している。
【００３６】
ユーザは、自己が作成したシーケンスプログラム１１１が正しく動作することを確認するために、シーケンスプログラム編集装置１００とシーケンサエンジン１１０を使用して、シーケンスプログラム１１１全体の動作をエディタ画面で確認する。
【００３７】
シーケンサエンジン１１０では、上述したように、シーケンスプログラム１１１を動作させる際に、演算処理毎に演算処理によって変化したレジスタの情報とレジスタ値の変更内容をデバイス値変更一覧データ１１２に記録するとともに、シーケンスプログラム編集装置１００に送信し、シーケンスプログラム編集装置１００では受信したレジスタの情報とレジスタ値の変更内容を、デバッグ処理部１０２によってエディタ面の演算処理部のレジスタ値に表示するとともに、デバイス使用テーブルウィンドウ６０３にデバイス使用テーブル１０５の内容を表示している。このため、ユーザは、シーケンスプログラム１１１を動作させながら、演算処理部内に表示されるレジスタ値と、デバイス使用テーブルウィンドウ６０３とを確認することにより、表示されるレジスタ値が正しいか否かおよびレジスタの使用位置を確認する。
【００３８】
そして、不正な演算処理結果が発見された場合には、検索処理部１０３によって、デバイス使用テーブル１０５から不正なレジスタ値を出力したレジスタを使用している演算処理部の実行位置を取得する（ステップＳ１１）。そして、検索処理部１０３は、取得した実行位置と同一の実行位置で使用されているレジスタを選択し、当該レジスタをデバイス使用テーブル１０５から検索する（ステップＳ１２）。そして、デバイス使用テーブル１０５に、取得した実行位置と同一の実行位置で使用されているレジスタが存在するか否か、すなわち取得した実行位置と同一の実行位置で使用されているレジスタをキーとして当該レジスタの実行位置が存在するか否かを調べる（ステップＳ１３）。
【００３９】
そして、デバイス使用テーブル１０５に、取得した実行位置と同一の実行位置で使用されているレジスタが存在しない場合（ステップＳ１３：Ｎｏ）、すなわち当該レジスタの実行位置が存在しない場合には、不正なレジスタ値を出力した当該演算処理部が不正処理の根本部分として特定する（ステップＳ１４）。従って、不正なレジスタ値を出力した演算処理部にハイライト表示がされた状態のままとなる。
【００４０】
一方、ステップＳ１３において、デバイス使用テーブル１０５に、取得した実行位置と同一の実行位置で使用されているレジスタが存在する場合（ステップＳ１３：Ｙｅｓ）、すなわち当該レジスタの実行位置が存在する場合には、デバッグ処理部１０２によって、検索された実行位置の演算処理部をエディタ画面ハイライト表示する（ステップＳ１５）。これにより、ハイライト表示される演算処理部は、不正なレジスタ値を出力した演算処理部から移動することになる。
【００４１】
ここで、ユーザは、ハイライト表示された演算処理部のレジスタのレジスタ値がユーザが意図する値であるか否かを判断し、デバッグ続行かデバッグ終了かの指示を入力装置１０７から入力する。かかる指示入力は、入力受け付け部１０９によって受け付けられ、デバッグ処理部１０２に受け渡される。
【００４２】
次に、デバッグ処理部１０２は、ユーザからの指示入力がデバッグ終了指示であるか否かを判断する（ステップＳ１６）。そして、指示入力がデバッグ終了でない場合（ステップＳ１６：Ｎｏ）、すなわち、ハイライト表示された演算処理部のレジスタのレジスタ値がユーザの意図する値でない場合には、デバッグ処理を続行し、ステップＳ１１からＳ１５までの処理を繰り返す。これにより、ハイライト表示される演算処理部は順次移動していくことになる。
【００４３】
一方、ステップＳ１６において、指示入力がデバッグ終了である場合（ステップＳ１６：Ｙｅｓ）、すなわち、ハイライト表示された演算処理部のレジスタのレジスタ値がユーザの意図する値である場合には、デバッグ処理部１０２は、一つ前に検索された演算処理部が不正処理の根本部分であると特定する（ステップＳ１７）。これにより、ハイライト表示は、当該不正処理の根本部分の演算処理部に移動する。
【００４４】
次に、以上のような処理を図６および７に示す例をあげて説明する。例えば、図６において、ＳＱＬ命令のレジスタＤ６のレジスタ値が不正な値であると判断した場合には、検索処理部１０３は、ＳＱＬ命令が記述されている演算処理部で不正なレジスタ値のレジスタＤ６以外のレジスタＤ４を使用している他の演算処理部をデバイス使用テーブル１０５から検索する。そして、このような演算処理部として「Ｅ＊  Ｄ０  Ｄ２  Ｄ４」が見つかり、ハイライト表示される。
【００４５】
次に、ユーザは、ハイライト表示された演算処理部のレジスタＤ４のレジスタ値がユーザが意図する値であるか否かを判断し、意図する値でない場合には、デバッグ続行の指示入力を行う。そして、ステップＳ１１からＳ１５の処理を繰り返し行う。このような処理の結果、演算処理部「Ｅ＊  Ｄ１００  Ｄ１０２  Ｄ０」が不正処理の根本原因であると特定された場合には、図７に示すように、当該演算処理部がハイライト表示される。これにより、ユーザは、不正処理の根本部分である当該演算処理部のプログラム記述をエディタ画面で正しい処理に修正する。
【００４６】
図８は、本実施の形態のシーケンスプログラム編集装置１００のハードウェア構成を示すブロック図である。本実施の形態のシーケンスプログラム編集装置１００は、ＣＰＵ８０１などの制御装置と、ＲＯＭ（Read Only Memory）８０２やＲＡＭ８０３などの記憶装置と、ＨＤＤ８０４、ＣＤ−ＲＯＭドライブ装置８０５などの外部記憶装置と、ディスプレイ装置などの表示装置１０６と、キーボードやマウスなどの入力装置１０７と、ネットワークボード等のネットワークＩ／Ｆ８０６とを備えており、通常のコンピュータを利用したハードウェア構成となっている。
【００４７】
本実施の形態のシーケンスプログラム編集装置１００で実行されるデバッグ処理プログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
【００４８】
また、本実施の形態のデバッグ処理プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、本実施の形態のシーケンスプログラム編集装置１００で実行されるデバッグ処理プログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
【００４９】
また、本実施の形態のデバッグ処理プログラムを、ＲＯＭ８０２等に予め組み込んで提供するように構成してもよい。
【００５０】
本実施の形態のシーケンスプログラム編集装置１００で実行されるデバッグ処理プログラムは、上述した各部（通信制御部１０８、編集処理部１０１、デバッグ処理部１０２、検索処理部１０３、表示制御部１０４、入力受け付け部１０９）を含むモジュール構成となっており、実際のハードウェアとしてはＣＰＵ（プロセッサ）が上記記憶媒体からデバッグ処理プログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、通信制御部１０８、編集処理部１０１、デバッグ処理部１０２、検索処理部１０３、表示制御部１０４、入力受け付け部１０９が主記憶装置上に生成されるようになっている。
【００５１】
このように実施の形態にかかるシーケンスプログラム編集装置１００では、シーケンサエンジン１１０からシーケンスプログラム１１１の演算処理結果を取得して、取得した演算処理結果を、シーケンスプログラム１１１の内容とともに実行位置に対応させてエディタ画面に表示し、演算処理結果が不正である場合に、不正な前記演算処理結果を出力したレジスタ以外で、かつ不正な前記演算処理結果を出力した前記演算処理部で使用される他のレジスタを選択し、前記選択された前記他のレジスタをキーにして、前記デバイス使用情報から、不正な演算結果を出力した前記演算処理部の実行位置から遡って前記他のレジスタに対応する実行位置を検索し、検索されたレジスタの実行位置に対応する演算処理部を特定しているので、シーケンスプログラム中の不正な演算結果の起因となる根本的な演算処理部を迅速に特定することができ、シーケンスプログラム開発工数の削減を図ることができる。
【００５２】
また、本実施の形態にかかるシーケンスプログラム編集装置１００では、デバイス使用テーブルから、不正な演算結果を出力した演算処理部の実行位置から遡って他のレジスタに対応する実行位置が検索された場合には、検索された実行位置の演算処理部をエディタ画面にハイライト表示しているので、確認対象の演算処理部を容易に把握することができる。
【００５３】
また、本実施の形態にかかるシーケンスプログラム編集装置１００では、ユーザからデバッグを続行する旨を受け付けた場合には、再度、他のレジスタを選択し、選択された他のレジスタをキーにして、デバイス使用テーブルから、不正な演算結果を出力した演算処理部の実行位置から遡って他のレジスタに対応する実行位置を検索しているので、不正処理の根本部分の特定をユーザの意向によって迅速に行うことができる。
【００５４】
また、本実施の形態にかかるシーケンスプログラム編集装置１００では、ユーザからデバッグを終了する旨を受け付けた場合には、一つ前に検索された実行位置における演算処理部を不正な処理の根本的部分であると特定しているので、シーケンスプログラム中の不正な演算結果の起因となる根本的な演算処理部を迅速に特定することができる。
【００５５】
また、本実施の形態にかかるシーケンスプログラム編集装置１００では、デバイス使用テーブル１０５から、不正な演算結果を出力した演算処理部の実行位置から遡って他のレジスタに対応する実行位置が検索されなかった場合には、不正な演算処理結果を出力した演算処理部を不正な処理の根本的部分であると特定しているので、シーケンスプログラム中の不正な演算結果の起因となる根本的な演算処理部を迅速に特定することができる。
【００５６】
また、本実施の形態にかかるシーケンスプログラム編集装置１００では、シーケンスプログラムの内容と演算処理結果とともに、デバイス使用テーブルの内容をエディタ画面に表示しているので、レジスタのシーケンスプログラム中における使用位置をユーザに容易に把握させることができる。
【００５７】
なお、本発明は、上記実施の形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上記実施の形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。例えば、実施の形態に示される全構成要素からいくつかの構成要素を削除してもよい。
【産業上の利用可能性】
【００５８】
以上のように、本発明にかかるプログラムデバッグ装置、プログラムデバッグ方法およびデバッグプログラムは、シーケンスプログラムをデバッグする装置、方法およびプログラムに有用であり、特に、シーケンスプログラムの内容とシーケンスプログラムで使用しされているレジスタ等のデバイスのデバイス値とを表示装置に表示させてデバッグ処理を行いシーケンスプログラムを設計するシーケンスプログラム編集装置、方法およびプログラムに適用している。
【図面の簡単な説明】
【００５９】
【図１】本実施の形態にかかるシーケンスプログラム編集装置を含むシーケンスプログラムデバッグシステムのネットワーク構成およびシーケンスプログラム編集装置の機能的構成を示すブロック図である。
【図２】シーケンスプログラムの一例を含む説明図である。
【図３】デバイス値変更一覧データの一例を示す説明図である。
【図４】デバイス使用テーブルの一例を示す説明図である。
【図５】シーケンスプログラムのデバッグ処理の手順を示すフローチャートである。
【図６】エディタ画面の一例を示す模式図である。
【図７】不正処理の根本部分が特定された場合におけるエディタ画面の一例を示す模式図である。
【図８】本実施の形態のシーケンスプログラム編集装置のハードウェア構成を示すブロック図である。
【符号の説明】
【００６０】
１００  シーケンスプログラム編集装置
１０１  編集処理部
１０２  デバッグ処理部
１０３  検索処理部
１０４  表示制御部
１０５  デバイス使用テーブル
１０６  表示装置
１０７  入力装置
１０８  通信制御部
２０１  リレー接点
２０２  ステップ番号
２０４  演算処理部
６０１  ハイライト表示
６０２  レジスタ値
６０３  デバイス使用テーブルウィンドウ
８０１  ＣＰＵ
８０２  ＲＯＭ
８０３  ＲＡＭ
８０４  ＨＤＤ
８０５  ＣＤ−ＲＯＭドライブ装置
８０６  ネットワークＩ／Ｆ
【図１】
0004537336.tif 000002
【図２】
0004537336.tif 000003
【図３】
0004537336.tif 000004
【図４】
0004537336.tif 000005
【図５】
0004537336.tif 000006
【図６】
0004537336.tif 000007
【図７】
0004537336.tif 000008
【図８】
0004537336.tif 000009