(57)【特許請求の範囲】
【請求項１】
モーションプログラムの実行によって出力される一連の指令値に基づいて駆動する制御対象における特定部位の位置の変化を、画面に軌跡として表示する表示装置であって、
前記制御対象の質量および摩擦を無視した場合における、前記一連の指令値に基づいた前記特定部位の位置である一連の指令位置を取得する第１の位置取得手段と、
前記制御対象の質量および摩擦のうち少なくとも一つを考慮したシミュレートがなされた場合における、前記一連の指令値に基づいた前記特定部位の一連の位置、および前記一連の指令値に基づく前記駆動がなされた場合に測定された前記特定部位の一連の位置のうち少なくとも１つの一連の位置である、前記一連の指令位置に対応する一連の応答位置を取得する第２の位置取得手段と、
前記指令位置と当該指令位置に対応する前記応答位置との位置の差を算出する誤差算出手段と、
前記算出された差が予め定められた閾値以上であるか否かを判定する判定手段と、
前記一連の指令位置によって形成される空間的軌跡および前記一連の応答位置によって形成される空間的軌跡の少なくともいずれかと、当該空間的軌跡のうち前記閾値以上であると判定された部分を示す第１のマークとを前記画面に表示させるためのデータを作成する第１の表示データ作成手段と、
前記第１のマークの選択操作を受け付ける受付手段と、
前記選択されたマークに対応する部分の前記指令位置の空間的軌跡と当該空間的軌跡に対応する前記応答位置の空間的軌跡とを同じ倍率で拡大した態様であって、当該拡大された各前記空間的軌跡が互いに重なる態様にて、各前記空間的軌跡を前記画面に表示させるためのデータを作成する第２の表示データ作成手段と、
前記第１の表示データ作成手段によって作成されたデータ、および前記第２の表示データ作成手段によって作成されたデータを前記画面に表示させる表示制御手段とを備え、
前記第２の表示データ作成手段は、指定された時刻における前記指令位置を示す第２のマークと、当該時刻における前記応答位置を示す第３のマークとを前記画面に表示させるためのデータをさらに作成し、
前記表示制御手段は、前記第２の表示データ作成手段によって作成されたデータを前記画面に表示させるときには、前記第２のマークと前記第３のマークとを前記画面に表示さ
せ、
前記指定された時刻が変更されると、当該変更に応じて前記第２のマークおよび前記第３のマークの表示位置を変化させる、表示装置。
【請求項２】
第１の軸を時間または前記特定部位の移動量とし、第２の軸を、前記指令位置、当該指令位置に基づき算出された前記特定部位の速度、前記応答位置、または当該応答位置に基づき算出された前記特定部位の速度とする２次元グラフを表示するためのデータと、
前記算出された差が予め定められた閾値以上である部分を前記２次元グラフ上に表示させるためのデータであって、前記受付部が受け付ける選択操作の対象となる第４のマークを表示させるためのデータとを作成する第３の表示データ作成手段をさらに備え、
前記表示制御手段は、前記２次元グラフと前記第４のマークとを前記画面に表示させ、
前記第２の表示データ作成部は、前記第４のマークの選択操作が受け付けられると、選択された前記第４のマークに対応する部分について、前記拡大した態様の軌跡を表示させるためのデータを作成する、請求項１に記載の表示装置。
【請求項３】
第１の軸を時間または前記特定部位の移動量とし、第２の軸を、前記算出された差の大きさとする２次元グラフを表示するためのデータと、
前記算出された差が前記予め定められた閾値以上である部分を前記２次元グラフ上に表示させるためのデータであって、前記受付部が受け付ける選択操作の対象となる第４のマークを表示させるためのデータとを作成する第３の表示データ作成手段をさらに備え、
前記表示制御手段は、前記２次元グラフと前記第４のマークとを前記画面に表示させ、
前記第２の表示データ作成部は、前記第４のマークの選択操作が受け付けられると、選択された前記第４のマークに対応する部分について、前記拡大した態様の軌跡を表示させるためのデータを作成する、請求項１に記載の表示装置。
【請求項４】
第１の軸を時間または前記特定部位の移動量とし、第２の軸を、前記指令位置の空間的軌跡の接線方向に対して垂直な方向に沿った、前記指令位置の空間的軌跡から前記応答位置の空間的軌跡までの距離とする２次元グラフを表示するためのデータと、
前記算出された差が前記予め定められた閾値以上である部分を前記２次元グラフ上に表示させるためのデータであって、前記受付部が受け付ける選択操作の対象となる第４のマークを表示させるためのデータとを作成する第３の表示データ作成手段をさらに備え、
前記表示制御手段は、前記２次元グラフと前記第４のマークとを前記画面に表示させ、
前記第２の表示データ作成部は、前記第４のマークの選択操作が受け付けられると、選択された前記第４のマークに対応する部分について、前記拡大した態様の軌跡を表示させるためのデータを作成する、請求項１に記載の表示装置。
【請求項５】
モーションプログラムの実行によって出力される一連の指令値に基づいて駆動する制御対象における特定部位の位置の変化を、表示装置の画面に軌跡として表示させる表示制御方法であって、
前記制御対象の質量および摩擦を無視した場合における、前記一連の指令値に基づいた前記特定部位の位置である一連の指令位置を取得するステップと、
前記制御対象の質量および摩擦のうち少なくとも一つを考慮したシミュレートがなされた場合における、前記一連の指令値に基づいた前記特定部位の一連の位置、および前記一連の指令値に基づく前記駆動がなされた場合に測定された前記特定部位の一連の位置のうち少なくとも１つの一連の位置である、前記一連の指令位置に対応する一連の応答位置を取得するステップと、
前記指令位置と当該指令位置に対応する前記応答位置との位置の差を算出するステップと、
前記算出された差が予め定められた閾値以上であるか否かを判定するステップと、
前記一連の指令位置によって形成される空間的軌跡および前記一連の応答位置によって形成される空間的軌跡の少なくともいずれかと、当該空間的軌跡のうち前記閾値以上であると判定された部分を示すマークとを前記画面に表示させるための第１のデータを作成するステップと、
前記マークの選択操作を受け付けるステップと、
前記選択されたマークに対応する部分の前記指令位置の空間的軌跡と当該空間的軌跡に対応する前記応答位置の空間的軌跡とを同じ倍率で拡大した態様であって、当該拡大された各前記空間的軌跡が互いに重なる態様にて、各前記空間的軌跡を前記画面に表示させるための第２のデータを作成するステップと、
前記第１のデータおよび前記第２のデータを前記画面に表示させるステップと、
指定された時刻における前記指令位置を示す第２のマークと、当該時刻における前記応答位置を示す第３のマークとを前記画面に表示させるためのデータを作成するステップと、
前記第２のマークと前記第３のマークとを前記画面に表示させるステップと、
前記指定された時刻が変更されると、当該変更に応じて前記第２のマークおよび前記第３のマークの表示位置を変化させるステップとを備える、表示制御方法。
【請求項６】
モーションプログラムの実行によって出力される一連の指令値に基づいて駆動する制御対象における特定部位の位置の変化を表示装置の画面に軌跡として表示させるプログラムであって、
前記制御対象の質量および摩擦を無視した場合における、前記一連の指令値に基づいた前記特定部位の位置である一連の指令位置を取得するステップと、
前記制御対象の質量および摩擦のうち少なくとも一つを考慮したシミュレートがなされた場合における、前記一連の指令値に基づいた前記特定部位の一連の位置、および前記一連の指令値に基づく前記駆動がなされた場合に測定された前記特定部位の一連の位置のうち少なくとも１つの一連の位置である、前記一連の指令位置に対応する一連の応答位置を取得するステップと、
前記指令位置と当該指令位置に対応する前記応答位置との位置の差を算出するステップと、
前記算出された差が予め定められた閾値以上であるか否かを判定するステップと、
前記一連の指令位置によって形成される空間的軌跡および前記一連の応答位置によって形成される空間的軌跡の少なくともいずれかと、当該空間的軌跡のうち前記閾値以上であると判定された部分を示すマークとを前記画面に表示させるための第１のデータを作成するステップと、
前記マークの選択操作を受け付けるステップと、
前記選択されたマークに対応する部分の前記指令位置の空間的軌跡と当該空間的軌跡に対応する前記応答位置の空間的軌跡とを同じ倍率で拡大した態様であって、当該拡大された各前記空間的軌跡が互いに重なる態様にて、各前記空間的軌跡を前記画面に表示させるための第２のデータを作成するステップと、
前記第１のデータおよび前記第２のデータを前記画面に表示させるステップと、
指定された時刻における前記指令位置を示す第２のマークと、当該時刻における前記応答位置を示す第３のマークとを前記画面に表示させるためのデータを作成するステップと、
前記第２のマークと前記第３のマークとを前記画面に表示させるステップと、
前記指定された時刻が変更されると、当該変更に応じて前記第２のマークおよび前記第３のマークの表示位置を変化させるステップとを、前記表示装置に実行させるためのプログラム。
【請求項７】
モーションプログラムの実行によって出力される一連の指令値に基づいて駆動する制御対象における特定部位の位置の変化を表示装置の画面に軌跡として表示させるプログラムを格納したコンピュータ読み取り可能な記録媒体であって、
前記プログラムは、
前記制御対象の質量および摩擦を無視した場合における、前記一連の指令値に基づいた前記特定部位の位置である一連の指令位置を取得するステップと、
前記制御対象の質量および摩擦のうち少なくとも一つを考慮したシミュレートがなされた場合における、前記一連の指令値に基づいた前記特定部位の一連の位置、および前記一連の指令値に基づく前記駆動がなされた場合に測定された前記特定部位の一連の位置のうち少なくとも１つの一連の位置である、前記一連の指令位置に対応する一連の応答位置を取得するステップと、
前記指令位置と当該指令位置に対応する前記応答位置との位置の差を算出するステップと、
前記算出された差が予め定められた閾値以上であるか否かを判定するステップと、
前記一連の指令位置によって形成される空間的軌跡および前記一連の応答位置によって形成される空間的軌跡の少なくともいずれかと、当該空間的軌跡のうち前記閾値以上であると判定された部分を示すマークとを前記画面に表示させるための第１のデータを作成するステップと、
前記マークの選択操作を受け付けるステップと、
前記選択されたマークに対応する部分の前記指令位置の空間的軌跡と当該空間的軌跡に対応する前記応答位置の空間的軌跡とを同じ倍率で拡大した態様であって、当該拡大された各前記空間的軌跡が互いに重なる態様にて、各前記空間的軌跡を前記画面に表示させるための第２のデータを作成するステップと、
前記第１のデータおよび前記第２のデータを前記画面に表示させるステップと、
指定された時刻における前記指令位置を示す第２のマークと、当該時刻における前記応答位置を示す第３のマークとを前記画面に表示させるためのデータを作成するステップと、
前記第２のマークと前記第３のマークとを前記画面に表示させるステップと、
前記指定された時刻が変更されると、当該変更に応じて前記第２のマークおよび前記第３のマークの表示位置を変化させるステップとを、前記表示装置に実行させる、コンピュータ読み取り可能な記録媒体。
【請求項８】
前記第２の位置取得部は、前記制御対象の質量および摩擦のうち少なくとも一つを考慮したシミュレートがなされた場合における、前記一連の指令値に基づいた前記特定部位の一連の位置である、前記一連の指令位置に対応する一連の応答位置を取得する、請求項１から４のいずれか１項に記載の表示装置。
【請求項９】
前記一連の応答位置を取得するステップは、前記制御対象の質量および摩擦のうち少なくとも一つを考慮したシミュレートがなされた場合における、前記一連の指令値に基づいた前記特定部位の一連の位置である、前記一連の指令位置に対応する一連の応答位置を取得するステップである、請求項５に記載の表示制御方法。
【請求項１０】
前記一連の応答位置を取得するステップは、前記制御対象の質量および摩擦のうち少なくとも一つを考慮したシミュレートがなされた場合における、前記一連の指令値に基づいた前記特定部位の一連の位置である、前記一連の指令位置に対応する一連の応答位置を取得するステップである、請求項６に記載のプログラム。
【請求項１１】
前記一連の応答位置を取得するステップは、前記制御対象の質量および摩擦のうち少なくとも一つを考慮したシミュレートがなされた場合における、前記一連の指令値に基づいた前記特定部位の一連の位置である、前記一連の指令位置に対応する一連の応答位置を取得するステップである、請求項７に記載のコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モーションプログラムの実行によって出力される一連の指令値に基づいて駆動する制御対象における特定部位の位置の変化を、画面に軌跡として表示する表示装置に関する。
【背景技術】
【０００２】
従来、制御対象を駆動するためのモーションプログラムが知られている。
特許文献１には、上記モーションプログラムである作業プログラムを処理する装置としてロボット言語処理装置が開示されている。当該ロボット言語処理装置は、産業用ロボットの目標位置データを移動命令によって記述した作業プログラムを格納している。ロボット言語処理装置は、作業プログラムにしたがって動くロボットアーム先端の軌跡をグラフィカルに３次元表示する。
【０００３】
特許文献２には、数値制御装置の工具経路表示方法が開示されている。当該数値制御装置は、Ｘ軸のサーボモータとＹ軸のサーボモータとによって駆動される工具の経路をＸＹ平面上に表示する。数値制御装置が表示する工具の経路は２種類ある。１つはプログラムされたとおりの理想的な経路である。もう１つは、理想的な経路からの誤差がある実際の工具の経路である。数値制御装置は、実際の工具の経路について、プログラムされた移動量成分については１倍のままで表示し、誤差量成分についてはたとえば２万倍といった大きな倍率で拡大表示する。数値制御装置は、実際の工具の経路を、理想的な経路の表示に重ねて、または誤差のある部分については理想的な経路の表示に置き換えて表示する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−２４２０５４号公報
【特許文献２】特開平６−１３８９３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
モーションプログラムは、制御対象の運動に関する、当該制御対象に与えられるための一連の指令値を出力するプログラムである。モーションプログラムは、典型的にはＰＬＣ（Programmable Logic Controller）のようなコントローラにおいて実行される。コントローラは、制御対象が備えるモータを駆動するためのモータドライバに制御対象の特定部位の位置を示す一連の指令値を与える。制御対象の特定部位は、たとえばモータの回転位置および／または制御対象が備えるアームの先端位置である。制御対象には質量や摩擦があるため、制御対象の特定部位の位置は、指令値によって指示された位置との間で誤差が動的に生じる。
【０００６】
モーションプログラムをユーザが作成または修正する際に、位置の誤差の発生状態を把握できれば、ユーザは、精密な制御を要する部分については誤差が少なくなるようにプログラムを容易に調整できる。さらに、ユーザは、逆に許容される誤差が大きな部分については運動を高速化するようにプログラムを容易に調整できる。
【０００７】
特許文献２は、位置の誤差を表示する方法の一つを開示している。この方法では、指令位置の軌跡に対して誤差成分のみを大きな倍率で拡大した実測位置の軌跡を重ねて表示する。このため、対応する指令位置と実測位置とが表示画面上において遠く離れてしまう場合には、指令位置と実測位置との対応関係がわかりにくくなる。それゆえ、ユーザは、誤差の発生状態の正確な把握が難しくなる。
【０００８】
本発明は、モーションプログラムを実行したときの、指令値に対応する制御対象の特定部位の指令された位置（指令位置）と、実際の制御対象の特定部位についての理論的に予測される位置（予測位置）または当該特定部位についての測定された位置（実測位置）との間の誤差をユーザにわかりやすく表示することが可能な表示装置、表示制御方法、表示プログラム、およびコンピュータ読み取り可能な記録媒体を提供することにある。
【課題を解決するための手段】
【０００９】
本発明のある局面にしたがうと、表示装置は、モーションプログラムの実行によって出力される一連の指令値に基づいて駆動する制御対象における特定部位の位置の変化を、画面に軌跡として表示する表示装置である。表示装置は、制御対象の質量および摩擦を無視した場合における、一連の指令値に基づいた特定部位の位置である一連の指令位置を取得する第１の位置取得手段と、制御対象の質量および摩擦のうち少なくとも一つを考慮したシミュレートがなされた場合における、一連の指令値に基づいた特定部位の一連の位置、および一連の指令値に基づく駆動がなされた場合に測定された特定部位の一連の位置のうち少なくとも１つの一連の位置である、一連の指令位置に対応する一連の応答位置を取得する第２の位置取得手段と、指令位置と当該指令位置に対応する応答位置との位置の差を算出する誤差算出手段と、算出された差が予め定められた閾値以上であるか否かを判定する判定手段と、一連の指令位置によって形成される空間的軌跡および一連の応答位置によって形成される空間的軌跡の少なくともいずれかと、当該空間的軌跡のうち閾値以上であると判定された部分を示す第１のマークとを画面に表示させるためのデータを作成する第１の表示データ作成手段と、第１のマークの選択操作を受け付ける受付手段と、選択されたマークに対応する部分の指令位置の空間的軌跡と当該空間的軌跡に対応する応答位置の空間的軌跡とを同じ倍率で拡大した態様であって、当該拡大された各空間的軌跡が互いに重なる態様にて、各空間的軌跡を画面に表示させるためのデータを作成する第２の表示データ作成手段と、第１の表示データ作成手段によって作成されたデータ、および第２の表示データ作成手段によって作成されたデータを画面に表示させる表示制御手段とを備える。
【００１０】
好ましくは、第２の表示データ作成手段は、指定された時刻における指令位置を示す第２のマークと、当該時刻における応答位置を示す第３のマークと画面に表示させるためのデータをさらに作成する。表示制御手段は、第２の表示データ作成手段によって作成されたデータを画面に表示させるときには、第２のマークと第３のマークとを画面に表示させる。
【００１１】
好ましくは、第２の表示データ作成手段は、各空間的軌跡を画面に表示させるためのデータを作成するときに、拡大した応答位置の空間軌跡の色が算出された差の大きさに基づき変化するように当該データを作成する。表示制御手段は、第２の表示データ作成手段によって作成されたデータを画面に表示させるときには、拡大した応答位置の空間軌跡を算出された差の大きさに基づいた色で画面に表示させる。
【００１２】
好ましくは、第２の表示データ作成手段は、各空間的軌跡を画面に表示させるためのデータを作成するときに、画面における第１の方向と当該第１の方向に直行する第２の方向とにおいて、空間的軌跡の表示倍率が各々指定された表示倍率となるように当該データを作成する。表示制御手段は、第１の方向および第２の方向の各々において指定された表示倍率で拡大した各空間的軌跡を画面に表示させる。
【００１３】
好ましくは、第１の軸を時間または特定部位の移動量とし、第２の軸を、指令位置、当該指令位置に基づき算出された特定部位の速度、応答位置、または当該応答位置に基づき算出された特定部位の速度とする２次元グラフを表示するためのデータと、算出された差が予め定められた閾値以上である部分を２次元グラフ上に表示させるためのデータであって、選択操作の対象となる第４のマークを表示させるためのデータとを作成する第３の表示データ作成手段をさらに備える。表示制御手段は、２次元グラフと第４のマークとを画面に表示させる。
【００１４】
好ましくは、第１の軸を時間または特定部位の移動量とし、第２の軸を、算出された差の大きさとする２次元グラフを表示するためのデータと、算出された差が予め定められた閾値以上である部分を２次元グラフ上に表示させるためのデータであって、選択操作の対象となる第４のマークを表示させるためのデータとを作成する第３の表示データ作成手段をさらに備える。表示制御手段は、２次元グラフと第４のマークとを画面に表示させる。
【００１５】
好ましくは、第１の軸を時間または特定部位の移動量とし、第２の軸を、指令位置の空間的軌跡の接線方向に対して垂直な方向に沿った、指令位置の空間的軌跡から応答位置の空間的軌跡までの距離とする２次元グラフを表示するためのデータと、算出された差が予め定められた閾値以上である部分を２次元グラフ上に表示させるためのデータであって、選択操作の対象となる第４のマークを表示させるためのデータとを作成する第３の表示データ作成手段をさらに備える。表示制御手段は、２次元グラフと第４のマークとを画面に表示させる。
【００１６】
本発明の他の局面に従うと、表示制御方法は、モーションプログラムの実行によって出力される一連の指令値に基づいて駆動する制御対象における特定部位の位置の変化を、表示装置の画面に軌跡として表示させる方法である。表示制御方法は、制御対象の質量および摩擦を無視した場合における、一連の指令値に基づいた特定部位の位置である一連の指令位置を取得するステップと、制御対象の質量および摩擦のうち少なくとも一つを考慮したシミュレートがなされた場合における、一連の指令値に基づいた特定部位の一連の位置、および一連の指令値に基づく駆動がなされた場合に測定された特定部位の一連の位置のうち少なくとも１つの一連の位置である、一連の指令位置に対応する一連の応答位置を取得するステップと、指令位置と当該指令位置に対応する応答位置との位置の差を算出するステップと、算出された差が予め定められた閾値以上であるか否かを判定するステップと、一連の指令位置によって形成される空間的軌跡および一連の応答位置によって形成される空間的軌跡の少なくともいずれかと、当該空間的軌跡のうち閾値以上であると判定された部分を示すマークとを画面に表示させるための第１のデータを作成するステップと、マークの選択操作を受け付けるステップと、選択されたマークに対応する部分の指令位置の空間的軌跡と当該空間的軌跡に対応する応答位置の空間的軌跡とを同じ倍率で拡大した態様であって、当該拡大された各空間的軌跡が互いに重なる態様にて、各空間的軌跡を前記画面に表示させるための第２のデータを作成するステップと、第１のデータおよび第２のデータを画面に表示させるステップとを備える。
【００１７】
本発明のさらに他の局面に従うと、プログラムは、モーションプログラムの実行によって出力される一連の指令値に基づいて駆動する制御対象における特定部位の位置の変化を表示装置の画面に軌跡として表示させるプログラムである。プログラムは、制御対象の質量および摩擦を無視した場合における、一連の指令値に基づいた特定部位の位置である一連の指令位置を取得するステップと、制御対象の質量および摩擦のうち少なくとも一つを考慮したシミュレートがなされた場合における、一連の指令値に基づいた特定部位の一連の位置、および一連の指令値に基づく駆動がなされた場合に測定された特定部位の一連の位置のうち少なくとも１つの一連の位置である、一連の指令位置に対応する一連の応答位置を取得するステップと、指令位置と当該指令位置に対応する応答位置との位置の差を算出するステップと、算出された差が予め定められた閾値以上であるか否かを判定するステップと、一連の指令位置によって形成される空間的軌跡および一連の応答位置によって形成される空間的軌跡の少なくともいずれかと、当該空間的軌跡のうち閾値以上であると判定された部分を示すマークとを画面に表示させるための第１のデータを作成するステップと、マークの選択操作を受け付けるステップと、選択されたマークに対応する部分の指令位置の空間的軌跡と当該空間的軌跡に対応する応答位置の空間的軌跡とを同じ倍率で拡大した態様であって、当該拡大された各空間的軌跡が互いに重なる態様にて、各空間的軌跡を画面に表示させるための第２のデータを作成するステップと、第１のデータおよび第２のデータを画面に表示させるステップとを、表示装置に実行させる。
【００１８】
本発明のさらに他の局面に従うと、コンピュータ読み取り可能な記録媒体は、モーションプログラムの実行によって出力される一連の指令値に基づいて駆動する制御対象における特定部位の位置の変化を表示装置の画面に軌跡として表示させるプログラムを格納した記録媒体である。プログラムは、制御対象の質量および摩擦を無視した場合における、一連の指令値に基づいた特定部位の位置である一連の指令位置を取得するステップと、制御対象の質量および摩擦のうち少なくとも一つを考慮したシミュレートがなされた場合における、一連の指令値に基づいた特定部位の一連の位置、および一連の指令値に基づく駆動がなされた場合に測定された特定部位の一連の位置のうち少なくとも１つの一連の位置である、一連の指令位置に対応する一連の応答位置を取得するステップと、指令位置と当該指令位置に対応する応答位置との位置の差を算出するステップと、算出された差が予め定められた閾値以上であるか否かを判定するステップと、一連の指令位置によって形成される空間的軌跡および一連の応答位置によって形成される空間的軌跡の少なくともいずれかと、当該空間的軌跡のうち閾値以上であると判定された部分を示すマークとを画面に表示させるための第１のデータを作成するステップと、マークの選択操作を受け付けるステップと、選択されたマークに対応する部分の指令位置の空間的軌跡と当該空間的軌跡に対応する応答位置の空間的軌跡とを同じ倍率で拡大した態様であって、当該拡大された各空間的軌跡が互いに重なる態様にて、各空間的軌跡を画面に表示させるための第２のデータを作成するステップと、第１のデータおよび２のデータを画面に表示させるステップとを、表示装置に実行させる。
【発明の効果】
【００１９】
指令値に対応する制御対象の特定部位の指令された指令位置と、実際の制御対象の特定部位についての理論的に予測される予測位置または当該特定部位についての測定された実測位置との間の誤差をユーザにわかりやすく表示することができる。
【図面の簡単な説明】
【００２０】
【図１】本実施の形態に係る制御システムの概略構成を示した図である。
【図２】ＰＣのハードウェア構成を表わすブロック図である。
【図３】サーボモータを備えた制御対象と、当該制御対象の動作を制御するＰＬＣとを含む制御システムの一般的な開発手順を示した図である。
【図４】ＰＣ１０において実行されるサポートプログラムに含まれている、モーション軌跡の表示プログラムの機能ブロック図である。
【図５】表示データ処理部の詳細を示した機能ブロック図である。
【図６】モータＤＢのデータ構造の一例を示した図である。
【図７】予測位置を表示する処理を示したフローチャートである。
【図８】実測位置を表示する処理を示したフローチャートである。
【図９】制御システム１の適用例である台紙切断装置１Ａの概略構成を示した図である。
【図１０】台紙切断装置１Ａによる台紙９０の切断例を示した図である。
【図１１】モーションプログラムの第１の部分を示した図である。
【図１２】図１１に続く、モーションプログラムの第２の部分を示した図である。
【図１３】図１２に続く、モーションプログラムの第３の部分を示した図である。
【図１４】図１３に続く、モーションプログラムの第４の部分を示した図である。
【図１５】図１１から図１４のモーションプログラムが実行されたときの指令位置の軌跡を、横軸を軸Ａ、縦軸を軸Ｂとして表示したグラフである。
【図１６】図１５のＦＢ９付近の誤差発生マーク２１１をユーザがクリックしたときに、ＰＣ１０が表示する拡大グラフである。
【図１７】図１６の拡大表示画面に、同時刻マーカー、すなわち指令位置マーカーおよび応答位置マーカーを表示した状態を示した図である。
【図１８】連動チェックボックスのチェックを解除した状態で図１５のＦＢ１０とＦＢ１１の間にある誤差発生マークをユーザがクリックしたときに画面に表示される内容を示した図である。
【図１９】横軸を時間、縦軸を軸Ｂとして指令位置と予測位置との軌跡を画面に表示した状態を示した図である。
【図２０】横軸を時間、縦軸を誤差、すなわち同時刻における指令位置と応答位置との間の距離としたグラフを画面に表示した状態を示した図である。
【図２１】横軸を移動量とし、縦軸を指令位置と応答位置との間の垂直誤差を画面に表示した状態を示した図である。
【図２２】３次元空間内の指令位置と応答位置との軌跡を透視図の手法で画面に表示した状態を示した図である。
【図２３】指令位置または応答位置に合わせて動作するＸＹＺステージの仮想装置モデルを図２２に示した３次元空間に配置したときの画面を示した図である。
【図２４】指令位置、指令値、予測位置、実測値の算出処理の主体等について、現実的に採り得る組み合わせを示した図である。
【発明を実施するための形態】
【００２１】
以下、図面を参照しつつ、本発明の実施の形態に係る表示装置について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【００２２】
図１は、本実施の形態に係る制御システム１の概略構成を示した図である。図１を参照して、制御システム１は、ＰＣ（Personal Computer）１０と、ＰＬＣ２０と、サーボアンプ３１〜３３と、サーボモータ４１〜４３とを備える。なお、サーボモータ４１〜４３には、それぞれ、サーボモータ４１〜４３によって駆動される可動機構（図９参照）が接続される。以下では、各サーボモータと各可動機構とを含む装置を、「制御対象」と称する。
【００２３】
ＰＬＣ２０は、電源ユニット２１と、ＣＰＵ（Central Processing Unit）ユニット２２と、Ｉ／Ｏ（Input／Output）ユニット２３と、ＭＣ（Motion Control）ユニット２４と、バックプレーン２５とを備える。電源ユニット２１、ＣＰＵユニット２２、Ｉ／Ｏユニット２３、およびＭＣユニット２４は、バックプレーン２５を介して互いに電気的に接続されている。
【００２４】
ＰＬＣ２０は、モーションプログラムを実行する。本実施形態におけるモーションプログラムは、モータの制御を含むプログラムである。モーションプログラムのシーケンスはラダー図（ラダーダイアグラム）言語等を用いてシーケンスプログラムの形で記述される。シーケンスプログラムにおいては、モータ制御用のＦＢ（Function Block）、すなわちモーションＦＢが用いられる。狭義にはモーションＦＢをモーションプログラムと呼ぶこともある。
【００２５】
ＣＰＵユニット２２は、シーケンスプログラムを実行する。
ＭＣユニット２４は、ＣＰＵユニット２２から、実行するモーションＦＢの種類およびモーションＦＢ実行に必要なパラメータの指示を受ける。ＭＣユニット２４は、当該モーションＦＢの内容を実行する。ＭＣユニット２４は、時間の経過にしたがってサーボアンプ３１〜３３へ一連の指令値を出力する。ＭＣユニット２４は、モーションＦＢの内容の実行状況および実行結果をＣＰＵユニット２２に報告する。なお、ＣＰＵユニット２２から独立したＭＣユニット２４を設けず、ＣＰＵユニット２２がＭＣユニット２４の機能を兼ね備えるようにしてもよい。
【００２６】
Ｉ／Ｏユニット２３は、スイッチ、センサ等からの入力データを取得してＣＰＵユニット２２に提供する。入力データは、ＣＰＵユニット２２においてシーケンスプログラムの中の条件成立の判断等に使用される。
【００２７】
サーボアンプ３１〜３３は、ＭＣユニット２４からの指令値を受けてサーボモータ４１〜４３を駆動するためのモータドライバである。制御システム１においては、サーボモータ４１〜４３に限らずパルスモータなども利用可能である。なお、この場合、採用するモータの種類に応じたモータドライバが用いられる。サーボアンプ３１〜３３は、イーサキャト（EtherCAT）（登録商標）などの通信線６０を介してＭＣユニット２４と接続される。
【００２８】
ＭＣユニット２４からサーボアンプ３１〜３３に与えられる指令値は、モータの位置、速度、トルクなどの値である。なお、本実施の形態では位置の指令値がＭＣユニット２４からサーボアンプ３１〜３３に一定周期で与えられるものとする。
【００２９】
位置の指令値は、サーボモータ４１〜４３の回転位置（回転角度）である場合もあるし、サーボモータ４１〜４３によって駆動される制御対象の特定の部位の位置である場合もある。以下では、位置の指令値に対応して実現されるべき、特に軌跡の表示対象となる制御対象の特定部位の位置を「指令位置」と称する。サーボアンプ３１〜３３には、指令値を正しく解釈して（たとえば指令値に適当な係数を乗じるなどして）サーボモータ４１〜４３を駆動するための設定が予めなされている。サーボアンプ３１〜３３は、サーボモータ４１〜４３に駆動電流を供給する。サーボアンプ３１〜３３は、サーボモータ４１〜４３に設けられたサーボモータの回転位置を検出するエンコーダから、実測値のフィードバックを受ける。サーボアンプ３１〜３３は、実測値および実測値の変化分として算出される実測速度を用いて、実測値が指令値に追従するように駆動電流を制御する。
【００３０】
位置の指令値は、ＭＣユニット２４とサーボアンプ３１〜３３を直結する通信線６０を通して、１制御周期内に送られるパルスの数の形で表現される場合がある。この場合、パルス数は、直前の制御周期における位置からの相対位置（位置の変化量）を表現している。
【００３１】
たとえば、サーボアンプ３１〜３３にはサーボモータ４１〜４３の１回転に対応するパルス数が設定される。また、ＭＣユニット２４には同様にサーボモータ４１〜４３の１回転に対応するパルス数が設定されるほか、サーボモータ４１〜４３の１回転に対応する制御対象の特定部位の移動量が設定される。これらの設定値を用いて、ＭＣユニット２４は、制御周期ごとにプログラムされた制御対象の運動を実現するのに必要な数のパルスをサーボアンプ３１〜３３に送る。
【００３２】
サーボアンプ３１〜３３は、受けたパルスの数に応じてサーボモータ４１〜４３を回転させる。なお、サーボモータ４１〜４３の回転位置を検出するエンコーダがインクリメンタル方式の場合には、ＰＬＣ２０は、位置の実測値についてもサーボモータ４１〜４３の回転角度に対応するパルス数の形で検出する。このため、ＰＬＣ２０は、制御周期ごとに検出される一連のパルス数から制御対象の実測位置を求めることができる。
【００３３】
ＰＣ１０は、軌跡を画面１１に表示する表示装置として機能する。ＰＣ１０はＵＳＢ（Universal Serial Bus）などの通信線７０を介してＣＰＵユニット２２に接続される。ＰＣ１０には、後述するように（図２）、ＰＬＣ２０のサポートプログラムがインストールされている。ＰＬＣ２０のサポートプログラムは、軌跡を画面１１に表示するための表示プログラムを含んでいる。
【００３４】
ＣＤ−ＲＯＭ（Compact Disk - Read Only Memory）９９９は、ＰＬＣ２０のサポートプログラムを格納している。ＰＬＣのサポートプログラムはＣＤ−ＲＯＭ９９９からＰＣ１０にインストールされる。
【００３５】
図２は、ＰＣ１０のハードウェア構成を表わすブロック図である。図２を参照して、ＰＣ１０は、主たる構成要素として、プログラムを実行するＣＰＵ９０１と、データを不揮発的に格納するＲＯＭ（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）、フラッシュＲＯＭなどの半導体メモリ等の
固定的にプログラムを担持する媒体でもよい。また、記録媒体は、当該プログラム等をコンピュータが読取可能な一時的でない媒体である。
【００３９】
ここでいうプログラムとは、ＣＰＵにより直接実行可能なプログラムだけでなく、ソースプログラム形式のプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
【００４０】
図３は、サーボモータを備えた制御対象と、当該制御対象の動作を制御するＰＬＣとを含む制御システムの一般的な開発手順を示した図である。メカ担当者（機構担当者）と制御担当者とが、分担および協力して以下の各工程を行なう。
【００４１】
図３を参照して、ステップＳ２において、メカ担当者が、構想設計を行なう。具体的には、同ステップにおいては、メカ担当者が、制御対象全体の機能、構造、性能などの仕様を決定する。ステップＳ４において、メカ担当者が、制御対象の機構の詳細設計を行なう。同ステップにおいては、メカ担当者が、３次元ＣＡＤを使用して可動部の動作干渉チェックを行なうこともある。
【００４２】
ステップＳ６において、メカ担当者および制御担当者が制御タイミング設計を行なう。具体的には、同ステップにおいては、まず、メカ担当者が装置の各動作のタイミングチャートや速度線図を作成する。メカ担当者は、作成したタイミングチャートや速度線図を、制御担当者に伝達する。制御担当者は、伝達された設計情報をもとに、ＰＬＣの機種およびユニット構成を選定する。
【００４３】
ステップＳ８において、制御担当者は、制御プログラミングを行なう。具体的には、同ステップにおいては、制御担当者は、以下の（ａ）〜（ｅ）に示した作業を行なう。
（ａ）制御担当者は、メモリマップ（ＰＬＣおける制御入力、制御出力の定義）を作成する。
（ｂ）制御担当者は、ＰＬＣ−サーボアンプ間、および複数のＰＬＣを使用する場合のＰＬＣ間の、ネットワークおよびデータリンクを決定する。
（ｃ）制御担当者は、ＭＣユニットおよびサーボアンプのパラメータを決定する。
（ｄ）制御担当者は、ラダー図言語などを用いてシーケンスプログラムを作成する。
（ｅ）制御担当者は、シーケンスプログラム中で使用したモーションＦＢについて、位置、速度などのパラメータを決定する。
【００４４】
ステップＳ１０においては、制御担当者が、オフラインの状態でプログラムのデバックを行なう。具体的には、同ステップにおいて、制御担当者が、ＰＣ１０を用いて机上で以下の（ｆ）〜（ｊ）に示した内容のデバッグを行なう。
（ｆ）制御担当者は、コンパイルエラーが生じた点があれば修正する。
（ｇ）制御担当者は、指令位置の軌跡を参照してモーションＦＢのパラメータの誤りがあれば修正する。
（ｈ）制御担当者は、接点のＯＮ／ＯＦＦ状況などの各種条件においてシミュレートした２次元または３次元の指令位置の空間的軌跡や、各種条件において意図した命令が実行されるかを確認して、シーケンスプログラムに誤りがあれば修正する。
（ｉ）制御担当者は、指令位置とシミュレーションによって得た予測位置との間の誤差が許容範囲を超えていれば、その部分の速度を落とす、誤差を見込んで目標位置を調整するなど、プログラムを修正する。
（ｊ）制御担当者は、動作が一巡するのに要するタクトタイムが設計時間を越えていれば、動作経路を短縮する、位置誤差が許容される部分を高速化する、加速および減速時間を短くするなど、プログラムを修正する。
【００４５】
ステップＳ１２において、メカ担当者および制御担当者が協力して、機械組み立ておよび配線を行なう。さらに、制御担当者は、机上デバッグが完了したモーションプログラムをＰＣ１０からＰＬＣ２０に転送する。
【００４６】
ステップＳ１４において、制御担当者が、制御対象の試験運転および調整を行なう。具体的には、同ステップにおいて、制御担当者が、以下の（ｋ）〜（ｏ）に示した作業を行なう。
（ｋ）制御担当者は、軸ごとにＪＯＧ運転を行って、装置の出来具合に問題がないことを確認する。ここで、「軸」とは、モータの「回転軸」の語に由来して、１つのモータ、または１つのモータおよびそのモータによって駆動される可動部分を指す。ＪＯＧ運転とは、指定した一定の速度で軸を動かし続けることをいう。
（ｌ）制御担当者は、プログラム制御の試運転を行ない、装置が想定どおりの動きをすることを確認する。
（ｍ）制御担当者は、連続運転試験を行なう。
（ｎ）制御担当者は、オンラインデバッグを行なう。すなわち、制御担当者は、ＰＬＣが備えるデータトレース機能により装置の特定部位の一連の実測位置に対応するデータを収集してＰＣに転送し、ＰＣにて実測位置の軌跡を指令位置の軌跡と対比して表示させ、誤差が許容範囲内であることを確認する。
（ｏ）制御担当者は、タクトタイムを測定し、当該測定したタクトタイムが設計時間を越えていれば、オフラインデバッグの場合と同様にして、設計時間以内になるようにプログラムを修正する。
【００４７】
上記ステップＳ１０およびステップＳ１４において、指令位置と予測位置または実測位置との間の誤差を示すために両位置の軌跡が、ＰＣ１０の画面１１に対比表示される。この目的のために、表示装置としてのＰＣ１０が使用される。
【００４８】
図４は、ＰＣ１０において実行されるサポートプログラムに含まれている、モーション軌跡の表示プログラムの機能ブロック図である。サポートプログラムには、表示プログラムの他に、シーケンスプログラム１０１のエディタおよびデバッガ、ＰＬＣ２０との通信プログラム、ＰＬＣ２０の各種設定を行なうプログラムなどが含まれている。
【００４９】
図４を参照して、表示プログラムは、シミュレーション部１０２と、ＦＢライブラリ１０３と、指令値算出部１０４と、指令位置算出部１０５と、予測位置算出部１０６と、トレースデータ記憶部１０７と、表示データ処理部１０８と、表示制御部１０９と、受付部１１０とを備える。予測位置算出部１０６は、モータ電流算出部１６１と、トルク値算出部１６２と、モータＤＢ（Data Base）１６３と、運動方程式計算部１６４と、装置ＤＢ１６５とを含む。
【００５０】
シーケンスプログラム１０１は、ユーザによって作成される。シーケンスプログラム１０１は、シミュレーション部１０２に与えられる。シーケンスプログラム１０１は、表示プログラムの一部ではない。
【００５１】
シミュレーション部１０２は、ＰＬＣ２０のシミュレータとして機能し、シーケンスプログラム１０１を実行する。シミュレーション部１０２においては、必要により実際の制御対象の代わりに、シミュレーション部１０２に入力データを与えるプログラムがシーケンスプログラム１０１に組み合わされて使用される。シミュレーション部１０２は、シーケンスプログラム１０１に含まれるモーションＦＢを実行する段階になると、実行すべきモーションＦＢを指定する情報と当該モーションＦＢの実行に必要なパラメータとを指令値算出部１０４に与える。
【００５２】
ＦＢライブラリ１０３は、ＰＣ１０のＨＤＤ９０４に格納されており、多種類のＦＢを、実行可能なプログラムとして蓄積している。
【００５３】
ＦＢライブラリ１０３は、ＰＬＣ２０がモーションプログラムを実行する際に使用するために、ＰＬＣ２０の中にも備えられている。指令値を計算するためのモーションＦＢは、ＰＬＣ２０において実行が開始された場合には、終了条件が整うまでの間、以下のようにＰＬＣ２０を動作させる。すなわち、指令値を計算するためのモーションＦＢは、与えられたパラメータに基づいてＰＬＣ２０が有する一定の制御周期ごとにＰＬＣ２０が指令値を計算し、当該計算した指令値を出力するように、ＰＬＣ２０を動作させる。
【００５４】
指令値算出部１０４は、ＦＢライブラリ１０３から必要なモーションＦＢを読み出す。指令値算出部１０４は、ＰＬＣ２０におけるＦＢ実行をシミュレートする。指令値算出部１０４は、ＰＬＣ２０における制御周期ごとの出力に対応する一連の指令値を出力する。
【００５５】
指令位置算出部１０５は、指令値から軌跡表示対象とする指令位置を算出する。指令位置は、制御対象の質量および摩擦を無視した場合における、出力された指令値に基づいた制御対象の特定部位の位置である。言い換えれば、指令位置は、制御対象の質量および摩擦を無視した場合に、与えられた一連の指令値によって実現されるべき制御対象の特定部位の位置であるともいえる。また、「一連の指令位置」とは、制御対象の質量および摩擦を無視した場合における、出力された一連の指令値に基づいた制御対象の特定部位の位置である。指令位置算出部１０５は、「第１の位置取得手段」に相当する。
【００５６】
たとえば、ＸＹテーブルのＸ軸のモータの回転角を与える指令値からテーブルのＸ座標を算出する場合のように、１つの軸の指令値と指令位置とが１対１に対応している場合がある。さらに、指令値をそのまま指令位置として使用できる場合もある。
【００５７】
一方、垂直回転軸とそれに取り付けられた水平直動軸で構成されたθＲ極座標系の指令値で駆動されるロボットアーム先端の指令位置をＸＹ直交座標系で表示する場合のように、駆動用の指令値（θ値またはＲ値）と表示用の指令位置（Ｘ値またはＹ値）とが１対１に対応していない場合もある。
【００５８】
なお、指令位置算出部１０５がＰＬＣ２０の実行シミュレーションによって指令位置を算出するのではなく、ＰＬＣ２０自体が算出した制御用の一連の指令値をＰＣ１０が取得して、指令位置算出部１０５が軌跡表示用の指令位置を算出するようにしてもよい。
【００５９】
指令位置算出部１０５が指令位置をシミュレーションによって算出する場合、ＰＬＣ２０の実行シミュレーションおよび指令位置の算出と軌跡の描画とは必ずしも同一のコンピュータで行なう必要はない。たとえば、ＰＣ１０は、他のコンピュータで算出された指令位置を取得して、当該指令位置に基づき軌跡の描画を行なってもよい。その場合は、他のコンピュータから指令位置を取得するための通信インターフェースまたは記憶媒体インターフェースが、「第１の位置取得手段」に相当する。
【００６０】
予測位置算出部１０６は、与えられた指令値から軌跡の表示対象とする制御対象の特定部位の予測位置を算出する。その過程で、予測位置算出部１０６は、モータの仕様に関するデータを格納しているモータＤＢ１６３と、制御対象の仕様に関するデータを格納している装置ＤＢ１６５とから必要なデータを読み出し、当該読み出したデータを利用する。予測位置算出部１０６は、「予測位置取得手段」に相当する。
【００６１】
予測位置の算出と軌跡の描画とは必ずしも同一のコンピュータで行なう必要はない。たとえば、ＰＣ１０は、他のコンピュータで算出された予測位置を取得して軌跡描画をするようにしてもよい。その場合は、他のコンピュータから予測位置を取得するための通信インターフェースまたは記憶媒体インターフェースが、「予測位置取得手段」に相当する。
【００６２】
モータ電流算出部１６１は、与えられた指令値からサーボモータ４１〜４３に供給する電流値を算出する。
【００６３】
トルク値算出部１６２は、与えられた電流値とモータＤＢ１６３から読み出した使用するサーボモータのモータトルク係数とから、当該サーボモータが発揮するトルク値を算出する。
【００６４】
運動方程式計算部１６４は、与えられたトルク値と、モータＤＢ１６３から読み出した使用するサーボモータの慣性モーメント、動摩擦係数などの値と、装置ＤＢ１６５から読み出した制御対象の当該サーボモータで駆動される部分の慣性モーメント、動摩擦係数などの値とから、予測位置を算出する。
【００６５】
指令値から電流値を算出するときに必要となるサーボモータの制御系モデルは、サーボアンプごとにブロック線図として一般に公開されており、当該ブロック線図の情報が表示プログラムに組み込まれている。
【００６６】
トルク値算出部１６２は、モータのトルク値Ｔｍを下記の式（１）にしたがい算出する。
【００６７】
Ｔｍ＝ＫＴＩ  …  （１）
ただし、
ＫＴは、モータごとの定数であるモータトルク係数であり、
Ｉは、モータ電流である。
【００６８】
運動方程式計算部１６４が予測位置を求める場合には、慣性モーメント（すなわち質量のモーメント）と角加速度との積が、モータトルク、各種摩擦などにより発生する力と等しいとおいた運動方程式を用いることができる。すなわち、予測位置は、前記制御対象の質量および摩擦のうち少なくとも一つを考慮したシミュレートがなされた場合における、前記一連の指令値に基づいた制御対象の特定部位の位置であるといえる。
【００６９】
たとえば、モータ軸の運動方程式は次の式（２）で表される。
Ｉｍθ’’＝Ｔｍ−ｋｍθ’−μｍＮｍ  …  （２）
ただし、
Ｉｍは、モータの慣性モーメント、
θは、モータの回転角度、
θ’は、θの微分、すなわちモータの回転速度、
θ’’は、θの２次微分、すなわちモータの回転角加速度、
Ｔｍは、上記モータのトルク値、
ｋｍは、モータの粘性摩擦係数、
μｍは、モータの動摩擦係数、
Ｎｍは、モータの垂直抗力である。
【００７０】
Ｉｍ、ｋｍ、μｍ、Ｎｍは、モータ毎に定められる定数であり、モータＤＢ１６３から取得される。サーボモータ４１〜４３の回転角度θが予測位置に相当する。モータによって駆動される特定部位の位置を軌跡表示対象の予測位置とする場合は、サーボモータ４１〜４３の回転角度θから適当な換算を行ない、当該換算後の値を予測位置とする。
【００７１】
運動方程式には、サーボモータ４１〜４３が駆動する駆動装置の定数を考慮することもできる。たとえば、サーボモータ４１〜４３に減速機を接続した場合の運動方程式は次の式（３）のとおりである。
【００７２】
ＩＧθＧ’’＝ＴＧ−ＣＧθＧ’−μＧＮＧ  …  （３）
ただし、
ＩＧは、減速機の慣性モーメント、
θＧは、減速機の回転角度、
θＧ’ は、減速機の回転角速度、
θＧ’’ は、減速機の回転角加速度、
ＴＧは、ＴＧ＝ｎＧＨＧＴｍによって算出される減速機の駆動トルク、
ただし
Ｔｍは、上記モータのトルク値、
ｎＧは、伝達効率、
ＨＧは、力の伝達倍率、
ＣＧは、減速機内部のバレルの粘性摩擦係数、
μＧは、減速機の動摩擦係数、
ＮＧは、減速機の垂直抗力である。
【００７３】
ＩＧ、ｎＧ、ＨＧ、ＣＧ、μＧ、ＮＧは、減速機毎に定められた定数であり、装置ＤＢ１６５から取得される。減速機の回転角度θＧが予測位置に相当する。減速機を介してモータによって駆動される装置部位の位置を軌跡表示対象の予測位置とする場合は、減速機の回転角度θＧから適当な換算を行ない、当該換算後の値を予測位置とする。
【００７４】
また、必要に応じて、サーボモータ４１〜４３によって駆動される他の構造部分の定数も考慮して運動方程式を立てることもできる。
【００７５】
トレースデータ記憶部１０７には、ＰＬＣ２０から取得したＰＬＣ２０に蓄積されている一連の指令値および一連の実測値を、軌跡表示のために使用可能な指令位置および実測位置にあらかじめ変換した一連の位置データが記憶されている。トレースデータ記憶部１０７は、「実測位置取得手段」に相当する。
【００７６】
なお、ＰＣ１０は、「予測位置取得手段」および「実測位置取得手段」の少なくともいずれかを備えていれば、ＰＣ１０は「応答位置取得手段」を備えていることになる。
【００７７】
表示データ処理部１０８は、指令位置算出部１０５から指令位置、予測位置算出部１０６から予測位置、トレースデータ記憶部１０７から指令位置および実測位置、受付部１１０から操作データの入力を受け付ける。表示データ処理部１０８は、入力されたデータを用いて各種表示データを作成し、当該作成した各種表示データを表示制御部１０９に出力する。表示データ処理部１０８の詳細な処理内容については後述する。
【００７８】
表示制御部１０９は、表示データ処理部１０８が生成した表示データをモニタ９０７の画面１１に表示させる。表示制御部１０９は、ＰＣ１０におけるモニタ９０７の表示制御を行なう。つまり、表示制御部１０９により、モニタ９０７の画面１１に各種の画像が表示される。
【００７９】
受付部１１０は、ユーザによるマークの選択操作を受け付ける。なお、マークについては後述する。
【００８０】
図５は、表示データ処理部１０８の詳細を示した機能ブロック図である。図５を参照して、表示データ処理部１０８は、表示データ作成処理制御部１０８１と、誤差算出部１０８２と、判定部１０８３と、第１表示データ作成部１０８４と、第２表示データ作成部１０８５と、第３表示データ作成部１０８６とを備える。
【００８１】
表示データ作成処理制御部１０８１は、受付部１１０から入力された操作データに基づいて、(I)表示する画面の種類の遷移制御、(II)スクロールや表示倍率変更の制御、(III)画面内容の部分的な書き換えの制御、(IV)入力した指令位置、予測位置、実測位置のデータの、第１、第２、第３表示データ作成部１０８４，１０８５，１０８６および誤差算出部１０８２への表示しようとする画面内容に応じた伝達制御、(V)判定部１０８３による判定内容の各表示データ作成部１０８４，１０８５，１０８６への伝達制御、(VI)各表示データ作成部１０８４，１０８５，１０８６で作成された表示データの表示制御部１０９への送出制御などを行なう。
【００８２】
誤差算出部１０８２は、指令位置と当該指令位置に対応する予測位置または実測位置との位置の差を算出する。
【００８３】
判定部１０８３は、誤差算出部１０８２により算出された差が予め定められた閾値以上であるか否かを判定する。
【００８４】
第１表示データ作成部１０８４は、一連の指令位置によって形成される空間的軌跡、一連の予測位置によって形成される空間的軌跡、および一連の実測位置によって形成される空間的軌跡の少なくともいずれかを画面に表示させるためのデータを作成する。空間的軌跡は２次元である場合と３次元である場合とがある。２次元の空間的軌跡は、３次元空間内の軌跡が平面に投影されたものである。第１表示データ作成部１０８４は、さらに、空間的軌跡のうち、判定部１０８３により誤差が閾値以上であると判定された部分を示す誤差発生マークを画面に表示させるためのデータを作成する。
【００８５】
第２表示データ作成部１０８５は、ユーザの操作により選択された誤差発生マークに対応する部分の指令位置の空間的軌跡と、当該空間的軌跡に対応する予測位置または実測位置の空間的軌跡とを同じ倍率で拡大した態様であって、拡大された各空間的軌跡が互いに重なる態様にて、各空間的軌跡を画面に表示させるためのデータを作成する。空間的軌跡は２次元である場合と３次元である場合とがある。
【００８６】
第３表示データ作成部１０８６は、第１の軸、たとえば横軸を時間または移動量とする２次元グラフを表示するためのデータを作成する。この２次元グラフの第２の軸、たとえば縦軸は、次のような種類の中から選ばれる。縦軸の第１の態様は、指令位置、予測位置、もしくは実測位置、またはそれらいずれかの位置に基づき算出された制御対象の特定部位の速度である。縦軸の第２の態様は、誤差算出部１０８２により算出された差の大きさである。縦軸の第３の態様は、指令位置の空間的軌跡の接線方向に対して垂直な方向に沿った、指令位置の空間的軌跡から予測位置または実測位置の空間的軌跡までの距離である。第３表示データ作成部１０８６は、さらに、判定部１０８３により誤差が閾値以上であると判定された部分を示す誤差発生マークを２次元グラフ上に表示させるためのデータを作成する。
【００８７】
図６は、モータＤＢ１６３のデータ構造の一例を示した図である。図６を参照して、モータＤＢ１６３では、サーボモータのモータ型式、定格出力、慣性モーメント、粘性摩擦係数、動摩擦係数等を、互いに対応付けてテーブル形式で格納している。また、装置ＤＢ１６５も、モータＤＢ１６３と同様に、制御対象毎に各種定数をテーブル形式で格納している。
【００８８】
図７は、予測位置を表示する処理を示したフローチャートである。図７を参照して、ステップＳ２２において、シミュレーション部１０２は、シーケンスプログラム１０１を読み出す。ステップＳ２４において、シミュレーション部１０２は、実行すべき命令またはモーションＦＢを取得する。ステップＳ２６において、シミュレーション部１０２は、取得したデータが、モーションＦＢか否かを判断する。
【００８９】
シミュレーション部１０２は、モーションＦＢでないと判断した場合（ステップＳ２６においてＮＯ）、ステップＳ２８において取得した命令を実行する。ステップＳ３０において、シミュレーション部１０２は、シーケンスプログラム１０１の実行が終了したか否かを判断する。シミュレーション部１０２が、シーケンスプログラム１０１の実行が終了したと判断した場合（ステップＳ３０においてＹＥＳ）、ステップＳ３２において、表示制御部１０９は軌跡を画面１１に表示させる。シミュレーション部１０２が、シーケンスプログラム１０１の実行が終了していないと判断した場合（ステップＳ３０においてＮＯ）、処理をステップＳ２４に進める。
【００９０】
シミュレーション部１０２がモーションＦＢであると判断した場合（ステップＳ２６においてＹＥＳ）、ステップＳ３４において、指令値算出部１０４は、シミュレーション部１０２から指定されたモーションＦＢをＦＢライブラリ１０３から読み出す。
【００９１】
ステップＳ３６において、指令値算出部１０４はループ処理を開始し、ステップＳ４０において、指令値算出部１０４は当該ループ処理を終了する。当該ループ処理では、一定の時間間隔でシミュレーション上の時間を進めながら、読み出したモーションＦＢの終了まで処理を繰り返し実行する。当該ループ処理中においては、ステップＳ３８において、指令値算出部１０４は、モーションＦＢを実行して指令値を算出する処理を繰り返す。
【００９２】
ステップＳ４２において、指令位置算出部１０５は、一連の指令値に対応する一連の指令位置を算出する。ステップＳ４４において、予測位置算出部１０６は、一連の指令位置に対応する一連の予測位置を算出する。
【００９３】
図８は、実測位置を表示する処理を示したフローチャートである。図８を参照して、表示データ処理部１０８は、ステップＳ５２において、トレースデータ記憶部１０７から一連の実測位置を取得する。ステップＳ５４において、表示制御部１０９は、表示データ処理部１０８が取得した実測位置を、モニタ９０７の画面１１に表示させる。
【００９４】
図９は、制御システム１の適用例である台紙切断装置１Ａの概略構成を示した図である。図９を参照して、台紙切断装置１Ａは、ＰＣ１０（図示せず）と、ＰＬＣ２０と、サーボアンプ３１〜３３と、通信線６０と、制御対象の可動機構である１軸のステージ機構５０１〜５０３とを備える。
【００９５】
Ｚ方向のステージ機構５０１は、サーボモータ４１と送りねじ５１とを含む。送りねじ５１は、ねじ軸に螺合するナット５１ａを有する。Ｘ方向のステージ機構５０２は、サーボモータ４２と送りねじ５２とを含む。送りねじ５２は、ねじ軸に螺合するナット５２ａを有する。Ｙ方向のステージ機構５０３は、サーボモータ４３と送りねじ５３とカッター５４とを含む。送りねじ５３は、ねじ軸に螺合するナット５３ａを有する。カッター５４は、ナット５３ａに固定されている。
【００９６】
カッター５４は、刃先がＺ軸負方向（台紙９０の方向）を向いている。カッター５４は、サーボモータ４１〜４３の駆動により、Ｘ軸方向、Ｙ軸方向、およびＺ軸方向に移動可能となっている。カッター５４は、台紙９０を切断するために設けられている。
【００９７】
図１０は、台紙切断装置１Ａによる台紙９０の切断例を示した図である。図１０を参照して、図９のスイッチ８０をＯＮにすると、台紙切断装置１Ａは、初期位置Ｏ(0,0,0)に待機しているカッター５４をＰ６に移動する。その後、台紙切断装置１Ａは、カッター５４を台紙９０に降ろして、Ｐ１→Ｐ２→Ｐ３→Ｐ４→Ｐ５→Ｐ１とカッター５４を移動する。台紙切断装置１Ａは、当該移動によって台紙９０を切断する。その後、台紙切断装置１Ａは、カッター５４を上昇してＰ６へ移動し、切断処理を終了する。
【００９８】
図１１から図１４は、図９の台紙切断装置１Ａに図１０に示した台紙切断処理を実行させるモーションプログラムの一例を示した図である。なお、当該モーションプログラムにおいては、動作開始時に初期位置Ｏ(0,0,0)へカッター５４の位置を合わせる処理、および、動作完了後に初期位置Ｏ(0,0,0)へカッター５４を復帰させる部分の記載は省略している。
【００９９】
モーションプログラム中において、ＦＢ１からＦＢ１３はモーションＦＢである。ＦＢの左側の端子はＦＢへの入力を表し、ＦＢの右側の端子はＦＢからの出力である。実際に製品化されているＦＢにはより多くの入力端子、出力端子があって多様な設定をすることができるが、説明に使用しない端子は図示していない。ＦＢからの図示されている出力は、シーケンスプログラムの他の部分に対する出力である。ＰＬＣ２０においてモーションＦＢが実行されると、算出された指令値やサーボアンプ３１〜３３に対するその他の信号がＭＣユニット２４から出力される。しかしながら、当該指令値や当該信号を出力する処理は、ＦＢのＭＣユニットに対する機能である。このため、シーケンスプログラムの表記においては、当該機能は表現されない。
【０１００】
ＦＢに入力される位置の数値の単位はｍｍであり、速度の数値の単位はｍｍ／secである。ＦＢを実行した結果、ＭＣユニット２４からサーボアンプ３１〜３３に実際に送られる指令値はモータの回転角度を表す値に変換されている。
【０１０１】
図１１は、モーションプログラムの第１の部分を示した図である。図１１を参照して、モーションプログラムのそれぞれの行には、以下の（Ａ）〜（Ｃ）の処理が記述されている。
（Ａ）第１〜３行目：接点Switch_StatusがＯＮになる（図９のスイッチ８０がＯＮになる）と、軸Ｘ、Ｙ、Ｚのそれぞれに接続されたサーボモータ４１〜４３は動作可能な状態になる。
（Ｂ）第４行：３軸のサーボモータ４１〜４３全てが動作可能状態であるとき、コイルAll_PowerはＯＮになる。
（Ｃ）第５〜６行：カッター５４が図１０（ａ）の座標Ｐ６へ移動中か否かが判定される。サーボモータ４１〜４３全てが動作可能状態になったときに、コイルUnder_MovingP6はＯＮになる。
【０１０２】
図１２は、図１１に続く、モーションプログラムの第２の部分を示した図である。図１２を参照して、モーションプログラムのそれぞれの行には、以下の（Ｄ）〜（Ｇ）の処理が記述されている。
（Ｄ）第７〜９行：図１０（ａ）の座標Ｐ６へカッター５４を移動させる。ＦＢ４、ＦＢ５、ＦＢ６は、１軸についての一連の指令値を算出するＦＢである。Axisは軸の指定を入力する端子であり、当該端子から入力されているAxisAはＸ軸、AxisBはＹ軸、AxisCはＺ軸を指定することを表す。Positionは移動先の座標、Velocityは移動速度の指定を入力する端子である。指定される座標は図１０に示されるとおりである。例えばＰ６のＸＹＺ座標は(100,100,200)であるから、P6_Position_Xの値として100が与えられる。P6_Velocity_X, P6_Velocity_Y, P6_Velocity_Zの値はそれぞれ、41,41,82である。
（Ｅ）第１０行：Ｘ、Ｙ、Ｚの各軸が座標Ｐ６へ移動完了したかどうかが判定される。
（Ｆ）第１１〜１２行：待機中かどうかが判定される。座標Ｐ６への移動が完了し、外部から停止要求（Request_Stop）が入力されると、コイルUnder_WaitingはＯＮになる。
（Ｇ）第１３〜１４行：座標Ｐ１への下降中かどうかが判定される。待機状態が解除されたとき、コイルUnder_MovingDownはＯＮになる。
【０１０３】
図１３は、図１２に続く、モーションプログラムの第３の部分を示した図である。図１３を参照して、モーションプログラムのそれぞれの行には、以下の（Ｈ）〜（Ｊ）の処理が記述されている。
（Ｈ）第１５行：台紙９０へのカッター５４の下降動作（Ｐ６からＰ１への移動）が実行される。ＦＢ７は、１軸についての一連の指令値を算出するＦＢである。AxisCの入力によりＺ軸が指定されている。P1_Position_Zの値は0、Down_Velocityの値は100である。
（Ｉ）第１６〜１７行：カッティング動作中かどうかが判定される。座標Ｐ１へのカッター下降動作が完了したとき、コイルUnder_CuttingはＯＮになり、五角形の各辺を切断後にカッター５４が再び座標Ｐ１へ戻ったとき、コイルUnder_CuttingはＯＦＦになる。
（Ｊ）第１８行：カッター５４を座標Ｐ１→Ｐ２→Ｐ３→Ｐ４→Ｐ５→Ｐ１へと順に移動させる。ＦＢ８〜ＦＢ１２は、そのＦＢの実行開始位置と指定された実行終了位置とを結ぶ直線に沿って移動するようにＸ軸とＹ軸を同時に駆動するＦＢである。ＦＢ８の入力のMoveP2_Positionの値は、Ｐ２のＸＹ座標(159,181)である。MoveP2_VelocityはＰ１からＰ２にいたる直線に沿った移動速度である。ＦＢ８〜ＦＢ１２に入力される移動速度の値はいずれも100である。
【０１０４】
図１４は、図１３に続く、モーションプログラムの第４の部分を示した図である。図１４を参照して、モーションプログラムのそれぞれの行には、以下の（Ｋ），（Ｌ）の処理が記述されている。
（Ｋ）第１９〜２０行：カッター５４が上昇動作中かどうかが判定される。
（Ｌ）第２１行：カッター５４の上昇動作（Ｐ１からＰ６への移動）が実行される。なお、Up_Velocityの値は100である。
【０１０５】
図１５は、図１１から図１４のモーションプログラムが実行されたときの指令位置の軌跡を、横軸を軸Ａ、縦軸を軸Ｂとして表示したグラフである。図１５を参照して、軸Ａ、軸Ｂは、ＭＣユニット内部で使用する軸名称であり、図９の送りねじ５２の軸（Ｘ軸）、送りねじ５３の軸（Ｙ軸）に相当する。ユーザは、画面１１における上部のプルダウンメニュー２０１，２０２により、横軸、縦軸にはそれぞれ軸Ａ（Ｘ軸）、軸Ｂ（Ｙ軸）、軸Ｃ（Ｚ軸）のうちの任意の軸を指定することができる。
【０１０６】
ユーザは、画面１１における上部の選択チェックボックス２０３〜２０５により、指令位置、予測位置、実測位置のいずれの軌跡を表示するかを選択することができる。
【０１０７】
ＰＣ１０は、指令位置の軌跡は点線にて、応答位置（予測位置または実測位置）の軌跡は実線にて、それぞれ画面１１に表示する。図１５ではＰＣ１０は指令位置と予測位置とを表示させているが、ユーザには、双方の軌跡が重なって実線のみ表示されているように見えている。一般に、数１００ｍｍの範囲での動作において指令位置と応答位置との間に発生する誤差は数十μｍ程度であり、ユーザは、図１５のように軌跡全体を表示可能なグラフの縮尺では誤差を確認できない。ＰＣ１０は、軌跡が重なって２つの軌跡を識別できないような縮尺のときには、いずれかの軌跡の表示処理自体を省略してもよい。
【０１０８】
軌跡の脇に表示されている「ＦＢ９▽」などは、表示されたモーションＦＢの実行が開始されるときの位置（その前に実行されたＦＢが終了したときの位置）を表している。
【０１０９】
視野変更ハンド２０６は、マウスポインタの一種であり、軌跡がグラフの外枠からはみ出しているときにグラフの表示範囲を移動させることができることを示している。ユーザがグラフ上でマウスのドラッグ操作をすると、ＰＣ１０は、マウスポインタを変化させ、マウスの移動に対応して表示しているグラフを移動する。
【０１１０】
拡大／縮小スライドバー２０７，２０８は、それぞれ、グラフの縦軸・横軸の縮尺を表している。拡大／縮小スライドバー２０７，２０８上のつまみをユーザが上下に移動させることにより、ＰＣ１０は縦軸・横軸の縮尺を変更する。ユーザが連動チェックボックス２０９にチェックを入れておくと、ＰＣ１０は、縦軸・横軸の一方の縮尺が変わると他方も同じ縮尺になるよう追従させる。一方、連動が解除された状態では、ユーザは縦軸・横軸の縮尺を独立に変えることができる。
【０１１１】
誤差発生マーク２１１，２１２は、誤差が大きい軌跡の箇所を示すマークである。換言すれば、誤差発生マーク２１１，２１２は、誤差が予め定められた閾値以上である部分を示すマークである。以下では、誤差が大きい箇所を、「誤差が発生していていると判定した部分」、または「誤差が発生している部分」とも称する。その判定基準については後述する。
【０１１２】
ＰＣ１０は、誤差が大きい箇所を点線の矩形で囲った状態で、当該箇所を表示する。ＦＢ１０からＦＢ１１にいたる経路上では誤差の大きい箇所が断続的に多数存在しているが、誤差発生箇所が互いに近い場合には、ＰＣ１０は、図示されるようにそれらを囲む１つの図形を表示する。誤差発生マーク２１１，２１２の形状や色彩は、視認が容易になるように任意に設計することができる。
【０１１３】
ＰＣ１０は、誤差が発生していると判定した部分の軌跡自体の色彩を変化させ、当該色彩が変化した軌跡部分を誤差発生マークとして表示することもできる。この場合、誤差が発生している部分の長さが短いと、ユーザは、当該部分だけ色彩を変えても視認することが困難である。それゆえ、ＰＣ１０は、軌跡の色彩を変化させるときには実際に誤差が発生している部分の軌跡の長さにかかわらず、当該部分を容易に視認できるだけの長さにわたって色彩を変化させるとよい。
【０１１４】
ＰＣ１０は、誤差が発生していると判定した部分の軌跡自体の色彩を変化させる場合においても、誤差発生マーク２１１，２１２である図形を表示するようにしてもよい。
【０１１５】
ユーザが誤差発生マーク２１１，２１２をクリックすると、ＰＣ１０は、画面遷移を行ない、誤差が発生している部分を拡大表示する。
【０１１６】
図１６は、図１５のＦＢ９付近の誤差発生マーク２１１をユーザがクリックしたときに、ＰＣ１０が表示する拡大グラフである。図１６を参照して、ＰＣ１０は、指令位置２２４に対して誤差が大きい部分の応答位置（この場合は予測位置）２２１〜２２３の軌跡を誤差の大きさに応じて２段階に色彩を変化させて表示している。ＰＣ１０は、このように色彩を変化させることにより、応答位置の軌跡自体によって誤差の大きさを、ユーザにとって明瞭な状態で表示することができる。
【０１１７】
ＰＣ１０は、拡大グラフの表示縮尺を、誤差の発生状況を観察するのに適した大きさに自動調整する。たとえば、ＰＣ１０は、表示する目盛数を固定値とした場合、縦軸の目盛幅を次の方法で求める。
【０１１８】
縦軸目盛幅 ＝ (縦軸最大値 − 縦軸最小値)／目盛数
ここで、
縦軸最大値 ＝ ｍａｘ(抽出した区間における応答値の軸Ｂ最大値，抽出した区間における指令値の軸Ｂ最大値)と、
縦軸最小値 ＝ ｍｉｎ(抽出した区間における応答値の軸Ｂ最小値，抽出した区間における指令値の軸Ｂ最小値)とする。
【０１１９】
また、ＰＣ１０は、目盛幅が１、２または５に１０のべき乗を乗じた値になるように表示を調整する。ＰＣ１０は、横軸についても縦軸と同様の処理を行なう。
【０１２０】
その後、ユーザは、拡大／縮小スライドバー２０７，２０８を用いて手動で縮尺を変えることもできる。ユーザは、連動チェックボックス２０９のチェックをはずして、縦軸、横軸の縮尺を独立に変えることもできる。この場合でも、縮尺の変更は指令位置軌跡と応答位置軌跡の両方で行われるため、指令位置軌跡と応答位置軌跡との縦軸の縮尺同士、および横軸の縮尺同士は同一である。
【０１２１】
このように、ＰＣ１０は、選択された誤差発生マークに対応する部分の指令位置の空間的軌跡とそれに対応する応答位置の空間的軌跡とを重ねた態様で両軌跡とも同じ倍率で拡大して画面１１に表示させる。より正確には、ＰＣ１０は、選択された誤差発生マークに対応する部分の指令位置の空間的軌跡と当該空間的軌跡に対応する応答位置の空間的軌跡とを同じ倍率で拡大した態様であって、当該拡大された各空間的軌跡が互いに重なる態様にて、各空間的軌跡を画面１１に表示する。このため、ユーザにとって、誤差の発生状況がわかりやすい。
【０１２２】
なお、２次元軌跡データ生成部１８１は、基本的に同じプログラムを用いて、図１５の軌跡表示画面および図１６の軌跡の拡大表示画面を作成している。
【０１２３】
ユーザは、図１５の表示画面から手動で縮尺を拡大し、視野変更ハンド２０６を操作して表示箇所を調整すれば、手動操作で図１６に示した画面１１を表示させることも可能である。この場合、ＰＣ１０は、誤差の大きさがグラフ上で容易に視認できる大きさになった段階で、誤差発生マークの表示をやめる。もっとも、ＰＣ１０は、当該段階になっても誤差発生マークの表示を継続しても差し支えない。もちろん、第１の表示データ作成部１８１３と第２の表示データ作成部１８１４とを別のプログラムで実現するようにして、表示データの作成を分担してもよい。
【０１２４】
ユーザは、上記のように手動操作のみによってもＰＣ１０に拡大表示をさせることは可能であるが、誤差発生マークのクリック操作による画面遷移を利用すると誤差の発生状況を迅速に確認することができる。図１６の表示画面から図１５の表示画面に戻ることができるように、たとえばバックスペースキーを押すと表示が戻るようにＰＣ１０を設計しておくとよい。
【０１２５】
図１７は、図１６の拡大表示画面に、同時刻マーカー、すなわち指令位置マーカーおよび応答位置マーカーを表示した状態を示した図である。図１７を参照して、指令位置マーカー２３２と応答位置マーカー２３１とは、互いに同じ時刻における指令位置と応答位置を示す図形である。ＰＣ１０は、マーカーにいたるまでの部分を軌跡として表示しているが、図１６と同様に表示範囲におさまる軌跡の全体を表示してもよい。このようなマーカーにより、ＰＣ１０は、同時刻における指令位置と応答位置との間の位置関係を明瞭に表示することができる。
【０１２６】
ユーザは、マーカーに対応する時刻を変更する操作を、画面１１における左下の各種ボタン２３３〜２３６および当該各種ボタンの横に配置されたスライドバー２３７にて行なう。
【０１２７】
スライドバー２３７は、バーの長さが、１タクトに相当するモーションプログラムの実行開始から終了までにかかる時間の長さを表している。スライドバー２３７上のつまみ２３７１の位置が経過時間（時刻）を表している。ＰＣ１０は、当該時刻における軌跡上の位置にマーカーを表示する。つまみ２３７１は、マウスによるドラッグ操作で左右に移動可能である。ユーザのつまみ２３７１の操作に合わせて、ＰＣ１０はマーカーの位置を変化させる。
【０１２８】
ユーザが再生ボタン２３５を押すと、ＰＣ１０は、実時間の経過に合わせて、スライドバー２３７上のつまみ２３７１とマーカーの位置とを右へ動かす。ユーザが早送りボタン２３６を押すと、ＰＣ１０は、実時間の経過よりも速く、スライドバー２３７上のつまみ２３７１の位置とマーカーの位置とを右へ動かす。ユーザが逆再生ボタン２３４を押すと、ＰＣ１０は、実時間の経過と同じペースで過去方向に、スライドバー２３７上のつまみ２３７１の位置とマーカーの位置とを左へ動かす。ユーザが巻戻しボタン２３３を押すと、ＰＣ１０は、実時間の経過よりも速いペースで過去方向に、スライドバー２３７上のつまみ２３７１の位置とマーカーの位置とを左へ動かす。ＰＣ１０は、図１５および後述の図１８、１９の表示画面においても、スライドバー２３７と同時刻マーカーとの表示を行なうことができる。
【０１２９】
図１８は、連動チェックボックス２０９のチェックを解除した状態で図１５のＦＢ１０とＦＢ１１の間にある誤差発生マーク２１２をユーザがクリックしたときに画面１１に表示される内容を示した図である。より詳しくは、図１８は、図１５に示した表示内容から遷移した後の画面１１であって、ユーザが誤差を視認できる倍率で横軸方向を選択的に拡大したときに表示される画面１１を示した図である。
【０１３０】
ＰＣ１０は、誤差が断続的に発生している領域の全体を表示できるように、縦軸方向の表示倍率を決定する。ユーザが、連動チェックボックス２０９のチェックを解除しないで誤差発生マーク２１２をクリックした場合には、ＰＣ１０は、横軸方向に発生している誤差がユーザに視認できる大きさに横軸方向の表示を拡大し、かつ縦軸方向の表示も横軸方向の拡大倍率と同じ倍率で拡大する。このため、ＰＣ１０は、縦軸方向について、誤差が発生している軌跡部分のごく一部しか表示しない。
【０１３１】
ユーザは、図１５に示した表示画面から手動で図１８に示した画面１１を表示させるときには、視野変更ハンド２０６を操作してＦＢ１０とＦＢ１１との中点を画面１１の中央付近に表示させた上で、横軸の縮尺を拡大すればよい。ここで、図１５に示した表示画面から手動で図１８に示した画面１１を表示させるときに、ユーザは、誤差発生マークのクリック操作による画面遷移を利用すれば、誤差の発生状況を迅速に確認することができる。
【０１３２】
表示用の縦軸、横軸の方向を、軸Ａ方向、軸Ｂ方向のような制御対象の制御に関して使用されている座標系の軸方向とは異なる任意の方向に設定できるようにしてもよい。たとえば、表示用の横軸の方向を軸Ａと軸Ｂが張る平面内で軸Ａの方向に対して反時計回りに１８度の方向に設定すると、画面に表示される軌跡図形は、図１５に表示された軌跡図形に対して時計回りに１８度回転した態様で表示される。そうすると、ＦＢ１１からＦＢ１２にいたる軌跡の直線状の部分が横軸と平行になる。その状態で、縦軸方向を選択的に拡大すれば、ユーザは、ＦＢ１１とＦＢ１２の間の軌跡について、進行方向に垂直な方向の誤差の発生状況を観察することができる。
【０１３３】
以上のとおり、ＰＣ１０は、１つの方向と当該方向に直交する方向との間で軌跡の表示倍率を異ならせることができる。このため、局所的に誤差の発生方向がほぼ一定である場合に、ＰＣ１０が、誤差の発生方向の表示倍率を相対的に大きく、誤差の発生方向と直交する方向の表示倍率を相対的に小さくすれば、ＰＣ１０は、誤差の発生状況を大きな表示倍率で示しながら比較的広い範囲の軌跡を表示することができる。
【０１３４】
図１９は、横軸を時間、縦軸を軸Ｂとして指令位置と予測位置との軌跡を画面１１に表示した状態を示した図である。ＰＣ１０は、縦軸として表示している軸方向において誤差が発生していると判定された箇所に誤差発生マーク２４１を表示する。ユーザは、図１９は図１５と比べて、単軸における誤差の発生箇所を確認しやすい。ユーザが誤差発生マーク２４１をクリックすると、ＰＣ１０は、画面１１に表示する内容を、図１９に示した表示内容から、図１６に示した表示内容（拡大表示画面）に遷移させる。ユーザが誤差発生マーク２４１をクリックすると、ＰＣ１０は、画面遷移を行ない、横軸を時間とし縦軸を軸Ｂとしたまま図１９のグラフの一部を拡大した画像を画面１１に表示させてもよい。
【０１３５】
図１９の横軸を、時間に代えて、動作開始からの移動量（本実施の形態では座標Ｐ６からの移動量）としてもよい。図１９の縦軸は、位置（指令位置または応答位置）に代えて、速度（指令位置の変化から算出された速度または応答位置の変化から算出された速度）としてもよい。本実施形態では、モーションプログラムの設計上参照されることの多い、横軸を時間または移動量、縦軸を位置または速度とするグラフから、誤差発生部分の軌跡を拡大した拡大表示に直接遷移することができる。
【０１３６】
図２０は、横軸を時間、縦軸を誤差、すなわち同時刻における指令位置と応答位置との間の距離としたグラフを画面１１に表示した状態を示した図である。なお、ＰＣ１０は、横軸を移動量としてもよい。Ｔｈ１は、誤差が発生していると判定するための閾値である。
【０１３７】
通常の軌跡の表示色彩を第１の色彩とすると、ＰＣ１０は、図１６から図１８において誤差がＴｈ１を越える部分（たとえば図１６では応答位置２２１，２２３）の軌跡を第２の色彩で表示す。Ｔｈ２は、さらに大きな誤差が発生していることを判定するための閾値である。ＰＣ１０は、図１４から図１６において誤差がＴｈ２を越える部分（たとえば図１６では応答位置２２２）の軌跡を第３の色彩で表示する。各閾値の大きさはユーザが調整可能にＰＣ１０が構成されている。本実施形態では、ＰＣ１０は、応答位置の軌跡自体によって誤差の大きさを明瞭に表示することができる。
【０１３８】
本実施形態では、ＰＣ１０は、同時刻における指令位置と応答位置との距離を、３次元空間内での距離として算出している。しかしながら、これに限定されず、ＰＣ１０は、２つの軸を選択して当該各軸がなす平面に投影された指令値と応答位置との距離、あるいは１つの軸を選択して当該軸上に投影された指令値と応答位置との距離を算出してもよい。
【０１３９】
図２０に示したグラフによれば、ユーザは、誤差の量と誤差が発生した時刻とを確認できる。ユーザは、指令値やサーボパラメータを適切にチューニングするための参考情報として、当該確認した誤差を用いることができる。
【０１４０】
図２０に示した画面１１にも誤差発生マーク２５１，２５２が表示されており、ユーザが誤差発生マーク２５１，２５２をクリックすると、ＰＣ１０は、画面１１に表示させる内容を、図１６に示した表示内容（拡大表示画面）に遷移する。すなわち、ＰＣ１０は、図２０に示した画面１１を表示することにより、時間または移動量の軸上での誤差の大きさの推移を示すことができる。さらに、ＰＣ１０は、時間または移動量の軸上での誤差の大きさの推移を示す画面から、誤差発生部分の軌跡の拡大表示画面に直接遷移することもできる。
【０１４１】
図２１は、横軸を移動量とし、縦軸を指令位置と応答位置との間の垂直誤差を画面１１に表示した状態を示した図である。なお、横軸を時間としてもよい。垂直誤差とは、指令位置の３次元または２次元の空間的軌跡の接線方向に対して垂直な方向に沿った、指令位置の空間的軌跡から応答位置の空間的軌跡までの距離である。
【０１４２】
垂直誤差は、指令位置と応答位置との間の時間的な進みや遅れ要素を除外した両空間的軌跡の間の空間的なずれの大きさを示している。図２１のグラフと図２０のグラフとを比較すると、誤差が大きく発生している箇所の誤差の方向は指令位置の空間的軌跡の接線方向に対してほぼ垂直であるため両グラフの間にほとんど差異がないのに対し、誤差が小さい部分の誤差の大きさは垂直誤差の大きさの方が小さくなっている。これは、図２０の誤差の方には指令位置の変化に対して応答位置の変化が遅れているなどの時間的な遅れが距離の誤差となって現れている成分が含まれているためと考えられる。
【０１４３】
このように、ＰＣ１０は、指令位置と応答位置との間の時間的な進みや遅れ要素を除外した、両空間的軌跡の間の空間的なずれの大きさを示すことができる。ＰＣ１０は、さらに当該空間的なずれの大きさを示した画面から、誤差発生部分の軌跡を拡大表示した画面に直接遷移することができる。
【０１４４】
図２１に示した画面１１においても誤差発生マーク２６１，２６２が表示されており、ユーザが誤差発生マーク２６１，２６２をクリックすることによって、ＰＣ１０は、画面遷移を行ない、図１６に示した表示内容を画面１１に表示することができる。
【０１４５】
図２２は、３次元空間内の指令位置と応答位置との軌跡を透視図の手法で画面１１に表示した状態を示した図である。作図のための視点の位置と視線方向とをユーザが任意に変更することができるようにＰＣ１０は構成されている。軌跡の平面への投影図である図１５に示した画面１１と比べて、ユーザは、３つの軸の動きを直感的に理解できる。
【０１４６】
ＰＣ１０は、誤差が発生していると判定した軌跡の部分には誤差発生マーク２７１，２７２を表示する。ユーザが誤差発生マーク２７１，２７２をクリックすると、ＰＣ１０は、画面１１の表示内容を、図２２に示した表示内容から図１６に示した表示内容に遷移する。図１６に示した表示内容に遷移する代わりに、３次元表示のままで誤差発生部分を拡大表示するようにＰＣ１０を構成してもよい。また、３次元表示において図１７に基づき説明した同時刻マーカーを表示するようにＰＣ１０を構成してもよい。
【０１４７】
図２３は、指令位置または応答位置に合わせて動作するＸＹＺステージの仮想装置モデルを図２２に示した３次元空間に配置したときの画面１１を示した図である。このような表示をＰＣ１０が行なうことにより、ユーザは、図９に示した台紙切断装置１Ａの動きをよりリアルに理解することができる。
【０１４８】
図２４は、指令位置、指令値、予測位置、実測値の算出処理の主体等について、現実的に採り得る組み合わせの例を示した図である。
【０１４９】
図２４を参照して、第１の組み合わせでは、ＰＣ１０は、指令位置を算出し、かつ算出した指令位置を表示する。また、ＰＣ１０は、予測位置を算出し、かつ算出した予測位置を表示する。なお、当該表示の主体（表示主体）は、ＰＣ１０である。
【０１５０】
第２の組み合わせでは、ＰＣ１０は、指令位置を算出し、かつ算出した指令位置を表示する。ＰＬＣ２０は、制御用の指令値を算出する。また、ＰＬＣ２０は、実測値をＰＣ１０に転送する。
【０１５１】
第３の組み合わせでは、ＰＬＣ２０は、制御用の指令値を算出する。ＰＬＣ２０は、指令値をＰＣ１０に転送する。ＰＣ１０は、指令値を表示する。また、ＰＬＣ２０は、実測値をＰＣ１０に転送する。ＰＣ１０は、実測値を表示する。
【０１５２】
第４の組み合わせでは、ＰＣ１０は、指令位置を算出し、かつ算出した指令位置を表示する。ＰＬＣ２０は、制御用の指令値を算出する。また、ＰＣ１０は、予測位置を算出し、かつ算出した予測位置を表示する。ＰＬＣ２０は、実測値をＰＣ１０に転送する。ＰＣ１０は、実測値を表示する。
【０１５３】
第５の組み合わせでは、ＰＣ１０は、予測位置を算出するために指令位置を算出する。ＰＬＣ２０は、制御用の指令値を算出する。ＰＬＣ２０は、指令値をＰＣ１０に転送する。ＰＣ１０は、指令値を表示する。また、ＰＣ１０が、予測位置を算出し、かつ算出した予測位置を表示する。ＰＬＣ２０は、実測値をＰＣ１０に転送する。ＰＣ１０は、実測値を表示する。
【０１５４】
以上説明してきたように、制御システム１のＰＣ１０は、指令値に対応する制御対象の特定部位の指令された指令位置と、実際の制御対象の特定部位についての理論的に予測される予測位置または当該特定部位についての測定された実測位置との間の誤差をユーザにわかりやすく表示することが可能となる。
【０１５５】
今回開示された実施の形態は例示であって、上記内容のみに制限されるものではない。本発明の範囲は特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１５６】
１  制御システム、１Ａ  台紙切断装置、１０  ＰＣ、１１  画面、２０  ＰＬＣ、２１  電源ユニット、２２  ＣＰＵユニット、２３  Ｉ／Ｏユニット、２４  ＭＣユニット、２５  バックプレーン、３１，３２，３３  サーボアンプ、４１，４２，４３  サーボモータ、５１ａ，５２ａ，５３ａ  ナット、５４  カッター、６０，７０  通信線、８０  スイッチ、９０  台紙、１０１  シーケンスプログラム、１０２  シミュレーション部、１０３  ＦＢライブラリ、１０４  指令値算出部、１０５  指令位置算出部、１０６  予測位置算出部、１０７  トレースデータ記憶部、１０８  表示データ処理部、１０９  表示制御部、１１０  受付部、１６１  モータ電流算出部、１６２  トルク値算出部、１６３  モータＤＢ、１６４  運動方程式計算部、１６５  装置ＤＢ、１８１  ２次元軌跡データ生成部、１８２  ３次元軌跡データ生成部、２０１，２０２  プルダウンメニュー、２０３，２０４，２０５  選択チェックボックス、２０６  視野変更ハンド、２０７，２０８  拡大／縮小スライドバー、２０９  連動チェックボックス、２１１，２１２  誤差発生マーク、２２１，２２２，２２３  応答位置、２３１  応答位置マーカー、２３２  指令位置マーカー、２３３  巻戻しボタン、２３４  逆再生ボタン、２３５  再生ボタン、２３６  早送りボタン、２３７  スライドバー、２４１  誤差発生マーク、２５１，２５２  誤差発生マーク、２６１，２６２  誤差発生マーク、２７１，２７２  誤差発生マーク、５０１，５０２，５０３  ステージ機構、９０７  モニタ、９０８  駆動装置、１８１１  誤差算出部、１８１２  判定部、１８１３  第１表示データ作成部、１８１４  第２表示データ作成部。
【図１】
0005428965.tif 000002
【図２】
0005428965.tif 000003
【図３】
0005428965.tif 000004
【図４】
0005428965.tif 000005
【図５】
0005428965.tif 000006
【図６】
0005428965.tif 000007
【図７】
0005428965.tif 000008
【図８】
0005428965.tif 000009
【図９】
0005428965.tif 000010
【図１０】
0005428965.tif 000011
【図１１】
0005428965.tif 000012
【図１２】
0005428965.tif 000013
【図１３】
0005428965.tif 000014
【図１４】
0005428965.tif 000015
【図１５】
0005428965.tif 000016
【図１６】
0005428965.tif 000017
【図１７】
0005428965.tif 000018
【図１８】
0005428965.tif 000019
【図１９】
0005428965.tif 000020
【図２２】
0005428965.tif 000021
【図２３】
0005428965.tif 000022
【図２４】
0005428965.tif 000023
【図２０】
0005428965.tif 000024
【図２１】
0005428965.tif 000025