説明

教示装置用プログラムのデバッグ方法

【課題】教示装置のプログラムを1ステップ単位で実行することを可能とし、教示装置を用いて、効率よくデバッグ作業を行うための教示装置デバッグシステムの提供する。
【解決手段】
デバッグ装置において:プログラム記録手段a1は、プログラムを記録する。入力手段a2は、プログラムステップまたは読出データを入力する。送信手段a3は、プログラムステップまたは読出データを送信する。表示手段a4は、ステップの実行結果を表示する。読出データ記録手段a5は、読出データを記録する。プログラム作成手段a6は、プログラムを作成する。プログラム転送手段a7は、作成したプログラムを転送する。教示装置bにおいて:プログラム記録手段b1は、プログラムを記録する。読出手段b2は、プログラムをステップ単位で読み出す。ステップ実行手段b3は、読み出したステップを実行する。実行結果送信手段b4は、実行したステップの結果をデバッグ装置に送信する。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、ロボット機器等の各種機器を制御する制御装置(ホスト装置)に接続されて使用される教示装置において実行されるプログラムをデバッグする方法に関する。
【背景技術】
【0002】
教示装置とは、ティーチングペンダントとも呼ばれ、ロボット機器等の制御装置に接続され、当該制御装置に対してシーケンス制御命令に関する教示を行うための装置である。ユーザは、当該教示装置において実行するプログラムを作成・変更することにより、各種制御装置に応じた教示装置を利用することができる。すなわち、教示装置の動作を任意にプログラミングすることで、各種制御装置について、個々の操作盤を作成する必要がなくなる。
【0003】
このような教示装置において実行されるプログラムについても、他のプログラムと同様にデバッグ作業が必須となる。特に、教示装置のプログラムにバグが発生していると、ロボット機器等の制御装置が誤作動することにより、安全が害されるおそれがある。したがって、教示装置のデバッグ作業については、完全を期すことが不可欠である。例えば、教示装置のデバッグ方法については、下記(1)または(2)のような方法が考えられる。
【0004】
(1)コンピュータ装置において制御装置をシミュレーションさせ、作成したプログラムを転送した教示装置上で、ユーザが直接動作確認を行う(例えば、特許文献1参照。)。
【0005】
(2)コンピュータ装置において制御装置をシミュレーションさせるとともに、コンピュータ装置において教示装置自体をもシミュレーションする(例えば、特許文献2参照。)。
【0006】
【特許文献1】特開平11−134218号
【0007】
【特許文献2】特開平8−44409号
【発明の開示】
【発明が解決しようとする課題】
【0008】
しかしながら、上記(1)の方法においては、コンピュータ装置から教示装置に転送したプログラムの全体を当該教示装置において実行するため、プログラムを1ステップ単位のみで実行させることができず、デバッグが必要なプログラムステップ(位置)の判断が困難である。なお、教示装置にデバッグ機能を付加することも可能であるがこの場合は、教示装置のコストが高価になってしまう。
【0009】
上記(2)の方法においては、 コンピュータ装置内に教示装置のシミュレーション機能を持たせ、プログラムを1ステップ単位のみで実行できるようすることが可能であるが、シミュレーション機能を行うコンピュータ装置の構成が複雑化する。また、教示装置には、表示画面の他に所定の操作ボタンが設けられており、このような操作ボタン等を含めた操作形態を、コンピュータ装置上で完全にシミュレートすることは容易でない。
【0010】
この発明は、上記のような課題を解決するためになされたものであり、教示装置のプログラムを1ステップ単位で実行することを可能とし、教示装置の実機による操作形態およびその実行結果を用いて、効率よく確実にデバッグ作業を行うデバッグ方法を提供することを目的とする。
【課題を解決するための手段】
【0011】
(1)この発明にかかるデバッグ方法は、 複数のステップから構成されたプログラムであって、教示装置において実行されるプログラムについてのデバッグを行うためのデバッグ装置と、前記プログラムを実行して所定の制御装置に対して教示を行うための教示装置と、を用いて行うプログラムのデバッグ方法であって、 前記制御装置に代えて前記デバッグ装置を前記教示装置に接続し、 前記デバッグ装置は、 ユーザによって指示されたステップとともに、前記教示装置が前記制御装置から読み出すべき読出データを教示装置に送信する行程を行い、 前記教示装置は、 前記デバッグ装置から受信した前記ステップを前記読出データを用いて実行し、当該教示装置が前記制御装置に対して書き込むべき書込データを決定するとともに「次に実行すべきステップ」を決定する行程と、 決定した前記書込データおよび前記「次に実行すべきステップ」を、前記デバッグ装置に送信する行程を行い、 前記デバッグ装置は、さらに、 前記教示装置から受信した前記書込データおよび前記「次に実行すべきステップ」を、ユーザに提示する行程を行うことを特徴とする。
【0012】
したがって、教示装置において1ステップずつ実行したプログラムを、デバッグ装置において1ステップずつ実行結果を確認することができる。これにより、教示装置の実機による操作形態を用いて、効率よくトレースデバッグ作業を行うことができる。
【0013】
(2)この発明にかかるデバッグ方法においては、 デバッグ装置は、さらに、 複数のステップから構成されたプログラムを作成する行程と、 プログラムを作成する行程において作成したプログラムを記録する行程と、 プログラムを作成する行程において作成したプログラムを教示装置に転送する行程とを行うことを特徴とする。
【0014】
したがって、デバッグ装置において記録するプログラムと、教示装置において記録するプログラムとを容易に同期させることができる。これにより、デバッグ装置において指定されたステップと同一のステップを、教示装置側において確実に実行することができる。
【0015】
(3)この発明にかかるデバッグ方法においては、 プログラムを作成する行程は、教示装置における画面表示処理を行うステップと、当該画面表示処理以外の処理を行うステップとを、それぞれ独立して作成するものであり、 教示装置において実行されるプログラムは、ステップごとに、教示装置における画面表示処理を行うステップ、または、当該画面表示処理以外の処理を行うステップのいずれかを実行するものであることを特徴とする。
【0016】
したがって、画面表示処理またはこれ以外の処理をステップ単位で容易に作成することができる。また、デバッグ時において、画面表示処理とその他の処理を分離してデバッグすることができ、デバッグが必要な箇所を発見しやすい。
【0017】
(4)この発明にかかるデバッグ方法においては、 デバッグ装置は、さらに、 教示装置に送信した「教示装置が制御装置から読み出すべき読出データ」を記録する行程を行い、記録した当該読出データに基づいて、次回送信時における「教示装置が制御装置から読み出すべき読出データ」を決定することを特徴とする。
【0018】
したがって、教示装置が制御装置から読み出すべき読出データを再利用してデバッグを行うことができ、作業効率が向上する。
【0019】
・本発明の別の側面について:
この発明は、以下に示す形態においても捉えることができる。
【0020】
(A)
(a)複数のステップから構成されたプログラムであって、教示装置において実行されるプログラムについてのデバッグを行うためのデバッグ装置と、(b)前記プログラムを実行して所定の制御装置に対して教示を行うための教示装置と、を備えたデバッグシステムであって、
前記デバッグ装置は、
(a1)教示装置において実行されるプログラムと同一のプログラムを記録するプログラム記録手段と、
(a2)前記プログラム記録手段に記録されたプログラムの中からユーザが所定ステップを指示するための入力を行う入力手段と、
(a3)前記入力手段においてユーザによって指示された所定ステップとともに、前記教示装置が前記制御装置から読み出すべき読出データを教示装置に送信する送信手段と、
(a4)前記教示装置から受信した「教示装置が制御装置に対して書き込むべき書込データ」および「次に実行すべきステップ」を、ユーザに提示するための表示手段とを備え、
前記教示装置は、
(b1)所定の制御装置に対して教示を行うためのプログラムを記録するプログラム記録手段と、
(b2)前記デバッグ装置から受信した前記ステップを実行するためのプログラムステップを、前記プログラム記録手段に記録されたプログラムから読み出す読出手段と、
(b3)前記読出手段によって読み出したプログラムステップを、前記デバッグ装置から受信した前記読出データを用いて実行し、当該教示装置が前記制御装置に対して書き込むべき書込データを決定するとともに、当該教示装置が「次に実行すべきステップ」を決定するステップ実行手段と、
(b4)前記ステップ実行手段において決定した前記書込データおよび前記「次に実行すべきステップ」を、実行結果として前記デバッグ装置に送信する実行結果送信手段とを備えたことを特徴とするデバッグシステム。
【0021】
(B)
複数のステップから構成されたプログラムであって、教示装置において実行されるプログラムをデバッグするためのデバッグ装置とともに、前記プログラムのデバッグを行うための教示装置であって、
(b1)所定の制御装置に対して教示を行うためのプログラムを記録するプログラム記録手段と、
(b2)前記デバッグ装置から受信した前記ステップを実行するためのプログラムステップを、前記プログラム記録手段に記録されたプログラムから読み出す読出手段と、
(b3)前記読出手段によって読み出したプログラムステップを、前記デバッグ装置から受信した前記読出データを用いて実行し、当該教示装置が前記制御装置に対して書き込むべき書込データを決定するとともに、当該教示装置が「次に実行すべきステップ」を決定するステップ実行手段と、
(b4)前記ステップ実行手段において決定した前記書込データおよび前記「次に実行すべきステップ」を、実行結果として前記デバッグ装置に送信する実行結果送信手段とを備えたことを特徴とする教示装置。
【0022】
(C)
複数のステップから構成されたプログラムであって、教示装置において実行されるプログラムをデバッグするためのデバッグ装置とともに、前記プログラムのデバッグを行うための教示装置を、コンピュータを用いて実現するためのプログラムであって、コンピュータに以下の手段を構成させることを特徴とする教示装置のためのプログラム:
(b1)所定の制御装置に対して教示を行うためのプログラムを記録するプログラム記録手段と、
(b2)前記デバッグ装置から受信した前記ステップを実行するためのプログラムステップを、前記プログラム記録手段に記録されたプログラムから読み出す読出手段と、
(b3)前記読出手段によって読み出したプログラムステップを、前記デバッグ装置から受信した前記読出データを用いて実行し、当該教示装置が前記制御装置に対して書き込むべき書込データを決定するとともに、当該教示装置が「次に実行すべきステップ」を決定するステップ実行手段と、
(b4)前記ステップ実行手段において決定した前記書込データおよび前記「次に実行すべきステップ」を、実行結果として前記デバッグ装置に送信する実行結果送信手段。
【0023】
(D)
複数のステップから構成されるプログラムを実行して所定の制御装置に対して教示を行うための教示装置とともに、前記プログラムのデバッグを行うためのデバッグ装置であって、
(a1)教示装置において実行されるプログラムと同一のプログラムを記録するプログラム記録手段と、
(a2)前記プログラム記録手段に記録されたプログラムの中からユーザが所定ステップを指示するための入力を行う入力手段と、
(a3)前記入力手段においてユーザによって指示された所定ステップとともに、前記教示装置が前記制御装置から読み出すべき読出データを教示装置に送信する送信手段と、
(a4)前記教示装置から受信した「教示装置が制御装置に対して書き込むべき書込データ」および「次に実行すべきステップ」を、ユーザに提示するための表示手段とを備えたことを特徴とするデバッグ装置。
【0024】
(E)
複数のステップから構成されるプログラムを実行して所定の制御装置に対して教示を行うための教示装置とともに、前記プログラムのデバッグを行うためのデバッグ装置を、コンピュータを用いて実現するためのプログラムであって、コンピュータに以下の手段を構成させることを特徴とするデバッグ装置のためのプログラム:
(a1)教示装置において実行されるプログラムと同一のプログラムを記録するプログラム記録手段と、
(a2)前記プログラム記録手段に記録されたプログラムの中からユーザが所定ステップを指示するための入力を行う入力手段と、
(a3)前記入力手段においてユーザによって指示された所定ステップとともに、前記教示装置が前記制御装置から読み出すべき読出データを教示装置に送信する送信手段と、
(a4)前記教示装置から受信した「教示装置が制御装置に対して書き込むべき書込データ」および「次に実行すべきステップ」を、ユーザに提示するための表示手段。
【0025】
(F)
上記のデバッグシステム、デバッグ装置またはこのプログラムにおいて、
前記デバッグ装置は、さらに、
前記複数のステップから構成されたプログラムを作成するプログラム作成手段と、
前記プログラム作成手段において作成したプログラムを記録するプログラム記録手段と、
前記プログラム作成手段において作成したプログラムを教示装置に転送するプログラム転送手段とを備えたことを特徴とするもの。
【0026】
(G)
上記のデバッグシステム、デバッグ装置またはこのプログラムにおいて、
前記プログラム作成手段は、教示装置における画面表示処理を行うステップと、当該画面表示処理以外の処理を行うステップとを、それぞれ独立して作成するものであり、
前記教示装置において実行されるプログラムは、ステップごとに、教示装置における画面表示処理を行うステップ、または、当該画面表示処理以外の処理を行うステップのいずれかを実行するものであることを特徴とするもの。
【0027】
(H)
上記のデバッグシステム、デバッグ装置またはこのプログラムにおいて、
前記デバッグ装置は、さらに、
前記教示装置に送信した「前記教示装置が前記制御装置から読み出すべき読出データ」を記録する読出データ記録手段を備えており、記録した当該読出データに基づいて、次回送信時における「前記教示装置が前記制御装置から読み出すべき読出データ」を決定することを特徴とするもの。
【0028】
(I)
上記のデバッグシステム、教示装置またはこのプログラムにおいて、
前記教示装置は、さらに、
実行中のステップが取り扱う操作データを受け付けるための操作手段を有しており、前記ステップ実行手段は、当該操作手段において受け付けた操作データに基づいて前記ステップを実行することを特徴とするもの。
【0029】
(J)
上記のデバッグシステム、デバッグ装置またはこのプログラムにおいて、
前記デバッグ装置の前記送信手段は、前記教示装置から受信した「次に実行すべきステップ」を前記教示装置に送信することによって、1以上のステップについてのデバッグを連続して行うことを特徴とするもの。
【0030】
(K)
上記のデバッグシステム、デバッグ装置またはこのプログラムにおいて、
前記デバッグ装置の前記入力手段は、上記連続して行うステップについて、デバッグを中止するためのブレークポイントの入力を行うものであることを特徴とするもの。
【0031】
(L)
上記のデバッグシステム、デバッグ装置またはこのプログラムにおいて、
前記デバッグ装置の前記表示手段は、前記教示装置に既に送信したステップを、識別可能に提示することを特徴とするもの。
【0032】
・本発明と実施形態との対応:
デバッグ装置aのプログラム記録手段a1は、実施形態においては、図6のステップS607またはステップS617の各機能がこれに該当する。同入力手段a2は、実施形態においては、図6のステップS603、ステップS613、図7のステップS703、ステップS707、ステップS711、ステップS713、ステップS715またはステップS717の各機能がこれに該当する。同送信手段a3は、実施形態においては、図8aのステップS771または図8bのステップS804の各機能がこれに該当する。同表示手段a4は、実施形態においては、図8bのステップS807、ステップS809またはステップS813の各機能がこれに該当する。同読出データ記録手段a5は、実施形態においては、図8bのステップS806の機能がこれに該当する。同プログラム作成手段a6は、実施形態においては、図6のステップS601〜S605およびステップS609〜S615の機能がこれに該当する。同プログラム転送手段a7は、実施形態においては、図6のステップS619の機能がこれに該当する。
【0033】
教示装置bのプログラム記録手段b1は、実施形態においては、図6のステップS619によってデバッグ装置aから転送された画面データと動作プログラムを受けて、教示装置bがメモリ305のプログラムフォルダ3057に当該で動作プログラムを記録する機能がこれに該当する。同読出手段b2は、実施形態においては、図8aのステップS751または図8bのステップS851の各機能がこれに該当する。同ステップ実行手段b3は、実施形態においては、図8aのステップS753ならびに、図8bのステップS853〜S855の各機能がこれに該当する。同実行結果送信手段b4は、実施形態においては、図8bのステップS857の機能がこれに該当する。同操作手段b5は、実施形態においては、図5のステップ命令532の実行時に教示装置bがユーザ操作を取得する機能がこれに該当する。
【0034】
デバッグ装置における「ユーザによって指示されたステップとともに、前記教示装置が前記制御装置から読み出すべき読出データを教示装置に送信する行程」は、上記送信手段a3の機能を含むものである。教示装置における「前記デバッグ装置から受信した前記ステップを前記読出データを用いて実行し、当該教示装置が前記制御装置に対して書き込むべき書込データを決定するとともに『次に実行すべきステップ』を決定する行程」は、上記読出手段b2およびステップ実行手段b3の機能を含むものである。同「決定した前記書込データおよび前記『次に実行すべきステップ』を、前記デバッグ装置に送信する行程」は、上記実行結果送信手段b4の機能を含むものである。デバッグ装置における「前記教示装置から受信した前記書込データおよび前記『次に実行すべきステップ』を、ユーザに提示する行程」は、上記表示手段a4の機能を含むものである。同「前記複数のステップから構成されたプログラムを作成する行程」は、上記プログラム作成手段a6の機能を含むものである。同「前記プログラムを作成する行程において作成したプログラムを記録する行程」は、上記プログラム記録手段a1の機能を含むものである。同「前記プログラムを作成する行程において作成したプログラムを教示装置に転送する行程」は、上記プログラム転送手段a7の機能を含むものである。同「前記教示装置に送信した『前記教示装置が前記制御装置から読み出すべき読出データ』を記録する行程」は、上記読出データ記録手段a5の機能を含むものである。
【0035】
本発明において、「ステップ」とは、プログラムを構成する命令の所定単位である。なお、「ユーザによって指示されたステップ」、「デバッグ装置から受信したステップ」または「次に実行すべきステップ」には、ステップそれ自体の他、当該ステップに対応して付された識別をも含む概念である。例えば、各ステップに順に付されたステップ番号は、当該「ステップ」に含まれる。
【0036】
「プログラム」とは、CPUにより直接実行可能なプログラムだけでなく、ソース形式のプログラム、圧縮処理がされたプログラム、暗号化されたプログラム等を含む概念である。
【発明を実施するための最良の形態】
【0037】
以下、本発明における実施形態について、図面を参照して説明する。
【0038】
1.第1の実施形態
本実施形態においては、図1aに示すデバッグシステム1について、デバッグ装置aにおいて作成したプログラムを教示装置bに転送した後、これらのデバッグ装置aおよび教示装置bを用いて、前記プログラムのデバッグ作業を行うことのできるデバッグシステムの例について説明する。なお、制御装置cは、デバッグ後において教示装置bと接続され、教示装置bからの指令を受けて各種機器の制御を行うための装置である。例えば、PLC(プログラマブル・ロジック・コントローラ)等がこれに該当する。すなわち、本実施形態においてデバッグされたプログラムを教示装置bにおいて実行することによって、教示装置bは制御装置cに対して各指令を出力する。
【0039】
1−1.機能ブロック図
図1に、本実施形態にかかるデバッグシステム1の機能ブロック図を示す。この図においてデバッグシステム1は、デバッグ装置aおよび教示装置bから構成され、各装置はケーブルまたはネットワーク等で相互に通信可能である。
【0040】
デバッグ装置aは、プログラム記録手段a1、入力手段a2、送信手段a3、表示手段a4、読出データ記録手段a5、プログラム作成手段a6およびプログラム転送手段a7を備えている。プログラム記録手段a1は、作成されたプログラムを記録するためのものである。入力手段a2は、デバッグ対象となるプログラムステップおよび読出データに関してユーザからの指示を受け付け、これをデバッグ装置aに入力するためのものである。送信手段a3は、上記に置いて入力したステップおよび読出データを、教示装置bに送信するためのものである。表示手段a4は、教示装置から受信した書込データおよび「次に実行すべきステップ」を表示するためのものである。
【0041】
読出データ記録手段a5は、ユーザが入力した読出データを記録しておくためのものである。プログラム作成手段a6は、教示装置bにおいて実行するためのプログラムを、ステップ単位で作成するためのものである。プログラム記録手段a1は、プログラム作成手段a6において作成したプログラムを記録するためのものである。プログラム転送手段a7は、プログラム作成手段a6において作成したプログラムを教示装置bに転送するためのものである。
【0042】
教示装置bは、プログラム記録手段b1、読出手段b2、ステップ実行手段b3、実行結果送信手段b4おおび操作手段b5を備えている。プログラム記録手段b1は、デバッグ装置aから転送されてきたプログラムを記録するためのものである。読出手段b2は、デバッグ装置aから送信されてきたステップに基づいて、プログラム記録手段b1に記録されているプログラムをステップ単位で読み出すためのものである。ステップ実行手段b3は、読み出したステップを実行するためのものである。実行結果送信手段b4は、実行したステップの実行結果として、書込データおよび「次に実行すべきステップ」をデバッグ装置aに送信するためのものである。
【0043】
1−2.ハードウェア構成
1−2−1.デバッグ装置
図1に示したデバッグ装置aを、CPUを用いて実現したコンピュータ装置のハードウェア構成の一例を図2に示す。デバッグ装置aは、ディスプレイ201、CPU203、メモリ205、キーボード/マウス207、ハードディスク209、CD−ROMドライブ211および通信回路215を備えている。ハードディスク209は、デバッグプログラム2091、プログラムフォルダ2093およびプログラム作成プログラム2095を記録している。メモリ205は、読出データフォルダ2051、現在ステップカウンタ2053および前回ステップカウンタ2055を記録している。デバッグプログラム2091は、CD−ROM等の記録媒体213からインストールされたものである。
【0044】
プログラム記録手段a1は、プログラムフォルダ2093およびデバッグプログラム2091を実行することによって実現される。入力手段a2は、キーボード/マウス207およびデバッグプログラム2091を実行することによって実現される。送信手段a3は、デバッグプログラム2091を実行することによって実現される。表示手段a4は、ディスプレイ201およびデバッグプログラム2091を実行することによって実現される。読み出しデータ記録手段a5は、読出データフォルダ2051およびデバッグプログラム2091を実行することによって実現される。プログラム作成手段a6およびプログラム転送手段a7は、プログラム作成プログラム2095を実行することによって実現される。
【0045】
1−2−2.教示装置
図1に示した教示装置bを、CPUを用いて実現したコンピュータ装置のハードウェア構成の一例を図3に示す。教示装置bは、ディスプレイ301、CPU303、メモリ305、操作キー306、LED308および通信回路315を備えている。メモリ305は、読出プログラム3051、実行プログラム3053、送信プログラム3055およびプログラムフォルダ3057を記録している。
【0046】
プログラム記録手段b1は、プログラムフォルダ3057によって実現される。読出手段b2は、読出プログラム3051によって実現される。ステップ実行手段b3は、実行プログラム3053によって実現される。実行結果送信手段b4は、送信プログラム3055によって実現される。図1bに教示装置bの具体例を示す。教示装置bにはディスプレイ301、LED部308および操作キー部306を備えている。例えば、LED表示命令に基づいて、CPU303は、Led1「D20」3081を点灯させる。
【0047】
1−3.処理詳細
図4〜図9を用いて、本実施形態における処理の詳細を説明する。図6は、デバッグ装置aにおいて実行されるプログラム作成プログラム2095におけるプログラム作成処理のフローチャートである。図7、図7a、図8aおよび図8bは、主にデバッグ装置aにおいて実行されるデバッグプログラム2091におけるデバッグ処理のフローチャートである。なお、図8aおよび図8bにおいては、デバッグ装置aからの指示に基づいて実行される、教示装置bの読出プログラム3051、実行プログラム3053または送信プログラム3055のフローチャートも同時に示す。
【0048】
1−3−1.プログラム作成
本実施形態にかかるデバッグシステム1を利用するユーザは、まずデバッグ装置aにて、教示装置bにおいて実行するためのプログラムを作成する。図6のフローチャートを用いて当該プログラムの作成処理を説明する。
【0049】
デバッグ装置aにおいて、ユーザがキーボード/マウス207を操作することによりプログラム作成プログラム2095を起動させると、デバッグ装置aのCPU203は、図4に示すような作画画面41をディスプレイ201に表示させる(ステップS601)。作画画面41においてユーザは、教示装置bのディスプレイ301において表示するための画面データを作成することができる。例えば、直線、矩形、円、所定画像等の固定描画図形411、デバイス値に基づいてその表示を切り換えるためのメッセージ切り換え表示、数値表示または数値入力等の機能部品データ413等を、作画画面41上において任意に作成することができる。
【0050】
CPU203は、ユーザがキーボード/マウス207を操作することによって行った作画指示を受け付けて、作画画面41に画面部品を配置する(ステップS603)。さらに、CPU203は、ユーザからの作画終了指示を受けると(ステップS605、YES)、作成された画面データをプログラムフォルダ2093に記録する(ステップS607)。このように、ユーザは上記処理を繰り返すことにより、教示装置bにおいて表示させるための全ての画面データを作成する(ステップS609)。
【0051】
CPU203は、図4に示すような動作プログラム画面43をディスプレイ201に表示させる(ステップS611)。動作プログラム画面43においてユーザは、教示装置bにおいて実行させるための複数のステップ(命令)から構成されるプログラムリストを作成することができる。すなわち、本実施形態において作成される動作プログラムは、教示装置bにおいて実行するためのシーケンス制御プログラムである。例えば、画面表示命令、四則/論理演算命令、条件ジャンプ命令またはサブルーチン呼出命令等に基づくステップ命令から構成されるプログラムリストを、動作プログラム画面43上において任意に作成することができる。
【0052】
CPU203は、ユーザがキーボード/マウス207を操作することによって行った作成指示を受け付けて、動作プログラム画面43にステップ命令を表示する(ステップS613)。さらに、CPU203は、ユーザからの入力終了指示を受けると(ステップS615、YES)、作成された動作プログラム情報をプログラムフォルダ2093に記録する(ステップS617)。このように、ユーザは、教示装置bにおいて実行させるための動作プログラムを作成する。
【0053】
なお、上記において作成された画面データ情報495、動作プログラム情報493は、教示装置bのハードウェア部品を設定するためのシステム設定491とともに1つにまとめられ、プロジェクトデータ49(図4)としてプログラムフォルダ2093に記録される。
【0054】
CPU203は、ユーザ指示に基づいて、上記プロジェクトデータ49を教示装置bに転送する(ステップS619)。デバッグ装置aからの転送を受けて、教示装置bのCPU303は、プロジェクトデータ49をメモリ305上のプログラムフォルダ3057に記録する。
【0055】
1−3−2.デバッグ処理(1)
デバッグ装置aにおいて、画面データ情報495、動作プログラム情報493を含むプロジェクトデータ49を作成し、これを教示装置bに転送したユーザは、当該動作プログラムのデバッグを行う。図7、図7a、図8aおよび図8bのフローチャートを用いて、当該デバッグ時において実行されるデバッグ装置aのデバッグプログラム2091ならびに、教示装置bの読出プログラム3051、実行プログラム3053および送信プログラム3055の処理を説明する。
【0056】
デバッグ装置aにおいて、ユーザがキーボード/マウス207を操作することによりデバッグプログラム2091を起動させると、デバッグ装置aのCPU203は、図5に示すようなデバッグ画面51をディスプレイ201に表示させる(ステップS701、図7)。また、図5において同時に表示されている動作プログラム画面53は、図4に示した動作プログラム画面43上において作成された動作プログラムを表示するものであり、動作プログラム画面53は、本実施形態において処理を説明するための具体的なプログラムリストが示されている。
【0057】
デバッグ画面51には、デバイス設定エリア510、ステップ実行ボタン521、停止ボタン513、リセットボタン523、ブレークポイントボタン515および連続実行ボタン517が表示される。デバイス設定エリア510は、実行中のステップにおいて使用されるデバイス番号およびデバイス値を表示または設定するためのものである。
【0058】
ここで、教示装置bに入力されるべきデバイス番号およびデバイス値にかかるデータは、属性が「R」の読出データである。例えば、デバイス番号「D10」およびデバイス値「54」は、属性「R」の読出データである。なお、読出データは、キーボード/マウス207によって、データの入力または変更が可能である。一方、教示装置bから出力され、制御装置cに出力されるべきデバイス番号およびデバイス値にかかるデータは、属性が「W」の書込データである。例えば、デバイス番号「D70」およびデバイス値「67」は、属性「W」の書込データである。
【0059】
ステップ実行ボタン521は、動作プログラム画面53に表示されているプログラムステップを、教示装置bにおいてステップごとに実行させるためのものである。停止ボタン513は、教示装置bにおいて実行中のプログラムステップを停止させるためのものである。ブレークポイントボタン515は、動作プログラム画面53において表示されているプログラムステップに、プログラムを停止させるためのステップ位置であるブレークポイントを設定するためのものである。連続実行ボタン517は、所定のプログラムステップからブレークポイントの設定されたプログラムステップまでの各ステップを順次連続して実行させるためのものである。リセットボタン523は、デバッグの実行により変更された教示装置bのデバイス値やブレークポイント等の設定情報をリセットするためのものである。
【0060】
CPU203は、動作プログラム画面53においてブレークポイントの入力があったと判断すると(ステップS703、YES)、動作プログラム画面53にブレークポイントを設定する(ステップS705)。例えば、動作プログラム画面53において、任意のプログラムステップが選択された状態で、デバッグ画面51のブレークポイントボタン515が押下されると、CPU203は、ブレークポイントの入力があったと判断する。
【0061】
ブレークポイントを設定すると、CPU203は、動作プログラム画面における該当プログラムステップにブレークポイントマーク「>」55を表示する。例えば、動作プログラム画面53においては、ステップ番号「9」の位置にブレークポイントマーク「>」55が表示されている。これにより、デバッグ中のユーザは、ブレークポイントの位置を確実に認識することができる。なお、ブレークポイントを設定しない場合には、CPU203は、動作プログラム全体を1ステップずつ処理(ステップ処理)することになる。すなわち、ステップ実行ボタン521を押下して1ステップごとにデバッグを行う場合には、ブレークポイントを設定する必要はない。
【0062】
CPU203は、デバッグ画面51においてデバイス値の入力があったと判断すると(ステップS707、YES)、デバッグ画面51のデバイス設定エリア510にデバイス値を設定する(ステップS709)。例えば、デバッグ画面51のデバイス設定エリア510において、デバイス番号およびデバイス値がキーボード/マウス207により入力されると、CPU203は、デバイス値の入力があったと判断する。
【0063】
CPU203は、ステップ実行ボタン521が押下されたと判断すると(ステップS711、YES)、ステップ処理を実行する(ステップS712)。ここでステップ処理とは、デバッグ装置aの動作プログラム画面53上でキーボード/マウス207によって現在選択されているステップのみを、教示装置bにおいて実行させるための処理である。
【0064】
CPU203は、連続実行ボタン517が押下されたと判断すると(ステップS713、YES)、連続処理を実行する(ステップS714)。ここで連続処理とは、デバッグ装置aの動作プログラム画面53上でキーボード/マウス207によって現在選択されているステップから上記において説明したブレークポイントまでの各ステップを、教示装置bにおいて連続的に実行させるための処理である。なお、ブレークポイントが設定されていない場合には、停止ボタン513が押下されるまで、上記ステップ以降の全てのステップを実行する。
【0065】
CPU203は、リセットボタン523が押下されたと判断すると(ステップS715、YES)、デバイス設定エリア51のデバイス番号、デバイス値、ブレークポイントマーク「>」55、現在ステップカウンタ2053および前回ステップカウンタ2055をリセット(初期化)する(ステップS716)。
【0066】
CPU203は、ユーザによってデバッグ終了が指示されると、全ての画面を閉じて当該デバッグ処理を終了する(ステップS717)。
【0067】
1−3−2−1.ステップ処理(1)
図7aのAに、上記ステップ処理のフローチャートを示す。当該処理は、画面切換処理S731およびステップ実行処理S733から構成されている。画面切換処理S731のフローチャートを図8aに示す。また、ステップ実行処理S733のフローチャートを図8bに示す。図5に示した動作プログラム画面53のプログラムリストを用いて、ステップ処理の詳細を以下に説明する。
【0068】
1−3−2−2.画面切換処理(1)
CPU203は、動作プログラム画面53上でキーボード/マウス207によって現在選択されているステップにかかるステップ番号を、現在ステップカウンタ2053に記憶する。ここで、ステップカウンタとは、動作プログラムにおけるステップ番号を記憶しておくためのものである。現在実行中のステップにかかるステップ番号は、現在ステップカウンタ2053に記憶されており、直前に実行したステップにかかるステップ番号は、前回ステップカウンタ2055に記憶される。
【0069】
例えば、動作プログラム画面53において、ステップ命令531が選択されている場合には、ステップ番号「1」が現在ステップカウンタに記憶される。このような状態で、ステップ実行ボタン521が押下された場合について説明する。
【0070】
図8aの画面切換処理において、CPU203は、メモリ205から各ステップカウンタを読み込む(ステップS760)。なお、デバッグ処理の開始直後には、前回ステップカウンタ2055には、何も記憶されていないためNULL値として処理される。
【0071】
CPU203は、現在ステップカウンタ2053および前回ステップカウンタ2055に記憶されたステップ番号のそれぞれについて、プログラムフォルダ2093の動作プログラムリストを参照し、実行ステップ命令を取得する(ステップS761)。例えば、現在ステップカウンタ2053がステップ番号「1」を記憶している場合には、「画面1表示開始」命令が取得される。なお、前回ステップカウンタ2055に記憶されたステップ番号はNULL値であるため、いずれの実行ステップ命令も取得されない。
【0072】
CPU203は、取得した実行ステップ命令に基づいて、当該各ステップにおいて使用される画面番号をそれぞれ判断する(ステップS763)。ここで、画面番号とは、当該ステップ命令が記述されている位置に基づいて決定されるものである。例えば、プログラムリスト中において、画面データの「表示開始命令」から「スキャンエンド命令」の間に記述されたステップ命令は、全て当該画面データの画面番号に含まれるものとする。動作プログラム画面53において、ステップ命令531(画面1表示開始)からステップ命令538(画面1スキャンエンド)の間に表示された各ステップ命令において使用される画面番号は「画面1」である。なお、ステップ番号「1」にかかる「画面1表示開始」命令の画面番号は、「画面1」である。
【0073】
CPU203は、現在ステップカウンタ2053のステップ番号にかかる画面番号と、前回ステップカウンタ2055のステップ番号にかかる画面番号とが、一致するか否か、または、前回ステップカウンタ2055がNULL値であるか否かを判断する(ステップS765)。なお、上述したように、デバッグプログラム2091の起動直後には、前回ステップカウンタ2055には何のデータも記憶されていないため、NULL値であると判断して当該処理を終了する(ステップS765、YES)。なお、前回ステップカウンタ2055のステップ番号にかかる画面番号とが一致する場合にも、当該処理を終了する(ステップS765、YES)。
【0074】
一方、前回ステップカウンタ2055のステップ番号にかかる画面番号とが一致しない場合には、ステップS767以降の処理を行うが、この場合については後述する。
【0075】
1−3−2−3.ステップ実行処理(1)
図7aのAに示したステップ処理のフローチャートにおいて、画面切換処理S731を終えたCPU203は、ステップ実行処理S733を実行する。
【0076】
図8bのステップ実行処理において、CPU203は、ステップ実行コマンドを生成する(ステップS803)。ステップ実行コマンドは、デバッグ装置aから教示装置bに対して送信される送信データであって、当該データは所定フォーマットから構成される。図9に当該データのフォーマットの例を示す。フォーマットは、ヘッダ91、コマンド92、画面番号93、サブルーチン番号94、ステップ番号95、読出/書込数96、デバイス番号1_971、デバイス値1_981、…、デバイス番号m_97m、デバイス値m_98m、BCC99、ターミネータ100から構成される。ヘッダ91、BCC(ブロックチェックコード)99およびターミネータ100は、通信制御のために用いられるデータである。
【0077】
コマンド92は、デバイス番号1_971、デバイス値1_981、…、デバイス番号m_97m、デバイス値m_98mに記録されるデータが、書込データまたは読出データのいずれであるかを示すデータである。例えば、教示装置bに読み出されるべきデータ(入力データ)の場合は読出データとして「R」がセットされる。一方、教示装置bから書き込まれるべきデータ(出力データ)は書込データとして「W」がセットされる。すなわち、実際の動作プログラムにおいて、制御装置cから教示装置bに入力されるべきデータが読出データであり、教示装置bから制御装置cに出力されるべきデータが書込データである。
【0078】
画面番号93およびサブルーチン番号94は、実行すべきステップにおいて使用される画面およびサブルーチンを示す番号のデータである。ステップ番号95は、実行すべきステップに対応して記録された番号を示すデータである。読出/書込数96は、当該フォーマットにかかるデータにおいて有効なデバイス番号およびデバイス値にかかる個数を示すデータである。デバイス番号1_971、デバイス値1_981、…、デバイス番号m_97m、デバイス値m_98mは、教示装置bに読み込まれるべきデバイス番号のデバイス値または教示装置bから書き込まれるべきデバイス番号のデバイス値を示すデータである。
【0079】
例えば、ステップ命令531のステップをデバッグする場合には、図9のレコード901に示すデータがステップ実行コマンドとして生成される。すなわち、レコード901は、ステップ番号「1」を教示装置において実行させるためのデータであり、コマンド92「R」、ステップ番号95「1」等から構成される。ステップ命令の実行において、読出データが必要な場合には、当該読出データにかかるデバイス番号およびデバイス値を含むデータが送信データにセットされる。なお、上記ステップ命令531の場合には、読出データは必要とせず、レコード901に示すように、送信データにはデバイス番号およびデバイス値がセットされない。
【0080】
CPU203は、生成したステップ実行コマンドを教示装置bに送信する(ステップS804)。例えば、上記レコード901が送信される。これにより、教示装置bにおいて、ステップ番号「1」にかかる実行ステップ命令を実行させることができる。
【0081】
送信を受けて、教示装置bのCPU303は、送信データに記録されているステップ番号に対応する実行ステップ命令を、プログラムフォルダ3057から読み出す(ステップS851)。なお、上述したように、教示装置bのプログラムフォルダ3057には、デバッグ装置aと同一のプログラムリストが記録されている。例えば、レコード901にかかるステップ番号95が「1」である場合、動作プログラム画面53に示すステップ命令531と同一の実行ステップ命令として「画面1表示開始」命令が、教示装置bのプログラムフォルダ3057から読み出される。
【0082】
CPU303は、プログラムフォルダ3057から読み出したステップ命令を実行する(ステップS853)。例えば、上記において読み出したプログラムステップ「画面1表示開始」命令を実行し、教示装置1のディスプレイ301に「画面1」を表示させる。すなわち、図4に示した作画画面41に基づく画面に基づいて、教示装置bのディスプレイ301は、図1bのように画面1を表示させる。
【0083】
実行を終えると、CPU303は、上記に置いて実行したステップ番号の次に実行すべき実行ステップ命令を、プログラムフォルダ3057から読み出す(ステップS854)。例えば、動作プログラム画面53に示すステップ命令531の次に実行される実行ステップ命令であるステップ命令532が、プログラムフォルダ3057から読み出される。
【0084】
CPU303は、実行結果を生成する(ステップS855)。ここで、実行結果とは、図9のAに示した送信データと同一フォーマットから構成される送信データである。例えば、図9のBに示すレコード921が実行結果データとして生成される。上記ステップ命令の実行(ステップS853)において、書込データが発生している場合には、当該書込データにかかるデバイス番号およびデバイス値を含むデータが実行結果データにセットされる。
【0085】
なお、上記ステップ命令531の場合には、書込データは発生せず、レコード921に示すように、実行結果データにはデバイス番号およびデバイス値がセットされない。
【0086】
また、上記ステップS854において読み出された「次に実行すべきステップ」のステップ番号がレコード921のステップ番号95にセットされる。例えば、上記実行ステップ命令532の場合には、ステップ番号95に「2」がセットされる。
【0087】
実行結果データを生成すると、CPU303は、デバッグ装置aに実行結果データを送信する(ステップS857)。例えば、上記レコード921が送信される。これにより、デバッグ装置aに対して、ステップ番号「1」にかかる実行ステップ命令の実行結果を通知することができる。
【0088】
教示装置bからの実行結果を受けて(ステップS805)、デバッグ装置aのCPU203は、上記ステップS804において、送信したステップ実行コマンドのデバイス番号およびデバイス値を、読出データとして読出データフォルダ2097に記録する(ステップS806)。図9のCに、読出フォルダ2097に記録される読出データの例を示す。
【0089】
なお、レコード901に基づくステップ実行コマンドを送信した場合には、上述したように、送信データにはデバイス番号およびデバイス値がセットされないため、いずれの読出データも記録されない。
【0090】
CPU203は、教示装置bから受信した実行結果データにおいて書込データとして記録されているデバイス番号およびデバイス値があれば、デバッグ画面51におけるデバイス設定エリア510に書込データとして表示する(ステップS807)。これにより、ユーザは、教示装置bから制御装置cに対して書き込まれるべきデータについての検証を1ステップごとに確実に行うことができる。
【0091】
なお、レコード921に基づく実行結果を受信した場合には、上述したように、実行結果データにはデバイス番号およびデバイス値がセットされないため、いずれの書込データも表示されない。
【0092】
CPU203は、教示装置bに対して実行ステップ命令を送信して実行結果を受信したことをユーザに提示するため、動作プログラム画面53に実行済みサインを表示する(ステップS809)。例えば、動作プログラム画面53において、ステップ命令531にかかるステップ番号「1」の近傍には、実行済みサイン「*」54が表示される。これにより、ユーザは、現在どこまでデバッグが進んでいるのかを容易に認識することができる。
【0093】
CPU203は、各ステップカウンタを更新する(ステップS811)。ここで、更新されるステップカウンタとは、上述した現在ステップカウンタ2053および前回ステップカウンタ2055である。前回ステップカウンタ2053は、上記ステップS804において送信したステップ実行コマンドに記録されたステップ番号95に基づいて更新される。また、現在ステップカウンタ2053は、実行結果データに記録されたステップ番号95に基づいて更新される。
【0094】
ここで、実行結果データに記録されているステップ番号95は、「次に実行すべきステップ」のステップ番号を示すものである。すなわち、レコード921におけるステップ番号「2」が、教示装置bにおいて「次に実行すべきステップ」のステップ番号である。つまり、「次に実行すべきステップ」のステップ番号は、教示装置bが、プログラムリストに基づいて判断した「次に実行しようとしているステップ」のステップ番号を示している。
【0095】
したがって、ステップ命令531のデバッグ終了時点においては、現在ステップカウンタ2053に、ステップ番号「2」がセットされ、前回ステップカウンタ2055には、ステップ番号「1」がセットされている。
【0096】
CPU203は、実行結果データの「次に実行すべきステップ」のステップ番号を動作プログラム画面53上に表示する(ステップS813)。例えば、「次に実行すべきステップ」のステップ番号にかかるステップの行を反転表示する。動作プログラム画面53においては、ステップ命令532が反転表示されている。これにより、ユーザは、教示装置bに転送したプログラムの処理順序の正当性を視覚的に確認することができる。例えば、ステップ命令531の「次に実行すべきステップ」がステップ命令532であることを、教示装置bにおける処理結果として確認することができる。
【0097】
1−3−3.デバッグ処理(2)
ステップ命令531のデバッグに続けて、ステップ命令532のデバッグを行う場合について、以下に説明する。図7のステップ処理(ステップS712)を終えた後において、CPU203は、再度ステップ実行ボタン521が押下されれば、リセットボタン523が押下されていない限り、上述した現在ステップカウンタ2053および前回ステップカウンタ2055を利用して、再度ステップ処理を行う(ステップS703〜717)。この場合デバイス値の入力があれば、デバイス値を設定する(ステップS707、S709)。
【0098】
1−3−3−1.画面切換処理(2)
上述したように、動作プログラム画面53上でキーボード/マウス207によって現在選択されているステップにかかるステップ番号は、現在ステップカウンタ2053に記憶されるため、図8aのステップS760において、CPU203は、現在ステップカウンタ2053のステップ番号を読み込むことによって、ユーザが指示したステップ命令にかかるステップ番号を取得することができる。なお、前回ステップカウンタ2055には、直前に実行したステップ命令のステップ番号が記憶されている。例えば、ステップ命令532が選択されている場合には、現在ステップカウンタ2053のステップ番号「2」が取得され、直前に実行したステップ命令531のステップ番号「1」が取得される。
【0099】
CPU203は、現在ステップカウンタ2053および前回ステップカウンタ2055に記憶されたステップ番号のそれぞれについて、プログラムフォルダ2093の動作プログラムリストを参照し、実行ステップ命令を取得する(ステップS761)。さらに、取得した実行ステップに基づいて、当該各ステップにおいて使用される画面番号を取得する(ステップS763)。
【0100】
CPU203は、現在ステップカウンタ2053のステップ番号にかかる画面番号と、前回ステップカウンタ2055のステップ番号にかかる画面番号とが、一致するか否かを判断する(ステップS765)。例えば、上述したように、ステップ番号「1」および「2」のそれぞれの画面番号は「画面1」であることにより、画面番号が一致する判断して当該処理を終了する(ステップS765、YES)。
【0101】
1−3−3−2.ステップ実行処理(2)
図8bのステップ実行処理において、CPU203は、ステップ実行コマンドを生成する(ステップS803)。例えば、ステップ命令532のステップをデバッグする場合には、図9のレコード902に示すデータがステップ実行コマンドとして生成される。すなわち、レコード902は、ステップ番号「2」を教示装置において実行させるためのデータであり、コマンド92「R」、ステップ番号95「2」等から構成される。なお、上記ステップ命令532の場合には、読出データは必要とせず、レコード902に示すように、送信データにはデバイス番号およびデバイス値がセットされない。
【0102】
CPU203は、生成したステップ実行コマンドを教示装置bに送信する(ステップS804)。例えば、上記レコード902が送信される。これにより、教示装置bにおいて、ステップ番号「2」にかかる実行ステップ命令を実行させることができる。
【0103】
送信を受けて、教示装置bのCPU303は、送信データに記録されているステップ番号に対応する実行ステップ命令を、プログラムフォルダ3057から読み出す(ステップS851)。例えば、レコード902にかかるステップ番号95が「2」であることにより、動作プログラム画面53に示すステップ命令532と同一の実行ステップ命令として「(Key3)押下ジャンプ Lab1」命令が、教示装置bのプログラムフォルダ3057から読み出される。
【0104】
CPU303は、プログラムフォルダ3057から読み出したステップ命令を実行する(ステップS853)。例えば、上記において読み出したプログラムステップ「(Key3)押下 ジャンプ Lab1」命令を実行する。なお、「(Key3)押下 ジャンプ Lab1」命令は、「教示装置bにおいて、キー(Key3)が押下され、その立ち上がりを検出した際にはラベル(Lab1)が付されたステップ命令を行う」旨を示すものである。
【0105】
教示装置bは、PLC等の制御装置に対して命令を行う装置であるため、ユーザからの操作を受けてプログラムステップを処理する場合がある。したがって、CPU303は、図1bに示した教示装置bにおいて、「Key3」ボタン_3061が押下されて離されると、教示装置bはこれを検知して、ステップ命令536に示す「Lab1」にジャンプする処理を行う。このように、教示装置bにおいて実行されるステップは、教示装置b自体における操作を受けて処理されるものであってもよい。これにより、操作を伴うステップ処理についてのデバッグ作業も上記と同様に行うことができる。
【0106】
実行を終えると、CPU303は、上記に置いて実行したステップ番号の次に実行すべき実行ステップ命令を、プログラムフォルダ3057から読み出す(ステップS854)。例えば、動作プログラム画面53に示すステップ命令532の次に実行される実行ステップ命令であるステップ命令536が、プログラムフォルダ3057から読み出される。
【0107】
CPU303は、実行結果を生成する(ステップS855)。例えば、図9のBに示すレコード921が実行結果データとして生成される。なお、上記ステップ命令532の場合には、書込データは発生せず、レコード921に示すように、実行結果データにはデバイス番号およびデバイス値がセットされない。
【0108】
また、上記ステップS854において読み出された「次に実行すべきステップ」のステップ番号がレコード922のステップ番号95にセットされる。例えば、上記実行ステップ命令536の場合には、ステップ番号95に「6」がセットされる。
【0109】
実行結果データを生成すると、CPU303は、デバッグ装置aに実行結果データを送信する(ステップS857)。例えば、上記レコード922が送信される。これにより、デバッグ装置aに対して、ステップ番号「2」にかかる実行ステップ命令の実行結果を通知することができる。
【0110】
ステップS805〜S813の処理については、上記「1−3−3−2.ステップ実行処理(1)」と同様である。すなわち、動作プログラム画面53において、ステップ命令532にかかるステップ番号「2」の近傍に、実行済みサイン「*」が表示され、レコード922に基づいて、現在ステップカウンタ2053に、ステップ番号「6」がセットされ、前回ステップカウンタ2055には、ステップ番号「2」がセットされる。また、「次に実行すべきステップ」のステップ番号にかかるステップの行として、ステップ命令536が反転表示される。
【0111】
1−3−4.デバッグ処理(3)
ステップ命令532のデバッグに続けて、ステップ命令533のデバッグを行う場合について、以下に説明する。図7のステップ処理(ステップS712)を終えた後において、CPU203は、再度ステップ実行ボタン521が押下されれば、リセットボタン523が押下されていない限り、上述した現在ステップカウンタ2053および前回ステップカウンタ2055を利用して、再度ステップ処理を行う(ステップS703〜717)。この場合デバイス値の入力があれば、デバイス値を設定する(ステップS707、S709)。
【0112】
例えば、ステップ命令533にかかる「D70=D10+13」命令は、「デバイス(D10)に13を加算して、デバイス(D70)に代入する」処理を表すステップ命令である。すなわち、この命令を実行するには、デバイス「D10」のデバイス値を、読出データとして教示装置bに入力する必要がある。したがって、ユーザはキーボード/マウス207を用いて、デバイス設定エリア510に、デバイス番号およびデバイス値を入力する。例えば、デバイス番号「D10」およびデバイス値「54」を入力して読出データを設定する。
【0113】
1−3−4−1.画面切換処理(3)
図8aの画面切換処理において、CPU203は、現在ステップカウンタ2053のステップ番号を読み込むことによって、ユーザが指示したステップ命令にかかるステップ番号を取得する。前回ステップカウンタ2055には、直前に実行したステップ命令のステップ番号として、ステップ番号「2」が記憶されている。したがって、ステップ命令533が選択されている場合には、現在ステップカウンタ2053のステップ番号「3」が取得され、直前に実行したステップ命令531のステップ番号「2」が取得される。
【0114】
上述したように、ステップ番号「2」および「3」のそれぞれの画面番号は「画面1」であることにより、画面番号が一致する判断して当該処理を終了する(ステップS765、YES)。
【0115】
1−3−4−2.ステップ実行処理(3)
図8bのステップ実行処理において、CPU203は、ステップ実行コマンドを生成する(ステップS803)。例えば、ステップ命令533のステップをデバッグする場合には、図9のレコード903に示すデータがステップ実行コマンドとして生成される。すなわち、レコード903は、ステップ番号「3」を教示装置において実行させるためのデータであり、コマンド92「R」、ステップ番号95「3」等から構成される。なお、上記ステップ命令533の場合には、読出データを必要とするため、レコード903に示すように、送信データには、デバイス設定エリア510から取得したデバイス番号「D10」およびデバイス値「54」がセットされる。
【0116】
CPU203は、生成したステップ実行コマンドを教示装置bに送信する(ステップS804)。例えば、上記レコード903が送信される。これにより、教示装置bにおいて、ステップ番号「3」にかかる実行ステップ命令を実行させることができる。
【0117】
送信を受けて、教示装置bのCPU303は、送信データに記録されているステップ番号に対応する実行ステップ命令を、プログラムフォルダ3057から読み出す(ステップS851)。例えば、レコード903にかかるステップ番号95が「3」であることにより、動作プログラム画面53に示すステップ命令533と同一の実行ステップ命令として「D70=D10+13」命令が、教示装置bのプログラムフォルダ3057から読み出される。
【0118】
CPU303は、プログラムフォルダ3057から読み出したステップ命令を実行する(ステップS853)。例えば、上記において読み出したプログラムステップ「D70=D10+13」命令を実行する。この場合、CPU303は、ステップ実行コマンドの送信データに読出データとしてセットされたデバイス番号「D10」およびデバイス値「54」を使用して、ステップ命令を実行する。すなわち、「D10」に「54」を代入して、「D70=D10+13」の演算処理を行う。これにより、「D70=67」を得る。
【0119】
実行を終えると、CPU303は、上記に置いて実行したステップ番号の次に実行すべき実行ステップ命令を、プログラムフォルダ3057から読み出す(ステップS854)。例えば、動作プログラム画面53に示すステップ命令533の次に実行される実行ステップ命令であるステップ命令534が、プログラムフォルダ3057から読み出される。
【0120】
CPU303は、実行結果を生成する(ステップS855)。例えば、図9のBに示すレコード923が実行結果データとして生成される。なお、上記ステップ命令533の場合には、書込データとして「D70=67」が発生しており、レコード923に示すように、実行結果データにはデバイス番号「D70」およびデバイス値「67」がセットされる。
【0121】
また、上記ステップS854において読み出された「次に実行すべきステップ」のステップ番号に「4」がセットされる。
【0122】
実行結果データを生成すると、CPU303は、デバッグ装置aに実行結果データを送信する(ステップS857)。例えば、上記レコード923が送信される。これにより、デバッグ装置aに対して、ステップ番号「3」にかかる実行ステップ命令の実行結果を通知することができる。
【0123】
ステップS805〜S813の処理については、上記「1−3−3−2.ステップ実行処理(1)」と基本的に同様であるが、ステップS807においては、書込データが発生しているため、これをデバイス設定エリア510に表示する。例えば、デバッグ画面51におけるデバイス設定エリア510においては、デバイス番号「D70」、属性「W(書き込み)」、値「67」が表示される。これにより、ユーザは、教示装置bから制御装置cに対して書き込まれるべきデータについての検証を1ステップごとに確実に行うことができる。
【0124】
なお、上記と同様に、動作プログラム画面53において、ステップ命令532にかかるステップ番号「3」の近傍に、実行済みサイン「*」が表示され、レコード923に基づいて、現在ステップカウンタ2053に、ステップ番号「4」がセットされ、前回ステップカウンタ2055には、ステップ番号「3」がセットされる。また、「次に実行すべきステップ」のステップ番号にかかるステップの行として、ステップ命令534が反転表示される。
【0125】
1−3−5.デバッグ処理(4)
ステップ命令533のデバッグに続けて、再度ステップ命令533のデバッグを行う場合について考える。図7のステップ処理(ステップS712)を終えた後において、CPU203は、再度ステップ実行ボタン521が押下されれば、リセットボタン523が押下されていない限り、上述した現在ステップカウンタ2053および前回ステップカウンタ2055を利用して、再度ステップ処理を行う(ステップS703〜717)。
【0126】
この場合、デバイス値の入力があればデバイス値を設定する必要があるが、図8bのステップS806において、CPU203は、デバイス「D10」のデバイス値を読出データとして読出データフォルダ2097に記録している。したがって、CPU203は、デバイス番号「D10」、デバイス値「54」を読み出して、ステップ実行コマンドを生成して教示装置bに送信することができる。これにより、ユーザは、デバイスの設定入力を行わずに、ステップ命令を実行することができる。
【0127】
1−3−6.デバッグ処理(5)
上記においては、動作プログラムリストを上から順にステップ実行する例について説明したが、本発明においては、画面の異なる任意のステップについてデバッグを行うことも可能である。例えば、「画面1」を使用するステップ命令533をデバッグした直後に、「画面8」を使用するステップ命令539のデバッグを行う場合を考える。
【0128】
1−3−6−1.画面切換処理(5)
図8aの画面切換処理におけるステップS767以降の処理について、以下説明する。図7のステップ処理(ステップS712)を終えた後において、CPU203は、再度ステップ実行ボタン521が押下されれば、リセットボタン523が押下されていない限り、上述した現在ステップカウンタ2053および前回ステップカウンタ2055を利用して、再度ステップ処理を行う(ステップS703〜717)。
【0129】
上述したように、動作プログラム画面53上でキーボード/マウス207によって現在選択されているステップにかかるステップ番号は、現在ステップカウンタ2053に記憶されているため、図8aのステップS760において、CPU203は、現在ステップカウンタ2053のステップ番号を読み込むことによって、ユーザが指示したステップ命令にかかるステップ番号を取得することができる。なお、前回ステップカウンタ2055には、直前に実行したステップ命令のステップ番号が記憶されている。
【0130】
CPU203は、現在ステップカウンタ2053および前回ステップカウンタ2055に記憶されたステップ番号のそれぞれについて、プログラムフォルダ2093の動作プログラムリストを参照し、実行ステップ命令を取得する(ステップS761)。さらに、取得した実行ステップに基づいて、当該各ステップにおいて使用される画面番号を取得する(ステップS763)。
【0131】
CPU203は、現在ステップカウンタ2053のステップ番号にかかる画面番号と、前回ステップカウンタ2055のステップ番号にかかる画面番号とが、一致するか否かを判断する(ステップS765)。
【0132】
例えば、前回ステップカウンタ2055にステップ命令533にかかるステップ番号「3」が記憶され当該ステップの画面番号が「1」である場合において、現在ステップカウンタ2053にステップ命令539にかかるステップ番号「8」が記録され当該ステップの画面番号が「8」である場合には、画面番号が一致しないと判断する(ステップS765、NO)。
【0133】
画面番号が一致しないと判断したCPU203は、現在ステップカウンタ2053のステップ番号にかかる画面番号において使用するデバイス値を、読出データフォルダ2051から取得する(ステップS767)。例えば、画面番号「8」を表示するために必要なデバイス番号のデバイス値を取得する。
【0134】
必要なデバイス値を取得したCPU203は、画面切換コマンドを生成する(ステップS769)。ここで、画面切換コマンドとは、上述したステップ実行コマンドと同一のフォーマットから構成される送信データである。例えば、図9のレコード904に示すように、コマンド「R」、画面番号「8」、デバイス番号「D80」およびデバイス値「88」等から構成されるデータである。
【0135】
ここで、デバイス番号「D80」およびデバイス値「88」は、「画面8」を表示する場合に条件とされるデバイスの設定値である。なお、この設定値は、ユーザがデバイス設定エリア510に入力してもよいし、読出データフォルダ2051から読み出してもよい。
【0136】
画面切換コマンドを生成するとCPU203は、当該画面切換コマンドを教示装置bに送信する(ステップS771)。
【0137】
画面切換コマンドを受けて、教示装置bのCPU303は、画面番号に対応する画面構成データをプログラムフォルダ3057から読み出し(ステップS751)、読み出した画面をディスプレイ301に表示する(ステップS753)。例えば、「画面8」を表示するための画面データがプログラムフォルダ3057から読み出され、デバイス番号「D80」にデバイス値「88」がセットされた状態で「画面8」が教示装置bのディスプレイ301に表示される。
【0138】
このように、デバッグ装置aは、実行しようとしているステップ命令にかかる画面表示を行うための環境設定(デバイス番号およびデバイス値)を、読出データ2051から取得して、教示装置bに与えることができる。これにより、プログラムの途中からであっても、適切な環境設定を行いユーザ所望のステップ命令についてのデバッグを確実に行うことができる。
【0139】
1−3−7.連続処理
図7aのBに、連続処理のフローチャートを示す。当該処理は、上述した画面切換処理S731およびステップ実行処理S733を、現在選択されているステップから設定されたブレークポイントまでの各ステップを連続して実行する処理である(ステップS735)。
【0140】
1−3−7−1.ブレークポイント
上述したステップ実行処理を終えると、デバッグ装置のCPU203は、現在ステップカウンタに設定されているステップ番号が、ブレークポイントに達したか否かを判断する(ステップS735)。ブレークポイントに達していなければ、停止ボタン513が押下されていない限り、ステップS731に戻って上記と同様の処理を繰り返す(ステップS735、NO)。一方、ブレークポイントに達していれば、当該処理を終了する(ステップS735、YES)。
【0141】
例えば、図5の動作プログラム画面53において、ブレークポイントマーク「>」55は、ステップ命令539に設定されている。これにより、CPU203は、次に実行すべきステップがステップ命令539である場合、連続実行処理を停止する。すなわち、ブレークポイントが設定されたステップ命令を実行する前において当該処理を停止する。
【0142】
なお、処理の途中で停止ボタン513が押下されれば当該処理を停止する(ステップS737、YES)。
【0143】
2.その他の実施形態
上記実施形態においては、デバッグ装置aにおいてプログラム作成を行い、このプログラムを教示装置bに転送させた後に、当該プログラムのデバッグを行うように構成したが、デバッグ装置a以外の装置において作成したプログラムを、教示装置bに転送させてデバッグを行うようにしてもよい。
【0144】
上記実施形態においては、ステップ命令が記述されている位置に基づいてステップ命令にかかる画面番号を判断するように構成したが、他の方法で画面番号を判断するようにしてもよい。例えば、各ステップ命令ごとに画面番号を記録しておき、ステップの実行時において記録された画面番号を読み出すようにしてもよい。
【0145】
上記実施形態においては、図1に示す機能を実現する為に、CPUを用い、ソフトウェアによってこれを実現している。しかし、その一部もしくは全てを、ロジック回路等のハードウェアによって実現してもよい。なお、プログラムの一部の処理をさらに、オペレーティングシステム(OS)にさせるようにしてもよい。
【図面の簡単な説明】
【0146】
【図1】デバッグシステムの機能ブロック図の例を示す図である。
【図1a】デバッグシステムの構成図の例を示す図である。
【図1b】教示装置の例を示す図である。
【図2】デバッグ装置におけるハードウェア構成図の例を示す図である。
【図3】教示装置におけるハードウェア構成図の例を示す図である。
【図4】動作プログラム画面、作画画面41およびプロジェクトデータ49の例を示す図である。
【図5】デバッグ画面、動作プログラム画面の例を示す図である。
【図6】デバッグ装置におけるプログラム作成処理のフローチャートである。
【図7】デバッグシステムにおけるデバッグ処理のフローチャートである。
【図7a】ステップ処理および連続処理におけるフローチャートである。
【図8a】画面切換処理におけるフローチャートである。
【図8b】ステップ実行処理におけるフローチャートである。
【図9】送信データ、実行結果データおよび読出データの例を示す図である。
【符号の説明】
【0147】
a デバッグ装置
b 教示装置

