IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ファナック株式会社の特許一覧

特許7522219数値制御システム及び産業機械の制御方法
<>
  • 特許-数値制御システム及び産業機械の制御方法 図1
  • 特許-数値制御システム及び産業機械の制御方法 図2
  • 特許-数値制御システム及び産業機械の制御方法 図3
  • 特許-数値制御システム及び産業機械の制御方法 図4
  • 特許-数値制御システム及び産業機械の制御方法 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-16
(45)【発行日】2024-07-24
(54)【発明の名称】数値制御システム及び産業機械の制御方法
(51)【国際特許分類】
   G05B 19/18 20060101AFI20240717BHJP
   G05B 19/4155 20060101ALI20240717BHJP
【FI】
G05B19/18 C
G05B19/4155 M
【請求項の数】 6
(21)【出願番号】P 2022560825
(86)(22)【出願日】2021-11-05
(86)【国際出願番号】 JP2021040773
(87)【国際公開番号】W WO2022097719
(87)【国際公開日】2022-05-12
【審査請求日】2023-06-15
(31)【優先権主張番号】P 2020186407
(32)【優先日】2020-11-09
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】390008235
【氏名又は名称】ファナック株式会社
(74)【代理人】
【識別番号】100106002
【弁理士】
【氏名又は名称】正林 真之
(74)【代理人】
【識別番号】100165157
【弁理士】
【氏名又は名称】芝 哲央
(74)【代理人】
【識別番号】100160794
【弁理士】
【氏名又は名称】星野 寛明
(72)【発明者】
【氏名】今西 一剛
【審査官】神山 貴行
(56)【参考文献】
【文献】国際公開第2020/144772(WO,A1)
【文献】特開昭58-022412(JP,A)
【文献】特開2014-241018(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 19/18
G05B 19/4155
(57)【特許請求の範囲】
【請求項1】
工作機械及びロボットの動作を連動して制御する数値制御システムにおいて、
数値制御プログラムを記憶する第1記憶部及び当該第1記憶部から読み出した前記数値制御プログラムに基づいて前記工作機械の動作を制御する第1制御部を有する数値制御装置と、
ロボット制御プログラムを記憶する第2記憶部及び当該第2記憶部から読み出した前記ロボット制御プログラムに基づいて前記ロボットの動作を制御する第2制御部を有するロボット制御装置と、
記憶領域に記憶された複数の第1変数の値及び複数の第2変数の値を、前記第1制御部及び前記第2制御部からの読み出し指令及び書き換え指令に応じて読み書きする記憶装置と、を備え、
前記第1制御部は、前記数値制御プログラムに従って、前記第1変数の値を書き換える第1書き換え指令及び前記第2変数の値を読み出す第1読み出し指令を前記記憶装置へ送信し、
前記第2制御部は、前記ロボット制御プログラムに従って、前記第2変数の値を書き換える第2書き換え指令及び前記第1変数の値を読み出す第2読み出し指令を前記記憶装置へ送信し、
前記第1制御部は、前記数値制御プログラム及び前記第1読み出し指令に基づいて前記記憶装置から読み出した前記第2変数の値に基づいて前記工作機械の動作を制御し、
前記第2制御部は、前記ロボット制御プログラム及び前記第2読み出し指令に基づいて前記記憶装置から読み出した前記第1変数の値に基づいて前記ロボットの動作を制御する、数値制御システム。
【請求項2】
前記第1及び第2変数は、前記数値制御プログラム及び前記ロボット制御プログラムにおいて番号又は文字列によって指定される、請求項1に記載の数値制御システム。
【請求項3】
前記数値制御装置と前記ロボット制御装置は通信可能であり、
前記記憶装置は、前記数値制御装置に設けられ、
前記第2制御部は、前記通信を介して前記記憶装置へ前記第2読み出し指令及び前記第2書き換え指令を送信する、請求項1又は2に記載の数値制御システム。
【請求項4】
前記数値制御装置と前記ロボット制御装置は通信可能であり、
前記記憶装置は、前記ロボット制御装置に設けられ、
前記第1制御部は、前記通信を介して前記記憶装置へ前記第1読み出し指令及び前記第1書き換え指令を送信する、請求項1又は2に記載の数値制御システム。
【請求項5】
前記記憶装置は、前記数値制御装置及び前記ロボット制御装置と通信可能に接続されたサーバに設けられ、
前記第1制御部は、前記通信を介して前記記憶装置へ前記第1読み出し指令及び前記第1書き換え指令を送信し、
前記第2制御部は、前記通信を介して前記記憶装置へ前記第2読み出し指令及び前記第2書き換え指令を送信する、請求項1又は2に記載の数値制御システム。
【請求項6】
値制御プログラムを記憶する第1記憶部及び当該第1記憶部から読み出した前記数値制御プログラムに基づいて工作機械の動作を制御する第1制御部を有する数値制御装置、ロボット制御プログラムを記憶する第2記憶部及び当該第2記憶部から読み出した前記ロボット制御プログラムに基づいてロボットの動作を制御する第2制御部を有するロボット制御装置と、記憶領域に記憶された複数の第1変数の値及び複数の第2変数の値を、前記第1制御部及び前記第2制御部からの読み出し指令及び書き換え指令に応じて読み書きする記憶装置と、を備える数値制御システムを用いて前記工作機械及び前記ロボットの動作を連動して制御する産業機械の制御方法において、
前記第1制御部が、前記数値制御プログラムに従って、前記第1変数の値を書き換える第1書き換え指令を前記記憶装置へ送信する工程と、
前記第2制御部が、前記ロボット制御プログラムに従って、前記第2変数の値を書き換える第2書き換え指令を前記記憶装置へ送信する工程と、
前記第1制御部が、前記数値制御プログラムに従って、前記第2変数の値を読み出す第1読み出し指令を前記記憶装置へ送信する工程と、
前記第1制御部が、前記数値制御プログラム及び前記第1読み出し指令に基づいて前記記憶装置から読み出した前記第2変数の値に基づいて前記工作機械の動作を制御する工程と、
前記第2制御部が、前記ロボット制御プログラムに従って、前記第1変数の値を読み出す第2読み出し指令を前記記憶装置へ送信する工程と、
前記第2制御部前記ロボット制御プログラム及び前記第2読み出し指令に基づいて前記記憶装置から読み出した前記第1変数の値に基づいて前記ロボットの動作を制御する工程と、を備える、産業機械の制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、数値制御システム及び産業機械の制御方法に関する。
【背景技術】
【0002】
近年、加工現場の自動化を促進するため、ワークを加工する工作機械の動作とこの工作機械に対しワークを着脱するロボットの動作とを連動して制御する数値制御システムが望まれている(例えば、特許文献1参照)。一般的に、工作機械の動作は数値制御装置によって制御され、ロボットの動作はロボット制御装置によって制御される。このため工作機械の動作とロボットの動作を連動して制御するためには、数値制御装置及びロボット制御装置の両方の操作が必要となる。これに対し特許文献1に示された数値制御システムでは、数値制御装置側からのユーザによる指示に従ってロボットの動作プログラムの選択や動作プログラムの設定を可能とすることで、ユーザによる設定を容易にしている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2018-195055号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで既設の工作機械と後から設置したロボットとを連動して制御する場合、工作機械の動作を制御する数値制御装置と、ロボットの動作を制御するロボット制御装置と、を接続する必要がある。またこの際、これら数値制御装置及びロボット制御装置には、新たにI/O信号やMコード等のコマンドを追加したり、新たにPLC(プログラマブルロジックコントローラ)のような外部機器を設置したりする必要がある。またこの際、I/O信号は、数値制御装置のラダー回路を経由してロボット制御装置に送信する必要があることから、既設のラダー回路を編集する必要もある。このため実際の加工現場では、フレキシブルに対応できない場合がある。
【0005】
本開示は、上記課題に鑑みてなされたものであり、容易に工作機械とロボットとを連動させることができる数値制御システム及び産業機械の制御方法を提供する。
【課題を解決するための手段】
【0006】
本開示の一態様は、工作機械及びロボットの動作を連動して制御する数値制御システムにおいて、数値制御プログラムに基づいて前記工作機械の動作を制御する第1制御部を有する数値制御装置と、ロボット制御プログラムに基づいて前記ロボットの動作を制御する第2制御部を有するロボット制御装置と、前記第1制御部及び前記第2制御部によって読み書き可能な変数の値を記憶する記憶装置と、を備え、前記第1制御部は、前記記憶装置に記憶されている変数の値を読み出し、当該読み出した変数の値に基づいて前記工作機械の動作を制御し、前記第2制御部は、前記記憶装置に記憶されている変数の値を読み出し、当該読み出した変数の値に基づいて前記ロボットの動作を制御する、数値制御システムを提供する。
【0007】
本開示の一態様は、工作機械の動作を数値制御プログラムに基づいて制御する第1制御部と、ロボットの動作をロボット制御プログラムに基づいて制御する第2制御部と、前記第1制御部及び前記第2制御部によって読み書き可能な変数の値を記憶する記憶装置と、を備える数値制御システムを用いて前記工作機械及び前記ロボットの動作を連動して制御する産業機械の制御方法において、前記第1制御部が、前記記憶装置に記憶されている変数の値を読み出し、当該読み出した変数の値に基づいて前記工作機械の動作を制御する工程と、前記第2制御部は、前記記憶装置に記憶されている変数の値を読み出し、当該読み出した変数の値に基づいて前記ロボットの動作を制御する工程と、を備える、産業機械の制御方法を提供する。
【発明の効果】
【0008】
本開示の一態様において、数値制御システムは、数値制御プログラムに基づいて工作機械の動作を制御する第1制御部と、ロボット制御プログラムに基づいてロボットの動作を制御する第2制御部と、これら第1制御部及び第2制御部の双方から読み書き可能な変数の値を記憶する記憶装置と、を備える。第1制御部は、第2制御部から書き換え可能な変数の値を読み出し、この読み出した変数の値に基づいて工作機械の動作を制御し、第2制御部は、第1制御部から書き換え可能な変数の値を読み出し、この読み出した変数の値に基づいてロボットの動作を制御する。本開示の一態様によれば、第1制御部から第2制御部への通知及び要求や第2制御部から第1制御部への通知及び要求等を、双方から読み書き可能な変数を介して行うことができるので、新たにI/O信号や外部機器を追加したり、既設のラダー回路を編集したりすることなく容易に工作機械とロボットとを連動させることができる。また本開示の一態様によれば、記憶装置に様々な変数の値を記憶させるだけで多様な自動化形態への対応も可能になる。
【図面の簡単な説明】
【0009】
図1】本開示の一実施形態に係る数値制御システムの概略図である。
図2】数値制御装置及びロボット制御装置の機能ブロック図である。
図3】工作機械制御モジュールにおいて実行される数値制御プログラムの第1の例を示す図である。
図4】工作機械制御モジュールにおいて実行される数値制御プログラムの第2の例を示す図である。
図5】数値制御プログラムに従って呼び出されるサブプログラムの一例である。
【発明を実施するための形態】
【0010】
以下、図面を参照して、本開示の一実施形態に係る数値制御システム1について説明する。
【0011】
図1は、本実施形態に係る数値制御システム1の概略図である。
【0012】
数値制御システム1は、図示しないワークを加工する工作機械2と、この工作機械2の動作を制御する数値制御装置(CNC)5と、工作機械2の近傍に設けられたロボット3と、ロボット3の動作を制御するロボット制御装置6と、を備える。数値制御システム1は、互いに通信可能に接続された数値制御装置5及びロボット制御装置6を用いることによって、工作機械2及びロボット3の動作を連動して制御する。
【0013】
工作機械2は、例えば、旋盤、ボール盤、フライス盤、研削盤、レーザ加工機、及び射出成形機等であるが、これらに限らない。工作機械2は、後に説明する手順に従って数値制御装置5から送信される各種指令信号に応じて、図示しないワークの加工動作、このワークを把持するチャックの開閉動作、及びワークの加工エリアに設けられたドアの開閉動作等の各種動作を実行する。
【0014】
ロボット3は、ロボット制御装置6による制御下において動作し、例えば工作機械2によって加工されるワークに対し所定の作業を行う。ロボット3は、例えば多関節ロボットであり、そのアーム先端部31にはワークを把持したり、加工したり、検査したりするためのツール32が取り付けられている。以下では、ロボット3は、6軸の多関節ロボットとした場合について説明するが、これに限らない。また以下では、ロボット3は、6軸の多関節ロボットとした場合について説明するが、軸数はこれに限らない。
【0015】
数値制御装置5及びロボット制御装置6は、それぞれCPU(Central Processing Unit)等の演算処理手段、各種プログラムを格納したHDD(Hard Disk Drive)やSSD(Solid State Drive)等の補助記憶手段、演算処理手段がプログラムを実行する上で一時的に必要とされるデータを格納するためのRAM(Random Access Memory)といった主記憶手段、オペレータが各種操作を行うキーボードといった操作手段、及びオペレータに各種情報を表示するディスプレイといった表示手段等のハードウェアによって構成されるコンピュータである。これらロボット制御装置6及び数値制御装置5は、例えばイーサネット(登録商標)によって相互に各種信号を送受信することが可能となっている。
【0016】
図2は、数値制御装置5及びロボット制御装置6の機能ブロック図である。
【0017】
先ず、数値制御装置5の詳細な構成について説明する。図2に示すように数値制御装置5には、上記ハードウェア構成によって、工作機械2の動作を制御する第1制御部としての工作機械制御モジュール50、数値制御プログラムを記憶する記憶部51、工作機械制御モジュール50及び後述のロボット制御モジュール60によって読み書き可能な複数の変数の値を記憶する変数記憶部58、及びデータ送受信部59等の各種機能が実現される。
【0018】
記憶部51には、工作機械2の動作(例えば、制御軸の移動動作、主軸の回転動作、チャックの開閉動作、及びドアの開閉動作等)を制御するための数値制御プログラムが格納されている。記憶部51に格納されている数値制御プログラムは、ロボット制御装置6の制御下にあるロボット3の動作と連動して工作機械2の動作を制御するために予めオペレータによって作成され、GコートやMコード等を用いたプログラム言語によって記述されている。
【0019】
工作機械制御モジュール50は、数値制御プログラムに基づいて変数記憶部58に記憶されている変数の値を読み書きするとともに工作機械2の動作を制御する。より具体的には、工作機械制御モジュール50は、プログラム入力部52と、入力解析部53と、補間制御部54と、I/O制御部55と、サーボ制御部56と、を備える。
【0020】
プログラム入力部52は、記憶部51から数値制御プログラムを読み出し、これを逐次入力解析部53へ入力する。
【0021】
入力解析部53は、プログラム入力部52から入力される数値制御プログラムに基づく指令種別を順次ブロック毎に解析し、解析結果をI/O制御部55、補間制御部54、及び変数記憶部58へ送信する。
【0022】
入力解析部53は、数値制御プログラムに基づいて取得した指令の種別が、例えば、工作機械2のチャックの開閉を指令するものである場合や、工作機械2のドアの開閉を指令するものである場合、取得した指令をI/O制御部55へ入力する。I/O制御部55は、入力解析部53から指令が入力されると、入力された指令に応じたI/O信号を工作機械2へ入力する。これにより工作機械2のチャックやドアは、数値制御プログラムによって定められた手順によって開閉される。
【0023】
入力解析部53は、数値制御プログラムに基づいて取得した指令の種別が、例えば、工作機械2の制御軸の移動を指令するものである場合、取得した指令を補間制御部54へ入力する。補間制御部54は、入力解析部53から指令が入力されると、補間処理を行うことによって指令に応じた制御軸の移動経路を算出し、算出した移動経路をサーボ制御部56へ入力する。サーボ制御部56は、補間制御部54によって算出された移動経路に沿って制御軸が移動するように、工作機械2のサーボモータをフィードバック制御する。これにより工作機械2の動作は、数値制御プログラムによって定められた手順によって制御される。
【0024】
入力解析部53は、数値制御プログラムに基づいて取得した指令の種別が、例えば、変数記憶部58に記憶されている変数の値の読み出しを指令するものである場合や、変数記憶部58に記憶されている変数の値の書き換えを指令するものである場合、取得した指令を変数記憶部58へ入力する。
【0025】
変数記憶部58は、複数の変数の値を記憶する変数メモリ58mを備え、入力解析部53から入力される指令やデータ送受信部59を介してロボット制御装置6の後述のロボット制御モジュール60から入力される指令に応じて変数メモリ58mに記憶されている変数の値を読み出したり書き換えたりする。
【0026】
変数メモリ58mは、工作機械制御モジュール50において工作機械2の動作を制御するための数値制御プログラム及びロボット制御モジュール60においてロボット3の動作を制御するためのロボット制御プログラムにおいて番号又は文字列によって指定される複数の変数の値を記憶する。本実施形態では、変数メモリ58mによって記憶する変数として、多くの数値制御装置で定義されるマクロ変数の一部(例えば、#100~#199,#500~#599)を割り当てた場合について説明するが、これに限らない。
【0027】
変数記憶部58は、入力解析部53から変数メモリ58mに記憶されている変数の値を読み出す指令が入力された場合、変数メモリ58mから指令によって指定される変数の値を読み出し、読み出した値を入力解析部53へ送信する。また変数記憶部58は、入力解析部53から変数メモリ58mに記憶されている変数の値を書き換える指令が入力された場合、変数メモリ58mにおいて指令によって指定される変数の値を指令に応じた値に書き換える。これにより工作機械制御モジュール50は、変数メモリ58mに記憶されている変数の値を読み出したり書き換えたりすることが可能となっている。
【0028】
変数記憶部58は、ロボット制御モジュール60からデータ送受信部59を介して変数メモリ58mに記憶されている変数の値を読み出す指令が入力された場合、変数メモリ58mから指令によって指定される変数の値を読み出し、読み出した値を、データ送受信部59を介してロボット制御モジュール60へ送信する。また変数記憶部58は、ロボット制御モジュール60からデータ送受信部59を介して変数メモリ58mに記憶されている変数の値を書き換える指令が入力された場合、変数メモリ58mにおいて指令によって指定される変数の値を指令に応じた値に書き換える。これによりロボット制御モジュール60は、変数メモリ58mに記憶されている変数の値を読み出したり書き換えたりすることが可能となっている。
【0029】
変数メモリ58mは、工作機械制御モジュール50からロボット制御モジュール60への通知や要求に利用することを想定した複数の第1変数の値を記憶する第1記憶領域581と、ロボット制御モジュール60から工作機械制御モジュール50への通知や要求に利用することを想定した複数の第2変数の値を記憶する第2記憶領域582と、を備える。以下では、第1変数として変数#500~#599を割り当て、第2変数として変数#100~#199を割り当てた場合について説明する。
【0030】
第1記憶領域581に記憶される第1変数は、工作機械制御モジュール50からロボット制御モジュール60への通知や要求に利用することが想定されるため、工作機械制御モジュール50及びロボット制御モジュール60の双方から読み出し可能であり、かつ少なくとも工作機械制御モジュール50から書き換え可能であることが好ましい。また第2記憶領域582に記憶される第2変数は、ロボット制御モジュール60から工作機械制御モジュール50への通知や要求に利用することが想定されるため、工作機械制御モジュール50及びロボット制御モジュール60の双方から読み出し可能であり、かつ少なくともロボット制御装置6から書き換え可能であることが好ましい。
【0031】
第1変数#500は、例えば、工作機械制御モジュール50からロボット制御モジュール60へ、工作機械2の主軸の停止状態を通知するために割り当てられる。第1変数#500の値が0である場合、工作機械2の主軸は動作中であることを示し、第1変数#500の値が1である場合、工作機械2の主軸は停止していることを示す。
【0032】
第1変数#501は、例えば、工作機械制御モジュール50からロボット制御モジュール60へ、工作機械2の各軸がロボット3の侵入時における干渉領域外となる位置に退避した状態であることを通知するために割り当てられる。第1変数#501の値が0である場合、工作機械2の各軸は所定の干渉領域内に存在することを示し、第1変数#501の値が1である場合、工作機械2の各軸は干渉領域外に存在することを示す。
【0033】
第1変数#502は、例えば、工作機械制御モジュール50からロボット制御モジュール60へ、工作機械2のドアの開閉状態を通知するために割り当てられる。第1変数#502の値が0である場合、工作機械2のドアは開いていない状態であることを示し、第1変数#502の値が1である場合、工作機械2のドアは開いた状態であることを示す。
【0034】
第1変数#503は、例えば、工作機械制御モジュール50からロボット制御モジュール60へ、工作機械2のワークの交換を要求するために割り当てられる。第1変数#503の値が0である場合、ワークの交換が要求されていない状態であることを示し、第1変数#503の値が1である場合、ワークの交換が要求されている状態であることを示す。
【0035】
第2変数#100は、例えば、ロボット制御モジュール60から工作機械制御モジュール50へ、工作機械制御モジュール50において実行中の数値制御プログラムの停止を要求するために割り当てられる。第2変数#100の値が0である場合、数値制御プログラムの停止が要求されていない状態であることを示し、第2変数#100の値が1である場合、数値制御プログラムの停止が要求されている状態であることを示す。
【0036】
第2変数#101は、例えば、ロボット制御モジュール60から工作機械制御モジュール50へ、工作機械2のドアの開き動作を要求するために割り当てられる。第2変数#101の値が0である場合、ドアの開き動作が要求されていない状態であることを示し、第2変数#101の値が1である場合、ドアの開き動作が要求されている状態であることを示す。
【0037】
第2変数#102は、例えば、ロボット制御モジュール60から工作機械制御モジュール50へ、工作機械2のドアの閉じ動作を要求するために割り当てられる。第2変数#102の値が0である場合、ドアの閉じ動作が要求されていない状態であることを示し、第2変数#102の値が1である場合、ドアの閉じ動作が要求されている状態であることを示す。
【0038】
第2変数#103は、例えば、ロボット制御モジュール60から工作機械制御モジュール50へ、工作機械2のチャックの開き動作を要求するために割り当てられる。第2変数#103の値が0である場合、チャックの開き動作が要求されていない状態であることを示し、第2変数#103の値が1である場合、チャックの開き動作が要求されている状態であることを示す。
【0039】
第2変数#104は、例えば、ロボット制御モジュール60から工作機械制御モジュール50へ、工作機械2のチャックの閉じ動作を要求するために割り当てられる。第2変数#104の値が0である場合、チャックの閉じ動作が要求されていない状態であることを示し、第2変数#104の値が1である場合、チャックの閉じ動作が要求されている状態であることを示す。
【0040】
第2変数#105は、例えば、ロボット制御モジュール60から工作機械制御モジュール50へ、工作機械2による第1加工の実行を要求するために割り当てられる。第2変数#105の値が0である場合、第1加工の実行が要求されていない状態であることを示し、第2変数#105の値が1である場合、第1加工の実行が要求されている状態であることを示す。
【0041】
第2変数#106は、例えば、ロボット制御モジュール60から工作機械制御モジュール50へ、工作機械2による第2加工の実行を要求するために割り当てられる。第2変数#106の値が0である場合、第2加工の実行が要求されていない状態であることを示し、第2変数#106の値が1である場合、第2加工の実行が要求されている状態であることを示す。
【0042】
第2変数#107は、例えば、ロボット制御モジュール60から工作機械制御モジュール50へ、工作機械2による第3加工の実行を要求するために割り当てられる。第2変数#107の値が0である場合、第3加工の実行が要求されていない状態であることを示し、第2変数#107の値が1である場合、第3加工の実行が要求されている状態であることを示す。
【0043】
第2変数#150は、例えば、ロボット制御モジュール60から工作機械制御モジュール50へ、ロボット3の動作状態を通知するために割り当てられる。第2変数#150の値が0である場合、ロボット3は動作中であることを示し、第2変数#150の値が1である場合、ロボット3の動作は完了した状態であることを示す。
【0044】
なお変数メモリ58mに記憶される複数の変数の値は、数値制御装置5をオンにしたことに応じて所定の初期値(例えば、0)にリセットされる。
【0045】
次に、ロボット制御装置6の構成について詳細に説明する。図2に示すように、ロボット制御装置6には、上記ハードウェア構成によって、ロボット3の動作を制御する第2制御部としてのロボット制御モジュール60、ロボット制御プログラムを記憶する記憶部61、及びデータ送受信部69等の各種機能が実現される。
【0046】
記憶部61には、ロボット3の動作を制御するためのロボット制御プログラムが格納されている。記憶部61に格納されているロボット制御プログラムは、数値制御装置5の制御下にある工作機械2の動作と連動してロボット3の動作を制御するために予めオペレータによって作成されている。
【0047】
ロボット制御モジュール60は、ロボット制御プログラムに基づいて変数記憶部58に記憶されている変数の値を読み書きするとともにロボット3の動作を制御する。より具体的には、ロボット制御モジュール60は、プログラム入力部62と、入力解析部63と、軌跡制御部64と、I/O制御部65と、サーボ制御部66と、を備える。
【0048】
プログラム入力部62は、記憶部61からロボット制御プログラムを読み出し、これを逐次入力解析部63へ入力する。
【0049】
入力解析部63は、プログラム入力部62から入力されるロボット制御プログラムに基づく指令種別を順次ブロック毎に解析し、解析結果を軌跡制御部64、I/O制御部65、及びデータ送受信部69へ送信する。
【0050】
入力解析部63は、ロボット制御プログラムに基づいて取得した指令の種別が、例えば、ロボット3の制御点(例えば、アーム先端部31)の移動を指令するものである場合、取得した指令を軌跡制御部64へ入力する。軌跡制御部64は、入力解析部63から指令が入力されると、ロボット3の制御点を指令によって指定された位置へ移動させる際における制御点の動作軌跡を算出し、算出した動作軌跡に応じたロボット3の各関節の角度を目標角度として算出し、これら目標角度をサーボ制御部66へ送信する。サーボ制御部66は、軌跡制御部64から送信される各関節の目標角度が実現するように、ロボット3の各サーボモータをフィードバック制御することによってロボット3に対するロボット制御信号を生成し、ロボット3のサーボモータへ入力する。これによりロボット3の動作は、ロボット制御プログラムに定められた手順によって制御される。
【0051】
入力解析部63は、ロボット制御プログラムに基づいて取得した指令の種別が、例えば、ロボット3のアーム先端部31に取り付けられたツール32の駆動を指令するものである場合、取得した指令をI/O制御部65へ入力する。I/O制御部65は、入力解析部63から指令が入力されると、入力された指令に応じたI/O信号をツール32へ入力する。これによりロボット3のツール32は、ロボット制御プログラムによって定められた手順によって動作する。
【0052】
入力解析部63は、ロボット制御プログラムに基づいて取得した指令の種別が、例えば、変数記憶部58に記憶されている変数の値の読み出しを指令するものである場合や、変数記憶部58に記憶されている変数の値の書き換えを指令するものである場合、取得した指令をデータ送受信部69へ入力する。
【0053】
データ送受信部69は、入力解析部63から変数の値の読み出しの指令を受信した場合、当該指令を数値制御装置5のデータ送受信部59へ送信する。上述のように変数記憶部58は、このような読み出し指令が入力された場合、変数メモリ58mから指令によって指定される変数の値を読み出し、読み出した値を、データ送受信部59及びデータ送受信部69を介して入力解析部63へ送り返す。またデータ送受信部69は、入力解析部63から変数の値の書き換えの指令を受信した場合、当該指令を数値制御装置5のデータ送受信部59へ送信する。上述のように変数記憶部58は、このような書き換え指令が入力された場合、変数メモリ58mにおいて指令によって指定される変数の値を指令に応じた値に書き換える。これによりロボット制御モジュール60は、変数メモリ58mに記憶されている変数の値を読み出したり書き換えたりすることが可能となっている。
【0054】
以上のような数値制御システム1では、以下で説明する第1変数書き換え工程と、第2変数書き換え工程と、第1変数読み出し工程と、第2変数読み出し工程と、工作機械制御工程と、ロボット制御工程とを、数値制御プログラム及びロボット制御プログラムによって定められた順序で繰り返し実行することにより、工作機械2及びロボット3の動作を連動して制御する。
【0055】
第1変数書き換え工程では、工作機械制御モジュール50は、数値制御プログラムに従って変数メモリ58mの第1記憶領域581に記憶されている第1変数の値を書き換える。これにより工作機械制御モジュール50からロボット制御モジュール60へ、各種通知や要求を送信することができる。
【0056】
第2変数書き換え工程では、ロボット制御モジュール60は、ロボット制御プログラムに従って変数メモリ58mの第2記憶領域582に記憶されている第2変数の値を書き換える。これによりロボット制御モジュール60から工作機械制御モジュール50へ、各種通知や要求を送信することができる。
【0057】
第2変数読み出し工程では、工作機械制御モジュール50は、数値制御プログラムに従って変数メモリ58mの第2記憶領域582に記憶されている第2変数の値を読み出す。上述のように第2変数の値は、第2変数書き換え工程においてロボット制御モジュール60により適宜書き換えられる。このため工作機械制御モジュール50は、第2変数の値を読み出すことにより、ロボット制御モジュール60からの各種通知や要求を取得することができる。
【0058】
第1変数読み出し工程では、ロボット制御モジュール60は、ロボット制御プログラムに従って変数メモリ58mの第1記憶領域581に記憶されている第1変数の値を読み出す。上述のように第1変数の値は、第1変数書き換え工程において工作機械制御モジュール50により適宜書き換えられる。このためロボット制御モジュール60は、第1変数の値を読み出すことにより、工作機械制御モジュール50からの各種通知や要求を取得することができる。
【0059】
工作機械制御工程では、工作機械制御モジュール50は、数値制御プログラム及び上記第2変数読み出し工程において読み出した第2変数の値に基づいて工作機械2の動作を制御する。これにより、ロボット制御モジュール60から送信される各種通知や要求に基づいて定められるタイミング及び態様で工作機械2の動作を制御することができる。
【0060】
ロボット制御工程では、ロボット制御モジュール60は、ロボット制御プログラム及び上記第1変数読み出し工程において読み出した第1変数の値に基づいてロボット3及びツール32の動作を制御する。これにより、工作機械制御モジュール50から送信される各種通知や要求に基づいて定められるタイミング及び態様でロボット3の動作を制御することができる。
【0061】
図3は、工作機械制御モジュール50において実行される数値制御プログラムの第1の例を示す図である。
【0062】
始めにシーケンス番号“N10”から“N16”に示すブロックにおいて、工作機械制御モジュール50には、工作機械2によってワークを加工するための各種コマンド“G00”、“M03”、“G83”、及び“G80”が入力される。これにより工作機械制御モジュール50は、数値制御プログラムによって定められた手順によって工作機械2の動作を制御し、ワークを加工する。
【0063】
次にシーケンス番号“N20”に示すブロックにおいて、工作機械制御モジュール50には、工作機械2の主軸の回転を停止するためのコマンド“S0”が入力される。これにより工作機械制御モジュール50は、工作機械2の主軸の回転を停止させる。
【0064】
次にシーケンス番号“N21”に示すブロックにおいて、工作機械制御モジュール50には、第1変数#500の値を初期値である“0”から“1”に書き換えるためのコマンド“#500=1”が入力される。これにより工作機械制御モジュール50は、ロボット制御モジュール60へ工作機械2の主軸は停止していることを通知するべく、変数メモリ58mの第1記憶領域581に記憶されている第1変数#500の値を“0”から“1”に書き換える。
【0065】
次にシーケンス番号“N30”に示すブロックにおいて、工作機械制御モジュール50には、工作機械2の各軸を予め定められた干渉領域外へ退避させるためのコマンド“G00”が入力される。これにより工作機械制御モジュール50は、工作機械2の各軸をコマンド“G00”によって指定される位置へ移動させる。
【0066】
次にシーケンス番号“N31”に示すブロックにおいて、工作機械制御モジュール50には、第1変数#501の値を初期値である“0”から“1”に書き換えるためのコマンド“#501=1”が入力される。これにより工作機械制御モジュール50は、ロボット制御モジュール60へ工作機械2の各軸は干渉領域外に存在することを通知するべく、変数メモリ58mの第1記憶領域581に記憶されている第1変数#501の値を“0”から“1”に書き換える。
【0067】
次にシーケンス番号“N32”に示すブロックにおいて、工作機械制御モジュール50には、工作機械2のドアを開いた状態にするためのコマンド“M88”が入力される。これにより工作機械制御モジュール50は、工作機械2のドアを開く。
【0068】
次にシーケンス番号“N33”に示すブロックにおいて、工作機械制御モジュール50には、第1変数#502の値を初期値である“0”から“1”に書き換えるためのコマンド“#502=1”が入力される。これにより工作機械制御モジュール50は、ロボット制御モジュール60へ工作機械2のドアは開いた状態であることを通知するべく、変数メモリ58mの第1記憶領域581に記憶されている第1変数#502の値を“0”から“1”に書き換える。
【0069】
次にシーケンス番号“N34”に示すブロックにおいて、工作機械制御モジュール50には、第1変数#503の値を初期値である“0”から“1”に書き換えるためのコマンド“#503=1”が入力される。これにより工作機械制御モジュール50は、ロボット制御モジュール60に対し、工作機械2の機内のワークの交換動作を要求するべく、変数メモリ58mの第1記憶領域581に記憶されている第1変数#503の値を“0”から“1”に書き換える。
【0070】
一方、ロボット制御モジュール60は、ロボット制御プログラムに従って所定の周期で第1変数#500、#501、#502、#503の値を読み出す。またロボット制御モジュール60は、変数メモリ58mの第1記憶領域581に記憶されている第1変数#500、#501、#502、#503の値が何れも“1”である場合、すなわち工作機械2の主軸が停止した状態であり、各軸が干渉領域外に存在した状態であり、ドアが開いた状態であり、さらに工作機械制御モジュール50からワークの交換動作が要求されている場合には、ロボット制御プログラムにおいて予め定められた手順に従ってロボット3及びツール32の動作を制御し、ワークを交換する。従って工作機械制御モジュール50において、シーケンス番号“N34”に示すブロックの実行が完了したことを契機として、ロボット制御モジュール60は、ロボット3及びツール32を用いたワークの交換動作を開始する。またロボット制御モジュール60は、ワークの交換動作が完了すると、ロボット制御プログラムに従って変数メモリ58mの第2記憶領域582に記憶されている第2変数#150の値を初期値である“0”から“1”に書き換える。
【0071】
次にシーケンス番号“N36”~“N37”に示すブロックにおいて、工作機械制御モジュール50は、第2変数#150の値を読み出し、読み出した値が“0”であるか否かを所定の周期で繰り返し判定する。すなわち工作機械制御モジュール50は、ロボット制御モジュール60によるワークの交換動作の完了待ちの状態となる。工作機械制御モジュール50は、読み出した第2変数#150の値が“1”である場合、すなわちロボット制御モジュール60からワークの交換動作が完了した旨の通知があった場合、次のシーケンス番号“N38”に示すブロックに移行する。
【0072】
次にシーケンス番号“N38”に示すブロックにおいて、工作機械制御モジュール50には、第1変数#503の値を“1”から“0”に書き換えるためのコマンド“#503=0”が入力される。これにより工作機械制御モジュール50は、ロボット制御モジュール60に対するワークの交換動作の要求を取り下げる。
【0073】
次にシーケンス番号“N39”に示すブロックにおいて、工作機械制御モジュール50には、工作機械2のドアを閉じた状態にするためのコマンド“M89”が入力される。これにより工作機械制御モジュール50は、工作機械2のドアを閉じる。
【0074】
次にシーケンス番号“N40”に示すブロックにおいて、工作機械制御モジュール50には、第1変数#502の値を“1”から“0”に書き換えるためのコマンド“#502=0”が入力される。これにより工作機械制御モジュール50は、ロボット制御モジュール60へ工作機械2のドアは閉じた状態であることを通知するべく、変数メモリ58mの第1記憶領域581に記憶されている第1変数#502の値を“1”から“0”に書き換える。
【0075】
次にシーケンス番号“N41”~“N43”に示すブロックにおいて、工作機械制御モジュール50には、交換された新たなワークを工作機械2によって加工するための各種コマンド“M03”、及び“G00”が入力される。これにより工作機械制御モジュール50は、数値制御プログラムによって定められた手順によって工作機械2の動作を制御し、ワークを加工する。
【0076】
図4は、工作機械制御モジュール50において実行される数値制御プログラムの第2の例を示す図である。
【0077】
なおロボット制御モジュール60は、ロボット制御プログラムに従ってロボット3の動作を制御するとともに、ロボット制御プログラムに従って変数メモリ58mの第2記憶領域582に記憶されている第2変数#100~#107の値を書き換える。
【0078】
図4に示す数値制御プログラムは、工作機械制御モジュール50において所定の周期で第2変数#100~#107の値を読み出すことにより、ロボット制御モジュール60からの要求を監視するとともに、読み出した第2変数#100~#107の値に応じて工作機械2の動作を制御する。
【0079】
始めにシーケンス番号“N60”~“N62”に示すブロックにおいて、工作機械制御モジュール50は、変数メモリ58mの第2記憶領域582に記憶されている第2変数#101の値を読み出し、読み出した値が“1”であるか否かを判定する。また工作機械制御モジュール50は、第2変数#101の値が“1”である場合、すなわちロボット制御モジュール60から工作機械2のドアの開き動作が要求されている場合には、サブプログラムを呼び出すためのコマンド“M98”に従って、プログラム番号“0001”のサブプログラムを呼び出し、第2変数#101の値が“0”である場合には次のブロックに移行する。
【0080】
図5は、プログラム番号“0001”のサブプログラムの一例を示す図である。
図5に示すようなサブプログラムが呼び出されると、工作機械制御モジュール50は、コマンド“M88”に従って工作機械2のドアを開いた後、第2変数#101の値を“0”にリセットした後、コマンド“M99”に従って図4に示すメインプログラムに復帰する。
【0081】
次にシーケンス番号“N70”~“N72”に示すブロックにおいて、工作機械制御モジュール50は、変数メモリ58mの第2記憶領域582に記憶されている第2変数#102の値を読み出し、読み出した値が“1”であるか否かを判定する。また工作機械制御モジュール50は、第2変数#102の値が“1”である場合、すなわちロボット制御モジュール60から工作機械2のドアの閉じ動作が要求されている場合には、プログラム番号“0002”のサブプログラムを実行し、第2変数#102の値が“0”である場合には次のブロックに移行する。ここで工作機械制御モジュール50は、プログラム番号“0002”のサブプログラムを実行することにより、工作機械2のドアを閉じ、第2変数#102の値を“0”にリセットした後、図4に示すメインプログラムに戻る。
【0082】
次にシーケンス番号“N80”~“N82”に示すブロックにおいて、工作機械制御モジュール50は、変数メモリ58mの第2記憶領域582に記憶されている第2変数#103の値を読み出し、読み出した値が“1”であるか否かを判定する。また工作機械制御モジュール50は、第2変数#103の値が“1”である場合、すなわちロボット制御モジュール60から工作機械2のチャックの開き動作が要求されている場合には、プログラム番号“0003”のサブプログラムを実行し、第2変数#103の値が“0”である場合には次のブロックに移行する。ここで工作機械制御モジュール50は、プログラム番号“0003”のサブプログラムを実行することにより、工作機械2のチャックを閉じ、第2変数#103の値を“0”にリセットした後、図4に示すメインプログラムに戻る。
【0083】
次にシーケンス番号“N80”~“N82”に示すブロックにおいて、工作機械制御モジュール50は、変数メモリ58mの第2記憶領域582に記憶されている第2変数#103の値を読み出し、読み出した値が“1”であるか否かを判定する。また工作機械制御モジュール50は、第2変数#103の値が“1”である場合、すなわちロボット制御モジュール60から工作機械2のチャックの開き動作が要求されている場合には、プログラム番号“0003”のサブプログラムを実行し、第2変数#103の値が“0”である場合には次のブロックに移行する。ここで工作機械制御モジュール50は、プログラム番号“0003”のサブプログラムを実行することにより、工作機械2のチャックを閉じ、第2変数#103の値を“0”にリセットした後、図4に示すメインプログラムに戻る。
【0084】
次にシーケンス番号“N90”~“N92”に示すブロックにおいて、工作機械制御モジュール50は、変数メモリ58mの第2記憶領域582に記憶されている第2変数#105の値を読み出し、読み出した値が“1”であるか否かを判定する。また工作機械制御モジュール50は、第2変数#105の値が“1”である場合、すなわちロボット制御モジュール60から工作機械2による第1加工動作が要求されている場合には、プログラム番号“0005”のサブプログラムを実行し、第2変数#105の値が“0”である場合には次のブロックに移行する。ここで工作機械制御モジュール50は、プログラム番号“0005”のサブプログラムを実行することにより、工作機械2の第1加工動作を実行し、第2変数#105の値を“0”にリセットした後、図4に示すメインプログラムに戻る。
【0085】
次にシーケンス番号“N100”~“N101”に示すブロックにおいて、工作機械制御モジュール50は、変数メモリ58mの第2記憶領域582に記憶されている第2変数#100の値を読み出し、読み出した値が“0”であるか否かを判定する。また工作機械制御モジュール50は、第2変数#100の値が“0”である場合、すなわちロボット制御モジュール60から数値制御プログラムの停止が要求されていない場合には、シーケンス番号“N50”に示すブロックに戻り、再び第2変数#100~#107の値を監視する。また工作機械制御モジュール50は、第2変数#100の値が“1”である場合、すなわちロボット制御モジュール60から数値制御プログラムの停止が要求されている場合には、シーケンス番号“N110”に示すブロックに移り、図4に示す数値制御プログラムを終了する。
【0086】
以上より、工作機械制御モジュール50は、第2変数#100の値が“0”から“1”に書き換えられるまで、換言すればロボット制御モジュール60から数値制御プログラムの停止が要求されるまで、所定の周期で第2変数#101~#107の値を読み出すことによってロボット制御モジュール60からの要求を監視し、ロボット制御モジュール60によって第2変数#101~#107のうち何れかの値が“0”から“1”に書き換えられた場合には、書き換えられたタイミングで、書き換えられた第2変数に応じた態様で工作機械2の動作を制御する。
【0087】
本実施形態によれば、以下の効果が奏される。
数値制御システム1は、数値制御プログラムに基づいて工作機械2の動作を制御する工作機械制御モジュール50と、ロボット制御プログラムに基づいてロボット3の動作を制御するロボット制御モジュール60と、これら工作機械制御モジュール50及びロボット制御モジュール60の双方から読み書き可能な複数の変数の値を記憶する変数記憶部58と、を備える。工作機械制御モジュール50は、ロボット制御モジュール60から書き換え可能な変数の値を読み出し、この読み出した変数の値に基づいて工作機械2の動作を制御し、ロボット制御モジュール60は、工作機械制御モジュール50から書き換え可能な変数の値を読み出し、この読み出した変数の値に基づいてロボット3の動作を制御する。数値制御システム1によれば、工作機械制御モジュール50からロボット制御モジュール60への通知及び要求やロボット制御モジュール60から工作機械制御モジュール50への通知及び要求等を、双方から読み書き可能な変数を介して行うことができるので、新たにI/O信号や外部機器を追加したり、既設のラダー回路を編集したりすることなく容易に工作機械2とロボット3とを連動させることができる。また数値制御システム1によれば、変数記憶部58に様々な変数の値を記憶させるだけで多様な自動化形態への対応も可能になる。
【0088】
数値制御システム1において、工作機械制御モジュール50は、数値制御プログラムに基づいて変数記憶部58に記憶されている変数の値を読み書きし、ロボット制御モジュール60は、ロボット制御プログラムに基づいて変数記憶部58に記憶されている変数の値を読み書きする。すなわち数値制御システム1では、工作機械制御モジュール50とロボット制御モジュール60との間で通知や要求を送信するために用いる変数として、数値制御プログラム及びロボット制御プログラムにおいて定義される変数を用いる。これにより、既設の数値制御装置5やロボット制御装置6のソフトウェアを更新せずに工作機械2の動作とロボット3の動作を連動して制御することができる。
【0089】
数値制御システム1において、変数記憶部58の第1記憶領域581は、数値制御プログラムに従って書き換えられる第1変数の値を記憶し、変数記憶部58の第2記憶領域582は、ロボット制御プログラムに従って書き換えられる第2変数の値を記憶し、工作機械制御モジュール50は、第2変数の値に基づいて工作機械2の動作を制御するとともに、数値制御プログラムに従って第1変数の値を書き換え、ロボット制御モジュール60は、第1変数の値に基づいてロボット3の動作を制御するとともに、ロボット制御プログラムに従って第2変数の値を書き換える。これにより、数値制御システム1では、第1変数を利用して工作機械制御モジュール50からロボット制御モジュール60へ通知や要求等を送信し、第2変数を利用してロボット制御モジュール60から工作機械制御モジュール50へ通知や要求等を送信することができる。
【0090】
数値制御システム1において、数値制御装置5の工作機械制御モジュール50及びロボット制御装置6のロボット制御モジュール60はデータ送受信部59,69を介して通信可能であり、変数記憶部58は、数値制御装置5に設けられ、ロボット制御モジュール60は、データ送受信部59,69を用いた通信を介して変数記憶部58に記憶されている変数の値を読み書きする。これにより、変数の値を記憶するための外部機器を新たに追加することなく、工作機械2の動作とロボット3の動作を連動して制御することができる。
【0091】
本開示は、上記実施形態に限定されるものではなく、種々の変更及び変形が可能である。
【0092】
例えば上記実施形態では、工作機械制御モジュール50及びロボット制御モジュール60の双方から読み書き可能な複数の変数の値を記憶する変数記憶部58を、数値制御装置5に設けた場合について説明したが、これに限らない。
【0093】
変数記憶部は、例えば、数値制御装置と通信可能に接続されたロボット制御装置に設けてもよい。この場合、数値制御装置の工作機械制御モジュールは、ロボット制御装置に設けられた変数記憶部に記憶された変数の値を、上記通信を介して読み書きすることができるので、上記実施形態とほぼ同じ効果を奏する。
【0094】
また変数記憶部は、例えば、数値制御装置及びロボット制御装置とそれぞれ通信可能に接続されたサーバに設けてもよい。この場合、数値制御装置の工作機械制御モジュール及びロボット制御装置のロボット制御モジュールは、サーバに設けられた変数記憶部に記憶された変数の値を、それぞれ上記通信を介して読み書きすることができるので、上記実施形態とほぼ同じ効果を奏する。
【符号の説明】
【0095】
1…数値制御システム
2…工作機械
3…ロボット
31…アーム先端部
32…ツール
5…数値制御装置
51…記憶部
50…工作機械制御モジュール(第1制御部)
58…変数記憶部(記憶装置)
58m…変数メモリ
581…第1記憶領域
582…第2記憶領域
59…データ送受信部
6…ロボット制御装置
61…記憶部
60…ロボット制御モジュール
69…データ送受信部
図1
図2
図3
図4
図5