JP2006343828A - ロボット制御装置及びロボット制御方法 - Google Patents

ロボット制御装置及びロボット制御方法 Download PDF

Info

Publication number
JP2006343828A
JP2006343828A JP2005166893A JP2005166893A JP2006343828A JP 2006343828 A JP2006343828 A JP 2006343828A JP 2005166893 A JP2005166893 A JP 2005166893A JP 2005166893 A JP2005166893 A JP 2005166893A JP 2006343828 A JP2006343828 A JP 2006343828A
Authority
JP
Japan
Prior art keywords
work
robot
program
state
unit
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
JP2005166893A
Other languages
English (en)
Other versions
JP4210270B2 (ja
Inventor
Akira Nihei
亮 二瓶
Tetsuro Kato
哲朗 加藤
Koji Nishi
浩次 西
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.)
Fanuc Corp
Original Assignee
Fanuc Corp
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 Fanuc Corp filed Critical Fanuc Corp
Priority to JP2005166893A priority Critical patent/JP4210270B2/ja
Priority to US11/447,034 priority patent/US9616570B2/en
Priority to CNB2006100885922A priority patent/CN100460161C/zh
Priority to EP06011656.3A priority patent/EP1731273B1/en
Publication of JP2006343828A publication Critical patent/JP2006343828A/ja
Application granted granted Critical
Publication of JP4210270B2 publication Critical patent/JP4210270B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • 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/40Robotics, robotics mapping to robotics vision
    • G05B2219/40584Camera, non-contact sensor mounted on wrist, indep from gripper

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Numerical Control (AREA)
  • Manipulator (AREA)
  • Control By Computers (AREA)

Abstract

【課題】 生産システムの稼動状態を随時把握しながら、複数のワークに関連する作業を並行して効率良く1台のロボットに遂行させることができるようにする。
【解決手段】 ロボット制御装置10は、ロボットの作業環境の状態を実時間で示す状態情報16を収集する情報収集部18と、状態情報16に基づいて、複数のワークに対し実行段階にある作業プログラム12のうち、作業開始条件14を満たしている第1の実行可能プログラム12Aを選定するプログラム選定部20と、第1の実行可能プログラム12Aを実行処理する処理部22と、処理部22が第1の実行可能プログラム12Aの実行処理を完了したか否かを判断するプログラム完了判断部24とを備える。プログラム選定部20は、プログラム完了判断部24の判断状況に応じて、作業開始条件を満たしている第2の実行可能プログラム12Bを、状態情報16に基づき選定する。
【選択図】 図1

Description