【特許請求の範囲】
【請求項1】
複数のステップから構成されたプログラムであって、教示装置において実行されるプログラムについてのデバッグを行うためのデバッグ装置と、前記プログラムを実行して所定の制御装置に対して教示を行うための教示装置と、を用いて行うプログラムのデバッグ方法であって、
前記制御装置に代えて前記デバッグ装置を前記教示装置に接続し、
前記デバッグ装置は、
ユーザによって指示されたステップとともに、前記教示装置が前記制御装置から読み出すべき読出データを教示装置に送信する行程を行い、
前記教示装置は、
前記デバッグ装置から受信した前記ステップを前記読出データを用いて実行し、当該教示装置が前記制御装置に対して書き込むべき書込データを決定するとともに「次に実行すべきステップ」を決定する行程と、
決定した前記書込データおよび前記「次に実行すべきステップ」を、前記デバッグ装置に送信する行程を行い、
前記デバッグ装置は、さらに、
前記教示装置から受信した前記書込データおよび前記「次に実行すべきステップ」を、ユーザに提示する行程を行うこと
を特徴とするプログラムのデバッグ方法。
【請求項2】
請求項1のデバッグ方法において、
前記デバッグ装置は、さらに、
前記複数のステップから構成されたプログラムを作成する行程と、
前記プログラムを作成する行程において作成したプログラムを記録する行程と、
前記プログラムを作成する行程において作成したプログラムを教示装置に転送する行程とを行うことを特徴とするもの。
【請求項3】
請求項2のデバッグ方法において、
前記プログラムを作成する行程は、教示装置における画面表示処理を行うステップと、当該画面表示処理以外の処理を行うステップとを、それぞれ独立して作成するものであり、
前記教示装置において実行されるプログラムは、ステップごとに、教示装置における画面表示処理を行うステップ、または、当該画面表示処理以外の処理を行うステップのいずれかを実行するものであることを特徴とするもの。
【請求項4】
請求項1〜3いずれかのデバッグ方法において、
前記デバッグ装置は、さらに、
前記教示装置に送信した「前記教示装置が前記制御装置から読み出すべき読出データ」を記録する行程を行い、記録した当該読出データに基づいて、次回送信時における「前記教示装置が前記制御装置から読み出すべき読出データ」を決定することを特徴とするもの。

【図1】
image rotate

【図1a】
image rotate

【図1b】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図7a】
image rotate

【図8a】
image rotate

【図8b】
image rotate

【図9】
image rotate


【公開番号】特開2006−343818(P2006−343818A)
【公開日】平成18年12月21日(2006.12.21)
【国際特許分類】
【出願番号】特願2005−166743(P2005−166743)
【出願日】平成17年6月7日(2005.6.7)
【出願人】(000000309)IDEC株式会社 (188)
【Fターム(参考)】