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

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

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

<図1>
  • 特許-数値制御システム 図1
  • 特許-数値制御システム 図2
  • 特許-数値制御システム 図3
  • 特許-数値制御システム 図4A
  • 特許-数値制御システム 図4B
  • 特許-数値制御システム 図5
  • 特許-数値制御システム 図6A
  • 特許-数値制御システム 図6B
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-03-10
(45)【発行日】2025-03-18
(54)【発明の名称】数値制御システム
(51)【国際特許分類】
   G05B 19/18 20060101AFI20250311BHJP
   G05B 19/408 20060101ALI20250311BHJP
【FI】
G05B19/18 C
G05B19/408 Z
【請求項の数】 5
(21)【出願番号】P 2023543532
(86)(22)【出願日】2021-08-24
(86)【国際出願番号】 JP2021031038
(87)【国際公開番号】W WO2023026373
(87)【国際公開日】2023-03-02
【審査請求日】2024-03-13
(73)【特許権者】
【識別番号】390008235
【氏名又は名称】ファナック株式会社
(74)【代理人】
【識別番号】100106002
【弁理士】
【氏名又は名称】正林 真之
(74)【代理人】
【識別番号】100165157
【弁理士】
【氏名又は名称】芝 哲央
(74)【代理人】
【識別番号】100160794
【弁理士】
【氏名又は名称】星野 寛明
(72)【発明者】
【氏名】今西 一剛
【審査官】臼井 卓巳
(56)【参考文献】
【文献】特開2018-195055(JP,A)
【文献】特開2019-053459(JP,A)
【文献】特開平06-028019(JP,A)
【文献】特開2019-067045(JP,A)
【文献】中国特許出願公開第110597162(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 19/18-19/408
B25J 9/16-13/08
(57)【特許請求の範囲】
【請求項1】
工作機械及びロボットの動作を連動して制御する数値制御システムであって、
数値制御プログラムに基づいて前記工作機械の動作を制御する数値制御装置と、
ロボット制御プログラムに基づいて前記ロボットの動作を制御するロボット制御装置と、
前記数値制御装置及び前記ロボット制御装置によって読み書き可能な変数の値を記憶する変数記憶装置と、を備え、
前記ロボット制御装置は、前記数値制御装置の前記変数の読み書きの許可又は禁止を要求する読み書き許可/禁止要求に応じて、前記変数の読み書きの実行又は禁止を判定する読み書き実行/禁止判定部を有し、
前記ロボット制御装置は、前記読み書き実行/禁止判定部により前記変数の読み書きの実行が判定された場合には、前記変数記憶装置に記憶されている変数の値を読み出し、読み出した変数の値に基づいて前記ロボットの動作を制御し、前記変数の読み書きの禁止が判定された場合には、前記変数記憶装置に記憶されている変数の値の読み出しを禁止
前記読み書き実行/禁止判定部は、前記数値制御装置の動作完了時間又は前記ロボット制御装置の動作完了時間を取得し、且つ、これら動作完了時間の経過に基づいた前記読み書き許可/禁止要求に応じて、前記ロボット制御装置による前記変数の読み書きの実行又は禁止を判定し、
前記読み書き実行/禁止判定部は、前記数値制御装置の動作完了時間又は前記ロボット制御装置の動作完了時間の経過後に、前記ロボット制御装置による前記変数の読み書きの実行を判定する、数値制御システム。
【請求項2】
前記読み書き実行/禁止判定部は、前記数値制御プログラム又は前記ロボット制御プログラム中の変数を介して、前記数値制御装置の動作完了時間又は前記ロボット制御装置の動作完了時間を取得する、請求項1に記載の数値制御システム。
【請求項3】
前記数値制御装置は、前記数値制御装置の動作実行中又は前記ロボット制御装置の動作実行中に前記ロボット制御装置による前記変数の読み書きを禁止するI/O信号である読み書き禁止信号を出力し、且つ、前記数値制御装置の動作完了後又は前記ロボット制御装置の動作完了後に前記ロボット制御装置による前記変数の読み書きを許可するI/O信号である読み書き許可信号を出力する読み書き許可/禁止信号出力部を有し、
前記ロボット制御装置は、前記読み書き許可/禁止信号出力部から出力された読み書き許可/禁止信号が入力される読み書き許可/禁止信号入力部を有し、
前記読み書き実行/禁止判定部は、前記読み書き許可/禁止信号に基づいた前記読み書き許可/禁止要求に応じて、前記ロボット制御装置による前記変数の読み書きの実行又は禁止を判定する、請求項1に記載の数値制御システム。
【請求項4】
前記数値制御装置は、前記数値制御プログラムに基づいて前記変数記憶装置に記憶されている変数の値を読み書きし、
前記ロボット制御装置は、前記ロボット制御プログラムに基づいて前記変数記憶装置に記憶されている変数の値を読み書きする、請求項1から3いずれかに記載の数値制御システム。
【請求項5】
前記変数は、前記数値制御プログラム及び前記ロボット制御プログラムにおいて番号又は文字列によって指定される、請求項1から4いずれかに記載の数値制御システム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、数値制御システムに関する。
【背景技術】
【0002】
近年、加工現場の自動化を促進するため、ワークを加工する工作機械の動作と、工作機械に対するワークの着脱動作や扉の開閉動作のようなロボットの動作と、を連動して制御する数値制御システムが望まれている(例えば、特許文献1参照)。
【0003】
一般的に、工作機械の動作は数値制御装置によって制御され、ロボットの動作はロボット制御装置によって制御される。工作機械の動作とロボットの動作を連動して制御するためには、数値制御装置及びロボット制御装置の両方の操作が必要となる。これに対して、例えば特許文献1に示された数値制御システムでは、数値制御装置側からのユーザによる指示に従って、ロボットの動作プログラムの選択や動作プログラムの設定を可能としている。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2018-195055号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、例えば、既設の工作機械の動作と、工作機械に対して後から設置したロボットの動作と、を連動して制御する場合、工作機械の動作を制御する数値制御装置と、ロボットの動作を制御するロボット制御装置と、を接続する必要がある。また、数値制御装置に接続されたロボット制御装置から、数値制御装置の変数を読み書きする必要がある。
【0006】
具体的には、ロボット制御装置から数値制御装置に対して、マクロ変数経由で動作要求をONにし、ロボット制御装置から定期的に数値制御装置のマクロ変数を読み出して状態を監視する。監視の結果、状態が動作完了となった場合に動作要求をOFFにし、次のシーケンスへと進む。
【0007】
しかしながら、例えばワークの加工中、即ち数値制御装置の動作中に、ロボット制御装置からの通信が割り込むと通信負荷が増大する。この場合には、サイクルタイムが増加し、加工精度が低下するという課題がある。従って、工作機械及びロボットの動作を連動して制御する数値制御システムにおいて、通信負荷を軽減できる技術が望まれる。
【0008】
本開示は、工作機械及びロボットの動作を連動して制御する数値制御システムにおいて、通信負荷を軽減できる技術を提供することを目的とする。
【課題を解決するための手段】
【0009】
本開示の一態様は、工作機械及びロボットの動作を連動して制御する数値制御システムであって、数値制御プログラムに基づいて前記工作機械の動作を制御する数値制御装置と、ロボット制御プログラムに基づいて前記ロボットの動作を制御するロボット制御装置と、前記数値制御装置及び前記ロボット制御装置によって読み書き可能な変数の値を記憶する変数記憶装置と、を備え、前記ロボット制御装置は、前記数値制御装置の前記変数の読み書きの許可又は禁止を要求する読み書き許可/禁止要求に応じて、前記変数の読み書きの実行又は禁止を判定する読み書き実行/禁止判定部を有し、前記ロボット制御装置は、前記読み書き実行/禁止判定部により前記変数の読み書きの実行が判定された場合には、前記変数記憶装置に記憶されている変数の値を読み出し、読み出した変数の値に基づいて前記ロボットの動作を制御し、前記変数の読み書きの禁止が判定された場合には、前記変数記憶装置に記憶されている変数の値の読み出しを禁止する、数値制御システムを提供する。
【発明の効果】
【0010】
本開示によれば、工作機械及びロボットの動作を連動して制御する数値制御システムにおいて、通信負荷を軽減することができる。
【図面の簡単な説明】
【0011】
図1】第1実施形態に係る数値制御システムの概略図である。
図2】第1実施形態に係る数値制御システムの機能ブロック図である。
図3】第1実施形態に係る数値制御プログラムの一例を示す図である。
図4A】第1実施形態に係るロボット制御装置に関わる処理の流れを示すフローチャートである。
図4B】第1実施形態に係る数値制御装置に関わる処理の流れを示すフローチャートである。
図5】第2実施形態に係る数値制御システムの機能ブロック図である。
図6A】第2実施形態に係るロボット制御装置に関わる処理の流れを示すフローチャートである。
図6B】第2実施形態に係る数値制御装置に関わる処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0012】
以下、本開示の実施形態について、図面を参照して詳細に説明する。
【0013】
[第1実施形態]
図1は、第1実施形態に係る数値制御システム1の概略図である。図1に示されるように、数値制御システム1は、図示しないワークを加工する工作機械20と、工作機械20の動作を制御する数値制御装置(CNC)2と、工作機械20の近傍に設けられたロボット30と、ロボット30の動作を制御するロボット制御装置3と、を備える。数値制御システム1は、互いに通信可能に接続された数値制御装置2及びロボット制御装置3を用いることによって、工作機械20及びロボット30の動作を連動して制御する。
【0014】
工作機械20は、例えば、旋盤、ボール盤、フライス盤、研削盤、レーザ加工機、及び射出成形機等であるが、これらに限らない。工作機械20は、後に説明する手順に従って数値制御装置2から送信される各種指令信号に応じて、図示しないワークの加工動作、ワークを把持するチャックの開閉動作、及びワークの加工エリアに設けられたドアの開閉動作等の各種動作を実行する。
【0015】
ロボット30は、ロボット制御装置3による制御下において動作し、例えば工作機械20によって加工されるワークに対し所定の作業を行う。ロボット30は、例えば多関節ロボットであり、そのアーム先端部30aにはワークを把持したり、加工したり、検査したりするためのツール30bが取り付けられている。以下では、ロボット30は、6軸の多関節ロボットとした場合について説明するが、これに限らない。
【0016】
数値制御装置2及びロボット制御装置3は、それぞれCPU(Central Processing Unit)等の演算処理手段、各種プログラムを格納したHDD(Hard Disk Drive)やSSD(Solid State Drive)等の補助記憶手段、演算処理手段がプログラムを実行する上で一時的に必要とされるデータを格納するためのRAM(Random Access Memory)といった主記憶手段、オペレータが各種操作を行うキーボードといった操作手段、及びオペレータに各種情報を表示するディスプレイといった表示手段等のハードウェアによって構成されるコンピュータである。これら数値制御装置2及びロボット制御装置3は、例えばイーサネット(登録商標)によって相互に各種信号を送受信することが可能となっている。
【0017】
本実施形態に係る数値制御システム1は、例えば、既設の工作機械20に対して、ロボット30が後付けされたものが挙げられるが、これに限らない。例えば、本実施形態に係る数値制御システム1は、工作機械20の動作と、ロボット30の動作と、を連動して制御するために、ロボット制御装置3から数値制御装置2に対して動作要求を行い、ロボット制御装置3から数値制御装置2の変数を読み書き可能に構成される。
【0018】
図2は、第1実施形態に係る数値制御システム1の機能ブロック図である。
【0019】
先ず、数値制御装置2の詳細な構成について説明する。図2に示すように数値制御装置2には、上記ハードウェア構成によって、工作機械20の動作を制御する工作機械制御モジュール200、工作機械制御モジュール200及び後述のロボット制御モジュール300によって読み書き可能な複数の変数の値を記憶する変数記憶部24、及びデータ送受信部25等の各種機能が実現される。
【0020】
工作機械制御モジュール200は、数値制御プログラムに基づいて変数記憶部24に記憶されている変数の値を読み書きするとともに工作機械20の動作を制御する。より具体的には、工作機械制御モジュール200は、記憶部21と、プログラム入力部22と、解析部23と、I/O制御部26と、補間制御部27と、サーボ制御部28と、を備える。
【0021】
記憶部21には、工作機械20の動作(例えば、制御軸の移動動作、主軸の回転動作、チャックの開閉動作、及びドアの開閉動作等)を制御するための数値制御プログラムが格納されている。記憶部21に格納されている数値制御プログラムは、ロボット制御装置3の制御下にあるロボット30の動作と連動して工作機械20の動作を制御するために予めオペレータによって作成され、GコードやMコード等を用いたプログラム言語によって記述されている。
【0022】
プログラム入力部22は、記憶部21から数値制御プログラムを読み出し、これを逐次、解析部23へ入力する。
【0023】
解析部23は、プログラム入力部22から入力される数値制御プログラムに基づく指令種別を順次ブロック毎に解析し、解析結果をI/O制御部26、補間制御部27、及び変数記憶部24へ送信する。
【0024】
解析部23は、数値制御プログラムに基づいて取得した指令の種別が、例えば、工作機械20のチャックの開閉を指令するものである場合や、工作機械20のドアの開閉を指令するものである場合、取得した指令をI/O制御部26へ入力する。I/O制御部26は、解析部23から指令が入力されると、入力された指令に応じたI/O信号を工作機械20へ入力する。これにより、工作機械20のチャックやドアは、数値制御プログラムによって定められた手順によって開閉される。
【0025】
解析部23は、数値制御プログラムに基づいて取得した指令の種別が、例えば、工作機械20の制御軸の移動を指令するものである場合、取得した指令を補間制御部27へ入力する。補間制御部27は、解析部23から指令が入力されると、補間処理を行うことによって指令に応じた制御軸の移動経路を算出し、算出した移動経路をサーボ制御部28へ入力する。サーボ制御部28は、補間制御部27によって算出された移動経路に沿って制御軸が移動するように、工作機械20のサーボモータをフィードバック制御する。これにより工作機械20の動作は、数値制御プログラムによって定められた手順によって制御される。
【0026】
解析部23は、数値制御プログラムに基づいて取得した指令の種別が、例えば、変数記憶部24に記憶されている変数の値の読み出しを指令するものである場合や、変数記憶部24に記憶されている変数の値の書き換えを指令するものである場合、取得した指令を変数記憶部24へ入力する。
【0027】
変数記憶部24は、複数の変数の値を記憶する変数メモリ(不図示)を有し、解析部23から入力される指令やデータ送受信部25を介してロボット制御装置3の後述のロボット制御モジュール300から入力される指令に応じて変数メモリに記憶されている変数の値を読み出したり書き換えたりする。
【0028】
本実施形態では、ロボット制御装置3側から工作機械20への動作要求に割り付けられた変数の値が設定されていた場合には、工作機械制御モジュール200及び変数記憶部24により、動作完了時間が対応する変数へ書き込まれ、対応する動作(例えば、ドア開閉、チャック開閉、後述の加工1~3等)が実行される。
【0029】
変数記憶部24の変数メモリは、工作機械制御モジュール200において工作機械20の動作を制御するための数値制御プログラム及びロボット制御モジュール300においてロボット30の動作を制御するためのロボット制御プログラムにおいて番号又は文字列によって指定される複数の変数の値を記憶する。本実施形態では、変数メモリによって記憶する変数として、多くの数値制御装置で定義されるマクロ変数(以下、単に変数とも言う。)の一部(例えば、#100~#108,#200~#207)を割り当てた場合について説明するが、これに限らない。
【0030】
変数記憶部24は、解析部23から変数メモリに記憶されている変数の値を読み出す指令が入力された場合、変数メモリから指令によって指定される変数の値を読み出し、読み出した値を解析部23へ送信する。また変数記憶部24は、解析部23から変数メモリに記憶されている変数の値を書き換える指令が入力された場合、変数メモリにおいて指令によって指定される変数の値を指令に応じた値に書き換える。これにより、工作機械制御モジュール200は、変数メモリに記憶されている変数の値を読み出したり書き換えたりすることが可能となっている。
【0031】
変数記憶部24は、ロボット制御モジュール300からデータ送受信部25を介して変数メモリに記憶されている変数の値を読み出す指令が入力された場合、変数メモリから指令によって指定される変数の値を読み出し、読み出した値を、データ送受信部25を介してロボット制御モジュール300へ送信する。また変数記憶部24は、ロボット制御モジュール300からデータ送受信部25を介して変数メモリに記憶されている変数の値を書き換える指令が入力された場合、変数メモリにおいて指令によって指定される変数の値を指令に応じた値に書き換える。これにより、ロボット制御モジュール300は、変数メモリに記憶されている変数の値を読み出したり書き換えたりすることが可能となっている。
【0032】
変数記憶部24の変数メモリは、ロボット制御モジュール300から工作機械制御モジュール200への通知や要求に利用することを想定した複数の変数の値を記憶するが、これに限らない。工作機械制御モジュール200からロボット制御モジュール300への通知に利用することを想定した複数の変数の値を記憶してもよい。変数は、工作機械制御モジュール200及びロボット制御モジュール300の双方から読み出し可能であるとともに、双方から書き換え可能であることが好ましい。
【0033】
変数#100は、例えば、ロボット制御モジュール300から工作機械制御モジュール200へ、工作機械制御モジュール200において実行中の数値制御プログラムの停止を要求するために割り当てられる。変数#100の値が0である場合、数値制御プログラムの停止が要求されていない状態(要求OFF)であることを示し、変数#100の値が1である場合、数値制御プログラムの停止が要求されている状態(要求ON)であることを示す。
【0034】
変数#101は、例えば、ロボット制御モジュール300から工作機械制御モジュール200へ、工作機械20のドアの開き動作を要求するために割り当てられる。変数#101の値が0である場合、ドアの開き動作が要求されていない状態(要求OFF)であることを示し、変数#101の値が1である場合、ドアの開き動作が要求されている状態(要求ON)であることを示す。
【0035】
変数#102は、例えば、ロボット制御モジュール300から工作機械制御モジュール200へ、工作機械20のドアの閉じ動作を要求するために割り当てられる。変数#102の値が0である場合、ドアの閉じ動作が要求されていない状態(要求OFF)であることを示し、変数#102の値が1である場合、ドアの閉じ動作が要求されている状態(要求ON)であることを示す。
【0036】
変数#103は、例えば、ロボット制御モジュール300から工作機械制御モジュール200へ、工作機械20のチャックの開き動作を要求するために割り当てられる。変数#103の値が0である場合、チャックの開き動作が要求されていない状態(要求OFF)であることを示し、変数#103の値が1である場合、チャックの開き動作が要求されている状態(要求ON)であることを示す。
【0037】
変数#104は、例えば、ロボット制御モジュール300から工作機械制御モジュール200へ、工作機械20のチャックの閉じ動作を要求するために割り当てられる。変数#104の値が0である場合、チャックの閉じ動作が要求されていない状態(要求OFF)であることを示し、変数#104の値が1である場合、チャックの閉じ動作が要求されている状態(要求ON)であることを示す。
【0038】
変数#105は、例えば、ロボット制御モジュール300から工作機械制御モジュール200へ、工作機械20による加工1の実行を要求するために割り当てられる。変数#105の値が0である場合、加工1の実行が要求されていない状態(要求OFF)であることを示し、変数#105の値が1である場合、加工1の実行が要求されている状態(要求ON)であることを示す。
【0039】
変数#106は、例えば、ロボット制御モジュール300から工作機械制御モジュール200へ、工作機械20による加工2の実行を要求するために割り当てられる。変数#106の値が0である場合、加工2の実行が要求されていない状態(要求OFF)であることを示し、変数#106の値が1である場合、加工2の実行が要求されている状態(要求ON)であることを示す。
【0040】
変数#107は、例えば、ロボット制御モジュール300から工作機械制御モジュール200へ、工作機械20による加工3の実行を要求するために割り当てられる。変数#107の値が0である場合、加工3の実行が要求されていない状態(要求OFF)であることを示し、変数#107の値が1である場合、加工3の実行が要求されている状態(要求ON)であることを示す。
【0041】
変数#108は、例えば、ロボット制御モジュール300から工作機械制御モジュール200へ、ワークの交換を要求するために割り当てられる。変数#108の値が0である場合、ワークの交換が要求されていない状態(要求OFF)であることを示し、変数#108の値が1である場合、ワークの交換が要求されている状態であることを示す。
【0042】
変数#200は、例えば、ロボット制御モジュール300から工作機械制御モジュール200へのプログラム停止要求におけるプログラム停止動作完了時間に割り当てられる。変数#201は、例えば、ロボット制御モジュール300から工作機械制御モジュール200へのドア開き要求におけるドア開完了時間に割り当てられる。変数#202は、ロボット制御モジュール300から工作機械制御モジュール200へのドア閉じ要求におけるドア閉完了時間に割り当てられる。変数#203は、ロボット制御モジュール300から工作機械制御モジュール200へのチャック開き要求におけるチャック開完了時間に割り当てられる。変数#204は、ロボット制御モジュール300から工作機械制御モジュール200へのチャック閉じ要求におけるチャック閉完了時間に割り当てられる。変数#205は、ロボット制御モジュール300から工作機械制御モジュール200への加工1要求における加工1完了時間に割り当てられる。変数#206は、ロボット制御モジュール300から工作機械制御モジュール200への加工2要求における加工2完了時間に割り当てられる。変数#207は、ロボット制御モジュール300から工作機械制御モジュール200への加工3要求における加工3完了時間に割り当てられる。
【0043】
なお、変数メモリに記憶される複数の変数の値は、数値制御装置2をオンにしたことに応じて所定の初期値(例えば、0)にリセットされる。
【0044】
次に、ロボット制御装置3の構成について詳細に説明する。図2に示すように、ロボット制御装置3には、上記ハードウェア構成によって、ロボット30の動作を制御するロボット制御モジュール300、データ送受信部35、及び読み書き実行/禁止判定部36等の各種機能が実現される。
【0045】
ロボット制御モジュール300は、ロボット制御プログラムに基づいて上述の変数記憶部24に記憶されている変数の値を読み書きするとともにロボット30の動作を制御する。より具体的には、ロボット制御モジュール300は、記憶部31と、プログラム入力部32と、解析部33と、軌跡制御部37と、サーボ制御部38と、を備える。
【0046】
記憶部31には、ロボット30の動作を制御するためのロボット制御プログラムが格納されている。記憶部31に格納されているロボット制御プログラムは、数値制御装置2の制御下にある工作機械20の動作と連動してロボット30の動作を制御するために予めオペレータによって作成されている。
【0047】
プログラム入力部32は、記憶部31からロボット制御プログラムを読み出し、これを逐次、解析部33へ入力する。
【0048】
解析部33は、プログラム入力部32から入力されるロボット制御プログラムに基づく指令種別を順次ブロック毎に解析し、解析結果を軌跡制御部37、データ送受信部35、及び読み書き実行/禁止判定部36へ送信する。
【0049】
解析部33は、ロボット制御プログラムに基づいて取得した指令の種別が、例えば、ロボット30の制御点(例えば、アーム先端部30a)の移動を指令するものである場合、取得した指令を軌跡制御部37へ入力する。軌跡制御部37は、解析部33から指令が入力されると、ロボット30の制御点を指令によって指定された位置へ移動させる際における制御点の動作軌跡を算出し、算出した動作軌跡に応じたロボット30の各関節の角度を目標角度として算出し、これら目標角度をサーボ制御部38へ送信する。サーボ制御部38は、軌跡制御部37から送信される各関節の目標角度が実現するように、ロボット30の各サーボモータをフィードバック制御することによってロボット30に対するロボット制御信号を生成し、ロボット30のサーボモータへ入力する。これによりロボット30の動作は、ロボット制御プログラムに定められた手順によって制御される。
【0050】
解析部33は、ロボット制御プログラムに基づいて取得した指令の種別が、例えば、変数記憶部24に記憶されている変数の値の読み出しを指令するものである場合や、変数記憶部24に記憶されている変数の値の書き換えを指令するものである場合、取得した指令をデータ送受信部35へ入力する。
【0051】
データ送受信部35は、解析部33から変数の値の読み出しの指令を受信した場合、当該指令を数値制御装置2のデータ送受信部25へ送信する。上述のように変数記憶部24は、このような読み出し指令が入力された場合、変数メモリから指令によって指定される変数の値を読み出し、読み出した値を、データ送受信部25及びデータ送受信部35を介して解析部33へ送り返す。またデータ送受信部35は、解析部33から変数の値の書き換えの指令を受信した場合、当該指令を数値制御装置2のデータ送受信部25へ送信する。上述のように変数記憶部24は、このような書き換え指令が入力された場合、変数メモリにおいて指令によって指定される変数の値を指令に応じた値に書き換える。これにより、ロボット制御モジュール300は、変数メモリに記憶されている変数の値を読み出したり書き換えたりすることが可能となっている。
【0052】
読み書き実行/禁止判定部36は、ロボット制御装置3による変数の読み書きの許可又は禁止を要求する読み書き許可/禁止要求に応じて、ロボット制御装置3による変数の読み書きの実行又は禁止を判定する。従来、例えばワークの加工中、即ち数値制御装置2の動作中に、ロボット制御装置3からの通信が割り込むと、通信負荷が増大する。この場合には、サイクルタイムが増加し、加工精度が低下するという課題がある。これに対して本実施形態に係る数値制御システム1では、この読み書き実行/禁止判定部36を備えることにより、例えば数値制御装置2の動作中において、ロボット制御装置3から変数記憶部24への変数の読み書きを禁止することができるため、通信負荷の軽減が可能となっている。
【0053】
具体的に読み書き実行/禁止判定部36は、先ず、数値制御装置2の動作完了時間又はロボット制御装置3の動作完了時間を取得する。これら動作時間の取得は、数値制御プログラム又はロボット制御プログラム中の変数を介して行われる。上述した例では、数値制御装置2の動作完了時間が変数#201~207を介して取得され、ロボット制御装置3の動作完了時間が変数#200を介して取得される。そして、取得された数値制御装置2の動作完了時間又はロボット制御装置3の動作完了時間が経過したか否かに基づいて、読み書き許可/禁止要求が判断され、この読み書き許可/禁止要求に応じて、読み書き実行/禁止判定部36は、ロボット制御装置3による変数の読み書きの実行又は禁止を判定する。
【0054】
これにより、読み書き実行/禁止判定部36は、数値制御装置2の動作完了時間又はロボット制御装置3の動作完了時間の経過後に、ロボット制御装置3による変数の読み書きの実行を判定する。また読み書き実行/禁止判定部36は、数値制御装置2の動作完了時間又はロボット制御装置3の動作完了時間の経過前には、ロボット制御装置3による変数の読み書きの禁止を判定する。
【0055】
即ち、読み書き実行/禁止判定部36によってロボット制御装置3による変数の読み書きの実行が判定された場合には、ロボット制御装置3は、変数記憶部24に記憶されている変数の値を読み出し、読み出した変数の値に基づいてロボット30の動作を制御する。また、読み書き実行/禁止判定部36によってロボット制御装置3による変数の読み書きの禁止が判定された場合には、ロボット制御装置3は、変数記憶部24に記憶されている変数の値の読み出しを禁止する。
【0056】
図3は、第1実施形態に係る数値制御プログラムの一例を示す図である。図3には、一例としてプログラム番号0123の数値制御プログラムを示しており、最初のブロックにはシーケンス番号N10が付されている。また図3には、上述したカスタムマクロ変数の割り当ての一例を併せて示している。
【0057】
図3に示される数値制御プログラムでは、工作機械制御モジュール200において所定の周期で変数#100~#108等の値を読み出すことにより、ロボット制御モジュール300からの要求を監視するとともに、読み出した変数#100~#108の値に応じて、工作機械制御モジュール200により工作機械20の動作を制御する。またロボット制御モジュール300からの動作要求に応じて、工作機械制御モジュール200において各動作要求に対応する変数#200~#207の各動作完了時間の値を書き換える。
【0058】
ロボット制御モジュール300は、ロボット制御プログラムに従ってロボット30の動作を制御するとともに、ロボット制御プログラムに従って変数記憶部24の変数メモリに記憶されている変数#100~#108の値を書き換える。またロボット制御モジュール300は、工作機械制御モジュール200において書き換えられた変数#200~#207の各動作完了時間の値を読み出し、読み書き実行/禁止判定部36においてロボット制御装置3による変数の読み書きの実行又は禁止判定に供する。
【0059】
より詳しくは、最初のブロックにおいて、工作機械制御モジュール200は、変数メモリに記憶されている変数#101の値を読み出し、読み出した値が“1”であるか否かを判定する。工作機械制御モジュール200は、変数#101の値が“1”である場合、即ちロボット制御モジュール300から工作機械20のドアの開き動作が要求されている場合には、サブプログラムを呼び出すためのコマンド“M98”に従って、プログラム番号“0001”のサブプログラムを呼び出し、変数#101の値が“0”である場合には次のブロックに移行する。なお工作機械制御モジュール200は、プログラム番号“0001”のサブプログラムを実行することにより、工作機械20のドアを開き、変数#101の値を“0”にリセットした後、図3に示すメインプログラムに戻る。
【0060】
次のブロックにおいて、工作機械制御モジュール200は、変数メモリに記憶されている変数#102の値を読み出し、読み出した値が“1”であるか否かを判定する。工作機械制御モジュール200は、変数#102の値が“1”である場合、即ちロボット制御モジュール300から工作機械20のドアの閉じ動作が要求されている場合には、プログラム番号“0002”のサブプログラムを実行し、変数#102の値が“0”である場合には次のブロックに移行する。なお工作機械制御モジュール200は、プログラム番号“0002”のサブプログラムを実行することにより、工作機械20のドアを閉じ、変数#102の値を“0”にリセットした後、図3に示すメインプログラムに戻る。
【0061】
次のブロックにおいて、工作機械制御モジュール200は、変数メモリに記憶されている変数#103の値を読み出し、読み出した値が“1”であるか否かを判定する。工作機械制御モジュール200は、変数#103の値が“1”である場合、即ちロボット制御モジュール300から工作機械20のチャックの開き動作が要求されている場合には、プログラム番号“0003”のサブプログラムを実行し、変数#103の値が“0”である場合には次のブロックに移行する。なお工作機械制御モジュール200は、プログラム番号“0003”のサブプログラムを実行することにより、工作機械20のチャックを開き、変数#103の値を“0”にリセットした後、図3に示すメインプログラムに戻る。
【0062】
図示は省略するが、同様に工作機械制御モジュール200は、変数メモリに記憶されている変数#104の値を読み出し、読み出した値が“1”であるか否かを判定する。工作機械制御モジュール200は、変数#104の値が“1”である場合、即ちロボット制御モジュール300から工作機械20のチャックの閉じ動作が要求されている場合には、プログラム番号“0004”のサブプログラムを実行し、変数#104の値が“0”である場合には次のブロックに移行する。なお工作機械制御モジュール200は、プログラム番号“0004”のサブプログラムを実行することにより、工作機械20のチャックを閉じ、変数#104の値を“0”にリセットした後、図3に示すメインプログラムに戻る。
【0063】
次のブロックにおいて、工作機械制御モジュール200は、変数メモリに記憶されている変数#105の値を読み出し、読み出した値が“1”であるか否かを判定する。工作機械制御モジュール200は、変数#105の値が“1”である場合、即ちロボット制御モジュール300から工作機械20による加工1の動作が要求されている場合には、プログラム番号“0005”のサブプログラムを実行し、変数#105の値が“0”である場合には次のブロックに移行する。
【0064】
図3中に、プログラム番号“0005”のサブプログラムの一例を示している。プログラム番号“0005”のサブプログラムが呼び出されると、工作機械制御モジュール200は、ロボット制御モジュール300からの加工1の動作要求に応じて、加工1の動作要求に対応する変数#205の加工1完了時間の値を、例えば600秒に書き換える。このときロボット制御モジュール300は、書き換えられた変数#205の値を読み出すことにより加工1の動作完了時間を取得し、取得された加工1の動作完了時間の経過に基づいた読み書き許可/禁止要求に応じて、読み書き実行/禁止判定部36においてロボット制御装置3による変数の読み書きの実行又は禁止を判定する。
【0065】
また工作機械制御モジュール200には、工作機械20によってワークを加工するための各種コマンド“G00”や“G01”が入力され、工作機械制御モジュール200は、数値制御プログラムによって定められた手順に従って工作機械20の位置決め動作や直線補間動作等を制御し、ワークを加工する。加工1の動作が完了すると、工作機械制御モジュール200は、加工1の動作要求に対応する変数#205の加工1完了時間の値を0秒に書き換えた後、変数メモリに記憶されている変数#105の値を“0”に書き換え、コマンド“M99”に従って図3に示されるメインプログラムに復帰する。
【0066】
図示は省略するが、ロボット制御モジュール300から工作機械20による加工2又は加工3の動作要求についても、上述の加工1の動作要求の場合と同様の数値制御プログラムにより実行される。なお、プログラム番号“0005”のサブプログラムにおける変数#205の加工1完了時間の書き換えについては、図示は省略するがプログラム番号“0000”~“0007”の各サブプログラムにおいても同様に動作完了時間の書き換えが行われる。また、書き換えらえた各動作完了時間は、同様に、読み書き実行/禁止判定部36において、ロボット制御装置3による変数の読み書きの実行又は禁止の判定に用いられる。
【0067】
次のブロックにおいて、工作機械制御モジュール200は、変数メモリに記憶されている変数#100の値を読み出し、読み出した値が“0”であるか否かを判定する。工作機械制御モジュール200は、変数#100の値が“0”である場合、即ちロボット制御モジュール300から数値制御プログラムの停止が要求されていない場合には、シーケンス番号“N10”に戻り、再び変数#100~#107の値を監視する。また工作機械制御モジュール200は、変数#100の値が“1”である場合、即ちロボット制御モジュール300から数値制御プログラムの停止が要求されている場合には、コマンド“M30”に従って図3に示す数値制御プログラムを終了する。
【0068】
次に、第1実施形態に係る数値制御システム1の処理の流れについて、図4A及び図4Bを参照して詳細に説明する。
【0069】
図4Aは、第1実施形態に係るロボット制御装置3に関わる処理の流れを示すフローチャートである。図4Bは、第1実施形態に係る数値制御装置2に関わる処理の流れを示すフローチャートである。これらの処理は、ロボット30の動作の開始に応じて繰り返し実行され、互いに連動して並行に実行される。
【0070】
先ず、図4AのステップS11に示されるように、ロボット制御装置3において加工プログラム番号を選択する。具体的にはロボット制御モジュール300において、対応するマクロ変数、例えば変数#105に、サブプログラムとして呼び出す加工プログラム番号を書き込む。変数#105に書き込まれた加工プログラム番号は、変数記憶部24に記憶される。
【0071】
このとき、図4BのステップS21に示されるように数値制御装置2において、加工プログラムを切り替える。具体的には工作機械制御モジュール200において、上述のステップS11で書き込まれて変数記憶部24に記憶された加工プログラム番号を読み出し、読み出した加工プログラム番号への切り替えを行う。
【0072】
次いで、図4BのステップS22に示されるように数値制御装置2において、加工プログラムを選択する。具体的には工作機械制御モジュール200において、上述のステップS21で切り替えられた加工プログラム番号に対応した加工プログラムが記憶部21から選択される。また、選択された加工プログラム中の加工動作に対応するマクロ変数、例えば変数#205に、加工時間、即ち動作完了時間を書き込む。変数#205に書き込まれた加工時間(動作完了時間)は、変数記憶部24に記憶される。
【0073】
このとき、図4AのステップS12に示されるようにロボット制御装置3において、加工時間(動作完了時間)を取得する。具体的にはロボット制御モジュール300において、上述のステップS22で書き込まれて変数記憶部24に記憶された加工時間(動作完了時間)を読み出して取得する。
【0074】
次いで、図4AのステップS13に示されるようにロボット制御装置3において、数値制御装置2に対して加工の開始を要求する。具体的にはロボット制御モジュール300において、加工開始要求に割り付けられたマクロ変数、例えば変数#105の値を“1”に書き換える。“1”に書き換えられた変数#105は、変数記憶部24に記憶される。
【0075】
これにより、図4BのステップS23に示されるように数値制御装置2において、選択された加工プログラムに従った加工が開始される。具体的には工作機械制御モジュール200において、上述のステップS13で“1”に書き換えられて変数記憶部24に記憶された加工開始要求の変数#105の値を読み出すことにより、加工が開始される。
【0076】
次いで、図4AのステップS14に示されるようにロボット制御装置3において、加工時間(動作完了時間)が経過するまで待機する。即ち、読み書き実行/禁止判定部36により、加工時間(動作完了時間)が経過するまでロボット制御モジュール300からの変数の読み書きが禁止される。これにより、加工時間(動作完了時間)が経過するまでの間、通信負荷が軽減される。
【0077】
次いで、ロボット制御装置3は加工時間(動作完了時間)が経過するまで待機した後、図4AのステップS15に示されるように加工が終了したか否かを判別する。具体的にはロボット制御モジュール300において、変数記憶部24に記憶された加工開始要求のマクロ変数、例えば変数#105の値を読み出し、読み出した値が“0”であるか否かを判別する。この判別がYESであればステップS16に進み、NOであれば本ステップS15の判別を繰り返す。
【0078】
このとき、図4BのステップS24に示されるように数値制御装置2において、加工が完了すると、加工開始要求に割り付けられたマクロ変数、例えば変数#105の値を“0”に書き換える。“0”に書き換えられた変数#105は、変数記憶部24に記憶される。これにより、図4AのステップS15における判別がYESと判別されるようになる。
【0079】
次いで、図4AのステップS16に示されるようにロボット制御装置3において、ワークの交換を要求する。具体的にはロボット制御モジュール300において、ワーク交換要求に割り付けられたマクロ変数、例えば変数#108の値を“1”に書き換える。“1”に書き換えられた変数#108は、変数記憶部24に記憶される。以上により、ロボット制御装置3の処理を終了する。
【0080】
このとき、図4BのステップS25に示されるように数値制御装置2において、数値制御装置2に対してワーク交換位置への軸移動を要求する。具体的には工作機械制御モジュール200において、上述のステップS16で“1”に書き換えられて変数記憶部24に記憶されたワーク交換要求の変数#108の値を読み出すことにより、工作機械20の軸をワーク交換位置へ移動させて、ワークの交換を行う。以上により、数値制御装置2の処理を終了する。
【0081】
本実施形態によれば、以下の効果が奏される。
【0082】
数値制御システム1は、数値制御プログラムに基づいて工作機械20の動作を制御する数値制御装置2と、ロボット制御プログラムに基づいてロボット30の動作を制御するロボット制御装置3と、数値制御装置2及びロボット制御装置3によって読み書き可能な変数の値を記憶する変数記憶部24と、を備える。ロボット制御装置3は、数値制御装置2の変数の読み書きの許可又は禁止を要求する読み書き許可/禁止要求に応じて、変数の読み書きの実行又は禁止を判定する読み書き実行/禁止判定部36を有する。またロボット制御装置3は、読み書き実行/禁止判定部36により変数の読み書きの実行が判定された場合には、変数記憶部24に記憶されている変数の値を読み出し、読み出した変数の値に基づいてロボット30の動作を制御し、変数の読み書きの禁止が判定された場合には、変数記憶部24に記憶されている変数の値の読み出しを禁止する。
【0083】
従来、ロボット制御装置から数値制御装置に対して、マクロ変数経由で動作要求をONにし、ロボット制御装置から定期的に数値制御装置のマクロ変数を読み出して状態を監視し、状態が動作完了となった場合に動作要求をOFFにする必要があったため、通信負荷が大きかった。これに対して本実施形態によれば、読み書き実行/禁止判定部36を備えることにより、ロボット制御装置3による変数の読み書きの許可又は禁止を要求する読み書き許可/禁止要求に応じて、ロボット制御装置3による変数の読み書きの実行又は禁止を判定できるため、通信負荷を軽減することができる。特に、ワークの加工中、即ち数値制御装置2の動作中に、ロボット制御装置3による変数の読み書きを禁止することができるため、ロボット制御装置3からの通信が割り込んで通信負荷が増大し、サイクルタイムの増加や加工精度の低下を招くことを回避できる。
【0084】
また数値制御システム1において、読み書き実行/禁止判定部36は、数値制御装置2の動作完了時間又はロボット制御装置3の動作完了時間を取得し、且つ、これら動作完了時間の経過に基づいた読み書き許可/禁止要求に応じて、ロボット制御装置3による変数の読み書きの実行又は禁止を判定する。また読み書き実行/禁止判定部36は、数値制御装置2の動作完了時間又はロボット制御装置3の動作完了時間の経過後に、ロボット制御装置3による変数の読み書きの実行を判定する。これにより、数値制御装置2の動作完了時間又はロボット制御装置3の動作完了時間が経過するまでの間、ロボット制御装置3による変数の読み書きをより確実に禁止できるため、通信負荷をより確実に軽減することができる。
【0085】
また数値制御システム1において、読み書き実行/禁止判定部36は、数値制御プログラム又はロボット制御プログラム中の変数を介して、数値制御装置2の動作完了時間又はロボット制御装置3の動作完了時間を取得する。これにより、数値制御プログラム又はロボット制御プログラム中の変数に書き込まれた数値制御装置2の動作完了時間又はロボット制御装置3の動作完了時間を読み出すことにより、上述の効果を奏することができる。
【0086】
また数値制御システム1において、数値制御装置2は数値制御プログラムに基づいて変数記憶部24に記憶されている変数の値を読み書きし、ロボット制御装置3はロボット制御プログラムに基づいて変数記憶部24に記憶されている変数の値を読み書きする。即ち、数値制御装置2とロボット制御装置3との間で通知や要求を送信するために用いる変数として、数値制御プログラム及びロボット制御プログラムにおいて定義される変数を用いる。これにより、既設の数値制御装置2やロボット制御装置3のソフトウェアを更新せずに工作機械20の動作とロボット30の動作を連動して制御することができる。
【0087】
また数値制御システム1において、変数は、数値制御プログラム及びロボット制御プログラムにおいて番号又は文字列によって指定される。これにより、動作完了時間が書き込まれる変数を認識し易い効果がある。
【0088】
また数値制御システム1によれば、工作機械制御モジュール200からロボット制御モジュール300への通知や、ロボット制御モジュール300から工作機械制御モジュール200への通知及び要求等を、双方から読み書き可能な変数を介して行うことができるので、新たにI/O信号や外部機器を追加したり、既設のラダー回路を編集したりすることなく容易に工作機械20とロボット30とを連動させることができる。また数値制御システム1によれば、変数記憶部24に様々な変数の値を記憶させるだけで多様な自動化形態への対応も可能になる。
【0089】
[第2実施形態]
図5は、第2実施形態に係る数値制御システム1Aの機能ブロック図である。第2実施形態に係る数値制御システム1Aは、第1実施形態に係る数値制御システム1と比べて、読み書き許可/禁止信号出力部29及び読み書き許可/禁止信号入力部39をさらに備える点と、読み書き実行/禁止判定部36Aの構成が読み書き実行/禁止判定部36と異なる点において相違し、他の構成は第1実施形態と同一である。以下、第1実施形態との相違点について詳細に説明し、第1実施形態と共通する構成についてはその説明を省略する。
【0090】
図5に示されるように数値制御装置2Aは、読み書き許可/禁止信号出力部29を有する。読み書き許可/禁止信号出力部29は、数値制御装置2Aの動作実行中又はロボット制御装置3Aの動作実行中に、ロボット制御装置3Aによる変数の読み書きを禁止するI/O信号である読み書き禁止信号を出力する。また読み書き許可/禁止信号出力部29は、数値制御装置2Aの動作完了後又はロボット制御装置3Aの動作完了後にロボット制御装置3による変数の読み書きを許可するI/O信号である読み書き許可信号を出力する。
【0091】
なお、読み書き許可/禁止信号出力部29から出力されるI/O信号の読み書き許可/禁止信号は、例えば、工作機械20の操作盤やラダープログラム等、数値制御プログラムの外部から入力されたI/O信号に基づいている。
【0092】
ロボット制御装置3Aは、読み書き許可/禁止信号入力部39を有する。読み書き許可/禁止信号入力部39には、上述の読み書き許可/禁止信号出力部29から出力された読み書き許可/禁止信号が入力される。
【0093】
読み書き実行/禁止判定部36Aは、上述の読み書き許可/禁止信号に基づいた読み書き許可/禁止要求に応じて、ロボット制御装置3Aによる変数の読み書きの実行又は禁止を判定する。即ち第1実施形態のように、数値制御プログラム及びロボット制御プログラム中の変数を介して取得された数値制御装置2Aの動作完了時間又はロボット制御装置3Aの動作完了時間の経過に基づいた読み書き許可/禁止要求に応じてロボット制御装置3Aによる変数の読み書きの実行又は禁止を判定するのではなく、本実施形態では、I/O信号である読み書き許可/禁止要求に応じて、ロボット制御装置3Aによる変数の読み書きの実行又は禁止を判定する。
【0094】
図6Aは、第2実施形態に係るロボット制御装置3Aの処理の流れを示すフローチャートである。図6Bは、第2実施形態に係る数値制御装置2Aの処理の流れを示すフローチャートである。これらの処理は、ロボット30の動作の開始に応じて繰り返し実行され、互いに連動して並行に実行される。なお、図6A及び図6Bの説明では、読み書き許可/禁止信号を、OFF(許可)する読み書き許可信号と、ON(禁止)する読み書き許可信号として説明する。
【0095】
先ず、図6BのステップS41に示されるように数値制御装置2Aにおいて、読み書き許可信号を初期化する。具体的には、例えば出力される読み書き許可信号としてDO[100]を定義し、この読み書き許可信号DO[100]をOFF(許可)に書き換える。OFF(許可)に書き換えられた読み書き許可信号DO[100]は、読み書き許可/禁止信号出力部29から読み書き許可/禁止信号入力部39に出力される。
【0096】
次いで、図6BのステップS42に示されるように数値制御装置2Aにおいて、数値制御装置2A内の変数読み書き用通信動作要求が有ったか否かを判別する。この判別がYESであれば、ステップS43に進んで読み書き許可信号DO[100]をON(禁止)に書き換え、読み書き許可/禁止信号出力部29から読み書き許可/禁止信号入力部39に出力した後、ステップS44に進んで変数読み書き用通信動作を実行する。実行後はステップS45に進んで読み書き許可信号DO[100]をOFF(許可)に書き換え、読み書き許可/禁止信号出力部29から読み書き許可/禁止信号入力部39に出力することにより、数値制御装置2Aの処理を終了する。
【0097】
なお、この変数読み書き用通信動作要求は、例えば、所定の変数に割り当てられ、ロボット制御モジュール300から工作機械制御モジュール200に対して要求されて変数記憶部24に記憶されており、工作機械制御モジュール200がこれを読み出すことにより取得される。また、ステップS42の判別がNOであれば、本ステップS42の判別を繰り返す。
【0098】
一方、図6AのステップS31に示されるようにロボット制御装置3Aにおいて、読み書き許可/禁止信号入力部39に入力される読み書き許可信号DI[100]がON(禁止)であるか否かを判別する。この判別がYESであれば、読み書き禁止状態であるためステップS32に進んで予め定められた規定時間待機した後、ステップS31の判別に戻る。また、この判別がNOであれば、読み書き許可状態であるためステップS33に進んで変数読み書き用通信を開始する。
【0099】
次いで、図6AのステップS34に示されるようにロボット制御装置3Aにおいて、数値制御装置2A内の変数を読み込む。具体的には、ロボット制御モジュール300において、変数記憶部24に記憶されている数値制御装置2内の変数を読み出す。
【0100】
次いで、図6AのステップS35に示されるようにロボット制御装置3Aにおいて、数値制御装置2A内の変数を書き換える。具体的には、ロボット制御モジュール300において、変数記憶部24に記憶されている数値制御装置2内の変数を書き換える。
【0101】
次いで、図6AのステップS36に示されるようにロボット制御装置3Aにおいて、変数の値に応じてロボットプログラム内の命令を実行する。以上により、ロボット制御装置3Aの処理を終了する。
【0102】
本実施形態によれば、第1実施形態と同様の効果に加えて、以下の効果が奏される。
【0103】
数値制御装置2Aは、数値制御装置2Aの動作実行中又はロボット制御装置3Aの動作実行中にロボット制御装置3Aによる変数の読み書きを禁止するI/O信号である読み書き禁止信号を出力し、且つ、数値制御装置2Aの動作完了後又はロボット制御装置3Aの動作完了後にロボット制御装置3Aによる変数の読み書きを許可するI/O信号である読み書き許可信号を出力する読み書き許可/禁止信号出力部29を有する。ロボット制御装置3Aは、読み書き許可/禁止信号出力部29から出力された読み書き許可/禁止信号が入力される読み書き許可/禁止信号入力部39を有する。また、読み書き実行/禁止判定部36Aは、読み書き許可/禁止信号に基づいた読み書き許可/禁止要求に応じて、ロボット制御装置3Aによる変数の読み書きの実行又は禁止を判定する。これにより、変数によって数値制御プログラムから操作できるだけでなく、I/O信号を使うことで工作機械20の操作盤やラダープログラム等、数値制御プログラムの外部から読み書き禁止要求が操作できる。
【0104】
本開示は、上記実施形態に限定されるものではなく、種々の変更及び変形が可能である。
【0105】
例えば上記実施形態では、工作機械制御モジュール200及びロボット制御モジュール300の双方から読み書き可能な複数の変数の値を記憶する変数記憶部24を、数値制御装置2に設けた場合について説明したが、これに限らない。
【0106】
変数記憶部は、例えば、数値制御装置と通信可能に接続されたロボット制御装置に設けてもよい。この場合、数値制御装置の工作機械制御モジュールは、ロボット制御装置に設けられた変数記憶部に記憶された変数の値を、上記通信を介して読み書きすることができるので、上記実施形態と同様の効果を奏する。
【0107】
また変数記憶部は、例えば、数値制御装置及びロボット制御装置とそれぞれ通信可能に接続されたサーバに設けてもよい。この場合、数値制御装置の工作機械制御モジュール及びロボット制御装置のロボット制御モジュールは、サーバに設けられた変数記憶部に記憶された変数の値を、それぞれ上記通信を介して読み書きすることができるので、上記実施形態と同様の効果を奏する。
【符号の説明】
【0108】
1,1A 数値制御システム
2,2A 数値制御装置
3,3A ロボット制御装置
20 工作機械
21 記憶部
22 プログラム入力部
23 解析部
24 変数記憶部
25 データ送受信部
26 I/O制御部
27 補間制御部
28 サーボ制御部
29 読み書き許可/禁止信号出力部
30 ロボット
30a アーム先端部
30b ツール
31 記憶部
32 プログラム入力部
33 解析部
35 データ送受信部
36,36A 読み書き実行/禁止判定部
37 軌跡制御部
38 サーボ制御部
39 読み書き許可/禁止信号入力部
200 工作機械制御モジュール
300 ロボット制御モジュール
図1
図2
図3
図4A
図4B
図5
図6A
図6B