(57)【特許請求の範囲】
【請求項１】
制御プログラムの実行によって出力される位置の指令値が予め定められた周期で入力されることによって動作する制御対象装置における特定部位の位置の変化を画面に表示する表示装置であって、
前記制御プログラムの実行結果である一連の前記位置の指令値を取得する取得手段と、
前記取得された前記位置の指令値に対応する、前記周期毎または複数の指定された前記周期における一連の前記特定部位の位置を求める位置演算手段と、
前記一連の特定部位の位置の各々を時間の経過順に通る軌跡を示した軌跡データを作成する軌跡データ作成手段と、
前記軌跡の空間的形態を画像として前記画面に表示するための画像データを、前記軌跡データを用いて作成する画像データ作成手段と、
前記画像データを用いて前記画像を前記画面に表示させる表示制御手段とを備え、
前記軌跡データは、前記一連の特定部位の位置に沿った形態の３次元オブジェクトを示すデータである、表示装置。
【請求項２】
制御プログラムの実行によって出力される位置の指令値が予め定められた周期で入力されることによって動作する制御対象装置における特定部位の位置の変化を画面に表示する表示装置であって、
前記制御プログラムの実行結果である一連の前記位置の指令値を取得する取得手段と、
前記取得された前記位置の指令値に対応する、前記周期毎または複数の指定された前記周期における一連の前記特定部位の位置を求める位置演算手段と、
前記一連の特定部位の位置の各々を時間の経過順に通る軌跡を示した軌跡データを作成する軌跡データ作成手段と、
前記軌跡の空間的形態を画像として前記画面に表示するための画像データを、前記軌跡データを用いて作成する画像データ作成手段と、
前記画像データを用いて前記画像を前記画面に表示させる表示制御手段とを備え、
前記軌跡データは、前記一連の特定部位の位置の各々を前記時間の経過順に直線で結んだ折れ線における各線分に垂直な平面、または前記一連の特定部位の位置の各々を前記時間の経過順に通る滑らかな曲線の接線に垂直な平面における前記直線または前記曲線を囲む閉曲線を当該直線または当該曲線に沿って並進させることにより形成される３次元オブジェクトを示すデータである、表示装置。
【請求項３】
前記画像データ作成手段は、前記画像データとして、前記一連の位置の指令値に従って動作する電子的に構築された３次元モデルである仮想機構および前記軌跡の空間的形態を動画像として前記画面に表示するためのデータを作成し、
前記表示制御手段は、前記動画像を前記画面に表示させる、請求項１または２に記載の表示装置。
【請求項４】
前記軌跡データは、時刻情報が対応付けられており、
前記表示装置は、
第１の時刻と第２の時刻との指定を受け付ける受付手段をさらに備え、
前記表示制御手段は、前記時刻情報を用いて、前記軌跡のうち前記第１の時刻から前記第２の時刻の間の軌跡データに対応する部分の空間的形態を前記画面に表示させる、請求項１または２に記載の表示装置。
【請求項５】
制御プログラムの実行によって出力される位置の指令値が予め定められた周期で入力されることによって動作する制御対象装置における特定部位の位置の変化を表示装置の画面に表示させる表示制御方法であって、
前記制御プログラムの実行結果である一連の前記位置の指令値を取得するステップと、
前記取得された前記位置の指令値に対応する、前記周期毎または複数の指定された前記周期における一連の前記特定部位の位置を求めるステップと、
前記一連の特定部位の位置の各々を時間の経過順に通る軌跡を示した軌跡データを作成
するステップと、
前記軌跡の空間的形態を画像として前記画面に表示するための画像データを、前記軌跡データを用いて作成するステップと、
前記画像データを用いて前記画像を前記画面に表示するステップとを備え、
前記軌跡データは、前記一連の特定部位の位置に沿った形態の３次元オブジェクトを示すデータである、表示制御方法。
【請求項６】
制御プログラムの実行によって出力される位置の指令値が予め定められた周期で入力されることによって動作する制御対象装置における特定部位の位置の変化を表示装置の画面に表示させる表示制御方法であって、
前記制御プログラムの実行結果である一連の前記位置の指令値を取得するステップと、
前記取得された前記位置の指令値に対応する、前記周期毎または複数の指定された前記周期における一連の前記特定部位の位置を求めるステップと、
前記一連の特定部位の位置の各々を時間の経過順に通る軌跡を示した軌跡データを作成
するステップと、
前記軌跡の空間的形態を画像として前記画面に表示するための画像データを、前記軌跡データを用いて作成するステップと、
前記画像データを用いて前記画像を前記画面に表示するステップとを備え、
前記軌跡データは、前記一連の特定部位の位置の各々を前記時間の経過順に直線で結んだ折れ線における各線分に垂直な平面、または前記一連の特定部位の位置の各々を前記時間の経過順に通る滑らかな曲線の接線に垂直な平面における前記直線または前記曲線を囲む閉曲線を当該直線または当該曲線に沿って並進させることにより形成される３次元オブジェクトを示すデータである、表示制御方法。
【請求項７】
制御プログラムの実行によって出力される位置の指令値が予め定められた周期で入力されることによって動作する制御対象装置における特定部位の位置の変化を表示装置の画面に表示させるプログラムであって、
前記制御プログラムの実行結果である一連の前記位置の指令値を取得するステップと、
前記取得された前記位置の指令値に対応する、前記周期毎または複数の指定された前記周期における一連の前記特定部位の位置を求めるステップと、
前記一連の特定部位の位置の各々を時間の経過順に通る軌跡を示した軌跡データを作成するステップと、
前記軌跡の空間的形態を画像として前記画面に表示するための画像データを、前記軌跡データを用いて作成するステップと、
前記画像データを用いて前記画像を前記画面に表示するステップとを、前記表示装置に実行させ、
前記軌跡データは、前記一連の特定部位の位置に沿った形態の３次元オブジェクトを示すデータである、プログラム。
【請求項８】
制御プログラムの実行によって出力される位置の指令値が予め定められた周期で入力されることによって動作する制御対象装置における特定部位の位置の変化を表示装置の画面に表示させるプログラムであって、
前記制御プログラムの実行結果である一連の前記位置の指令値を取得するステップと、
前記取得された前記位置の指令値に対応する、前記周期毎または複数の指定された前記周期における一連の前記特定部位の位置を求めるステップと、
前記一連の特定部位の位置の各々を時間の経過順に通る軌跡を示した軌跡データを作成するステップと、
前記軌跡の空間的形態を画像として前記画面に表示するための画像データを、前記軌跡データを用いて作成するステップと、
前記画像データを用いて前記画像を前記画面に表示するステップとを、前記表示装置に実行させ、
前記軌跡データは、前記一連の特定部位の位置の各々を前記時間の経過順に直線で結んだ折れ線における各線分に垂直な平面、または前記一連の特定部位の位置の各々を前記時間の経過順に通る滑らかな曲線の接線に垂直な平面における前記直線または前記曲線を囲む閉曲線を当該直線または当該曲線に沿って並進させることにより形成される３次元オブジェクトを示すデータである、プログラム。
【請求項９】
制御プログラムの実行によって出力される位置の指令値が予め定められた周期で入力されることによって動作する制御対象装置における特定部位の位置の変化を表示装置の画面に表示させるプログラムを格納したコンピュータ読み取り可能な記録媒体であって、
前記プログラムは、
前記制御プログラムの実行結果である一連の前記位置の指令値を取得するステップと、
前記取得された前記位置の指令値に対応する、前記周期毎または複数の指定された前記周期における一連の前記特定部位の位置を求めるステップと、
前記一連の特定部位の位置の各々を時間の経過順に通る軌跡を示した軌跡データを作成するステップと、
前記軌跡の空間的形態を画像として前記画面に表示するための画像データを、前記軌跡データを用いて作成するステップと、
前記画像データを用いて前記画像を前記画面に表示するステップとを、前記表示装置に実行させ、
前記軌跡データは、前記一連の特定部位の位置に沿った形態の３次元オブジェクトを示すデータである、コンピュータ読み取り可能な記録媒体。
【請求項１０】
制御プログラムの実行によって出力される位置の指令値が予め定められた周期で入力されることによって動作する制御対象装置における特定部位の位置の変化を表示装置の画面に表示させるプログラムを格納したコンピュータ読み取り可能な記録媒体であって、
前記プログラムは、
前記制御プログラムの実行結果である一連の前記位置の指令値を取得するステップと、
前記取得された前記位置の指令値に対応する、前記周期毎または複数の指定された前記周期における一連の前記特定部位の位置を求めるステップと、
前記一連の特定部位の位置の各々を時間の経過順に通る軌跡を示した軌跡データを作成するステップと、
前記軌跡の空間的形態を画像として前記画面に表示するための画像データを、前記軌跡データを用いて作成するステップと、
前記画像データを用いて前記画像を前記画面に表示するステップとを、前記表示装置に実行させ、
前記軌跡データは、前記一連の特定部位の位置の各々を前記時間の経過順に直線で結んだ折れ線における各線分に垂直な平面、または前記一連の特定部位の位置の各々を前記時間の経過順に通る滑らかな曲線の接線に垂直な平面における前記直線または前記曲線を囲む閉曲線を当該直線または当該曲線に沿って並進させることにより形成される３次元オブジェクトを示すデータである、コンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御プログラムの実行によって出力される位置の指令値が予め定められた周期で入力されることによって動作する制御対象装置における特定部位の位置の変化を画面に軌跡として表示する表示装置、表示制御方法、プログラム、およびコンピュータ読み取り可能な記録媒体に関する。
【背景技術】
【０００２】
従来、制御対象装置を動作させるための制御プログラムが知られている。
特許文献１には、当該制御プログラムである加工プログラムを用いた方法が開示されている。また、特許文献１には、数値制御装置の理想的な工具経路を表示するとともに、当該理想的な工具経路と実際の工具経路との誤差を拡大して当該実際の工具経路を表示する方法が記載されている。当該方法では、数値制御装置が加工プログラムを読み取り、数値制御装置内蔵の工具経路表示機能により工具経路を表示する。
【０００３】
特許文献２には、上記制御プログラムとして、産業用ロボットの教示に用いるプログラミングペンダント（手持ちして使用する教示装置）が開示されている。当該プログラミングペンダントは、ロボットの目標位置データを移動命令によって記述した作業プログラムを格納している。プログラミングペンダントは、作業プログラムにしたがって動くロボットアームが保持するトーチの先端の軌跡を、グラフィカルに３次元表示する。プログラミングペンダントは、軌跡に重ねてロボットのサーフェースモデルを表示することもできる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平６−１３８９３４号公報
【特許文献２】特開２００７−２４２０５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１の数値制御装置の工具経路表示方法においては、理想的な工具経路をどのようにして求めているかについての具体的な説明がされていない。しかしながら、当該工具経路表示方法は、数値制御装置が加工プログラムを実行するより前に工具経路の表示を行なうため、当該工具経路表示方法では加工プログラムに含まれている命令とパラメータとを分析して理想的な工具経路を求めていると理解するのが妥当である。
【０００６】
特許文献２のプログラミングペンダントは、制御対象装置の特定部位の３次元軌跡を表示する。このプログラミングペンダントで実行される制御プログラムは、ある座標の点から次の座標の点までを直線的に（または円弧状に）動作させるといった動作命令についての単純順次実行型の制御プログラムである。このプログラミングペンダントは、動作命令を単位とした部分軌跡をつなぎ合わせ、当該部分軌跡をつなぎ合わせた軌跡を表示する。
【０００７】
上記特許文献１，２には、制御対象装置の特定部位を予め定められた経路にしたがって動かすための単純順次実行型の制御プログラムの命令とパラメータとを解析して、当該特定部位の経路を求める技術が開示されている。したがって、当該技術では、たとえば動作中に外部からの信号到来や内部状態の変化があった場合に当該信号到来や内部状態の変化に応じて動き方を変えるような状況適応型の制御プログラムによって制御される制御対象装置の特定部位の軌跡を求めることができない。
【０００８】
本発明は、上記の問題点に鑑みなされたものであって、その目的は、制御プログラムが単純順次実行型であるか状況適応型であるかを問わず、プログラム制御される制御対象装置の特定部位の軌跡を表示可能な表示装置、表示制御方法、プログラム、およびコンピュータ読み取り可能な記録媒体を提供することにある。
【課題を解決するための手段】
【０００９】
本発明のある局面に従うと、表示装置は、制御プログラムの実行によって出力される位置の指令値が予め定められた周期で入力されることによって動作する制御対象装置における特定部位の位置の変化を画面に表示する表示装置である。表示装置は、制御プログラムの実行結果である一連の位置の指令値を取得する取得手段と、取得された位置の指令値に対応する、周期毎または複数の指定された周期における一連の特定部位の位置を求める位置演算手段と、一連の特定部位の位置の各々を時間の経過順に通る軌跡を示した軌跡データを作成する軌跡データ作成手段と、軌跡の空間的形態を画像として画面に表示するための画像データを、軌跡データを用いて作成する画像データ作成手段と、画像データを用いて上記画像を画面に表示させる表示制御手段とを備える。
【００１０】
好ましくは、軌跡データは、一連の特定部位の位置の各々を時間の経過順に直線で結んだ折れ線を示すデータである。
【００１１】
好ましくは、軌跡データは、一連の特定部位の位置の各々を時間の経過順に通る滑らかな曲線を示すデータである。
【００１２】
好ましくは、軌跡データは、一連の特定部位の位置の各々を時間の経過順に直線で結んだ折れ線における各線分に垂直な平面、または一連の特定部位の位置の各々を時間の経過順に通る滑らかな曲線の接線に垂直な平面における当該直線または当該曲線を囲む閉曲線を当該直線または当該曲線に沿って並進させることにより形成される３次元オブジェクトを示すデータである。
【００１３】
好ましくは、軌跡データは、一連の特定部位の位置に沿った形態の３次元オブジェクトを示すデータである。
【００１４】
好ましくは、画像データ作成手段は、画像データとして、一連の位置の指令値に従って動作する電子的に構築された３次元モデルである仮想機構および軌跡の空間的形態を動画像として画面に表示するためのデータを作成する。表示制御手段は、動画像を画面に表示させる。
【００１５】
好ましくは、軌跡データは、時刻情報が対応付けられている。表示装置は、第１の時刻と第２の時刻との指定を受け付ける受付手段をさらに備える。表示制御手段は、時刻情報を用いて、軌跡のうち第１の時刻から第２の時刻の間の軌跡データに対応する部分の空間的形態を画面に表示させる。
【００１６】
本発明の他の局面に従うと、表示制御方法は、制御プログラムの実行によって出力される位置の指令値が予め定められた周期で入力されることによって動作する制御対象装置における特定部位の位置の変化を表示装置の画面に表示させる表示制御方法である。ヒョ時制御方法は、制御プログラムの実行結果である一連の位置の指令値を取得するステップと、取得された位置の指令値に対応する、周期毎または複数の指定された周期における一連の特定部位の位置を求めるステップと、一連の特定部位の位置の各々を時間の経過順に通る軌跡を示した軌跡データを作成するステップと、軌跡の空間的形態を画像として画面に表示するための画像データを、軌跡データを用いて作成するステップと、画像データを用いて上記画像を画面に表示するステップとを備える。
【００１７】
本発明のさらに他の局面に従うと、プログラムは、制御プログラムの実行によって出力される位置の指令値が予め定められた周期で入力されることによって動作する制御対象装置における特定部位の位置の変化を表示装置の画面に表示させるプログラムである。プログラムは、制御プログラムの実行結果である一連の位置の指令値を取得するステップと、取得された位置の指令値に対応する、周期毎または複数の指定された周期における一連の特定部位の位置を求めるステップと、一連の特定部位の位置の各々を時間の経過順に通る軌跡を示した軌跡データを作成するステップと、軌跡の空間的形態を画像として画面に表示するための画像データを、軌跡データを用いて作成するステップと、画像データを用いて上記画像を画面に表示するステップとを、表示装置に実行させる。
【００１８】
本発明のさらに他の局面に従うと、コンピュータ読み取り可能媒体は、制御プログラムの実行によって出力される位置の指令値が予め定められた周期で入力されることによって動作する制御対象装置における特定部位の位置の変化を表示装置の画面に表示させるプログラムを格納したコンピュータ読み取り可能な記録媒体である。プログラムは、制御プログラムの実行結果である一連の位置の指令値を取得するステップと、取得された位置の指令値に対応する、周期毎または複数の指定された周期における一連の特定部位の位置を求めるステップと、一連の特定部位の位置の各々を時間の経過順に通る軌跡を示した軌跡データを作成するステップと、軌跡の空間的形態を画像として画面に表示するための画像データを、軌跡データを用いて作成するステップと、画像データを用いて画像を画面に表示するステップとを、表示装置に実行させる。
【発明の効果】
【００１９】
制御プログラムが単純順次実行型であるか状況適応型であるかを問わず、プログラム制御される制御対象装置の特定部位の軌跡を表示することができる。
【図面の簡単な説明】
【００２０】
【図１】制御システムの概略構成を示した図である。
【図２】ＰＣのハードウェア構成を表わすブロック図である。
【図３】ＰＬＣサポートプログラムの構成を示した図である。
【図４】軌跡表示プログラム部に含まれる画像データ処理部と、ユーザインターフェースとの機能的構成を示した図である。
【図５】ＰＣにおける軌跡表示の処理を示したフローチャートである。
【図６】ＰＬＣサポートプログラムを実行した際にＰＣで表示されるウィンドウを示した図である。
【図７】仮想機構を選択するためのウィンドウを示した図である。
【図８】仮想機構の一例であるＸＹＺ機構を示した図である。
【図９】仮想機構と特定部位の軌跡とが表示された画面を示した図である。
【図１０】仮想機構と特定部位の軌跡とが表示された他の画面を示した図である。
【図１１】軌跡の表示を残したまま仮想機構の表示を消し、座標軸の表示を追加した場合における、対象画像表示領域の表示内容を示した図である。
【図１２】図１１の軌跡に３次元オブジェクトとしての太さ（円形断面の直径）を与えた場合における軌跡を示した図である。
【図１３】軌跡の描写の仕方を説明するために、位置の指令値の座標を３次元空間内にプロットした状態を示した図である。
【図１４】図１３のプロットを時間の経過順に直線で結んだ折れ線による軌跡を示した図である。
【図１５】図１４に示した折れ線を中心軸とする円柱列の３次元オブジェクトによって軌跡を表現した状態を示した図である。
【図１６】図１３のプロットを時間の経過順に通る滑らかな曲線によって軌跡を表示した状態を示した図である。
【図１７】図１６の曲線を中心軸とする断面が一定の直径の円形であるワイヤ状の３次元オブジェクトによって軌跡を表現した状態を示した図である。
【発明を実施するための形態】
【００２１】
以下、図面を参照しつつ、本発明の実施の形態に係る表示装置について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【００２２】
図１は、本実施の形態に係る制御システム１の概略構成を示した図である。図１を参照して、制御システム１は、ＰＣ（Personal Computer）１０と、ＰＬＣ（Programmable Logic Controller）２０と、制御対象装置３０と、サーバ装置４０とを備える。
【００２３】
ＰＣ（表示装置）１０は、インストールされたＰＬＣサポートプログラム１１を格納している。また、ＰＣ１０は、ユーザが作成した制御プログラム１２を格納している。
【００２４】
ＣＤ−ＲＯＭ９９９は、ＰＬＣサポートプログラム１１を格納している。ＰＣ１０にインストールされているＰＬＣサポートプログラム１１は、ＣＤ−ＲＯＭ９９９を用いてインストールされたものである。
【００２５】
ＰＬＣ２０は、制御対象装置３０の動きを制御するためのコントローラとして働く。すなわち、ＰＬＣ２０は、いわゆるモーションコントロール機能を備えている。ＰＬＣ２０は、制御対象装置３０に対する制御内容を規定する制御プログラム２１を記憶している。ＰＬＣ２０は、ＰＣ１０と通信可能に接続されている。ＰＬＣ２０に格納されている制御プログラム２１は、ＰＣ１０から送られてきたものである。具体的には、制御プログラム２１は、ＰＣ１０に記憶されている制御プログラム１２の複製物である。
【００２６】
制御対象装置３０は、サーボモータ、ステッピングモータなどのモータを備える。制御対象装置３０は、当該モータによって駆動する。モータには、モータドライバから駆動電流が供給される。
【００２７】
モータドライバは、制御プログラムを実行するＰＬＣ２０から制御周期毎に位置の指令値を与えられる。モータドライバは、位置の指令値に応じた駆動電流をモータに供給する。モータがサーボモータである場合、当該モータにはエンコーダが備えられている。エンコーダは、モータの回転位置の実測値を検出する。モータドライバは、モータの回転位置の実測値をフィードバック制御に利用する。
【００２８】
ＰＣ１０は、インターネットなどのネットワーク５０を介してサーバ装置４０に接続可能である。ＰＬＣサポートプログラム１１は、サーバ装置４０からＰＣ１０にダウンロードすることもできる。
【００２９】
図２は、ＰＣ１０のハードウェア構成を表わすブロック図である。図２を参照して、ＰＣ１０は、主たる構成要素として、プログラムを実行するＣＰＵ９０１と、データを不揮発的に格納するＲＯＭ（Read Only Memory）９０２と、ＣＰＵ９０１によるプログラムの実行により作成されたデータ、又はキーボード９０５もしくはマウス９０６を介して入力されたデータを揮発的に格納するＲＡＭ９０３と、データを不揮発的に格納するＨＤＤ（Hard Disk Drive）９０４と、ＰＣ１０の使用者による指示の入力を受けるキーボード９０５およびマウス９０６と、モニタ９０７と、ＣＤ−ＲＯＭ駆動装置９０８と、通信ＩＦ９０９とを含む。各構成要素は、相互にデータバスによって接続されている。ＣＤ−ＲＯＭ駆動装置９０８には、ＣＤ−ＲＯＭ９９９が装着される。
【００３０】
ＰＣ１０における処理は、各ハードウェアおよびＣＰＵ９０１により実行されるソフトウェアによって実現される。このようなソフトウェアは、ＨＤＤ９０４に予め記憶されている場合がある。また、ソフトウェアは、ＣＤ−ＲＯＭ９９９その他の記憶媒体に格納されて、プログラムプロダクトとして流通している場合もある。あるいは、ソフトウェアは、いわゆるインターネットに接続されている情報提供事業者によってダウンロード可能なプログラムプロダクトとして提供される場合もある。このようなソフトウェアは、ＣＤ−ＲＯＭ駆動装置９０８その他の読取装置によりその記憶媒体から読み取られて、あるいは、通信ＩＦ９０９を介してダウンロードされた後、ＨＤＤ９０４に一旦格納される。そのソフトウェアは、ＣＰＵ９０１によってＨＤＤ９０４から読み出され、ＲＡＭ９０３に実行可能なプログラムの形式で格納される。ＣＰＵ９０１は、そのプログラムを実行する。
【００３１】
同図に示されるＰＣ１０を構成する各構成要素は、一般的なものである。したがって、本発明の本質的な部分は、ＲＡＭ９０３、ＨＤＤ９０４、ＣＤ−ＲＯＭ９９９その他の記憶媒体に格納されたソフトウェア、あるいはネットワークを介してダウンロード可能なソフトウェアであるともいえる。なお、ＰＣ１０の各ハードウェアの動作は周知であるので、詳細な説明は繰り返さない。
【００３２】
なお、記録媒体としては、ＤＶＤ-ＲＯＭ、ＣＤ−ＲＯＭ、ＦＤ（Flexible Disk）、ハードディスクに限られず、磁気テープ、カセットテープ、光ディスク（ＭＯ（Magnetic Optical Disc）／ＭＤ（Mini Disc）／ＤＶＤ（Digital Versatile Disc））、ＩＣ（Integrated Circuit）カード（メモリカードを含む）、光カード、マスクＲＯＭ、ＥＰＲＯＭ（Electronically Programmable Read-Only Memory）、ＥＥＰＲＯＭ（Electronically Erasable Programmable Read-Only Memory）、フラッシュＲＯＭなどの半導体メモリ等の
固定的にプログラムを担持する媒体でもよい。また、記録媒体は、当該プログラム等をコンピュータが読取可能な一時的でない媒体である。
【００３３】
ここでいうプログラムとは、ＣＰＵにより直接実行可能なプログラムだけでなく、ソースプログラム形式のプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
【００３４】
図３は、ＰＬＣサポートプログラム１１の構成を示した図である。図３を参照して、ユーザインターフェース部１０１と、ＰＬＣインターフェース部１０２と、制御プログラム編集部１０３と、制御プログラムシミュレーション部１０４と、軌跡表示プログラム部１０５とを備える。軌跡表示プログラム部１０５は、ライブラリ１１１と、仮想機構管理部１１２と、画像データ処理部１１３とを含む。ライブラリ１１１は、仮想機構ライブラリ１１１１と、機構要素ライブラリ１１１２とを有する。
【００３５】
ユーザインターフェース部１０１は、ＰＣ１０の画面（モニタ９０７の画面）に表示するウィンドウの内容を作成する。ユーザインターフェース部１０１は、キーボードやマウスによるユーザの操作を受け付ける。ユーザインターフェース部１０１の機能的な構成については、後述する（図４）。
【００３６】
制御プログラム編集部１０３は、ユーザから受け付けた指示に従い、制御プログラムの入力および編集を行なう。制御プログラム編集部１０３は、制御プログラムを実行するためにコンパイルが必要である場合はコンパイルも行なう。制御プログラム編集部１０３は、作成した制御プログラムを、ＰＬＣインターフェース部１０２を介してＰＬＣ２０に送る。制御プログラム編集部１０３は、ＰＬＣ２０に格納されている制御プログラム２１を読み出して、当該読み出した制御プログラム２１を編集することもできる。
【００３７】
制御プログラムシミュレーション部１０４は、ＰＬＣ２０のシミュレータである。制御プログラムシミュレーション部１０４は、ＰＬＣ２０が制御プログラム２１を実行する動作をシミュレートし、ＰＬＣ２０が制御周期毎に出力するはずの位置の指令値を算出する。制御プログラムシミュレーション部１０４は、外部からの信号が到来して制御プログラム２１の動作に影響を与える様子をシミュレートする。制御プログラムシミュレーション部１０４は、制御プログラム２１の実行自体によってＰＬＣ２０のメモリの記憶内容などのＰＬＣ２０の内部状態が変化する場合、当該変化が制御プログラム２１の動作に影響を与える様子をシミュレートする。制御プログラムシミュレーション部１０４は、ユーザインターフェース部１０１を介してユーザから受け付けた指示に従い、シミュレーションを実行する。
【００３８】
仮想機構管理部１１２は、仮想機構ライブラリ１１１１に用意されている電子的に構築された３次元モデルである仮想機構を、ユーザインターフェース部１０１を介して選択肢としてユーザに提示する。仮想機構管理部１１２は、ユーザから受け付けた指示に従い、仮想機構を選択する。さらに、仮想機構管理部１１２は、選択された仮想機構についてユーザが設定すべき内容があれば、ユーザインターフェース部１０１を介して当該設定も受け付ける。
【００３９】
仮想機構管理部１１２は、ユーザが仮想機構ライブラリ１１１１に用意されていない新たな仮想機構を定義する場合には、機構要素ライブラリ１１１２に用意されている機構要素を、ユーザインターフェース部１０１を介して選択肢としてユーザに提示する。仮想機構管理部１１２は、ユーザから受け付けた指示に従い、機構要素を選択する。さらに、仮想機構管理部１１２は、どの機構要素にどの機構要素を接続して連動させるかについての指定操作を、ユーザインターフェース部１０１を介して受け付ける。
【００４０】
仮想機構管理部１１２は、ユーザからの指定された内容に基づき、新たな仮想機構を定義して利用可能とするとともに、当該利用可能とした仮想機構を仮想機構ライブラリ１１１１に追加する。
【００４１】
図４は、軌跡表示プログラム部１０５に含まれる画像データ処理部１１３と、ユーザインターフェース部１０１との機能的構成を示した図である。図４を参照して、ユーザインターフェース部１０１は、表示制御部１０１１と、受付部１０１２とを備える。画像データ処理部１１３は、指令値取得部１１３１と、位置演算部１１３２と、軌跡データ作成部１１３３と、画像データ作成部１１３４とを備える。
【００４２】
表示制御部１０１１は、画像データ作成部１１３４から受け付けた画像データを、画面に表示させる。
【００４３】
受付部１０１２は、ユーザからの指示を受け付ける。受付部１０１２は、受け付けた指示を、指示の内容に応じて、制御プログラム編集部１０３および軌跡表示プログラム部１０５のいずれかに送る。
【００４４】
指令値取得部１１３１は、制御プログラムシミュレーション部１０４から、制御プログラム１２の実行結果である一連の位置の指令値を取得する。
【００４５】
位置演算部１１３２は、取得された位置の指令値に対応する、制御周期毎または複数の指定された制御周期における一連の上記特定部位の位置を求める。位置演算部１１３２は、取得した位置の指令値自体を制御対象装置３０の特定部位の位置とする場合もある。あるいは、位置演算部１１３２は、取得した位置の指令値の座標に所定の偏差を与えて制御対象装置３０の特定部位の位置とする場合もある。なお、「複数の指定された制御周期」とは、たとえば、一定周期ごとに抽出された各制御周期である。
【００４６】
軌跡データ作成部１１３３は、上記一連の特定部位の位置の各々を時間の経過順に通る軌跡を示した軌跡データを作成する。
【００４７】
画像データ作成部１１３４は、上記軌跡の空間的形態を画像として画面に表示するための画像データを、上記軌跡データに基づき作成する。
【００４８】
なお、画像データ処理部１１３は、一連の位置の指令値をＰＬＣ２０から取得するように構成してもよい。この場合、ＰＬＣ２０の実機が制御プログラム２１を実行することによって生成された指令値を、ＰＬＣインターフェース部１０２を介して画像データ処理部１１３が取得する。なお、以下では、画像データ処理部１１３が制御プログラムシミュレーション部１０４から一連の位置の指令値を取得する構成を例に挙げて説明する。
【００４９】
画像データ作成部１１３４は、必要な設定が済ませられて使用可能となった仮想機構を、仮想機構管理部１１２を介して仮想機構ライブラリ１１１１から取得する。画像データ作成部１１３４は、制御プログラムシミュレーション部１０４から取得した一連の位置の指令値を用いて、制御周期毎または複数の指定された制御周期における仮想機構の状態を描写した一連の画像データを作成する。ＰＣ１０は、ユーザインターフェース部１０１を介して当該一連の画像データを画面に順次表示すると、仮想機構の動画となる。なお、仮想機構の画像を作成する制御周期を抽出する場合に、抽出する制御周期は、上記軌跡を求めるために抽出する制御周期と同じである必要はない。
【００５０】
以上のように、画像データ作成部１１３４は、一連の位置の指令値に従って動作する電子的に構築された３次元モデルである仮想機構および上記軌跡の空間的形態を動画像として画面に表示するための画像データを作成する。画像データ作成部１１３４は、当該作成した画像データをユーザインターフェース部１０１に送る。
【００５１】
ユーザインターフェース部１０１の表示制御部１０１１は、画像データ作成部１１３４で作成された画像データに基づいた画像（動画像）を画面に表示させる。
【００５２】
なお、ＰＣ１０は、ユーザの選択操作に応じて、モニタ９０７に仮想機構を表示することなく軌跡を表示するか、軌跡と仮想機構とを重ねて表示するかを決定する。また、ＰＣ１０は、軌跡を表示せずに仮想機構を表示する選択を可能としてもよい。
【００５３】
ところで、軌跡データ作成部１１３３が作成する軌跡データとしては、たとえば、以下のような種類のデータがある。なお、ＰＣ１０が、いずれのデータを用いて画像を表示するかは、ユーザの指示に従う。
（Ａ）一連の特定部位の位置の各々を時間の経過順に直線で結んだ折れ線を示すデータ（図１４参照）。
（Ｂ）一連の特定部位の位置の各々を時間の経過順に通る滑らかな曲線を示すデータ（図１６等参照）。なお、「滑らかな曲線」とは曲線上の任意の点において微分可能な曲線をいう。
（Ｃ）一連の特定部位の位置の各々を時間の経過順に直線で結んだ折れ線における各線分に垂直な平面における当該直線を囲む閉曲線を当該直線に沿って並進させることにより形成される３次元オブジェクトを示すデータ（図１５参照）。
（Ｄ）一連の特定部位の位置の各々を時間の経過順に通る滑らかな曲線の接線に垂直な平面における当該曲線を囲む閉曲線を当該曲線に沿って並進させることにより形成される３次元オブジェクトを示すデータ（図１７参照）。
（Ｅ）一連の特定部位の位置に沿った形態の３次元オブジェクトを示すデータ。
【００５４】
より詳しくは、軌跡データ作成部１１３３で作成される軌跡データは、時刻情報が対応付けられている。軌跡データには、たとえば、プログラムの実行開始時刻を０秒とした時刻情報が対応付けられている。当該時刻情報は、たとえば図示しないタイマ機構により生成される。時刻情報は、秒のような時刻単位の情報に限らず、時間の経過順序を示す各軌跡データの通算番号でもよい。各軌跡データが記録されたメモリ上の位置が時刻情報を表す形で軌跡データと時刻情報とを対応付けてもよい。
【００５５】
ユーザインターフェース部１０１の受付部１０１２は、ユーザから、第１の時刻と第２の時刻との指定を受け付ける。この時刻指定は、秒のような時刻単位によって時刻を特定できる指定に限らず、プログラムの全実行時間のうち経過した時間の割合による指定のような相対的な時刻指定であってもよい。受付部１０１２が第１の時刻と第２の時刻とを受け付けた場合には、表示制御部１０１１は、軌跡のうち第１の時刻から第２の時刻の間の軌跡データに対応する部分の空間的形態を画面に表示させる。
【００５６】
なお、受付部１０１２が第１の時刻のみを受け付けた場合には、表示制御部１０１１は、時刻情報に基づき、軌跡のうち第１の時刻以降の軌跡データに対応する部分の空間的形態を画面に表示させる。
【００５７】
図５は、ＰＣ１０における軌跡表示の処理を示したフローチャートである。図５を参照して、ステップＳ２において、指令値取得部１１３１は、制御プログラムの実行結果である一連の位置の指令値を、制御プログラムシミュレーション部１０４から取得する。ステップＳ４において、位置演算部１１３２は、取得された位置の指令値に対応する、制御周期毎または複数の指定された制御周期における一連の上記特定部位の位置を求める。
【００５８】
ステップＳ６において、軌跡データ作成部１１３３は、上記一連の特定部位の位置の各々を時間の経過順に通る軌跡を示した軌跡データを作成する。ステップＳ８において、画像データ処理部１１３は、ユーザインターフェース部１０１を介して仮想機構を表示する指示を受け付けたか否かを判断する。
【００５９】
仮想機構を表示する指示を受け付けた場合（ステップＳ８においてＹＥＳ）、画像データ作成部１１３４は、一連の位置の指令値に従って動作する仮想機構および上記軌跡の空間的形態を動画像として画面に表示するための画像データを作成する。一方、仮想機構を表示する指示を受け付けていない場合（ステップＳ８においてＮＯ）、画像データ作成部１１３４は、上記軌跡の空間的形態を画面に表示するための画像データを作成する。
【００６０】
ステップＳ１２において、表示制御部１０１１は、画像データ作成部１１３４から受け付けた画像データを、画面に表示させる。すなわち、ＰＣ１０は、画像データ作成部１１３４が作成した画像データに基づく軌跡の画像を、画面に表示する。
【００６１】
図６は、ＰＬＣサポートプログラム１１を実行した際にＰＣ１０で表示されるウィンドウ１２０を示した図である。図６を参照して、ウィンドウ１２０は、設定領域１２１と、制御プログラム編集領域１２２と、画像表示リンク領域１２３とを含む。
【００６２】
設定領域１２１は、制御プログラム１２の編集やシミュレーションを行なう上で必要となる種々の設定の入力を行なうための領域である。設定領域１２１に含まれている「仮想機構」の文字をユーザが選択（たとえば、クリック）すると、ＰＣ１０は、仮想機構選択画面（図７参照）を別ウィンドウとして開く。「ＸＹ機構」の文字は、現在選択されている仮想機構がＸＹ機構であることを示す。
【００６３】
制御プログラム編集領域１２２は、ユーザが制御プログラムを入力したり、制御プログラムを編集するために用いられる。
【００６４】
画像表示リンク領域１２３をユーザが選択すると、ＰＣ１０は、画像表示画面（図９）を別ウィンドウとして開く。
【００６５】
図７は、仮想機構を選択するためのウィンドウ１３０を示した図である。なお、図７も、ＰＬＣサポートプログラム１１の実行により、ＰＣ１０の画面に出力される画像を示している。図７を参照して、ウィンドウ１３０は、仮想機構名を示した領域１３１と、ヘルプを示した領域１３２と、ＯＫボタンを示した領域１３３とを含む。
【００６６】
ＰＣ１０は、仮想機構名を示した領域１３１に、利用可能な仮想機構のリストを表示する。仮想機構名のいずれかがユーザによってクリックされた場合、ＰＣ１０は、当該クリックされた仮想機構を選択された状態とする。図７は、矩形で囲まれたＸＹ機構１３１１が選択された状態を示している。この状態でユーザがＯＫボタンを押すと、ＸＹ機構の選択が確定する。選択された仮想機構が設定情報の入力を必要とする場合は、ＰＣ１０は、仮想機構設定画面を別ウィンドウとして開いて、ユーザに対して設定情報の入力を促す。
【００６７】
ＰＣ１０は、ヘルプを示した領域に、選択されている仮想機構についての説明を表示する。
【００６８】
仮想機構名を示した領域１３１の「新規作成」の領域１３１２が選択され、かつ当該選択が確定すると、ＰＣ１０は、新規仮想機構作成画面を別ウィンドウとして開く。これにより、ユーザは、新しい仮想機構を定義することができる。
【００６９】
図８は、仮想機構の一例であるＸＹＺ機構を示した図である。図８を参照して、ＸＹＺ機構２００は、第１要素２１０と、第２要素２２０と、第３要素２３０とを備える。第１要素２１０、第２要素２２０と、第３要素２３０は、それぞれ、Ｘ方向の直動要素、Ｙ方向の直動要素、Ｚ方向の直動要素である。
【００７０】
第１要素２１０は、可動部２１１と、直動軸２１２と、終端部材２１３とを含む。第２要素２２０は、可動部２２１と、直動軸２２２と、終端部材２２３とを含む。第３要素２３０は、伸縮柱である直動軸２３１を含む。
【００７１】
各直動軸２１２，２２２，２３１の形状は、円柱状である。各可動部２１１，２２１の形状は、立方体形状である。可動部２１１は、直動軸２１２に沿って移動する。可動部２２１は、直動軸２２２に沿って移動する。終端部材２１３，２２３の形状は、垂直な板状である。終端部材２１３は、直動軸２１２の各端部に設けられている。終端部材２２３は、直動軸２２２における、可動部２１１とは反対側の端部に設けられている。
【００７２】
第２要素２２０は、第１要素２１０の可動部２１１に接続しており、可動部２１１の動きに連動して動作する。第３要素は、第２要素２２０の可動部２２１に接続しており、可動部２２１の動きに連動して動作する。
【００７３】
このように、Ｘ方向およびＹ方向の直動要素（第１要素２１０，第２要素２２０）は、直動軸２１２，２２２と、直動軸に沿って移動する可動部２１１，２２１とを含む形態で表示される。また、Ｚ方向の直動要素（第３要素２３０）は、基端２３１１がＹ方向の直動要素の可動部２２１に接続する伸縮柱の形態で表示される。
【００７４】
Ｚ方向の直動軸２３１（伸縮柱）の先端２３１２の位置が、与えられた位置の指令値のＸＹＺ座標を示している。
【００７５】
この仮想機構には、位置の指令値と軌跡を求める特定部位の位置との間の偏差は設定されていないため、Ｚ方向の伸縮柱の先端位置が軌跡を求めるべき特定部位の位置となっている。
【００７６】
図９は、仮想機構と特定部位の軌跡とが表示された画面１４０を示した図である。具体的には、図９は、図６の画像表示リンク領域１２３がクリックされたときに開かれるウィンドウ１４０を示した図である。また、図９は、ＰＬＣサポートプログラム１１の実行により、ＰＣ１０の画面に出力される画像を示している。
【００７７】
ウィンドウ１４０は、現在使用されている仮想機構の名称を示した領域１４１と、三角マーク１４２と、設定編集を示したボタン１４３と、座標値を示した領域１４４と、軸とモーションＦＢ（Function Block）の対応を示した領域１４５と、対象画像表示領域１４６Ａ，１４６Ｂ，１４６Ｃ，１４６Ｄと、表示設定領域１４７と、再生スライドバー１５１と、再生ボタン１５２と、停止ボタン１５３とを含む。再生スライドバー１５１は、再生時間バー１５１１と、軌跡始点つまみ１５１２と、軌跡終点つまみ１５１３と、現在時刻つまみ１５１４とを含む。
【００７８】
ＰＣ１０は、現在使用されている仮想機構の名称を示した領域１４１と、三角マーク１４２と、設定編集を示したボタン１４３とを、ウィンドウ１４０内の上部に表示する。ＰＣ１０は、再生スライドバー１５１と、再生ボタン１５２と、停止ボタン１５３とを、ウィンドウ１４０内の下部に表示する。
【００７９】
ＰＣ１０は、三角マーク１４２をユーザが選択すると仮想機構のリストを表示する。ＰＣ１０は、当該表示したリストに含まれる項目がユーザに選択されることにより、現在使用されている仮想機構を選択された仮想機構に変更する。ＰＣ１０は、設定編集のボタン１４３がユーザによって押されると、仮想機構設定画面を別ウィンドウとして開く。ＰＣ１０は、座標値を示した領域１４４に、座標軸ごとの指令値の現在値を表示する。
【００８０】
ＰＣ１０は、軸とモーションＦＢの対応を示した領域１４５に、制御プログラム１２の中で使われている軸名とモーションＦＢ名との対応関係を表示する。モーションＦＢは、制御プログラム１２の中で使用されるプログラム要素である。詳しくは、モーションＦＢは、ある点から他の点までの移動のような動作の基本単位ごとにブロック化されたモーションプログラムである。モーションＦＢは、制御周期ごとの指令値を算出する。ＰＣ１０は、軸とモーションＦＢの対応を示した領域１４５に、現在働いているモーションＦＢを表示する。
【００８１】
ＰＣ１０は、対象画像表示領域１４６Ａに、２つの直交座標軸Ｘ，ＹがなすＸＹ平面に対する仮想機構２００および軌跡３００の投影図を表示する。ＰＣ１０は、対象画像表示領域１４６Ｂに、仮想機構２００および軌跡３００の３Ｄ画像を表示する。ＰＣ１０は、対象画像表示領域１４６Ｃに、２つの直交座標軸Ｘ，ＺがなすＸＺ平面に対する仮想機構２００および軌跡３００の投影図を表示する。ＰＣ１０は、対象画像表示領域１４６Ｄに、２つの直交座標軸Ｙ，ＺがなすＹＺ平面に対する仮想機構２００および軌跡３００の投影図を表示する。
【００８２】
ＰＣ１０は、対象画像表示領域１４６Ａ，１４６Ｂ，１４６Ｃ，１４６Ｄの互いの位置関係に応じた配置となるように、表示設定領域１４７に、それぞれ対応する表示方法（「３Ｄ」、「Ｘ−Ｙ」、「Ｘ−Ｚ」、「Ｙ−Ｚ」）を示す各ボタン１４７１を表示する。ＰＣ１０は、４つのボタン１４７１の配置を変更する指示をユーザから受け付ければ、各対象画像表示領域１４６Ａ〜１４６Ｄの配置を変更する。ＰＣ１０は、ユーザがいずれか１つのボタン１４７１を選択する指示をユーザから受け付けると、選択されたボタンに対応する対象画像表示領域を拡大表示する。
【００８３】
３Ｄ表示は、透視図法によって描写されている。ＰＣ１０は、ユーザのマウス操作に従って、３次元空間内での視点の位置と視線方向とを変更する。
【００８４】
ＰＣ１０は、各対象画像表示領域１４６Ａ〜１４６Ｄにおける表示内容の表示倍率を変更できる。また、ＰＣ１０は、当該表示内容を上下左右にスクロール移動することもできる。
【００８５】
ＰＣ１０は、各対象画像表示領域１４６Ａ〜１４６Ｄに、制御対象装置３０の特定部位の軌跡３００（この実施形態では位置の指令値の軌跡）と仮想機構であるＸＹＺ機構２００とを重ね合わせて表示する。なお、図９においては、軌跡３００は曲線で示されている。ＰＣ１０は、Ｚ方向の直動要素（第３要素２３０）の先端２３１２に、現在位置を示す現在位置マーカ２９０を表示する。図９においては、現在位置マーカ２９０を、小球で示している。ＰＣ１０が表示する軌跡３００は、Ｚ方向に上昇しつつ、ＸＹ座標平面への投影としては半円を描く軌跡である。
【００８６】
ＰＣ１０は、表示設定領域１４７に、上述した各対象画像表示領域１４６Ａ〜１４６Ｄの配置の他に、指令値の軌跡３００を表示するかどうかをユーザに選択させるチェックボックス１４７２、および仮想機構２００を表示するのかどうかをユーザに選択させるチェックボックス１４７３を表示する。ＰＣ１０は、仮想機構２００を表示しない場合には、軌跡３００だけを表示する。また、ＰＣ１０は、仮想機構２００を表示しない場合には、軌跡３００と現在位置マーカ２９０だけの表示としてもよい。ユーザが詳細設定ボタンを押すと、ＰＣ１０は、軌跡の太さの設定、軌跡の表示色の設定、座標軸と座標数値を表示する設定などを行なうための操作画面を表示する。
【００８７】
再生時間バー１５１１は、制御プログラム１２を最初から最後まで実行するのに要する時間を表している。ＰＣ１０は、現在時刻つまみ１５１４を、再生時間バー１５１１上を制御プログラム１２の実行時間の経過にしたがって左から右に移動する。現在時刻つまみ１５１４をマウスでユーザがドラッグ操作することにより、ＰＣ１０は、動画の表示開始時刻を変更する。
【００８８】
軌跡始点つまみ１５１２、軌跡終点つまみ１５１３は、それぞれ、軌跡の表示開始時刻、軌跡の表示終了時刻を示している。両つまみ１５１２，１５１３の各々をマウスでユーザがドラッグ操作することにより、ＰＣ１０は、両つまみ１５１２，１５１３を再生時間バー１５１１に沿って移動する。現在位置（現在位置マーカ２９０の位置）が時間の経過とともに連続的に移動する場合は、ユーザが軌跡始点つまみ１５１２または軌跡終点つまみ１５１４を動かす指令を入力すると、ＰＣ１０は、当該指令に応じて、表示している軌跡３００の長さを変える。
【００８９】
軌跡始点つまみ１５１２、軌跡終点つまみ１５１３をモーションＦＢの実行が開始される制御周期などプログラム実行上の区切りに対応する時刻にステップ的に移動するようにしてもよい。この場合、ユーザは、プログラム実行中の状態遷移と関係した特定の時間区間に対応する軌跡を観察することができる。制御プログラム１２の全実行時間に対応する軌跡または表示されている軌跡が観察しやすい大きさに表示すべく、画像表示部の表示倍率を自動調整するようにＰＣ１０を構成してもよい。
【００９０】
ユーザが再生ボタン１５２を押すと、ＰＣ１０は動画像の表示を開始する。ユーザが停止ボタン１５３を押すと、ＰＣ１０は動画像の表示を停止する。
【００９１】
ＰＣ１０は、動画像の表示を開始すると、各機構要素が動いて現在位置マーカ２９０が軌跡に沿って動いていく様子を表示する。ＰＣ１０は、各対象画像表示領域１４６Ａ〜１４６Ｄに、互いに同じ時刻の仮想機構２００を描写し、各対象画像表示領域１４６Ａ〜１４６Ｄに表示されている仮想機構２００の動きを互いに同期させる。
【００９２】
動画を構成する順次に表示される各静止画は、軌跡と、一定の間隔で抽出された制御周期におけるＸＹＺ機構とを描写したものである。一例として、動画を毎秒６０フレーム、すなわち１６．７ｍｓ間隔で表示される一連の静止画で構成するものとし、制御周期が１６７μｓであるとする。この場合、ＰＣ１０は、制御周期１００回ごとに制御周期に対応する静止画を作成して順次に表示すれば、実際の制御対象装置３０と同じ速さで動く仮想機構を表示することができる。静止画を作成する制御周期は、必ずしも一定間隔には限らない。特に、整数回ごとに１回の制御周期では希望する表示上の速さを実現できない場合には、ＰＣ１０は、平均的に希望する表示上の速さとなるように、静止画を作成する制御周期の間隔を毎回微調整してもよい。
【００９３】
静止画を作成する制御周期の間隔を変更するためのユーザ操作を受け付けるようにＰＣ１０を構成すれば、ユーザは表示上の制御対象装置３０の動作速度を自由に早くしたり遅くしたりすることができる。全ての制御周期における静止画を順次に表示するようにＰＣ１０を構成すれば、ユーザは、仮想機構の動きをスローモーションで詳しく観察することができる。
【００９４】
図１０は、仮想機構と特定部位の軌跡とが表示された画面１６０を示した図である。具体的には、図１０は、図９の表示設定領域１４７の「３Ｄ」を示したボタン１４７１がユーザによって押されたときに表示される画面を示した図である。図１０を参照して、「３Ｄ」を示したボタン１４７１がユーザによって押されると、ＰＣ１０は、３Ｄ表示を大きくする。すなわち、ＰＣ１０は，図９の対象画像表示領域１４６Ｂに示されている仮想機構２００および軌跡３００を対象画像表示領域１６１に拡大表示する。図１０に示した状態において「３Ｄ」を示したボタン１４７１がユーザによって再度押されると、ＰＣ１０は、画面１６０から画面１４０（図９）に戻る。
【００９５】
図１１は、軌跡３００の表示を残したまま仮想機構２００の表示を消し、座標軸の表示を追加した場合における、対象画像表示領域１６１の表示内容を示した図である。より詳しくは、図１１は、対象画像表示領域１６１に表示される画像（３次元オブジェクト）の太さをゼロに設定した場合を示した図である。
【００９６】
ＰＣ１０は、このような設定の場合、軌跡３００を一定の太さの曲線として表示する。ＰＣ１０は、描写の視点を曲線に近づけたり遠ざけたりする操作を受け付けても、軌跡３００の表示上の太さを変化させない。
【００９７】
なお、上記では対象画像表示領域１６１にオブジェクトを表示させる例を挙げて説明したが、対象画像表示領域１４６Ａ〜１４６Ｄにオブジェクトを表示させる場合も同様である。また、後述する図１２〜図１７においても同様である。
【００９８】
また、ＰＣ１０による軌跡の表示方法は、図１１に限られない。以下では、軌跡の他の表示方法について説明する。なお、どの様な表示方法をＰＣ１０が行なうかは、ユーザの指示に基づく。
【００９９】
図１２は、図１１の軌跡３００に３次元オブジェクトとしての太さ（円形断面の直径）を与えた場合における軌跡３１０を示した図である。図１２を参照して、ＰＣ１０は、軌跡３１０を視点に近い部分は太くかつ遠い部分は細く表示するため、ユーザは、軌跡３１０の形状を３次元的に把握することが容易になる。
【０１００】
なお、軌跡の３次元オブジェクトにゼロでない太さを与えたまま、画面上での太さが一定である線として軌跡を表示するようユーザが指定できる機能をＰＣ１０に設けてもよい。また、ＰＣ１０を以下のように構成してもよい。
【０１０１】
ＰＣ１０は、太さを有する３次元オブジェクトの形態で描写される軌跡の画面上での太さが視認しやすい特定の太さ以上となる部分については、そのまま３次元オブジェクトの形態で描写する。一方、ＰＣ１０は、軌跡が視点から遠くてそのまま３次元オブジェクトとして描写したのでは画面上での太さが特定の太さに満たないため視認しにくくなる部分については、自動的に視認しやすい一定の太さの線に置き換えて軌跡を表示する。このような構成とすることにより、ユーザは、軌跡を３次元的に確実に視認することができる。
【０１０２】
図１３は、軌跡の描写の仕方を説明するために、位置の指令値の座標を３次元空間内にプロットした状態を示した図である。図１３を参照して、指令値の座標は、最初はｘ軸上を原点に向かって移動する。指令値の座標は、原点近くで半径Ｒの円弧を描いてｙ軸上に遷移する。その後、指令値の座標は、ｙ軸上を原点から遠ざかる方向に進む。
【０１０３】
実際には、このように指令値の座標が離散的に見えるのは、軌跡３２０を描写するために抽出した制御周期の間隔が非常に大きいか、あるいは視点を軌跡に非常に接近させた場合である。
【０１０４】
図１４は、図１３のプロットを時間の経過順に直線で結んだ折れ線による軌跡３３０を示した図である。具体的には、図１４は、上記軌跡データが、一連の特定部位の位置の各々を時間の経過順に直線で結んだ折れ線を示すデータである場合を示した図である。
【０１０５】
図１４を参照して、軌跡３３０の３次元オブジェクトとしての太さはゼロである。軌跡３３０は、複数の線分３３１〜３３７で構成されている。ＰＣ１０は、このような表示をする場合は、軌跡３３０の画像を生成するための計算量が少なくて済む。このため、ＰＣ１０は、計算量が少なくて済む分だけ、軌跡３３０を早く表示することができる。なお、ユーザは、視点を現在位置から画面とは反対方向に少し離せば、当該折れ線が滑らかな曲線として見える。
【０１０６】
図１５は、図１４に示した折れ線を中心軸とする円柱列の３次元オブジェクトによって軌跡を表現した状態を示した図である。具体的には、図１５は、上記軌跡データが、一連の特定部位の位置の各々を時間の経過順に直線で結んだ折れ線における各線分に垂直な平面における当該直線を囲む閉曲線を当該直線に沿って並進させることにより形成される３次元オブジェクトを示すデータである場合を示した図である。
【０１０７】
図１５を参照して、軌跡３４０は、３次元形状で表示される。このため、ユーザは、軌跡を折れ線で表示した場合よりも、軌跡の形状を３次元的に把握することが容易である。また、ＰＣ１０は、円柱の側面に陰影を付けて表示する機能も備える。陰影を付けることにより、ユーザは、軌跡を一層３次元的に容易に把握できる。
【０１０８】
図１６は、図１３のプロットを時間の経過順に通る滑らかな曲線によって軌跡を表示した状態を示した図である。具体的には、図１６は、上記軌跡データが、一連の特定部位の位置の各々を時間の経過順に通る滑らかな曲線を示すデータである場合を示した図である。
【０１０９】
図１６を参照して、軌跡３５０の３次元オブジェクトとしての太さはゼロである。ＰＣ１０が当該表示を行なう場合には、動きが急激に変化する部分にユーザが視点を接近させたり、ＰＣ１０がユーザの指示に応じて当該部分を拡大表示したりしても、ユーザは滑らかな軌跡曲線を見ることができる。また、軌跡３５０の画像を生成するための計算量も比較的少ない。
【０１１０】
図１７は、図１６の曲線を中心軸とする断面が一定の直径の円形であるワイヤ状の３次元オブジェクトによって軌跡を表現した状態を示した図である。具体的には、図１７は、上記軌跡データが、一連の特定部位の位置の各々を時間の経過順に通る滑らかな曲線の接線に垂直な平面における当該曲線を囲む閉曲線を当該曲線に沿って並進させることにより形成される３次元オブジェクトを示すデータである場合を示した図である。
【０１１１】
図１７を参照して、軌跡を曲線で表示した場合よりも、ユーザは軌跡の形状を３次元的に把握することが容易となる。また、上述したように、ＰＣ１０が３次元オブジェクトの表面に陰影を付けて表示すれば、ユーザは、軌跡を一層３次元的に容易に把握できる。
【０１１２】
ところで、図１５おいび図１７の場合においては、軌跡の３次元オブジェクトの断面（軌跡の延伸方向に垂直な断面）が円形である場合を示した。しかしながら、軌跡の３次元オブジェクトの断面は円形に限定されず、任意の閉曲線でもよい。また、断面は、厳密に図１４の折れ線や図１６の曲線を軸とする対称図形である必要もない。軌跡を表現する３次元オブジェクトは、画面に表示されたときに軌跡を表現しているとユーザが認識できる限り、軌跡の表示対象部位の位置の列に沿う形態であればよい。すなわち、上記軌跡データが、一連の特定部位の位置に沿った形態の３次元オブジェクトを示すデータであればよい。
【０１１３】
上述したＰＣ１０の構成および機能等の一部をまとめると以下のとおりである。
（１）ＰＣ１０は、制御プログラムの実行結果である一連の位置の指令値を取得する指令値取得部１１３１を備える。また、ＰＣは、取得された位置の指令値に対応する、周期毎または複数の指定された周期における一連の特定部位の位置を求める位置演算部１１３２を備える。さらに、ＰＣ１０は、一連の特定部位の位置の各々を時間の経過順に通る軌跡を示した軌跡データを作成する軌跡データ作成部１１３３を備える。また、ＰＣ１０は、軌跡の空間的形態を画像として画面に表示するための画像データを、軌跡データを用いて作成する画像データ作成部１１３４を備える。さらに、ＰＣ１０は、画像データを用いて上記画像を画面に表示させる表示制御部１０１１を備える。
【０１１４】
したがって、ＰＣ１０によれば、制御プログラムが単純順次実行型であるか状況適応型であるかを問わず、プログラム制御される制御対象装置３０の特定部位の軌跡を表示することができる。
【０１１５】
（２）軌跡データ作成部１１３３は、上記軌跡データとして、一連の特定部位の位置の各々を時間の経過順に直線で結んだ折れ線を示すデータを作成する。
【０１１６】
したがって、ＰＣ１０は、簡単な計算で軌跡を求めることができる。しかも、真の軌跡が曲線である場合に、各特定部位の位置の間隔が十分短ければ、ＰＣ１０は、ユーザにとって滑らかな曲線に見える軌跡を表示することができる。
【０１１７】
（３）軌跡データ作成部１１３３は、上記軌跡データとして、一連の特定部位の位置の各々を時間の経過順に通る滑らかな曲線を示すデータを作成する。
【０１１８】
したがって、特定部位の各位置の間隔が大きかったり、ＰＣ１０がユーザの指示に応じて軌跡の一部を拡大して表示したりする場合であっても、ＰＣ１０は、滑らかな曲線に見える軌跡を表示することができる。
【０１１９】
（４）軌跡データ作成部１１３３は、上記軌跡データとして、一連の特定部位の位置の各々を時間の経過順に直線で結んだ折れ線における各線分に垂直な平面における当該直線を囲む閉曲線を当該直線に沿って並進させることにより形成される３次元オブジェクトを示すデータを作成する。
【０１２０】
したがって、ＰＣ１０は、軌跡を表面および太さを有するワイヤやケーブルに似た立体物として表示する。それゆえ、ユーザは、表示された軌跡の画像を見るときに、軌跡を３次元空間の中に正しく位置付けて把握することが容易になる。
【０１２１】
（５）軌跡データ作成部１１３３は、上記軌跡データとして、一連の特定部位の位置の各々を時間の経過順に通る滑らかな曲線の接線に垂直な平面における当該曲線を囲む閉曲線を当該曲線に沿って並進させることにより形成される３次元オブジェクトを示すデータを作成する。
【０１２２】
したがって、ＰＣ１０は、軌跡を表面および太さを有するワイヤやケーブルに似た立体物として表示する。それゆえ、ユーザは、表示された軌跡の画像を見るときに、軌跡を３次元空間の中に正しく位置付けて把握することが容易になる。
【０１２３】
（６）軌跡データ作成部１１３３は、上記軌跡データとして、一連の特定部位の位置に沿った形態の３次元オブジェクトを示すデータを作成する。
【０１２４】
したがって、ＰＣ１０は、軌跡を表面および太さを有するワイヤやケーブルに似た立体物として表示する。それゆえ、ユーザは、表示された軌跡の画像を見るときに、軌跡を３次元空間の中に正しく位置付けて把握することが容易になる。
【０１２５】
（７）画像データ作成部１１３４は、上記画像データとして、一連の位置の指令値に従って動作する電子的に構築された３次元モデルである仮想機構および軌跡の空間的形態を動画像として画面に表示するためのデータを作成する。表示制御部１０１１は、動画像を画面に表示させる。
【０１２６】
したがって、ＰＣ１０が動く仮想装置とともに軌跡を表示することにより、ユーザは、制御対象装置３０の動きを容易に理解できる。
【０１２７】
（８）軌跡データは、時刻情報が対応付けられている。ＰＣ１０は、第１の時刻と第２の時刻との指定を受け付ける受付部１０１２をさらに備える。表示制御部１０１１は、時刻情報を用いて、軌跡のうち第１の時刻から第２の時刻の間の軌跡データに対応する部分の空間的形態を画面に表示させる。
【０１２８】
したがって、ＰＣ１０は、軌跡の形態を表示する範囲を時間で指定する。それゆえ、ＰＣ１０は、制御プログラムの移動命令、モーションファンクションブロック等のプログラム要素の実行の開始または終了によって区切られる箇所に限らず、任意の範囲で軌跡の形態を表示することができる。
【０１２９】
今回開示された実施の形態は例示であって、上記内容のみに制限されるものではない。本発明の範囲は特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１３０】
１  制御システム、１１  ＰＬＣサポートプログラム、１２  制御プログラム、２１  制御プログラム、３０  制御対象装置、４０  サーバ装置、５０  ネットワーク、１０１  ユーザインターフェース部、１０２  ＰＬＣインターフェース部、１０３  制御プログラム編集部、１０４  制御プログラムシミュレーション部、１０５  軌跡表示プログラム部、１１１  ライブラリ、１１２  仮想機構管理部、１１３  画像データ処理部、１２１  設定領域、１２２  制御プログラム編集領域、１２３  画像表示リンク領域、１４６Ａ，１４６Ｂ，１４６Ｃ，１４６Ｄ  対象画像表示領域、１４７  表示設定領域、１５１  再生スライドバー、１５２  再生ボタン、１５３  停止ボタン、１６１  対象画像表示領域、２００  仮想機構、２１０  第１要素、２２０  第２要素、２３０  第３要素、２９０  現在位置マーカ、３００，３１０，３２０，３３０，３４０，３５０，３６０  軌跡、３３１，３３２，３３３，３３４，３３５，３３６，３３７  線分、９０７  モニタ、１０１１  表示制御部、１０１２  受付部、１１１１  仮想機構ライブラリ、１１１２  機構要素ライブラリ、１１３１  指令値取得部、１１３２  位置演算部、１１３３  軌跡データ作成部、１１３４  画像データ作成部、１５１１  再生時間バー、２３１２  先端。
【図１】
0005418322.tif 000002
【図２】
0005418322.tif 000003
【図３】
0005418322.tif 000004
【図４】
0005418322.tif 000005
【図５】
0005418322.tif 000006
【図６】
0005418322.tif 000007
【図７】
0005418322.tif 000008
【図８】
0005418322.tif 000009
【図９】
0005418322.tif 000010
【図１０】
0005418322.tif 000011
【図１１】
0005418322.tif 000012
【図１２】
0005418322.tif 000013
【図１３】
0005418322.tif 000014
【図１４】
0005418322.tif 000015
【図１５】
0005418322.tif 000016
【図１６】
0005418322.tif 000017
【図１７】
0005418322.tif 000018