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

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

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

特許7614229数値制御システム及び産業機械の制御方法
<>
  • 特許-数値制御システム及び産業機械の制御方法 図1
  • 特許-数値制御システム及び産業機械の制御方法 図2
  • 特許-数値制御システム及び産業機械の制御方法 図3
  • 特許-数値制御システム及び産業機械の制御方法 図4
  • 特許-数値制御システム及び産業機械の制御方法 図5
  • 特許-数値制御システム及び産業機械の制御方法 図6
  • 特許-数値制御システム及び産業機械の制御方法 図7
  • 特許-数値制御システム及び産業機械の制御方法 図8
  • 特許-数値制御システム及び産業機械の制御方法 図9A
  • 特許-数値制御システム及び産業機械の制御方法 図9B
  • 特許-数値制御システム及び産業機械の制御方法 図10
  • 特許-数値制御システム及び産業機械の制御方法 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-01-06
(45)【発行日】2025-01-15
(54)【発明の名称】数値制御システム及び産業機械の制御方法
(51)【国際特許分類】
   G05B 19/414 20060101AFI20250107BHJP
   G05B 19/4155 20060101ALI20250107BHJP
【FI】
G05B19/414 R
G05B19/4155 Z
【請求項の数】 9
(21)【出願番号】P 2022569957
(86)(22)【出願日】2021-12-10
(86)【国際出願番号】 JP2021045663
(87)【国際公開番号】W WO2022131173
(87)【国際公開日】2022-06-23
【審査請求日】2023-07-11
(31)【優先権主張番号】P 2020207641
(32)【優先日】2020-12-15
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】390008235
【氏名又は名称】ファナック株式会社
(74)【代理人】
【識別番号】100106002
【弁理士】
【氏名又は名称】正林 真之
(74)【代理人】
【識別番号】100165157
【弁理士】
【氏名又は名称】芝 哲央
(74)【代理人】
【識別番号】100160794
【弁理士】
【氏名又は名称】星野 寛明
(72)【発明者】
【氏名】今西 一剛
【審査官】臼井 卓巳
(56)【参考文献】
【文献】特開2001-154717(JP,A)
【文献】国際公開第2020/144772(WO,A1)
【文献】特開平06-043919(JP,A)
【文献】特開2008-152733(JP,A)
【文献】特開2020-071533(JP,A)
【文献】中国特許出願公開第105500088(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 19/18-19/42
B25J 9/22-13/00
(57)【特許請求の範囲】
【請求項1】
工作機械の動作を制御するとともに、ロボットの動作を制御するためのロボット指令を生成する数値制御装置と、
前記数値制御装置と通信可能でありかつ前記ロボット指令に基づいて前記ロボットの動作を制御するロボット制御装置と、を備える数値制御システムにおいて、
前記ロボットに対する複数のロボット指令ブロックを含む数値制御プログラムに基づいて前記ロボット指令ブロック毎に前記ロボット指令を生成するロボット指令生成部と、
プログラム起動指令を生成するロボットプログラム起動指令部と、
指定ブロック範囲に属する複数の前記ロボット指令ブロックに基づいて生成された複数の前記ロボット指令をロボット指令群として予め一括して前記数値制御装置から前記ロボット制御装置へ送信した後、前記プログラム起動指令を前記数値制御装置から前記ロボット制御装置へ送信する一括処理と、1つの前記ロボット指令ブロック毎に前記ロボット指令及び前記プログラム起動指令を前記数値制御装置から前記ロボット制御装置へ送信する逐次処理と、で切り替え可能な第1通信部と、
前記ロボット指令及び前記プログラム起動指令を受信する第2通信部と、
前記第2通信部によって受信された前記ロボット指令に基づいてロボットプログラムを生成するロボットプログラム生成部と、
前記ロボットプログラム生成部によって前記ロボット指令群に基づく前記ロボットプログラムが生成された後、前記第2通信部によって前記プログラム起動指令を受信したことに応じて前記ロボットプログラムを起動し、当該ロボットプログラムに基づいて前記ロボットの動作を制御する動作制御部と、を備える、数値制御システム。
【請求項2】
前記第1通信部及び前記第2通信部は、
前記第1通信部が前記ロボット指令群の送信を開始する際に第1ハンドシェイク処理を実行し、
前記第2通信部が前記ロボット指令群の受信を完了した際に第2ハンドシェイク処理を実行し、
前記ロボットプログラム生成部が前記ロボット指令群に基づく前記ロボットプログラムの生成が完了した際に第3ハンドシェイク処理を実行する、請求項1に記載の数値制御システム。
【請求項3】
前記第1通信部は、前記第3ハンドシェイク処理を実行した後に前記プログラム起動指令を前記第2通信部へ送信する、請求項2に記載の数値制御システム。
【請求項4】
前記指定ブロック範囲は、前記数値制御プログラムに基づいて定められる、請求項1から3の何れかに記載の数値制御システム。
【請求項5】
前記数値制御装置は、複数の工作機械指令ブロックを含む工作機械用の数値制御プログラムに基づいて前記工作機械の動作を制御し、
前記ロボット指令生成部、前記ロボットプログラム起動指令部、並びに前記第1通信部は、前記工作機械用の数値制御プログラムの停止中に、前記ロボット指令の生成、前記プログラム起動指令の生成、並びに前記ロボット指令群及び前記プログラム起動指令の送信を実行する、請求項1から4の何れかに記載の数値制御システム。
【請求項6】
前記数値制御装置は、複数の工作機械指令ブロックを含む工作機械用の数値制御プログラムに基づいて前記工作機械の動作を制御し、
前記ロボット指令生成部、前記ロボットプログラム起動指令部、並びに前記第1通信部は、前記工作機械の軸移動の停止中に、前記ロボット指令の生成、前記プログラム起動指令の生成、並びに前記ロボット指令群及び前記プログラム起動指令の送信を実行する、請求項1から4の何れかに記載の数値制御システム。
【請求項7】
前記数値制御装置は、前記ロボット指令生成部、前記ロボットプログラム起動指令部、及び前記第1通信部を備え、
前記ロボット制御装置は、前記第2通信部、前記ロボットプログラム生成部、及び前記動作制御部を備える、請求項1から6の何れかに記載の数値制御システム。
【請求項8】
前記数値制御装置及び前記ロボット制御装置と通信可能に接続された外部演算装置をさらに備え、
前記外部演算装置は、前記ロボット指令生成部及び前記ロボットプログラム生成部を備える、請求項1から6の何れかに記載の数値制御システム。
【請求項9】
工作機械の動作を制御する数値制御装置と、当該数値制御装置と通信可能でありかつロボットの動作を制御するロボット制御装置と、を備える数値制御システムを用いて前記工作機械及び前記ロボットの動作を制御する産業機械の制御方法において、
前記数値制御装置が、前記ロボットに対する複数のロボット指令ブロックを含む数値制御プログラムに基づいて前記ロボット指令ブロック毎にロボットの動作を制御するためのロボット指令を生成する工程と、
前記数値制御装置が、プログラム起動指令を生成する工程と、
前記数値制御装置が、指定ブロック範囲に属する複数の前記ロボット指令ブロックに基づいて生成された複数の前記ロボット指令をロボット指令群として予め一括して前記ロボット制御装置へ送信する一括処理と、1つの前記ロボット指令ブロック毎に前記ロボット指令を前記ロボット制御装置へ送信する逐次処理と、の何れかを実行する工程と、
前記ロボット制御装置が、前記ロボット指令群又は1つの前記ロボット指令を受信する工程と、
前記ロボット制御装置が、前記ロボット指令群に属する複数又は1つの前記ロボット指令に基づいてロボットプログラムを生成する工程と、
前記ロボット制御装置において前記ロボットプログラムが生成された後、前記数値制御装置が、前記ロボット制御装置へプログラム起動指令を送信する工程と、
前記ロボット制御装置が、前記プログラム起動指令を受信したことに応じて、前記ロボットプログラムを起動し、当該ロボットプログラムに基づいて前記ロボットの動作を制御する工程と、を備える、産業機械の制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、数値制御システム及び産業機械の制御方法に関する。
【背景技術】
【0002】
近年、加工現場の自動化を促進するため、ワークを加工する工作機械の動作とこの工作機械の近傍に設けられたロボットの動作とを連動して制御する数値制御システムが望まれている(例えば、特許文献1参照)。
【0003】
一般的に、工作機械を制御するための数値制御プログラムとロボットを制御するためのロボットプログラムとは、プログラム言語が異なる。このため工作機械の動作とロボットの動作とを連動させるためには、オペレータは数値制御プログラムとロボットプログラムとの両方に習熟する必要がある。
【0004】
特許文献1には、数値制御プログラムによって工作機械とロボットとの両方を制御する数値制御装置が示されている。より具体的には、特許文献1に示された数値制御システムでは、数値制御装置において数値制御プログラムに従ってロボット指令を生成し、ロボット制御装置において上記ロボット指令に基づいてロボットプログラムを生成し、このロボットプログラムに従ってロボットの動作を制御する。特許文献1に示された数値制御システムによれば、数値制御プログラムに慣れ親しんだユーザであれば、ロボットプログラムを習熟することなくロボットも制御できる。
【先行技術文献】
【特許文献】
【0005】
【文献】特許第6647472号
【発明の概要】
【発明が解決しようとする課題】
【0006】
図11は、従来の数値制御システムにおいてロボットの動作を制御する際における、数値制御装置及びロボット制御装置で実行される各種処理の手順を示すタイムチャートの一例である。
【0007】
始めに時刻t0~t1では、数値制御装置において、予め作成された数値制御プログラムに含まれる1つの指令ブロックを読み出し、解析する。次に時刻t1~t2では、数値制御装置及びロボット制御装置は、ロボット指令の転送を開始するための第1ハンドシェイク処理を実行する。次に時刻t2~t3では、数値制御装置は時刻t0~t1における指令ブロックの解析結果に応じたロボット指令を生成するとともに、生成したロボット指令をロボット制御装置へ転送する。次に時刻t3~t4では、数値制御装置及びロボット制御装置は、ロボット指令の転送を終了するための第2ハンドシェイク処理を実行する。
【0008】
またロボット制御装置は、時刻t4~t5の間において、時刻t3~t4で受信したロボット指令を解析し、その後時刻t5~t6の間において、ロボット指令の解析結果に応じたロボットプログラムを生成する。次に時刻t6~t7の間において、数値制御装置及びロボット制御装置は、ロボット制御装置側におけるロボットプログラムの生成を終了するための第3ハンドシェイク処理を実行する。これによりロボット指令に応じたロボットプログラムの生成が終了したことを数値制御装置側で確認することができる。
【0009】
時刻t7~t8の間において、数値制御装置は、事前に送信したロボット指令に基づいて作成されたロボットプログラムをロボット制御装置において起動するためのロボットプログラム起動指令をロボット制御装置へ送信する。その後時刻t8以降において、ロボット制御装置は、起動されたロボットプログラムに基づいてロボットの動作を制御し、数値制御装置は、ロボット制御装置におけるロボットプログラムの実行が完了したか否かを確認する。
【0010】
以上のように従来の数値制御システムでは、数値制御プログラムに記載された1つの指令ブロックに基づいてロボットの動作を制御する度に、少なくとも3回のハンドシェイク処理を実行する必要がある。このため従来の数値制御システムでは、数値制御プログラムに含まれる指令ブロックの数が増加するほど、ハンドシェイク処理の実行回数も増加してしまうため、その分、通信処理にかかる時間が長くなり、ひいてはロボット制御のサイクルタイムも長くなってしまうおそれがある。
【0011】
本開示は、数値制御装置とロボット制御装置との間の通信処理にかかる時間を短くし、ひいてはロボット制御のサイクルタイムも短くできる数値制御システム及び産業機械の制御方法を提供することを目的とする。
【課題を解決するための手段】
【0012】
本開示の一態様は、工作機械の動作を制御するとともに、ロボットの動作を制御するためのロボット指令を生成する数値制御装置と、前記数値制御装置と通信可能でありかつ前記ロボット指令に基づいて前記ロボットの動作を制御するロボット制御装置と、を備える数値制御システムにおいて、前記ロボットに対する複数のロボット指令ブロックを含む数値制御プログラムに基づいて前記ロボット指令ブロック毎に前記ロボット指令を生成するロボット指令生成部と、プログラム起動指令を生成するロボットプログラム起動指令部と、指定ブロック範囲に属する複数の前記ロボット指令ブロックに基づいて生成された複数の前記ロボット指令をロボット指令群として予め一括して前記数値制御装置から前記ロボット制御装置へ送信した後、前記プログラム起動指令を前記数値制御装置から前記ロボット制御装置へ送信する第1通信部と、前記ロボット指令及び前記プログラム起動指令を受信する第2通信部と、前記第2通信部によって受信された前記ロボット指令に基づいてロボットプログラムを生成するロボットプログラム生成部と、前記ロボットプログラム生成部によって前記ロボット指令群に基づく前記ロボットプログラムが生成された後、前記第2通信部によって前記プログラム起動指令を受信したことに応じて前記ロボットプログラムを起動し、当該ロボットプログラムに基づいて前記ロボットの動作を制御する動作制御部と、を備える、数値制御システムを提供する。
【0013】
本開示の一態様は、工作機械の動作を制御する数値制御装置と、当該数値制御装置と通信可能でありかつロボットの動作を制御するロボット制御装置と、を備える数値制御システムを用いて前記工作機械及び前記ロボットの動作を制御する産業機械の制御方法において、前記数値制御装置が、前記ロボットに対する複数のロボット指令ブロックを含む数値制御プログラムに基づいて前記ロボット指令ブロック毎にロボットの動作を制御するためのロボット指令を生成する工程と、前記数値制御装置が、指定ブロック範囲に属する複数の前記ロボット指令ブロックに基づいて生成された複数の前記ロボット指令をロボット指令群として予め一括して前記ロボット制御装置へ送信する工程と、前記ロボット制御装置が、前記ロボット指令群を受信し、当該ロボット指令群に属する複数の前記ロボット指令に基づいてロボットプログラムを生成する工程と、前記ロボット制御装置において前記ロボット指令群に基づく前記ロボットプログラムが生成された後、前記数値制御装置が、前記ロボット制御装置へプログラム起動指令を送信する工程と、前記ロボット制御装置が、前記プログラム起動指令を受信したことに応じて、前記ロボットプログラムを起動し、当該ロボットプログラムに基づいて前記ロボットの動作を制御する工程と、を備える産業機械の制御方法を提供する。
【発明の効果】
【0014】
本開示の一態様において、ロボット指令生成部は、ロボットに対する複数のロボット指令ブロックを含む数値制御プログラムに基づいてロボット指令ブロック毎にロボット指令を生成し、第1通信部は、指定ブロック範囲に属する複数のロボット指令ブロックに基づいて生成された複数のロボット指令をロボット指令群として予め一括して数値制御装置からロボット制御装置へ送信する。換言すれば、第1通信部は、ロボット制御装置において数値制御装置から送信されるロボット指令に基づくロボットの動作の制御を開始する前(すなわち、ロボット制御装置の運転開始前)に、ロボット指令群を構成する複数のロボット指令を全てロボット制御装置へ送信する。またロボットプログラム生成部は、第2通信部によって受信されたロボット指令に基づいてロボットプログラムを生成し、動作制御部は、ロボット指令群に基づくロボットプログラムが生成された後、第2通信部によってプログラム起動指令を受信したことに応じてロボットプログラムを起動し、このロボットプログラムに基づいてロボットの動作を制御する。本開示の一態様によれば、数値制御装置側からロボット制御装置側へ、複数のロボット指令によって構成されるロボット指令群を予め一括して送信することにより、従来では1つのロボット指令ブロックに基づくロボット指令を送信する度に必要であったハンドシェイク処理の実行回数を大幅に削減できるので、その分、数値制御装置とロボット制御装置との間の通信処理にかかる時間を短くし、ひいてはロボット制御のサイクルタイムも短くすることができる。
【図面の簡単な説明】
【0015】
図1】本開示の第1実施形態に係る数値制御システムの概略図である。
図2】数値制御装置及びロボット制御装置の機能ブロック図である。
図3】工作機械用の数値制御プログラム及びロボット用の数値制御プログラムのメインプログラムの一例を示す図である。
図4】ロボット用の数値制御プログラムのサブプログラムの一例を示す図である。
図5】数値制御装置とロボット制御装置との間の信号及び情報の流れ、数値制御装置において実行される処理、並びにロボット制御装置において実行される処理を示すシーケンス図である。
図6】一括処理によってロボット指令群及びロボットプログラム起動指令を送信する際におけるロボット制御モジュール及びロボット制御装置で実行される各種処理の手順を示すタイムチャートの一例である。
図7】本開示の第2実施形態に係る数値制御システムの数値制御装置及びロボット制御装置の機能ブロック図である。
図8】数値制御装置によって読み込まれる数値制御プログラムのメインプログラムの一例を示す図である。
図9A】数値制御装置によって読み込まれるサブプログラムの一例を示す図である。
図9B】数値制御装置によって読み込まれるサブプログラムの一例を示す図である。
図10】数値制御装置とロボット制御装置との間の信号及び情報の流れ、数値制御装置において実行される処理、並びにロボット制御装置において実行される処理を示すシーケンス図である。
図11】従来の数値制御システムにおいてロボットの動作を制御する際における、数値制御装置及びロボット制御装置で実行される各種処理の手順を示すタイムチャートである。
【発明を実施するための形態】
【0016】
<第1実施形態>
以下、図面を参照して、本開示の第1実施形態に係る数値制御システムについて説明する。
【0017】
図1は、本実施形態に係る数値制御システム1の概略図である。
【0018】
数値制御システム1は、工作機械2と、この工作機械2の動作を制御する数値制御装置(CNC)5と、工作機械2の近傍に設けられたロボット3と、数値制御装置5と通信可能に接続されたロボット制御装置6と、を備える。数値制御装置5は、所定の数値制御プログラムに基づいて、工作機械2の動作を制御するとともに、ロボット3の動作を制御するためのロボット制御装置6に対する指令を生成し、ロボット制御装置6へ送信する。ロボット制御装置6は、数値制御装置5から送信される指令に応じてロボット3の動作を制御する。
【0019】
工作機械2は、数値制御装置5から送信される工作機械制御信号に応じて図示しないワークを加工する。ここで工作機械2は、例えば、旋盤、ボール盤、フライス盤、研削盤、レーザ加工機、及び射出成形機等であるが、これに限らない。
【0020】
ロボット3は、ロボット制御装置6による制御下において動作し、例えば工作機械2によって加工されるワークに対し所定の作業を行う。ロボット3は、例えば多関節ロボットであり、そのアーム先端部31にはワークを把持したり、加工したり、検査したりするためのツール32が取り付けられている。以下では、ロボット3は、6軸の多関節ロボットとした場合について説明するが、これに限らない。また以下では、ロボット3は、6軸の多関節ロボットとした場合について説明するが、軸数はこれに限らない。
【0021】
数値制御装置5及びロボット制御装置6は、それぞれCPU(Central Processing Unit)等の演算処理手段、各種プログラムを格納したHDD(Hard Disk Drive)やSSD(Solid State Drive)等の補助記憶手段、演算処理手段がプログラムを実行する上で一時的に必要とされるデータを格納するためのRAM(Random Access Memory)といった主記憶手段、オペレータが各種操作を行うキーボードといった操作手段、及びオペレータに各種情報を表示するディスプレイといった表示手段等のハードウェアによって構成されるコンピュータである。これらロボット制御装置6及び数値制御装置5は、例えばイーサネット(登録商標)によって相互に各種信号を送受信することが可能となっている。
【0022】
図2は、数値制御装置5及びロボット制御装置6の機能ブロック図である。
【0023】
数値制御装置5は、以下で説明する手順に従って、ロボット3やツール32の動作を制御するための各種指令を生成し、生成した指令をロボット制御装置6へ送信する。ロボット制御装置6は、数値制御装置5から送信される指令に基づいて、以下で説明する手順に従ってロボット3の動作を制御するためのロボット制御信号を生成したり、ツール32の動作を制御するためのI/O信号を生成したりし、生成したロボット制御信号やI/O信号をロボット3に入力する。これによりロボット制御装置6は、ロボット3やツール32の動作を制御する。
【0024】
先ず、数値制御装置5の詳細な構成について説明する。図2に示すように数値制御装置5には、上記ハードウェア構成によって、工作機械2の制御系統としての工作機械制御モジュール50、ロボット3の制御系統としてのロボット制御モジュール51、及び記憶部52等の各種機能が実現される。
【0025】
記憶部52には、例えばオペレータによる操作に基づいて作成された複数の数値制御プログラムが格納されている。より具体的には、記憶部52には、主として工作機械2に対する複数の指令ブロック(以下、「工作機械指令ブロック」ともいう)によって構成される工作機械用の数値制御プログラムや、ロボット3に対する複数の指令ブロック(以下、「ロボット指令ブロック」ともいう)によって構成されるロボット用の数値制御プログラム等が格納されている。これら工作機械用の数値制御プログラム及びロボット用の数値制御プログラムは、共通のプログラミング言語(例えば、GコードやMコード等)で記述されている。
【0026】
工作機械用の数値制御プログラムは、工作機械2上又は工作機械2の近傍に定められた基準点を原点とする第1座標系としての工作機械座標系に基づいて記述されている。すなわち工作機械用の数値制御プログラムにおいて、工作機械2の制御点の位置及び姿勢は、工作機械座標系における座標値によって記述される。
【0027】
ロボット用の数値制御プログラムは、工作機械座標系とは異なる第2座標系としてのロボット座標系に基づいて記述されている。すなわちロボット用の数値制御プログラムにおいて、ロボット3の制御点(例えば、ロボット3のアーム先端部31)の位置及び姿勢は、工作機械座標系とは異なるロボット座標系における座標値によって記述される。このロボット座標系は、ロボット3上又はロボット3の近傍に定められた基準点を原点とする座標系である。なお以下では、ロボット座標系は工作機械座標系と異なる場合について説明するが、本開示はこれに限らない。ロボット座標系は工作機械座標系と一致させてもよい。換言すれば、ロボット座標系の原点や座標軸方向を工作機械座標系の原点や座標軸方向と一致させてもよい。
【0028】
またこのロボット用の数値制御プログラムにおいてロボット座標系は、制御軸が異なる2以上の座標形式の間で切替可能となっている。より具体的には、ロボット用の数値制御プログラムにおいてロボット3の制御点の位置及び姿勢は、直交座標形式又は各軸座標形式によって指定可能である。
【0029】
各軸座標形式では、ロボット3の制御点の位置及び姿勢は、ロボット3の6つの関節の回転角度値(J1,J2,J3,J4,J5,J6)を成分とした計6つの実数の座標値によって指定される。
【0030】
直交座標形式では、ロボット3の制御点の位置及び姿勢は、3つの直交座標軸に沿った3つの座標値(X,Y,Z)と、各直交座標軸周りの3つの回転角度値(A,B,C)と、を成分とした計6つの実数の座標値によって指定される。
【0031】
ここで各軸座標形式の下では、ロボット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)によって表される。
【0032】
ロボット用の数値制御プログラムでは、Gコード“G68.8”及び“G68.9”によって座標形式を設定することが可能となっている。より具体的には、Gコード“G68.8”を入力することにより、座標形式は各軸座標形式に設定され、Gコード“G68.9”を入力することにより、座標形式は直交座標形式に設定される。これら座標形式を設定するためのGコード“G68.8”及び“G68.9”は、モーダルである。従って座標形式は、これらGコードによって座標形式を各軸座標形式又は直交座標形式に設定した後は、再びこれらGコードによって座標形式が変更されるまで維持される。なお本実施形態では、ロボット用の数値制御プログラムにこれら座標形式を設定するためのGコードが記載されていない場合、座標形式は自動的に直交座標形式に設定されるものとするが、これに限らない。
【0033】
工作機械制御モジュール50は、工作機械用の数値制御プログラムに従って、主として工作機械2の動作を制御するための工作機械制御信号を生成し、工作機械2の図示しないアクチュエータへ入力する。より具体的には、工作機械制御モジュール50は、記憶部52に格納された工作機械用の数値制御プログラムを読み出し、当該数値制御プログラムに基づく指令種別を解析することによって工作機械制御信号を生成する。工作機械2は、工作機械制御モジュール50から送信される工作機械制御信号に応じて動作し、図示しないワークを加工する。
【0034】
ロボット制御モジュール51は、ロボット用の数値制御プログラムに従って、ロボット3及びツール32の動作を制御するための各種指令を生成し、ロボット制御装置6へ送信する。より具体的には、ロボット制御モジュール51は、プログラム入力部53と、入力解析部54と、ロボット指令生成部55と、ロボットプログラム起動指令部56と、第1通信部としてのデータ送受信部59と、を備える。
【0035】
プログラム入力部53は、複数のロボット指令ブロックによって構成されるロボット用の数値制御プログラムを記憶部52から読み出し、これを逐次入力解析部54へ入力する。
【0036】
入力解析部54は、プログラム入力部53から入力されるロボット用の数値制御プログラムに基づく指令種別をロボット指令ブロック毎に解析し、その解析結果をロボット指令ブロック毎にロボット指令生成部55及びロボットプログラム起動指令部56へ送信する。
【0037】
ロボット指令生成部55は、入力解析部54から送信されるロボット指令ブロック毎の解析結果に基づいて、ロボット指令ブロック毎にロボット指令を生成し、生成したロボット指令をデータ送受信部59に書き込む。
【0038】
ロボットプログラム起動指令部56は、ロボット指令生成部55によって生成されるロボット指令に基づいてロボット制御装置6側で生成されるロボットプログラムを、ロボット制御装置6側で起動させるためのトリガとなるロボットプログラム起動指令を所定のタイミングで生成し、生成したロボットプログラム起動指令をデータ送受信部59に書き込む。
【0039】
データ送受信部59は、ロボット制御装置6のデータ送受信部69と、ハンドシェイク通信の下で相互に各種指令やデータを送受信する。データ送受信部59は、ロボット指令生成部55やロボットプログラム起動指令部56によって上述のようにロボット指令やロボットプログラム起動指令が書き込まれると、図11を参照して説明した第1~第3ハンドシェイク処理を含む所定の通信処理を実行し、これらロボット指令やロボットプログラム起動指令をロボット制御装置6のデータ送受信部69へ送信する。
【0040】
後に説明するように、データ送受信部59からデータ送受信部69へロボット指令を送信すると、ロボット制御装置6側では、受信したロボット指令に応じたロボットプログラムを生成する。またロボット指令を送信した後、データ送受信部59からデータ送受信部69へロボットプログラム起動指令を送信すると、ロボット制御装置6側では、以上のような手順によって生成したロボットプログラムを起動し、このロボットプログラムに基づいてロボット3及びツール32の動作を制御する。
【0041】
ここでデータ送受信部59におけるロボット指令及びロボットプログラム起動指令の送信処理方式は、逐次処理と一括処理とで切り替えることが可能となっている。
【0042】
逐次処理の下では、データ送受信部59は、図11を参照して説明した手順に従って通信処理を実行し、ロボット指令及びロボットプログラム起動指令をデータ送受信部69へ送信する。すなわち逐次処理の下では、データ送受信部59は、ロボット指令生成部55によって1つのロボット指令が書き込まれる度に、このロボット指令をデータ送受信部69へ送信した後、ロボットプログラム起動指令をデータ送受信部69へ送信する。すなわち逐次処理の下では、データ送受信部59は、1つのロボット指令ブロック毎に1つのロボット指令及びロボットプログラム起動指令をデータ送受信部69へ送信する。
【0043】
これに対し一括処理の下では、データ送受信部59は、ロボット用の数値制御プログラムにおいて定められた指定ブロック範囲に属する複数のロボット指令ブロックに基づいて生成された複数のロボット指令を予め一括してロボット指令群としてデータ送受信部69へ送信した後、このロボット指令群に基づいてロボット制御装置6側で生成されるロボットプログラムをロボット制御装置6側で起動させるためロボットプログラム起動指令をデータ送受信部69へ送信する。換言すれば、データ送受信部59は、ロボット制御装置6において数値制御装置5から送信されるロボット指令に基づくロボット3の動作の制御を開始する前(すなわち、ロボット制御装置6の運転開始前)に、ロボット指令群を構成する複数のロボット指令を全てロボット制御装置6へ送信する。ここで一括処理に係る指定ブロック範囲は、ロボット用の数値制御プログラムに基づいて、所定の一括処理指定コマンド(例えば、後述のMコード“M300”)によって定めることが可能となっている。なお本実施形態では、指定ブロック範囲を一括処理指定コマンドによってサブプログラム単位で指定する場合、すなわちサブプログラムに含まれる全てのロボット指令ブロックを指定ブロック範囲とする場合について説明するが、本開示はこれに限らない。指定ブロック範囲は、一括処理指令コマンドによってロボット指令ブロック単位で直接指定することもできる。
【0044】
以上のように逐次処理の下でデータ送受信部59からデータ送受信部69へロボット指令及びロボットプログラム起動指令を送信する場合、1つのロボット指令ブロック毎に第1~第3ハンドシェイク処理を1回ずつ実行する必要がある。このため複数のロボット指令ブロックを逐次処理の下で処理しようとすると、ロボット指令ブロックの数に応じて第1~第3ハンドシェイク処理の実行回数も増えてしまい、ひいてはロボット制御のサイクルタイムも長くなってしまう。
【0045】
これに対し一括処理の下でデータ送受信部59からデータ送受信部69へロボット指令及びロボットプログラム起動指令を送信する場合、複数のロボット指令を一括してロボット指令群としてデータ送受信部59からデータ送受信部69へ送信できるので、逐次処理と比較して第1~第3ハンドシェイク処理の実行回数を減らすことができ、ひいてはロボット制御のサイクルタイムも短くすることができる。
【0046】
なお以上のように一括処理の下でデータ送受信部59からデータ送受信部69へロボット指令及びロボットプログラム起動指令を送信する場合、入力解析部54におけるロボット指令ブロックの解析、ロボット指令生成部55におけるロボット指令の生成、ロボットプログラム起動指令部56におけるロボットプログラム起動指令の生成、並びにデータ送受信部59におけるロボット指令群及びロボットプログラム起動指令の送信は、工作機械制御モジュール50における工作機械用の数値制御プログラムの実行停止中、又は工作機械2の軸移動の停止中に実行することが好ましい。
【0047】
次に、ロボット制御装置6の構成について詳細に説明する。図2に示すように、ロボット制御装置6には、上記ハードウェア構成によって、入力解析部60、ロボットプログラム生成部61、動作制御部65、及び第2通信部としてのデータ送受信部69等の各種機能が実現される。
【0048】
入力解析部60は、データ送受信部69を介して数値制御装置5から送信される指令を解析し、解析結果をロボットプログラム生成部61及び動作制御部65へ送信する。
【0049】
より具体的には、入力解析部60は、データ送受信部69からロボット指令又はこのロボット指令を複数まとめたロボット指令群が入力されると、これらロボット指令やロボット指令群をロボットプログラム生成部61へ送信する。ロボットプログラム生成部61は、入力解析部60からロボット指令又はロボット指令群が入力されると、後に説明する手順に従ってこれらロボット指令又はロボット指令群に応じたロボットプログラムを生成する。
【0050】
入力解析部60は、データ送受信部69からロボットプログラム起動指令が入力されると、このロボットプログラム起動指令を動作制御部65へ送信する。動作制御部65は、入力解析部60からロボットプログラム起動指令が入力されると、後に説明する手順に従って、上記ロボットプログラム生成部61によって生成されたロボットプログラムを起動し、このロボットプログラムに従ってロボット3及びツール32の動作を制御する。
【0051】
データ送受信部69は、数値制御装置5のデータ送受信部59と、ハンドシェイク通信の下で相互に各種指令やデータを送受信する。データ送受信部59及びデータ送受信部69は、以下の手順に従って第1~第3ハンドシェイク処理を実行することにより、ロボット指令、ロボット指令群、及びロボットプログラム起動指令を送受信する。
【0052】
より具体的には、データ送受信部59及びデータ送受信部69は、第1ハンドシェイク処理を実行した後、データ送受信部59からデータ送受信部69へのロボット指令又はロボット指令群の送信を開始する。またデータ送受信部59及びデータ送受信部69は、データ送受信部59からデータ送受信部69へのロボット指令又はロボット指令群の送信が完了した後、第2ハンドシェイク処理を実行する。その後データ送受信部59及びデータ送受信部69は、ロボットプログラム生成部61が以上の手順に従って受信したロボット指令又はロボット指令群に基づくロボットプログラムの生成が完了した後、第3ハンドシェイク処理を実行する。この第3ハンドシェイク処理を実行することにより、ロボット制御装置6側においてロボットプログラムの生成が完了したことを、数値制御装置5側において把握することができる。従ってデータ送受信部59は、この第3ハンドシェイク処理を実行した後に、ロボットプログラム起動指令をデータ送受信部69へ送信する。
【0053】
データ送受信部69は、以上のようなハンドシェイク通信の下でデータ送受信部59から送信されるロボット指令、ロボット指令群、及びロボットプログラム起動指令を受信すると、これら指令を逐次入力解析部60へ入力する。また入力解析部60は、上述のようにロボット指令又はロボット指令群についてはロボットプログラム生成部61へ送信し、ロボットプログラム起動指令については動作制御部65へ送信する。
【0054】
ロボットプログラム生成部61は、ロボット命令生成部612と、プログラム管理部613と、記憶部614と、を備え、これらを用いることによって、入力解析部60から送信されるロボット指令又はロボット指令群に応じたロボットプログラムを生成する。
【0055】
ロボット命令生成部612は、入力解析部60からロボット指令が入力されると、入力されたロボット指令に対応するロボット命令をプログラム管理部613へ通知する。またロボット命令生成部612は、入力解析部60からロボット指令群が入力されると、入力されたロボット指令群に含まれる複数のロボット指令に対応する複数のロボット命令を順次プログラム管理部613へ通知する。
【0056】
プログラム管理部613は、ロボット命令生成部612からロボット命令が入力されると、記憶部614に格納されているロボットプログラムに入力されたロボット命令を追加する。これにより記憶部614には、数値制御装置5から送信されるロボット指令又はロボット指令群に応じたロボットプログラムが生成される。
【0057】
動作制御部65は、プログラム起動部651と、軌跡制御部652と、キネマティクス制御部653と、サーボ制御部654と、を備え、これらを用いることによって、ロボット3の動作を制御する。
【0058】
プログラム起動部651は、入力解析部60からロボットプログラム起動指令が入力されると、このロボットプログラム起動指令に先立って数値制御装置5から送信されたロボット指令又はロボット指令群に基づいてロボットプログラム生成部61によって生成されたロボットプログラムを起動するべく、プログラム管理部613へプログラム起動通知を送信する。プログラム管理部613は、このプログラム起動通知を受信したことに応じて、記憶部614に格納されたロボットプログラムを起動する。プログラム管理部613は、起動したロボットプログラム内に記述されたロボット命令を逐次実行することにより、ロボット指令又はロボット指令群に応じたロボット3の動作計画やツール32の動作計画を作成する。またプログラム管理部613は、生成したロボット3の動作計画は軌跡制御部652へ送信し、生成したツール32の動作計画はサーボ制御部654へ送信する。
【0059】
軌跡制御部652は、プログラム管理部613からロボット3の動作計画を受信すると、この動作計画に基づいて補間処理を実行することにより、ロボット3の制御点の動作軌跡を算出し、キネマティクス制御部653へ入力する。キネマティクス制御部653は、軌跡制御部652によって算出された動作軌跡に基づいてキネマティクス演算を行うことにより、ロボット3の各関節の角度を目標角度として算出し、これら目標角度をサーボ制御部654へ送信する。
【0060】
サーボ制御部654は、キネマティクス制御部653から送信される各関節の目標角度が実現するように、ロボット3の各サーボモータをフィードバック制御することによってロボット3に対するロボット制御信号を生成し、ロボット3のサーボモータへ入力する。またサーボ制御部654は、プログラム管理部613から送信されるツール32の動作計画を受信すると、この動作計画に従ってツール32を駆動するためのI/O信号を生成し、ツール32へ入力する。
【0061】
以上のようにロボット制御装置6では、数値制御装置5から送信されるロボット指令又はロボット指令群を受信すると、ロボットプログラム生成部61がこれらロボット指令又はロボット指令群に基づいてロボットプログラムを生成し、その後数値制御装置5から送信されるロボットプログラム起動指令を受信すると、動作制御部65がロボットプログラムを起動し、このロボットプログラムに基づいてロボット3やツール32の動作を制御する。
【0062】
次に、以上のように構成された数値制御システム1における各種信号や情報の流れについて、図3図6を参照しながら説明する。
【0063】
図3は、工作機械制御モジュール50によって読み込まれる工作機械用の数値制御プログラム(図3において左側に示す)、及びロボット制御モジュール51によって読み込まれるロボット用の数値制御プログラムのメインプログラム(図3において右側に示す)の一例を示す図である。
【0064】
なお以下では、ロボット制御モジュール51によって図3において右側に示すメインプログラムの実行が完了した後(すなわち、メインプログラムのシーケンス番号“N11”に記載された、プログラムエンドを示すコマンド“M30”がロボット制御モジュール51において実行された後)、工作機械制御モジュール50は、図3において左側に示す工作機械用の数値制御プログラムの読み込み、及び実行を開始する場合について説明する。すなわち以下では、ロボット制御モジュール51は、工作機械制御モジュール50における工作機械用の数値制御プログラムの実行停止中でありかつ工作機械2の軸移動の停止中に、図3において右側に示すメインプログラムを実行する場合について説明する。
【0065】
図4は、ロボット制御モジュール51によって読み込まれるロボット用の数値制御プログラムのサブプログラムの一例を示す図である。より具体的には、図4には、サブプログラム番号“2000”によって指定されるサブプログラムを例示する。
【0066】
図5は、図3に例示する数値制御プログラムに基づいて数値制御装置5を作動させた場合における数値制御装置5とロボット制御装置6との間の信号及び情報の流れ、数値制御装置5において実行される処理、並びにロボット制御装置6において実行される処理を示すシーケンス図である。
【0067】
始めにシーケンス番号“N10”に示すロボット指令ブロックにおいて、ロボット制御モジュール51の入力解析部54には、一括処理指定コマンド“M300”とともに、サブプログラム番号“2000”のサブプログラム(図4参照)を指定するコマンド“P2000”が入力される。これによりロボット制御モジュール51は、図6に示す一括処理手順に従ってロボット指令群及びロボットプログラム起動指令を送信する。
【0068】
図6は、一括処理によってロボット指令群及びロボットプログラム起動指令を送信する際におけるロボット制御モジュール51及びロボット制御装置6で実行される各種処理の手順を示すタイムチャートの一例である。
【0069】
始めに時刻t10~t11の間では、ロボット制御モジュール51のデータ送受信部59及びロボット制御装置6のデータ送受信部69は、ハンドシェイク通信の下で各種指令の送受信を開始するべく、第1ハンドシェイク処理を実行する。
【0070】
時刻t11~t13の間では、ロボット制御モジュール51のロボット指令生成部55は、図4に示すサブプログラムに含まれる全てのロボット指令ブロックを指定ブロック範囲とし、この指定ブロック範囲に含まれる全てのロボット指令ブロック(シーケンス番号“N20”~“N40”に示すロボット指令ブロック)に基づいて複数のロボット指令を生成し、これら複数のロボット指令をデータ送受信部69に順次書き込む。
【0071】
時刻t11以降においてロボット指令生成部55によるロボット指令の生成を開始した後、時刻t12~t14の間では、データ送受信部59は、ロボット指令生成部55によって順次生成される複数のロボット指令をロボット指令群として一括してデータ送受信部69へ送信する。なお図6には、ロボット指令生成部55によるロボット指令の生成と、データ送受信部59によるロボット指令群の送信とを並行して行う場合について示すが、本開示はこれに限らない。ロボット指令生成部55によって指定ブロック範囲に属する全てのロボット指令ブロックに基づくロボット指令を生成した後、データ送受信部59によってこれらロボット指令を送信してもよい。
【0072】
その後時刻t14~t15の間では、データ送受信部59及びデータ送受信部69は、ロボット指令群の送受信が完了したことに応じて、第2ハンドシェイク処理を実行する。
【0073】
その後時刻t15~t17の間では、ロボット制御装置6の入力解析部60は、データ送受信部69によって受信したロボット指令群に含まれる複数のロボット指令の解析を行い、解析結果を順次ロボットプログラム生成部61に送信する。時刻t15以降において入力解析部60によるロボット指令の解析を開始した後、時刻t16~t18の間では、ロボットプログラム生成部61は、ロボット指令群に属する複数のロボット指令に基づいてロボットプログラムを生成する。
【0074】
その後時刻t18~t19の間では、データ送受信部59及びデータ送受信部69は、ロボットプログラム生成部61によるロボットプログラムの生成が完了したことに応じて、第3ハンドシェイク処理を実行する。
【0075】
その後時刻t19~t20の間では、ロボット制御モジュール51のロボットプログラム起動指令部56は、上記第3ハンドシェイク処理によってロボット制御装置6側におけるロボットプログラムの生成が完了したことを確認した後、ロボットプログラム起動指令を生成し、データ送受信部59に書き込む。またデータ送受信部59は、ロボットプログラム起動指令をデータ送受信部69へ送信する。
【0076】
その後時刻t20以降では、ロボット制御装置6の動作制御部65は、ロボットプログラム起動指令を受信したことに応じてロボットプログラムを起動し、このロボットプログラムに基づいてロボット3の動作を制御する。
【0077】
ロボット制御モジュール51は、以上のような一括処理によってロボット指令群及びロボットプログラム起動指令を送信した後、図3に示すメインプログラムに復帰する。その後シーケンス番号“N11”に示すロボット指令ブロックにおいて、ロボット制御モジュール51の入力解析部54には、エンドプログラムを示すコマンド“M30”が入力される。これによりロボット制御モジュール51は、図3に示すメインプログラムを終了し、工作機械制御モジュール50は、図3に示す工作機械用の数値制御プログラムを読み込む。なお図5に示すように、工作機械制御モジュール50が工作機械用の数値制御プログラムを読み込み、この数値制御プログラムに基づいて工作機械2の動作を制御する間、ロボット制御装置6は、上記ロボット指令群に基づいて生成したロボットプログラムに従い、並行してロボット3の動作を制御する。
【0078】
始めにシーケンス番号“N100”に示す工作機械指令ブロックにおいて、工作機械制御モジュール50には、工作機械2の主軸に取り付けられる工具を、工具番号“3”で示す工具に交換するためのコマンド“M6 T3”が入力される。これにより工作機械制御モジュール50は、工作機械2の主軸に取り付けられる工具を工具番号“3”で示す工具に交換する。
【0079】
その後シーケンス番号“N101”に示す工作機械指令ブロックにおいて、工作機械制御モジュール50には、工作機械2の主軸を速度“1500”によって回転させるためのコマンド“S1500”が入力される。これにより工作機械制御モジュール50は、工作機械2の主軸を速度“1500”で回転させる。
【0080】
その後シーケンス番号“N102”~“N105”に示す工作機械指令ブロックにおいて、工作機械制御モジュール50には、工作機械2の主軸を位置合わせするGコード“G00”及び工作機械2の主軸を直線補間によって移動させるGコード“G01”が入力される。これにより工作機械制御モジュール50は、主軸をGコード“G00”によって指定される位置へ位置合わせするとともに、主軸をGコード“G01”によって指定される位置及び速度で移動させることによって図示しないワークを切削加工する。
【0081】
その後シーケンス番号“N106”に示す工作機械指令ブロックにおいて、工作機械制御モジュール50には、ロボット制御装置6における処理と待ち合わせするためのコマンド“M100”が入力される。これにより工作機械制御モジュール50は、ロボット制御装置6側において、図4に示すサブプログラムのうち、シーケンス番号“N23”で示すロボット指令ブロックまでロボットプログラムの実行が完了したことを確認した後、次のシーケンス番号“N107”に示す工作機械指令ブロックに移行する。また同時にロボット制御装置6は、工作機械制御モジュール50側において、図3に示す工作機械用の数値制御プログラムのうち、シーケンス番号“N107”に示す工作機械指令ブロックまで処理が完了したことを確認した後、図4に示すサブプログラムのうち、シーケンス番号“N24”以降のロボット指令ブロックに対応するロボットプログラムの実行を開始する。
【0082】
その後シーケンス番号“N107”に示す工作機械指令ブロックにおいて、工作機械制御モジュール50には、エンドプログラムを示すコマンド“M30”が入力される。これにより工作機械制御モジュール50は、図3に示す工作機械用の数値制御プログラムを終了する。
【0083】
本実施形態によれば、以下の効果が奏される。
本実施形態において、数値制御装置5のロボット指令生成部55は、ロボット3に対する複数のロボット指令ブロックを含むロボット用の数値制御プログラムに基づいてロボット指令ブロック毎にロボット指令を生成し、数値制御装置5のデータ送受信部59は、指定ブロック範囲に属する複数のロボット指令ブロックに基づいて生成された複数のロボット指令をロボット指令群として予め一括してロボット制御装置6へ送信する。またロボット制御装置6のロボットプログラム生成部61は、ロボット制御装置6のデータ送受信部69によって受信されたロボット指令に基づいてロボットプログラムを生成し、ロボット制御装置6の動作制御部65は、ロボット指令群に基づくロボットプログラムが生成された後、データ送受信部69によってプログラム起動指令を受信したことに応じてロボットプログラムを起動し、このロボットプログラムに基づいてロボット3及びツール32の動作を制御する。本実施形態によれば、数値制御装置5側からロボット制御装置6側へ、複数のロボット指令によって構成されるロボット指令群を予め一括して送信することにより、従来では1つのロボット指令ブロックに基づくロボット指令を送信する度に必要であった第1~第3ハンドシェイク処理の実行回数を大幅に削減できるので、その分、数値制御装置5とロボット制御装置6との間の通信処理にかかる時間を短くし、ひいてはロボット制御のサイクルタイムも短くすることができる。
【0084】
本実施形態において、データ送受信部59及びデータ送受信部69は、データ送受信部59がロボット指令群の送信を開始する際に第1ハンドシェイク処理を実行し、データ送受信部69がロボット指令群の受信を完了した際に第2ハンドシェイク処理を実行する。これによりデータ送受信部59からデータ送受信部69へ、複数のロボット指令によって構成されるロボット指令群を適切に送信することができる。またデータ送受信部59及びデータ送受信部69は、ロボットプログラム生成部61がロボット指令群に基づくロボットプログラムの生成が完了した際に第3ハンドシェイク処理を実行する。これにより数値制御装置5は、ロボット制御装置6側においてロボットプログラムの生成が完了したことを把握することができる。
【0085】
本実施形態において、データ送受信部59は、第3ハンドシェイク処理を実行した後にプログラム起動指令をデータ送受信部69へ送信する。これにより数値制御装置5は、ロボット制御装置6側において適切にロボットプログラムが生成された後、このロボットプログラムを起動させることができる。
【0086】
本実施形態において、データ送受信部59による一括処理に係る指定ブロック範囲を、ロボット用の数値制御プログラムに基づいて、一括処理指定コマンドによって定める。これにより、数値制御プログラムを作成するユーザは、一括処理に係るロボット指令ブロックを容易に指定することができる。
【0087】
本実施形態において、入力解析部54、ロボット指令生成部55、ロボットプログラム起動指令部56、並びにデータ送受信部59は、工作機械制御モジュール50における工作機械用の数値制御プログラムの実行停止中又は工作機械2の軸移動の停止中に、ロボット指令ブロックの解析、ロボット指令の生成、ロボットプログラム起動指令の生成、並びにロボット指令群及びロボットプログラム起動指令の送信を実行する。これによりロボット制御モジュール51は、工作機械制御モジュール50における演算負荷が低い期間内を利用してロボット指令群及びロボットプログラム起動指令の生成及び送信に係る一連の処理を実行できるので、これら一連の処理にかかる時間を短くすることができる。
【0088】
<第2実施形態>
以下、図面を参照して、本開示の第2実施形態に係る数値制御システムについて説明する。なお以下の説明において、第1実施形態に係る数値制御システム1と同じ構成については同じ符号を付し、その詳細な説明を省略する。
【0089】
図7は、本実施形態に係る数値制御システム1Aの数値制御装置5A及びロボット制御装置6の機能ブロック図である。本実施形態に係る数値制御システム1Aは、第1実施形態に係る数値制御システム1と、数値制御装置5A及び数値制御プログラムの構成が異なる。より具体的には、第1実施形態に係る数値制御装置5では、数値制御プログラムを、主に工作機械2に対する工作機械指令ブロックによって構成される工作機械用の数値制御プログラムと、主にロボット3に対するロボット指令ブロックによって構成されるロボット用の数値制御プログラムとに分け、さらにこれら工作機械用の数値制御プログラム及びロボット用の数値制御プログラムの実行主体も工作機械制御モジュール50とロボット制御モジュール51とに分けた。これに対し本実施形態に係る数値制御装置5Aでは、数値制御プログラムとして、工作機械指令ブロックとロボット指令ブロックとが混在したものを用いるとともに、この数値制御プログラムの実行主体も共通のものとする点において第1実施形態に係る数値制御装置5と異なる。
【0090】
数値制御装置5Aは、記憶部52Aと、プログラム入力部53と、入力解析部54Aと、ロボット指令生成部55と、ロボットプログラム起動指令部56と、データ送受信部59と、補間制御部581Aと、I/O制御部582Aと、サーボ制御部583Aと、を備える。
【0091】
記憶部52Aには、例えばオペレータによる操作に基づいて作成された複数の数値制御プログラムが格納されている。より具体的には、記憶部52Aには、工作機械2に対する工作機械指令ブロック及びロボット3に対するロボット指令ブロックの両方が混在した数値制御プログラムや、主にロボット指令ブロックを含むサブプログラム等が格納されている。
【0092】
入力解析部54Aは、プログラム入力部53から入力される数値制御プログラムに基づく指令種別を指令ブロック毎に解析し、その解析結果を指令ブロック毎にロボット指令生成部55、ロボットプログラム起動指令部56、補間制御部581A、及びI/O制御部582Aへ送信する。
【0093】
上述のように記憶部52Aに格納される数値制御プログラムは、工作機械指令ブロックとロボット指令ブロックとの両方が混在している。このため入力解析部54Aは、プログラム入力部53から入力される指令ブロックがロボット指令ブロックである場合には、その解析結果をロボット指令生成部55及びロボットプログラム起動指令部56へ送信する。なおこれ以降におけるロボット指令生成部55、ロボットプログラム起動指令部56、及びデータ送受信部59における処理は、第1実施形態に係る数値制御装置5と同じであるので、詳細な説明を省略する。
【0094】
また入力解析部54Aは、プログラム入力部53から入力される指令ブロックが工作機械指令ブロックである場合には、その解析結果を補間制御部581A及びI/O制御部582Aへ送信する。
【0095】
補間制御部581Aは、入力解析部54Aから送信される解析結果が、工作機械2の制御軸の移動を指令するものである場合、補間処理を行うことによって指令に応じた制御軸の移動経路を算出し、算出した移動経路をサーボ制御部583Aへ入力する。サーボ制御部583Aは、補間制御部581Aによって算出された移動経路に沿って制御軸が移動するように、工作機械2のサーボモータをフィードバック制御する。これにより工作機械2の動作は、数値制御プログラムによって定められた手順によって制御される。
【0096】
またI/O制御部582Aは、入力解析部54Aから送信される解析結果が、例えば工作機械2のチャックの開閉を指令するものである場合や、工作機械2のドアの開閉を指令するものである場合、入力された指令に応じたI/O信号を工作機械2へ入力する。これにより工作機械2のチャックやドアは、数値制御プログラムによって定められた手順によって開閉される。
【0097】
次に、以上のように構成された数値制御システム1Aにおける各種信号や情報の流れについて、図8図10を参照しながら説明する。
【0098】
図8は、数値制御装置5Aによって読み込まれる数値制御プログラムのメインプログラムの一例を示す図である。なお図8に示すメインプログラムにおいて、シーケンス番号“N200”及び“N207”に示す指令ブロックは、ロボット3に対するロボット指令ブロックであり、シーケンス番号“N201”~“N206”に示す指令ブロックは、工作機械2に対する工作機械指令ブロックである。
【0099】
図9A及び図9Bは、数値制御装置5Aによって読み込まれるサブプログラムの一例を示す図である。より具体的には、図9Aには、サブプログラム番号“3000”によって指定されるサブプログラムを例示し、図9Bには、サブプログラム番号“4000”によって指定されるサブプログラムを例示する。なお図9A及び図9Bに示すサブプログラムに含まれる指令ブロックは、全てロボット3に対するロボット指令ブロックである。
【0100】
図10は、図8に例示する数値制御プログラムに基づいて数値制御装置5Aを作動させた場合における数値制御装置5Aとロボット制御装置6との間の信号及び情報の流れ、数値制御装置5Aにおいて実行される処理、並びにロボット制御装置6において実行される処理を示すシーケンス図である。
【0101】
始めにシーケンス番号“N200”に示すロボット指令ブロックにおいて、数値制御装置5Aの入力解析部54Aには、一括処理指定コマンド“M300”とともに、サブプログラム番号“3000”のサブプログラム(図9A参照)を指定するコマンド“P3000”が入力される。これにより数値制御装置5Aのロボット指令生成部55、ロボットプログラム起動指令部56、及びデータ送受信部59は、第1実施形態と同様の一括処理によってロボット指令群及びロボットプログラム起動指令を送信する。なおこの一括処理手順は、図6を参照して説明した手順と同じであるので、詳細な説明を省略する。
【0102】
次にシーケンス番号“N201”に示す工作機械指令ブロックにおいて、入力解析部54Aには、工作機械2の主軸に取り付けられる工具を、工具番号“3”で示す工具に交換するためのコマンド“M6 T3”が入力される。これによりI/O制御部582Aは、工作機械2の主軸に取り付けられる工具を工具番号“3”で示す工具に交換するためのI/O信号を工作機械2へ入力する。これにより主軸に取り付けられる工具が交換される。
【0103】
その後シーケンス番号“N202”に示す工作機械指令ブロックにおいて、入力解析部54Aには、工作機械2の主軸を速度“1500”によって回転させるためのコマンド“S1500”が入力される。これによりI/O制御部582Aは、指定された速度で主軸を回転させるためのI/O信号を工作機械2へ入力する。これにより主軸が指定された速度で回転する。
【0104】
その後シーケンス番号“N203”~“N206”に示す工作機械指令ブロックにおいて、入力解析部54Aには、工作機械2の主軸を位置合わせするGコード“G00”及び工作機械2の主軸を直線補間によって移動させるGコード“G01”が入力される。これによりサーボ制御部583Aは、主軸をGコード“G00”によって指定される位置へ位置合わせするとともに、主軸をGコード“G01”によって指定される位置及び速度で移動させることによって図示しないワークを切削加工する。
【0105】
その後シーケンス番号“N207”に示すロボット指令ブロックにおいて、入力解析部54Aには、一括処理指定コマンド“M300”とともに、サブプログラム番号“4000”のサブプログラム(図9B参照)を指定するコマンド“P4000”が入力される。これによりロボット指令生成部55、ロボットプログラム起動指令部56、及びデータ送受信部59は、第1実施形態と同様の一括処理によってロボット指令群及びロボットプログラム起動指令を送信する。なおこの一括処理手順は、図6を参照して説明した手順と同じであるので、詳細な説明を省略する。
【0106】
その後シーケンス番号“N208”に示す指令ブロックにおいて、入力解析部54Aには、エンドプログラムを示すコマンド“M30”が入力される。これにより数値制御装置5Aは、図8に示す数値制御プログラムを終了する。
【0107】
なお図10に示すように、数値制御装置5Aのロボット指令生成部55、ロボットプログラム起動指令部56、及びデータ送受信部59は、数値制御プログラムのうち工作機械2に対する工作機械指令ブロックの実行停止中でありかつ工作機械2の軸移動の停止中に、ロボット指令の生成、ロボットプログラム起動指令の生成、並びにロボット指令群及びロボットプログラム起動指令の送信を実行することが好ましい。
【0108】
本実施形態によれば、第1実施形態と同様の効果が奏される。また本開示は、上記実施形態に限定されるものではなく、種々の変更及び変形が可能である。
【0109】
例えば上記実施形態では、数値制御プログラムに基づいてロボット指令ブロック毎にロボット指令を生成するロボット指令生成部55を数値制御装置5,5Aに設け、データ送受信部69によって受信されたロボット指令に基づいてロボットプログラムを生成するロボットプログラム生成部61をロボット制御装置6に設けた場合について説明したが、本開示はこれに限らない。これらロボット指令生成部55及びロボットプログラム生成部61は、数値制御装置5,5A及びロボット制御装置6と通信可能に接続された外部演算装置に設け、これらロボット指令やロボットプログラムを生成する処理を外部演算装置によって実行してもよい。
【符号の説明】
【0110】
1,1A…数値制御システム
2…工作機械
3…ロボット
5,5A…数値制御装置
50…工作機械制御モジュール
51…ロボット制御モジュール
52,52A…記憶部
53…プログラム入力部
54,54A…入力解析部
55…ロボット指令生成部
56…ロボットプログラム起動指令部
581A…補間制御部
582A…I/O制御部
583A…サーボ制御部
59…データ送受信部(第1通信部)
6…ロボット制御装置
60…入力解析部
61…ロボットプログラム生成部
612…ロボット命令生成部
613…プログラム管理部
614…記憶部
65…動作制御部
651…プログラム起動部
652…軌跡制御部
653…キネマティクス制御部
654…サーボ制御部
69…データ送受信部(第2通信部)
図1
図2
図3
図4
図5
図6
図7
図8
図9A
図9B
図10
図11