(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2022-11-14
(45)【発行日】2022-11-22
(54)【発明の名称】数値制御装置、及び数値制御システム
(51)【国際特許分類】
G05B 19/18 20060101AFI20221115BHJP
B25J 9/22 20060101ALI20221115BHJP
【FI】
G05B19/18 D
B25J9/22 Z
(21)【出願番号】P 2022524050
(86)(22)【出願日】2022-01-27
(86)【国際出願番号】 JP2022003029
【審査請求日】2022-04-22
(31)【優先権主張番号】P 2021012707
(32)【優先日】2021-01-29
(33)【優先権主張国・地域又は機関】JP
【早期審査対象出願】
(73)【特許権者】
【識別番号】390008235
【氏名又は名称】ファナック株式会社
(74)【代理人】
【識別番号】100106002
【氏名又は名称】正林 真之
(74)【代理人】
【識別番号】100165157
【氏名又は名称】芝 哲央
(74)【代理人】
【識別番号】100160794
【氏名又は名称】星野 寛明
(72)【発明者】
【氏名】仲村 瞭
【審査官】山本 忠博
(56)【参考文献】
【文献】特開2006-260010(JP,A)
【文献】特許第6647472(JP,B1)
【文献】特開2020-170356(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 19/18
B25J 9/22
(57)【特許請求の範囲】
【請求項1】
数値制御プログラムに基づいて、工作機械の動作を制御するとともに、ロボット及び当該ロボットを移動させる移動装置の動作を制御するロボット制御装置に対し、前記ロボットのロボット制御軸を移動させるためのロボット指令及び前記移動装置の付加軸を移動させるための付加軸指令を生成し、前記ロボット制御装置へ入力する数値制御装置において、
前記ロボット制御装置において取得される前記ロボット制御軸及び前記付加軸の座標値をそれぞれロボット基準座標値及び付加軸基準座標値として取得する座標値管理部と、
前記数値制御プログラム、前記ロボット基準座標値、及び前記付加軸基準座標値に基づいて前記ロボット指令及び前記付加軸指令を生成する指令生成部と、を備える、数値制御装置。
【請求項2】
前記座標値管理部は、前記数値制御プログラムにおける座標系切替指令に基づいて前記ロボット制御装置から前記ロボット基準座標値又は前記付加軸
基準座標値を取得する、請求項1に記載の数値制御装置。
【請求項3】
前記座標値管理部は、前記ロボット基準座標値及び前記付加軸基準座標値に基づいて、前記ロボット制御軸の現在座標値であるロボット現在座標値及び前記付加軸の現在座標値である付加軸現在座標値を管理する、請求項2に記載の数値制御装置。
【請求項4】
数値制御プログラムに基づいて、工作機械の動作を制御するとともに、ロボットの
ロボット制御軸を移動させるためのロボット指令及び当該ロボットを移動させる移動装置の付加軸を移動させるための付加軸指令を生成する数値制御装置と、
前記数値制御装置と通信可能であり前記数値制御装置から送信されるロボット指令及び付加軸指令に基づいて前記ロボット及び前記移動装置の動作を制御するロボット制御装置と、を備える数値制御システムにおいて、
前記ロボット制御装置は、
前記数値制御装置から送信される座標値取得要求に応じて、前記ロボット制御軸の座標値及び前記付加軸の座標値を取得し、前記数値制御装置へ送信する座標値制御部と、
前記ロボット指令及び前記付加軸指令に基づいて前記ロボット及び前記移動装置の動作を制御する動作制御部と、を備え、
前記数値制御装置は、
前記ロボット制御装置から送信される前記ロボット制御軸の座標値及び前記付加軸の座標値をそれぞれロボット基準座標値及び付加軸基準座標値として取得する座標値管理部と、
前記数値制御プログラム、前記ロボット基準座標値、及び前記付加軸基準座標値に基づいて前記ロボット指令及び前記付加軸指令を生成する指令生成部と、を備える、数値制御システム。
【請求項5】
前記座標値管理部は、前記数値制御プログラムにおける座標系切替指令に基づいて前記座標値取得要求を生成し、前記ロボット制御装置へ送信する、請求項4に記載の数値制御システム。
【請求項6】
前記座標値管理部は、前記ロボット基準座標値及び前記付加軸基準座標値に基づいて、前記ロボット制御軸の現在座標値であるロボット現在座標値及び前記付加軸の現在座標値である付加軸現在座標値を管理する、請求項5に記載の数値制御システム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、数値制御装置、及び数値制御システムに関する。
【背景技術】
【0002】
近年、加工現場の自動化を促進するため、ワークを加工する工作機械の動作とこの工作機械の近傍に設けられたロボットの動作とを連動して制御する数値制御システムが望まれている(例えば、特許文献1参照)。
【0003】
一般的に、工作機械を制御するための数値制御プログラムとロボットを制御するためのロボットプログラムとは、プログラム言語が異なる。このため工作機械の動作とロボットの動作とを連動させるためには、オペレータは数値制御プログラムとロボットプログラムとの両方に習熟する必要がある。
【0004】
特許文献1には、数値制御プログラムによって工作機械とロボットとの両方を制御する数値制御装置が示されている。より具体的には、特許文献1に示された数値制御システムでは、数値制御装置において数値制御プログラムに従ってロボット指令を生成し、ロボット制御装置において上記ロボット指令に基づいてロボットプログラムを生成し、このロボットプログラムに従ってロボットの動作を制御するためのロボット制御信号を生成する。特許文献1に示された数値制御システムによれば、数値制御プログラムに慣れ親しんだユーザであれば、ロボットプログラムを習熟することなくロボットも制御できる。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
ところで加工現場でロボットを使用する場合、ロボットの動作範囲を広げるため、走行軸や回転軸等の付加軸を備える移動装置にロボットを搭載し、この移動装置の付加軸上でロボットを移動自在とする場合がある。そこでロボットの動作を制御するためのロボット指令だけでなく、このロボットを移動させる移動装置の付加軸を制御するための指令も共通の数値制御プログラムに従って、数値制御装置において生成するよう、特許文献1に示すような数値制御装置の機能を拡張することが考えられる。
【0007】
しかしながらロボットを移動装置に搭載すると、付加軸の移動によってロボットの座標値も変わってしまう。このため、数値制御装置側でロボットと移動装置の両方の指令を生成しようとすると、ロボットの制御軸の座標値が定義されるロボット座標系と付加軸の座標値が定義される付加軸座標系との間の座標変換処理を適宜数値制御装置側で実行する必要があり、数値制御装置における処理負荷が増加し、ひいては工作機械及びロボットの加工性能も低下するおそれがある。
【0008】
本開示は、小さな処理負荷でロボット及びこのロボットを移動させる移動装置に対する指令を生成できる数値制御装置及び数値制御システムを提供する。
【課題を解決するための手段】
【0009】
本開示の一態様は、数値制御プログラムに基づいて、工作機械の動作を制御するとともに、ロボット及び当該ロボットを移動させる移動装置の動作を制御するロボット制御装置に対し、前記ロボットのロボット制御軸を移動させるためのロボット指令及び前記移動装置の付加軸を移動させるための付加軸指令を生成し、前記ロボット制御装置へ入力するものにおいて、前記ロボット制御装置において取得される前記ロボット制御軸及び前記付加軸の座標値をそれぞれロボット基準座標値及び付加軸基準座標値として取得する座標値管理部と、前記数値制御プログラム、前記ロボット基準座標値、及び前記付加軸基準座標値に基づいて前記ロボット指令及び前記付加軸指令を生成する指令生成部と、を備える、数値制御装置を提供する。
【0010】
本開示の一態様は、数値制御プログラムに基づいて、工作機械の動作を制御するとともに、ロボットの制御軸を移動させるためのロボット指令及び当該ロボットを移動させる移動装置の付加軸を移動させるための付加軸指令を生成する数値制御装置と、前記数値制御装置と通信可能であり前記数値制御装置から送信されるロボット指令及び付加軸指令に基づいて前記ロボット及び前記移動装置の動作を制御するロボット制御装置と、を備えるものにおいて、前記ロボット制御装置は、前記数値制御装置から送信される座標値取得要求に応じて、前記ロボット制御軸の座標値及び前記付加軸の座標値を取得し、前記数値制御装置へ送信する座標値制御部と、前記ロボット指令及び前記付加軸指令に基づいて前記ロボット及び前記移動装置の動作を制御する動作制御部と、を備え、前記数値制御装置は、前記ロボット制御装置から送信される前記ロボット制御軸の座標値及び前記付加軸の座標値をそれぞれロボット基準座標値及び付加軸基準座標値として取得する座標値管理部と、前記数値制御プログラム、前記ロボット基準座標値、及び前記付加軸基準座標値に基づいて前記ロボット指令及び前記付加軸指令を生成する指令生成部と、を備える、数値制御システムを提供する。
【発明の効果】
【0011】
本開示の一態様によれば、数値制御装置は、座標値管理部及び指令生成部を備える。座標値管理部は、ロボット制御装置から送信されるロボット制御軸及び移動装置の付加軸の座標値をそれぞれロボット基準座標値及び付加軸基準座標値として取得する。また指令生成部は、数値制御プログラムと、ロボット制御装置から取得したロボット基準座標値及び付加軸基準座標値と、に基づいてロボット制御軸を移動させるためのロボット指令及び付加軸を移動させるための付加軸指令を生成し、これらロボット指令及び付加軸指令をロボット制御装置へ入力する。本開示の一態様によれば、数値制御装置は、ロボット及びこのロボットそのものを移動させる移動装置の動作を直接的に制御するロボット制御装置からロボット基準座標値及び付加軸基準座標値を取得し、これら基準座標値と数値制御プログラムとに基づいてロボット指令及び付加軸指令を生成することにより、数値制御装置では、ロボット制御軸の座標値が定義される座標系と付加軸の座標値が定義される座標系との間の座標変換処理を行うことなくロボット指令及び付加軸指令を生成できるので、小さな処理負荷でロボット指令及び付加軸指令を生成できる。
【図面の簡単な説明】
【0012】
【
図1】本開示の一実施形態に係る数値制御システムの概略図である。
【
図2】数値制御装置及びロボット制御装置の機能ブロック図である。
【
図3】座標値取得要求生成処理の具体的な手順を示すフローチャートである。
【
図4】座標値更新処理の具体的な手順を示すフローチャートである。
【
図6】
図5に例示するロボット用プログラムに基づいて数値制御装置を作動させた場合における数値制御装置とロボット制御装置との間の信号や情報の流れを示すシーケンス図である。
【発明を実施するための形態】
【0013】
以下、図面を参照して、本開示の一実施形態に係る数値制御システム1について説明する。
【0014】
図1は、本実施形態に係る数値制御システム1の概略図である。
【0015】
数値制御システム1は、工作機械2と、この工作機械2を制御する数値制御装置(CNC)5と、工作機械2の近傍に設けられたロボット3と、このロボット3を移動させる移動装置4と、数値制御装置5と通信可能に接続されたロボット制御装置6と、を備える。数値制御装置5は、所定の数値制御プログラムに基づいて、工作機械2の動作を制御するとともに、ロボット3及び移動装置4の動作を制御するためのロボット制御装置6に対する指令を生成し、ロボット制御装置6へ送信する。ロボット制御装置6は、数値制御装置5から送信される指令に応じてロボット3及び移動装置4の動作を制御する。
【0016】
工作機械2は、数値制御装置5から送信される工作機械制御信号に応じて図示しないワークを加工する。ここで工作機械2は、例えば、旋盤、ボール盤、フライス盤、研削盤、レーザ加工機、及び射出成形機等であるが、これに限らない。
【0017】
ロボット3は、ロボット制御装置6による制御下において動作し、例えば工作機械2によって加工されるワークに対し所定の作業を行う。ロボット3は、例えば多関節ロボットであり、そのアーム先端部31にはワークを把持したり、加工したり、検査したりするためのツール32が取り付けられている。以下では、ロボット3は、6軸の多関節ロボットとした場合について説明するが、これに限らない。また以下では、ロボット3は、6軸の多関節ロボットとした場合について説明するが、軸数はこれに限らない。
【0018】
移動装置4は、床面Fに設置された基台41と、この基台41に対し水平方向に沿って摺動自在に設けられたスライダ42と、基台41に対しスライダ42を移動させる図示しないアクチュエータと、を備える。基台41は、水平面と並行な走行軸に沿って摺動自在にスライダ42を支持する。スライダ42には、ロボット3が固定されている。移動装置4は、ロボット制御装置6による制御下において動作し、スライダ42の走行軸を移動させることにより、ロボット3を移動させる。なお本実施形態では、付加軸として1軸の走行軸を備える移動装置4、すなわちスライダ42及びロボット3は1本の走行軸に沿ってのみ移動可能な移動装置4を例に説明するが、本開示はこれに限らない。走行軸の軸数は2軸以上としてもよいし、付加軸として回転軸を用いてもよい。
【0019】
数値制御装置5及びロボット制御装置6は、それぞれCPU(Central Processing Unit)等の演算処理手段、各種プログラムを格納したHDD(Hard Disk Drive)やSSD(Solid State Drive)等の補助記憶手段、演算処理手段がプログラムを実行する上で一時的に必要とされるデータを格納するためのRAM(Random Access Memory)といった主記憶手段、オペレータが各種操作を行うキーボードといった操作手段、及びオペレータに各種情報を表示するディスプレイといった表示手段等のハードウェアによって構成されるコンピュータである。これらロボット制御装置6及び数値制御装置5は、例えばイーサネット(登録商標)によって相互に各種信号を送受信することが可能となっている。
【0020】
図2は、数値制御装置5及びロボット制御装置6の機能ブロック図である。
【0021】
数値制御装置5は、以下で説明する手順に従って、ロボット3及びこのロボット3に取り付けられたツール32や移動装置4(以下、ロボット3、ツール32、及び移動装置4をまとめて「ロボット3等」ともいう)の動作を制御するための各種指令を生成し、生成した指令をロボット制御装置6へ送信する。ロボット制御装置6は、数値制御装置5から送信される指令に基づいて、以下で説明する手順に従ってロボット3の動作を制御するためのロボット制御信号を生成したり、ツール32の動作を制御するためのI/O信号を生成したりし、移動装置4の動作を制御するための移動装置制御信号を生成したりし、これら生成した信号をロボット3等に入力する。これによりロボット制御装置6は、ロボット3等の動作を制御する。
【0022】
先ず、数値制御装置5の詳細な構成について説明する。
図2に示すように数値制御装置5には、上記ハードウェア構成によって、工作機械2の制御系統としての工作機械制御モジュール50、ロボット3等の制御系統としてのロボット制御モジュール51、及び記憶部52等の各種機能が実現される。
【0023】
記憶部52には、例えばオペレータによる操作に基づいて作成された複数の数値制御プログラムが格納されている。より具体的には、記憶部52には、主として工作機械2に対する複数の指令ブロックによって構成される工作機械用の数値制御プログラム(以下、「工作機械用プログラム」ともいう)や、ロボット3等に対する複数の指令ブロックによって構成されるロボット用の数値制御プログラム(以下、「ロボット用プログラム」ともいう)等が格納されている。これら工作機械用プログラム及びロボット用プログラムは、共通のプログラミング言語(例えば、GコードやMコード等)で記述されている。
【0024】
工作機械用プログラムは、工作機械2上又は工作機械2の近傍の任意の位置に定められた基準点を原点とする工作機械座標系に基づいて記述されている。すなわち工作機械用プログラムにおいて、工作機械2の制御点の位置及び姿勢は、工作機械座標系によって定義される座標値によって記述される。
【0025】
ロボット用プログラムは、工作機械座標系とは異なるロボット座標系及び走行軸座標系に基づいて記述されている。すなわちロボット用プログラムにおいて、ロボット3の制御点(例えば、ロボット3のアーム先端部31)の位置及び姿勢、換言すればロボット3の各制御軸の位置は、ロボット座標系によって定義される座標値によって記述される。またロボット用プログラムにおいて、移動装置4の走行軸の位置は、走行軸座標系によって定義される座標値によって記述される。
【0026】
ロボット座標系は、ロボット3上又はロボット3の近傍の任意の位置に定められた基準点を原点とする座標系である。なお以下では、ロボット座標系は工作機械座標系と異なる場合について説明するが、これに限らない。ロボット座標系は工作機械座標系と一致させてもよい。換言すれば、ロボット座標系の原点や座標軸方向を工作機械座標系の原点や座標軸方向と一致させてもよい。
【0027】
またこのロボット用プログラムにおいて、ロボット座標系は、制御軸が異なる2以上の座標形式の間で切替可能となっている。より具体的には、ロボット用プログラムにおいてロボット3の制御点の位置及び姿勢は、直交座標形式又は各軸座標形式によって指定可能である。
【0028】
各軸座標形式では、ロボット3の制御点の位置及び姿勢は、ロボット3の6つの関節の回転角度値(J1,J2,J3,J4,J5,J6)を成分とした計6つの実数の座標値によって指定される。
【0029】
直交座標形式では、ロボット3の制御点の位置及び姿勢は、3つの直交座標軸に沿った3つの座標値(X,Y,Z)と、各直交座標軸周りの3つの回転角度値(A,B,C)と、を成分とした計6つの実数の座標値によって指定される。
【0030】
ここで各軸座標形式の下では、ロボット3の各関節の回転角度を直接的に指定するため、ロボット3の各アームや手首の軸配置や、360度以上回転可能な関節の回転数(以下、これらを総称して「ロボット3の形態」という)も一意的に定まる。これに対し直交座標形式の下では、6つの座標値(X,Y,Z,A,B,C)によってロボット3の制御点の位置及び姿勢を指定するため、ロボット3の形態は一意的に定めることができない。そこでロボット用の数値制御プログラムでは、ロボット3の形態を、所定の桁数の整数値である形態値Pによって指定することが可能となっている。従ってロボット3の制御点の位置及び姿勢並びにロボット3の形態は、各軸座標形式の下では6つの座標値(J1,J2,J3,J4,J5,J6)によって表され、直交座標形式の下では6つの座標値及び1つの形態値(X,Y,Z,A,B,C,P)によって表される。なお以下では、便宜上形態値Pも座標値という。
【0031】
ロボット用プログラムでは、ロボット座標系の座標形式切替指令であるGコード“G68.8”及び“G68.9”によってロボット座標系の座標形式を直交座標形式と各軸座標形式とで切り替えることが可能となっている。より具体的には、Gコード“G68.8”を入力することにより、ロボット座標系の座標形式は各軸座標形式に設定され、Gコード“G68.9”を入力することにより、ロボット座標系の座標形式は直交座標形式に設定される。これら座標形式を設定するためのGコード“G68.8”及び“G68.9”は、モーダルである。従って座標形式は、これらGコードによって座標形式を各軸座標形式又は直交座標形式に設定した後は、再びこれらGコードによって座標形式が変更されるまで維持される。なお本実施形態では、ロボット用プログラムにこれらロボット座標系の座標形式を設定するためのGコードが記載されていない場合、座標形式は自動的に直交座標形式に設定されるものとするが、これに限らない。
【0032】
走行軸座標系は、移動装置4上又は移動装置4の近傍の任意の位置に定められた基準点を原点とする走行軸の数と同次元の座標系である。本実施形態では、走行軸を1本とした場合、すなわち走行軸座標系を1次元とした場合について説明するが、これに限らない。また本実施形態では、走行軸と上記直交座標形式におけるY軸とを平行とした場合について説明するが、これに限らない。すなわち本実施形態では、移動装置4の走行軸の位置は、1つの座標値(Y2)によって表され、また走行軸の移動によりロボットの直交座標形式におけるY軸の座標値が変化する場合について説明するが、これに限らない。
【0033】
ロボット用プログラムでは、座標系切替指令であるGコード“G17.8”及び“G17.9”によって座標系を走行軸座標系とロボット座標系とで切り替えることが可能となっている。より具体的には、Gコード“G17.9”を入力することにより、座標系は走行軸座標系に設定され、Gコード“G17.8”を入力することにより、座標系はロボット座標系に設定される。これら座標系を設定するためのGコード“G17.8”及び“G17.9”は、モーダルである。従って座標系は、これらGコードによって座標系をロボット座標系又は走行軸座標系に設定した後は、再びこれらGコードによって座標系が変更されるまで維持される。なお本実施形態では、ロボット用プログラムにこれら座標系を設定するためのGコードが記載されていない場合、座標系は自動的にロボット座標系に設定されるものとするが、これに限らない。
【0034】
工作機械制御モジュール50は、工作機械用プログラムに従って、主として工作機械2の動作を制御するための工作機械制御信号を生成し、工作機械2の図示しないアクチュエータへ入力する。より具体的には、工作機械制御モジュール50は、記憶部52に格納された工作機械用プログラムを読み出し、当該数値制御プログラムに基づく指令種別を解析することによって工作機械制御信号を生成する。工作機械2は、工作機械制御モジュール50から送信される工作機械制御信号に応じて動作し、図示しないワークを加工する。
【0035】
ロボット制御モジュール51は、ロボット用プログラムに従って、ロボット3等の動作を制御するための各種指令を生成し、ロボット制御装置6へ送信する。より具体的には、ロボット制御モジュール51は、プログラム入力部53と、入力解析部54と、座標値管理部55と、指令生成部56と、データ送受信部59と、を備える。
【0036】
プログラム入力部53は、ロボット用プログラムを記憶部52から読み出し、これを逐次入力解析部54へ入力する。
【0037】
入力解析部54は、プログラム入力部53から入力されるロボット用プログラムに基づく指令種別を指令ブロック毎に解析し、その解析結果を座標値管理部55及び指令生成部56へ送信する。
【0038】
座標値管理部55は、記憶媒体である座標値メモリ57を備え、この座標値メモリ57を用いることによってロボット3の6つの制御軸の現在の座標値であるロボット現在座標値及び移動装置4の走行軸の現在の座標値である走行軸現在座標値を管理する。
【0039】
図2に示すように、座標値メモリ57は、ロボット現在座標値を格納するロボット座標値格納領域57aと、走行軸現在座標値を格納する走行軸座標値格納領域57bと、を備える。
【0040】
上述のようにロボット3の6つの制御軸の位置は、ロボット座標系の下で定義される。また本実施形態では、ロボット座標系は、直交座標形式と各軸座標形式とで切り替えることが可能となっている。ロボット3の6つの制御軸の位置は、直交座標形式の下では7つの座標値(X,Y,Z,A,B,C,P)によって表され、各軸座標形式の下では6つの座標値(J1,J2,J3,J4,J5,J6)によって表される。座標値メモリ57のロボット座標値格納領域57aには、ロボット用プログラムに基づいて設定されている座標形式である指定座標形式が直交座標形式である場合には、ロボット現在座標値として7つの座標値(X,Y,Z,A,B,C,P)が格納され、指定座標形式が各軸座標形式である場合には、ロボット現在座標値として6つの座標値(J1,J2,J3,J4,J5,J6)が格納される。ロボット座標値格納領域57aに格納される座標値は、常に最新の座標値に維持されるように、座標値管理部55及び指令生成部56によって後に説明する手順に従って適宜更新される。
【0041】
上述のように移動装置4の走行軸の位置は、1次元の走行軸座標系の下において、1つの座標値(Y2)によって表される。座標値メモリ57の走行軸座標値格納領域57bには、走行軸現在座標値として1つの座標値(Y2)が格納される。走行軸座標値格納領域57bに格納される座標値は、常に最新の座標値に維持されるように、座標値管理部55及び指令生成部56によって後に説明する手順に従って適宜更新される。
【0042】
座標値管理部55は、後に
図3を参照して説明するように、入力解析部54から送信される解析結果に基づいて、座標値メモリ57に格納されている現在座標値の更新の要否を判定し、現在座標値を更新する必要があると判断した場合には、ロボット制御装置6から現在の座標値を取得するべく座標値取得要求を生成し、この座標値取得要求をデータ送受信59に書き込む。後に説明するように、ロボット制御装置6は、数値制御装置5から送信される座標値取得要求を受信したことに応じて、ロボット3の制御軸の座標値及び移動装置4の走行軸の座標値を取得し、これら座標値を数値制御装置5へ送信する。
【0043】
また座標値管理部55は、後に
図4を参照して説明するように、ロボット制御装置6から送信されるロボット3の制御軸の座標値及び移動装置4の走行軸の座標値をそれぞれロボット基準座標値及び走行軸基準座標値として取得し、これらロボット基準座標値及び走行軸基準座標値によって座標値メモリ57に格納されている現在座標値を更新する。
【0044】
図3は、座標値取得要求生成処理の具体的な手順を示すフローチャートである。座標値管理部55は、ロボット用プログラムに基づく指令が座標系切替指令(G17.8又はG17.9)や座標形式切替指令(G68.8又はG68.9)である場合(ステップST1,ST3,ST7,ST8)、
図3に示す各種処理(ステップST2,ST4~ST6)を実行する。
【0045】
ステップST1では、座標値管理部55は、ロボット用プログラムに基づく指令が座標系を走行軸座標系に切り替える座標系切替指令(すなわち、Gコード“G17.9”)であるか否かを判定する。座標値管理部55は、ステップST1における判定結果がNOである場合、ステップST3に移る。
【0046】
座標値管理部55は、ステップST1における判定結果がYESである場合、座標値メモリ57の走行軸座標値格納領域57bに格納されている現在座標値を更新する必要があると判断し、ステップST2に移る。ステップST2では、座標値管理部55は、ロボット制御装置6から移動装置4の走行軸の現在の座標値を要求するべく走行軸座標値取得要求を生成し、この走行軸座標値取得要求をデータ送受信部59に書き込み、
図3に示す処理を終了する。これによりデータ送受信部59は、走行軸座標値取得要求をロボット制御装置6へ送信する。
【0047】
ステップST3では、座標値管理部55は、ロボット用プログラムに基づく指令が座標系をロボット座標系に切り替える座標系切替指令(すなわち、Gコード“G17.8”)であるか否かを判定する。座標値管理部55は、ステップST3における判定結果がNOである場合、ステップST7に移る。
【0048】
座標値管理部55は、ステップST3における判定結果がYESである場合、座標値メモリ57のロボット座標値格納領域57aに格納されている現在座標値を更新する必要があると判断し、ステップST4に移る。ステップST4では、座標値管理部55は、現在の指定座標形式は直交座標形式であるか否かを判定する。
【0049】
座標値管理部55は、ステップST4における判定結果がYESである場合、ステップST5に移る。ステップST5では、座標値管理部55は、ロボット制御装置6からロボット3の現在の制御軸の直交座標形式の下での座標値を要求するべく直交座標値取得要求を生成し、この直交座標値取得要求をデータ送受信部59に書き込み、
図3に示す処理を終了する。これによりデータ送受信部59は、直交座標値取得要求をロボット制御装置6へ送信する。
【0050】
座標値管理部55は、ステップST4における判定結果がNOである場合、ステップST6に移る。ステップST6では、座標値管理部55は、ロボット制御装置6からロボット3の現在の制御軸の各軸座標形式の下での座標値を要求するべく各軸座標値取得要求を生成し、この各軸座標値取得要求をデータ送受信部59に書き込み、
図3に示す処理を終了する。これによりデータ送受信部59は、各軸座標値取得要求をロボット制御装置6へ送信する。
【0051】
ステップST7では、座標値管理部55は、ロボット用プログラムに基づく指令がロボット座標系の座標形式を直交座標形式に切り替える座標形式切替指令(すなわち、Gコード“G68.9”)であるか否かを判定する。座標値管理部55は、ステップST7における判定結果がNOである場合、ステップST8に移る。
【0052】
座標値管理部55は、ステップST7における判定結果がYESである場合、座標値メモリ57のロボット座標値格納領域57aに格納されている現在座標値を更新する必要があると判断し、上述のステップST5に移る。これによりデータ送受信部59は、直交座標値取得要求をロボット制御装置6へ送信する。
【0053】
ステップST8では、座標値管理部55は、ロボット用プログラムに基づく指令がロボット座標系の座標形式を各軸座標形式に切り替える座標形式切替指令(すなわち、Gコード“G68.8”)であるか否かを判定する。座標値管理部55は、ステップST8における判定結果がNOである場合、
図3に示す処理を終了する。
【0054】
座標値管理部55は、ステップST8における判定結果がYESである場合、座標値メモリ57のロボット座標値格納領域57aに格納されている現在座標値を更新する必要があると判断し、上述のステップST6に移る。これによりデータ送受信部59は、各軸座標値取得要求をロボット制御装置6へ送信する。
【0055】
座標値管理部55は、以上の手順によって座標値メモリ57に格納されている現在座標値の更新の要否を判定し、現在座標値を更新する必要があると判断した場合には、走行軸座標値取得要求、直交座標値取得要求、及び各軸座標値取得要求をロボット制御装置6へ送信する。後に説明するように、ロボット制御装置6は、これら座標値取得要求を受信したことに応じて移動装置4の走行軸の座標値やロボット3の制御軸の座標値を取得し、これら座標値を数値制御装置5へ送信する。
【0056】
図4は、座標値更新処理の具体的な手順を示すフローチャートである。座標値管理部55は、上述の手順によってロボット制御装置6へ座標値取得要求を送信した後、
図4に示す座標値更新処理を実行する。
【0057】
ステップST11では、座標値管理部55は、ロボット制御装置6から座標値を受信したか否かを判定する。ステップST11では、座標値管理部55は、先に送信した座標値取得要求に基づいてロボット制御装置6から送信される座標値を受信するまで待機し、座標値を受信した場合(ステップST11の判定結果がYESである場合)、ステップST12に移る。ステップST12では、座標値管理部55は、ロボット制御装置6から受信した座標値は、走行軸の座標値であるか否かを判定する。
【0058】
座標値管理部55は、ステップST12における判定結果がYESである場合、すなわち受信した座標値が移動装置4の走行軸の座標値である場合、受信した座標値を走行軸基準座標値として取得し、ステップST13に移る。ステップST13では、座標値管理部55は、取得した走行軸基準座標値によって座標値メモリ57の走行軸座標値格納領域57bに格納されている現在座標値を更新し、
図4に示す処理を終了する。
【0059】
座標値管理部55は、ステップST12における判定結果がNOである場合、すなわち受信した座標値がロボット3の制御軸の座標値である場合、受信した座標値をロボット基準座標値として取得し、ステップST14に移る。ステップST14では、座標値管理部55は、取得したロボット基準座標値によって座標値メモリ57のロボット座標値格納領域57aに格納されている現在座標値を更新し、
図4に示す処理を終了する。
【0060】
座標値管理部55は、
図4を参照して説明した手順によってこのロボット制御装置6から送信される座標値を基準座標値として取得し、この基準座標値によって座標値メモリ57に格納されている現在座標値を更新する。
【0061】
図2に戻り、指令生成部56は、座標値メモリ57に格納されている現在座標値と入力解析部54から送信されるロボット用プログラムの解析結果とに基づいて、ロボット3の制御軸を移動させるためのロボット指令及び移動装置4の走行軸を移動させるための走行軸指令を生成し、生成したロボット指令や走行軸指令をデータ送受信部59に書き込み、これら指令をロボット制御装置6へ送信する。
【0062】
より具体的には、指令生成部56は、座標系がロボット座標系に設定されている状態でありかつロボット用プログラムに基づく指令種別が座標値の変化を伴うものである場合(具体的には、例えばGコードが、位置決め(早送り)に相当する“G00”である場合や、直線保管に相当する“G01”である場合等)、以下の手順によってロボット指令を生成する。この場合、指令生成部56は、座標値メモリ57のロボット座標値格納領域57aに格納されている現在座標値をロボット3の制御軸の始点とした場合におけるロボット3の制御軸の終点及び速度を指定座標形式の下でロボット用プログラムに基づいて算出し、これら指定座標形式、終点、及び速度に関する情報を含むロボット指令を生成し、データ送受信部59に書き込む。また指令生成部56は、以上のようにしてロボット3の制御軸の終点の座標値を算出した後、座標値メモリ57のロボット座標値格納領域57aに格納されている現在座標値を、ロボット用プログラムに基づいて算出した終点座標値によって更新する。
【0063】
また指令生成部56は、座標系が走行軸座標系に設定されている状態でありかつロボット用プログラムに基づく指令種別が座標値の変化を伴うものである場合(具体的には、例えばGコードが、位置決め(早送り)に相当する“G00”である場合や、直線保管に相当する“G01”である場合等)、以下の手順によって走行軸指令を生成する。この場合、指令生成部56は、座標値メモリ57の走行軸座標値格納領域57bに格納されている現在座標値を移動装置4の走行軸の始点とした場合における移動装置4の走行軸の終点及び速度をロボット用プログラムに基づいて算出し、これら終点、及び速度に関する情報を含む走行軸指令を生成し、データ送受信部59に書き込む。また指令生成部56は、以上のようにして移動装置4の走行軸の終点の座標値を算出した後、座標値メモリ57の走行軸座標値格納領域57bに格納されている現在座標値を、ロボット用プログラムに基づいて算出した終点座標値によって更新する。
【0064】
データ送受信部59は、指令生成部56によってロボット指令や走行軸指令が書き込まれると、これらロボット指令や走行軸指令をロボット制御装置6のデータ送受信部69へ送信する。またデータ送受信部59は、
図3を参照して説明した手順に従って座標値管理部55によって走行軸座標値取得要求、直交座標値取得要求、及び各軸座標値取得要求が書き込まれると、これら走行軸座標値取得要求、直交座標値取得要求、及び各軸座標値取得要求をロボット制御装置6のデータ送受信部69へ送信する。
【0065】
データ送受信部59は、後に説明する手順に従ってロボット制御装置6のデータ送受信部69から送信される座標値を受信すると、受信した座標値を座標値管理部55へ送信する。
【0066】
次に、
図2を参照しながらロボット制御装置6の構成について説明する。
図2に示すように、ロボット制御装置6には、上記ハードウェア構成によって、入力解析部60、座標値制御部61、ロボットプログラム生成部62、動作制御部63、及びデータ送受信部69等の各種機能が実現される。
【0067】
入力解析部60は、データ送受信部69を介して数値制御装置5から送信される指令や要求を解析し、解析結果を座標値制御部61、及びロボットプログラム生成部62へ送信する。
【0068】
より具体的には、入力解析部60は、データ送受信部69からロボット指令又は走行軸指令が入力されると、これらロボット指令や走行軸指令をロボットプログラム生成部62へ送信する。また入力解析部60は、データ送受信部69から走行軸座標値取得要求、直交座標値取得要求、及び各軸座標値取得要求が入力されると、これら座標値取得要求を座標値制御部61へ送信する。
【0069】
座標値制御部61は、入力解析部60から送信される座標値取得要求に応じて、ロボット3の現在の制御軸の座標値及び移動装置4の現在の走行軸の座標値を取得し、取得した座標値をデータ送受信部69に書き込む。
【0070】
より具体的には、座標値制御部61は、入力解析部60から走行軸座標値取得要求が入力されると、移動装置4の現在の走行軸の座標値を取得し、取得した座標値をデータ送受信部69に書き込む。座標値制御部61は、入力解析部60から直交座標値取得要求が入力されると、ロボット3の現在の制御軸の座標値を直交座標形式の下で取得し、取得した座標値をデータ送受信部69に書き込む。また座標値制御部61は、入力解析部60から各軸座標値取得要求が入力されると、ロボット3の現在の制御軸の座標値を各軸座標形式の下で取得し、取得した座標値をデータ送受信部69に書き込む。
【0071】
ロボットプログラム生成部62は、入力解析部60から送信されるロボット指令又は走行軸指令に応じたロボットプログラムを生成する。より具体的には、ロボットプログラム生成部62は、入力解析部60からロボット指令が入力されると、このロボット指令に対応するロボット命令を図示しない記憶部に格納されているロボットプログラムに追加する。またロボットプログラム生成部62は、入力解析部60から走行軸指令が入力されると、この走行軸指令に対応する走行軸命令を上記ロボットプログラムに追加する。
【0072】
動作制御部63は、ロボットプログラム生成部62によって生成されたロボットプログラムを起動するとともに、起動したロボットプログラム内に記述されたロボット命令や走行軸命令を逐次実行することによりロボット3及び移動装置4の動作を制御する。より具体的には、動作制御部63は、ロボット命令を実行することによってロボット3の各制御軸の目標位置を算出するとともに、算出した目標位置が実現するように、ロボット3の各サーボモータをフィードバック制御することによってロボット3に対するロボット制御信号を生成し、ロボット3のサーボモータへ入力する。また動作制御部63は、走行軸命令を実行することによって移動装置4の走行軸の目標位置を算出するとともに、算出した目標位置が実現するように、移動装置4のアクチュエータをフィードバック制御することによって移動装置4に対する走行軸制御信号を生成し、移動装置4のアクチュエータへ入力する。
【0073】
データ送受信部69は、数値制御装置5のデータ送受信部59から送信されるロボット指令、走行軸指令、走行軸座標値取得要求、直交座標値取得要求、及び各軸座標値取得要求を受信すると、受信した指令及び要求を入力解析部60へ送信する。またデータ送受信部69は、座標値制御部61によって上述の手順に従って座標値が書き込まれると、書き込まれた座標値を数値制御装置5のデータ送受信部59へ送信する。
【0074】
次に、以上のように構成された数値制御システム1における各種信号や情報の流れについて
図5及び
図6を参照しながら説明する。
【0075】
図5は、ロボット用プログラムの一例である。
図6は、
図5に例示するロボット用プログラムに基づいて数値制御装置5を作動させた場合における数値制御装置5とロボット制御装置6との間の信号や情報の流れを示すシーケンス図である。
【0076】
始めにシーケンス番号“N10”に示すブロックにおいて、数値制御装置5の座標値管理部55にはコマンド“G68.8”が入力される。これにより数値制御装置5のロボット制御モジュール51における座標系の指定座標形式は各軸座標形式に設定される。次にシーケンス番号“N11”~“N19”に示すブロックにおいて、数値制御装置5の指令生成部56には、座標系がロボット座標系に設定された状態で各軸座標形式に基づくコマンド“G00 J1_J2_J3_J4_J5_J6”が入力される。なおコマンド中のアンダーバーの部分には、ロボット3の制御軸の終点の座標値が入力されている。指令生成部56は、座標値メモリ57のロボット座標値格納領域57aに格納されている現在座標値と、入力されたコマンドと、に基づいて、ロボット指令を生成し、ロボット制御装置6へ送信する。ロボット制御装置6は、受信したロボット指令に基づいてロボット3の動作を制御する。
【0077】
次にシーケンス番号“N20”に示すブロックにおいて、数値制御装置5の座標値管理部55にはコマンド“G17.9”が入力される。これにより数値制御装置5のロボット制御モジュール51における座標系は、それまでのロボット座標系から走行軸座標系に切り替わる。また座標値管理部55は、このブロックにおいて座標系を切り替えたことに応じて、ロボット制御装置6の座標値制御部61へ走行軸座標値取得要求を送信する。ロボット制御装置6の座標値制御部61は、走行軸座標値取得要求を受信したことに応じて、移動装置4の現在の走行軸の座標値(Y2)を取得し、この座標値を数値制御装置5の座標値管理部55へ送信する。また数値制御装置5の座標値管理部55は、ロボット制御装置6から送信される座標値を走行軸基準座標値として取得し、この走行軸基準座標値によって座標値メモリ57の走行軸座標値格納領域57bに格納されている現在座標値を更新する。
【0078】
次にシーケンス番号“N21”に示すブロックにおいて、数値制御装置5の指令生成部56には、座標系が走行軸座標系に設定された状態で走行軸座標系に基づくコマンド“G01 Y2_F_”が入力される。なおコマンド中のアンダーバーの部分には、移動装置4の走行軸の終点の座標値や速度値が入力されている。指令生成部56は、座標値メモリ57の走行軸座標値格納領域57bに格納されている現在座標値と、入力されたコマンドと、に基づいて、走行軸指令を生成し、ロボット制御装置6へ送信する。ロボット制御装置6は、受信した走行軸指令に基づいて移動装置4の動作を制御する。
【0079】
次にシーケンス番号“N22”及び“N23”に示すブロックにおいて、数値制御装置5の座標値管理部55にはコマンド“G17.8”及び“G68.9”が入力される。これにより数値制御装置5のロボット制御モジュール51における座標系は、それまでの走行軸座標系からロボット座標系に切り替わり、指定座標形式は直交座標形式に設定される。また座標値管理部55は、これらブロックにおいて座標系及び指定座標形式を切り替えたことに応じて、ロボット制御装置6の座標値制御部61へ直交座標値取得要求を送信する。ロボット制御装置6の座標値制御部61は、直交座標値取得要求を受信したことに応じて、現在のロボット3、すなわちシーケンス番号“N21”における走行軸移動後のロボット3の制御軸の直交座標形式の下における座標値(X,Y,Z,A,B,C)を取得し、この座標値を数値制御装置5の座標値管理部55へ送信する。また数値制御装置5の座標値管理部55は、ロボット制御装置6から送信される座標値をロボット基準座標値として取得し、このロボット基準座標値によって座標値メモリ57のロボット座標値格納領域57aに格納されている現在座標値を更新する。
【0080】
次にシーケンス番号“N24”に示すブロックにおいて、数値制御装置5の指令生成部56には、座標系がロボット座標系に設定された状態で直交座標形式に基づくコマンド“G01 X_Y_Z_A_B_C_P_F_”が入力される。なおコマンド中のアンダーバーの部分には、ロボット3の制御軸の終点の座標値や速度値が入力されている。指令生成部56は、座標値メモリ57のロボット座標値格納領域57aに格納されている現在座標値と、入力されたコマンドと、に基づいて、ロボット指令を生成し、ロボット制御装置6へ送信する。ロボット制御装置6は、受信したロボット指令に基づいてロボット3の動作を制御する。
【0081】
本開示は、上記実施形態に限定されるものではなく、種々の変更及び変形が可能である。
【符号の説明】
【0082】
1…数値制御システム
2…工作機械
3…ロボット
4…移動装置
5…数値制御装置
50…工作機械制御モジュール
51…ロボット制御モジュール
52…記憶部
53…プログラム入力部
54…入力解析部
55…座標値管理部
56…指令生成部
57…座標値メモリ
57a…ロボット座標値格納領域
57b…走行軸座標値格納領域
59…データ送受信部
6…ロボット制御装置
60…入力解析部
61…座標値制御部
62…ロボットプログラム生成部
63…動作制御部
69…データ送受信部
【要約】
数値制御装置5は、数値制御プログラムに基づいて、工作機械2の動作を制御するとともに、ロボット3及びこのロボット3を移動させる移動装置4の動作を制御するロボット制御装置6に対し、ロボット3の制御軸を移動させるためのロボット指令及び移動装置4の走行軸を移動させるための走行軸指令を生成し、ロボット制御装置6へ入力する。数値制御装置5は、ロボット制御装置6において取得されるロボット3の制御軸及び移動装置4の走行軸の座標値をそれぞれロボット基準座標値及び付加軸基準座標値として取得する座標値管理部55と、数値制御プログラム、ロボット基準座標値、及び走行軸基準座標値に基づいてロボット指令及び走行軸指令を生成する指令生成部56と、を備える。