(57)【要約】  【課題】教示装置のプログラムを１ステップ単位で実行することを可能とし、教示装置を用いて、効率よくデバッグ作業を行うための教示装置デバッグシステムの提供する。  【解決手段】  デバッグ装置において：プログラム記録手段ａ１は、プログラムを記録する。入力手段ａ２は、プログラムステップまたは読出データを入力する。送信手段ａ３は、プログラムステップまたは読出データを送信する。表示手段ａ４は、ステップの実行結果を表示する。読出データ記録手段ａ５は、読出データを記録する。プログラム作成手段ａ６は、プログラムを作成する。プログラム転送手段ａ７は、作成したプログラムを転送する。教示装置ｂにおいて：プログラム記録手段ｂ１は、プログラムを記録する。読出手段ｂ２は、プログラムをステップ単位で読み出す。ステップ実行手段ｂ３は、読み出したステップを実行する。実行結果送信手段ｂ４は、実行したステップの結果をデバッグ装置に送信する。  【選択図】図１
2006343818.tif 000002
【特許請求の範囲】
【請求項１】
複数のステップから構成されたプログラムであって、教示装置において実行されるプログラムについてのデバッグを行うためのデバッグ装置と、前記プログラムを実行して所定の制御装置に対して教示を行うための教示装置と、を用いて行うプログラムのデバッグ方法であって、
前記制御装置に代えて前記デバッグ装置を前記教示装置に接続し、
前記デバッグ装置は、
ユーザによって指示されたステップとともに、前記教示装置が前記制御装置から読み出すべき読出データを教示装置に送信する行程を行い、
前記教示装置は、
前記デバッグ装置から受信した前記ステップを前記読出データを用いて実行し、当該教示装置が前記制御装置に対して書き込むべき書込データを決定するとともに「次に実行すべきステップ」を決定する行程と、
決定した前記書込データおよび前記「次に実行すべきステップ」を、前記デバッグ装置に送信する行程を行い、
前記デバッグ装置は、さらに、
前記教示装置から受信した前記書込データおよび前記「次に実行すべきステップ」を、ユーザに提示する行程を行うこと
を特徴とするプログラムのデバッグ方法。
【請求項２】
請求項１のデバッグ方法において、
前記デバッグ装置は、さらに、
前記複数のステップから構成されたプログラムを作成する行程と、
前記プログラムを作成する行程において作成したプログラムを記録する行程と、
前記プログラムを作成する行程において作成したプログラムを教示装置に転送する行程とを行うことを特徴とするもの。
【請求項３】
請求項２のデバッグ方法において、
前記プログラムを作成する行程は、教示装置における画面表示処理を行うステップと、当該画面表示処理以外の処理を行うステップとを、それぞれ独立して作成するものであり、
前記教示装置において実行されるプログラムは、ステップごとに、教示装置における画面表示処理を行うステップ、または、当該画面表示処理以外の処理を行うステップのいずれかを実行するものであることを特徴とするもの。
【請求項４】
請求項１〜３いずれかのデバッグ方法において、
前記デバッグ装置は、さらに、
前記教示装置に送信した「前記教示装置が前記制御装置から読み出すべき読出データ」を記録する行程を行い、記録した当該読出データに基づいて、次回送信時における「前記教示装置が前記制御装置から読み出すべき読出データ」を決定することを特徴とするもの。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ロボット機器等の各種機器を制御する制御装置（ホスト装置）に接続されて使用される教示装置において実行されるプログラムをデバッグする方法に関する。
【背景技術】
【０００２】
教示装置とは、ティーチングペンダントとも呼ばれ、ロボット機器等の制御装置に接続され、当該制御装置に対してシーケンス制御命令に関する教示を行うための装置である。ユーザは、当該教示装置において実行するプログラムを作成・変更することにより、各種制御装置に応じた教示装置を利用することができる。すなわち、教示装置の動作を任意にプログラミングすることで、各種制御装置について、個々の操作盤を作成する必要がなくなる。
【０００３】
このような教示装置において実行されるプログラムについても、他のプログラムと同様にデバッグ作業が必須となる。特に、教示装置のプログラムにバグが発生していると、ロボット機器等の制御装置が誤作動することにより、安全が害されるおそれがある。したがって、教示装置のデバッグ作業については、完全を期すことが不可欠である。例えば、教示装置のデバッグ方法については、下記（１）または（２）のような方法が考えられる。
【０００４】
（１）コンピュータ装置において制御装置をシミュレーションさせ、作成したプログラムを転送した教示装置上で、ユーザが直接動作確認を行う（例えば、特許文献１参照。）。
【０００５】
（２）コンピュータ装置において制御装置をシミュレーションさせるとともに、コンピュータ装置において教示装置自体をもシミュレーションする（例えば、特許文献２参照。）。
【０００６】
【特許文献１】特開平１１−１３４２１８号
【０００７】
【特許文献２】特開平８−４４４０９号
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上記（１）の方法においては、コンピュータ装置から教示装置に転送したプログラムの全体を当該教示装置において実行するため、プログラムを１ステップ単位のみで実行させることができず、デバッグが必要なプログラムステップ（位置）の判断が困難である。なお、教示装置にデバッグ機能を付加することも可能であるがこの場合は、教示装置のコストが高価になってしまう。
【０００９】
上記（２）の方法においては、 コンピュータ装置内に教示装置のシミュレーション機能を持たせ、プログラムを１ステップ単位のみで実行できるようすることが可能であるが、シミュレーション機能を行うコンピュータ装置の構成が複雑化する。また、教示装置には、表示画面の他に所定の操作ボタンが設けられており、このような操作ボタン等を含めた操作形態を、コンピュータ装置上で完全にシミュレートすることは容易でない。
【００１０】
この発明は、上記のような課題を解決するためになされたものであり、教示装置のプログラムを１ステップ単位で実行することを可能とし、教示装置の実機による操作形態およびその実行結果を用いて、効率よく確実にデバッグ作業を行うデバッグ方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
(1)この発明にかかるデバッグ方法は、  複数のステップから構成されたプログラムであって、教示装置において実行されるプログラムについてのデバッグを行うためのデバッグ装置と、前記プログラムを実行して所定の制御装置に対して教示を行うための教示装置と、を用いて行うプログラムのデバッグ方法であって、  前記制御装置に代えて前記デバッグ装置を前記教示装置に接続し、  前記デバッグ装置は、  ユーザによって指示されたステップとともに、前記教示装置が前記制御装置から読み出すべき読出データを教示装置に送信する行程を行い、  前記教示装置は、  前記デバッグ装置から受信した前記ステップを前記読出データを用いて実行し、当該教示装置が前記制御装置に対して書き込むべき書込データを決定するとともに「次に実行すべきステップ」を決定する行程と、  決定した前記書込データおよび前記「次に実行すべきステップ」を、前記デバッグ装置に送信する行程を行い、  前記デバッグ装置は、さらに、  前記教示装置から受信した前記書込データおよび前記「次に実行すべきステップ」を、ユーザに提示する行程を行うことを特徴とする。
【００１２】
したがって、教示装置において１ステップずつ実行したプログラムを、デバッグ装置において１ステップずつ実行結果を確認することができる。これにより、教示装置の実機による操作形態を用いて、効率よくトレースデバッグ作業を行うことができる。
【００１３】
(2)この発明にかかるデバッグ方法においては、  デバッグ装置は、さらに、  複数のステップから構成されたプログラムを作成する行程と、  プログラムを作成する行程において作成したプログラムを記録する行程と、  プログラムを作成する行程において作成したプログラムを教示装置に転送する行程とを行うことを特徴とする。
【００１４】
したがって、デバッグ装置において記録するプログラムと、教示装置において記録するプログラムとを容易に同期させることができる。これにより、デバッグ装置において指定されたステップと同一のステップを、教示装置側において確実に実行することができる。
【００１５】
(3)この発明にかかるデバッグ方法においては、  プログラムを作成する行程は、教示装置における画面表示処理を行うステップと、当該画面表示処理以外の処理を行うステップとを、それぞれ独立して作成するものであり、  教示装置において実行されるプログラムは、ステップごとに、教示装置における画面表示処理を行うステップ、または、当該画面表示処理以外の処理を行うステップのいずれかを実行するものであることを特徴とする。
【００１６】
したがって、画面表示処理またはこれ以外の処理をステップ単位で容易に作成することができる。また、デバッグ時において、画面表示処理とその他の処理を分離してデバッグすることができ、デバッグが必要な箇所を発見しやすい。
【００１７】
(4)この発明にかかるデバッグ方法においては、  デバッグ装置は、さらに、  教示装置に送信した「教示装置が制御装置から読み出すべき読出データ」を記録する行程を行い、記録した当該読出データに基づいて、次回送信時における「教示装置が制御装置から読み出すべき読出データ」を決定することを特徴とする。
【００１８】
したがって、教示装置が制御装置から読み出すべき読出データを再利用してデバッグを行うことができ、作業効率が向上する。
【００１９】
・本発明の別の側面について:
この発明は、以下に示す形態においても捉えることができる。
【００２０】
(A)
(a)複数のステップから構成されたプログラムであって、教示装置において実行されるプログラムについてのデバッグを行うためのデバッグ装置と、(b)前記プログラムを実行して所定の制御装置に対して教示を行うための教示装置と、を備えたデバッグシステムであって、
前記デバッグ装置は、
(a1)教示装置において実行されるプログラムと同一のプログラムを記録するプログラム記録手段と、
(a2)前記プログラム記録手段に記録されたプログラムの中からユーザが所定ステップを指示するための入力を行う入力手段と、
(a3)前記入力手段においてユーザによって指示された所定ステップとともに、前記教示装置が前記制御装置から読み出すべき読出データを教示装置に送信する送信手段と、
(a4)前記教示装置から受信した「教示装置が制御装置に対して書き込むべき書込データ」および「次に実行すべきステップ」を、ユーザに提示するための表示手段とを備え、
前記教示装置は、
(b1)所定の制御装置に対して教示を行うためのプログラムを記録するプログラム記録手段と、
(b2)前記デバッグ装置から受信した前記ステップを実行するためのプログラムステップを、前記プログラム記録手段に記録されたプログラムから読み出す読出手段と、
(b3)前記読出手段によって読み出したプログラムステップを、前記デバッグ装置から受信した前記読出データを用いて実行し、当該教示装置が前記制御装置に対して書き込むべき書込データを決定するとともに、当該教示装置が「次に実行すべきステップ」を決定するステップ実行手段と、
(b4)前記ステップ実行手段において決定した前記書込データおよび前記「次に実行すべきステップ」を、実行結果として前記デバッグ装置に送信する実行結果送信手段とを備えたことを特徴とするデバッグシステム。
【００２１】
(B)
複数のステップから構成されたプログラムであって、教示装置において実行されるプログラムをデバッグするためのデバッグ装置とともに、前記プログラムのデバッグを行うための教示装置であって、
(b1)所定の制御装置に対して教示を行うためのプログラムを記録するプログラム記録手段と、
(b2)前記デバッグ装置から受信した前記ステップを実行するためのプログラムステップを、前記プログラム記録手段に記録されたプログラムから読み出す読出手段と、
(b3)前記読出手段によって読み出したプログラムステップを、前記デバッグ装置から受信した前記読出データを用いて実行し、当該教示装置が前記制御装置に対して書き込むべき書込データを決定するとともに、当該教示装置が「次に実行すべきステップ」を決定するステップ実行手段と、
(b4)前記ステップ実行手段において決定した前記書込データおよび前記「次に実行すべきステップ」を、実行結果として前記デバッグ装置に送信する実行結果送信手段とを備えたことを特徴とする教示装置。
【００２２】
(C)
複数のステップから構成されたプログラムであって、教示装置において実行されるプログラムをデバッグするためのデバッグ装置とともに、前記プログラムのデバッグを行うための教示装置を、コンピュータを用いて実現するためのプログラムであって、コンピュータに以下の手段を構成させることを特徴とする教示装置のためのプログラム：
(b1)所定の制御装置に対して教示を行うためのプログラムを記録するプログラム記録手段と、
(b2)前記デバッグ装置から受信した前記ステップを実行するためのプログラムステップを、前記プログラム記録手段に記録されたプログラムから読み出す読出手段と、
(b3)前記読出手段によって読み出したプログラムステップを、前記デバッグ装置から受信した前記読出データを用いて実行し、当該教示装置が前記制御装置に対して書き込むべき書込データを決定するとともに、当該教示装置が「次に実行すべきステップ」を決定するステップ実行手段と、
(b4)前記ステップ実行手段において決定した前記書込データおよび前記「次に実行すべきステップ」を、実行結果として前記デバッグ装置に送信する実行結果送信手段。
【００２３】
(D)
複数のステップから構成されるプログラムを実行して所定の制御装置に対して教示を行うための教示装置とともに、前記プログラムのデバッグを行うためのデバッグ装置であって、
(a1)教示装置において実行されるプログラムと同一のプログラムを記録するプログラム記録手段と、
(a2)前記プログラム記録手段に記録されたプログラムの中からユーザが所定ステップを指示するための入力を行う入力手段と、
(a3)前記入力手段においてユーザによって指示された所定ステップとともに、前記教示装置が前記制御装置から読み出すべき読出データを教示装置に送信する送信手段と、
(a4)前記教示装置から受信した「教示装置が制御装置に対して書き込むべき書込データ」および「次に実行すべきステップ」を、ユーザに提示するための表示手段とを備えたことを特徴とするデバッグ装置。
【００２４】
(E)
複数のステップから構成されるプログラムを実行して所定の制御装置に対して教示を行うための教示装置とともに、前記プログラムのデバッグを行うためのデバッグ装置を、コンピュータを用いて実現するためのプログラムであって、コンピュータに以下の手段を構成させることを特徴とするデバッグ装置のためのプログラム：
(a1)教示装置において実行されるプログラムと同一のプログラムを記録するプログラム記録手段と、
(a2)前記プログラム記録手段に記録されたプログラムの中からユーザが所定ステップを指示するための入力を行う入力手段と、
(a3)前記入力手段においてユーザによって指示された所定ステップとともに、前記教示装置が前記制御装置から読み出すべき読出データを教示装置に送信する送信手段と、
(a4)前記教示装置から受信した「教示装置が制御装置に対して書き込むべき書込データ」および「次に実行すべきステップ」を、ユーザに提示するための表示手段。
【００２５】
(F)
上記のデバッグシステム、デバッグ装置またはこのプログラムにおいて、
前記デバッグ装置は、さらに、
前記複数のステップから構成されたプログラムを作成するプログラム作成手段と、
前記プログラム作成手段において作成したプログラムを記録するプログラム記録手段と、
前記プログラム作成手段において作成したプログラムを教示装置に転送するプログラム転送手段とを備えたことを特徴とするもの。
【００２６】
(G)
上記のデバッグシステム、デバッグ装置またはこのプログラムにおいて、
前記プログラム作成手段は、教示装置における画面表示処理を行うステップと、当該画面表示処理以外の処理を行うステップとを、それぞれ独立して作成するものであり、
前記教示装置において実行されるプログラムは、ステップごとに、教示装置における画面表示処理を行うステップ、または、当該画面表示処理以外の処理を行うステップのいずれかを実行するものであることを特徴とするもの。
【００２７】
(H)
上記のデバッグシステム、デバッグ装置またはこのプログラムにおいて、
前記デバッグ装置は、さらに、
前記教示装置に送信した「前記教示装置が前記制御装置から読み出すべき読出データ」を記録する読出データ記録手段を備えており、記録した当該読出データに基づいて、次回送信時における「前記教示装置が前記制御装置から読み出すべき読出データ」を決定することを特徴とするもの。
【００２８】
(I)
上記のデバッグシステム、教示装置またはこのプログラムにおいて、
前記教示装置は、さらに、
実行中のステップが取り扱う操作データを受け付けるための操作手段を有しており、前記ステップ実行手段は、当該操作手段において受け付けた操作データに基づいて前記ステップを実行することを特徴とするもの。
【００２９】
(J)
上記のデバッグシステム、デバッグ装置またはこのプログラムにおいて、
前記デバッグ装置の前記送信手段は、前記教示装置から受信した「次に実行すべきステップ」を前記教示装置に送信することによって、１以上のステップについてのデバッグを連続して行うことを特徴とするもの。
【００３０】
(K)
上記のデバッグシステム、デバッグ装置またはこのプログラムにおいて、
前記デバッグ装置の前記入力手段は、上記連続して行うステップについて、デバッグを中止するためのブレークポイントの入力を行うものであることを特徴とするもの。
【００３１】
(L)
上記のデバッグシステム、デバッグ装置またはこのプログラムにおいて、
前記デバッグ装置の前記表示手段は、前記教示装置に既に送信したステップを、識別可能に提示することを特徴とするもの。
【００３２】
・本発明と実施形態との対応：
デバッグ装置ａのプログラム記録手段ａ１は、実施形態においては、図６のステップＳ６０７またはステップＳ６１７の各機能がこれに該当する。同入力手段ａ２は、実施形態においては、図６のステップＳ６０３、ステップＳ６１３、図７のステップＳ７０３、ステップＳ７０７、ステップＳ７１１、ステップＳ７１３、ステップＳ７１５またはステップＳ７１７の各機能がこれに該当する。同送信手段ａ３は、実施形態においては、図８ａのステップＳ７７１または図８ｂのステップＳ８０４の各機能がこれに該当する。同表示手段ａ４は、実施形態においては、図８ｂのステップＳ８０７、ステップＳ８０９またはステップＳ８１３の各機能がこれに該当する。同読出データ記録手段ａ５は、実施形態においては、図８ｂのステップＳ８０６の機能がこれに該当する。同プログラム作成手段ａ６は、実施形態においては、図６のステップＳ６０１〜Ｓ６０５およびステップＳ６０９〜Ｓ６１５の機能がこれに該当する。同プログラム転送手段ａ７は、実施形態においては、図６のステップＳ６１９の機能がこれに該当する。
【００３３】
教示装置ｂのプログラム記録手段ｂ１は、実施形態においては、図６のステップＳ６１９によってデバッグ装置ａから転送された画面データと動作プログラムを受けて、教示装置ｂがメモリ３０５のプログラムフォルダ３０５７に当該で動作プログラムを記録する機能がこれに該当する。同読出手段ｂ２は、実施形態においては、図８ａのステップＳ７５１または図８ｂのステップＳ８５１の各機能がこれに該当する。同ステップ実行手段ｂ３は、実施形態においては、図８ａのステップＳ７５３ならびに、図８ｂのステップＳ８５３〜Ｓ８５５の各機能がこれに該当する。同実行結果送信手段ｂ４は、実施形態においては、図８ｂのステップＳ８５７の機能がこれに該当する。同操作手段ｂ５は、実施形態においては、図５のステップ命令５３２の実行時に教示装置ｂがユーザ操作を取得する機能がこれに該当する。
【００３４】
デバッグ装置における「ユーザによって指示されたステップとともに、前記教示装置が前記制御装置から読み出すべき読出データを教示装置に送信する行程」は、上記送信手段ａ３の機能を含むものである。教示装置における「前記デバッグ装置から受信した前記ステップを前記読出データを用いて実行し、当該教示装置が前記制御装置に対して書き込むべき書込データを決定するとともに『次に実行すべきステップ』を決定する行程」は、上記読出手段ｂ２およびステップ実行手段ｂ３の機能を含むものである。同「決定した前記書込データおよび前記『次に実行すべきステップ』を、前記デバッグ装置に送信する行程」は、上記実行結果送信手段ｂ４の機能を含むものである。デバッグ装置における「前記教示装置から受信した前記書込データおよび前記『次に実行すべきステップ』を、ユーザに提示する行程」は、上記表示手段ａ４の機能を含むものである。同「前記複数のステップから構成されたプログラムを作成する行程」は、上記プログラム作成手段ａ６の機能を含むものである。同「前記プログラムを作成する行程において作成したプログラムを記録する行程」は、上記プログラム記録手段ａ１の機能を含むものである。同「前記プログラムを作成する行程において作成したプログラムを教示装置に転送する行程」は、上記プログラム転送手段ａ７の機能を含むものである。同「前記教示装置に送信した『前記教示装置が前記制御装置から読み出すべき読出データ』を記録する行程」は、上記読出データ記録手段ａ５の機能を含むものである。
【００３５】
本発明において、「ステップ」とは、プログラムを構成する命令の所定単位である。なお、「ユーザによって指示されたステップ」、「デバッグ装置から受信したステップ」または「次に実行すべきステップ」には、ステップそれ自体の他、当該ステップに対応して付された識別をも含む概念である。例えば、各ステップに順に付されたステップ番号は、当該「ステップ」に含まれる。
【００３６】
「プログラム」とは、ＣＰＵにより直接実行可能なプログラムだけでなく、ソース形式のプログラム、圧縮処理がされたプログラム、暗号化されたプログラム等を含む概念である。
【発明を実施するための最良の形態】
【００３７】
以下、本発明における実施形態について、図面を参照して説明する。
【００３８】
１．第１の実施形態
本実施形態においては、図１ａに示すデバッグシステム１について、デバッグ装置ａにおいて作成したプログラムを教示装置ｂに転送した後、これらのデバッグ装置ａおよび教示装置ｂを用いて、前記プログラムのデバッグ作業を行うことのできるデバッグシステムの例について説明する。なお、制御装置ｃは、デバッグ後において教示装置ｂと接続され、教示装置ｂからの指令を受けて各種機器の制御を行うための装置である。例えば、ＰＬＣ（プログラマブル・ロジック・コントローラ）等がこれに該当する。すなわち、本実施形態においてデバッグされたプログラムを教示装置ｂにおいて実行することによって、教示装置ｂは制御装置ｃに対して各指令を出力する。
【００３９】
１−１．機能ブロック図
図１に、本実施形態にかかるデバッグシステム１の機能ブロック図を示す。この図においてデバッグシステム１は、デバッグ装置ａおよび教示装置ｂから構成され、各装置はケーブルまたはネットワーク等で相互に通信可能である。
【００４０】
デバッグ装置ａは、プログラム記録手段ａ１、入力手段ａ２、送信手段ａ３、表示手段ａ４、読出データ記録手段ａ５、プログラム作成手段ａ６およびプログラム転送手段ａ７を備えている。プログラム記録手段ａ１は、作成されたプログラムを記録するためのものである。入力手段ａ２は、デバッグ対象となるプログラムステップおよび読出データに関してユーザからの指示を受け付け、これをデバッグ装置ａに入力するためのものである。送信手段ａ３は、上記に置いて入力したステップおよび読出データを、教示装置ｂに送信するためのものである。表示手段ａ４は、教示装置から受信した書込データおよび「次に実行すべきステップ」を表示するためのものである。
【００４１】
読出データ記録手段ａ５は、ユーザが入力した読出データを記録しておくためのものである。プログラム作成手段ａ６は、教示装置ｂにおいて実行するためのプログラムを、ステップ単位で作成するためのものである。プログラム記録手段ａ１は、プログラム作成手段ａ６において作成したプログラムを記録するためのものである。プログラム転送手段ａ７は、プログラム作成手段ａ６において作成したプログラムを教示装置ｂに転送するためのものである。
【００４２】
教示装置ｂは、プログラム記録手段ｂ１、読出手段ｂ２、ステップ実行手段ｂ３、実行結果送信手段ｂ４おおび操作手段ｂ５を備えている。プログラム記録手段ｂ１は、デバッグ装置ａから転送されてきたプログラムを記録するためのものである。読出手段ｂ２は、デバッグ装置ａから送信されてきたステップに基づいて、プログラム記録手段ｂ１に記録されているプログラムをステップ単位で読み出すためのものである。ステップ実行手段ｂ３は、読み出したステップを実行するためのものである。実行結果送信手段ｂ４は、実行したステップの実行結果として、書込データおよび「次に実行すべきステップ」をデバッグ装置ａに送信するためのものである。
【００４３】
１−２．ハードウェア構成
１−２−１．デバッグ装置
図１に示したデバッグ装置ａを、ＣＰＵを用いて実現したコンピュータ装置のハードウェア構成の一例を図２に示す。デバッグ装置ａは、ディスプレイ２０１、ＣＰＵ２０３、メモリ２０５、キーボード／マウス２０７、ハードディスク２０９、ＣＤ−ＲＯＭドライブ２１１および通信回路２１５を備えている。ハードディスク２０９は、デバッグプログラム２０９１、プログラムフォルダ２０９３およびプログラム作成プログラム２０９５を記録している。メモリ２０５は、読出データフォルダ２０５１、現在ステップカウンタ２０５３および前回ステップカウンタ２０５５を記録している。デバッグプログラム２０９１は、ＣＤ−ＲＯＭ等の記録媒体２１３からインストールされたものである。
【００４４】
プログラム記録手段ａ１は、プログラムフォルダ２０９３およびデバッグプログラム２０９１を実行することによって実現される。入力手段ａ２は、キーボード／マウス２０７およびデバッグプログラム２０９１を実行することによって実現される。送信手段ａ３は、デバッグプログラム２０９１を実行することによって実現される。表示手段ａ４は、ディスプレイ２０１およびデバッグプログラム２０９１を実行することによって実現される。読み出しデータ記録手段ａ５は、読出データフォルダ２０５１およびデバッグプログラム２０９１を実行することによって実現される。プログラム作成手段ａ６およびプログラム転送手段ａ７は、プログラム作成プログラム２０９５を実行することによって実現される。
【００４５】
１−２−２．教示装置
図１に示した教示装置ｂを、ＣＰＵを用いて実現したコンピュータ装置のハードウェア構成の一例を図３に示す。教示装置ｂは、ディスプレイ３０１、ＣＰＵ３０３、メモリ３０５、操作キー３０６、ＬＥＤ３０８および通信回路３１５を備えている。メモリ３０５は、読出プログラム３０５１、実行プログラム３０５３、送信プログラム３０５５およびプログラムフォルダ３０５７を記録している。
【００４６】
プログラム記録手段ｂ１は、プログラムフォルダ３０５７によって実現される。読出手段ｂ２は、読出プログラム３０５１によって実現される。ステップ実行手段ｂ３は、実行プログラム３０５３によって実現される。実行結果送信手段ｂ４は、送信プログラム３０５５によって実現される。図１ｂに教示装置ｂの具体例を示す。教示装置ｂにはディスプレイ３０１、ＬＥＤ部３０８および操作キー部３０６を備えている。例えば、ＬＥＤ表示命令に基づいて、ＣＰＵ３０３は、Ｌｅｄ１「Ｄ２０」３０８１を点灯させる。
【００４７】
１−３．処理詳細
図４〜図９を用いて、本実施形態における処理の詳細を説明する。図６は、デバッグ装置ａにおいて実行されるプログラム作成プログラム２０９５におけるプログラム作成処理のフローチャートである。図７、図７ａ、図８ａおよび図８ｂは、主にデバッグ装置ａにおいて実行されるデバッグプログラム２０９１におけるデバッグ処理のフローチャートである。なお、図８ａおよび図８ｂにおいては、デバッグ装置ａからの指示に基づいて実行される、教示装置ｂの読出プログラム３０５１、実行プログラム３０５３または送信プログラム３０５５のフローチャートも同時に示す。
【００４８】
１−３−１．プログラム作成
本実施形態にかかるデバッグシステム１を利用するユーザは、まずデバッグ装置ａにて、教示装置ｂにおいて実行するためのプログラムを作成する。図６のフローチャートを用いて当該プログラムの作成処理を説明する。
【００４９】
デバッグ装置ａにおいて、ユーザがキーボード／マウス２０７を操作することによりプログラム作成プログラム２０９５を起動させると、デバッグ装置ａのＣＰＵ２０３は、図４に示すような作画画面４１をディスプレイ２０１に表示させる（ステップＳ６０１）。作画画面４１においてユーザは、教示装置ｂのディスプレイ３０１において表示するための画面データを作成することができる。例えば、直線、矩形、円、所定画像等の固定描画図形４１１、デバイス値に基づいてその表示を切り換えるためのメッセージ切り換え表示、数値表示または数値入力等の機能部品データ４１３等を、作画画面４１上において任意に作成することができる。
【００５０】
ＣＰＵ２０３は、ユーザがキーボード／マウス２０７を操作することによって行った作画指示を受け付けて、作画画面４１に画面部品を配置する（ステップＳ６０３）。さらに、ＣＰＵ２０３は、ユーザからの作画終了指示を受けると（ステップＳ６０５、ＹＥＳ）、作成された画面データをプログラムフォルダ２０９３に記録する（ステップＳ６０７）。このように、ユーザは上記処理を繰り返すことにより、教示装置ｂにおいて表示させるための全ての画面データを作成する（ステップＳ６０９）。
【００５１】
ＣＰＵ２０３は、図４に示すような動作プログラム画面４３をディスプレイ２０１に表示させる（ステップＳ６１１）。動作プログラム画面４３においてユーザは、教示装置ｂにおいて実行させるための複数のステップ（命令）から構成されるプログラムリストを作成することができる。すなわち、本実施形態において作成される動作プログラムは、教示装置ｂにおいて実行するためのシーケンス制御プログラムである。例えば、画面表示命令、四則／論理演算命令、条件ジャンプ命令またはサブルーチン呼出命令等に基づくステップ命令から構成されるプログラムリストを、動作プログラム画面４３上において任意に作成することができる。
【００５２】
ＣＰＵ２０３は、ユーザがキーボード／マウス２０７を操作することによって行った作成指示を受け付けて、動作プログラム画面４３にステップ命令を表示する（ステップＳ６１３）。さらに、ＣＰＵ２０３は、ユーザからの入力終了指示を受けると（ステップＳ６１５、ＹＥＳ）、作成された動作プログラム情報をプログラムフォルダ２０９３に記録する（ステップＳ６１７）。このように、ユーザは、教示装置ｂにおいて実行させるための動作プログラムを作成する。
【００５３】
なお、上記において作成された画面データ情報４９５、動作プログラム情報４９３は、教示装置ｂのハードウェア部品を設定するためのシステム設定４９１とともに１つにまとめられ、プロジェクトデータ４９（図４）としてプログラムフォルダ２０９３に記録される。
【００５４】
ＣＰＵ２０３は、ユーザ指示に基づいて、上記プロジェクトデータ４９を教示装置ｂに転送する（ステップＳ６１９）。デバッグ装置ａからの転送を受けて、教示装置ｂのＣＰＵ３０３は、プロジェクトデータ４９をメモリ３０５上のプログラムフォルダ３０５７に記録する。
【００５５】
１−３−２．デバッグ処理（１）
デバッグ装置ａにおいて、画面データ情報４９５、動作プログラム情報４９３を含むプロジェクトデータ４９を作成し、これを教示装置ｂに転送したユーザは、当該動作プログラムのデバッグを行う。図７、図７ａ、図８ａおよび図８ｂのフローチャートを用いて、当該デバッグ時において実行されるデバッグ装置ａのデバッグプログラム２０９１ならびに、教示装置ｂの読出プログラム３０５１、実行プログラム３０５３および送信プログラム３０５５の処理を説明する。
【００５６】
デバッグ装置ａにおいて、ユーザがキーボード／マウス２０７を操作することによりデバッグプログラム２０９１を起動させると、デバッグ装置ａのＣＰＵ２０３は、図５に示すようなデバッグ画面５１をディスプレイ２０１に表示させる（ステップＳ７０１、図７）。また、図５において同時に表示されている動作プログラム画面５３は、図４に示した動作プログラム画面４３上において作成された動作プログラムを表示するものであり、動作プログラム画面５３は、本実施形態において処理を説明するための具体的なプログラムリストが示されている。
【００５７】
デバッグ画面５１には、デバイス設定エリア５１０、ステップ実行ボタン５２１、停止ボタン５１３、リセットボタン５２３、ブレークポイントボタン５１５および連続実行ボタン５１７が表示される。デバイス設定エリア５１０は、実行中のステップにおいて使用されるデバイス番号およびデバイス値を表示または設定するためのものである。
【００５８】
ここで、教示装置ｂに入力されるべきデバイス番号およびデバイス値にかかるデータは、属性が「Ｒ」の読出データである。例えば、デバイス番号「Ｄ１０」およびデバイス値「５４」は、属性「Ｒ」の読出データである。なお、読出データは、キーボード／マウス２０７によって、データの入力または変更が可能である。一方、教示装置ｂから出力され、制御装置ｃに出力されるべきデバイス番号およびデバイス値にかかるデータは、属性が「Ｗ」の書込データである。例えば、デバイス番号「Ｄ７０」およびデバイス値「６７」は、属性「Ｗ」の書込データである。
【００５９】
ステップ実行ボタン５２１は、動作プログラム画面５３に表示されているプログラムステップを、教示装置ｂにおいてステップごとに実行させるためのものである。停止ボタン５１３は、教示装置ｂにおいて実行中のプログラムステップを停止させるためのものである。ブレークポイントボタン５１５は、動作プログラム画面５３において表示されているプログラムステップに、プログラムを停止させるためのステップ位置であるブレークポイントを設定するためのものである。連続実行ボタン５１７は、所定のプログラムステップからブレークポイントの設定されたプログラムステップまでの各ステップを順次連続して実行させるためのものである。リセットボタン５２３は、デバッグの実行により変更された教示装置ｂのデバイス値やブレークポイント等の設定情報をリセットするためのものである。
【００６０】
ＣＰＵ２０３は、動作プログラム画面５３においてブレークポイントの入力があったと判断すると（ステップＳ７０３、ＹＥＳ）、動作プログラム画面５３にブレークポイントを設定する（ステップＳ７０５）。例えば、動作プログラム画面５３において、任意のプログラムステップが選択された状態で、デバッグ画面５１のブレークポイントボタン５１５が押下されると、ＣＰＵ２０３は、ブレークポイントの入力があったと判断する。
【００６１】
ブレークポイントを設定すると、ＣＰＵ２０３は、動作プログラム画面における該当プログラムステップにブレークポイントマーク「＞」５５を表示する。例えば、動作プログラム画面５３においては、ステップ番号「９」の位置にブレークポイントマーク「＞」５５が表示されている。これにより、デバッグ中のユーザは、ブレークポイントの位置を確実に認識することができる。なお、ブレークポイントを設定しない場合には、ＣＰＵ２０３は、動作プログラム全体を１ステップずつ処理（ステップ処理）することになる。すなわち、ステップ実行ボタン５２１を押下して１ステップごとにデバッグを行う場合には、ブレークポイントを設定する必要はない。
【００６２】
ＣＰＵ２０３は、デバッグ画面５１においてデバイス値の入力があったと判断すると（ステップＳ７０７、ＹＥＳ）、デバッグ画面５１のデバイス設定エリア５１０にデバイス値を設定する（ステップＳ７０９）。例えば、デバッグ画面５１のデバイス設定エリア５１０において、デバイス番号およびデバイス値がキーボード／マウス２０７により入力されると、ＣＰＵ２０３は、デバイス値の入力があったと判断する。
【００６３】
ＣＰＵ２０３は、ステップ実行ボタン５２１が押下されたと判断すると（ステップＳ７１１、ＹＥＳ）、ステップ処理を実行する（ステップＳ７１２）。ここでステップ処理とは、デバッグ装置ａの動作プログラム画面５３上でキーボード／マウス２０７によって現在選択されているステップのみを、教示装置ｂにおいて実行させるための処理である。
【００６４】
ＣＰＵ２０３は、連続実行ボタン５１７が押下されたと判断すると（ステップＳ７１３、ＹＥＳ）、連続処理を実行する（ステップＳ７１４）。ここで連続処理とは、デバッグ装置ａの動作プログラム画面５３上でキーボード／マウス２０７によって現在選択されているステップから上記において説明したブレークポイントまでの各ステップを、教示装置ｂにおいて連続的に実行させるための処理である。なお、ブレークポイントが設定されていない場合には、停止ボタン５１３が押下されるまで、上記ステップ以降の全てのステップを実行する。
【００６５】
ＣＰＵ２０３は、リセットボタン５２３が押下されたと判断すると（ステップＳ７１５、ＹＥＳ）、デバイス設定エリア５１のデバイス番号、デバイス値、ブレークポイントマーク「＞」５５、現在ステップカウンタ２０５３および前回ステップカウンタ２０５５をリセット（初期化）する（ステップＳ７１６）。
【００６６】
ＣＰＵ２０３は、ユーザによってデバッグ終了が指示されると、全ての画面を閉じて当該デバッグ処理を終了する（ステップＳ７１７）。
【００６７】
１−３−２−１．ステップ処理（１）
図７ａのＡに、上記ステップ処理のフローチャートを示す。当該処理は、画面切換処理Ｓ７３１およびステップ実行処理Ｓ７３３から構成されている。画面切換処理Ｓ７３１のフローチャートを図８ａに示す。また、ステップ実行処理Ｓ７３３のフローチャートを図８ｂに示す。図５に示した動作プログラム画面５３のプログラムリストを用いて、ステップ処理の詳細を以下に説明する。
【００６８】
１−３−２−２．画面切換処理（１）
ＣＰＵ２０３は、動作プログラム画面５３上でキーボード／マウス２０７によって現在選択されているステップにかかるステップ番号を、現在ステップカウンタ２０５３に記憶する。ここで、ステップカウンタとは、動作プログラムにおけるステップ番号を記憶しておくためのものである。現在実行中のステップにかかるステップ番号は、現在ステップカウンタ２０５３に記憶されており、直前に実行したステップにかかるステップ番号は、前回ステップカウンタ２０５５に記憶される。
【００６９】
例えば、動作プログラム画面５３において、ステップ命令５３１が選択されている場合には、ステップ番号「１」が現在ステップカウンタに記憶される。このような状態で、ステップ実行ボタン５２１が押下された場合について説明する。
【００７０】
図８ａの画面切換処理において、ＣＰＵ２０３は、メモリ２０５から各ステップカウンタを読み込む（ステップＳ７６０）。なお、デバッグ処理の開始直後には、前回ステップカウンタ２０５５には、何も記憶されていないためＮＵＬＬ値として処理される。
【００７１】
ＣＰＵ２０３は、現在ステップカウンタ２０５３および前回ステップカウンタ２０５５に記憶されたステップ番号のそれぞれについて、プログラムフォルダ２０９３の動作プログラムリストを参照し、実行ステップ命令を取得する（ステップＳ７６１）。例えば、現在ステップカウンタ２０５３がステップ番号「１」を記憶している場合には、「画面１表示開始」命令が取得される。なお、前回ステップカウンタ２０５５に記憶されたステップ番号はＮＵＬＬ値であるため、いずれの実行ステップ命令も取得されない。
【００７２】
ＣＰＵ２０３は、取得した実行ステップ命令に基づいて、当該各ステップにおいて使用される画面番号をそれぞれ判断する（ステップＳ７６３）。ここで、画面番号とは、当該ステップ命令が記述されている位置に基づいて決定されるものである。例えば、プログラムリスト中において、画面データの「表示開始命令」から「スキャンエンド命令」の間に記述されたステップ命令は、全て当該画面データの画面番号に含まれるものとする。動作プログラム画面５３において、ステップ命令５３１（画面１表示開始）からステップ命令５３８（画面１スキャンエンド）の間に表示された各ステップ命令において使用される画面番号は「画面１」である。なお、ステップ番号「１」にかかる「画面１表示開始」命令の画面番号は、「画面１」である。
【００７３】
ＣＰＵ２０３は、現在ステップカウンタ２０５３のステップ番号にかかる画面番号と、前回ステップカウンタ２０５５のステップ番号にかかる画面番号とが、一致するか否か、または、前回ステップカウンタ２０５５がＮＵＬＬ値であるか否かを判断する（ステップＳ７６５）。なお、上述したように、デバッグプログラム２０９１の起動直後には、前回ステップカウンタ２０５５には何のデータも記憶されていないため、ＮＵＬＬ値であると判断して当該処理を終了する（ステップＳ７６５、ＹＥＳ）。なお、前回ステップカウンタ２０５５のステップ番号にかかる画面番号とが一致する場合にも、当該処理を終了する（ステップＳ７６５、ＹＥＳ）。
【００７４】
一方、前回ステップカウンタ２０５５のステップ番号にかかる画面番号とが一致しない場合には、ステップＳ７６７以降の処理を行うが、この場合については後述する。
【００７５】
１−３−２−３．ステップ実行処理（１）
図７ａのＡに示したステップ処理のフローチャートにおいて、画面切換処理Ｓ７３１を終えたＣＰＵ２０３は、ステップ実行処理Ｓ７３３を実行する。
【００７６】
図８ｂのステップ実行処理において、ＣＰＵ２０３は、ステップ実行コマンドを生成する（ステップＳ８０３）。ステップ実行コマンドは、デバッグ装置ａから教示装置ｂに対して送信される送信データであって、当該データは所定フォーマットから構成される。図９に当該データのフォーマットの例を示す。フォーマットは、ヘッダ９１、コマンド９２、画面番号９３、サブルーチン番号９４、ステップ番号９５、読出／書込数９６、デバイス番号１＿９７１、デバイス値１＿９８１、…、デバイス番号ｍ＿９７ｍ、デバイス値ｍ＿９８ｍ、ＢＣＣ９９、ターミネータ１００から構成される。ヘッダ９１、ＢＣＣ（ブロックチェックコード）９９およびターミネータ１００は、通信制御のために用いられるデータである。
【００７７】
コマンド９２は、デバイス番号１＿９７１、デバイス値１＿９８１、…、デバイス番号ｍ＿９７ｍ、デバイス値ｍ＿９８ｍに記録されるデータが、書込データまたは読出データのいずれであるかを示すデータである。例えば、教示装置ｂに読み出されるべきデータ（入力データ）の場合は読出データとして「Ｒ」がセットされる。一方、教示装置ｂから書き込まれるべきデータ（出力データ）は書込データとして「Ｗ」がセットされる。すなわち、実際の動作プログラムにおいて、制御装置ｃから教示装置ｂに入力されるべきデータが読出データであり、教示装置ｂから制御装置ｃに出力されるべきデータが書込データである。
【００７８】
画面番号９３およびサブルーチン番号９４は、実行すべきステップにおいて使用される画面およびサブルーチンを示す番号のデータである。ステップ番号９５は、実行すべきステップに対応して記録された番号を示すデータである。読出／書込数９６は、当該フォーマットにかかるデータにおいて有効なデバイス番号およびデバイス値にかかる個数を示すデータである。デバイス番号１＿９７１、デバイス値１＿９８１、…、デバイス番号ｍ＿９７ｍ、デバイス値ｍ＿９８ｍは、教示装置ｂに読み込まれるべきデバイス番号のデバイス値または教示装置ｂから書き込まれるべきデバイス番号のデバイス値を示すデータである。
【００７９】
例えば、ステップ命令５３１のステップをデバッグする場合には、図９のレコード９０１に示すデータがステップ実行コマンドとして生成される。すなわち、レコード９０１は、ステップ番号「１」を教示装置において実行させるためのデータであり、コマンド９２「Ｒ」、ステップ番号９５「１」等から構成される。ステップ命令の実行において、読出データが必要な場合には、当該読出データにかかるデバイス番号およびデバイス値を含むデータが送信データにセットされる。なお、上記ステップ命令５３１の場合には、読出データは必要とせず、レコード９０１に示すように、送信データにはデバイス番号およびデバイス値がセットされない。
【００８０】
ＣＰＵ２０３は、生成したステップ実行コマンドを教示装置ｂに送信する（ステップＳ８０４）。例えば、上記レコード９０１が送信される。これにより、教示装置ｂにおいて、ステップ番号「１」にかかる実行ステップ命令を実行させることができる。
【００８１】
送信を受けて、教示装置ｂのＣＰＵ３０３は、送信データに記録されているステップ番号に対応する実行ステップ命令を、プログラムフォルダ３０５７から読み出す（ステップＳ８５１）。なお、上述したように、教示装置ｂのプログラムフォルダ３０５７には、デバッグ装置ａと同一のプログラムリストが記録されている。例えば、レコード９０１にかかるステップ番号９５が「１」である場合、動作プログラム画面５３に示すステップ命令５３１と同一の実行ステップ命令として「画面１表示開始」命令が、教示装置ｂのプログラムフォルダ３０５７から読み出される。
【００８２】
ＣＰＵ３０３は、プログラムフォルダ３０５７から読み出したステップ命令を実行する（ステップＳ８５３）。例えば、上記において読み出したプログラムステップ「画面１表示開始」命令を実行し、教示装置１のディスプレイ３０１に「画面１」を表示させる。すなわち、図４に示した作画画面４１に基づく画面に基づいて、教示装置ｂのディスプレイ３０１は、図１ｂのように画面１を表示させる。
【００８３】
実行を終えると、ＣＰＵ３０３は、上記に置いて実行したステップ番号の次に実行すべき実行ステップ命令を、プログラムフォルダ３０５７から読み出す（ステップＳ８５４）。例えば、動作プログラム画面５３に示すステップ命令５３１の次に実行される実行ステップ命令であるステップ命令５３２が、プログラムフォルダ３０５７から読み出される。
【００８４】
ＣＰＵ３０３は、実行結果を生成する（ステップＳ８５５）。ここで、実行結果とは、図９のＡに示した送信データと同一フォーマットから構成される送信データである。例えば、図９のＢに示すレコード９２１が実行結果データとして生成される。上記ステップ命令の実行（ステップＳ８５３）において、書込データが発生している場合には、当該書込データにかかるデバイス番号およびデバイス値を含むデータが実行結果データにセットされる。
【００８５】
なお、上記ステップ命令５３１の場合には、書込データは発生せず、レコード９２１に示すように、実行結果データにはデバイス番号およびデバイス値がセットされない。
【００８６】
また、上記ステップＳ８５４において読み出された「次に実行すべきステップ」のステップ番号がレコード９２１のステップ番号９５にセットされる。例えば、上記実行ステップ命令５３２の場合には、ステップ番号９５に「２」がセットされる。
【００８７】
実行結果データを生成すると、ＣＰＵ３０３は、デバッグ装置ａに実行結果データを送信する（ステップＳ８５７）。例えば、上記レコード９２１が送信される。これにより、デバッグ装置ａに対して、ステップ番号「１」にかかる実行ステップ命令の実行結果を通知することができる。
【００８８】
教示装置ｂからの実行結果を受けて（ステップＳ８０５）、デバッグ装置ａのＣＰＵ２０３は、上記ステップＳ８０４において、送信したステップ実行コマンドのデバイス番号およびデバイス値を、読出データとして読出データフォルダ２０９７に記録する（ステップＳ８０６）。図９のＣに、読出フォルダ２０９７に記録される読出データの例を示す。
【００８９】
なお、レコード９０１に基づくステップ実行コマンドを送信した場合には、上述したように、送信データにはデバイス番号およびデバイス値がセットされないため、いずれの読出データも記録されない。
【００９０】
ＣＰＵ２０３は、教示装置ｂから受信した実行結果データにおいて書込データとして記録されているデバイス番号およびデバイス値があれば、デバッグ画面５１におけるデバイス設定エリア５１０に書込データとして表示する（ステップＳ８０７）。これにより、ユーザは、教示装置ｂから制御装置ｃに対して書き込まれるべきデータについての検証を１ステップごとに確実に行うことができる。
【００９１】
なお、レコード９２１に基づく実行結果を受信した場合には、上述したように、実行結果データにはデバイス番号およびデバイス値がセットされないため、いずれの書込データも表示されない。
【００９２】
ＣＰＵ２０３は、教示装置ｂに対して実行ステップ命令を送信して実行結果を受信したことをユーザに提示するため、動作プログラム画面５３に実行済みサインを表示する（ステップＳ８０９）。例えば、動作プログラム画面５３において、ステップ命令５３１にかかるステップ番号「１」の近傍には、実行済みサイン「＊」５４が表示される。これにより、ユーザは、現在どこまでデバッグが進んでいるのかを容易に認識することができる。
【００９３】
ＣＰＵ２０３は、各ステップカウンタを更新する（ステップＳ８１１）。ここで、更新されるステップカウンタとは、上述した現在ステップカウンタ２０５３および前回ステップカウンタ２０５５である。前回ステップカウンタ２０５３は、上記ステップＳ８０４において送信したステップ実行コマンドに記録されたステップ番号９５に基づいて更新される。また、現在ステップカウンタ２０５３は、実行結果データに記録されたステップ番号９５に基づいて更新される。
【００９４】
ここで、実行結果データに記録されているステップ番号９５は、「次に実行すべきステップ」のステップ番号を示すものである。すなわち、レコード９２１におけるステップ番号「２」が、教示装置ｂにおいて「次に実行すべきステップ」のステップ番号である。つまり、「次に実行すべきステップ」のステップ番号は、教示装置ｂが、プログラムリストに基づいて判断した「次に実行しようとしているステップ」のステップ番号を示している。
【００９５】
したがって、ステップ命令５３１のデバッグ終了時点においては、現在ステップカウンタ２０５３に、ステップ番号「２」がセットされ、前回ステップカウンタ２０５５には、ステップ番号「１」がセットされている。
【００９６】
ＣＰＵ２０３は、実行結果データの「次に実行すべきステップ」のステップ番号を動作プログラム画面５３上に表示する（ステップＳ８１３）。例えば、「次に実行すべきステップ」のステップ番号にかかるステップの行を反転表示する。動作プログラム画面５３においては、ステップ命令５３２が反転表示されている。これにより、ユーザは、教示装置ｂに転送したプログラムの処理順序の正当性を視覚的に確認することができる。例えば、ステップ命令５３１の「次に実行すべきステップ」がステップ命令５３２であることを、教示装置ｂにおける処理結果として確認することができる。
【００９７】
１−３−３．デバッグ処理（２）
ステップ命令５３１のデバッグに続けて、ステップ命令５３２のデバッグを行う場合について、以下に説明する。図７のステップ処理（ステップＳ７１２）を終えた後において、ＣＰＵ２０３は、再度ステップ実行ボタン５２１が押下されれば、リセットボタン５２３が押下されていない限り、上述した現在ステップカウンタ２０５３および前回ステップカウンタ２０５５を利用して、再度ステップ処理を行う（ステップＳ７０３〜７１７）。この場合デバイス値の入力があれば、デバイス値を設定する（ステップＳ７０７、Ｓ７０９）。
【００９８】
１−３−３−１．画面切換処理（２）
上述したように、動作プログラム画面５３上でキーボード／マウス２０７によって現在選択されているステップにかかるステップ番号は、現在ステップカウンタ２０５３に記憶されるため、図８ａのステップＳ７６０において、ＣＰＵ２０３は、現在ステップカウンタ２０５３のステップ番号を読み込むことによって、ユーザが指示したステップ命令にかかるステップ番号を取得することができる。なお、前回ステップカウンタ２０５５には、直前に実行したステップ命令のステップ番号が記憶されている。例えば、ステップ命令５３２が選択されている場合には、現在ステップカウンタ２０５３のステップ番号「２」が取得され、直前に実行したステップ命令５３１のステップ番号「１」が取得される。
【００９９】
ＣＰＵ２０３は、現在ステップカウンタ２０５３および前回ステップカウンタ２０５５に記憶されたステップ番号のそれぞれについて、プログラムフォルダ２０９３の動作プログラムリストを参照し、実行ステップ命令を取得する（ステップＳ７６１）。さらに、取得した実行ステップに基づいて、当該各ステップにおいて使用される画面番号を取得する（ステップＳ７６３）。
【０１００】
ＣＰＵ２０３は、現在ステップカウンタ２０５３のステップ番号にかかる画面番号と、前回ステップカウンタ２０５５のステップ番号にかかる画面番号とが、一致するか否かを判断する（ステップＳ７６５）。例えば、上述したように、ステップ番号「１」および「２」のそれぞれの画面番号は「画面１」であることにより、画面番号が一致する判断して当該処理を終了する（ステップＳ７６５、ＹＥＳ）。
【０１０１】
１−３−３−２．ステップ実行処理（２）
図８ｂのステップ実行処理において、ＣＰＵ２０３は、ステップ実行コマンドを生成する（ステップＳ８０３）。例えば、ステップ命令５３２のステップをデバッグする場合には、図９のレコード９０２に示すデータがステップ実行コマンドとして生成される。すなわち、レコード９０２は、ステップ番号「２」を教示装置において実行させるためのデータであり、コマンド９２「Ｒ」、ステップ番号９５「２」等から構成される。なお、上記ステップ命令５３２の場合には、読出データは必要とせず、レコード９０２に示すように、送信データにはデバイス番号およびデバイス値がセットされない。
【０１０２】
ＣＰＵ２０３は、生成したステップ実行コマンドを教示装置ｂに送信する（ステップＳ８０４）。例えば、上記レコード９０２が送信される。これにより、教示装置ｂにおいて、ステップ番号「２」にかかる実行ステップ命令を実行させることができる。
【０１０３】
送信を受けて、教示装置ｂのＣＰＵ３０３は、送信データに記録されているステップ番号に対応する実行ステップ命令を、プログラムフォルダ３０５７から読み出す（ステップＳ８５１）。例えば、レコード９０２にかかるステップ番号９５が「２」であることにより、動作プログラム画面５３に示すステップ命令５３２と同一の実行ステップ命令として「（Ｋｅｙ３）押下ジャンプ  Ｌａｂ１」命令が、教示装置ｂのプログラムフォルダ３０５７から読み出される。
【０１０４】
ＣＰＵ３０３は、プログラムフォルダ３０５７から読み出したステップ命令を実行する（ステップＳ８５３）。例えば、上記において読み出したプログラムステップ「（Ｋｅｙ３）押下  ジャンプ  Ｌａｂ１」命令を実行する。なお、「（Ｋｅｙ３）押下  ジャンプ  Ｌａｂ１」命令は、「教示装置ｂにおいて、キー（Ｋｅｙ３）が押下され、その立ち上がりを検出した際にはラベル（Ｌａｂ１）が付されたステップ命令を行う」旨を示すものである。
【０１０５】
教示装置ｂは、ＰＬＣ等の制御装置に対して命令を行う装置であるため、ユーザからの操作を受けてプログラムステップを処理する場合がある。したがって、ＣＰＵ３０３は、図１ｂに示した教示装置ｂにおいて、「Ｋｅｙ３」ボタン＿３０６１が押下されて離されると、教示装置ｂはこれを検知して、ステップ命令５３６に示す「Ｌａｂ１」にジャンプする処理を行う。このように、教示装置ｂにおいて実行されるステップは、教示装置ｂ自体における操作を受けて処理されるものであってもよい。これにより、操作を伴うステップ処理についてのデバッグ作業も上記と同様に行うことができる。
【０１０６】
実行を終えると、ＣＰＵ３０３は、上記に置いて実行したステップ番号の次に実行すべき実行ステップ命令を、プログラムフォルダ３０５７から読み出す（ステップＳ８５４）。例えば、動作プログラム画面５３に示すステップ命令５３２の次に実行される実行ステップ命令であるステップ命令５３６が、プログラムフォルダ３０５７から読み出される。
【０１０７】
ＣＰＵ３０３は、実行結果を生成する（ステップＳ８５５）。例えば、図９のＢに示すレコード９２１が実行結果データとして生成される。なお、上記ステップ命令５３２の場合には、書込データは発生せず、レコード９２１に示すように、実行結果データにはデバイス番号およびデバイス値がセットされない。
【０１０８】
また、上記ステップＳ８５４において読み出された「次に実行すべきステップ」のステップ番号がレコード９２２のステップ番号９５にセットされる。例えば、上記実行ステップ命令５３６の場合には、ステップ番号９５に「６」がセットされる。
【０１０９】
実行結果データを生成すると、ＣＰＵ３０３は、デバッグ装置ａに実行結果データを送信する（ステップＳ８５７）。例えば、上記レコード９２２が送信される。これにより、デバッグ装置ａに対して、ステップ番号「２」にかかる実行ステップ命令の実行結果を通知することができる。
【０１１０】
ステップＳ８０５〜Ｓ８１３の処理については、上記「１−３−３−２．ステップ実行処理（１）」と同様である。すなわち、動作プログラム画面５３において、ステップ命令５３２にかかるステップ番号「２」の近傍に、実行済みサイン「＊」が表示され、レコード９２２に基づいて、現在ステップカウンタ２０５３に、ステップ番号「６」がセットされ、前回ステップカウンタ２０５５には、ステップ番号「２」がセットされる。また、「次に実行すべきステップ」のステップ番号にかかるステップの行として、ステップ命令５３６が反転表示される。
【０１１１】
１−３−４．デバッグ処理（３）
ステップ命令５３２のデバッグに続けて、ステップ命令５３３のデバッグを行う場合について、以下に説明する。図７のステップ処理（ステップＳ７１２）を終えた後において、ＣＰＵ２０３は、再度ステップ実行ボタン５２１が押下されれば、リセットボタン５２３が押下されていない限り、上述した現在ステップカウンタ２０５３および前回ステップカウンタ２０５５を利用して、再度ステップ処理を行う（ステップＳ７０３〜７１７）。この場合デバイス値の入力があれば、デバイス値を設定する（ステップＳ７０７、Ｓ７０９）。
【０１１２】
例えば、ステップ命令５３３にかかる「Ｄ７０＝Ｄ１０＋１３」命令は、「デバイス（Ｄ１０）に１３を加算して、デバイス（Ｄ７０）に代入する」処理を表すステップ命令である。すなわち、この命令を実行するには、デバイス「Ｄ１０」のデバイス値を、読出データとして教示装置ｂに入力する必要がある。したがって、ユーザはキーボード／マウス２０７を用いて、デバイス設定エリア５１０に、デバイス番号およびデバイス値を入力する。例えば、デバイス番号「Ｄ１０」およびデバイス値「５４」を入力して読出データを設定する。
【０１１３】
１−３−４−１．画面切換処理（３）
図８ａの画面切換処理において、ＣＰＵ２０３は、現在ステップカウンタ２０５３のステップ番号を読み込むことによって、ユーザが指示したステップ命令にかかるステップ番号を取得する。前回ステップカウンタ２０５５には、直前に実行したステップ命令のステップ番号として、ステップ番号「２」が記憶されている。したがって、ステップ命令５３３が選択されている場合には、現在ステップカウンタ２０５３のステップ番号「３」が取得され、直前に実行したステップ命令５３１のステップ番号「２」が取得される。
【０１１４】
上述したように、ステップ番号「２」および「３」のそれぞれの画面番号は「画面１」であることにより、画面番号が一致する判断して当該処理を終了する（ステップＳ７６５、ＹＥＳ）。
【０１１５】
１−３−４−２．ステップ実行処理（３）
図８ｂのステップ実行処理において、ＣＰＵ２０３は、ステップ実行コマンドを生成する（ステップＳ８０３）。例えば、ステップ命令５３３のステップをデバッグする場合には、図９のレコード９０３に示すデータがステップ実行コマンドとして生成される。すなわち、レコード９０３は、ステップ番号「３」を教示装置において実行させるためのデータであり、コマンド９２「Ｒ」、ステップ番号９５「３」等から構成される。なお、上記ステップ命令５３３の場合には、読出データを必要とするため、レコード９０３に示すように、送信データには、デバイス設定エリア５１０から取得したデバイス番号「Ｄ１０」およびデバイス値「５４」がセットされる。
【０１１６】
ＣＰＵ２０３は、生成したステップ実行コマンドを教示装置ｂに送信する（ステップＳ８０４）。例えば、上記レコード９０３が送信される。これにより、教示装置ｂにおいて、ステップ番号「３」にかかる実行ステップ命令を実行させることができる。
【０１１７】
送信を受けて、教示装置ｂのＣＰＵ３０３は、送信データに記録されているステップ番号に対応する実行ステップ命令を、プログラムフォルダ３０５７から読み出す（ステップＳ８５１）。例えば、レコード９０３にかかるステップ番号９５が「３」であることにより、動作プログラム画面５３に示すステップ命令５３３と同一の実行ステップ命令として「Ｄ７０＝Ｄ１０＋１３」命令が、教示装置ｂのプログラムフォルダ３０５７から読み出される。
【０１１８】
ＣＰＵ３０３は、プログラムフォルダ３０５７から読み出したステップ命令を実行する（ステップＳ８５３）。例えば、上記において読み出したプログラムステップ「Ｄ７０＝Ｄ１０＋１３」命令を実行する。この場合、ＣＰＵ３０３は、ステップ実行コマンドの送信データに読出データとしてセットされたデバイス番号「Ｄ１０」およびデバイス値「５４」を使用して、ステップ命令を実行する。すなわち、「Ｄ１０」に「５４」を代入して、「Ｄ７０＝Ｄ１０＋１３」の演算処理を行う。これにより、「Ｄ７０＝６７」を得る。
【０１１９】
実行を終えると、ＣＰＵ３０３は、上記に置いて実行したステップ番号の次に実行すべき実行ステップ命令を、プログラムフォルダ３０５７から読み出す（ステップＳ８５４）。例えば、動作プログラム画面５３に示すステップ命令５３３の次に実行される実行ステップ命令であるステップ命令５３４が、プログラムフォルダ３０５７から読み出される。
【０１２０】
ＣＰＵ３０３は、実行結果を生成する（ステップＳ８５５）。例えば、図９のＢに示すレコード９２３が実行結果データとして生成される。なお、上記ステップ命令５３３の場合には、書込データとして「Ｄ７０＝６７」が発生しており、レコード９２３に示すように、実行結果データにはデバイス番号「Ｄ７０」およびデバイス値「６７」がセットされる。
【０１２１】
また、上記ステップＳ８５４において読み出された「次に実行すべきステップ」のステップ番号に「４」がセットされる。
【０１２２】
実行結果データを生成すると、ＣＰＵ３０３は、デバッグ装置ａに実行結果データを送信する（ステップＳ８５７）。例えば、上記レコード９２３が送信される。これにより、デバッグ装置ａに対して、ステップ番号「３」にかかる実行ステップ命令の実行結果を通知することができる。
【０１２３】
ステップＳ８０５〜Ｓ８１３の処理については、上記「１−３−３−２．ステップ実行処理（１）」と基本的に同様であるが、ステップＳ８０７においては、書込データが発生しているため、これをデバイス設定エリア５１０に表示する。例えば、デバッグ画面５１におけるデバイス設定エリア５１０においては、デバイス番号「Ｄ７０」、属性「Ｗ（書き込み）」、値「６７」が表示される。これにより、ユーザは、教示装置ｂから制御装置ｃに対して書き込まれるべきデータについての検証を１ステップごとに確実に行うことができる。
【０１２４】
なお、上記と同様に、動作プログラム画面５３において、ステップ命令５３２にかかるステップ番号「３」の近傍に、実行済みサイン「＊」が表示され、レコード９２３に基づいて、現在ステップカウンタ２０５３に、ステップ番号「４」がセットされ、前回ステップカウンタ２０５５には、ステップ番号「３」がセットされる。また、「次に実行すべきステップ」のステップ番号にかかるステップの行として、ステップ命令５３４が反転表示される。
【０１２５】
１−３−５．デバッグ処理（４）
ステップ命令５３３のデバッグに続けて、再度ステップ命令５３３のデバッグを行う場合について考える。図７のステップ処理（ステップＳ７１２）を終えた後において、ＣＰＵ２０３は、再度ステップ実行ボタン５２１が押下されれば、リセットボタン５２３が押下されていない限り、上述した現在ステップカウンタ２０５３および前回ステップカウンタ２０５５を利用して、再度ステップ処理を行う（ステップＳ７０３〜７１７）。
【０１２６】
この場合、デバイス値の入力があればデバイス値を設定する必要があるが、図８ｂのステップＳ８０６において、ＣＰＵ２０３は、デバイス「Ｄ１０」のデバイス値を読出データとして読出データフォルダ２０９７に記録している。したがって、ＣＰＵ２０３は、デバイス番号「Ｄ１０」、デバイス値「５４」を読み出して、ステップ実行コマンドを生成して教示装置ｂに送信することができる。これにより、ユーザは、デバイスの設定入力を行わずに、ステップ命令を実行することができる。
【０１２７】
１−３−６．デバッグ処理（５）
上記においては、動作プログラムリストを上から順にステップ実行する例について説明したが、本発明においては、画面の異なる任意のステップについてデバッグを行うことも可能である。例えば、「画面１」を使用するステップ命令５３３をデバッグした直後に、「画面８」を使用するステップ命令５３９のデバッグを行う場合を考える。
【０１２８】
１−３−６−１．画面切換処理（５）
図８ａの画面切換処理におけるステップＳ７６７以降の処理について、以下説明する。図７のステップ処理（ステップＳ７１２）を終えた後において、ＣＰＵ２０３は、再度ステップ実行ボタン５２１が押下されれば、リセットボタン５２３が押下されていない限り、上述した現在ステップカウンタ２０５３および前回ステップカウンタ２０５５を利用して、再度ステップ処理を行う（ステップＳ７０３〜７１７）。
【０１２９】
上述したように、動作プログラム画面５３上でキーボード／マウス２０７によって現在選択されているステップにかかるステップ番号は、現在ステップカウンタ２０５３に記憶されているため、図８ａのステップＳ７６０において、ＣＰＵ２０３は、現在ステップカウンタ２０５３のステップ番号を読み込むことによって、ユーザが指示したステップ命令にかかるステップ番号を取得することができる。なお、前回ステップカウンタ２０５５には、直前に実行したステップ命令のステップ番号が記憶されている。
【０１３０】
ＣＰＵ２０３は、現在ステップカウンタ２０５３および前回ステップカウンタ２０５５に記憶されたステップ番号のそれぞれについて、プログラムフォルダ２０９３の動作プログラムリストを参照し、実行ステップ命令を取得する（ステップＳ７６１）。さらに、取得した実行ステップに基づいて、当該各ステップにおいて使用される画面番号を取得する（ステップＳ７６３）。
【０１３１】
ＣＰＵ２０３は、現在ステップカウンタ２０５３のステップ番号にかかる画面番号と、前回ステップカウンタ２０５５のステップ番号にかかる画面番号とが、一致するか否かを判断する（ステップＳ７６５）。
【０１３２】
例えば、前回ステップカウンタ２０５５にステップ命令５３３にかかるステップ番号「３」が記憶され当該ステップの画面番号が「１」である場合において、現在ステップカウンタ２０５３にステップ命令５３９にかかるステップ番号「８」が記録され当該ステップの画面番号が「８」である場合には、画面番号が一致しないと判断する（ステップＳ７６５、ＮＯ）。
【０１３３】
画面番号が一致しないと判断したＣＰＵ２０３は、現在ステップカウンタ２０５３のステップ番号にかかる画面番号において使用するデバイス値を、読出データフォルダ２０５１から取得する（ステップＳ７６７）。例えば、画面番号「８」を表示するために必要なデバイス番号のデバイス値を取得する。
【０１３４】
必要なデバイス値を取得したＣＰＵ２０３は、画面切換コマンドを生成する（ステップＳ７６９）。ここで、画面切換コマンドとは、上述したステップ実行コマンドと同一のフォーマットから構成される送信データである。例えば、図９のレコード９０４に示すように、コマンド「Ｒ」、画面番号「８」、デバイス番号「Ｄ８０」およびデバイス値「８８」等から構成されるデータである。
【０１３５】
ここで、デバイス番号「Ｄ８０」およびデバイス値「８８」は、「画面８」を表示する場合に条件とされるデバイスの設定値である。なお、この設定値は、ユーザがデバイス設定エリア５１０に入力してもよいし、読出データフォルダ２０５１から読み出してもよい。
【０１３６】
画面切換コマンドを生成するとＣＰＵ２０３は、当該画面切換コマンドを教示装置ｂに送信する（ステップＳ７７１）。
【０１３７】
画面切換コマンドを受けて、教示装置ｂのＣＰＵ３０３は、画面番号に対応する画面構成データをプログラムフォルダ３０５７から読み出し（ステップＳ７５１）、読み出した画面をディスプレイ３０１に表示する（ステップＳ７５３）。例えば、「画面８」を表示するための画面データがプログラムフォルダ３０５７から読み出され、デバイス番号「Ｄ８０」にデバイス値「８８」がセットされた状態で「画面８」が教示装置ｂのディスプレイ３０１に表示される。
【０１３８】
このように、デバッグ装置ａは、実行しようとしているステップ命令にかかる画面表示を行うための環境設定（デバイス番号およびデバイス値）を、読出データ２０５１から取得して、教示装置ｂに与えることができる。これにより、プログラムの途中からであっても、適切な環境設定を行いユーザ所望のステップ命令についてのデバッグを確実に行うことができる。
【０１３９】
１−３−７．連続処理
図７ａのＢに、連続処理のフローチャートを示す。当該処理は、上述した画面切換処理Ｓ７３１およびステップ実行処理Ｓ７３３を、現在選択されているステップから設定されたブレークポイントまでの各ステップを連続して実行する処理である（ステップＳ７３５）。
【０１４０】
１−３−７−１．ブレークポイント
上述したステップ実行処理を終えると、デバッグ装置のＣＰＵ２０３は、現在ステップカウンタに設定されているステップ番号が、ブレークポイントに達したか否かを判断する（ステップＳ７３５）。ブレークポイントに達していなければ、停止ボタン５１３が押下されていない限り、ステップＳ７３１に戻って上記と同様の処理を繰り返す（ステップＳ７３５、ＮＯ）。一方、ブレークポイントに達していれば、当該処理を終了する（ステップＳ７３５、ＹＥＳ）。
【０１４１】
例えば、図５の動作プログラム画面５３において、ブレークポイントマーク「＞」５５は、ステップ命令５３９に設定されている。これにより、ＣＰＵ２０３は、次に実行すべきステップがステップ命令５３９である場合、連続実行処理を停止する。すなわち、ブレークポイントが設定されたステップ命令を実行する前において当該処理を停止する。
【０１４２】
なお、処理の途中で停止ボタン５１３が押下されれば当該処理を停止する（ステップＳ７３７、ＹＥＳ）。
【０１４３】
２．その他の実施形態
上記実施形態においては、デバッグ装置ａにおいてプログラム作成を行い、このプログラムを教示装置ｂに転送させた後に、当該プログラムのデバッグを行うように構成したが、デバッグ装置ａ以外の装置において作成したプログラムを、教示装置ｂに転送させてデバッグを行うようにしてもよい。
【０１４４】
上記実施形態においては、ステップ命令が記述されている位置に基づいてステップ命令にかかる画面番号を判断するように構成したが、他の方法で画面番号を判断するようにしてもよい。例えば、各ステップ命令ごとに画面番号を記録しておき、ステップの実行時において記録された画面番号を読み出すようにしてもよい。
【０１４５】
上記実施形態においては、図１に示す機能を実現する為に、ＣＰＵを用い、ソフトウェアによってこれを実現している。しかし、その一部もしくは全てを、ロジック回路等のハードウェアによって実現してもよい。なお、プログラムの一部の処理をさらに、オペレーティングシステム（ＯＳ）にさせるようにしてもよい。
【図面の簡単な説明】
【０１４６】
【図１】デバッグシステムの機能ブロック図の例を示す図である。
【図１ａ】デバッグシステムの構成図の例を示す図である。
【図１ｂ】教示装置の例を示す図である。
【図２】デバッグ装置におけるハードウェア構成図の例を示す図である。
【図３】教示装置におけるハードウェア構成図の例を示す図である。
【図４】動作プログラム画面、作画画面４１およびプロジェクトデータ４９の例を示す図である。
【図５】デバッグ画面、動作プログラム画面の例を示す図である。
【図６】デバッグ装置におけるプログラム作成処理のフローチャートである。
【図７】デバッグシステムにおけるデバッグ処理のフローチャートである。
【図７ａ】ステップ処理および連続処理におけるフローチャートである。
【図８ａ】画面切換処理におけるフローチャートである。
【図８ｂ】ステップ実行処理におけるフローチャートである。
【図９】送信データ、実行結果データおよび読出データの例を示す図である。
【符号の説明】
【０１４７】
ａ    デバッグ装置
ｂ    教示装置
【図１】
2006343818.tif 000003
【図１ａ】
2006343818.tif 000004
【図１ｂ】
2006343818.tif 000005
【図２】
2006343818.tif 000006
【図３】
2006343818.tif 000007
【図４】
2006343818.tif 000008
【図５】
2006343818.tif 000009
【図６】
2006343818.tif 000010
【図７】
2006343818.tif 000011
【図７ａ】
2006343818.tif 000012
【図８ａ】
2006343818.tif 000013
【図８ｂ】
2006343818.tif 000014
【図９】
2006343818.tif 000015