JP2011192017A - 表示装置、表示制御方法、プログラム、およびコンピュータ読み取り可能な記録媒体 - Google Patents

表示装置、表示制御方法、プログラム、およびコンピュータ読み取り可能な記録媒体 Download PDF

Info

Publication number
JP2011192017A
JP2011192017A JP2010057474A JP2010057474A JP2011192017A JP 2011192017 A JP2011192017 A JP 2011192017A JP 2010057474 A JP2010057474 A JP 2010057474A JP 2010057474 A JP2010057474 A JP 2010057474A JP 2011192017 A JP2011192017 A JP 2011192017A
Authority
JP
Japan
Prior art keywords
series
command
data
positions
screen
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2010057474A
Other languages
English (en)
Other versions
JP2011192017A5 (ja
JP5428965B2 (ja
Inventor
Toshihiro Moriya
俊洋 森谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Omron Corp
Original Assignee
Omron Corp
Omron Tateisi Electronics Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Omron Corp, Omron Tateisi Electronics Co filed Critical Omron Corp
Priority to JP2010057474A priority Critical patent/JP5428965B2/ja
Priority to PCT/JP2011/051611 priority patent/WO2011114776A1/ja
Priority to US13/579,625 priority patent/US9563195B2/en
Priority to EP11755966.6A priority patent/EP2549347B1/en
Priority to CN201180014647.4A priority patent/CN102812407B/zh
Publication of JP2011192017A publication Critical patent/JP2011192017A/ja
Publication of JP2011192017A5 publication Critical patent/JP2011192017A5/ja
Application granted granted Critical
Publication of JP5428965B2 publication Critical patent/JP5428965B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/406Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by monitoring or safety
    • G05B19/4069Simulating machining process on screen
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/35Nc in input of data, input till input file format
    • G05B2219/35353While machining compare real path with simulated, command path, contour display
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/42Servomotor, servo controller kind till VSS
    • G05B2219/42307Compare actual feedback with predicted, simulated value to detect run away

Landscapes

  • Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Numerical Control (AREA)
  • Programmable Controllers (AREA)
  • User Interface Of Digital Computer (AREA)
  • Control Of Position Or Direction (AREA)

Abstract

【課題】制御対象の特定部位の指令された指令位置と、当該特定部位の応答位置との間の誤差をユーザにわかりやすく表示する表示装置を提供する。
【解決手段】表示装置は、指令値に基づいた特定部位の応答位置を取得し、指令位置と応答位置との位置の差を算出する。表示装置は、差が閾値以上であるか否かを判定する。表示装置は、指令位置に基づく空間的軌跡または応答位置に基づく空間的軌跡と当該空間的軌跡のうち閾値以上であると判定された部分を示すマークとを画面に表示する。さらに、表示装置は、選択されたマークFB9に対応する部分の指令位置の空間的軌跡と当該空間的軌跡に対応する応答位置の空間的軌跡とを同じ倍率で拡大した態様であって、当該拡大された各空間的軌跡が互いに重なる態様にて、各空間的軌跡を画面11に表示する。
【選択図】図16

Description

本発明は、モーションプログラムの実行によって出力される一連の指令値に基づいて駆動する制御対象における特定部位の位置の変化を、画面に軌跡として表示する表示装置に関する。
従来、制御対象を駆動するためのモーションプログラムが知られている。
特許文献1には、上記モーションプログラムである作業プログラムを処理する装置としてロボット言語処理装置が開示されている。当該ロボット言語処理装置は、産業用ロボットの目標位置データを移動命令によって記述した作業プログラムを格納している。ロボット言語処理装置は、作業プログラムにしたがって動くロボットアーム先端の軌跡をグラフィカルに3次元表示する。
特許文献2には、数値制御装置の工具経路表示方法が開示されている。当該数値制御装置は、X軸のサーボモータとY軸のサーボモータとによって駆動される工具の経路をXY平面上に表示する。数値制御装置が表示する工具の経路は2種類ある。1つはプログラムされたとおりの理想的な経路である。もう1つは、理想的な経路からの誤差がある実際の工具の経路である。数値制御装置は、実際の工具の経路について、プログラムされた移動量成分については1倍のままで表示し、誤差量成分についてはたとえば2万倍といった大きな倍率で拡大表示する。数値制御装置は、実際の工具の経路を、理想的な経路の表示に重ねて、または誤差のある部分については理想的な経路の表示に置き換えて表示する。
特開2007−242054号公報 特開平6−138934号公報
モーションプログラムは、制御対象の運動に関する、当該制御対象に与えられるための一連の指令値を出力するプログラムである。モーションプログラムは、典型的にはPLC(Programmable Logic Controller)のようなコントローラにおいて実行される。コントローラは、制御対象が備えるモータを駆動するためのモータドライバに制御対象の特定部位の位置を示す一連の指令値を与える。制御対象の特定部位は、たとえばモータの回転位置および/または制御対象が備えるアームの先端位置である。制御対象には質量や摩擦があるため、制御対象の特定部位の位置は、指令値によって指示された位置との間で誤差が動的に生じる。
モーションプログラムをユーザが作成または修正する際に、位置の誤差の発生状態を把握できれば、ユーザは、精密な制御を要する部分については誤差が少なくなるようにプログラムを容易に調整できる。さらに、ユーザは、逆に許容される誤差が大きな部分については運動を高速化するようにプログラムを容易に調整できる。
特許文献2は、位置の誤差を表示する方法の一つを開示している。この方法では、指令位置の軌跡に対して誤差成分のみを大きな倍率で拡大した実測位置の軌跡を重ねて表示する。このため、対応する指令位置と実測位置とが表示画面上において遠く離れてしまう場合には、指令位置と実測位置との対応関係がわかりにくくなる。それゆえ、ユーザは、誤差の発生状態の正確な把握が難しくなる。
本発明は、モーションプログラムを実行したときの、指令値に対応する制御対象の特定部位の指令された位置(指令位置)と、実際の制御対象の特定部位についての理論的に予測される位置(予測位置)または当該特定部位についての測定された位置(実測位置)との間の誤差をユーザにわかりやすく表示することが可能な表示装置、表示制御方法、表示プログラム、およびコンピュータ読み取り可能な記録媒体を提供することにある。
本発明のある局面にしたがうと、表示装置は、モーションプログラムの実行によって出力される一連の指令値に基づいて駆動する制御対象における特定部位の位置の変化を、画面に軌跡として表示する表示装置である。表示装置は、制御対象の質量および摩擦を無視した場合における、一連の指令値に基づいた特定部位の位置である一連の指令位置を取得する第1の位置取得手段と、制御対象の質量および摩擦のうち少なくとも一つを考慮したシミュレートがなされた場合における、一連の指令値に基づいた特定部位の一連の位置、および一連の指令値に基づく駆動がなされた場合に測定された特定部位の一連の位置のうち少なくとも1つの一連の位置である、一連の指令位置に対応する一連の応答位置を取得する第2の位置取得手段と、指令位置と当該指令位置に対応する応答位置との位置の差を算出する誤差算出手段と、算出された差が予め定められた閾値以上であるか否かを判定する判定手段と、一連の指令位置によって形成される空間的軌跡および一連の応答位置によって形成される空間的軌跡の少なくともいずれかと、当該空間的軌跡のうち閾値以上であると判定された部分を示す第1のマークとを画面に表示させるためのデータを作成する第1の表示データ作成手段と、第1のマークの選択操作を受け付ける受付手段と、選択されたマークに対応する部分の指令位置の空間的軌跡と当該空間的軌跡に対応する応答位置の空間的軌跡とを同じ倍率で拡大した態様であって、当該拡大された各空間的軌跡が互いに重なる態様にて、各空間的軌跡を画面に表示させるためのデータを作成する第2の表示データ作成手段と、第1の表示データ作成手段によって作成されたデータ、および第2の表示データ作成手段によって作成されたデータを画面に表示させる表示制御手段とを備える。
好ましくは、第2の表示データ作成手段は、指定された時刻における指令位置を示す第2のマークと、当該時刻における応答位置を示す第3のマークと画面に表示させるためのデータをさらに作成する。表示制御手段は、第2の表示データ作成手段によって作成されたデータを画面に表示させるときには、第2のマークと第3のマークとを画面に表示させる。
好ましくは、第2の表示データ作成手段は、各空間的軌跡を画面に表示させるためのデータを作成するときに、拡大した応答位置の空間軌跡の色が算出された差の大きさに基づき変化するように当該データを作成する。表示制御手段は、第2の表示データ作成手段によって作成されたデータを画面に表示させるときには、拡大した応答位置の空間軌跡を算出された差の大きさに基づいた色で画面に表示させる。
好ましくは、第2の表示データ作成手段は、各空間的軌跡を画面に表示させるためのデータを作成するときに、画面における第1の方向と当該第1の方向に直行する第2の方向とにおいて、空間的軌跡の表示倍率が各々指定された表示倍率となるように当該データを作成する。表示制御手段は、第1の方向および第2の方向の各々において指定された表示倍率で拡大した各空間的軌跡を画面に表示させる。
好ましくは、第1の軸を時間または特定部位の移動量とし、第2の軸を、指令位置、当該指令位置に基づき算出された特定部位の速度、応答位置、または当該応答位置に基づき算出された特定部位の速度とする2次元グラフを表示するためのデータと、算出された差が予め定められた閾値以上である部分を2次元グラフ上に表示させるためのデータであって、選択操作の対象となる第4のマークを表示させるためのデータとを作成する第3の表示データ作成手段をさらに備える。表示制御手段は、2次元グラフと第4のマークとを画面に表示させる。
好ましくは、第1の軸を時間または特定部位の移動量とし、第2の軸を、算出された差の大きさとする2次元グラフを表示するためのデータと、算出された差が予め定められた閾値以上である部分を2次元グラフ上に表示させるためのデータであって、選択操作の対象となる第4のマークを表示させるためのデータとを作成する第3の表示データ作成手段をさらに備える。表示制御手段は、2次元グラフと第4のマークとを画面に表示させる。
好ましくは、第1の軸を時間または特定部位の移動量とし、第2の軸を、指令位置の空間的軌跡の接線方向に対して垂直な方向に沿った、指令位置の空間的軌跡から応答位置の空間的軌跡までの距離とする2次元グラフを表示するためのデータと、算出された差が予め定められた閾値以上である部分を2次元グラフ上に表示させるためのデータであって、選択操作の対象となる第4のマークを表示させるためのデータとを作成する第3の表示データ作成手段をさらに備える。表示制御手段は、2次元グラフと第4のマークとを画面に表示させる。
本発明の他の局面に従うと、表示制御方法は、モーションプログラムの実行によって出力される一連の指令値に基づいて駆動する制御対象における特定部位の位置の変化を、表示装置の画面に軌跡として表示させる方法である。表示制御方法は、制御対象の質量および摩擦を無視した場合における、一連の指令値に基づいた特定部位の位置である一連の指令位置を取得するステップと、制御対象の質量および摩擦のうち少なくとも一つを考慮したシミュレートがなされた場合における、一連の指令値に基づいた特定部位の一連の位置、および一連の指令値に基づく駆動がなされた場合に測定された特定部位の一連の位置のうち少なくとも1つの一連の位置である、一連の指令位置に対応する一連の応答位置を取得するステップと、指令位置と当該指令位置に対応する応答位置との位置の差を算出するステップと、算出された差が予め定められた閾値以上であるか否かを判定するステップと、一連の指令位置によって形成される空間的軌跡および一連の応答位置によって形成される空間的軌跡の少なくともいずれかと、当該空間的軌跡のうち閾値以上であると判定された部分を示すマークとを画面に表示させるための第1のデータを作成するステップと、マークの選択操作を受け付けるステップと、選択されたマークに対応する部分の指令位置の空間的軌跡と当該空間的軌跡に対応する応答位置の空間的軌跡とを同じ倍率で拡大した態様であって、当該拡大された各空間的軌跡が互いに重なる態様にて、各空間的軌跡を前記画面に表示させるための第2のデータを作成するステップと、第1のデータおよび第2のデータを画面に表示させるステップとを備える。
本発明のさらに他の局面に従うと、プログラムは、モーションプログラムの実行によって出力される一連の指令値に基づいて駆動する制御対象における特定部位の位置の変化を表示装置の画面に軌跡として表示させるプログラムである。プログラムは、制御対象の質量および摩擦を無視した場合における、一連の指令値に基づいた特定部位の位置である一連の指令位置を取得するステップと、制御対象の質量および摩擦のうち少なくとも一つを考慮したシミュレートがなされた場合における、一連の指令値に基づいた特定部位の一連の位置、および一連の指令値に基づく駆動がなされた場合に測定された特定部位の一連の位置のうち少なくとも1つの一連の位置である、一連の指令位置に対応する一連の応答位置を取得するステップと、指令位置と当該指令位置に対応する応答位置との位置の差を算出するステップと、算出された差が予め定められた閾値以上であるか否かを判定するステップと、一連の指令位置によって形成される空間的軌跡および一連の応答位置によって形成される空間的軌跡の少なくともいずれかと、当該空間的軌跡のうち閾値以上であると判定された部分を示すマークとを画面に表示させるための第1のデータを作成するステップと、マークの選択操作を受け付けるステップと、選択されたマークに対応する部分の指令位置の空間的軌跡と当該空間的軌跡に対応する応答位置の空間的軌跡とを同じ倍率で拡大した態様であって、当該拡大された各空間的軌跡が互いに重なる態様にて、各空間的軌跡を画面に表示させるための第2のデータを作成するステップと、第1のデータおよび第2のデータを画面に表示させるステップとを、表示装置に実行させる。
本発明のさらに他の局面に従うと、コンピュータ読み取り可能な記録媒体は、モーションプログラムの実行によって出力される一連の指令値に基づいて駆動する制御対象における特定部位の位置の変化を表示装置の画面に軌跡として表示させるプログラムを格納した記録媒体である。プログラムは、制御対象の質量および摩擦を無視した場合における、一連の指令値に基づいた特定部位の位置である一連の指令位置を取得するステップと、制御対象の質量および摩擦のうち少なくとも一つを考慮したシミュレートがなされた場合における、一連の指令値に基づいた特定部位の一連の位置、および一連の指令値に基づく駆動がなされた場合に測定された特定部位の一連の位置のうち少なくとも1つの一連の位置である、一連の指令位置に対応する一連の応答位置を取得するステップと、指令位置と当該指令位置に対応する応答位置との位置の差を算出するステップと、算出された差が予め定められた閾値以上であるか否かを判定するステップと、一連の指令位置によって形成される空間的軌跡および一連の応答位置によって形成される空間的軌跡の少なくともいずれかと、当該空間的軌跡のうち閾値以上であると判定された部分を示すマークとを画面に表示させるための第1のデータを作成するステップと、マークの選択操作を受け付けるステップと、選択されたマークに対応する部分の指令位置の空間的軌跡と当該空間的軌跡に対応する応答位置の空間的軌跡とを同じ倍率で拡大した態様であって、当該拡大された各空間的軌跡が互いに重なる態様にて、各空間的軌跡を画面に表示させるための第2のデータを作成するステップと、第1のデータおよび2のデータを画面に表示させるステップとを、表示装置に実行させる。
指令値に対応する制御対象の特定部位の指令された指令位置と、実際の制御対象の特定部位についての理論的に予測される予測位置または当該特定部位についての測定された実測位置との間の誤差をユーザにわかりやすく表示することができる。
本実施の形態に係る制御システムの概略構成を示した図である。 PCのハードウェア構成を表わすブロック図である。 サーボモータを備えた制御対象と、当該制御対象の動作を制御するPLCとを含む制御システムの一般的な開発手順を示した図である。 PC10において実行されるサポートプログラムに含まれている、モーション軌跡の表示プログラムの機能ブロック図である。 表示データ処理部の詳細を示した機能ブロック図である。 モータDBのデータ構造の一例を示した図である。 予測位置を表示する処理を示したフローチャートである。 実測位置を表示する処理を示したフローチャートである。 制御システム1の適用例である台紙切断装置1Aの概略構成を示した図である。 台紙切断装置1Aによる台紙90の切断例を示した図である。 モーションプログラムの第1の部分を示した図である。 図11に続く、モーションプログラムの第2の部分を示した図である。 図12に続く、モーションプログラムの第3の部分を示した図である。 図13に続く、モーションプログラムの第4の部分を示した図である。 図11から図14のモーションプログラムが実行されたときの指令位置の軌跡を、横軸を軸A、縦軸を軸Bとして表示したグラフである。 図15のFB9付近の誤差発生マーク211をユーザがクリックしたときに、PC10が表示する拡大グラフである。 図16の拡大表示画面に、同時刻マーカー、すなわち指令位置マーカーおよび応答位置マーカーを表示した状態を示した図である。 連動チェックボックスのチェックを解除した状態で図15のFB10とFB11の間にある誤差発生マークをユーザがクリックしたときに画面に表示される内容を示した図である。 横軸を時間、縦軸を軸Bとして指令位置と予測位置との軌跡を画面に表示した状態を示した図である。 横軸を時間、縦軸を誤差、すなわち同時刻における指令位置と応答位置との間の距離としたグラフを画面に表示した状態を示した図である。 横軸を移動量とし、縦軸を指令位置と応答位置との間の垂直誤差を画面に表示した状態を示した図である。 3次元空間内の指令位置と応答位置との軌跡を透視図の手法で画面に表示した状態を示した図である。 指令位置または応答位置に合わせて動作するXYZステージの仮想装置モデルを図22に示した3次元空間に配置したときの画面を示した図である。 指令位置、指令値、予測位置、実測値の算出処理の主体等について、現実的に採り得る組み合わせを示した図である。
以下、図面を参照しつつ、本発明の実施の形態に係る表示装置について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
図1は、本実施の形態に係る制御システム1の概略構成を示した図である。図1を参照して、制御システム1は、PC(Personal Computer)10と、PLC20と、サーボアンプ31〜33と、サーボモータ41〜43とを備える。なお、サーボモータ41〜43には、それぞれ、サーボモータ41〜43によって駆動される可動機構(図9参照)が接続される。以下では、各サーボモータと各可動機構とを含む装置を、「制御対象」と称する。
PLC20は、電源ユニット21と、CPU(Central Processing Unit)ユニット22と、I/O(Input/Output)ユニット23と、MC(Motion Control)ユニット24と、バックプレーン25とを備える。電源ユニット21、CPUユニット22、I/Oユニット23、およびMCユニット24は、バックプレーン25を介して互いに電気的に接続されている。
PLC20は、モーションプログラムを実行する。本実施形態におけるモーションプログラムは、モータの制御を含むプログラムである。モーションプログラムのシーケンスはラダー図(ラダーダイアグラム)言語等を用いてシーケンスプログラムの形で記述される。シーケンスプログラムにおいては、モータ制御用のFB(Function Block)、すなわちモーションFBが用いられる。狭義にはモーションFBをモーションプログラムと呼ぶこともある。
CPUユニット22は、シーケンスプログラムを実行する。
MCユニット24は、CPUユニット22から、実行するモーションFBの種類およびモーションFB実行に必要なパラメータの指示を受ける。MCユニット24は、当該モーションFBの内容を実行する。MCユニット24は、時間の経過にしたがってサーボアンプ31〜33へ一連の指令値を出力する。MCユニット24は、モーションFBの内容の実行状況および実行結果をCPUユニット22に報告する。なお、CPUユニット22から独立したMCユニット24を設けず、CPUユニット22がMCユニット24の機能を兼ね備えるようにしてもよい。
I/Oユニット23は、スイッチ、センサ等からの入力データを取得してCPUユニット22に提供する。入力データは、CPUユニット22においてシーケンスプログラムの中の条件成立の判断等に使用される。
サーボアンプ31〜33は、MCユニット24からの指令値を受けてサーボモータ41〜43を駆動するためのモータドライバである。制御システム1においては、サーボモータ41〜43に限らずパルスモータなども利用可能である。なお、この場合、採用するモータの種類に応じたモータドライバが用いられる。サーボアンプ31〜33は、イーサキャト(EtherCAT)(登録商標)などの通信線60を介してMCユニット24と接続される。
MCユニット24からサーボアンプ31〜33に与えられる指令値は、モータの位置、速度、トルクなどの値である。なお、本実施の形態では位置の指令値がMCユニット24からサーボアンプ31〜33に一定周期で与えられるものとする。
位置の指令値は、サーボモータ41〜43の回転位置(回転角度)である場合もあるし、サーボモータ41〜43によって駆動される制御対象の特定の部位の位置である場合もある。以下では、位置の指令値に対応して実現されるべき、特に軌跡の表示対象となる制御対象の特定部位の位置を「指令位置」と称する。サーボアンプ31〜33には、指令値を正しく解釈して(たとえば指令値に適当な係数を乗じるなどして)サーボモータ41〜43を駆動するための設定が予めなされている。サーボアンプ31〜33は、サーボモータ41〜43に駆動電流を供給する。サーボアンプ31〜33は、サーボモータ41〜43に設けられたサーボモータの回転位置を検出するエンコーダから、実測値のフィードバックを受ける。サーボアンプ31〜33は、実測値および実測値の変化分として算出される実測速度を用いて、実測値が指令値に追従するように駆動電流を制御する。
位置の指令値は、MCユニット24とサーボアンプ31〜33を直結する通信線60を通して、1制御周期内に送られるパルスの数の形で表現される場合がある。この場合、パルス数は、直前の制御周期における位置からの相対位置(位置の変化量)を表現している。
たとえば、サーボアンプ31〜33にはサーボモータ41〜43の1回転に対応するパルス数が設定される。また、MCユニット24には同様にサーボモータ41〜43の1回転に対応するパルス数が設定されるほか、サーボモータ41〜43の1回転に対応する制御対象の特定部位の移動量が設定される。これらの設定値を用いて、MCユニット24は、制御周期ごとにプログラムされた制御対象の運動を実現するのに必要な数のパルスをサーボアンプ31〜33に送る。
サーボアンプ31〜33は、受けたパルスの数に応じてサーボモータ41〜43を回転させる。なお、サーボモータ41〜43の回転位置を検出するエンコーダがインクリメンタル方式の場合には、PLC20は、位置の実測値についてもサーボモータ41〜43の回転角度に対応するパルス数の形で検出する。このため、PLC20は、制御周期ごとに検出される一連のパルス数から制御対象の実測位置を求めることができる。
PC10は、軌跡を画面11に表示する表示装置として機能する。PC10はUSB(Universal Serial Bus)などの通信線70を介してCPUユニット22に接続される。PC10には、後述するように(図2)、PLC20のサポートプログラムがインストールされている。PLC20のサポートプログラムは、軌跡を画面11に表示するための表示プログラムを含んでいる。
CD−ROM(Compact Disk - Read Only Memory)999は、PLC20のサポートプログラムを格納している。PLCのサポートプログラムはCD−ROM999からPC10にインストールされる。
図2は、PC10のハードウェア構成を表わすブロック図である。図2を参照して、PC10は、主たる構成要素として、プログラムを実行するCPU901と、データを不揮発的に格納するROM(Read Only Memory)902と、CPU901によるプログラムの実行により生成されたデータ、又はキーボード905もしくはマウス906を介して入力されたデータを揮発的に格納するRAM903と、データを不揮発的に格納するHDD(Hard Disk Drive)904と、PC10の使用者による指示の入力を受けるキーボード905およびマウス906と、モニタ907と、CD−ROM駆動装置908と、通信IF909とを含む。各構成要素は、相互にデータバスによって接続されている。CD−ROM駆動装置908には、CD−ROM999が装着される。
PC10における処理は、各ハードウェアおよびCPU901により実行されるソフトウェアによって実現される。このようなソフトウェアは、HDD904に予め記憶されている場合がある。また、ソフトウェアは、CD−ROM999その他の記憶媒体に格納されて、プログラムプロダクトとして流通している場合もある。あるいは、ソフトウェアは、いわゆるインターネットに接続されている情報提供事業者によってダウンロード可能なプログラムプロダクトとして提供される場合もある。このようなソフトウェアは、CD−ROM駆動装置908その他の読取装置によりその記憶媒体から読み取られて、あるいは、通信IF909を介してダウンロードされた後、HDD904に一旦格納される。そのソフトウェアは、CPU901によってHDD904から読み出され、RAM903に実行可能なプログラムの形式で格納される。CPU901は、そのプログラムを実行する。
同図に示されるPC10を構成する各構成要素は、一般的なものである。したがって、本発明の本質的な部分は、RAM903、HDD904、CD−ROM999その他の記憶媒体に格納されたソフトウェア、あるいはネットワークを介してダウンロード可能なソフトウェアであるともいえる。なお、PC10の各ハードウェアの動作は周知であるので、詳細な説明は繰り返さない。
なお、記録媒体としては、DVD-ROM、CD−ROM、FD(Flexible Disk)、ハードディスクに限られず、磁気テープ、カセットテープ、光ディスク(MO(Magnetic Optical Disc)/MD(Mini Disc)/DVD(Digital Versatile Disc))、IC(Integrated Circuit)カード(メモリカードを含む)、光カード、マスクROM、EPROM(Electronically Programmable Read-Only Memory)、EEPROM(Electronically Erasable Programmable Read-Only Memory)、フラッシュROMなどの半導体メモリ等の
固定的にプログラムを担持する媒体でもよい。また、記録媒体は、当該プログラム等をコンピュータが読取可能な一時的でない媒体である。
ここでいうプログラムとは、CPUにより直接実行可能なプログラムだけでなく、ソースプログラム形式のプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
図3は、サーボモータを備えた制御対象と、当該制御対象の動作を制御するPLCとを含む制御システムの一般的な開発手順を示した図である。メカ担当者(機構担当者)と制御担当者とが、分担および協力して以下の各工程を行なう。
図3を参照して、ステップS2において、メカ担当者が、構想設計を行なう。具体的には、同ステップにおいては、メカ担当者が、制御対象全体の機能、構造、性能などの仕様を決定する。ステップS4において、メカ担当者が、制御対象の機構の詳細設計を行なう。同ステップにおいては、メカ担当者が、3次元CADを使用して可動部の動作干渉チェックを行なうこともある。
ステップS6において、メカ担当者および制御担当者が制御タイミング設計を行なう。具体的には、同ステップにおいては、まず、メカ担当者が装置の各動作のタイミングチャートや速度線図を作成する。メカ担当者は、作成したタイミングチャートや速度線図を、制御担当者に伝達する。制御担当者は、伝達された設計情報をもとに、PLCの機種およびユニット構成を選定する。
ステップS8において、制御担当者は、制御プログラミングを行なう。具体的には、同ステップにおいては、制御担当者は、以下の(a)〜(e)に示した作業を行なう。
(a)制御担当者は、メモリマップ(PLCおける制御入力、制御出力の定義)を作成する。
(b)制御担当者は、PLC−サーボアンプ間、および複数のPLCを使用する場合のPLC間の、ネットワークおよびデータリンクを決定する。
(c)制御担当者は、MCユニットおよびサーボアンプのパラメータを決定する。
(d)制御担当者は、ラダー図言語などを用いてシーケンスプログラムを作成する。
(e)制御担当者は、シーケンスプログラム中で使用したモーションFBについて、位置、速度などのパラメータを決定する。
ステップS10においては、制御担当者が、オフラインの状態でプログラムのデバックを行なう。具体的には、同ステップにおいて、制御担当者が、PC10を用いて机上で以下の(f)〜(j)に示した内容のデバッグを行なう。
(f)制御担当者は、コンパイルエラーが生じた点があれば修正する。
(g)制御担当者は、指令位置の軌跡を参照してモーションFBのパラメータの誤りがあれば修正する。
(h)制御担当者は、接点のON/OFF状況などの各種条件においてシミュレートした2次元または3次元の指令位置の空間的軌跡や、各種条件において意図した命令が実行されるかを確認して、シーケンスプログラムに誤りがあれば修正する。
(i)制御担当者は、指令位置とシミュレーションによって得た予測位置との間の誤差が許容範囲を超えていれば、その部分の速度を落とす、誤差を見込んで目標位置を調整するなど、プログラムを修正する。
(j)制御担当者は、動作が一巡するのに要するタクトタイムが設計時間を越えていれば、動作経路を短縮する、位置誤差が許容される部分を高速化する、加速および減速時間を短くするなど、プログラムを修正する。
ステップS12において、メカ担当者および制御担当者が協力して、機械組み立ておよび配線を行なう。さらに、制御担当者は、机上デバッグが完了したモーションプログラムをPC10からPLC20に転送する。
ステップS14において、制御担当者が、制御対象の試験運転および調整を行なう。具体的には、同ステップにおいて、制御担当者が、以下の(k)〜(o)に示した作業を行なう。
(k)制御担当者は、軸ごとにJOG運転を行って、装置の出来具合に問題がないことを確認する。ここで、「軸」とは、モータの「回転軸」の語に由来して、1つのモータ、または1つのモータおよびそのモータによって駆動される可動部分を指す。JOG運転とは、指定した一定の速度で軸を動かし続けることをいう。
(l)制御担当者は、プログラム制御の試運転を行ない、装置が想定どおりの動きをすることを確認する。
(m)制御担当者は、連続運転試験を行なう。
(n)制御担当者は、オンラインデバッグを行なう。すなわち、制御担当者は、PLCが備えるデータトレース機能により装置の特定部位の一連の実測位置に対応するデータを収集してPCに転送し、PCにて実測位置の軌跡を指令位置の軌跡と対比して表示させ、誤差が許容範囲内であることを確認する。
(o)制御担当者は、タクトタイムを測定し、当該測定したタクトタイムが設計時間を越えていれば、オフラインデバッグの場合と同様にして、設計時間以内になるようにプログラムを修正する。
上記ステップS10およびステップS14において、指令位置と予測位置または実測位置との間の誤差を示すために両位置の軌跡が、PC10の画面11に対比表示される。この目的のために、表示装置としてのPC10が使用される。
図4は、PC10において実行されるサポートプログラムに含まれている、モーション軌跡の表示プログラムの機能ブロック図である。サポートプログラムには、表示プログラムの他に、シーケンスプログラム101のエディタおよびデバッガ、PLC20との通信プログラム、PLC20の各種設定を行なうプログラムなどが含まれている。
図4を参照して、表示プログラムは、シミュレーション部102と、FBライブラリ103と、指令値算出部104と、指令位置算出部105と、予測位置算出部106と、トレースデータ記憶部107と、表示データ処理部108と、表示制御部109と、受付部110とを備える。予測位置算出部106は、モータ電流算出部161と、トルク値算出部162と、モータDB(Data Base)163と、運動方程式計算部164と、装置DB165とを含む。
シーケンスプログラム101は、ユーザによって作成される。シーケンスプログラム101は、シミュレーション部102に与えられる。シーケンスプログラム101は、表示プログラムの一部ではない。
シミュレーション部102は、PLC20のシミュレータとして機能し、シーケンスプログラム101を実行する。シミュレーション部102においては、必要により実際の制御対象の代わりに、シミュレーション部102に入力データを与えるプログラムがシーケンスプログラム101に組み合わされて使用される。シミュレーション部102は、シーケンスプログラム101に含まれるモーションFBを実行する段階になると、実行すべきモーションFBを指定する情報と当該モーションFBの実行に必要なパラメータとを指令値算出部104に与える。
FBライブラリ103は、PC10のHDD904に格納されており、多種類のFBを、実行可能なプログラムとして蓄積している。
FBライブラリ103は、PLC20がモーションプログラムを実行する際に使用するために、PLC20の中にも備えられている。指令値を計算するためのモーションFBは、PLC20において実行が開始された場合には、終了条件が整うまでの間、以下のようにPLC20を動作させる。すなわち、指令値を計算するためのモーションFBは、与えられたパラメータに基づいてPLC20が有する一定の制御周期ごとにPLC20が指令値を計算し、当該計算した指令値を出力するように、PLC20を動作させる。
指令値算出部104は、FBライブラリ103から必要なモーションFBを読み出す。指令値算出部104は、PLC20におけるFB実行をシミュレートする。指令値算出部104は、PLC20における制御周期ごとの出力に対応する一連の指令値を出力する。
指令位置算出部105は、指令値から軌跡表示対象とする指令位置を算出する。指令位置は、制御対象の質量および摩擦を無視した場合における、出力された指令値に基づいた制御対象の特定部位の位置である。言い換えれば、指令位置は、制御対象の質量および摩擦を無視した場合に、与えられた一連の指令値によって実現されるべき制御対象の特定部位の位置であるともいえる。また、「一連の指令位置」とは、制御対象の質量および摩擦を無視した場合における、出力された一連の指令値に基づいた制御対象の特定部位の位置である。指令位置算出部105は、「第1の位置取得手段」に相当する。
たとえば、XYテーブルのX軸のモータの回転角を与える指令値からテーブルのX座標を算出する場合のように、1つの軸の指令値と指令位置とが1対1に対応している場合がある。さらに、指令値をそのまま指令位置として使用できる場合もある。
一方、垂直回転軸とそれに取り付けられた水平直動軸で構成されたθR極座標系の指令値で駆動されるロボットアーム先端の指令位置をXY直交座標系で表示する場合のように、駆動用の指令値(θ値またはR値)と表示用の指令位置(X値またはY値)とが1対1に対応していない場合もある。
なお、指令位置算出部105がPLC20の実行シミュレーションによって指令位置を算出するのではなく、PLC20自体が算出した制御用の一連の指令値をPC10が取得して、指令位置算出部105が軌跡表示用の指令位置を算出するようにしてもよい。
指令位置算出部105が指令位置をシミュレーションによって算出する場合、PLC20の実行シミュレーションおよび指令位置の算出と軌跡の描画とは必ずしも同一のコンピュータで行なう必要はない。たとえば、PC10は、他のコンピュータで算出された指令位置を取得して、当該指令位置に基づき軌跡の描画を行なってもよい。その場合は、他のコンピュータから指令位置を取得するための通信インターフェースまたは記憶媒体インターフェースが、「第1の位置取得手段」に相当する。
予測位置算出部106は、与えられた指令値から軌跡の表示対象とする制御対象の特定部位の予測位置を算出する。その過程で、予測位置算出部106は、モータの仕様に関するデータを格納しているモータDB163と、制御対象の仕様に関するデータを格納している装置DB165とから必要なデータを読み出し、当該読み出したデータを利用する。予測位置算出部106は、「予測位置取得手段」に相当する。
予測位置の算出と軌跡の描画とは必ずしも同一のコンピュータで行なう必要はない。たとえば、PC10は、他のコンピュータで算出された予測位置を取得して軌跡描画をするようにしてもよい。その場合は、他のコンピュータから予測位置を取得するための通信インターフェースまたは記憶媒体インターフェースが、「予測位置取得手段」に相当する。
モータ電流算出部161は、与えられた指令値からサーボモータ41〜43に供給する電流値を算出する。
トルク値算出部162は、与えられた電流値とモータDB163から読み出した使用するサーボモータのモータトルク係数とから、当該サーボモータが発揮するトルク値を算出する。
運動方程式計算部164は、与えられたトルク値と、モータDB163から読み出した使用するサーボモータの慣性モーメント、動摩擦係数などの値と、装置DB165から読み出した制御対象の当該サーボモータで駆動される部分の慣性モーメント、動摩擦係数などの値とから、予測位置を算出する。
指令値から電流値を算出するときに必要となるサーボモータの制御系モデルは、サーボアンプごとにブロック線図として一般に公開されており、当該ブロック線図の情報が表示プログラムに組み込まれている。
トルク値算出部162は、モータのトルク値Tを下記の式(1)にしたがい算出する。
=KI … (1)
ただし、
は、モータごとの定数であるモータトルク係数であり、
Iは、モータ電流である。
運動方程式計算部164が予測位置を求める場合には、慣性モーメント(すなわち質量のモーメント)と角加速度との積が、モータトルク、各種摩擦などにより発生する力と等しいとおいた運動方程式を用いることができる。すなわち、予測位置は、前記制御対象の質量および摩擦のうち少なくとも一つを考慮したシミュレートがなされた場合における、前記一連の指令値に基づいた制御対象の特定部位の位置であるといえる。
たとえば、モータ軸の運動方程式は次の式(2)で表される。
θ’’=T−kθ’−μ … (2)
ただし、
は、モータの慣性モーメント、
θは、モータの回転角度、
θ’は、θの微分、すなわちモータの回転速度、
θ’’は、θの2次微分、すなわちモータの回転角加速度、
は、上記モータのトルク値、
は、モータの粘性摩擦係数、
μは、モータの動摩擦係数、
は、モータの垂直抗力である。
、k、μ、Nは、モータ毎に定められる定数であり、モータDB163から取得される。サーボモータ41〜43の回転角度θが予測位置に相当する。モータによって駆動される特定部位の位置を軌跡表示対象の予測位置とする場合は、サーボモータ41〜43の回転角度θから適当な換算を行ない、当該換算後の値を予測位置とする。
運動方程式には、サーボモータ41〜43が駆動する駆動装置の定数を考慮することもできる。たとえば、サーボモータ41〜43に減速機を接続した場合の運動方程式は次の式(3)のとおりである。
θ’’=T−Cθ’−μ … (3)
ただし、
は、減速機の慣性モーメント、
θは、減速機の回転角度、
θ’ は、減速機の回転角速度、
θ’’ は、減速機の回転角加速度、
は、T=nによって算出される減速機の駆動トルク、
ただし
は、上記モータのトルク値、
は、伝達効率、
は、力の伝達倍率、
は、減速機内部のバレルの粘性摩擦係数、
μは、減速機の動摩擦係数、
は、減速機の垂直抗力である。
、n、H、C、μ、Nは、減速機毎に定められた定数であり、装置DB165から取得される。減速機の回転角度θが予測位置に相当する。減速機を介してモータによって駆動される装置部位の位置を軌跡表示対象の予測位置とする場合は、減速機の回転角度θから適当な換算を行ない、当該換算後の値を予測位置とする。
また、必要に応じて、サーボモータ41〜43によって駆動される他の構造部分の定数も考慮して運動方程式を立てることもできる。
トレースデータ記憶部107には、PLC20から取得したPLC20に蓄積されている一連の指令値および一連の実測値を、軌跡表示のために使用可能な指令位置および実測位置にあらかじめ変換した一連の位置データが記憶されている。トレースデータ記憶部107は、「実測位置取得手段」に相当する。
なお、PC10は、「予測位置取得手段」および「実測位置取得手段」の少なくともいずれかを備えていれば、PC10は「応答位置取得手段」を備えていることになる。
表示データ処理部108は、指令位置算出部105から指令位置、予測位置算出部106から予測位置、トレースデータ記憶部107から指令位置および実測位置、受付部110から操作データの入力を受け付ける。表示データ処理部108は、入力されたデータを用いて各種表示データを作成し、当該作成した各種表示データを表示制御部109に出力する。表示データ処理部108の詳細な処理内容については後述する。
表示制御部109は、表示データ処理部108が生成した表示データをモニタ907の画面11に表示させる。表示制御部109は、PC10におけるモニタ907の表示制御を行なう。つまり、表示制御部109により、モニタ907の画面11に各種の画像が表示される。
受付部110は、ユーザによるマークの選択操作を受け付ける。なお、マークについては後述する。
図5は、表示データ処理部108の詳細を示した機能ブロック図である。図5を参照して、表示データ処理部108は、表示データ作成処理制御部1081と、誤差算出部1082と、判定部1083と、第1表示データ作成部1084と、第2表示データ作成部1085と、第3表示データ作成部1086とを備える。
表示データ作成処理制御部1081は、受付部110から入力された操作データに基づいて、(I)表示する画面の種類の遷移制御、(II)スクロールや表示倍率変更の制御、(III)画面内容の部分的な書き換えの制御、(IV)入力した指令位置、予測位置、実測位置のデータの、第1、第2、第3表示データ作成部1084,1085,1086および誤差算出部1082への表示しようとする画面内容に応じた伝達制御、(V)判定部1083による判定内容の各表示データ作成部1084,1085,1086への伝達制御、(VI)各表示データ作成部1084,1085,1086で作成された表示データの表示制御部109への送出制御などを行なう。
誤差算出部1082は、指令位置と当該指令位置に対応する予測位置または実測位置との位置の差を算出する。
判定部1083は、誤差算出部1082により算出された差が予め定められた閾値以上であるか否かを判定する。
第1表示データ作成部1084は、一連の指令位置によって形成される空間的軌跡、一連の予測位置によって形成される空間的軌跡、および一連の実測位置によって形成される空間的軌跡の少なくともいずれかを画面に表示させるためのデータを作成する。空間的軌跡は2次元である場合と3次元である場合とがある。2次元の空間的軌跡は、3次元空間内の軌跡が平面に投影されたものである。第1表示データ作成部1084は、さらに、空間的軌跡のうち、判定部1083により誤差が閾値以上であると判定された部分を示す誤差発生マークを画面に表示させるためのデータを作成する。
第2表示データ作成部1085は、ユーザの操作により選択された誤差発生マークに対応する部分の指令位置の空間的軌跡と、当該空間的軌跡に対応する予測位置または実測位置の空間的軌跡とを同じ倍率で拡大した態様であって、拡大された各空間的軌跡が互いに重なる態様にて、各空間的軌跡を画面に表示させるためのデータを作成する。空間的軌跡は2次元である場合と3次元である場合とがある。
第3表示データ作成部1086は、第1の軸、たとえば横軸を時間または移動量とする2次元グラフを表示するためのデータを作成する。この2次元グラフの第2の軸、たとえば縦軸は、次のような種類の中から選ばれる。縦軸の第1の態様は、指令位置、予測位置、もしくは実測位置、またはそれらいずれかの位置に基づき算出された制御対象の特定部位の速度である。縦軸の第2の態様は、誤差算出部1082により算出された差の大きさである。縦軸の第3の態様は、指令位置の空間的軌跡の接線方向に対して垂直な方向に沿った、指令位置の空間的軌跡から予測位置または実測位置の空間的軌跡までの距離である。第3表示データ作成部1086は、さらに、判定部1083により誤差が閾値以上であると判定された部分を示す誤差発生マークを2次元グラフ上に表示させるためのデータを作成する。
図6は、モータDB163のデータ構造の一例を示した図である。図6を参照して、モータDB163では、サーボモータのモータ型式、定格出力、慣性モーメント、粘性摩擦係数、動摩擦係数等を、互いに対応付けてテーブル形式で格納している。また、装置DB165も、モータDB163と同様に、制御対象毎に各種定数をテーブル形式で格納している。
図7は、予測位置を表示する処理を示したフローチャートである。図7を参照して、ステップS22において、シミュレーション部102は、シーケンスプログラム101を読み出す。ステップS24において、シミュレーション部102は、実行すべき命令またはモーションFBを取得する。ステップS26において、シミュレーション部102は、取得したデータが、モーションFBか否かを判断する。
シミュレーション部102は、モーションFBでないと判断した場合(ステップS26においてNO)、ステップS28において取得した命令を実行する。ステップS30において、シミュレーション部102は、シーケンスプログラム101の実行が終了したか否かを判断する。シミュレーション部102が、シーケンスプログラム101の実行が終了したと判断した場合(ステップS30においてYES)、ステップS32において、表示制御部109は軌跡を画面11に表示させる。シミュレーション部102が、シーケンスプログラム101の実行が終了していないと判断した場合(ステップS30においてNO)、処理をステップS24に進める。
シミュレーション部102がモーションFBであると判断した場合(ステップS26においてYES)、ステップS34において、指令値算出部104は、シミュレーション部102から指定されたモーションFBをFBライブラリ103から読み出す。
ステップS36において、指令値算出部104はループ処理を開始し、ステップS40において、指令値算出部104は当該ループ処理を終了する。当該ループ処理では、一定の時間間隔でシミュレーション上の時間を進めながら、読み出したモーションFBの終了まで処理を繰り返し実行する。当該ループ処理中においては、ステップS38において、指令値算出部104は、モーションFBを実行して指令値を算出する処理を繰り返す。
ステップS42において、指令位置算出部105は、一連の指令値に対応する一連の指令位置を算出する。ステップS44において、予測位置算出部106は、一連の指令位置に対応する一連の予測位置を算出する。
図8は、実測位置を表示する処理を示したフローチャートである。図8を参照して、表示データ処理部108は、ステップS52において、トレースデータ記憶部107から一連の実測位置を取得する。ステップS54において、表示制御部109は、表示データ処理部108が取得した実測位置を、モニタ907の画面11に表示させる。
図9は、制御システム1の適用例である台紙切断装置1Aの概略構成を示した図である。図9を参照して、台紙切断装置1Aは、PC10(図示せず)と、PLC20と、サーボアンプ31〜33と、通信線60と、制御対象の可動機構である1軸のステージ機構501〜503とを備える。
Z方向のステージ機構501は、サーボモータ41と送りねじ51とを含む。送りねじ51は、ねじ軸に螺合するナット51aを有する。X方向のステージ機構502は、サーボモータ42と送りねじ52とを含む。送りねじ52は、ねじ軸に螺合するナット52aを有する。Y方向のステージ機構503は、サーボモータ43と送りねじ53とカッター54とを含む。送りねじ53は、ねじ軸に螺合するナット53aを有する。カッター54は、ナット53aに固定されている。
カッター54は、刃先がZ軸負方向(台紙90の方向)を向いている。カッター54は、サーボモータ41〜43の駆動により、X軸方向、Y軸方向、およびZ軸方向に移動可能となっている。カッター54は、台紙90を切断するために設けられている。
図10は、台紙切断装置1Aによる台紙90の切断例を示した図である。図10を参照して、図9のスイッチ80をONにすると、台紙切断装置1Aは、初期位置O(0,0,0)に待機しているカッター54をP6に移動する。その後、台紙切断装置1Aは、カッター54を台紙90に降ろして、P1→P2→P3→P4→P5→P1とカッター54を移動する。台紙切断装置1Aは、当該移動によって台紙90を切断する。その後、台紙切断装置1Aは、カッター54を上昇してP6へ移動し、切断処理を終了する。
図11から図14は、図9の台紙切断装置1Aに図10に示した台紙切断処理を実行させるモーションプログラムの一例を示した図である。なお、当該モーションプログラムにおいては、動作開始時に初期位置O(0,0,0)へカッター54の位置を合わせる処理、および、動作完了後に初期位置O(0,0,0)へカッター54を復帰させる部分の記載は省略している。
モーションプログラム中において、FB1からFB13はモーションFBである。FBの左側の端子はFBへの入力を表し、FBの右側の端子はFBからの出力である。実際に製品化されているFBにはより多くの入力端子、出力端子があって多様な設定をすることができるが、説明に使用しない端子は図示していない。FBからの図示されている出力は、シーケンスプログラムの他の部分に対する出力である。PLC20においてモーションFBが実行されると、算出された指令値やサーボアンプ31〜33に対するその他の信号がMCユニット24から出力される。しかしながら、当該指令値や当該信号を出力する処理は、FBのMCユニットに対する機能である。このため、シーケンスプログラムの表記においては、当該機能は表現されない。
FBに入力される位置の数値の単位はmmであり、速度の数値の単位はmm/secである。FBを実行した結果、MCユニット24からサーボアンプ31〜33に実際に送られる指令値はモータの回転角度を表す値に変換されている。
図11は、モーションプログラムの第1の部分を示した図である。図11を参照して、モーションプログラムのそれぞれの行には、以下の(A)〜(C)の処理が記述されている。
(A)第1〜3行目:接点Switch_StatusがONになる(図9のスイッチ80がONになる)と、軸X、Y、Zのそれぞれに接続されたサーボモータ41〜43は動作可能な状態になる。
(B)第4行:3軸のサーボモータ41〜43全てが動作可能状態であるとき、コイルAll_PowerはONになる。
(C)第5〜6行:カッター54が図10(a)の座標P6へ移動中か否かが判定される。サーボモータ41〜43全てが動作可能状態になったときに、コイルUnder_MovingP6はONになる。
図12は、図11に続く、モーションプログラムの第2の部分を示した図である。図12を参照して、モーションプログラムのそれぞれの行には、以下の(D)〜(G)の処理が記述されている。
(D)第7〜9行:図10(a)の座標P6へカッター54を移動させる。FB4、FB5、FB6は、1軸についての一連の指令値を算出するFBである。Axisは軸の指定を入力する端子であり、当該端子から入力されているAxisAはX軸、AxisBはY軸、AxisCはZ軸を指定することを表す。Positionは移動先の座標、Velocityは移動速度の指定を入力する端子である。指定される座標は図10に示されるとおりである。例えばP6のXYZ座標は(100,100,200)であるから、P6_Position_Xの値として100が与えられる。P6_Velocity_X, P6_Velocity_Y, P6_Velocity_Zの値はそれぞれ、41,41,82である。
(E)第10行:X、Y、Zの各軸が座標P6へ移動完了したかどうかが判定される。
(F)第11〜12行:待機中かどうかが判定される。座標P6への移動が完了し、外部から停止要求(Request_Stop)が入力されると、コイルUnder_WaitingはONになる。
(G)第13〜14行:座標P1への下降中かどうかが判定される。待機状態が解除されたとき、コイルUnder_MovingDownはONになる。
図13は、図12に続く、モーションプログラムの第3の部分を示した図である。図13を参照して、モーションプログラムのそれぞれの行には、以下の(H)〜(J)の処理が記述されている。
(H)第15行:台紙90へのカッター54の下降動作(P6からP1への移動)が実行される。FB7は、1軸についての一連の指令値を算出するFBである。AxisCの入力によりZ軸が指定されている。P1_Position_Zの値は0、Down_Velocityの値は100である。
(I)第16〜17行:カッティング動作中かどうかが判定される。座標P1へのカッター下降動作が完了したとき、コイルUnder_CuttingはONになり、五角形の各辺を切断後にカッター54が再び座標P1へ戻ったとき、コイルUnder_CuttingはOFFになる。
(J)第18行:カッター54を座標P1→P2→P3→P4→P5→P1へと順に移動させる。FB8〜FB12は、そのFBの実行開始位置と指定された実行終了位置とを結ぶ直線に沿って移動するようにX軸とY軸を同時に駆動するFBである。FB8の入力のMoveP2_Positionの値は、P2のXY座標(159,181)である。MoveP2_VelocityはP1からP2にいたる直線に沿った移動速度である。FB8〜FB12に入力される移動速度の値はいずれも100である。
図14は、図13に続く、モーションプログラムの第4の部分を示した図である。図14を参照して、モーションプログラムのそれぞれの行には、以下の(K),(L)の処理が記述されている。
(K)第19〜20行:カッター54が上昇動作中かどうかが判定される。
(L)第21行:カッター54の上昇動作(P1からP6への移動)が実行される。なお、Up_Velocityの値は100である。
図15は、図11から図14のモーションプログラムが実行されたときの指令位置の軌跡を、横軸を軸A、縦軸を軸Bとして表示したグラフである。図15を参照して、軸A、軸Bは、MCユニット内部で使用する軸名称であり、図9の送りねじ52の軸(X軸)、送りねじ53の軸(Y軸)に相当する。ユーザは、画面11における上部のプルダウンメニュー201,202により、横軸、縦軸にはそれぞれ軸A(X軸)、軸B(Y軸)、軸C(Z軸)のうちの任意の軸を指定することができる。
ユーザは、画面11における上部の選択チェックボックス203〜205により、指令位置、予測位置、実測位置のいずれの軌跡を表示するかを選択することができる。
PC10は、指令位置の軌跡は点線にて、応答位置(予測位置または実測位置)の軌跡は実線にて、それぞれ画面11に表示する。図15ではPC10は指令位置と予測位置とを表示させているが、ユーザには、双方の軌跡が重なって実線のみ表示されているように見えている。一般に、数100mmの範囲での動作において指令位置と応答位置との間に発生する誤差は数十μm程度であり、ユーザは、図15のように軌跡全体を表示可能なグラフの縮尺では誤差を確認できない。PC10は、軌跡が重なって2つの軌跡を識別できないような縮尺のときには、いずれかの軌跡の表示処理自体を省略してもよい。
軌跡の脇に表示されている「FB9▽」などは、表示されたモーションFBの実行が開始されるときの位置(その前に実行されたFBが終了したときの位置)を表している。
視野変更ハンド206は、マウスポインタの一種であり、軌跡がグラフの外枠からはみ出しているときにグラフの表示範囲を移動させることができることを示している。ユーザがグラフ上でマウスのドラッグ操作をすると、PC10は、マウスポインタを変化させ、マウスの移動に対応して表示しているグラフを移動する。
拡大/縮小スライドバー207,208は、それぞれ、グラフの縦軸・横軸の縮尺を表している。拡大/縮小スライドバー207,208上のつまみをユーザが上下に移動させることにより、PC10は縦軸・横軸の縮尺を変更する。ユーザが連動チェックボックス209にチェックを入れておくと、PC10は、縦軸・横軸の一方の縮尺が変わると他方も同じ縮尺になるよう追従させる。一方、連動が解除された状態では、ユーザは縦軸・横軸の縮尺を独立に変えることができる。
誤差発生マーク211,212は、誤差が大きい軌跡の箇所を示すマークである。換言すれば、誤差発生マーク211,212は、誤差が予め定められた閾値以上である部分を示すマークである。以下では、誤差が大きい箇所を、「誤差が発生していていると判定した部分」、または「誤差が発生している部分」とも称する。その判定基準については後述する。
PC10は、誤差が大きい箇所を点線の矩形で囲った状態で、当該箇所を表示する。FB10からFB11にいたる経路上では誤差の大きい箇所が断続的に多数存在しているが、誤差発生箇所が互いに近い場合には、PC10は、図示されるようにそれらを囲む1つの図形を表示する。誤差発生マーク211,212の形状や色彩は、視認が容易になるように任意に設計することができる。
PC10は、誤差が発生していると判定した部分の軌跡自体の色彩を変化させ、当該色彩が変化した軌跡部分を誤差発生マークとして表示することもできる。この場合、誤差が発生している部分の長さが短いと、ユーザは、当該部分だけ色彩を変えても視認することが困難である。それゆえ、PC10は、軌跡の色彩を変化させるときには実際に誤差が発生している部分の軌跡の長さにかかわらず、当該部分を容易に視認できるだけの長さにわたって色彩を変化させるとよい。
PC10は、誤差が発生していると判定した部分の軌跡自体の色彩を変化させる場合においても、誤差発生マーク211,212である図形を表示するようにしてもよい。
ユーザが誤差発生マーク211,212をクリックすると、PC10は、画面遷移を行ない、誤差が発生している部分を拡大表示する。
図16は、図15のFB9付近の誤差発生マーク211をユーザがクリックしたときに、PC10が表示する拡大グラフである。図16を参照して、PC10は、指令位置224に対して誤差が大きい部分の応答位置(この場合は予測位置)221〜223の軌跡を誤差の大きさに応じて2段階に色彩を変化させて表示している。PC10は、このように色彩を変化させることにより、応答位置の軌跡自体によって誤差の大きさを、ユーザにとって明瞭な状態で表示することができる。
PC10は、拡大グラフの表示縮尺を、誤差の発生状況を観察するのに適した大きさに自動調整する。たとえば、PC10は、表示する目盛数を固定値とした場合、縦軸の目盛幅を次の方法で求める。
縦軸目盛幅 = (縦軸最大値 − 縦軸最小値)/目盛数
ここで、
縦軸最大値 = max(抽出した区間における応答値の軸B最大値,抽出した区間における指令値の軸B最大値)と、
縦軸最小値 = min(抽出した区間における応答値の軸B最小値,抽出した区間における指令値の軸B最小値)とする。
また、PC10は、目盛幅が1、2または5に10のべき乗を乗じた値になるように表示を調整する。PC10は、横軸についても縦軸と同様の処理を行なう。
その後、ユーザは、拡大/縮小スライドバー207,208を用いて手動で縮尺を変えることもできる。ユーザは、連動チェックボックス209のチェックをはずして、縦軸、横軸の縮尺を独立に変えることもできる。この場合でも、縮尺の変更は指令位置軌跡と応答位置軌跡の両方で行われるため、指令位置軌跡と応答位置軌跡との縦軸の縮尺同士、および横軸の縮尺同士は同一である。
このように、PC10は、選択された誤差発生マークに対応する部分の指令位置の空間的軌跡とそれに対応する応答位置の空間的軌跡とを重ねた態様で両軌跡とも同じ倍率で拡大して画面11に表示させる。より正確には、PC10は、選択された誤差発生マークに対応する部分の指令位置の空間的軌跡と当該空間的軌跡に対応する応答位置の空間的軌跡とを同じ倍率で拡大した態様であって、当該拡大された各空間的軌跡が互いに重なる態様にて、各空間的軌跡を画面11に表示する。このため、ユーザにとって、誤差の発生状況がわかりやすい。
なお、2次元軌跡データ生成部181は、基本的に同じプログラムを用いて、図15の軌跡表示画面および図16の軌跡の拡大表示画面を作成している。
ユーザは、図15の表示画面から手動で縮尺を拡大し、視野変更ハンド206を操作して表示箇所を調整すれば、手動操作で図16に示した画面11を表示させることも可能である。この場合、PC10は、誤差の大きさがグラフ上で容易に視認できる大きさになった段階で、誤差発生マークの表示をやめる。もっとも、PC10は、当該段階になっても誤差発生マークの表示を継続しても差し支えない。もちろん、第1の表示データ作成部1813と第2の表示データ作成部1814とを別のプログラムで実現するようにして、表示データの作成を分担してもよい。
ユーザは、上記のように手動操作のみによってもPC10に拡大表示をさせることは可能であるが、誤差発生マークのクリック操作による画面遷移を利用すると誤差の発生状況を迅速に確認することができる。図16の表示画面から図15の表示画面に戻ることができるように、たとえばバックスペースキーを押すと表示が戻るようにPC10を設計しておくとよい。
図17は、図16の拡大表示画面に、同時刻マーカー、すなわち指令位置マーカーおよび応答位置マーカーを表示した状態を示した図である。図17を参照して、指令位置マーカー232と応答位置マーカー231とは、互いに同じ時刻における指令位置と応答位置を示す図形である。PC10は、マーカーにいたるまでの部分を軌跡として表示しているが、図16と同様に表示範囲におさまる軌跡の全体を表示してもよい。このようなマーカーにより、PC10は、同時刻における指令位置と応答位置との間の位置関係を明瞭に表示することができる。
ユーザは、マーカーに対応する時刻を変更する操作を、画面11における左下の各種ボタン233〜236および当該各種ボタンの横に配置されたスライドバー237にて行なう。
スライドバー237は、バーの長さが、1タクトに相当するモーションプログラムの実行開始から終了までにかかる時間の長さを表している。スライドバー237上のつまみ2371の位置が経過時間(時刻)を表している。PC10は、当該時刻における軌跡上の位置にマーカーを表示する。つまみ2371は、マウスによるドラッグ操作で左右に移動可能である。ユーザのつまみ2371の操作に合わせて、PC10はマーカーの位置を変化させる。
ユーザが再生ボタン235を押すと、PC10は、実時間の経過に合わせて、スライドバー237上のつまみ2371とマーカーの位置とを右へ動かす。ユーザが早送りボタン236を押すと、PC10は、実時間の経過よりも速く、スライドバー237上のつまみ2371の位置とマーカーの位置とを右へ動かす。ユーザが逆再生ボタン234を押すと、PC10は、実時間の経過と同じペースで過去方向に、スライドバー237上のつまみ2371の位置とマーカーの位置とを左へ動かす。ユーザが巻戻しボタン233を押すと、PC10は、実時間の経過よりも速いペースで過去方向に、スライドバー237上のつまみ2371の位置とマーカーの位置とを左へ動かす。PC10は、図15および後述の図18、19の表示画面においても、スライドバー237と同時刻マーカーとの表示を行なうことができる。
図18は、連動チェックボックス209のチェックを解除した状態で図15のFB10とFB11の間にある誤差発生マーク212をユーザがクリックしたときに画面11に表示される内容を示した図である。より詳しくは、図18は、図15に示した表示内容から遷移した後の画面11であって、ユーザが誤差を視認できる倍率で横軸方向を選択的に拡大したときに表示される画面11を示した図である。
PC10は、誤差が断続的に発生している領域の全体を表示できるように、縦軸方向の表示倍率を決定する。ユーザが、連動チェックボックス209のチェックを解除しないで誤差発生マーク212をクリックした場合には、PC10は、横軸方向に発生している誤差がユーザに視認できる大きさに横軸方向の表示を拡大し、かつ縦軸方向の表示も横軸方向の拡大倍率と同じ倍率で拡大する。このため、PC10は、縦軸方向について、誤差が発生している軌跡部分のごく一部しか表示しない。
ユーザは、図15に示した表示画面から手動で図18に示した画面11を表示させるときには、視野変更ハンド206を操作してFB10とFB11との中点を画面11の中央付近に表示させた上で、横軸の縮尺を拡大すればよい。ここで、図15に示した表示画面から手動で図18に示した画面11を表示させるときに、ユーザは、誤差発生マークのクリック操作による画面遷移を利用すれば、誤差の発生状況を迅速に確認することができる。
表示用の縦軸、横軸の方向を、軸A方向、軸B方向のような制御対象の制御に関して使用されている座標系の軸方向とは異なる任意の方向に設定できるようにしてもよい。たとえば、表示用の横軸の方向を軸Aと軸Bが張る平面内で軸Aの方向に対して反時計回りに18度の方向に設定すると、画面に表示される軌跡図形は、図15に表示された軌跡図形に対して時計回りに18度回転した態様で表示される。そうすると、FB11からFB12にいたる軌跡の直線状の部分が横軸と平行になる。その状態で、縦軸方向を選択的に拡大すれば、ユーザは、FB11とFB12の間の軌跡について、進行方向に垂直な方向の誤差の発生状況を観察することができる。
以上のとおり、PC10は、1つの方向と当該方向に直交する方向との間で軌跡の表示倍率を異ならせることができる。このため、局所的に誤差の発生方向がほぼ一定である場合に、PC10が、誤差の発生方向の表示倍率を相対的に大きく、誤差の発生方向と直交する方向の表示倍率を相対的に小さくすれば、PC10は、誤差の発生状況を大きな表示倍率で示しながら比較的広い範囲の軌跡を表示することができる。
図19は、横軸を時間、縦軸を軸Bとして指令位置と予測位置との軌跡を画面11に表示した状態を示した図である。PC10は、縦軸として表示している軸方向において誤差が発生していると判定された箇所に誤差発生マーク241を表示する。ユーザは、図19は図15と比べて、単軸における誤差の発生箇所を確認しやすい。ユーザが誤差発生マーク241をクリックすると、PC10は、画面11に表示する内容を、図19に示した表示内容から、図16に示した表示内容(拡大表示画面)に遷移させる。ユーザが誤差発生マーク241をクリックすると、PC10は、画面遷移を行ない、横軸を時間とし縦軸を軸Bとしたまま図19のグラフの一部を拡大した画像を画面11に表示させてもよい。
図19の横軸を、時間に代えて、動作開始からの移動量(本実施の形態では座標P6からの移動量)としてもよい。図19の縦軸は、位置(指令位置または応答位置)に代えて、速度(指令位置の変化から算出された速度または応答位置の変化から算出された速度)としてもよい。本実施形態では、モーションプログラムの設計上参照されることの多い、横軸を時間または移動量、縦軸を位置または速度とするグラフから、誤差発生部分の軌跡を拡大した拡大表示に直接遷移することができる。
図20は、横軸を時間、縦軸を誤差、すなわち同時刻における指令位置と応答位置との間の距離としたグラフを画面11に表示した状態を示した図である。なお、PC10は、横軸を移動量としてもよい。Th1は、誤差が発生していると判定するための閾値である。
通常の軌跡の表示色彩を第1の色彩とすると、PC10は、図16から図18において誤差がTh1を越える部分(たとえば図16では応答位置221,223)の軌跡を第2の色彩で表示す。Th2は、さらに大きな誤差が発生していることを判定するための閾値である。PC10は、図14から図16において誤差がTh2を越える部分(たとえば図16では応答位置222)の軌跡を第3の色彩で表示する。各閾値の大きさはユーザが調整可能にPC10が構成されている。本実施形態では、PC10は、応答位置の軌跡自体によって誤差の大きさを明瞭に表示することができる。
本実施形態では、PC10は、同時刻における指令位置と応答位置との距離を、3次元空間内での距離として算出している。しかしながら、これに限定されず、PC10は、2つの軸を選択して当該各軸がなす平面に投影された指令値と応答位置との距離、あるいは1つの軸を選択して当該軸上に投影された指令値と応答位置との距離を算出してもよい。
図20に示したグラフによれば、ユーザは、誤差の量と誤差が発生した時刻とを確認できる。ユーザは、指令値やサーボパラメータを適切にチューニングするための参考情報として、当該確認した誤差を用いることができる。
図20に示した画面11にも誤差発生マーク251,252が表示されており、ユーザが誤差発生マーク251,252をクリックすると、PC10は、画面11に表示させる内容を、図16に示した表示内容(拡大表示画面)に遷移する。すなわち、PC10は、図20に示した画面11を表示することにより、時間または移動量の軸上での誤差の大きさの推移を示すことができる。さらに、PC10は、時間または移動量の軸上での誤差の大きさの推移を示す画面から、誤差発生部分の軌跡の拡大表示画面に直接遷移することもできる。
図21は、横軸を移動量とし、縦軸を指令位置と応答位置との間の垂直誤差を画面11に表示した状態を示した図である。なお、横軸を時間としてもよい。垂直誤差とは、指令位置の3次元または2次元の空間的軌跡の接線方向に対して垂直な方向に沿った、指令位置の空間的軌跡から応答位置の空間的軌跡までの距離である。
垂直誤差は、指令位置と応答位置との間の時間的な進みや遅れ要素を除外した両空間的軌跡の間の空間的なずれの大きさを示している。図21のグラフと図20のグラフとを比較すると、誤差が大きく発生している箇所の誤差の方向は指令位置の空間的軌跡の接線方向に対してほぼ垂直であるため両グラフの間にほとんど差異がないのに対し、誤差が小さい部分の誤差の大きさは垂直誤差の大きさの方が小さくなっている。これは、図20の誤差の方には指令位置の変化に対して応答位置の変化が遅れているなどの時間的な遅れが距離の誤差となって現れている成分が含まれているためと考えられる。
このように、PC10は、指令位置と応答位置との間の時間的な進みや遅れ要素を除外した、両空間的軌跡の間の空間的なずれの大きさを示すことができる。PC10は、さらに当該空間的なずれの大きさを示した画面から、誤差発生部分の軌跡を拡大表示した画面に直接遷移することができる。
図21に示した画面11においても誤差発生マーク261,262が表示されており、ユーザが誤差発生マーク261,262をクリックすることによって、PC10は、画面遷移を行ない、図16に示した表示内容を画面11に表示することができる。
図22は、3次元空間内の指令位置と応答位置との軌跡を透視図の手法で画面11に表示した状態を示した図である。作図のための視点の位置と視線方向とをユーザが任意に変更することができるようにPC10は構成されている。軌跡の平面への投影図である図15に示した画面11と比べて、ユーザは、3つの軸の動きを直感的に理解できる。
PC10は、誤差が発生していると判定した軌跡の部分には誤差発生マーク271,272を表示する。ユーザが誤差発生マーク271,272をクリックすると、PC10は、画面11の表示内容を、図22に示した表示内容から図16に示した表示内容に遷移する。図16に示した表示内容に遷移する代わりに、3次元表示のままで誤差発生部分を拡大表示するようにPC10を構成してもよい。また、3次元表示において図17に基づき説明した同時刻マーカーを表示するようにPC10を構成してもよい。
図23は、指令位置または応答位置に合わせて動作するXYZステージの仮想装置モデルを図22に示した3次元空間に配置したときの画面11を示した図である。このような表示をPC10が行なうことにより、ユーザは、図9に示した台紙切断装置1Aの動きをよりリアルに理解することができる。
図24は、指令位置、指令値、予測位置、実測値の算出処理の主体等について、現実的に採り得る組み合わせの例を示した図である。
図24を参照して、第1の組み合わせでは、PC10は、指令位置を算出し、かつ算出した指令位置を表示する。また、PC10は、予測位置を算出し、かつ算出した予測位置を表示する。なお、当該表示の主体(表示主体)は、PC10である。
第2の組み合わせでは、PC10は、指令位置を算出し、かつ算出した指令位置を表示する。PLC20は、制御用の指令値を算出する。また、PLC20は、実測値をPC10に転送する。
第3の組み合わせでは、PLC20は、制御用の指令値を算出する。PLC20は、指令値をPC10に転送する。PC10は、指令値を表示する。また、PLC20は、実測値をPC10に転送する。PC10は、実測値を表示する。
第4の組み合わせでは、PC10は、指令位置を算出し、かつ算出した指令位置を表示する。PLC20は、制御用の指令値を算出する。また、PC10は、予測位置を算出し、かつ算出した予測位置を表示する。PLC20は、実測値をPC10に転送する。PC10は、実測値を表示する。
第5の組み合わせでは、PC10は、予測位置を算出するために指令位置を算出する。PLC20は、制御用の指令値を算出する。PLC20は、指令値をPC10に転送する。PC10は、指令値を表示する。また、PC10が、予測位置を算出し、かつ算出した予測位置を表示する。PLC20は、実測値をPC10に転送する。PC10は、実測値を表示する。
以上説明してきたように、制御システム1のPC10は、指令値に対応する制御対象の特定部位の指令された指令位置と、実際の制御対象の特定部位についての理論的に予測される予測位置または当該特定部位についての測定された実測位置との間の誤差をユーザにわかりやすく表示することが可能となる。
今回開示された実施の形態は例示であって、上記内容のみに制限されるものではない。本発明の範囲は特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1 制御システム、1A 台紙切断装置、10 PC、11 画面、20 PLC、21 電源ユニット、22 CPUユニット、23 I/Oユニット、24 MCユニット、25 バックプレーン、31,32,33 サーボアンプ、41,42,43 サーボモータ、51a,52a,53a ナット、54 カッター、60,70 通信線、80 スイッチ、90 台紙、101 シーケンスプログラム、102 シミュレーション部、103 FBライブラリ、104 指令値算出部、105 指令位置算出部、106 予測位置算出部、107 トレースデータ記憶部、108 表示データ処理部、109 表示制御部、110 受付部、161 モータ電流算出部、162 トルク値算出部、163 モータDB、164 運動方程式計算部、165 装置DB、181 2次元軌跡データ生成部、182 3次元軌跡データ生成部、201,202 プルダウンメニュー、203,204,205 選択チェックボックス、206 視野変更ハンド、207,208 拡大/縮小スライドバー、209 連動チェックボックス、211,212 誤差発生マーク、221,222,223 応答位置、231 応答位置マーカー、232 指令位置マーカー、233 巻戻しボタン、234 逆再生ボタン、235 再生ボタン、236 早送りボタン、237 スライドバー、241 誤差発生マーク、251,252 誤差発生マーク、261,262 誤差発生マーク、271,272 誤差発生マーク、501,502,503 ステージ機構、907 モニタ、908 駆動装置、1811 誤差算出部、1812 判定部、1813 第1表示データ作成部、1814 第2表示データ作成部。

Claims (10)

  1. モーションプログラムの実行によって出力される一連の指令値に基づいて駆動する制御対象における特定部位の位置の変化を、画面に軌跡として表示する表示装置であって、
    前記制御対象の質量および摩擦を無視した場合における、前記一連の指令値に基づいた前記特定部位の位置である一連の指令位置を取得する第1の位置取得手段と、
    前記制御対象の質量および摩擦のうち少なくとも一つを考慮したシミュレートがなされた場合における、前記一連の指令値に基づいた前記特定部位の一連の位置、および前記一連の指令値に基づく前記駆動がなされた場合に測定された前記特定部位の一連の位置のうち少なくとも1つの一連の位置である、前記一連の指令位置に対応する一連の応答位置を取得する第2の位置取得手段と、
    前記指令位置と当該指令位置に対応する前記応答位置との位置の差を算出する誤差算出手段と、
    前記算出された差が予め定められた閾値以上であるか否かを判定する判定手段と、
    前記一連の指令位置によって形成される空間的軌跡および前記一連の応答位置によって形成される空間的軌跡の少なくともいずれかと、当該空間的軌跡のうち前記閾値以上であると判定された部分を示す第1のマークとを前記画面に表示させるためのデータを作成する第1の表示データ作成手段と、
    前記第1のマークの選択操作を受け付ける受付手段と、
    前記選択されたマークに対応する部分の前記指令位置の空間的軌跡と当該空間的軌跡に対応する前記応答位置の空間的軌跡とを同じ倍率で拡大した態様であって、当該拡大された各前記空間的軌跡が互いに重なる態様にて、各前記空間的軌跡を前記画面に表示させるためのデータを作成する第2の表示データ作成手段と、
    前記第1の表示データ作成手段によって作成されたデータ、および前記第2の表示データ作成手段によって作成されたデータを前記画面に表示させる表示制御手段とを備える、表示装置。
  2. 前記第2の表示データ作成手段は、指定された時刻における前記指令位置を示す第2のマークと、当該時刻における前記応答位置を示す第3のマークと前記画面に表示させるためのデータをさらに作成し、
    前記表示制御手段は、前記第2の表示データ作成手段によって作成されたデータを前記画面に表示させるときには、前記第2のマークと前記第3のマークとを前記画面に表示させる、請求項1に記載の表示装置。
  3. 前記第2の表示データ作成手段は、各前記空間的軌跡を前記画面に表示させるためのデータを作成するときに、前記拡大した前記応答位置の空間軌跡の色が前記算出された差の大きさに基づき変化するように当該データを作成し、
    前記表示制御手段は、前記第2の表示データ作成手段によって作成されたデータを前記画面に表示させるときには、前記拡大した前記応答位置の空間軌跡を前記算出された差の大きさに基づいた色で前記画面に表示させる、請求項1に記載の表示装置。
  4. 前記第2の表示データ作成手段は、各前記空間的軌跡を前記画面に表示させるためのデータを作成するときに、前記画面における第1の方向と当該第1の方向に直行する第2の方向とにおいて、前記空間的軌跡の表示倍率が各々指定された表示倍率となるように当該データを作成し、
    前記表示制御手段は、前記第1の方向および前記第2の方向の各々において指定された前記表示倍率で拡大した各前記空間的軌跡を前記画面に表示させる、請求項1に記載の表示装置。
  5. 第1の軸を時間または前記特定部位の移動量とし、第2の軸を、前記指令位置、当該指令位置に基づき算出された前記特定部位の速度、前記応答位置、または当該応答位置に基づき算出された前記特定部位の速度とする2次元グラフを表示するためのデータと、
    前記算出された差が予め定められた閾値以上である部分を前記2次元グラフ上に表示させるためのデータであって、前記選択操作の対象となる第4のマークを表示させるためのデータとを作成する第3の表示データ作成手段をさらに備え、
    前記表示制御手段は、前記2次元グラフと前記第4のマークとを前記画面に表示させる、請求項1から4のいずれか1項に記載の表示装置。
  6. 第1の軸を時間または前記特定部位の移動量とし、第2の軸を、前記算出された差の大きさとする2次元グラフを表示するためのデータと、
    前記算出された差が前記予め定められた閾値以上である部分を前記2次元グラフ上に表示させるためのデータであって、前記選択操作の対象となる第4のマークを表示させるためのデータとを作成する第3の表示データ作成手段をさらに備え、
    前記表示制御手段は、前記2次元グラフと前記第4のマークとを前記画面に表示させる、請求項1から4のいずれか1項に記載の表示装置。
  7. 第1の軸を時間または前記特定部位の移動量とし、第2の軸を、前記指令位置の空間的軌跡の接線方向に対して垂直な方向に沿った、前記指令位置の空間的軌跡から前記応答位置の空間的軌跡までの距離とする2次元グラフを表示するためのデータと、
    前記算出された差が前記予め定められた閾値以上である部分を前記2次元グラフ上に表示させるためのデータであって、前記選択操作の対象となる第4のマークを表示させるためのデータとを作成する第3の表示データ作成手段をさらに備え、
    前記表示制御手段は、前記2次元グラフと前記第4のマークとを前記画面に表示させる、請求項1から4のいずれか1項に記載の表示装置。
  8. モーションプログラムの実行によって出力される一連の指令値に基づいて駆動する制御対象における特定部位の位置の変化を、表示装置の画面に軌跡として表示させる表示制御方法であって、
    前記制御対象の質量および摩擦を無視した場合における、前記一連の指令値に基づいた前記特定部位の位置である一連の指令位置を取得するステップと、
    前記制御対象の質量および摩擦のうち少なくとも一つを考慮したシミュレートがなされた場合における、前記一連の指令値に基づいた前記特定部位の一連の位置、および前記一連の指令値に基づく前記駆動がなされた場合に測定された前記特定部位の一連の位置のうち少なくとも1つの一連の位置である、前記一連の指令位置に対応する一連の応答位置を取得するステップと、
    前記指令位置と当該指令位置に対応する前記応答位置との位置の差を算出するステップと、
    前記算出された差が予め定められた閾値以上であるか否かを判定するステップと、
    前記一連の指令位置によって形成される空間的軌跡および前記一連の応答位置によって形成される空間的軌跡の少なくともいずれかと、当該空間的軌跡のうち前記閾値以上であると判定された部分を示すマークとを前記画面に表示させるための第1のデータを作成するステップと、
    前記マークの選択操作を受け付けるステップと、
    前記選択されたマークに対応する部分の前記指令位置の空間的軌跡と当該空間的軌跡に対応する前記応答位置の空間的軌跡とを同じ倍率で拡大した態様であって、当該拡大された各前記空間的軌跡が互いに重なる態様にて、各前記空間的軌跡を前記画面に表示させるための第2のデータを作成するステップと、
    前記第1のデータおよび前記第2のデータを前記画面に表示させるステップとを備える、表示制御方法。
  9. モーションプログラムの実行によって出力される一連の指令値に基づいて駆動する制御対象における特定部位の位置の変化を表示装置の画面に軌跡として表示させるプログラムであって、
    前記制御対象の質量および摩擦を無視した場合における、前記一連の指令値に基づいた前記特定部位の位置である一連の指令位置を取得するステップと、
    前記制御対象の質量および摩擦のうち少なくとも一つを考慮したシミュレートがなされた場合における、前記一連の指令値に基づいた前記特定部位の一連の位置、および前記一連の指令値に基づく前記駆動がなされた場合に測定された前記特定部位の一連の位置のうち少なくとも1つの一連の位置である、前記一連の指令位置に対応する一連の応答位置を取得するステップと、
    前記指令位置と当該指令位置に対応する前記応答位置との位置の差を算出するステップと、
    前記算出された差が予め定められた閾値以上であるか否かを判定するステップと、
    前記一連の指令位置によって形成される空間的軌跡および前記一連の応答位置によって形成される空間的軌跡の少なくともいずれかと、当該空間的軌跡のうち前記閾値以上であると判定された部分を示すマークとを前記画面に表示させるための第1のデータを作成するステップと、
    前記マークの選択操作を受け付けるステップと、
    前記選択されたマークに対応する部分の前記指令位置の空間的軌跡と当該空間的軌跡に対応する前記応答位置の空間的軌跡とを同じ倍率で拡大した態様であって、当該拡大された各前記空間的軌跡が互いに重なる態様にて、各前記空間的軌跡を前記画面に表示させるための第2のデータを作成するステップと、
    前記第1のデータおよび前記第2のデータを前記画面に表示させるステップとを、前記表示装置に実行させるためのプログラム。
  10. モーションプログラムの実行によって出力される一連の指令値に基づいて駆動する制御対象における特定部位の位置の変化を表示装置の画面に軌跡として表示させるプログラムを格納したコンピュータ読み取り可能な記録媒体であって、
    前記プログラムは、
    前記制御対象の質量および摩擦を無視した場合における、前記一連の指令値に基づいた前記特定部位の位置である一連の指令位置を取得するステップと、
    前記制御対象の質量および摩擦のうち少なくとも一つを考慮したシミュレートがなされた場合における、前記一連の指令値に基づいた前記特定部位の一連の位置、および前記一連の指令値に基づく前記駆動がなされた場合に測定された前記特定部位の一連の位置のうち少なくとも1つの一連の位置である、前記一連の指令位置に対応する一連の応答位置を取得するステップと、
    前記指令位置と当該指令位置に対応する前記応答位置との位置の差を算出するステップと、
    前記算出された差が予め定められた閾値以上であるか否かを判定するステップと、
    前記一連の指令位置によって形成される空間的軌跡および前記一連の応答位置によって形成される空間的軌跡の少なくともいずれかと、当該空間的軌跡のうち前記閾値以上であると判定された部分を示すマークとを前記画面に表示させるための第1のデータを作成するステップと、
    前記マークの選択操作を受け付けるステップと、
    前記選択されたマークに対応する部分の前記指令位置の空間的軌跡と当該空間的軌跡に対応する前記応答位置の空間的軌跡とを同じ倍率で拡大した態様であって、当該拡大された各前記空間的軌跡が互いに重なる態様にて、各前記空間的軌跡を前記画面に表示させるための第2のデータを作成するステップと、
    前記第1のデータおよび前記第2のデータを前記画面に表示させるステップとを、前記表示装置に実行させる、コンピュータ読み取り可能な記録媒体。
JP2010057474A 2010-03-15 2010-03-15 表示装置、表示制御方法、プログラム、およびコンピュータ読み取り可能な記録媒体 Active JP5428965B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2010057474A JP5428965B2 (ja) 2010-03-15 2010-03-15 表示装置、表示制御方法、プログラム、およびコンピュータ読み取り可能な記録媒体
PCT/JP2011/051611 WO2011114776A1 (ja) 2010-03-15 2011-01-27 表示装置、表示制御方法、プログラム、およびコンピュータ読み取り可能な記録媒体
US13/579,625 US9563195B2 (en) 2010-03-15 2011-01-27 Device and method for displaying a change in the position of an object
EP11755966.6A EP2549347B1 (en) 2010-03-15 2011-01-27 Display device, display control method, program, and computer-readable recording medium
CN201180014647.4A CN102812407B (zh) 2010-03-15 2011-01-27 显示设备、显示控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010057474A JP5428965B2 (ja) 2010-03-15 2010-03-15 表示装置、表示制御方法、プログラム、およびコンピュータ読み取り可能な記録媒体

Publications (3)

Publication Number Publication Date
JP2011192017A true JP2011192017A (ja) 2011-09-29
JP2011192017A5 JP2011192017A5 (ja) 2012-04-26
JP5428965B2 JP5428965B2 (ja) 2014-02-26

Family

ID=44648885

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010057474A Active JP5428965B2 (ja) 2010-03-15 2010-03-15 表示装置、表示制御方法、プログラム、およびコンピュータ読み取り可能な記録媒体

Country Status (5)

Country Link
US (1) US9563195B2 (ja)
EP (1) EP2549347B1 (ja)
JP (1) JP5428965B2 (ja)
CN (1) CN102812407B (ja)
WO (1) WO2011114776A1 (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013250636A (ja) * 2012-05-30 2013-12-12 Fanuc Ltd 加工処理の評価を行うための情報を表示する表示部を備えた数値制御装置
JP2013257809A (ja) * 2012-06-14 2013-12-26 Fanuc Ltd 工作機械の工具ベクトルを表示する工具軌跡表示装置
JP2014035722A (ja) * 2012-08-10 2014-02-24 Omron Corp データ表示装置、方法、プログラム
JP2014186586A (ja) * 2013-03-25 2014-10-02 Sumitomo Heavy Ind Ltd 支援装置
JP2016012191A (ja) * 2014-06-27 2016-01-21 オムロン株式会社 情報処理装置、情報処理方法、およびプログラム
JP6179870B1 (ja) * 2016-09-23 2017-08-16 大槻 俊明 数値制御工作機械測定装置
WO2019082704A1 (ja) * 2017-10-27 2019-05-02 オムロン株式会社 サーボモータ調整装置およびサーボモータ調整方法
WO2020194424A1 (ja) * 2019-03-25 2020-10-01 三菱電機株式会社 表示支援プログラム、同プログラムを記憶したコンピュータ可読記憶媒体、表示支援方法、及び表示支援システム
WO2023105567A1 (ja) * 2021-12-06 2023-06-15 ファナック株式会社 波形表示装置

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11062615B1 (en) * 2011-03-01 2021-07-13 Intelligibility Training LLC Methods and systems for remote language learning in a pandemic-aware world
US8804148B2 (en) * 2011-09-26 2014-08-12 Brother Kogyo Kabushiki Kaisha Image forming apparatus and non-transitory computer readable medium storing a program for controlling the same
TWI554915B (zh) * 2013-07-04 2016-10-21 友達光電股份有限公司 觸控系統與指令定位方法
CN104063153B (zh) 2014-05-04 2018-12-11 南京中兴软件有限责任公司 一种实现人机交互的方法和装置
US9283678B2 (en) * 2014-07-16 2016-03-15 Google Inc. Virtual safety cages for robotic devices
JP6631279B2 (ja) * 2015-03-19 2020-01-15 株式会社デンソーウェーブ ロボット操作装置、ロボット操作プログラム
US10048851B2 (en) * 2015-03-19 2018-08-14 Denso Wave Incorporated Apparatus for operating robots
JP5985087B1 (ja) * 2015-04-27 2016-09-06 三菱電機株式会社 数値制御装置
JP6363643B2 (ja) * 2016-03-04 2018-07-25 ファナック株式会社 プログラム指令の解析桁数を増やすことを可能とする数値制御装置
JP6506341B2 (ja) * 2017-04-07 2019-04-24 ファナック株式会社 加工経路表示装置
US10676022B2 (en) 2017-12-27 2020-06-09 X Development Llc Visually indicating vehicle caution regions
KR20200042660A (ko) * 2018-10-16 2020-04-24 현대자동차주식회사 차량 디스플레이 제어 장치, 그를 포함한 시스템 및 그 방법

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0321814A (ja) * 1989-06-20 1991-01-30 Nissan Motor Co Ltd 形状計測方法
JPH03287343A (ja) * 1990-03-30 1991-12-18 Toyota Motor Corp 機械座標系補正装置
JPH06138934A (ja) * 1992-10-27 1994-05-20 Fanuc Ltd 数値制御装置の工具経路表示方法
JPH07261818A (ja) * 1994-03-22 1995-10-13 Nec Corp Camシステム
JPH1034252A (ja) * 1996-07-29 1998-02-10 Nec Corp 板金モデル製造不良検証方式
JPH11143514A (ja) * 1997-11-10 1999-05-28 Fanuc Ltd 加工誤差チェックができる数値制御装置
JP2000132214A (ja) * 1998-10-27 2000-05-12 Mitsubishi Electric Corp 加工機遠隔監視装置
JP2001125613A (ja) * 1999-10-28 2001-05-11 Mitsubishi Electric Corp 数値制御シミュレーション装置
JP2003022454A (ja) * 2001-07-06 2003-01-24 Nissan Motor Co Ltd データの座標変換方法
JP2006026640A (ja) * 2004-07-12 2006-02-02 Matsushita Electric Ind Co Ltd アーク溶接ロボット

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3438007A1 (de) 1984-10-17 1986-04-17 Robert Bosch Gmbh, 7000 Stuttgart Einrichtung zur diagnose einer bahngesteuerten maschine
JPS6237706A (ja) * 1985-08-12 1987-02-18 Toyota Motor Corp ロボツト性能計測装置
JPH03264215A (ja) * 1990-02-13 1991-11-25 Mitsubishi Electric Corp 放電加工機用数値制御装置
DE4323992A1 (de) * 1992-09-22 1994-03-24 Bosch Gmbh Robert Verfahren zur Überprüfung der Arbeitsgenauigkeit einer NC-Maschine
US6167328A (en) 1995-09-19 2000-12-26 Kabushiki Kaisha Yaskawa Denki Robot language processing apparatus
JP2007242054A (ja) 1995-09-19 2007-09-20 Yaskawa Electric Corp ロボット言語処理装置
JP2003224543A (ja) * 2002-01-30 2003-08-08 Mitsubishi Electric Corp 誤り訂正復号方法、誤り訂正復号器および誤り訂正復号プログラム
US7062352B2 (en) * 2002-05-17 2006-06-13 Okuma Corporation Method for displaying tool locus in NC data and method for analyzing NC data
JP4256353B2 (ja) * 2005-02-17 2009-04-22 ファナック株式会社 サーボ制御装置及びサーボ系の調整方法

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0321814A (ja) * 1989-06-20 1991-01-30 Nissan Motor Co Ltd 形状計測方法
JPH03287343A (ja) * 1990-03-30 1991-12-18 Toyota Motor Corp 機械座標系補正装置
JPH06138934A (ja) * 1992-10-27 1994-05-20 Fanuc Ltd 数値制御装置の工具経路表示方法
JPH07261818A (ja) * 1994-03-22 1995-10-13 Nec Corp Camシステム
JPH1034252A (ja) * 1996-07-29 1998-02-10 Nec Corp 板金モデル製造不良検証方式
JPH11143514A (ja) * 1997-11-10 1999-05-28 Fanuc Ltd 加工誤差チェックができる数値制御装置
JP2000132214A (ja) * 1998-10-27 2000-05-12 Mitsubishi Electric Corp 加工機遠隔監視装置
JP2001125613A (ja) * 1999-10-28 2001-05-11 Mitsubishi Electric Corp 数値制御シミュレーション装置
JP2003022454A (ja) * 2001-07-06 2003-01-24 Nissan Motor Co Ltd データの座標変換方法
JP2006026640A (ja) * 2004-07-12 2006-02-02 Matsushita Electric Ind Co Ltd アーク溶接ロボット

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013250636A (ja) * 2012-05-30 2013-12-12 Fanuc Ltd 加工処理の評価を行うための情報を表示する表示部を備えた数値制御装置
US9477216B2 (en) 2012-05-30 2016-10-25 Fanuc Corporation Numerical control device including display part for displaying information for evaluation of machining process
US9454144B2 (en) 2012-06-14 2016-09-27 Fanuc Corporation Machine tool path display apparatus displaying relative tool vector angle
JP2013257809A (ja) * 2012-06-14 2013-12-26 Fanuc Ltd 工作機械の工具ベクトルを表示する工具軌跡表示装置
CN103513610A (zh) * 2012-06-14 2014-01-15 发那科株式会社 显示机床的刀具矢量的刀具轨迹显示装置
CN103513610B (zh) * 2012-06-14 2015-05-13 发那科株式会社 显示机床的刀具矢量的刀具轨迹显示装置
JP2014035722A (ja) * 2012-08-10 2014-02-24 Omron Corp データ表示装置、方法、プログラム
JP2014186586A (ja) * 2013-03-25 2014-10-02 Sumitomo Heavy Ind Ltd 支援装置
JP2016012191A (ja) * 2014-06-27 2016-01-21 オムロン株式会社 情報処理装置、情報処理方法、およびプログラム
JP6179870B1 (ja) * 2016-09-23 2017-08-16 大槻 俊明 数値制御工作機械測定装置
JP2018049529A (ja) * 2016-09-23 2018-03-29 大槻 俊明 数値制御工作機械測定装置
WO2018056116A1 (ja) * 2016-09-23 2018-03-29 大槻俊明 数値制御工作機械測定装置
WO2019082704A1 (ja) * 2017-10-27 2019-05-02 オムロン株式会社 サーボモータ調整装置およびサーボモータ調整方法
JP2019082754A (ja) * 2017-10-27 2019-05-30 オムロン株式会社 サーボモータ調整装置およびサーボモータ調整方法
US11392106B2 (en) 2017-10-27 2022-07-19 Omron Corporation Servomotor adjustment device and servomotor adjustment method
WO2020194424A1 (ja) * 2019-03-25 2020-10-01 三菱電機株式会社 表示支援プログラム、同プログラムを記憶したコンピュータ可読記憶媒体、表示支援方法、及び表示支援システム
JP6840288B1 (ja) * 2019-03-25 2021-03-10 三菱電機株式会社 表示支援プログラム、同プログラムを記憶したコンピュータ可読記憶媒体、表示支援方法、及び表示支援システム
WO2023105567A1 (ja) * 2021-12-06 2023-06-15 ファナック株式会社 波形表示装置

Also Published As

Publication number Publication date
EP2549347B1 (en) 2018-05-09
WO2011114776A1 (ja) 2011-09-22
US9563195B2 (en) 2017-02-07
CN102812407B (zh) 2015-05-20
JP5428965B2 (ja) 2014-02-26
CN102812407A (zh) 2012-12-05
EP2549347A1 (en) 2013-01-23
EP2549347A4 (en) 2014-03-19
US20130050276A1 (en) 2013-02-28

Similar Documents

Publication Publication Date Title
JP5428965B2 (ja) 表示装置、表示制御方法、プログラム、およびコンピュータ読み取り可能な記録媒体
US9149931B2 (en) Robot system, robot control device and method for controlling robot
WO2011114777A1 (ja) 表示装置、表示制御方法、プログラム、およびコンピュータ読み取り可能な記録媒体
JP3950805B2 (ja) 教示位置修正装置
EP2282873B1 (en) A method and a system for facilitating calibration of an off-line programmed robot cell
US8868228B2 (en) Numerical controller having speed control function for multi-axis machining device
JP6878378B2 (ja) 数値制御装置
US9897991B2 (en) Machine tool
JP5444412B2 (ja) 加工処理の評価を行うための情報を表示する表示部を備えた数値制御装置
EP2055446A1 (en) A portable robot control apparatus and a method for controlling a movement of a robot
JP5249452B1 (ja) 補正データを考慮した軌跡表示装置
JP2011022688A (ja) 工作機械の工具軌跡表示装置
US11656600B2 (en) Simulation apparatus
KR20180069031A (ko) 로봇의 다이렉트 교시방법
JP6915441B2 (ja) 情報処理装置、情報処理方法、および情報処理プログラム
JP7052250B2 (ja) 情報処理装置、情報処理方法、および情報処理プログラム
US20170312912A1 (en) Robot control apparatus which displays operation program including state of additional axis
JP2010218036A (ja) ロボットオフラインプログラミング装置
WO2016162066A1 (en) An industrial robot and a method for lead-through programming of an industrial robot
JP2009166172A (ja) ロボットのシミュレーション方法及びロボットのシミュレーション装置
JP2009048396A (ja) モータモーション用シミュレータ
JP2013107179A (ja) ダイレクト教示データの編集方法とパラレルリンクロボット
JPS59200306A (ja) Nc機器の移動を図形処理する方法
US20230367558A1 (en) Engineering Station and Method for Diagnosing a User Program
JP2005138245A (ja) 人間介入型ロボットの制御装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120313

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120313

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130416

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131105

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131118

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5428965

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150