本発明は、産業用ロボットの制御装置及び制御方法に関する。
産業用ロボット(以下、ロボットと略称する)は、特定の作業プログラム(すなわちタスクプログラム)に従って動作する。ロボットに装着したツール(すなわちエンドエフェクタ)の種類、作業対象のワークの種類、作業の内容等に対応した様々な種類の作業プログラムを、適宜選択してロボットに与えることで、1台のロボットが多種多様な作業を遂行することができる。ロボットを動作させるための作業プログラムを作成する際には、一般に教示操作盤を使用して、オペレータが手動モードでロボットの各制御軸を低速運動させて、ワークに対し作業を遂行する複数の作業部位にツールを順次位置決めし、それら作業部位を「教示点」としてロボットに記憶させる。ロボットは、個々の作業部位にツールを位置決めしたときの各制御軸の動作位置を、個々の教示点におけるロボット自身の位置及び姿勢の情報として記憶する。なお、このような教示プログラミングを、パーソナルコンピュータ等を用いたオフラインシミュレーションで行うことも知られている。
ロボットは、教示された作業プログラムに従い同一作業を繰り返して遂行できるが、作業内容を変更する場合には、新しい作業内容に合致した新たな作業プログラムを作成する必要がある。例えば、ロボットを用いて高度に自動化された生産システムにおいて、生産品種を追加したり変更したりする場合には、生産ラインの変更が要求される。このとき、治具、機械、搬送装置といった各種ハードウェアの再設計や、加工機械の加工プログラム、ロボットの作業プログラム、PC(プログラマブルコントローラ)及び生産管理装置のシーケンスラダー及び生産管理プログラムといった各種ソフトウェアの再作成に、多大な工数が必要となる。このような生産ラインの変更に伴うハードウェア/ソフトウェアの構築工数を有効に削減することが、自動化された生産システムのコスト関連の重要な課題となっており、故にロボットにおける作業プログラムの作成に要する工数の削減が望まれている。
ロボットの作業プログラムの作成、変更を容易にする手法として、ロボットが1つのワークに対して遂行する1サイクルの作業を、互いに異なる複数の作業単位に分割して、個々の作業単位を指令する複数の作業プログラムを作成し、それら作業プログラムを適当に組み合わせてロボットに与えることが知られている。例えば特許文献1は、ロボット及び加工機械を有する生産セルにおいて、ロボット及び加工機械が遂行する一連の作業を複数の作業単位に分割し、個々の作業単位を指令する複数の作業プログラムを、情報処理装置が適当な順序でロボット及び加工機械のいずれかに与える構成を開示する。生産品種の追加や変更が生じたときには、それに伴って追加や変更が必要となる作業単位についてのみ、作業プログラムの見直しを行えば良いので、生産ラインの変更に伴うロボットの作業プログラムの作成コストが削減される。
なお、本願で用いる「作業単位」という用語は、ワークを把持する、ワークを置く、ワークを見る等の、単一の行為で特徴付けられる作業を意味する。通常、1つの作業単位を遂行する間に他の作業単位を介入させることは、極めて不合理となる。また、複数の同一及び異なる作業単位を様々に組み合わせることで、多種多様な作業を実現することができる。
特開2004−185228号公報
複数の生産品を並行して生産する生産システムにおいて、例えば、複数の加工機械に対して1台のロボットがワークを供給したり取り出したりする場合に、加工内容が異なる(つまり生産サイクルが異なる)ワークの供給/取出作業を一連の作業プログラムにまとめることは、一般に困難である。通常は、1台の加工機械へのワークの供給及び取出作業をロボットの1単位の作業プログラムとして、個々の加工機械に対応する作業プログラムを用意し、上位コントローラからの指示に従い、ロボットが、指示された加工機械に対してワークの供給及び取出作業を遂行する。このとき、1つの加工機械に対する作業プログラムが終了するまでは、ロボットは、他の加工機械に対する作業プログラムを開始しない。この構成では、ワークの供給ステップと取出ステップとの間に、例えば加工機械におけるエアブローや軸移動等の比較的時間を要する工程が有ったとしても、ロボットは、その工程の終了を待機するだけである。
前述した特許文献1に記載されるような、1サイクルの作業を複数の作業単位に分割してロボット及び加工機械に指令する構成によれば、複数の加工機械のそれぞれに対し、ワークの供給及び取出作業を、共通する作業単位(例えば供給)毎に並行的に遂行することができる。しかしこの構成でも、ロボットは1つの作業単位を完遂させてから次の作業単位を遂行するので、共通する作業単位の遂行に要する時間(例えば加工時間)がワーク毎に異なる場合には、全ての加工機械に対するワークの供給及び取出作業のサイクルタイムは、時間の掛かる作業単位を有するワークによって支配されることになる。つまりこの構成では、生産システムの稼動状態を随時把握しながら、ロボットの待機時間を効果的に削減して作業を効率良く遂行することは困難である。
また、生産システムが、機器の故障等によって緊急停止した場合には、その原因の究明や除去のために、例えば人手によって治具からワークを取り除いたり、手動で信号をON/OFFしたり、ロボットを手動モードで退避位置まで移動させたりといった、オペレータによるシステムへの手動介入が行われることが多い。オペレータによる手動介入が行われると、生産システムの状態が緊急停止時の状態から変動して、ロボットの作業プログラムとの相関性が損なわれるので、そのままでは作業を再開することができない。そこで、作業プログラムの再開時点の内容に合わせて生産システムの状態を手作業で変更するか、或いは、中断した作業プログラムを生産システムの状態に合わせるべく適当なステップだけロボットを擬似運転させるといった、何らかの復旧作業を行うことになる。このような復旧作業を適切に行うためには、生産システムの設備の構成や個々の機械で動作している作業プログラムの内容を、オペレータが熟知していることが必要となる。
本発明は、ロボットを用いた生産システムにおける上記した諸課題を解決可能な、ロボットの制御装置及び制御方法を提供せんとするものである。
したがって本発明の目的は、生産システムの稼動状態を随時把握しながら、複数のワークに関連する作業を並行して効率良く1台のロボットに遂行させることができるロボット制御装置を提供することにある。
本発明の他の目的は、生産システムの稼動状態を随時把握しながら、複数のワークに関連する作業を並行して効率良く1台のロボットに遂行させることができるロボット制御方法を提供することにある。
本発明のさらに他の目的は、生産システムが緊急停止したときに、生産システムに関する理解度に関わらず、ロボットの作業を安全かつ確実に再開させることができるロボット制御装置を提供することにある。
本発明のさらに他の目的は、生産システムが緊急停止したときに、生産システムに関する理解度に関わらず、ロボットの作業を安全かつ確実に再開させることができるロボット制御方法を提供することにある。
上記目的を達成するために、請求項1に記載の発明は、複数の作業単位を個々に指令する複数の作業プログラムに従い、複数の作業単位を含む作業を複数のワークに対し並行してロボットに遂行させるロボット制御装置であって、複数の作業プログラムの各々は、対応の作業単位をロボットが開始する前提となる作業開始条件の記述を含み、ロボット制御装置は、ロボットが作業を遂行する環境の状態を実時間で示す状態情報を収集する情報収集部と、情報収集部が収集した状態情報に基づいて、複数の作業プログラムの中で複数のワークに対し実行段階にある作業プログラムのうち、作業開始条件を満たしている第1の実行可能プログラムを選定するプログラム選定部と、プログラム選定部が選定した第1の実行可能プログラムを実行処理する処理部と、処理部が第1の実行可能プログラムの実行処理を完了したか否かを判断するプログラム完了判断部とを具備し、プログラム選定部は、プログラム完了判断部の判断状況に応じて、実行段階にある作業プログラムのうち、作業開始条件を満たしている第2の実行可能プログラムを、処理部が次に実行処理する作業プログラムとして、状態情報に基づき選定すること、を特徴とするロボット制御装置を提供する。
請求項2に記載の発明は、請求項1に記載のロボット制御装置において、プログラム選定部は、状態情報に基づいて、複数の作業プログラムの中で幾つかの実行段階にある作業プログラムを特定するとともに、特定した作業プログラムから、予め定めたルールに従って、1つの第1の実行可能プログラムを選択するロボット制御装置を提供する。
請求項3に記載の発明は、請求項1又は2に記載のロボット制御装置において、プログラム選定部は、複数のワークのそれぞれに関連して複数の作業プログラムの実行順序を定義する複数の作業スクリプトを参照して、実行段階にある作業プログラムを特定するロボット制御装置を提供する。
請求項4に記載の発明は、請求項3に記載のロボット制御装置において、複数の作業プログラムと複数の作業スクリプトとを格納する記憶部をさらに具備するロボット制御装置を提供する。
請求項5に記載の発明は、請求項1〜4のいずれか1項に記載のロボット制御装置において、プログラム完了判断部が、処理部の実行処理が完了したと判断する前に、プログラム選定部が第2の実行可能プログラムを選定し、処理部が第2の実行可能プログラムを実行処理するロボット制御装置を提供する。
請求項6に記載の発明は、請求項1〜5のいずれか1項に記載のロボット制御装置において、複数の作業プログラムの各々は、対応の作業単位をロボットが完了する前提となる作業完了条件の記述を含み、プログラム完了判断部は、情報収集部が収集した状態情報に基づいて、第1の実行可能プログラムが作業完了条件を満たしているか否かを判断し、それにより処理部の実行処理が完了したか否かを判断するロボット制御装置を提供する。
請求項7に記載の発明は、請求項1〜6のいずれか1項に記載のロボット制御装置において、プログラム完了判断部は、ロボットが作業を遂行する環境をモデル化した内部モデルの状態を示す内部情報を有して、内部情報と情報収集部が収集した状態情報とが互いに一致するか否かを判断し、それにより処理部の実行処理が完了したか否かを判断するロボット制御装置を提供する。
請求項8に記載の発明は、請求項7に記載のロボット制御装置において、複数の作業プログラムは、複数の作業単位とは異なる例外処理作業単位を指令する例外作業プログラムを含み、プログラム完了判断部が、内部情報と状態情報とが互いに一致しないと判断したときに、プログラム選定部は、複数の作業プログラムから例外作業プログラムを選定し、処理部は、第2の実行可能プログラムの代わりに例外作業プログラムを実行処理するロボット制御装置を提供する。
請求項9に記載の発明は、請求項1〜7のいずれか1項に記載のロボット制御装置において、プログラム完了判断部は、処理部の実行処理が完了したと判断するまでに予め定めた時間が経過したか否かをさらに判断するロボット制御装置を提供する。
請求項10に記載の発明は、請求項9に記載のロボット制御装置において、複数の作業プログラムは、複数の作業単位とは異なる例外処理作業単位を指令する例外作業プログラムを含み、プログラム完了判断部が、予め定めた時間が経過したと判断したときに、プログラム選定部は、複数の作業プログラムから例外作業プログラムを選定し、処理部は、第2の実行可能プログラムの代わりに例外作業プログラムを実行処理するロボット制御装置を提供する。
請求項11に記載の発明は、請求項1〜6のいずれか1項に記載のロボット制御装置において、作業の遂行中にロボットを緊急停止させる停止制御部と、ロボットが作業を遂行する環境をモデル化した内部モデルの状態を示す内部情報を有して、内部情報と情報収集部が収集した状態情報とが互いに一致するか否かを判断する状態判断部と、状態判断部が、内部情報と状態情報とが互いに一致すると判断したときに、緊急停止を解除して作業を再開する再開制御部とをさらに具備するロボット制御装置を提供する。
請求項12に記載の発明は、請求項11に記載のロボット制御装置において、状態判断部が、内部情報と状態情報とが互いに一致しないと判断したときに、再開制御部は、作業を再開する前に、内部情報と状態情報との不一致の内容及び対策の少なくとも一方を告知するメッセージ信号を出力するロボット制御装置を提供する。
請求項13に記載の発明は、請求項11又は12に記載のロボット制御装置において、状態判断部が、内部情報と状態情報とが互いに一致しないと判断したときに、再開制御部は、作業を再開する前に、再開許可指令を求めるメッセージ信号を出力するロボット制御装置を提供する。
請求項14に記載の発明は、請求項13に記載のロボット制御装置において、再開制御部は、再開許可指令が得られたときに、内部情報を状態情報と同一の内容に書き換えて、作業を再開するロボット制御装置を提供する。
請求項15に記載の発明は、複数の作業単位を個々に指令する複数の作業プログラムに従い、複数の作業単位を含む作業を複数のワークに対し並行してロボットに遂行させるロボット制御方法であって、複数の作業プログラムの各々は、対応の作業単位をロボットが開始する前提となる作業開始条件の記述を含み、ロボット制御方法は、ロボットが作業を遂行する環境の状態を実時間で示す状態情報を収集するステップと、収集した状態情報に基づいて、複数の作業プログラムの中で複数のワークに対し実行段階にある作業プログラムのうち、作業開始条件を満たしている第1の実行可能プログラムを選定するステップと、選定した第1の実行可能プログラムを実行処理するステップと、第1の実行可能プログラムの実行処理の状況に応じて、実行段階にある作業プログラムのうち、作業開始条件を満たしている第2の実行可能プログラムを、状態情報に基づき選定するステップと、選定した第2の実行可能プログラムを実行処理するステップと、を具備することを特徴とするロボット制御方法を提供する。
請求項16に記載の発明は、請求項15に記載のロボット制御方法において、複数の作業プログラムの各々は、対応の作業単位をロボットが完了する前提となる作業完了条件の記述を含み、第2の実行可能プログラムを選定するステップの前に、状態情報に基づいて、第1の実行可能プログラムが作業完了条件を満たしているか否かを判断し、それにより第1の実行可能プログラムの実行処理が完了したか否かを判断するステップをさらに具備するロボット制御方法を提供する。
請求項17に記載の発明は、請求項15又は16に記載のロボット制御方法において、第2の実行可能プログラムを選定するステップの前に、ロボットが作業を遂行する環境をモデル化した内部モデルの状態を示す内部情報と、情報収集部が収集した状態情報とが互いに一致するか否かを判断し、それにより第1の実行可能プログラムの実行処理が完了したか否かを判断するステップをさらに具備するロボット制御方法を提供する。
請求項18に記載の発明は、請求項15又は16に記載のロボット制御方法において、作業の遂行中にロボットが緊急停止したときに、ロボットが作業を遂行する環境をモデル化した内部モデルの状態を示す内部情報と、状態情報とが互いに一致するか否かを判断するステップと、内部情報と状態情報とが互いに一致すると判断したときに、緊急停止を解除して作業を再開するステップとをさらに具備するロボット制御方法を提供する。
請求項1に記載の発明によれば、ロボットの作業環境の状態を実時間で参照することで、実行段階にある作業プログラムのうち作業開始条件を満たしている第1の実行可能プログラムを適切に選択して、対応の作業単位をロボットに遂行させることができ、さらに、第1の実行可能プログラムの実行処理の進捗状況を考慮しながら、同様に作業開始条件を満たしている第2の実行可能プログラムを適切に選択して、次の作業単位をロボットに遂行させることができる。したがって、ロボットを用いた生産システムにおいて、生産システムの稼動状態を随時把握しながら、複数のワークに関連する作業を並行して効率良く1台のロボットに遂行させることができる。
請求項2に記載の発明によれば、生産システムの状況に応じて設定した所望のルールに従い、第1の実行可能プログラムを選択することができるので、システムの柔軟性が向上する。
請求項3又は4に記載の発明によれば、作業スクリプトを用いることにより、実行段階にある作業プログラムの特定が容易になる。
請求項5に記載の発明によれば、第1の実行可能プログラムの実行処理の完了を待たずに、第2の実行可能プログラムを実行処理することができるので、生産システムの効率がさらに向上する。
請求項6に記載の発明によれば、ロボットの作業環境の状態を実時間で参照することで、第1の実行可能プログラムが作業完了条件を満たしているか否かを判断基準として、処理部による実行処理が完了したか否かを迅速かつ正確に判断することができる。
請求項7に記載の発明によれば、ロボットが作業する実際の環境の状態を表す状態情報と、実際の環境の状態に影響されない内部情報とが、互いに一致するか否かを判断基準として、処理部による実行処理が完了したか否かを迅速かつ正確に判断することができる。
請求項8に記載の発明によれば、処理部による実行処理が異常な完了状態に至ったときに、それを即座に検知して、適切な例外処理作業単位を実行することが可能になる。
請求項9に記載の発明によれば、処理部による実行処理が完了したか否かを、経過時間を判断基準として、迅速かつ正確に判断することができる。
請求項10に記載の発明によれば、処理部による実行処理が遅延したときに、それを即座に検知して、適切な例外処理作業単位を実行することが可能になる。
請求項11に記載の発明によれば、ロボットを用いた生産システムにおいて、生産システムが緊急停止したときに、ロボットが作業する実際の環境の状態を表す状態情報と、実際の環境の状態に影響されない内部情報とが、互いに一致するか否かを判断基準として、緊急停止を解除して作業を再開することができる。したがって、生産システムに関する理解度の低いオペレータであっても、ロボットの作業を安全かつ確実に再開させることができる。
請求項12に記載の発明によれば、生産システムに関する理解度の低いオペレータであっても、メッセージ信号を読み取ることにより、適切な対策を施すことができる。
請求項13に記載の発明によれば、オペレータからの再開許可指令が得られない限り、作業を再開しないので、安全性が確保される。
請求項14に記載の発明によれば、作業の再開時に、作業環境の実際の状態と作業プログラムの状態とを一致させることができるので、安全性が確保される。
請求項15に記載の発明によれば、請求項1に記載の発明と同等の作用効果が奏される。
請求項16に記載の発明によれば、請求項6に記載の発明と同等の作用効果が奏される。
請求項17に記載の発明によれば、請求項7に記載の発明と同等の作用効果が奏される。
請求項18に記載の発明によれば、請求項11に記載の発明と同等の作用効果が奏される。
以下、添付図面を参照して、本発明の実施の形態を詳細に説明する。全図面に渡り、対応する構成要素には共通の参照符号を付す。
図面を参照すると、図1は、本発明に係るロボット制御装置10の基本構成を機能ブロック図で示す。ロボット制御装置10は、複数の作業単位を個々に指令する複数の作業プログラム12に従い、複数の作業単位を含む作業を複数のワークに対し並行してロボットに遂行させるものである。ここで、複数の作業プログラム12の各々は、対応の作業単位をロボットが開始する前提となる作業開始条件14の記述を含む。ロボット制御装置10は、ロボットが作業を遂行する環境の状態を実時間で示す状態情報16を収集する情報収集部18と、情報収集部18が収集した状態情報16に基づいて、複数の作業プログラム12の中で複数のワークに対し実行段階にある作業プログラムのうち、作業開始条件14を満たしている第1の実行可能プログラム12Aを選定するプログラム選定部20と、プログラム選定部20が選定した第1の実行可能プログラム12Aを実行処理する処理部22と、処理部22が第1の実行可能プログラム12Aの実行処理を完了したか否かを判断するプログラム完了判断部24とを備える。そして、プログラム選定部20は、プログラム完了判断部24の判断状況に応じて、実行段階にある作業プログラムのうち、作業開始条件を満たしている第2の実行可能プログラム12Bを、処理部22が次に実行処理する作業プログラムとして、状態情報16に基づき選定する。
上記基本構成を有するロボット制御装置10によれば、ロボットの作業環境の状態を実時間で参照することで、実行段階にある作業プログラムのうち作業開始条件14を満たしている第1の実行可能プログラム12Aを適切に選択して、対応の作業単位をロボットに遂行させることができ、さらに、第1の実行可能プログラム12Aの実行処理の進捗状況を考慮しながら、同様に作業開始条件14を満たしている第2の実行可能プログラム12Bを適切に選択して、次の作業単位をロボットに遂行させることができる。したがって、ロボットを用いた生産システムにおいて、生産システムの稼動状態を随時把握しながら、複数のワークに関連する作業を並行して効率良く1台のロボットに遂行させることができる。
上記した作用効果は、プログラム完了判断部24が、処理部22による第1の実行可能プログラム12Aの実行処理が完了したと判断する前に、プログラム選定部20が第2の実行可能プログラム12Bを選定して、処理部22が第2の実行可能プログラム12Bを実行処理するように構成したときに、一層格別のものとなる。
図2は、図1のロボット制御装置10の第1の発展的構成を機能ブロック図で示す。図2のロボット制御装置10では、複数の作業プログラム12の各々に、対応の作業単位をロボットが完了する前提となる作業完了条件26の記述がさらに含まれているものとする。そして、プログラム完了判断部24は、情報収集部18が収集した状態情報16に基づいて、第1の実行可能プログラム12Aが作業完了条件26を満たしているか否かを判断し、それにより、処理部22による第1の実行可能プログラム12Aの実行処理が完了したか否かを判断するように構成される。
図2に示すロボット制御装置10によれば、ロボットの作業環境の状態を実時間で参照することで、第1の実行可能プログラム12Aが作業完了条件26を満たしているか否かを判断基準として、処理部22による実行処理が完了したか否かを迅速かつ正確に判断することができる。
図3は、図1のロボット制御装置10の第2の発展的構成を機能ブロック図で示す。図3のロボット制御装置10では、プログラム完了判断部24は、ロボットが作業を遂行する環境をモデル化した内部モデルの状態を示す内部情報28を有して、内部情報28と、情報収集部18が収集した状態情報16とが、互いに一致するか否かを判断し、それにより、処理部22による第1の実行可能プログラム12Aの実行処理が完了したか否かを判断するように構成される。
図3に示すロボット制御装置10によれば、ロボットが作業する実際の環境の状態を表す状態情報16と、実際の環境の状態に影響されない内部情報28とが、互いに一致するか否かを判断基準として、処理部22による実行処理が完了したか否かを迅速かつ正確に判断することができる。このような構成により、処理部22による実行処理が異常な完了状態に至ったときに、それを即座に検知して適切な対策を施すことが可能になる。
図4は、図1のロボット制御装置10の第3の発展的構成を機能ブロック図で示す。図4のロボット制御装置10は、作業の遂行中にロボットを緊急停止させる停止制御部30と、ロボットが作業を遂行する環境をモデル化した内部モデルの状態を示す内部情報28を有して、内部情報28と情報収集部18が収集した状態情報16とが互いに一致するか否かを判断する状態判断部32と、状態判断部32が、内部情報28と状態情報16とが互いに一致すると判断したときに、緊急停止を解除して作業を再開する再開制御部34とをさらに備えて構成される。
図4に示すロボット制御装置10によれば、ロボットを用いた生産システムにおいて、生産システムが緊急停止したときに、ロボットが作業する実際の環境の状態を表す状態情報16と、実際の環境の状態に影響されない内部情報28とが、互いに一致するか否かを判断基準として、緊急停止を解除して作業を再開することができる。したがって、生産システムに関する理解度の低いオペレータであっても、ロボットの作業を安全かつ確実に再開させることができる。
上記した本発明に係るロボット制御装置10の構成を、作業プログラム12に関する幾つかの実例を挙げながら、以下に補足して説明する。
ロボット制御装置10がロボットに遂行させる複数の作業単位の各々は、1つのワークに対してロボットが遂行する1サイクルの作業の一部分であるから、複数の作業単位を作業順序に従って遂行することで、1サイクルの作業を完遂することができる。ここで、複数の作業単位を指令する複数の作業プログラム12の実行順序を定義するデータリストを、本願で作業スクリプトと称する。作業スクリプトには、作業単位の名称と、その作業単位の遂行に際して使用される装置や機械の名称と、それら装置や機械の稼動状態とを、1行で記述したデータが、作業順序に従って複数行に渡り記述される。
生産システムに備えられる装置や機械は、生産プロセスの進行に伴い、稼動状態が変化する。例えば加工機械は、「稼動中」と「停止中」との大別して2つの状態の間で移行するが、さらに細分すれば、「電源切断中」、「初期化中」、「加工要求待機中」、「加工準備中」、「ワーク待機中」、「第1工程加工中」、「ワーク段取換中」、「第2工程加工中」、「完成品払出待機中」、「アラーム発生中」、「加工終了処理中」等の状態を示すことができる。ロボットが作業を遂行する環境の状態(すなわち生産システムの装置や機械の稼動状態)は、このような有限数の状態の集合と、初期状態と、特定条件下で初期状態から他の状態に遷移する過程を示す状態遷移とを用いて表すことができる。状態集合、状態遷移及び初期状態は、一般に装置や機械によって異なる。同一の装置や機械でも、生産システムにおける役割に応じて、状態集合、状態遷移及び初期状態は互いに異なるものになる。したがって、状態集合、状態遷移及び初期状態を用いて、生産システムにおける個々の装置や機械の状態を正確に表現できる。
作業スクリプトの各行の記述の例を以下に挙げる。例えば仮置台に置かれたワークを把持する作業単位は「Pick on a table」の名称を有し、この作業単位は「Table」及び「Robot」の2つの装置を必要とし、それら装置の初期(現在)状態がそれぞれ「Have on table」及び「Empty handed」であるときに、この作業単位を開始できる。この内容が、作業スクリプトでは、<Do Pick on a table, condition Table:Have on table, condition Robot:Empty handed/>と記述される。
また、作業単位「Pick on a table」を実行した結果、「Table」が「Have on table」状態から「Empty on table」状態に移行し、「Robot」が「Empty handed」状態から「Grasping in hand」状態に移行することを、作業スクリプトに記述することができる。この内容は、<Do Pick on a table, condition Table:Have on table, result Table:Empty on table, condition Robot:Empty handed, result Robot:Grasping in hand/>と記述される。
ところで、生産システムでは通常、複数の生産品に対する生産プロセスを並行的に進めており、それにより生産数量を増やしている。例として、4つのパレット「palette#1」、「palette#2」、「palette#3」、「palette#4」と、2つの仮置台「table#1」、「table#2」と、2つの加工機械「machine#1」、「machine#2」とを有して構成される加工システムを考察する。このシステムで、ロボットは、machine#1に対し、palette#1から未加工のワークを取り出してtable#1に仮置きし、machine#1から取り出した加工済ワークをtable#1に仮置きし、table#1に仮置きしていた未加工のワークを取り上げてmachine#1に供給し、table#1に仮置きしていた加工済ワークを取り上げてpalette#2に置くという、複数の作業単位を遂行し、またmachine#2に対し、palette#3から未加工のワークを取り出してtable#2に仮置きし、machine#2から取り出した加工済ワークをtable#2に仮置きし、table#2に仮置きしていた未加工のワークを取り上げてmachine#2に供給し、table#2に仮置きしていた加工済ワークを取り上げてpalette#4に置くという、複数の作業単位を遂行するものとする。ここで、2つの加工機械に対し、まず両者の加工対象である2つの未加工ワークをそれぞれの仮置台に置き、次いで加工済ワークと未加工ワークの取替えをそれぞれについて行い、最後に両者の加工済ワークをパレットに置くようにして、ワークの供給/取出作業を並行的に遂行させる。このようなロボットが行う全ての作業単位を単に時系列的に列記して作成した作業スクリプトは、下記のものである。
<Do Pick on palette#1/>
<Do Put on table#1/>
<Do Pick on palette#3/>
<Do Put on table#2/>
<Do Unload from machine#1/>
<Do Put on table#1/>
<Do Pick on table#1/>
<Do Load to machine#1/>
<Do Unload from machine#2/>
<Do Put on table#2/>
<Do Pick on table#2/>
<Do Load to machine#2/>
<Do Pick on table#1/>
<Do Put on palette#2/>
<Do Pick on table#2/>
<Do Put on palette#4/>
上記した複数の行のそれぞれが1つの作業単位を示し、ロボットは上記記載順序で作業を遂行する。ただし、この作業スクリプトでは、個々のワークに対する加工機械での加工内容が分からないので、例えばmachine#1での加工時間とmachine#2での加工時間とが異なる場合には、<Do Unload from machine#1/>の前、又は<Do Unload from machine#2/>の前に、ロボットが何も作業しない無用な待機時間が生じる。このような待機時間を解消するためには、作業単位の記載順序を詳細に検討する必要があり、熟練者でなければ作業スクリプトの作成は極めて困難である。しかも、加工時間やワークの種類等が変更されたときには、作業スクリプトの妥当性を検証し直さなければならない。
そこで本発明では、作業スクリプトを、生産プロセスに沿った複数のワークの各々の流れに着目して作成する。上記した作業例の場合、machine#1で加工中のwork piece#1と、palette#1から素材として与えられるwork piece#2とが、同じtable#1を通って送られ、machine#2で加工中のwork piece#3と、palette#3から素材として与えられるwork piece#4とが、同じtable#2を通って送られる。そこで、work piece#1及び#2の作業スクリプトを、下記のように作成する。
<Do Pick on palette#1/>
<Do Put on table#1/>
<Do Unload from machine#1/>
<Do Put on table#1/>
<Do Pick on table#1/>
<Do Load to machine#1/>
<Do Pick on table#1/>
<Do Put on palette#2/>
また、work piece#3及び#4の作業スクリプトを、下記のように作成する。
<Do Pick on palette#3/>
<Do Put on table#2/>
<Do Unload from machine#2/>
<Do Put on table#2/>
<Do Pick on table#2/>
<Do Load to machine#2/>
<Do Pick on table#2/>
<Do Put on palette#4/>
上記した2つの作業スクリプトはいずれも、個々のワークについて生産プロセスがどのように進むのかを表すものであり、このような作業スクリプトは、熟練を要することなく極めて容易に作成できる。そして、前述した無用な待機時間を解消するために、以下の手法を採用する。
まず、各作業スクリプトにおいて、次に遂行すべき作業単位がポインタで明示されるように構成する。作業スクリプトは、生産システムにおいて生産が要求されたときに、対象となるワークについて作成されるものであって、作成時には、ポインタは作業スクリプトの第1行を指している。ポインタは、ワークに対する生産プロセスが進むにつれて次の行に移行し、最終行の作業単位が終了した後は、作業スクリプト自体が削除される。本発明に係るロボット制御装置10は、複数のワークに関する複数の作業スクリプトにおいて、ポインタが指している行に記載された作業開始条件14を参照し、作業開始条件14に規定されている装置や機械の現在状態を確認してその条件を満たしているか否かを判断する。そして、ポインタが指している作業単位の作業開始条件14が満たされていない場合は、その作業単位を遂行できず、作業開始条件14が満たされている場合に、その作業単位を遂行できるように構成する。
さらに詳述すると、ロボット制御装置10はまず、存在する全ての作業スクリプトに対し、ポインタが指している作業単位における作業開始条件14が満たされているか否かを確認し、条件が満たされている作業スクリプトを特定する。そして、特定した作業スクリプトの中から、予め定めたルールに従い、1つの作業スクリプトを選択する。このルールとしては、(1)個々の作業スクリプトに生産優先度を付して優先度の最も高いものを選択する、(2)作業スクリプトの残り行数が最も少ないものを選択する、(3)作業スクリプトの残り行数が最も多いものを選択する、(4)作業スクリプトの作成時期が最も古いものを選択する、(5)指定した生産完了時刻までの時間が最も短いものを選択する、(6)同種の生産品の生産数が最も少ないものを選択する、(7)作業開始条件14内に規定されている装置や機械の個数や種類が最も少ないものを選択する、(8)作業開始条件14に規定されている装置や機械の状態が一致しているものが最も多いものを選択する、等のルールが考えられる。これらルールは、いずれか1つのみを採用するだけでなく、複数のルールを組み合わせて採用して、作業スクリプトを選択することもできる。また、複数のルールに基づいて評価値を算出し、評価値の相加平均が最も高い作業スクリプトを選択するようにしてもよい。
個々の作業スクリプトは、生産プロセスにおけるロボットの一連の作業手順を全て記述するものではなく、生産プロセスに沿った個々のワークの流れに着目して作業手順を記述するものであるから、作成が容易であり、装置や機械の状態確認が容易であり、生産システムで並行的に生産されるワークの組み合わせを変更した場合にも修正する必要がない。また、ワークの種類毎に作業単位の種類や数が異なっていてもよく、必要であれば特定のワークのために特別な作業スクリプトを用意することもできる。したがって、全加工工程を完了したワークの加工精度を調べたところ、ある加工工程に問題が発見され、その加工工程だけを遂行し直すべく、その加工工程だけを記述する作業スクリプトをそのワークのためだけに用意するといったことが可能になる。
また、作業スクリプトは、次に遂行すべき作業単位を明示するポインタを備えているので、規定の順序で作業単位を遂行するだけではなく、作業単位を遂行した結果や生産システムの状況を考慮して、次に遂行すべき作業単位を変更することもできる。さらに、生産開始時の作業スクリプトの作成、生産完了時の作業スクリプトの削除、ポインタが指す行の作業開始条件14が成立している作業スクリプトの特定、及び所定のルールに従う作業スクリプトの選択という各処理は、並行的に生産されるワークの種類や個数に関係なく実行することができる。
作業スクリプトは、装置選択肢の機能を有することができる。例えば、上記した生産システムの仕様を変更して、workpiece#1〜#4を、machine#1及び#2のどちらでも加工でき、table#1及び#2のどちらにも置けるように構成する。この場合、machine#1及び#2のいずれかを選択できることを「machines」で表し、table#1及び#2のいずれかを選択できることを「tables」で表して、workpiece#1及び#2についての作業スクリプトを以下のように記述できる。
<Do Pick on palette#1/>
<Do Put on tables/>
<Do Unload from machines/>
<Do Put on tables/>
<Do Pick on tables/>
<Do Load to machines/>
<Do Pick on tables/>
<Do Put on palette#2/>
この作業スクリプトでは、作業単位「Unload from machines」において、machine#1及び#2のどちらかが作業開始条件14を満たしていればよく、先に作業開始条件14を満たした加工機械に対してUnloadを行う。以降、machinesで表現された加工機械は、Unloadした加工機械として扱う。同様に、2行目の作業単位「Put on tables」において、作業開始条件14を満たしたtable#1又は#2に対してPut onを行い、以降、tablesはPut onしたtableとして扱う。このようにして、作業スクリプトに記載した作業単位に使用する装置や機械を、作業開始条件14に基づいて、幾つかの選択肢の中から定めることができる。装置選択肢の定義は、下記のように記述できる。
<Select machines among machine#1, machine#2/>
<Select tables among table#1, table#2/>
さらに、使用する加工機械を選択肢「machines」に従って決定する上記構成において、machine#1を使用する場合はtable#1を使い、machine#2を使用する場合はtable#2を使うように、装置や機械の組み合わせ方を制限することもできる。組合せの制限は、下記の記述で定義できる。
<Deforder machines, tables/>
<Workset machine#1, table#1/>
<Workset machine#2, table#2/>
上記の記述は、machinesでmachine#1を選択する場合にはtablesは必ずtable#1であり、machinesでmachine#2を選択する場合にはtablesは必ずtable#2であることを表している。またこの記述は、先にmachinesで加工機械が確定し、次にtablesで仮置台が確定するという、処理順序も規定している。この場合、作業スクリプトの2行目の「Put on tables」を処理する際には、加工機械がまだ確定していないので、そのままでは仮置台を決めることができない。そこで、先に3行目の「Unload from machines」の作業開始条件14に基づいて加工機械を確定し、それに合わせて、2行目の作業開始条件14に基づいて仮置台を確定するように構成する。そして仮置台が確定した後に、2行目の作業単位を遂行する。この構成では、3行目を先読みして加工機械を確定しているが、3行目の作業単位は2行目の作業単位が完遂するまで開始予約状態として扱われ、他の作業スクリプトにおいて作業開始条件14が満たされないようにする。
装置選択肢を用いた装置や機械の割り当ては、上記したように作業スクリプトを1行ずつ実行しながら、未確定の装置選択肢に出会うたびに装置を割り当てる「Ondemand」モードと、作業スクリプトを開始する前に、全ての装置選択肢において装置や機械の割り当てを行い、全ての装置や機械が確定するまでは作業スクリプトの実行を開始しない「Reservation」モードとのいずれかによって実行できる。これら処理モードは、生産システムの規模、作業スクリプトの複雑さ、必要な装置の個数等に応じて、適当な方を選択すればよい。また、個々の作業スクリプト毎に処理モードを選択することもでき、処理モードの異なる作業スクリプトを並行的に実行することもできる。
本発明では、作業単位毎に作成された複数の作業プログラム12が、作業スクリプトを用いて順次遂行される。生産システムの現在状態が作業単位の作業開始条件14に適合したときに、その作業単位を次に遂行することができる。生産システムの現在状態とは、生産システム内に存在する装置や機械の現在の状態の集合によって表される。全ての装置や機械は、それ自体の状態を表す状態変数を有する。状態変数が取りうる値は、装置や機械の種類に対応して規定され、同じ種類の装置や機械は同じ状態変数の集合を有する。ここで、2台の加工機械machine#1及びmachine#2、1台のロボットrobot、2つの仮置台table#1及びtable#2、並びに4つのパレットpalette#1、palette#2、palette#3及びpalette#4により構成される生産システムを考える。
Machine#1及びmachine#2の状態集合はいずれも、<Class Machine State:PowerOff State:Initializing State:ManualOperation State:Loading State:ReadyToProcess State:Processing State:ToolChanging State:Completed State:Unloading State:AirPurging State:Empty/>で表記される。複数のStateは、それぞれ加工機械が下記の状態であることを表す。
PowerOff・・・電源が入っていない
Initializing・・・電源が投入され動作準備中
ManualOperation・・・手動操作中
Loading・・・ワークの供給を受けている最中
ReadyToProcess・・・加工準備が完了し、加工開始を待っている
Processing・・・加工中
ToolChanging・・・加工刃物を交換中
Completed・・・加工が完了し、加工済ワークの取り出しを待っている
Unloading・・・加工済ワークの取り出し中
AirPurging・・・加工済ワークのクーラント液除去中
Empty・・・ワークが無く、ワークの供給を待っている
Robotの状態集合は、<Class Robot State:PowerOff State:Initializing State:EmptyHanded State:Carrying State:Moving State:Grasping State:AtPerch/>で表記される。複数のStateは、それぞれロボットが下記の状態であることを表す。
PowerOff・・・電源が入っていない
Initializing・・・電源が投入され動作準備中
EmptyHanded・・・何も持っていない
Moving・・・何も持っていないで移動している
Carrying・・・物を持って搬送中
Grasping・・・物を把持している
Table#1及びtable#2の状態集合はいずれも、<Class Table State:Vacant State:Exist/>で表記される。複数のStateは、それぞれ仮置台が下記の状態であることを表す。
Vacant・・・仮置台には何も載っていない
Exist・・・仮置台にワークが載っている
Palette#1、palette#2、palette#3及びpalette#4の状態集合はいずれも、<Class Palette State:Nosupply State:Vacant State:Afford State:Full/>で表記される。複数のStateは、それぞれパレットが下記の状態であることを表す。
Nosupply・・・パレットがステーション位置に到着していない
Vacant・・・パレット上にはワークが無い
Afford・・・パレット上に供給可能なワークが存在する、或いはパレット上には新たなワークを収容可能な空き領域がある
Full・・・パレット上には新たなワークを収容可能な空き領域がある
生産システムの現在の状態は、個々の装置や機械の状態変数が、上記した状態集合の中でどのStateを有するかによって表現することができる。
例えば、生産システムの現在の状態が、<ExternalWorld machine#1:Processing machine#2:Completed robot:EmptyHanded table#1:Exist table#2:Vacant palette#1:Afford palette#2:Afford palette#3:Afford palette#4:Afford/>で記述されているときは、machine#1が加工中であり、machine#2が加工完了状態で加工済ワークの払い出しを待っている状態であり、robotは何も持っていない状態であり、table#1にはワークが置かれており、table#2はワークが置かれていない状態であり、palette#1〜#4はいずれも未加工ワークの供給又は加工済ワークの収納が可能な状態であることを示す。
生産システムの状態は、時々刻々と変化するが、そのような状態変化態様も、上記した状態集合の変化によって表現することができる。例えば、生産システムの上記した状態集合の記述が、時間の経過と共に下記のように変化したとする。
<ExternalWorld machine#1:Processing machine#2:Unloading robot:Carrying table#1:Exist table#2:Exist palette#1:Afford palette#2:Afford palette#3:Afford palette#4:Afford/>
この記述から、machine#2がCompletedからUnloadingに変化し、robotがEmptyHandedからCarryingに変化し、table#2がVacantからExistに変化していることが読み取れる。
個々の装置や機械の状態変数が変化する条件(状態遷移)は、例えば下記のように記述できる。
<Class Table FromState:Vacant ToState:Exist Transition:%Table.ExistConfirmSignal% = ON/>
<Class Table FromState:Exist ToState:Vacant Transition:%Table.ExistConfirmSignal% = OFF/>
この記述によれば、Table#1及び#2の状態がVacantからExistに変化するのは、%Table.ExistConfirmSignal%信号がONのときであり、ExistからVacantに変化するのは、%Table.ExistConfirmSignal%信号がOFFのときであることが分かる。
このように、状態集合(すなわち状態情報16)を用いて生産システムを表現したものを、本願では生産システムの外部モデルと称する。一般に生産システムでは、多くの箇所に様々なスイッチやセンサ類が設置されており、これらスイッチやセンサからの情報が当該箇所の状態を表す信号としてロボット制御装置10に伝えられる。ロボット制御装置10は、それら種々の信号から、生産システムの個々の装置や機械の現在状態を識別して、上記した状態集合を作成し、それに基づき生産システムの状態を判断する。
ロボット制御装置10は、外部モデルとは別に、生産システムの内部モデルを有することができる。内部モデルは、外部モデルと同様に、生産システムにおける複数の装置や機械の状態の集合であって、例えば下記のように記述される。
<InternalWorld machine#1:Processing machine#2:Completed robot:EmptyHanded table#1:Exist table#2:Vacant palette#1:Afford palette#2:Afford palette#3:Afford palette#4:Afford/>
外部モデルは、生産システムの随所に設置されたセンサ類からの信号の変化を前述した状態遷移に基づき状態変化として表現するのに対し、内部モデルは、ロボット制御装置10が実行する作業単位の状態(すなわち内部情報28)によって直接的に状態変化を表現する。例えば下記のように、作業スクリプトの各作業単位に、作業開始条件14と作業完了条件26との双方が定義されているとする。
<Do Pick on a table, condition Table:Exist, result Table:Vacant, condition Robot:EmptyHanded, result Robot:Grasping/>
この記述では、作業単位「Pick on a table」は、Tableの状態がExistでかつRobotの状態がEmptyHandedである場合に、作業を開始することができ、この作業単位が完了したときには、Tableの状態がVacantになり、Robotの状態がGraspingになることが示されている。このとき、外部モデルでは、下記のようにTable及びRobotの状態遷移が定義される。
<Class Table FromState:Vacant ToState:Exist Transition:%Table.ExistConfirmSignal% = ON/>
<Class Robot FromState:Moving ToState:EmptyHanded Transition:%Robot.CurrentMoveSpeed% = 0/>
<Class Robot FromState:EmptyHanded ToState:Grasping Transition:%Robot.HandGraspedConfirmSignal% = ON/>
<Class Robot FromState:Grasping ToState:EmptyHanded Transition:%Robot.HandEmptyConfirmSignal% = ON/>
例えば、外部モデルにおいて、Tableの状態がExistであり、Robotの状態がEmptyHandedであったときに、ロボット制御装置10が作業単位Pick on a tableを実行して、仮置台の上に有るワークを把持したとする。ワークを把持するためには、ツール(ハンド)を閉じる必要があるので、この作業単位内で、ハンド閉信号である%Robot.HandGraspingCommandSignal%がONされる。ロボット制御装置10がハンド閉信号を出力することで、この作業単位の処理は終了するが、ハンド閉信号を出力してからハンドが実際に閉じるまでには、数百ms程度の時間を要する。外部モデルでは、ハンドが実際に閉じたことを、センサ信号の%Robot.HandGraspedConfirmSignal%がONになることによって把握し、そのときに、Robotの状態遷移の定義に従い、Robotの状態変数がEmptyHanded状態からGrasping状態に変化する。その結果、「Pick on a table」の作業完了条件26が満たされ、「Pick on a table」が完遂したと判断することもできる。
これに対し、同じ作業単位について、内部モデルでは外部モデルよりも先に状態が変化する。つまり、内部モデルでは、Pick on a tableでハンド閉信号を出力したと同時に(したがって実際にハンドが閉じて%Robot.HandGraspedConfirmSignal%がONになる前に)、状態変数を作業完了の状態に遷移させる。そして、外部モデルの状態集合(状態情報16)と内部モデルの状態集合(内部情報28)とが完全に一致した時点で、Pick on a tableが完遂したと判断し、次の作業単位の実行に移るように構成することもできる。
外部モデルと内部モデルとが一定時間以上経っても一致しなかった場合には、作業単位Pick on a tableでエラーが発生したとみなすことができる。このように、作業単位の実行と同時に内部モデルを更新する一方、作業単位における実際のセンサ情報に基づいて外部モデルを更新し、内部モデルと外部モデルとが一致するか否かを検証することで、当該作業単位が正常に完遂されたか、或いは遂行不良により異常な完了状態に至ったかを判断することができる。
このように、生産システム内の装置や機械の状態の変化を互いに異なる条件で表現する外部モデルと内部モデルとを比較することにより、作業単位の完了状態の正常性を判断することができる。この手法は、生産システムのモデルが変更されたり、作業単位の作業内容が変更されたりした場合にも、同様に実施することができる。内部モデルを持たない場合には、作業単位が正常に完了したか否かを判断する処理を、作業プログラム12に導入する必要があるが、そのような完了判断処理は、生産プロセスの変更時には内容を書き換えなければならない。これに対し、外部モデルと内部モデルとの比較によって完了状態の正常性を判断するようにすれば、作業プログラム12自体は変わらないので、生産プロセスが変更されても、個々の作業単位の作業プログラム12を再利用できる利点がある。
また、外部モデルと内部モデルとを比較することは、生産システムの状態を監視して、装置や機械の故障等に伴う異常状態を自動的に検出する点でも有効である。正常時には、作業単位の実行により先に内部モデルが変化し、その後、外部モデルが同様に変化する。これに対し、一定時間経っても外部モデルが内部モデルに一致しない場合や、内部モデルが変化していないにもかかわらず外部モデルが変化した場合に、生産システムに異常が生じていると判断できる。この異常判断は、外部モデルと内部モデルとの比較を継続的に行うことにより、実時間で実行されるので、異常発生と同時にロボットを停止させたり回避行動を行わせたりすることができる。
上記した異常検出手法を、例として作業単位「Pick on a table」に関連して説明する。「Pick on a table」では、作業が完了すると、外部モデル及び内部モデルのいずれにおいても、Robotの状態がEmptyHandedからGraspingに変化する。そこで、一定時間経っても外部モデルがEmptyHandedのままであった場合には、%Robot.HandGraspedConfirmSignal%がONにならず状態遷移が生じなかったと考えて、Pick on a tableが成功しなかったと判断する。他方、一定時間内に外部モデル及び内部モデルの双方でRobotの状態がGraspingに変化したときには、Pick on a tableは正常に完了したとみなすことができ、次の作業単位に進むことができる。
「Pick on a table」の次の作業単位である「Load to machine#1」の遂行中に、table#1において把持したワークがハンドから脱落したと仮定する。その場合には、ハンドの把持ワーク不在信号である、%Robot.HandEmptyConfirmSignal%がONとなり、状態遷移に従い、外部モデルのRobotの状態がGraspingからEmptyHandedに変わる。他方、内部モデルにおけるRobotの状態はGraspingを維持する。この状態の相違は、内部モデルと外部モデルとを常時比較することで、直ちに検出できるので、適切な対策を迅速に施すことができる。また、ハンドから脱落したワークがtable#1に載り、table#1の光電管センサがワークの存在を感知したときには、内部モデルのtable#1の状態がvacantのままである一方で、外部モデルのtable#1の状態はvacantからexistに変化するので、table#1の状態の異常が検出される。したがって、ロボットへの対処に加えて、仮置台に対し適切な後処理を迅速に施すことができる。このように、生産システムに複数の異常状態が並行して発生したとしても、それぞれの内容に対応した適切な対処を迅速に行うことができる。
異常検出時にロボットに回避行動を行わせるための作業単位を、本願で例外処理作業単位と称する。例外処理作業単位は、通常の作業単位と同様に、作業開始条件14及び作業完了条件26と含んで作業スクリプトに列記される。例えば下記のように作業スクリプトを記述することにより、異常発生時に、通常の作業単位から例外処理作業単位に分岐して移行させることができる。
<Do Pick on palette#1/>
<Do Put on table#1/>
<Do Unload from machine#1/>
<Do Put on table#1/>
<Do Pick on table#1, Exception Goto 2/>
<1:Do Load to machine#1/>
<Do Pick on table#1/>
<Do Put on palette#2/>
<Stop/>
<2:Do Pick on palette#1/>
<Goto 1/>
上記の作業スクリプトでは、5行目のPick on table#1で異常が発生したときに、Exception Goto 2が実行される。Goto 2が実行されると、10行目の<2:Do Pick on palette#1/>が実行される。そして10行目の作業単位を実行した後、11行目の<Goto 1/>が実行され、それにより6行目(異常発生の次の行)の作業単位に移行する。つまり、5行目のPick on table#1においてtable#1からのワークの取り出しに失敗したので、10行目のPick on palette#1を行ってpalette#1からワークを取り出し、次いで6行目のLoad to machine#1でmachine#1へワークを供給するのである。
このように、異常発生時に例外的な作業を行う場合にも、予め設定された個々の作業単位を修正することなく、例外処理作業単位を適所に追加するように作業スクリプトを修正するだけで対処することができる。例外処理作業単位に不都合が含まれていた場合には、作業スクリプトを元に戻すだけで、例外処理作業単位を無効にすることができる。
また、外部モデルと内部モデルとを比較して生産システムの異常を検出することは、生産システムが、機器の故障等によって緊急停止したときに、ロボットによる作業を安全に再開するためにも有効である。生産システムが緊急停止した場合には、その原因の分析や除去のために、オペレータがシステムに手動介入して、ワークを除去したり、ロボットを手動モードで操作したり、治具クランプやロボットハンドの開閉を行ったりすることが多い。オペレータによる手動介入が行われると、生産システムの状態が緊急停止時の状態から変動して、ロボットの作業プログラム12との相関性が損なわれるので、そのままでは作業を再開することができない。そこでオペレータは、作業再開前に、生産システムの状態とロボットの作業プログラム12との相関性を復旧させる作業を、適切に行う必要が有るが、上記した外部モデルと内部モデルとを使用することで、生産システムに関するオペレータの理解度に関わらず、適切な復旧作業を行うことができる。
例えば、下記の外部モデルの状態でアラームが発生し、生産システムが緊急停止したと仮定する。
<ExternalWorld machine#1:Processing machine#2:Unloading robot:Carrying table#1:Exist table#2:Exist palette#1:Afford palette#2:Afford palette#3:Afford palette#4:Afford/>
このとき内部モデルも、下記のように同じ状態にある。
<InternalWorld machine#1:Processing machine#2:Unloading robot:Carrying table#1:Exist table#2:Exist palette#1:Afford palette#2:Afford palette#3:Afford palette#4:Afford/>
アラームによってロボットが停止しているので、内部モデルは上記の状態を維持する。これに対し、外部モデルは、生産システムに設置されているセンサ情報を元に状態が変化する。したがって、例えば上記状態で、オペレータがtable#1からワークを取り除いたとすると、そのことはtable#1に設置されているセンサによって直ちに検出され、それにより、外部モデルのtable#1の状態は下記のようにExistからVacantに変わる。
<ExternalWorld machine#1:Processing machine#2:Unloading robot:Carrying table#1:Vacant table#2:Exist palette#1:Afford palette#2:Afford palette#3:Afford palette#4:Afford/>
この状態で、生産システムを再稼動すべくロボット制御装置10に起動要求が送られると、ロボット制御装置10はまず外部モデルと内部モデルとが一致しているか否かを確認する。内部モデルは、ロボットがアラームで緊急停止したときの状態のままであり、その状態と外部モデルの状態とが一致していれば、作業単位を引き続き実行しても安全である。これに対し、外部モデルと内部モデルとが一致していなければ、そのまま作業単位を再開すると問題が生じる恐れがある。上記例では、外部モデルと内部モデルでtable#1の状態が異なるので、そのままでは作業を再開しないようにすることができる。
ここで、ロボット制御装置10に起動要求が送られたときに、ロボット制御装置10は、まずオペレータに対して、外部モデルと内部モデルとの相違の内容(上記例ではtable#1がExistからVacantに変化したこと)を、例えばロボット制御装置10に付設した表示器に表示する。さらに、そのままの状態でロボットを起動させてもよいか否かの確認(再開許可指令)を、表示機への表示によりオペレータに求めることができる。オペレータは、表示器に表示されている内容を確認した上で、例えばロボットに付設した入力装置から、再開許可又は不許可の指示を入力することができる。再開許可が入力された場合には、内部モデルを外部モデルと同じ内容に書き換えて、中断した作業単位を再開する。再開不許可が入力された場合には、ロボットの起動を中止する。
さらに、外部モデルと内部モデルとの相違点に関して、原因及びその対策をオペレータに知らせるためのメッセージを事前に作成しておき、再開確認時に、このメッセージを表示器に表示するように構成することもできる。例えば上記例では、外部モデルのtable#1の状態がExistからVacantに変化した原因と対策を表示する。オペレータは、そのメッセージを読んで、例えばtable#1のセンサが適正に作動しているか否かを確認したり、新しいワークを手作業でtable#1に載せれば作業を再開できることを理解したりすることができる。このように、オペレータは、ロボット制御装置10が発したメッセージに従うことで、外部モデルが表す生産システムに緊急停止時の状態を確実に復元することができる。このようなメッセージは、生産システムを熟知しているオペレータが予め作成してロボット制御装置10に登録しておくことで、誰でもがメッセージに従って安全かつ確実に生産システムを再稼動させることができる。
次に、図5〜図22を参照して、本発明の好適な実施形態によるロボット制御装置の構成を、ロボットが実行する作業例に関連して説明する。
図5は、本発明の一実施形態によるロボット制御装置40を組み込んだ、ロボットを用いた生産システムの全体概要図である。ロボット(すなわちロボット機構部)42の手首先端には、ツール(図示実施形態ではハンド)44が取り付けられる。パレットP1には、複数のワークW1が置かれ、パレットP2には、ワークW1とは種類の異なる複数のワークW2が置かれる。ロボット42は、走行軸46上に設置され、走行軸46に沿って移動して、パレットP1のワークW1又はパレットP2のワークW2をツール44に把持し、仮置台48又は仮置台50まで搬送してそこに一時的に載置する。仮置台48は加工機械52にワークを供給する際に使用され、仮置台50は加工機械54にワークを供給する際に使用される。
加工機械52が加工中でなければ、ロボット42は、仮置台48に置かれたワークW1又はW2をツール44に把持して加工機械52に供給する。加工機械52は、ロボット42からの加工開始命令により、ワークの加工を開始する。加工が完了すると、加工機械52はロボット42に、加工完了信号を送信する。加工完了信号を受け取ったロボット42は、加工済みのワークW1又はW2を加工機械52から取り出して、ワークW1はパレットP3に置き、ワークW2はパレットP4に置く。加工機械54にワークを供給する場合も、仮置台50が使用されること以外は、上記と同じ工程が実行される。
ロボット42及び走行軸46は、それぞれ通信ケーブル56及び58を介してロボット制御装置40に接続され、ロボット42及び走行軸46の動作がロボット制御装置40により制御される。ロボット制御装置40は、ネットワークケーブル60により、作業プログラム作成装置62に接続される。ロボット42の手首先端には、ツール44に隣接してカメラ64が装着され、カメラ64はカメラケーブル66を介して画像処理装置68に接続される。画像処理装置68は、ネットワークケーブル70、72によって、ロボット制御装置40及び作業プログラム作成装置62にそれぞれ接続される。仮置台48、50にはそれぞれ、パレットP1から運んだワークW1用の位置決め治具48a、50aと、パレットP2から運んだワークW2用の位置決め治具48b、50bとが設置される。それら位置決め治具48a、48b、50a、50bは、ディジタル信号入出力ケーブル(図示せず)を介してそれぞれロボット制御装置40に接続される。
図6は、図5の生産システムにおける主として制御系の構成を示すブロック図である。ロボット制御装置40は、バス74で相互接続されたCPU76、メモリ78、ネットワークインタフェース80、ディジタル信号入出力回路82、操作盤インタフェース84及びサーボインタフェース86を備える。図7に示すように、メモリ78には、CPU76により実行され、ロボット制御装置40の全体を制御する制御プログラム88と、ロボット42を動作させる作業プログラム90及び92とが格納される。作業プログラム90は、ワークW1に関する作業をロボット42がツール44を用いて行うためのものであり、作業プログラム92は、ワークW2に関する作業をロボット42がツール44を用いて行うためのものである。作業プログラム90及び92は、いずれも制御プログラム88を用いて解釈され、ロボット42及びツール44の動作に変換される。これら作業プログラム90及び92は、作業プログラム作成装置62によって作成される。
ロボット制御装置40のメモリ78にはさらに、後述するように、マスタ作業スクリプト94(94a、94b、94c、94d)と、作業プログラム群96(96a、96b、96c、96d)と、作業スクリプト98(981、982)と、外部モデル100と、内部モデル102と、コンディションプロセステーブル104とが格納される。
ネットワークインタフェース80には、ネットワークケーブル60を介して作業プログラム作成装置62が接続されるとともに、ネットワークケーブル70を介して画像処理装置68が接続される。また、ディジタル信号入出力回路82には、ディジタル信号入出力ケーブル106を介して、仮置台48の治具48a、48b及び仮置台50の治具50a、50bが個々に接続され、ディジタル信号入出力ケーブル108を介して、加工機械52、54が個々に接続され、ディジタル信号入出力ケーブル110を介して、ロボット42に装着されたツール44が接続される。
操作盤インタフェース84には、操作盤ケーブル112を介して、教示操作盤114が接続される。教示操作盤114は、表示器114a及び入力ボタン114bを備え、教示操作盤114をオペレータが操作することにより、ロボット制御装置40を介してロボット42を手動モードで動作させることができる。また、サーボインタフェース86には、通信ケーブル56、58を介して、ロボット42の各制御軸及び走行軸46のサーボモータ等のサーボ機構が接続される。
作業プログラム作成装置62には、ハードディスク装置116が接続される。図8に示すように、ハードディスク装置116には、ロボット42が動作する複数の作業経路R(図示実施形態では後述するRa、Rb、Rc、Rd)のそれぞれに関連する作業プログラム定義データ118(図示実施形態では118a、118b、118c、118d)と、加工対象の複数種類のワークW(図示実施形態ではW1、W2)のそれぞれに関連する作業部位定義データ120(図示実施形態では1201、1202)と、ワークW(W1、W2)の図面データ122(1221、1222)とが格納される。さらにハードディスク装置116には、後述するように、作業パターンデータ124、装置定義データ126、装置属性データ128、装置部品クラスデータ130、マスタ作業スクリプト132(132a、132b、132c、132d)、及び作業プログラム群134(134a、134b、134c、134d)が格納される。
図示実施形態におけるロボット42の作業経路Rは、(i)パレットP1からワークW1を取り出し、仮置台48に搬送して位置決め治具48aで位置決めし、加工機械52に供給し、加工機械52から加工済みのワークW1を取り出し、パレットP3に載置する第1の作業経路Raと、(ii)パレットP2からワークW2を取り出し、仮置台48に搬送して位置決め治具48bで位置決めし、加工機械52に供給し、加工機械52から加工済みのワークW2を取り出し、パレットP4に載置する第2の作業経路Rbと、(iii)パレットP1のワークW1を取り出し、仮置台50に搬送して位置決め治具50aで位置決めし、加工機械54に供給し、加工機械54から加工済みのワークW1を取り出し、パレットP3に載置する第3の作業経路Rcと、(iv)パレットP2のワークW2を取り出し、仮置台50に搬送して位置決め治具50bで位置決めし、加工機械54に供給し、加工機械54から加工済みのワークW2を取り出し、パレットP4に載置する第4の作業経路Rdとを有する。
作業経路Ra、Rb、Rc、Rdのそれぞれに関連する作業プログラム定義データ118a、118b、118c、118dは、ロボット42の作業対象であるワークW1、W2の種類に応じて動作が変わる第1データ部分と、ワークW1、W2の種類によらず動作が同一の第2データ部分とから構成される。ワーク依存の第1データ部分は、作業対象のワークW1、W2のそれぞれに関連する作業部位定義データ1201、1202に基づいて、ワーク毎に異なる内容に作成され、それにより、ワークW1、W2のそれぞれに対する作業プログラム90、92が完成する。
再び図6を参照すると、画像処理装置68には、ハードディスク装置136が接続される。ハードディスク装置136には、作業対象のワークW(図示実施形態ではW1、W2)を検出するための基準となるワーク画像データ138(図示実施形態では1381、1382)が格納される。ワーク画像データ1381、1382は、ロボット42の手首先端に取り付けたカメラ64を用いてワークW1、W2を撮影することにより得られる。
また、ロボット制御装置40は、ネットワークケーブル140を介して、図示の生産システム(セル)を統合的に制御するセルコントローラ142に接続される。ロボット制御装置40は、セルコントローラ142からの生産指示を、ネットワークインタフェース80を経由して受信する。
図9〜図14は、上記した生産システムにおいて、ロボット制御装置40の制御下でロボット42が実行する作業(ハンドリング作業)の手順を示す。ここでは一例として、仮置台48及び加工機械52に関連する前述した第1の作業経路RaにおけるワークW1のハンドリング作業を説明するが、他の作業経路における作業も同様にして実行できる。
まず、走行軸46を起動して、パレットP1の正面(教示点)にロボット42を移動する(ステップS200)。次いで、ロボット42のアームを旋回し、ツール44をパレットP1の真上に移動する(ステップS201)。そして、ディジタル信号入出力回路82を介して、ツール44に対し「ハンド開」のディジタル信号を出力し、ツール44を開く(ステップS202)。
次に、ツール44を、ワークW1を把持する把持位置(ワーク上の位置)に向けて移動する。このとき、ツール44を、把持位置の真上の位置に移動した後、その真下の把持位置に向けて低速で移動する(ステップS203)。この動作は、ワークの種類に応じて把持時のロボット42の姿勢が決まるものであるから、ワーク種類に依存する動作となる。
そして、ディジタル信号入出力回路82を介して、ツール44に対し「ハンド閉」のディジタル信号を出力し、ツール44を閉じてワークW1を把持する(ステップS204)。続いて、ツール44を上方へ移動してワークW1をパレットP1から取り出す。このとき、ツール44を、把持位置の真上の位置に低速で移動した後、速度を上げてさらに上方にワークW1を持ち上げる(ステップS205)。
次に、ロボット42のアームを右旋回するとともに走行軸46を動作させて、ロボット42を仮置台48の正面に移動する(ステップS206)。次いで、ツール44を位置決め治具48aの上方に移動する(ステップS207)。続いて、ツール44を、位置決め治具48aがワークW1をクランプする解放位置に向けて移動する。このとき、ツール44を、解放位置の上方の位置に移動した後、その下方の解放位置に向けて低速で移動し、位置決め治具48aにワークW1を取り付ける(ステップS208)。そして、ディジタル信号入出力回路82を介して、ツール44に対し「ハンド開」のディジタル信号を出力し、ツール44を開く。これにより、ツール44はワークW1を解放する(ステップS209)。
次に、ツール44を、解放位置の上方の位置に移動して、位置決め治具48aから離す(ステップS210)。そこで、ディジタル信号入出力回路82を介して、位置決め治具48aに対し「クランプ閉」のディジタル信号を出力し、位置決め治具48aを閉じる。それにより、位置決め治具48a上でワークW1を所定位置に正確に位置決めする(ステップS211)。
次に、ツール44を、位置決め治具48aにクランプされたワークW1の把持位置に向けて移動する(ステップS212)。次いで、把持位置でツール44を閉じて、ワークW1を把持する(ステップS213)。そこで、位置決め治具48aに対し「クランプ開」のディジタル信号を出力し、位置決め治具48aを開く(ステップS214)。続いて、ツール44を上方へ移動して、ワークW1を位置決め治具48aから取り出す。このとき、位置決め治具48aに対してツール44を、低速で斜め上方へ移動した後、速度を上げてさらに上方にワークW1を持ち上げる(ステップS215)。
次に、ロボット42のアームを旋回して、加工機械52の正面にツール44を移動する(ステップS216)。次いで、加工機械52のドア開口部から、加工機械52の内部にツール44を挿入する。このとき、加工機械52にツール44及びワークW1が接触しないように、ロボット42のアームを真直ぐに伸ばして進入させる(ステップS217)。そして、加工機械52のチャック(図示せず)の手前で一旦停止した後、低速でチャックにワークW1を装着する。そこで、ディジタル信号入出力回路82を介して、加工機械52に対し「チャック閉」のディジタル信号を出力し、チャックを閉じる(ステップS218)。
次に、ツール44に対し「ハンド開」のディジタル信号を出力し、ツール44を開いてワークW1を解放する(ステップS219)。次いで、ツール44を低速で、チャックから僅かに離れた位置に移動する(ステップS220)。続いて、加工機械52にツール44を接触させないように、ロボット42のアームを真直ぐに伸ばして、加工機械52のドア開口部からツール44を引き出す(ステップS221)。
次に、ディジタル信号入出力回路82を介して、加工機械52に対し、第1の作業経路Raからの指令として「ワークW1の加工開始」のディジタル信号を出力する(ステップS222)。そして、加工機械52から「ワークW1の加工完了」のディジタル信号がロボット制御装置40に入力されるまで待機する(ステップS223)。ワークW1の加工完了後、加工機械52の内部にツール44を侵入させ(ステップS224)、加工済みのワークW1の把持位置に向けてツール44を移動させる(ステップS225)。次いで、ツール44を閉じて、ワークW1を把持する(ステップS226)。
次に、加工機械52に対し「チャック開」のディジタル信号を出力して、チャックを開く(ステップS227)。次いで、ツール44を把持位置から僅かに移動して、加工機械52のチャックから、ワークW1を真直ぐに取り出す(ステップS228)。続いて、ツール44を加工機械52から退避させる(ステップS229)。
次に、ロボット42のアームを右旋回させるとともに、走行軸46を起動して、パレットP3の正面にロボット42を移動させる(ステップS230)。次いで、パレットP3の真上にツール44を移動する(ステップS231)。続いて、ツール44を、パレットP3上のワークW1を載置する置き位置に移動して、ワークW1をパレットP3に置く。このとき、ツール44を、置き位置の真上の位置に移動した後、その真下の置き位置に向けて低速で移動して、ワークW1をパレットP3に載せる(ステップS232)。このワーク載置動作は、ワークの種類に応じてパレットP3への載置時のロボット42の姿勢が決まるものであるから、ワーク種類に依存する動作となる。
次に、ツール44を開いて、ワークW1を解放する(ステップS233)。次いで、ツール44を、低速で置き位置の真上に移動した後、速度を上げてさらに上方に移動する(ステップS234)。最後に、ロボット42のアームをロボット正面に向けて旋回するとともに、走行軸46を動作させて、ロボット42を初期の待機位置に移動する(ステップS235)。以上で、第1の作業経路RaにおけるワークW1に対する作業プログラム90が終了する。
なお、図12〜図14には、上述したステップS200〜ステップS235に対応するツール44の動作軌跡が示されている。図示の動作軌跡において、ワーク種類に依存する動作はステップS203及びステップS232に関する動作のみであり、他の動作軌跡で示す動作はワーク種類に依存しないものである。例えば、パレットP1にワークW2が載置されている場合に、上記した第1の作業経路Raでの作業は、上記ステップS203及びステップS232に関する動作以外は、上記した動作と同様の動作になる。
以下、上記したハンドリング作業をロボット42に実行させるための、作業プログラム90、92及び作業スクリプト98の内容、並びに制御プログラム88による動作制御シーケンスを、図15〜図22を参照して説明する。なお、ロボット制御装置40のCPU76は、図1〜図4に示すロボット制御装置10における情報収集部18、プログラム選定部20、処理部22、プログラム完了判断部24、停止制御部30、状態判断部32及び再開制御部34の機能を有するものである。
図15は、上記したロボット42によるハンドリング作業をワークの視点で記述した作業パターンデータ124を、フローチャート形式で示す。作業パターンデータ124は、ロボット42の作業内容に対応して作成され、ハードディスク装置116に格納される。作業パターンデータ124では、個々の作業単位を行う場所としての生産システム内の装置や機械を、%Material_Palette%(素材供給用のパレット)、%Fixture%(仮置台の位置決め治具)、%Machine%(加工機械)、%Goods_Palette%(完成品積載用のパレット)という引数で記述している。これら引数に、実際の装置や機械の名称を設定することで、具体的な作業手順を表す作業スクリプトが作成される。例えば、上記ハンドリング作業を表す作業スクリプトは、個々の引数に下記の名称を設定することで作成される。
%Material_Palette%・・・パレットP1
%Goods_Palette%・・・パレットP3
%Fixture%・・・位置決め治具48a
%Machine%・・・加工機械52
引数に具体的な装置名を設定するには、下記のような装置定義データ126を使用する。装置定義データ126は。ハードディスク装置116に格納されている。なお、下記データ中、Palette_P1、Palette_P3、Fixture_F1、Machine_Leftはそれぞれ、図5のパレットP1、パレットP3、位置決め治具48a、加工機械52を示す。
<Actions>
<Action run="W1P1P3MR">
<ARGUMENTS>
<OBJECT name="Material_Palette" val="Palette_P1"/>
<OBJECT name="Goods_Palette" val="Palette_P3"/>
<OBJECT name="Fixture" val="Fixture_F1"/>
<OBJECT name="Machine" val="Machine_Left"/>
</ARGUMENTS>
</Actions>
ハードディスク装置116にはさらに、個々の装置や機械の名称、信号番号等を定めた装置属性データ128が、装置毎に作成されて格納されている。装置属性データ128には、各種の定数、信号番号、待ち時間、レジスタ番号等が定義されている。装置属性データ128は、加工機械54、仮置台50の位置決め治具50a、50b、パレットP2及びパレットP4に対しても用意される。ここで、同種の装置である加工機械52及び54、位置決め治具48a、48b、50a及び50b、パレットP1、P2、P3及びP4は、それぞれ略同一のデータ構造を有し、通常は各種定数、信号番号、待ち時間、レジスタ番号の値が異なるだけである。そこで、ハードディスク装置116に格納した装置/部品クラスデータ130を用いて、先にデータ構造だけを定義した後、他のデータを含む装置属性データ128を作成している。
図16は、装置定義データ126を作業パターンデータ124に適用して得られる作業手順であるマスタ作業スクリプト132を、フローチャート形式で示す。マスタ作業スクリプト132は、作業可能な装置の組み合わせを装置定義データ126に記述することで、全ての組み合わせに対応したものを作成できる。図5の生産システムでは、装置及び機械の4つの組み合わせ(作業経路Ra〜Rdに対応)が考えられるので、下記の4つのマスタ作業スクリプト132a、132b、132c、132dが作成される。なお、Fixture_F2は位置決め治具48b、Fixture_F3は位置決め治具50a、Fixture_F4は位置決め治具50b、Palette_P2はパレットP2、Palette_P4はパレットP4、Machine_Rightは加工機械54をそれぞれ示す。
<Actions>
<Action run="F1P1P3ML">(マスタ作業スクリプト132a)
<ARGUMENTS>
<OBJECT name="Material_Palette" val="Palette_P1"/>
<OBJECT name="Goods_Palette" val="Palette_P3"/>
<OBJECT name="Fixture" val="Fixture_F1"/>
<OBJECT name="Machine" val="Machine_Left"/>
</ARGUMENTS>
</Action>
<Action run="F2P2P4ML">(マスタ作業スクリプト132b)
<ARGUMENTS>
<OBJECT name="Material_Palette" val="Palette_P2"/>
<OBJECT name="Goods_Palette" val="Palette_P4"/>
<OBJECT name="Fixture" val="Fixture_F2"/>
<OBJECT name="Machine" val="Machine_Left"/>
</ARGUMENTS>
</Action>
<Action run="F1P1P3MR">(マスタ作業スクリプト132c)
<ARGUMENTS>
<OBJECT name="Material_Palette" val="Palette_P1"/>
<OBJECT name="Goods_Palette" val="Palette_P3"/>
<OBJECT name="Fixture" val="Fixture_F3"/>
<OBJECT name="Machine" val="Machine_Right"/>
</ARGUMENTS>
</Action>
<Action run="F2P2P4MR">(マスタ作業スクリプト132d)
<ARGUMENTS>
<OBJECT name="Material_Palette" val="Palette_P2"/>
<OBJECT name="Goods_Palette" val="Palette_P4"/>
<OBJECT name="Fixture" val="Fixture_F4"/>
<OBJECT name="Machine" val="Machine_Right"/>
</ARGUMENTS>
</Action>
</Actions>
作成されたマスタ作業スクリプト132a、132b、132c、132dは、ハードディスク装置116から、ネットワークインタフェース80を経由してロボット制御装置40のメモリ78にコピーされ、マスタ作業スクリプト94a、94b、94c、94dとして格納される。
作業プログラム作成装置62は、作業パターンデータ124のステップS300〜S310(図15)のそれぞれに用意された作業ブロック(作業単位をさらに細分したもの)の複数の組み合わせを雛形として、装置定義データ126及び装置属性データ128を用いて、マスタ作業スクリプト132のステップS311〜S321(図16)の作業単位のそれぞれを指令する複数(11個)の作業プログラム(すなわち作業プログラム群134)を作成する。作業プログラム群134は、前述した4つのマスタ作業スクリプト132a、132b、132c、132dに対応して、4つの作業プログラム群134a、134b、134c、134dが作成される。作成された作業プログラム群134a、134b、134c、134dは、ハードディスク装置116から、ネットワークインタフェース80を経由してロボット制御装置40のメモリ78にコピーされ、作業プログラム群96a、96b、96c、96dとして格納される。
ロボット制御装置40は、セルコントローラ142から生産開始指令を受けると、ディジタル信号入出力回路82を介して、加工機械52及び54が加工中か否か、並びに位置決め治具48a、48b、50a及び50bにワークがセットされているか否かを確認した上で、指令に合致する1つのマスタ作業スクリプト94a、94b、94c又は94dを選択する。選択したマスタ作業スクリプトは、コピーされて、作業スクリプト98が作成される。作業スクリプト98は、セルコントローラ142からの生産指示に基づき並行的に作業可能な複数のワークW1、W2にそれぞれ対応して作成され、作業スクリプト981、982としてメモリ78に格納される。なお、セルコントローラ142から、生産指示に合わせて、作業に使用する加工機械や位置決め治具が指定される場合もあるが、この場合には、加工機械52、54、位置決め治具48a、48b、50a、50bの状態を確認する必要はない。
作業スクリプト98が作成されると、CPU76は制御プログラム88に従い、個々の作業スクリプト981、982内の作業開始条件14(図1)を使用して、実行可能状態の作業スクリプト981、982が有るか否かを判断する。このとき、個々の作業スクリプト981、982内の作業開始条件14(図1)を使用する。すなわち、ディジタル信号入出力回路82を経由して、加工機械52、54、位置決め治具48a、48b、50a、50bのそれぞれの状態を検出し、それらの状態が、各作業スクリプト981、982における実行段階の(すなわちポインタ指示されている)作業プログラムの作業開始条件14を満たしているかを確認する。作業開始条件14を満たしている作業スクリプトが複数有る場合には、既述の特定のルールに従い、それらのうちの1つを選択する。そしてCPU76は、選択された作業スクリプトに対応する1つの作業プログラム群96a、96b、96c、96dの、当該作業スクリプトにおける実行段階の作業プログラムを実行処理する。
上記した作業プログラムの作成手順は、作業プログラム作成装置62が、作業パターンデータ124に対し、全ての装置組合せに対応する個数の装置定義データ126を用意して、全ての装置組合せに対応するマスタ作業スクリプト132を作成し、これに装置属性データ128および装置/部品クラスデータ130を入力して、全ての作業プログラム群134を予め作成するものである。或いは、ロボット制御装置40のCPU76が、制御プログラム88に従い、作業に使用する装置を外部モデル100に基づいて決定し、その装置情報を、ネットワークインタフェース80を介して作業プログラム作成装置62に送信することで、作業プログラム作成装置62が、実際に使用する装置組合せに関する作業プログラム群134を作成するようにしてもよい。
ロボット制御装置40のCPU76は、作業プログラムの実行完了後、ディジタル信号入出力回路82を介して、加工機械52、54、位置決め治具48a、48b、50a、50bの現在状態を検出し、作業スクリプトにおける実行した作業プログラムの作業完了条件26(図2)が満たされているか否かを判断する。一定時間内に作業完了条件26が満たされれば、作業スクリプトの当該行の実行が完了するので、CPU76は制御プログラム88に従い、実行可能な作業スクリプト981、982を選択する。CPU76はこの作業を、全ての作業プログラムを完遂するまで繰り返す。CPU76は制御プログラム88に従い、ディジタル信号入出力回路82を介して、加工機械52、54、位置決め治具48a、48b、50a、50bの現在状態を常時検出し、メモリ78内の外部モデル100を随時更新する。また、作業スクリプトの作業完了条件26が満たされたときに、CPU76は制御プログラム88に従い、内部モデル102を更新する。さらにCPU76は、制御プログラム88に従い、外部モデル100と内部モデル102との比較を行い、両者が一致しない場合には、既述の例外処理作業単位を実行する。
図17〜図21は、制御プログラム88における動作シーケンスを示す。制御プログラム88は、メモリ78内に、図22に示すコンディションプロセステーブル(CPT)104を作成し、このCPT104を作業領域に用いて、処理を進める。以下、図面に従って、動作シーケンスの個々のステップを説明する。
ステップS330は、メモリ78内の全ての作業スクリプト98に対して、ステップS406までの処理を繰り返し実行することを宣言する。
ステップS331では、作業領域としてのCPT104をメモリ78に作成する。同時に、CPT104の全ての行の全ての欄の値を初期化する。
ステップS332では、処理中の作業スクリプトにおいてポインタが指示している行を、実行行とする。
ステップS333は、実行行に記載されている個々のConditionタグ<Condition />に対し、ステップS343までの処理を繰り返し実行することを宣言する。
ステップS334では、Conditionタグの装置や機械の名称(オブジェクト名)を取り出し、これをCPT104のObject欄に記入する。
ステップS335では、Object欄に記入したオブジェクト名が、装置選択肢か否かを判断する。装置選択肢は、作業スクリプト内のSelectタグ<Select/>によって定義されている。
ステップS335でオブジェクト名が装置選択肢でない場合には、ステップS336で、CPT104のSelect欄にオブジェクト名を記入する。
ステップS335でオブジェクト名が装置選択肢であった場合には、ステップS337で、Selectタグに一致する装置選択肢があるか否かを確認する。
ステップS337で装置選択肢と一致するSelectタグがない場合には、Conditionタグで指示された装置選択肢は正しくなく無効であるから、ステップS338で、CPT104をメモリ78から消去して、この作業スクリプトの処理を終了し、ステップS330に戻る。
ステップS337で一致するSelectタグが見つかった場合には、ステップS339で、Selectタグのamong以下でカンマで区切られた装置選択肢候補の数だけ、CPT104に行を追加し、CPT104のSelect欄に装置選択肢候補となる装置名を記入する。
ステップS340では、CPT104の各行のCondition欄に、Conditionタグにおいて、装置名に続いてコロンで区切られて次のカンマまでの間に記述されるConditionを記入する。
ステップS341では、作業スクリプトの実行行にObject欄又はSelect欄に記入された装置名と同じものが、Resultタグ<Result/>として指定されているか否かをチェックする。
Object欄又はSelect欄に記入された装置名と同じものがResultタグで指定されていた場合には、ステップS342でCPT104のResult欄に、Resultタグにおいて装置名に続いてコロンで区切られて次のカンマまでの間に記述されるResult Conditionを記入する。
Object欄又はSelect欄に記入された装置名と同じものがResultタグで指定されていない場合には、ステップS343でCPT104のResult欄をNULL(図13では−で表現されている)を記入する。
ステップS344は、ステップS333からステップS340までの処理が、作業スクリプトの実行行に記載の各Conditionに対して繰り返し行われることを表す。
ステップS344が終了し、処理がステップS345に達したときには、CPT104には、全てのConditionで指示されたオブジェクト名がObject欄に記入され、オブジェクト名が装置選択肢候補であった場合には、Select欄に装置選択肢候補が記入され、オブジェクトの作業開始条件14がCondition欄に記入される。
ステップS345からステップS350は、作業スクリプト内のDeforderタグ<Deforder/>に基づき、装置選択順の処理を行う。作業スクリプト内にはDeforderタグは1つだけ記述されている。
ステップS345では、作業用の変数Nを1に初期化する。
ステップS346は、Deforderタグでカンマによって区切られた装置選択順指定子に対し、ステップS347〜S348の処理を繰り返し行うことを宣言する。
ステップS347では、Deforderタグの第N番目の装置選択順指定子と同じ名称の装置を、CPT104のObject欄で探し、この行のDeforder欄にNを記入する。
ステップS348では、変数Nを1だけ加算する。
ステップS350では、CPT104内でDeforder欄が未定義のものに対し、Deforder欄にNを入力する。
ステップS351では、後の処理のために変数Nの値を変数Lに保存する。
ステップS352〜S355では、作業スクリプト内のWorksetタグ<Workset/>による装置組合せ指定子の処理を行う。
ステップS352では、作業スクリプトに記述されている複数のWorksetタグの各々について、ステップS353〜S355の処理を繰り返し行うことを宣言する。
ステップS353では、Worksetタグの第1番目のパラメータである装置名をCPT104のSelect欄から探し、一致する行のWorkset欄にWorksetの第2番目のパラメータである装置名を記入する。
ステップS354では、Worksetタグの第2番目のパラメータである装置名をCPT104のSelect欄から探し、一致する行のWorkset欄にWorksetの第1番目のパラメータである装置名を記入する。
ステップS356では、作業用の変数Nを1に初期化する。
ステップS357は、変数Nと変数Lとが互いに一致するまで、ステップS371までの処理を繰り返すことを宣言する。
ステップS358では、CPT104内でDeforder欄がNのものを探す。
ステップS359では、ステップS358で見つかった行のSelect欄に記入されている装置の状態を、外部モデル100でチェックする。
ステップS360では、Select欄の装置の状態が外部モデル100と一致しているか否かを判断する。
ステップS360でSelect欄の装置の状態が外部モデル100と一致していないと判断した場合には、ステップS361で、CPT104の最後までチェックしたか否かを判断する。
ステップS361でCPT104の最後までチェックしていないと判断した場合には、ステップS362で、CPT104における次の行から、Deforder欄がNのものを探す。
ステップS361でCPT104の最後までチェック済みと判断した場合には、ステップS363で、外部モデル100に一致する装置が見つからなかったのでこの作業スクリプトに対する装置の割り当てが失敗したと判断する。
そしてステップS364で、CPT104をメモリ78から消去して、この作業スクリプトの処理を終了し、他の作業スクリプトの処理のためにステップS330に戻る。
ステップS360でSelect欄の装置の状態が外部モデル100と一致していると判断した場合には、ステップS365以降の処理に進む。
ステップS365では、Workset欄に装置組合せ指定子が記入されているか否かをチェックする。記入されていなければ、1つの装置の割り当てが完了したことになり、ステップS374で、CPT104の第N行のHit欄を1にし、ステップS371に進む。
ステップS365で装置組合せ指定子が記入されていると判断した場合には、ステップS366で、Workset欄に記入されている装置をCPT104のSelect欄から探し、ステップS367で、装置が見つかったか否かを判断する。
ステップS367で装置が見つからなかったと判断した場合には、ステップS372に進み、装置の割り当てが失敗したとみなす。そして、ステップS373で、CPT104をメモリ78から消去して、この作業スクリプトの処理を終了する。
ステップS367で装置が見つかったと判断した場合には、ステップS368で、装置が見つかったCPT104の第M行のCondition欄を、外部モデル100によりチェックする。そしてステップS369で、Condition欄と、外部モデル100とが一致しているか否かを判断する。
ステップS369で一致していると判断されなかった場合には、ステップS366に戻り、Workset欄に記入されている装置をCPT104のSelect欄から探す。
ステップS369で一致していると判断された場合には、装置組合せ指定子に記入された2つの装置が一度に割り当てられたことになるので、ステップS370で、CPT104の第N行のHit欄と第M行のHit欄とをいずれも1にする。
ステップS371では、Nを1加算し、ステップS375で、ステップS357に戻り、LとNとが一致するまでステップS358〜S371を繰り返す。
処理がステップS376に達したときには、1つの作業スクリプトに対する処理が完了したことを意味する。そこでステップS330に戻り、メモリ78内の全作業スクリプトに対して、ステップS330〜S375の処理を繰り返す。
ステップS377以降の処理は、メモリ78内の全作業スクリプトに対する処理が完了した後に行われる。ここでメモリ78内には、装置割当てが完成した作業スクリプトに対するCPT104が残されている。
ステップS377では、メモリ78に残されているCPT104から1つを選択する。選ばれなかったCPT104は、ステップS378でメモリ78内から削除され、メモリ78内には1つのCPT104だけが残される。
ステップS379までの処理によって、メモリ78内に残されたCPT104に該当する作業スクリプトのポインタが指している行を実行することが決定される。
ステップS380では、CPT104のHit欄が1の行の、Select欄の記入内容を作業プログラム作成装置62に転送する。
ステップS381では、作業スクリプトが指している行の内容を、作業プログラム作成装置62に転送する。
ステップS382及びステップS383は、制御プログラム88での処理シーケンスではなく、作業プログラム作成装置62における処理であるが、制御プログラム88の処理シーケンスと同期して処理を行うため、ここでは1つの処理シーケンスとして表現する。
ステップS382では、Select欄の内容の装置を装置属性データ128から探し、作業スクリプトの内容を作業パターンデータ124から探し、ステップS380で転送されたSelect欄の記入内容から装置定義データ126を作成する。そして、作業パターンデータ124に装置定義データ126を入力することで、マスタ作業スクリプト132を作成し、これに装置属性データ128を入力して、作業プログラム群134を作成する。
ステップS383では、作成された作業プログラム群を、ネットワークを使って転送し、メモリ78に格納する。
ステップS384では、メモリ78に格納された作業プログラムを実行する。
ステップS385では、CPT104におけるHit欄が1の各行のSelect欄に記入されている装置の状態を、外部モデル100によりチェックし、Result欄に記入されているConditionと一致するか否かを確認する。
ステップS386では、Hit欄が1の行の装置の状態が外部モデル100と一致するか否かを判断する。CPT104におけるHit欄が1の全ての行が一致していると判断された場合には、ステップS387に移行し、一致していなければステップS393に移行する。
ステップS387に処理が達すると、作業スクリプトにおいてポインタが指示している1行の実行が完了したことになる。
ステップS388では、作業スクリプトのポインタを次の行に進める。
ステップS389では、作業スクリプトのポインタ指示行の命令がGOTO命令であるか否かを判断し、GOTO命令であった場合は、ステップS392で、GOTO命令の飛び先を作業スクリプトの中から探してポインタをこの命令に合わせる。GOTO命令でなければ、ステップS390に進む。
ステップS390では、作業スクリプトのポインタ指示行の命令がDO命令であるか否かを判断し、DO命令であった場合は、ステップS330に戻って再びメモリ78内の全作業スクリプトに対する処理を行う。DO命令でなければ、ステップS391に進む。
ステップS391では、作業スクリプトのポインタ指示行の命令がSTOP命令であるか否かを判断し、STOP命令であった場合には、この作業スクリプトの処理が完了したとみなして、ステップS396で、作業スクリプトをメモリ78から削除する。STOP命令でなければ、実行可能な命令でないと判断して、この命令を無視するためにステップS388に戻ってポインタを先に進める。
ステップS386で一致していないと判断された場合には、ステップS393で、タイムアウトが発生しているか否かを確認する。タイムアウトが発生していなければ、ステップS385に戻ってチェックを繰り返す。
ステップS393でタイムアウトが発生していると判断された場合には、ステップS394で、現在実行中の行に例外処理<Exception Goto />が定義されているか否かを判断する。
例外処理が定義されていれば、ステップS395で、例外処理で指定された飛び先を作業スクリプトから探して、ポインタをこれに合わせ、ステップS389に分岐する。
例外処理が定義されていなければ、ステップS397以降の、アラーム停止と再開処理に以降する。
ステップS397では、ロボット42をアラーム状態にして緊急停止する。
ステップS398では、教示操作盤84の表示器84aに、停止時の作業プログラム名、作業スクリプト名、作業スクリプトの実行行の内容、CPT104のSelect欄と外部モデル100との不一致の状況を表示し、オペレータにアラームの詳細を知らせる。
ステップS399では、教示操作盤84の入力部84bを使ったオペレータによる起動コマンドを待つ。
ステップS400では、外部モデル100と内部モデル102とが全て一致しているか否かを確認する。ステップS400で一致していると判断した場合には、ステップS406に移行して、ロボットのアラームを解除し、停止していた箇所から作業プログラムを実行して作業を再開する。
ステップS400で一致していないと判断した場合には、ステップS401で、教示操作盤84の表示部84aに外部モデル100と内部モデル102との違いを表示することで、オペレータがモデル間の不一致の内容を理解できるようにする。
ステップS402では、外部モデル100と内部モデル102との違いから、適切な原因と対策のメッセージを表示器84aに表示する。
ステップS403では、表示器84aに、外部モデル100と内部モデル102との不一致を無視して再開するか否かの、オペレータへの問い合わせメッセージと、再開するか否かの選択メニューとを表示する。
ステップS404では、ステップS403で表示したメッセージに対し、オペレータが無視して再開することを選択したか否かを判断し、選択した場合には、ステップS405で、外部モデル100の内容を全て内部モデル102にコピーして、強制的に内部モデル102と外部モデル100とを一致させる。そしてステップS406で、ロボット42のアラームを解除し、停止していた箇所から作業プログラムを再開する。
ステップS404でオペレータが無視して再開することを選択しなかった場合には、再びステップS399に戻って、オペレータが起動コマンドを入力するのを待つ。
以上が制御プログラム88の制御動作シーケンスである。
本発明は、上記した実施形態に限定されず、特許請求の範囲の記載内で様々な修正を施すことができる。例えば、ロボットが作業する環境の状態をセンサから取り込む構成に代えて、シミュレーションソフトで擬似的な作業環境の状態を作成し、この擬似的状態をランダムまたは一定のルールで変動させることで、ロボットの作業状況を確認するように構成することもできる。また、ロボット制御装置が実行する作業単位、次に行う作業単位を選択する手段、及び作業環境の状態を、シミュレーションソフトを用いてオフラインプログラミング装置でシミュレーションすることにより、ロボットの作業状況を予めオフラインで確認しておくこともできる。
本発明に係るロボット制御装置の基本構成を示す機能ブロック図である。 図1のロボット制御装置の第1の発展的構成を示す機能ブロック図である。 図1のロボット制御装置の第2の発展的構成を示す機能ブロック図である。 図1のロボット制御装置の第3の発展的構成を示す機能ブロック図である。 本発明の一実施形態によるロボット制御装置を組み込んだ、ロボットを用いた生産システムの全体概要図である。 図5の生産システムにおける制御系の構成を示すブロック図である。 図6の制御系におけるロボット制御装置のメモリの図である。 図6の制御系におけるハードディスク装置の図である。 図5の生産システムにおいてロボットが実行する作業の手順を示すフローチャートである。 図5の生産システムにおいてロボットが実行する作業の手順を示すフローチャートである。 図5の生産システムにおいてロボットが実行する作業の手順を示すフローチャートである。 図5の生産システムにおいてロボットが実行する作業の手順を破線矢印で示す概要図である。 図5の生産システムにおいてロボットが実行する作業の手順を破線矢印で示す概要図である。 図5の生産システムにおいてロボットが実行する作業の手順を破線矢印で示す概要図である。 図5の生産システムで用いられる作業パターンデータの図である。 図5の生産システムで用いられるマスタ作業スクリプトの図である。 図5の生産システムで用いられる制御プログラムの動作シーケンスを示す図である。 図5の生産システムで用いられる制御プログラムの動作シーケンスを示す図である。 図5の生産システムで用いられる制御プログラムの動作シーケンスを示す図である。 図5の生産システムで用いられる制御プログラムの動作シーケンスを示す図である。 図5の生産システムで用いられる制御プログラムの動作シーケンスを示す図である。 図5の生産システムで用いられるコンディションプロセステーブルの図である。
符号の説明
10、40 ロボット制御装置
12 作業プログラム
14 作業開始条件
16 状態情報
18 情報収集部
20 プログラム選定部
22 処理部
24 プログラム完了判断部
26 作業完了条件
28 内部情報
30 停止制御部
32 状態判断部
34 再開制御部
42 ロボット
44 ツール
48、50 仮置台
52、54 加工機械
78 メモリ
88 制御プログラム
94 マスタ作業スクリプト
96 作業プログラム群
98 作業スクリプト
100 外部モデル
102 内部モデル
104 コンディションプロセステーブル
116 ハードディスク装置

Claims (18)

  1. 複数の作業単位を個々に指令する複数の作業プログラムに従い、該複数の作業単位を含む作業を複数のワークに対し並行してロボットに遂行させるロボット制御装置であって、
    前記複数の作業プログラムの各々は、対応の前記作業単位をロボットが開始する前提となる作業開始条件の記述を含み、
    前記ロボット制御装置は、
    ロボットが前記作業を遂行する環境の状態を実時間で示す状態情報を収集する情報収集部と、
    前記情報収集部が収集した前記状態情報に基づいて、前記複数の作業プログラムの中で複数のワークに対し実行段階にある作業プログラムのうち、前記作業開始条件を満たしている第1の実行可能プログラムを選定するプログラム選定部と、
    前記プログラム選定部が選定した前記第1の実行可能プログラムを実行処理する処理部と、
    前記処理部が前記第1の実行可能プログラムの実行処理を完了したか否かを判断するプログラム完了判断部とを具備し、
    前記プログラム選定部は、前記プログラム完了判断部の判断状況に応じて、前記実行段階にある作業プログラムのうち、前記作業開始条件を満たしている第2の実行可能プログラムを、前記処理部が次に実行処理する作業プログラムとして、前記状態情報に基づき選定すること、
    を特徴とするロボット制御装置。
  2. 前記プログラム選定部は、前記状態情報に基づいて、前記複数の作業プログラムの中で幾つかの前記実行段階にある作業プログラムを特定するとともに、特定した該作業プログラムから、予め定めたルールに従って、1つの前記第1の実行可能プログラムを選択する、請求項1に記載のロボット制御装置。
  3. 前記プログラム選定部は、複数のワークのそれぞれに関連して前記複数の作業プログラムの実行順序を定義する複数の作業スクリプトを参照して、前記実行段階にある作業プログラムを特定する、請求項1又は2に記載のロボット制御装置。
  4. 前記複数の作業プログラムと前記複数の作業スクリプトとを格納する記憶部をさらに具備する、請求項3に記載のロボット制御装置。
  5. 前記プログラム完了判断部が、前記処理部の前記実行処理が完了したと判断する前に、前記プログラム選定部が前記第2の実行可能プログラムを選定し、前記処理部が該第2の実行可能プログラムを実行処理する、請求項1〜4のいずれか1項に記載のロボット制御装置。
  6. 前記複数の作業プログラムの各々は、対応の前記作業単位をロボットが完了する前提となる作業完了条件の記述を含み、前記プログラム完了判断部は、前記情報収集部が収集した前記状態情報に基づいて、前記第1の実行可能プログラムが該作業完了条件を満たしているか否かを判断し、それにより前記処理部の前記実行処理が完了したか否かを判断する、請求項1〜5のいずれか1項に記載のロボット制御装置。
  7. 前記プログラム完了判断部は、ロボットが前記作業を遂行する前記環境をモデル化した内部モデルの状態を示す内部情報を有して、該内部情報と前記情報収集部が収集した前記状態情報とが互いに一致するか否かを判断し、それにより前記処理部の前記実行処理が完了したか否かを判断する、請求項1〜6のいずれか1項に記載のロボット制御装置。
  8. 前記複数の作業プログラムは、前記複数の作業単位とは異なる例外処理作業単位を指令する例外作業プログラムを含み、前記プログラム完了判断部が、前記内部情報と前記状態情報とが互いに一致しないと判断したときに、前記プログラム選定部は、該複数の作業プログラムから該例外作業プログラムを選定し、前記処理部は、前記第2の実行可能プログラムの代わりに該例外作業プログラムを実行処理する、請求項7に記載のロボット制御装置。
  9. 前記プログラム完了判断部は、前記処理部の前記実行処理が完了したと判断するまでに予め定めた時間が経過したか否かをさらに判断する、請求項1〜7のいずれか1項に記載のロボット制御装置。
  10. 前記複数の作業プログラムは、前記複数の作業単位とは異なる例外処理作業単位を指令する例外作業プログラムを含み、前記プログラム完了判断部が、前記時間が経過したと判断したときに、前記プログラム選定部は、該複数の作業プログラムから該例外作業プログラムを選定し、前記処理部は、前記第2の実行可能プログラムの代わりに該例外作業プログラムを実行処理する、請求項9に記載のロボット制御装置。
  11. 前記作業の遂行中にロボットを緊急停止させる停止制御部と、ロボットが該作業を遂行する前記環境をモデル化した内部モデルの状態を示す内部情報を有して、該内部情報と前記情報収集部が収集した前記状態情報とが互いに一致するか否かを判断する状態判断部と、該状態判断部が、該内部情報と該状態情報とが互いに一致すると判断したときに、該緊急停止を解除して該作業を再開する再開制御部とをさらに具備する、請求項1〜6のいずれか1項に記載のロボット制御装置。
  12. 前記状態判断部が、前記内部情報と前記状態情報とが互いに一致しないと判断したときに、前記再開制御部は、前記作業を再開する前に、該内部情報と該状態情報との不一致の内容及び対策の少なくとも一方を告知するメッセージ信号を出力する、請求項11に記載のロボット制御装置。
  13. 前記状態判断部が、前記内部情報と前記状態情報とが互いに一致しないと判断したときに、前記再開制御部は、前記作業を再開する前に、再開許可指令を求めるメッセージ信号を出力する、請求項11又は12に記載のロボット制御装置。
  14. 前記再開制御部は、前記再開許可指令が得られたときに、前記内部情報を前記状態情報と同一の内容に書き換えて、前記作業を再開する、請求項13に記載のロボット制御装置。
  15. 複数の作業単位を個々に指令する複数の作業プログラムに従い、該複数の作業単位を含む作業を複数のワークに対し並行してロボットに遂行させるロボット制御方法であって、
    前記複数の作業プログラムの各々は、対応の前記作業単位をロボットが開始する前提となる作業開始条件の記述を含み、
    前記ロボット制御方法は、
    ロボットが前記作業を遂行する環境の状態を実時間で示す状態情報を収集するステップと、
    収集した前記状態情報に基づいて、前記複数の作業プログラムの中で複数のワークに対し実行段階にある作業プログラムのうち、前記作業開始条件を満たしている第1の実行可能プログラムを選定するステップと、
    選定した前記第1の実行可能プログラムを実行処理するステップと、
    前記第1の実行可能プログラムの実行処理の状況に応じて、前記実行段階にある作業プログラムのうち、前記作業開始条件を満たしている第2の実行可能プログラムを、前記状態情報に基づき選定するステップと、
    選定した前記第2の実行可能プログラムを実行処理するステップと、
    を具備することを特徴とするロボット制御方法。
  16. 前記複数の作業プログラムの各々は、対応の前記作業単位をロボットが完了する前提となる作業完了条件の記述を含み、第2の実行可能プログラムを選定する前記ステップの前に、前記状態情報に基づいて、前記第1の実行可能プログラムが該作業完了条件を満たしているか否かを判断し、それにより前記第1の実行可能プログラムの前記実行処理が完了したか否かを判断するステップをさらに具備する、請求項15に記載のロボット制御方法。
  17. 第2の実行可能プログラムを選定する前記ステップの前に、ロボットが前記作業を遂行する前記環境をモデル化した内部モデルの状態を示す内部情報と、前記情報収集部が収集した前記状態情報とが互いに一致するか否かを判断し、それにより前記第1の実行可能プログラムの前記実行処理が完了したか否かを判断するステップをさらに具備する、請求項15又は16に記載のロボット制御方法。
  18. 前記作業の遂行中にロボットが緊急停止したときに、ロボットが該作業を遂行する前記環境をモデル化した内部モデルの状態を示す内部情報と、前記状態情報とが互いに一致するか否かを判断するステップと、該内部情報と該状態情報とが互いに一致すると判断したときに、該緊急停止を解除して該作業を再開するステップとをさらに具備する、請求項15又は16に記載のロボット制御方法。
JP2005166893A 2005-06-07 2005-06-07 ロボット制御装置及びロボット制御方法 Active JP4210270B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2005166893A JP4210270B2 (ja) 2005-06-07 2005-06-07 ロボット制御装置及びロボット制御方法
US11/447,034 US9616570B2 (en) 2005-06-07 2006-06-06 Device and method for controlling robot
CNB2006100885922A CN100460161C (zh) 2005-06-07 2006-06-06 机械手控制装置及机械手控制方法
EP06011656.3A EP1731273B1 (en) 2005-06-07 2006-06-06 Device and method for controlling robot

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005166893A JP4210270B2 (ja) 2005-06-07 2005-06-07 ロボット制御装置及びロボット制御方法

Publications (2)

Publication Number Publication Date
JP2006343828A true JP2006343828A (ja) 2006-12-21
JP4210270B2 JP4210270B2 (ja) 2009-01-14

Family

ID=36950353

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005166893A Active JP4210270B2 (ja) 2005-06-07 2005-06-07 ロボット制御装置及びロボット制御方法

Country Status (4)

Country Link
US (1) US9616570B2 (ja)
EP (1) EP1731273B1 (ja)
JP (1) JP4210270B2 (ja)
CN (1) CN100460161C (ja)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2088490A2 (en) 2008-01-31 2009-08-12 Fanuc Ltd Production system provided with a production control apparatus
JP2010277425A (ja) * 2009-05-29 2010-12-09 Fanuc Ltd 工作機械に対してワークの供給及び取り出しを行うロボットを制御するロボット制御装置
KR20110019506A (ko) * 2009-08-20 2011-02-28 삼성전자주식회사 검사기의 구동을 제어하는 방법 및 이를 수행하는 분석장치
CN102193957A (zh) * 2010-03-12 2011-09-21 三菱电机株式会社 数控方法及其装置
CN106695741A (zh) * 2017-02-10 2017-05-24 中国东方电气集团有限公司 一种移动机器人系统状态检测及初始化工作的方法
KR101947825B1 (ko) 2011-03-14 2019-02-13 쿠카 레보라토리즈 게엠베하 로봇, 및 로봇을 작동시키기 위한 방법
JP2020154937A (ja) * 2019-03-22 2020-09-24 富士通株式会社 情報処理装置、作業選択方法および作業選択プログラム
WO2021251385A1 (ja) * 2020-06-08 2021-12-16 株式会社安川電機 生産システム、セルコントローラ、ロボットコントローラ及び制御方法
KR20220145609A (ko) * 2021-04-22 2022-10-31 주식회사 뉴로메카 협동로봇을 이용하는 튀김장치 및 튀김방법
WO2023054535A1 (ja) * 2021-09-28 2023-04-06 京セラ株式会社 情報処理装置、ロボットコントローラ、ロボット制御システム、及び情報処理方法
JP2023051681A (ja) * 2021-09-30 2023-04-11 株式会社日立製作所 自律タスク管理産業用ロボット
US11826913B2 (en) 2020-07-01 2023-11-28 Kabushiki Kaisha Yaskawa Denki Control system, robot system and control method
JP7494155B2 (ja) 2020-06-08 2024-06-03 株式会社安川電機 生産システム、セルコントローラ、ロボットコントローラ及び制御方法

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060026601A1 (en) * 2004-07-29 2006-02-02 Solt David G Jr Executing commands on a plurality of processes
ITRM20070347A1 (it) * 2007-06-21 2008-12-22 Space Software Italia S P A Metodo e sistema per la interazione e cooperazione di sensori, attuatori e robot
CN101753097A (zh) * 2008-12-03 2010-06-23 鸿富锦精密工业(深圳)有限公司 马达驱动装置
JP4621789B2 (ja) * 2009-06-02 2011-01-26 ファナック株式会社 物品搬送ロボットシステム
WO2011036865A1 (ja) * 2009-09-28 2011-03-31 パナソニック株式会社 ロボットアームの制御装置及び制御方法、ロボット、ロボットアームの制御プログラム、及び、ロボットアーム制御用集積電子回路
DE102009054230A1 (de) 2009-11-23 2011-05-26 Kuka Roboter Gmbh Verfahren und Vorrichtung zum Steuern von Manipulatoren
JP5743495B2 (ja) 2010-11-05 2015-07-01 キヤノン株式会社 ロボット制御装置
CN102530514A (zh) * 2010-12-31 2012-07-04 Abb研究有限公司 用于支持对目标对象进行操纵的设备和方法
DE102011011542B4 (de) * 2011-02-17 2016-05-25 Convergent Information Technologies Gmbh Verfahren zur automatisierten Programmierung und Optimierung von robotischen Arbeitsabläufen
JP5803155B2 (ja) * 2011-03-04 2015-11-04 セイコーエプソン株式会社 ロボット位置検出装置及びロボットシステム
DE102011005985B4 (de) 2011-03-23 2019-01-24 Kuka Roboter Gmbh Roboter, Steuervorrictung für einen Roboter und Verfahren zum Betreiben eines Roboters
JP5929061B2 (ja) * 2011-09-15 2016-06-01 セイコーエプソン株式会社 ロボット制御装置、ロボットシステム、ロボット
KR102028770B1 (ko) * 2011-09-15 2019-10-04 컨버전트 인포메이션 테크놀로지스 게엠베하 로봇 프로그램의 자동 생성을 위한 시스템 및 방법
JP2013099815A (ja) * 2011-11-08 2013-05-23 Fanuc Ltd ロボットプログラミング装置
US8738180B2 (en) * 2011-12-14 2014-05-27 GM Global Technology Operations LLC Robot control during an e-stop event
DE102012101497B4 (de) * 2012-02-24 2016-05-19 Convergent Information Technologies Gmbh Robotergestütztes Arbeitsverfahren
US10054933B2 (en) * 2012-03-27 2018-08-21 Sirqul, Inc. Controlling distributed device operations
JP5939213B2 (ja) * 2013-08-09 2016-06-22 株式会社安川電機 ロボット制御装置及びロボット制御方法
JP6361213B2 (ja) * 2014-03-26 2018-07-25 セイコーエプソン株式会社 ロボット制御装置、ロボット、ロボットシステム、教示方法、及びプログラム
US9701018B2 (en) 2014-04-01 2017-07-11 Bot & Dolly, Llc Software interface for authoring robotic manufacturing process
US9841749B2 (en) 2014-04-01 2017-12-12 Bot & Dolly, Llc Runtime controller for robotic manufacturing system
US9278449B1 (en) 2014-05-21 2016-03-08 Bot & Dolly, Llc Closed-loop control system for robotic operation
US9555545B2 (en) 2014-05-21 2017-01-31 Bot & Dolly, Llc Systems and methods for time-based parallel robotic operation
US9308647B2 (en) 2014-06-03 2016-04-12 Bot & Dolly, Llc Systems and methods for instructing robotic operation
JP6140111B2 (ja) 2014-07-14 2017-05-31 ファナック株式会社 設定の自動復元機能および誤設定防止機能を備えた数値制御装置
PL3012695T3 (pl) * 2014-10-23 2018-03-30 Comau S.P.A. Układ do monitorowania i sterowania zakładem przemysłowym
JP6081981B2 (ja) * 2014-12-19 2017-02-15 ファナック株式会社 教示プログラムの自動表示手段を備える数値制御装置
JP6545472B2 (ja) * 2015-01-27 2019-07-17 蛇の目ミシン工業株式会社 ロボット
JP6423769B2 (ja) * 2015-08-31 2018-11-14 ファナック株式会社 加工精度維持機能を有する加工システム
EP3165973B1 (en) * 2015-11-03 2018-01-03 Siemens Aktiengesellschaft A method for computer-aided control of an automation system
US10471594B2 (en) * 2015-12-01 2019-11-12 Kindred Systems Inc. Systems, devices, and methods for the distribution and collection of multimodal data associated with robots
CN106956259B (zh) * 2016-01-11 2019-11-26 上银科技股份有限公司 电动夹爪的驱动电路及其驱动方法
CN105643630B (zh) * 2016-03-22 2018-04-10 深圳市百事达卓越科技股份有限公司 油罐的改造方法
CN107976918B (zh) * 2016-10-24 2020-10-13 菜鸟智能物流控股有限公司 一种任务切换方法和相关装置
JP6412179B2 (ja) 2017-02-03 2018-10-24 ファナック株式会社 加工機に対して移動ロボットが物品の搬入及び搬出を行う加工システム、及び機械制御装置
CN106843176B (zh) * 2017-02-20 2019-03-12 集合智造(北京)餐饮管理有限公司 一种用于食品柔性制造中自动化准备食材的方法、系统
EP3613548A4 (en) 2017-04-19 2021-05-19 Kabushiki Kaisha Yaskawa Denki PROGRAMMING ASSISTANT DEVICE, ROBOT SYSTEM, PROGRAMMING ASSISTANCE METHOD, AND PROGRAM GENERATION METHOD
JP6795093B2 (ja) * 2017-06-02 2020-12-02 富士通株式会社 判定装置、判定方法及び判定プログラム
CN107332713A (zh) * 2017-08-10 2017-11-07 上海新炬网络技术有限公司 一种基于脚本的业务故障定位引擎实现方法
DE102017216863B3 (de) * 2017-09-22 2018-12-27 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Verfahren und Robotersystem zum Anpassen eines Robotereinsatzes an einen Arbeitsprozess
CN109968350B (zh) * 2017-12-28 2021-06-04 深圳市优必选科技有限公司 机器人及其控制方法、具有存储功能的装置
CN109968352B (zh) * 2017-12-28 2021-06-04 深圳市优必选科技有限公司 一种机器人控制方法及机器人、具有存储功能的装置
JP6805199B2 (ja) * 2018-03-26 2020-12-23 株式会社東芝 設備監視システム
IT201800005091A1 (it) 2018-05-04 2019-11-04 "Procedimento per monitorare lo stato di funzionamento di una stazione di lavorazione, relativo sistema di monitoraggio e prodotto informatico"
CN108908336A (zh) * 2018-07-20 2018-11-30 珠海智新自动化科技有限公司 一种机械手命令生成方法及系统
US11312015B2 (en) * 2018-09-10 2022-04-26 Reliabotics LLC System and method for controlling the contact pressure applied by an articulated robotic arm to a working surface
TWI703022B (zh) * 2018-09-26 2020-09-01 東元電機股份有限公司 應用於機械手臂之自動復歸控制系統與方法
CN111002301A (zh) * 2018-10-08 2020-04-14 东元电机股份有限公司 应用于机械手臂的自动复归控制系统与方法
JP7337495B2 (ja) * 2018-11-26 2023-09-04 キヤノン株式会社 画像処理装置およびその制御方法、プログラム
JP7343329B2 (ja) * 2019-08-05 2023-09-12 ファナック株式会社 ワーク選定及びロボット作業を同時に行うロボット制御システム
EP4039421A4 (en) * 2019-10-03 2022-12-28 Sony Group Corporation DATA PROCESSING APPARATUS, DATA PROCESSING METHOD AND ROBOT
JP7173079B2 (ja) * 2020-03-31 2022-11-16 株式会社安川電機 作業再開システム、製造方法、及びプログラム
US11981517B2 (en) 2021-03-30 2024-05-14 Dexterity, Inc. Robotic line kitting system safety features
US11897706B2 (en) 2021-03-30 2024-02-13 Dexterity, Inc. Robotic system with zone-based control
JP2023118484A (ja) * 2022-02-15 2023-08-25 株式会社安川電機 制御システム、生産方法、及びプログラム
CA3214432A1 (en) * 2022-09-27 2024-03-27 Sanctuary Cognitive Systems Corporation Systems, methods, and computer program products for automating tasks

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6076652A (en) * 1971-04-16 2000-06-20 Texas Instruments Incorporated Assembly line system and apparatus controlling transfer of a workpiece
IT1144707B (it) * 1981-05-15 1986-10-29 Dea Spa Unita a braccio operativo controllata da un sistema a calcolatore
JPS5822411A (ja) * 1981-08-04 1983-02-09 Fanuc Ltd 工業用ロボツト制御方式
US4484120A (en) * 1983-04-13 1984-11-20 Nordson Corporation Auxiliary function command presequencing for a robot controller
CA1216343A (en) * 1983-05-02 1987-01-06 Tomohiro Murata Method and apparatus for controlling an operation sequence of a machinery
US5579444A (en) * 1987-08-28 1996-11-26 Axiom Bildverarbeitungssysteme Gmbh Adaptive vision-based controller
JP2916796B2 (ja) * 1990-05-23 1999-07-05 日立精工株式会社 複数の工作機械を制御するcnc装置
JPH07129418A (ja) * 1993-11-08 1995-05-19 Fanuc Ltd マルチタスク環境でのプログラム制御方式
KR0130450B1 (ko) * 1993-12-30 1998-04-07 석진철 로보트 암의 원점복귀 및 동작한계 검출방법
JP3114579B2 (ja) * 1995-08-30 2000-12-04 松下電器産業株式会社 産業用ロボットおよびその制御装置
DE19747574A1 (de) * 1997-10-28 1999-05-06 Siemens Ag Verfahren zur Ermittlung realisierbarer Konfigurationen von Bearbeitungsanlagen
JP3673383B2 (ja) * 1997-12-12 2005-07-20 ファナック株式会社 ロボットの制御装置
JP2000031241A (ja) 1998-07-15 2000-01-28 Yaskawa Electric Corp 搬送装置の制御方法
CN1083750C (zh) * 1998-11-12 2002-05-01 财团法人工业技术研究院 车床控制器系统及其控制方法
US6944584B1 (en) * 1999-04-16 2005-09-13 Brooks Automation, Inc. System and method for control and simulation
JP2002095070A (ja) * 2000-09-14 2002-03-29 Matsushita Electric Works Ltd 操作ユニット、監視ユニット、表示ユニット、操作表示ユニット、及びこれらを備えた監視制御システム
JP2002192486A (ja) * 2000-12-25 2002-07-10 Seiko Epson Corp ロボット制御方法及び該方法を適用したロボットコントローラ
US6975913B2 (en) * 2001-07-13 2005-12-13 Siemens Aktiengesellschaft Database system and method for industrial automation services
JP3990262B2 (ja) * 2002-12-02 2007-10-10 ファナック株式会社 産業用ロボット
JP3715617B2 (ja) 2002-12-02 2005-11-09 ファナック株式会社 生産セル

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009181506A (ja) * 2008-01-31 2009-08-13 Fanuc Ltd 生産管理装置を備えた生産システム
US8073567B2 (en) 2008-01-31 2011-12-06 Fanuc Ltd Production system provided with a production control apparatus
EP2088490A2 (en) 2008-01-31 2009-08-12 Fanuc Ltd Production system provided with a production control apparatus
US9802286B2 (en) 2009-05-29 2017-10-31 Fanuc Ltd Robot control system provided in machining system including robot and machine tool
JP2010277425A (ja) * 2009-05-29 2010-12-09 Fanuc Ltd 工作機械に対してワークの供給及び取り出しを行うロボットを制御するロボット制御装置
JP4676544B2 (ja) * 2009-05-29 2011-04-27 ファナック株式会社 工作機械に対してワークの供給及び取り出しを行うロボットを制御するロボット制御装置
KR20110019506A (ko) * 2009-08-20 2011-02-28 삼성전자주식회사 검사기의 구동을 제어하는 방법 및 이를 수행하는 분석장치
KR101639243B1 (ko) * 2009-08-20 2016-07-25 삼성전자주식회사 검사기의 구동을 제어하는 방법 및 이를 수행하는 분석장치
CN102193957A (zh) * 2010-03-12 2011-09-21 三菱电机株式会社 数控方法及其装置
KR101947825B1 (ko) 2011-03-14 2019-02-13 쿠카 레보라토리즈 게엠베하 로봇, 및 로봇을 작동시키기 위한 방법
CN106695741A (zh) * 2017-02-10 2017-05-24 中国东方电气集团有限公司 一种移动机器人系统状态检测及初始化工作的方法
JP2020154937A (ja) * 2019-03-22 2020-09-24 富士通株式会社 情報処理装置、作業選択方法および作業選択プログラム
JP7131447B2 (ja) 2019-03-22 2022-09-06 富士通株式会社 情報処理装置、作業選択方法および作業選択プログラム
WO2021251385A1 (ja) * 2020-06-08 2021-12-16 株式会社安川電機 生産システム、セルコントローラ、ロボットコントローラ及び制御方法
JP2021193543A (ja) * 2020-06-08 2021-12-23 株式会社安川電機 生産システム、セルコントローラ、ロボットコントローラ及び制御方法
JP7494155B2 (ja) 2020-06-08 2024-06-03 株式会社安川電機 生産システム、セルコントローラ、ロボットコントローラ及び制御方法
US11826913B2 (en) 2020-07-01 2023-11-28 Kabushiki Kaisha Yaskawa Denki Control system, robot system and control method
KR20220145609A (ko) * 2021-04-22 2022-10-31 주식회사 뉴로메카 협동로봇을 이용하는 튀김장치 및 튀김방법
KR102480078B1 (ko) * 2021-04-22 2022-12-23 주식회사 뉴로메카 협동로봇을 이용하는 튀김장치 및 튀김방법
WO2023054535A1 (ja) * 2021-09-28 2023-04-06 京セラ株式会社 情報処理装置、ロボットコントローラ、ロボット制御システム、及び情報処理方法
JP2023051681A (ja) * 2021-09-30 2023-04-11 株式会社日立製作所 自律タスク管理産業用ロボット
JP7291262B2 (ja) 2021-09-30 2023-06-14 株式会社日立製作所 自律タスク管理産業用ロボット

Also Published As

Publication number Publication date
EP1731273B1 (en) 2015-03-04
EP1731273A2 (en) 2006-12-13
US9616570B2 (en) 2017-04-11
CN1876334A (zh) 2006-12-13
EP1731273A3 (en) 2010-01-06
JP4210270B2 (ja) 2009-01-14
CN100460161C (zh) 2009-02-11
US20060276934A1 (en) 2006-12-07

Similar Documents

Publication Publication Date Title
JP4210270B2 (ja) ロボット制御装置及びロボット制御方法
US7774099B2 (en) Programming device for returning robot to waiting position
US20190258945A1 (en) Fault diagnosis apparatus and machine learning device
JP4053550B2 (ja) 教示点を修正するための装置、プログラム、記録媒体及び方法
JP4465012B2 (ja) 搬入/搬出ロボットと協調動作する加工ラインシステム
US9632493B2 (en) Method of controlling a robotic work station, as a function of synchronization states, and a corresponding robotic work station
US20080091301A1 (en) System And A Method For Controlling Movements Of An Industrial Robot
JP2008015683A (ja) ロボットプログラムを作成するための装置、プログラム、記録媒体及び方法
CN104889799A (zh) 控制进行工件的供给和排出的机器人的机器人控制装置
US9588502B2 (en) Machine tool control device
JP2004185228A (ja) 生産セル
DK2524267T3 (en) A system comprising development environments and machinery control
JP2022013741A (ja) 制御システム、ロボットシステム及び制御方法
WO2021251389A1 (ja) 制御システム及び制御方法
JP6542710B2 (ja) アラーム解決のためのプログラム修正支援機能を備えた数値制御装置
US20120191233A1 (en) Method for Collision-Free Transfer of a Plant from an Substantially Off Mode to an Operating Mode
WO2021251385A1 (ja) 生産システム、セルコントローラ、ロボットコントローラ及び制御方法
JP7374867B2 (ja) 制御システム、ローカルコントローラ及び制御方法
JPS641270B2 (ja)
JP2001195110A (ja) 数値制御装置
JPS59114602A (ja) プログラマブルコントロ−ラ
Richardsson et al. Reuse of information as a base for development and verification of control programs for flexible manufacturing cells
US20230249347A1 (en) Path planning during execution of robot control
JP2013114425A (ja) 数値制御装置
EP3798849A1 (en) Method and apparatus for computer-implemented verification of the behavior of a technical system

Legal Events

Date Code Title Description
A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20070628

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20070831

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070904

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071101

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071211

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080208

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080408

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080602

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20080613

A912 Removal of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20080627

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080908

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081024

R150 Certificate of patent or registration of utility model

Ref document number: 4210270

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111031

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111031

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121031

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131031

Year of fee payment: 5