(57)【特許請求の範囲】
【請求項１】
操作者による動作機械の操作器を用いたプログラム作成を支援する方法であって、
前記操作器は、画像を表示する表示部及び文字入力時に操作される操作部を備え、プログラムを記憶する記憶部に接続され、操作者により手に持たれて操作されるものであり、
前記操作器が実行する前記方法は、
前記表示部に表示された作成中のプログラムにおいて、カーソルが配置された行の前の行の文字列を取得する第１工程と、
前記記憶部に記憶されているプログラム中から、前記第１工程で取得した前記文字列を検索する第２工程と、
前記記憶部に記憶されている前記プログラム中から、前記第２工程で検索した前記文字列を含む行の後の行の文字列を取得する第３工程と、
前記表示部に表示された作成中の前記プログラムにおいて、前記第３工程で取得した前記文字列を前記カーソルの配置された行に挿入する第４工程と、
を備えることを特徴とするプログラム作成支援方法。
【請求項２】
前記第１工程において、前記文字列は、前記カーソルが配置された行の前の行中に含まれる命令文である請求項１に記載のプログラム作成支援方法。
【請求項３】
前記第１工程は、前記表示部に表示された作成中の前記プログラムにおいて、操作者により前記操作部が操作されて１行の入力が完了された場合に実行される請求項１又は２に記載のプログラム作成支援方法。
【請求項４】
前記第３工程は、前記記憶部に記憶されている前記プログラム中から、前記第２工程で検索した前記文字列を含む行よりも後の所定行の文字列を取得する工程であり、
前記第４工程は、前記第３工程で取得した前記所定行の文字列のうち、前記操作者により選択された範囲の文字列を前記カーソルの配置された行に挿入する工程である請求項１〜３のいずれか１項に記載のプログラム作成支援方法。
【請求項５】
前記第３工程は、前記記憶部に記憶されている前記プログラム中から、前記第２工程で検索した前記文字列を含む行の後の行の文字列のうち、前記操作者により選択された種類の文字列を取得する工程である請求項１〜４のいずれか１項に記載のプログラム作成支援方法。
【請求項６】
前記第２工程は、前記記憶部に記憶されているプログラム中から、前記第１工程で取得した前記文字列を複数検索する工程であり、
前記第３工程は、前記記憶部に記憶されている前記プログラム中から、前記第２工程で複数検索した前記文字列を含む行の後の行の文字列をそれぞれ取得する工程であり、
前記第４工程は、前記第３工程で取得した前記文字列のうち、前記操作者により選択された文字列を前記カーソルの配置された行に挿入する工程である請求項１〜５のいずれか１項に記載のプログラム作成支援方法。
【請求項７】
前記第２工程は、前記記憶部に記憶されているプログラムのうち、前記操作者により選択されたプログラム中から、前記第１工程で取得した前記文字列を検索する工程であり、
前記第３工程は、前記記憶部に記憶されている前記プログラムのうち、前記選択されたプログラム中から、前記第２工程で検索した前記文字列を含む行の後の行の文字列を取得する工程である請求項１〜６のいずれか１項に記載のプログラム作成支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、操作者による動作機械の操作器を用いたプログラム作成を支援する方法に関する。
【背景技術】
【０００２】
従来、プログラムを複数の項目に分割し、対象となるＮＣ工作機械（動作機械）に最適な構成用プログラムを、項目毎に選択して組み合わせることにより、最適なプログラムを作成するものがある(例えば、特許文献１参照)。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−５９５１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、一般にロボット（動作機械）の制御プログラムは、ロボットの設置現場である工場等ではなく、メーカーやユーザのオフィスでＰＣ（Personal Computer）等を用いて作成される。そして、作成したプログラムをロボットコントローラにインストールして、ロボットを動作させている。
【０００５】
ここで、ロボットの設置現場において、プログラムの簡単な修正や一部追加を行うことがある。このような場合には、操作者が手に持って操作する小型のティーチングペンダント（操作器）を用いることが多い。ティーチングペンダントは、表示部が小さく、操作キーも限られているため、操作者によるプログラム作成を支援する機能が望まれる。
【０００６】
特許文献１に記載のものは、予め多数の構成用プログラムを用意しておく必要があり、大きな記憶容量を確保しておく必要がある。また、それまでの入力履歴をデータベース化しておき、データベースの検索結果から次の入力候補を表示する方法がある。しかしながら、プログラムの修正や追加を行う機会がそれほど多くないティーチングペンダントでは、十分なデータベースを構築することが難しい。さらに、そのような使用頻度の低い機能のために、コストをかけて記憶容量を増大させることは適切ではない。
【０００７】
本発明は、こうした実情に鑑みてなされたものであり、その主たる目的は、大きな記憶容量を必要とせず、操作者による操作器を用いたプログラム作成の効率を向上させることのできる支援方法を提供することにある。
【課題を解決するための手段】
【０００８】
本発明は、上記課題を解決するために、以下の手段を採用した。
【０００９】
第１の手段は、操作者による動作機械の操作器を用いたプログラム作成を支援する方法であって、前記操作器は、画像を表示する表示部及び文字入力時に操作される操作部を備え、プログラムを記憶する記憶部に接続され、操作者により手に持たれて操作されるものであり、前記操作器が実行する前記方法は、前記表示部に表示された作成中のプログラムにおいて、カーソルが配置された行の前の行の文字列を取得する第１工程と、前記記憶部に記憶されているプログラム中から、前記第１工程で取得した前記文字列を検索する第２工程と、前記記憶部に記憶されている前記プログラム中から、前記第２工程で検索した前記文字列を含む行の後の行の文字列を取得する第３工程と、前記表示部に表示された作成中の前記プログラムにおいて、前記第３工程で取得した前記文字列を前記カーソルの配置された行に挿入する第４工程と、を備えることを特徴とする。
【００１０】
本願発明者が動作機械の設置現場でのプログラム作成を分析したところ、プログラムの簡単な修正や一部追加では、既存のプログラム中に含まれる命令文等を用いることが殆どであることが判明した。このため、プログラム作成の支援においては、それまでの入力履歴をデータベース化しておく必要はなく、記憶部に記憶されている既存のプログラムを利用することが効率的である。
【００１１】
この点、上記手段によれば、第１工程では、表示部に表示された作成中のプログラムにおいて、カーソルが配置された行の前の行の文字列が取得される。第２工程では、記憶部に記憶されているプログラム中から、第１工程で取得した文字列が検索される。第３工程では、記憶部に記憶されているプログラム中から、第２工程で検索した文字列を含む行の後の行の文字列が取得される。すなわち、記憶されているプログラム中から、作成中のプログラムにおいてカーソルの配置された行の前の行の文字列が検索され、検索された文字列を含む行の後の行の文字列が入力候補として取得される。そして、第４工程では、表示部に表示された作成中のプログラムにおいて、第３工程で取得した文字列がカーソルの配置された行に挿入される。したがって、既存のプログラムを利用して、作成中のプログラムに入力候補を適切に挿入することができる。その結果、大きな記憶容量を必要とせず、操作者による操作器を用いたプログラム作成の効率を向上させることができる。
【００１２】
第２の手段では、前記第１工程において、前記文字列は、前記カーソルが配置された行の前の行中に含まれる命令文である。
【００１３】
プログラムで使用される命令文は、プログラムの言語によって予め決まっている。
【００１４】
この点、上記手段によれば、第１工程において、カーソルが配置された行の前の行中に含まれる命令文が取得される。そして、記憶部に記憶されているプログラム中から、第２工程においてこの命令文が検索され、第３工程においてこの命令文の後の行の文字列が取得される。したがって、共通の命令文を手掛かりにして、入力候補を容易に取得することができる。
【００１５】
第３の手段では、前記第１工程は、前記表示部に表示された作成中の前記プログラムにおいて、操作者により前記操作部が操作されて１行の入力が完了された場合に実行される。
【００１６】
上記手段によれば、第１工程は、表示部に表示された作成中のプログラムにおいて、操作者により操作部が操作されて１行の入力が完了された場合に実行される。このため、操作者による１行の入力が完了してカーソルが後の行に移動し、カーソルの配置された行の前の行の文字列が確定したと同時に、プログラム作成の支援を速やかに開始することができる。
【００１７】
第４の手段では、前記第３工程は、前記記憶部に記憶されている前記プログラム中から、前記第２工程で検索した前記文字列を含む行よりも後の所定行の文字列を取得する工程であり、前記第４工程は、前記第３工程で取得した前記所定行の文字列のうち、前記操作者により選択された範囲の文字列を前記カーソルの配置された行に挿入する工程である。
【００１８】
上記手段によれば、第３工程において、記憶部に記憶されているプログラム中から、第２工程で検索した文字列よりも後の所定行の文字列が取得される。そして、第４工程において、第３工程で取得した所定行の文字列のうち、操作者により選択された範囲の文字列がカーソルの配置された行に挿入される。したがって、カーソルの配置された行に挿入する文字列の範囲を、操作者が適宜選択することができる。
【００１９】
第５の手段では、前記第３工程は、前記記憶部に記憶されている前記プログラム中から、前記第２工程で検索した前記文字列を含む行の後の行の文字列のうち、前記操作者により選択された種類の文字列を取得する工程である。
【００２０】
上記手段によれば、第３工程において、記憶部に記憶されているプログラム中から、第２工程で検索した文字列を含む行の後の行の文字列のうち、操作者により選択された種類の文字列が取得される。そして、第４工程では、表示部に表示された作成中のプログラムにおいて、第３工程で取得した文字列がカーソルの配置された行に挿入される。したがって、カーソルの配置された行に挿入する文字列の種類を、操作者が適宜選択することができる。例えば、挿入する文字列の種類として、動作命令系の文字列か、非動作命令系の文字列かを選択することができる。
【００２１】
第６の手段では、前記第２工程は、前記記憶部に記憶されているプログラム中から、前記第１工程で取得した前記文字列を複数検索する工程であり、前記第３工程は、前記記憶部に記憶されている前記プログラム中から、前記第２工程で複数検索した前記文字列を含む行の後の行の文字列をそれぞれ取得する工程であり、前記第４工程は、前記第３工程で取得した前記文字列のうち、前記操作者により選択された文字列を前記カーソルの配置された行に挿入する工程である。
【００２２】
上記手段によれば、第２工程において、記憶部に記憶されているプログラム中から、第１工程で取得した文字列が複数検索される。第３工程では、記憶部に記憶されているプログラム中から、第２工程で複数検索した文字列を含む行の後の行の文字列がそれぞれ取得される。そして、第４工程において、第３工程で取得した文字列のうち、操作者により選択された文字列がカーソルの配置された行に挿入される。したがって、複数の入力候補の中から、カーソルの配置された行に挿入する文字列を、操作者が適宜選択することができる。
【００２３】
第７の手段では、前記第２工程は、前記記憶部に記憶されているプログラムのうち、前記操作者により選択されたプログラム中から、前記第１工程で取得した前記文字列を検索する工程であり、前記第３工程は、前記記憶部に記憶されている前記プログラムのうち、前記選択されたプログラム中から、前記第２工程で検索した前記文字列を含む行の後の行の文字列を取得する工程である。
【００２４】
上記手段によれば、第２工程において、記憶部に記憶されているプログラムのうち、操作者により選択されたプログラム中から、第１工程で取得した文字列が検索される。そして、第３工程において、記憶部に記憶されているプログラムのうち、選択されたプログラム中から、第２工程で検索した文字列を含む行の後の行の文字列が取得される。このため、文字列の取得に用いるプログラムを、操作者が適宜選択することができる。したがって、文字列の取得に適さないプログラムを除外して、より適切な入力候補を取得することができる。
【図面の簡単な説明】
【００２５】
【図１】ティーチングペンダントの正面図。
【図２】ティーチングペンダントの電気的構成を示すブロック図。
【図３】プログラム作成支援方法の処理手順を示すフローチャート。
【図４】記憶されているプログラムを示す図。
【図５】プログラムリストを示す図。
【図６】プログラムの編集画面を示す図。
【図７】挿入候補を示す図。
【図８】選択された挿入候補の後行を示す図。
【図９】文字列の挿入された編集中のプログラムを示す図。
【発明を実施するための形態】
【００２６】
以下、一実施形態について図面を参照しつつ説明する。本実施形態では、ロボットのティーチングペンダントにおけるプログラム作成の支援機能として具体化している。
【００２７】
図１は、ティーチングペンダント１０の正面図である。同図に示すように、ティーチングペンダント１０（操作器）は、直方体状の本体１１を備えており、本体１１の正面中央付近には液晶表示器１４（表示部）が設けられている。液晶表示器１４は、その表示面に操作者が触れることにより操作可能なタッチパネル１５を備えている。操作者がタッチパネル１５（操作部）を操作することにより、文字等の入力が行われる。
【００２８】
本体１１の左上隅部には、モード切替スイッチ２１が設けられている。モード切替スイッチ２１は、手動モードと自動モードとティーチチェックモードとの３つのモードにおいて、操作者がいずれか１つのモードに切替可能に構成されている。手動モードはロボットを手動で動作させるモードであり、自動モードはロボットを自動で動作させるモードであり、ティーチチェックモードはロボットにティーチング等を行うモードである。
【００２９】
本体１１の右上隅部には、回転させることによりメニュー選択や数値の増減を行うジョグダイヤル２３が設けられている。表示器１４の左側には、ロボットを手動操作する際などに使用するカーソルキー２４が設けられている。表示器１４の下側には、各種機能を実行するファンクションキーＦ１〜Ｆ６と、シフトキーＳＨＩＦＴが設けられている。そして、シフトキーＳＨＩＦＴを押した状態でファンクションキーＦ１〜Ｆ６を押すと、ファンクションキーＦ７〜Ｆ１２の機能が実行される。ファンクションキーには、プログラム作成の支援機能が含まれている。その他、表示器１４の周囲には、各種キーが設けられている。ティーチングペンダント１０は、操作者により手に持たれた状態で操作される。
【００３０】
図２は、ティーチングペンダント１０の電気的構成を示すブロック図である。同図に示すように、ティーチングペンダント１０は制御部３０を備えている。制御部３０は、ＣＰＵ、ＲＡＭ及びＲＯＭを含むマイクロコンピュータから構成されている。制御部３０には、上記の表示器１４、モード切替スイッチ２１、ジョグダイヤル２３、カーソルキー２４、及び通信インタフェース部３２が接続されている。
【００３１】
通信インタフェース部３２は、ロボットコントローラ６０に接続されており、ロボットコントローラ６０はロボット７０（動作機械）に接続されている。ロボットコントローラ６０（記憶部）は、ティーチングペンダント１０から手動動作指令を入力すると、ロボット７０が手動で動作するように制御する。一方、ロボットコントローラ６０は、ティーチングペンダント１０から自動動作指令を入力すると、予め記憶している自動プログラムを起動することでロボット７０が自動で動作するように制御する。
【００３２】
次に、図３を参照して、プログラム作成支援方法の処理手順について説明する。なお、この一連の処理は、ティーチングペンダント１０の制御部３０によって実行される。
【００３３】
まず、プログラムの編集中であるか否か判定する（Ｓ１１）。具体的には、ティーチングペンダント１０の上記液晶表示器１４の画面が、プログラムの編集画面に切り替えられているか否か判定する。この判定において、プログラムの編集中でないと判定した場合は（Ｓ１１：ＮＯ）、この一連の処理を一旦終了する（ＥＮＤ）。
【００３４】
一方、上記判定において、プログラムの編集中であると判定した場合は（Ｓ１１：ＹＥＳ）、プログラム作成の支援機能が有効であるか否か判定する（Ｓ１２）。具体的には、上記ファンクションキーの操作により、プログラム作成の支援機能が実行されているか否か判定する。この判定において、プログラム作成の支援機能が有効でないと判定した場合は（Ｓ１２：ＮＯ）、この一連の処理を一旦終了する（ＥＮＤ）。
【００３５】
一方、上記判定において、プログラム作成の支援機能が有効であると判定した場合は（Ｓ１２：ＹＥＳ）、ロボット７０の動作モードが手動モードであるか否か判定する（Ｓ１３）。具体的には、上記モード切替スイッチ２１が、手動モードに切り替えられているか否か判定する。この判定において、ロボット７０の動作モードが手動モードでないと判定した場合は（Ｓ１３：ＮＯ）、上記Ｓ１１の処理から再度実行する。
【００３６】
一方、上記判定において、ロボット７０の動作モードが手動モードであると判定した場合は（Ｓ１３：ＹＥＳ）、プログラム作成の支援開始条件が成立したか否か判定する（Ｓ１４）。具体的には、操作者による上記タッチパネル１５の操作に基づき、プログラムの１行の入力が完了されたか否か、詳しくはエンターが入力されてカーソルが次行に移動したか否か判定される。この判定において、プログラム作成の支援開始条件が成立していないと判定した場合は（Ｓ１４：ＮＯ）、上記Ｓ１１の処理から再度実行する。
【００３７】
一方、上記判定において、プログラム作成の支援開始条件が成立したと判定した場合は（Ｓ１４：ＹＥＳ）、既存のプログラムリストを表示する際の並び順序を設定する（Ｓ１５）。具体的には、プログラムの並び順序を５０音順に設定したり、作成年月日順に設定したりする。続いて、入力候補として取得する文字列の種類を設定する（Ｓ１６）。具体的には、入力候補として取得する文字列の種類として、ロボット７０の動作命令文及び非動作命令文のいずれか一方を、タッチパネル１５等の操作により操作者に選択させる。そして、文字列の取得に使用する有効プログラムのリストを作成する（Ｓ１７）。具体的には、ロボットコントローラ６０に記憶された既存のプログラムのうち、現在使用が許可されているプログラム（操作者により選択されたプログラム）のリストを作成する。このとき、Ｓ１５で設定した並び順序でプログラムを表示する。なお、ここで文字列の取得におけるプログラム使用の許可及び禁止を新たに設定することもできる。
【００３８】
続いて、カーソルが配置された行の前の行の文字列を取得する（Ｓ１８）。具体的には、現在カーソルが配置されている行の前の行において、行番号を除く全ての文字列を取得する。この取得した文字列に基づいて、検索を行う文字列を設定する（Ｓ１９）。具体的には、取得した文字列の中から命令文を抽出して、検索を行う文字列として設定する。なお、命令文の文字列は、プログラムの言語によって予め決まっている。この設定された検索文字列を、コントローラ６０に記憶されているプログラム中から検索する（Ｓ２０）。具体手には、Ｓ１７で作成した有効プログラムリストに含まれるプログラム中から、Ｓ１９で抽出した命令文を検索する。ここで、プログラム中に検索文字列が複数含まれる場合には、検索結果として複数の検索文字列を取得する。
【００３９】
続いて、検索した文字列を含む行の後の行の文字列を取得する（Ｓ２１）。具体的には、検索した文字列を含む行の後の行において、行番号を除く全ての文字列を取得する。このとき、Ｓ１６で入力候補として取得する種類に設定した文字列、詳しくは動作命令文及び非動作命令文のいずれか一方を取得し、他方は取得する候補から除外する。検索した文字列を含む行が複数存在する場合には、それぞれの後の行の文字列を取得する。そして、取得した文字列が複数存在する場合には、その中からプログラムに挿入する候補を選択する（Ｓ２２）。具体的には、プログラムに挿入する候補として、取得した複数の文字列のいずれかを、タッチパネル１５等の操作により操作者に選択させる。なお、検索文字列にパラメータ等の文字列を付加して、取得した複数の文字列に対して挿入候補の絞り込みを行ってもよい。そして、選択した挿入候補の更に後の行を表示する（Ｓ２３）。具体的には、選択した挿入候補を含む行（検索した文字列を含む行の後の行）の次行からそのプログラムのＥＮＤまでの行の文字列（所定行の文字列）を、プログラム中から取得して表示器１４に表示させる。
【００４０】
続いて、表示器１４に表示させた文字列から、プログラムに挿入する範囲が操作者により選択されたか否か判定する（Ｓ２４）。具体的には、操作者がタッチパネル１５等の操作により、プログラムに挿入する範囲として、「１行」、「区切りまでの一まとまり」、及び「全て」のいずれかを選択したか、あるいは「挿入しない」を選択したか判定する。この判定において、プログラムに挿入する範囲が操作者により選択されたと判定した場合は（Ｓ２４：ＹＥＳ）、編集中のプログラムにおいて、選択された範囲の文字列をカーソルの配置された行に挿入する（Ｓ２５）。そして、この一連の処理を一旦終了する（ＥＮＤ）。
【００４１】
一方、上記判定において、プログラムに挿入する範囲が操作者により選択されなかったと判定した場合は（Ｓ２４：ＮＯ）、再検索を行うか否か判定する（Ｓ２６）。具体的には、Ｓ２４において操作者により「挿入しない」が選択された場合には、検索条件を変更して再検索を行うか否かを、タッチパネル１５等の操作により操作者に選択させる。再検索を行う場合は新たな検索条件を、タッチパネル１５等の操作により操作者に設定させる。この判定において、検索条件を変更して再検索を行うと判定した場合は（Ｓ２６：ＹＥＳ）、Ｓ１９の処理から再度実行する。Ｓ１９では、新たに設定された検索条件に基づいて、検索文字列を設定する。そして、Ｓ２０以降の処理を順次実行する。
【００４２】
一方、上記判定において、再検索を行わないと判定した場合は（Ｓ２６：ＮＯ）、この一連の処理を一旦終了する（ＥＮＤ）。そして、Ｓ１１の処理から再度実行し、プログラム作成の支援開始条件が成立したと判定した場合には（Ｓ１４：ＹＥＳ）、プログラム作成の支援（Ｓ１５〜Ｓ２６）を再度実行する。
【００４３】
なお、この一連の処理において、Ｓ１８，Ｓ１９の処理が第１工程に相当し、Ｓ２０の処理が第２工程に相当し、Ｓ２１〜Ｓ２３の処理が第３工程に相当し、Ｓ２４，Ｓ２５の処理が第４工程に相当する。
【００４４】
次に、図４〜９を参照して、図３のプログラム作成の支援方法の実行態様について説明する。
【００４５】
図４は、ロボットコントローラ６０に記憶されているプログラムを示す図である。同図に示すように、コントローラ６０には、プログラムＰＲＯ１及びプログラムＰＲＯ２が記憶されている。プログラムＰＲＯ１は、ロボット７０の動作を開始するにあたって設定を初期化するプログラムである。プログラムＰＲＯ２は、ロボット７０を動作させるプログラムである。ここで、プログラムＰＲＯ１，ＰＲＯ２には、「ＴＡＫＥＡＲＭ」という動作命令文が含まれている。また、プログラムＰＲＯ１の０００４行の「ＲＥＳＥＴ」、及びプログラムＰＲＯ２の０００４行の「ＳＥＴ」も、動作命令文に相当する。
【００４６】
図５は、有効プログラムのリスト作成に際して、表示器１４に表示されるプログラムリストを示す図である。使用欄４１は、現在使用が許可されているプログラム（有効プログラム）か否かを示しており、プログラムＰＲＯ１，ＰＲＯ２は共に使用が許可されている。プログラム使用の許可及び禁止は、操作者が使用設定ボタン４２を操作することにより変更することができる。そして、操作者が、新規プログラムボタン４３又は編集ボタン４４を操作すると、図６のプログラム編集画面に移行する。
【００４７】
図６は、プログラムＰＲＯ３の編集画面を示す図である。ここでは、操作者がプログラムＰＲＯ３を新規に作成している。なお、プログラムＰＲＯ３の編集では、図示しない入力キーがタッチパネル１５に表示され、操作者がその入力キーを操作することにより文字等が入力される。
【００４８】
操作者が０００３行の入力を完了、すなわち０００３行において「ＴＡＫＥＡＲＭ」と入力してエンターを入力すると、カーソルＣが０００４行に移動する。これにより、プログラム作成の支援開始条件が成立したと判定される。そして、カーソルＣが配置された０００４行の前の０００３行の文字列として、命令文の「ＴＡＫＥＡＲＭ」が抽出（取得）される。
【００４９】
続いて、有効プログラムリストに含まれるプログラムＰＲＯ１，ＰＲＯ２中から、上記抽出した「ＴＡＫＥＡＲＭ」が検索される。ここでは、プログラムＰＲＯ１，ＰＲＯ２中にそれぞれ含まれる「ＴＡＫＥＡＲＭ」が、検索結果として取得される。そして、プログラムＰＲＯ１，ＰＲＯ２において、検索した「ＴＡＫＥＡＲＭ」を含む０００３行の後の０００４行の文字列、すなわち「ＲＥＳＥＴ  ＩＯ［０］」及び「ＳＥＴ  ＩＯ［１］」がそれぞれ取得される（図４参照）。ここでは、入力候補として取得する文字列の種類に動作命令文が設定されており、動作命令文である「ＲＥＳＥＴ」及び「ＳＥＴ」を含む０００４行において、行番号「０００４」を除く全ての文字列が取得される。
【００５０】
図７は、挿入候補としての「ＲＥＳＥＴ  ＩＯ［０］」及び「ＳＥＴ  ＩＯ［１］」を示す図である。表示器１４に、複数の挿入候補が表示され、操作者によりプログラムＰＲＯ３に挿入する候補が選択される。そして、操作者によりカーソルＣが移動させられ、挿入候補として「ＳＥＴ  ＩＯ［１］」が選択される。
【００５１】
図８は、選択された「ＳＥＴ  ＩＯ［１］」の更に後の行を示す図である。プログラムＰＲＯ２において、「ＳＥＴ  ＩＯ［１］」を含む０００４行の更に後の０００５行及び０００６行には、「ＭＯＶＥ  Ｐ，Ｐ０」及び「ＤＥＬＡＹ  Ｉ［１］」の文字列がそれぞれ含まれている（図４参照）。このため、「ＳＥＴ  ＩＯ［１］」が操作者により選択されると、０００５行の「ＭＯＶＥ  Ｐ，Ｐ０」及び０００６行の「ＤＥＬＡＹ  Ｉ［１］」が表示器１４に表示される。そして、これらの文字列から、プログラムＰＲＯ３に挿入する範囲が操作者により選択される。ここでは、挿入する範囲として、「全て」が選択される。
【００５２】
図９は、文字列の挿入された編集中のプログラムＰＲＯ３を示す図である。同図に示すように、選択された範囲の文字列、すなわち「ＭＯＶＥ  Ｐ，Ｐ０」及び「ＤＥＬＡＹ  Ｉ［１］」が、編集中のプログラムＰＲＯ３においてカーソルＣの配置された０００４行から挿入される。
【００５３】
以上詳述した本実施形態は以下の利点を有する。
【００５４】
・本願発明者がロボット７０の設置現場でのプログラム作成を分析したところ、プログラムの簡単な修正や一部追加では、既存のプログラム中に含まれる命令文等を用いることが殆どであることが判明した。このため、プログラム作成の支援においては、それまでの入力履歴をデータベース化しておく必要はなく、ロボットコントローラ６０に記憶されている既存のプログラムを利用することが効率的である。
【００５５】
この点、本実施形態によれば、第１工程（Ｓ１８，Ｓ１９）では、表示器１４に表示された作成中のプログラムＰＲＯ３において、カーソルＣが配置された０００４行の前の０００３行の文字列「ＴＥＫＥＡＲＭ」が取得される。第２工程（Ｓ２０）では、コントローラ６０に記憶されているプログラムＰＲＯ１，ＰＲＯ２中から、第１工程で取得した文字列が検索される。第３工程（Ｓ２１〜Ｓ２３）では、コントローラ６０に記憶されているプログラムＰＲＯ１，ＰＲＯ２中から、第２工程で検索した文字列を含む０００３行の後の０００４行の文字列「ＲＥＳＥＴ  ＩＯ［０］」及び「ＳＥＴ  ＩＯ［１］」がそれぞれ取得される。すなわち、記憶されているプログラムＰＲＯ１，ＰＲＯ２中から、作成中のプログラムＰＲＯ３においてカーソルＣの配置された０００４行の前の０００３行の文字列が検索され、検索された文字列を含む０００３行の後の０００４行の文字列が入力候補として取得される。そして、第４工程（Ｓ２４，Ｓ２５）では、表示器１４に表示された作成中のプログラムＰＲＯ３において、第３工程で取得した文字列がカーソルＣの配置された０００４行から挿入される。したがって、既存のプログラムＰＲＯ１，ＰＲＯ２を利用して、作成中のプログラムＰＲＯ３に入力候補を適切に挿入することができる。その結果、大きな記憶容量を必要とせず、操作者によるティーチングペンダント１０を用いたプログラム作成の効率を向上させることができる。
【００５６】
・プログラムＰＲＯ３で使用される命令文は、プログラムの言語によって予め決まっている。この点、第１工程において、カーソルＣが配置された０００４行の前の０００３行中に含まれる命令文「ＴＡＫＥＡＲＭ」が取得される。そして、コントローラ６０に記憶されているプログラムＰＲＯ１，ＰＲＯ２中から、第２工程においてこの命令文が検索され、第３工程においてこの命令文の後の０００４行の文字列が取得される。したがって、共通の命令文を手掛かりにして、入力候補を容易に取得することができる。
【００５７】
・第１工程は、表示器１４に表示された作成中のプログラムＰＲＯ３において、操作者によりタッチパネル１５が操作されて１行の入力が完了された場合に実行される。このため、操作者による１行（０００３行）の入力が完了してカーソルＣが後の０００４行に移動し、カーソルＣの配置された０００４行の前の０００３行の文字列が確定したと同時に、プログラム作成の支援を速やかに開始することができる。
【００５８】
・第３工程において、コントローラ６０に記憶されているプログラムＰＲＯ１，ＰＲＯ２中から、第２工程で検索した文字列よりも後の所定行（ＥＮＤまでの行）の文字列が取得される。そして、第４工程において、第３工程で取得した所定行の文字列のうち、操作者により選択された範囲（「１行」や、「区切りまでの一まとまり」、「全て」等）の文字列がカーソルＣの配置された０００４行に挿入される。したがって、カーソルＣの配置された０００４行に挿入する文字列の範囲を、操作者が適宜選択することができる。
【００５９】
・第３工程において、コントローラ６０に記憶されているプログラムＰＲＯ１，ＰＲＯ２中から、第２工程で検索した文字列を含む０００３行の後の０００４行の文字列のうち、操作者により選択された種類の文字列（動作命令文）が取得される。そして、第４工程では、表示器１４に表示された作成中のプログラムＰＲＯ３において、第３工程で取得した文字列がカーソルＣの配置された行に挿入される。したがって、カーソルＣの配置された０００４行に挿入する文字列の種類を、操作者が適宜選択することができる。
【００６０】
・第２工程において、コントローラ６０に記憶されているプログラムＰＲＯ１，ＰＲＯ２中から、第１工程で取得した文字列が複数検索される。第３工程では、コントローラ６０に記憶されているプログラムＰＲＯ１，ＰＲＯ２中から、第２工程で複数検索した文字列を含む０００３行の後の０００４行の文字列がそれぞれ取得される。そして、第４工程において、第３工程で取得した文字列のうち、操作者により選択された文字列がカーソルＣの配置された０００４行に挿入される。したがって、複数の入力候補の中から、カーソルＣの配置された０００４行に挿入する文字列を、操作者が適宜選択することができる。
【００６１】
・第２工程において、コントローラ６０に記憶されているプログラムのうち、操作者により選択された（使用が許可された）プログラムＰＲＯ１，ＰＲＯ２中から、第１工程で取得した文字列が検索される。そして、第３工程において、コントローラ６０に記憶されているプログラムのうち、有効なプログラムＰＲＯ１，ＰＲＯ２中から、第２工程で検索した文字列を含む行の後の行の文字列が取得される。このため、文字列の取得に用いるプログラムを、操作者が適宜選択することができる。したがって、文字列の取得に適さないプログラムを除外して、より適切な入力候補を取得することができる。
【００６２】
上記実施形態を、以下のように変形して実施することもできる。
【００６３】
・コントローラ６０に記憶されているプログラムのうち、操作者により選択されていない（使用が禁止された）プログラムを含むプログラム中から、第１工程で取得した文字列を検索することもできる。
【００６４】
・第２工程において、コントローラ６０に記憶されているプログラムＰＲＯ１，ＰＲＯ２中から、第１工程で取得した文字列として最適な候補を１つのみ検索するようにもできる。この場合には、Ｓ２２の処理を省略することができる。
【００６５】
・図３のＳ１６の処理を省略して、第３工程において、コントローラ６０に記憶されているプログラムＰＲＯ１，ＰＲＯ２中から、文字列をその種類にかかわらず取得することもできる。
【００６６】
・図３のＳ２４の処理を省略して、第４工程において、第３工程で取得した所定行の文字列のうち、常に一定の範囲（「１行」や、「区切りまでの一まとまり」、「全て」等）の文字列をカーソルＣの配置された０００４行から挿入するようにもできる。
【００６７】
・図３のＳ１４において、ファンクションキーの操作によりプログラム作成の支援機能が実行された時に、プログラム作成の支援開始条件が成立したと判定することもできる。なお、この場合には、図３のＳ１２の処理を省略すればよい。
【００６８】
・プログラムを記憶する記憶部が、ティーチングペンダント１０に含まれている構成を採用することもできる。
【００６９】
・動作機械として、ロボット７０以外の工作機械等を採用することもできる。また、動作機械の操作器として、ティーチングペンダント１０以外のリモコン等を採用することもできる。
【符号の説明】
【００７０】
１０…ティーチングペンダント（操作器）、１４…表示器（表示部）、１５…タッチパネル（操作部）、６０…ロボットコントローラ（記憶部）、７０…ロボット。
【図１】
0005867229.tif 000002
【図２】
0005867229.tif 000003
【図３】
0005867229.tif 000004
【図４】
0005867229.tif 000005
【図５】
0005867229.tif 000006
【図６】
0005867229.tif 000007
【図７】
0005867229.tif 000008
【図８】
0005867229.tif 000009
【図９】
0005867229.tif 000010