特許第6203691号(P6203691)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

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

特許6203691複数軸の軸制御処理を分散して実行可能な数値制御装置
<>
  • 特許6203691-複数軸の軸制御処理を分散して実行可能な数値制御装置 図000002
  • 特許6203691-複数軸の軸制御処理を分散して実行可能な数値制御装置 図000003
  • 特許6203691-複数軸の軸制御処理を分散して実行可能な数値制御装置 図000004
  • 特許6203691-複数軸の軸制御処理を分散して実行可能な数値制御装置 図000005
  • 特許6203691-複数軸の軸制御処理を分散して実行可能な数値制御装置 図000006
  • 特許6203691-複数軸の軸制御処理を分散して実行可能な数値制御装置 図000007
  • 特許6203691-複数軸の軸制御処理を分散して実行可能な数値制御装置 図000008
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6203691
(24)【登録日】2017年9月8日
(45)【発行日】2017年9月27日
(54)【発明の名称】複数軸の軸制御処理を分散して実行可能な数値制御装置
(51)【国際特許分類】
   G05B 19/414 20060101AFI20170914BHJP
   G05B 19/4155 20060101ALI20170914BHJP
【FI】
   G05B19/414 P
   G05B19/4155 X
【請求項の数】1
【全頁数】10
(21)【出願番号】特願2014-175149(P2014-175149)
(22)【出願日】2014年8月29日
(65)【公開番号】特開2016-51258(P2016-51258A)
(43)【公開日】2016年4月11日
【審査請求日】2015年8月20日
(73)【特許権者】
【識別番号】390008235
【氏名又は名称】ファナック株式会社
(74)【代理人】
【識別番号】110001151
【氏名又は名称】あいわ特許業務法人
(72)【発明者】
【氏名】荻野 秀雄
【審査官】 牧 初
(56)【参考文献】
【文献】 特開2013−54730(JP,A)
【文献】 特開2012−139047(JP,A)
【文献】 特開平1−161503(JP,A)
【文献】 特開平9−6425(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 19/18−19/416
G05B 19/42−19/46
(57)【特許請求の範囲】
【請求項1】
複数のコアを有するマルチコアプロセッサを備え、複数軸で構成される機械を制御し、前記複数軸の軸毎に処理される軸別処理と、軸間で共通に処理される共通処理とから構成される軸制御処理を、既定周期の時間内に完了する数値制御装置において、
前記複数軸の前記軸制御処理を所定の軸数単位で複数に分割した複数の分割軸別処理を、コア間割り込みを使用して前記複数のコアにそれぞれ実行要求する実行開始要求手段と、
前記複数のコアにそれぞれ配置され、前記実行開始要求手段による要求を受けて、前記分割軸別処理を実行し、該分割軸別処理の完了状態をコア間共有メモリに書き込む分割軸別処理実行手段と、
前記コア間共有メモリに書き込まれた前記分割軸別処理実行手段による前記複数の分割軸別処理の完了状態を監視する実行完了監視手段とを備え、
前記実行完了監視手段は、1つ以上の前記分割軸別処理の実行が未完了の場合に、自動運転処理またはHMI処理のうち少なくとも1つを含む非リアルタイム処理を一定時間実行させ、再び実行完了監視に戻ることを特長とする数値制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、数値制御装置に関し、特にマルチコアプロセッサを有する数値制御装置において、軸制御処理を複数のコアに分散して実行させて性能の向上を可能とする数値制御装置に関する。
【背景技術】
【0002】
工作機械を制御する数値制御装置のコントロールソフトウェアの処理には、各種補間処理や各制御軸への分配データを作成するための軸制御処理に代表されるリアルタイム性が高い処理と、加工プログラムの解析や補間準備データの作成を行う自動運転処理や、画面表示や操作に応じた動作を行うHMI処理に代表されるリアルタイム性の低い処理が存在する。
【0003】
リアルタイム性が高い軸制御処理は、既定の周期内に完了する必要があるため、制御軸数の増加にともない軸制御処理の時間が増大すると、他のリアルタイム性の低い自動運転処理やHMI処理等には、既定周期内での処理時間の割り当てが困難になる。例えば金型加工で指令される微小線分で構成された加工プログラムを高速に運転する場合では、加工プログラムの解析と補間準備データの作成を短時間で大量に行う必要があるが、このように軸制御処理の時間が増大した状況になると、自動運転処理やHMI処理が十分行われないため、指令速度に到達できない、分配パルスが途切れて加工面が乱れる、画面表示の更新や操作の応答が遅くなるといった問題が生じる。
【0004】
加工プログラムの解析と補間準備データの作成を円滑に行う目的として、特許文献1および特許文献2に開示されているように、加工プログラムの解析と補間準備データの作成を複数の工程に分割し、マルチCPUのハードウェア構成を使用して分割された各工程をそれぞれのCPUに分担させて処理する技術が提案されている。
【0005】
また、特許文献3に開示されているように、コスト削減を目的として、従来別々だった数値制御プロセッサとシーケンス制御プロセッサをそれぞれひとつのプロセッサのマルチコアの一つとして統合したマルチコアプロセッサを有する数値制御装置を提供し、併せてプロセッサと周辺制御LSI間を高速なシリアルバスにより接続することでLSIのピンの削減をはかり、周辺制御LSIの統合化を可能にする技術が提案されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開昭63−181005公報
【特許文献2】特開平1−195507号公報
【特許文献3】特開2014−35564号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
数値制御装置のコントロールソフトウェアの処理量は、工作機械の多軸化、多系統化や、高機能化の要望実現により年々増加しており、特に多軸化による軸制御処理の増加は顕著である。また、より高速かつ高精度な加工を実現するために、リアルタイム性の高い軸制御処理の既定周期をより短縮化することも要求されており、結果として、より短時間でより多くの処理を行うことが必要である。
【0008】
特許文献1、2に記載のマルチCPUのハードウェア構成では、CPU数の増加とともにコストも上昇し、さらにそれを搭載する周辺のハードウェア回路も複雑になるため設計や保守に係る工数が増大する。また、加工プログラムの解析と補間準備データの作成処理時間を軽減するものの、工作機械の多軸化による軸制御処理の増加を直接軽減するものではないため、近年の要求に対する対策としては不十分である。さらに動作周波数の高いCPUを採用することで処理時間を高速化することも可能ではあるが、発熱や消費電力が増大するという問題が生じ、製造現場など厳しい環境下で使用される工作機械の制御に使用するプロセッサとしては不向きである。
【0009】
特許文献3に記載のマルチコアプロセッサを有する数値制御装置の場合、コストを削減しつつ発熱や消費電力も低く抑えられるが、工作機械の多軸化による軸制御処理の増加を直接軽減するものではないため、特許文献1、2と同様に近年の要求に対する対策としては不十分である。
【0010】
そこで本発明の目的は、比較的動作周波数が低く発熱や消費電力も低く抑えられ、かつマルチCPU構成よりも安価なマルチコアプロセッサを使用し、軸制御処理を任意の軸数単位に分割し、マルチコアプロセッサの複数のコアに分散させて実行させるための手段を備えた数値制御装置を提供することである。
【課題を解決するための手段】
【0011】
本願の請求項1に係る発明は、複数のコアを有するマルチコアプロセッサを備え、複数軸で構成される機械を制御し、前記複数軸の軸毎に処理される軸別処理と、軸間で共通に処理される共通処理とから構成される軸制御処理を、既定周期の時間内に完了する数値制御装置において、前記複数軸の前記軸制御処理を所定の軸数単位で複数に分割した複数の分割軸別処理を、コア間割り込みを使用して前記複数のコアにそれぞれ実行要求する実行開始要求手段と、前記複数のコアにそれぞれ配置され、前記実行開始要求手段による要求を受けて、前記分割軸別処理を実行し、該分割軸別処理の完了状態をコア間共有メモリに書き込む分割軸別処理実行手段と、前記コア間共有メモリに書き込まれた前記分割軸別処理実行手段による前記複数の分割軸別処理の完了状態を監視する実行完了監視手段とを備え、前記実行完了監視手段は、1つ以上の前記分割軸別処理の実行が未完了の場合に、自動運転処理またはHMI処理のうち少なくとも1つを含む非リアルタイム処理を一定時間実行させ、再び実行完了監視に戻ることを特長とする数値制御装置である。
【発明の効果】
【0013】
本発明により、制御軸数の多い工作機械を制御する場合でも、マルチコアプロセッサを使用してリアルタイム性の高い軸制御処理を短時間により多く行うことが可能になり、さらには自動運転処理やHMI処理などのリアルタイム性の低い処理への割当時間も十分確保できるようになる。このため、発熱や消費電力を低く抑えつつ比較的安価に数値制御装置全体の性能を向上させられるので、工作機械の多軸・多系統化や、高機能化の要求に応じることが可能となる。
さらに、将来的に制御軸数が増加した場合であっても、コア数の多いマルチコアプロセッサを使用して増加分の軸に関する軸制御処理を分散させればよく、制御軸数増加に対する対応が容易となる。
【図面の簡単な説明】
【0014】
図1】本発明の実施の形態における、マルチコアプロセッサを有する数値制御装置の要部ブロック図である。
図2】マルチコアプロセッサを使用せず1CPUで実現される従来の数値制御装置における、通常時と軸制御処理の増大時における既定周期1回当たりに実行される処理の概要を示す図である。
図3図2で示した軸制御処理の増大時における既定周期1回当たりに実行される処理の概要において、軸制御処理が共通処理部4つと16軸分の軸別処理部3つで構成される例を示す図である。
図4】本発明の実施の形態における、4コアを有するマルチコアプロセッサを使用した軸制御処理の分散例を示す図である。
図5】本発明の実施の形態における、実行開始要求手段のフローチャートである。
図6】本発明の実施の形態における、分割軸別処理実行手段のフローチャートである。
図7】本発明の実施の形態における、実行完了監視手段のフローチャートである。
【発明を実施するための形態】
【0015】
以下に、本発明の一実施の形態を図面と共に説明する。
図1は、本発明の一実施形態におけるマルチコアプロセッサを有する数値制御装置の要部を説明するブロック図である。数値制御装置10には、マルチコアプロセッサ30と統合化周辺制御LSI11が実装され、更に、モータ制御部プロセッサ14およびその周辺制御LSI15からなるモータ制御部13と、モータ駆動用アンプ20との間の通信を行うアンプインタフェース部16があり、それぞれ、内部バス22により接続されている。
【0016】
マルチコアプロセッサ30は、第1コア31から第4コア34までの4つのコア、割り込みのうち特にCPUコア間の割り込みを発生させるコア間割り込み発生部35、各種デバイスからの状態変化などを伝えるために割り込みを発生させる割り込み制御部36を備えて構成され、これらがプロセッサ内部バス37で接続されている。また、各コア31〜34間で情報を共有するためのコア間通信で用いられるコア間共有メモリを備えている。例えば、コア間共有メモリとしてDRAM12が使用される。
【0017】
マルチコアプロセッサ30では、数値制御装置10と接続されたモータ駆動用アンプ20を制御するための加工プログラムを加工プログラム解析処理を実行することで解析し、解析結果に基づいて移動指令作成処理を実行して移動指令を作成し、前記移動指令を統合化周辺制御LSI11及び内部バス22を経由して、モータ制御部13の周辺制御LSI15の内部のRAM(図示せず)へ送信する。
【0018】
モータ制御部13のモータ制御部プロセッサ14では、この内部のRAMに書かれた移動指令を読み取り、モータ駆動用アンプ20へ送信するモータ制御用のデータを作成し、内部バス22を経由してアンプインタフェース部16の通信制御LSI17に前記データを書き込む。
【0019】
アンプインタフェース部16の通信制御LSI17では、通信制御LSI17の内部のRAMに書き込まれたデータをモータ駆動用アンプ20に送信し、モータ駆動用アンプ20が工作機械(図示せず)に備わった複数の軸に相当するモータ21を駆動し、工作機械(図示せず)を制御する。
【0020】
また、マルチコアプロセッサ30では、数値制御装置10と接続された工作機械(図示せず)からの入力データ等に基づいて所定のシーケンス制御用プログラムを実行するPMC処理も実行される。そして、PMC処理結果に基づいて機械の各機械要素を制御するための信号を機械側I/Oユニット18に送信する。
【0021】
表示器/MDIユニット19はディスプレイやキーボード等を備えた手動データ入力装置である。統合化周辺制御LSI11は、キーボードからの指令、データを受け付けてマルチコアプロセッサ30へ渡すと共に、マルチコアプロセッサ30上で実行される表示処理からの出力される表示指令をディスプレイへと出力する。
【0022】
図2は、マルチコアプロセッサを使用せず1CPUで実現される従来の数値制御装置における、通常時と軸制御処理の増大時における既定周期1回当たりに実行される処理の概要を示す図である。本図に示される軸制御処理は、各種補間処理や各制御軸への分配パルス作成処理などのリアルタイム性の高い処理であり、制御軸数分の処理が既定周期内で必ず終了する必要がある。
【0023】
一方、自動運転処理は、工作機械を駆動してワークを加工するためにユーザが作成して指令する加工プログラムを解析し、補間のための準備データを作成するための処理である。また、HMI処理は画面表示や操作に応じた動作を行うための処理で、両処理とも、必ずしも規定周期内で終了する必要はないリアルタイム性の低い処理であり、終了できずに残った処理は、次の周期で継続して実行される。
【0024】
例えば、X−Y−Zの基本3軸で構成されるような制御軸数の少ない工作機械を制御する数値制御装置では、図2の左(通常時)に示すように、規定周期内のうち軸制御処理の占める割合は比較的小さいため、自動運転処理やHMI処理にも十分な時間が割り当てられる。
一方、テーブルや工具の姿勢を制御するために複数の回転軸を有するものや、複数のワークを設置して同時に加工するために上述の基本3軸や回転軸を複数有するような多軸工作機械も存在する。このような制御軸数の多い工作機械を制御する数値制御装置では、図2の右(軸制御処理増大時)に示すように、規定周期内のうち軸制御処理の占める割合が比較的大きいため、自動運転処理やHMI処理には十分な時間が割り当てられなくなる。
【0025】
このような状況になると、金型の加工プログラムのようにブロック長が短くかつ加工速度の速い加工プログラムを運転する場合などには、加工プログラムの解析や補間のための準備データの作成が間に合わなくなるために加工面が乱れたり、画面表示の更新や操作の応答が遅くなるといった弊害が生じる。
【0026】
数値制御装置の軸制御処理には、各制御軸に依存せず共通に処理される共通処理と、各制御軸毎に個別に処理される軸別処理とが存在する。図3は、図2で示した軸制御処理増大時における既定周期1回当たりに実行される処理の概要において、軸制御処理が共通処理4つと16軸分の軸別処理3つで構成される例を示す図である。軸別処理では、第1軸から第16軸までを順番に、軸ループ内で繰り返し処理を実行する。
【0027】
図4は、図3で示した軸別処理<1>について、本発明の実施の形態における、4つのコアを有するマルチコアプロセッサを使用した軸制御処理の分散例を示す図である。図3で示した共通処理<1>および共通処理<2>は第1コアで処理し、その間に実行すべき図3で示した16軸分の軸別処理<1>のうち、第1軸から第4軸までの4軸分の分割軸別処理<1>を第1コアに、第5軸から第8軸までの4軸分の分割軸別処理<2>を第2コアに、第9軸から第12軸までの4軸分の分割軸別処理<3>を第3コアに、第13軸から第16軸までの4軸分の分割軸別処理<4>を第4コアに、それぞれ4つに分散させて処理するものである。
【0028】
第1コアでは、共通処理<1>を実行後、実行開始要求手段による処理が行われる。4つに分割された分割軸別処理の完了を示す完了情報が、分割数の4つ分、コア間共有メモリに配置されており、本処理において、まずこれら4つの完了情報を初期化する。続いて第2、第3、第4コアに対してコア間割り込み発生部35を経由してコア間割り込みを発生させ、それらのコア毎に割り振られた分割軸別処理実行手段<2><3><4>による処理開始を要求する。その後、第1コア自身に割り振られた分割軸別処理実行手段<1>による処理を開始する。
第2、第3、第4コアでは、上述のコア間割り込みの発生を受けて、割り込みに対応づけられた分割軸別処理実行手段<2><3><4>による処理をコア毎に起動して実行する。
【0029】
分割軸別処理実行手段<1><2><3><4>による処理では、各コアに割り振られた分割軸別処理<1><2><3><4>を割り振られた軸数分(本実施例ではどのコアも全て4軸分)繰り返し実行する。各コアに割り振られた軸数分の処理が全て完了すると、分割軸別処理実行手段<1><2><3><4>により該当するコアに割り振られた分割軸別処理が完了したことを、コア間共有メモリに配置された完了情報に通知する。
【0030】
一方、第1コアでは、分割軸別処理<1>が完了し完了情報を通知すると、実行完了監視手段による処理が行われる。ここでは全4コア分の分割軸別処理の完了情報を確認し、全て完了状態になったことをもって、本手段の処理を終了し、共通処理部<2>の実行に移る。
【0031】
図5は、本発明の実施の形態における、実行開始要求手段により実行される実行開始要求処理のフローチャートである。本処理は、マルチコアプロセッサのいずれかのコア上(本実施の形態においては第1コア)で実行され、各コアに分割軸別処理の割り当てと、分割軸別処理の開始要求を行うものである。
【0032】
●[ステップSA01]コア間共有メモリに配置されている全完了情報を初期化する。
●[ステップSA02]変数n(分割軸別処理の分割数カウンタ)に2を割り当てる。
●[ステップSA03]第n番目の分割軸別処理を実行するコアに対し、コア間割り込み発生部35を経由してコア間割り込みを発行する。
●[ステップSA04]変数nの値を1増加させる。
●[ステップSA05]変数nの値が分割軸別処理の分割数よりも大きいか判定する。変数nが分割軸別処理の分割数よりも大きい場合にはステップSA06へ進み、それ以下の場合にはステップSA03へ戻る。
●[ステップSA06]自コア上で機能する分割軸別処理実行手段により、第1番目の分割軸別処理を起動する。
【0033】
図6は、本発明の実施の形態における、分割軸別処理実行手段により実行される分割軸別処理実行処理のフローチャートである。本処理は、各コア上で実行され、自コアに割り当てられた分割軸別処理を順次実行するものである。
【0034】
●[ステップSB01]変数m(分割軸数カウンタ)に1を割り当てる。
●[ステップSB02]分割軸別処理内の、第m番目の軸処理を実行する。
●[ステップSB03]変数mの値を1増加させる。
●[ステップSB04]変数mの値が自コアに割り当てられた分割軸数よりも大きいか判定する。変数mが自コアに割り当てられた分割軸数よりも大きい場合にはステップSB05へ進み、それ以下の場合にはステップSB02へ戻る。
●[ステップSB05]自コアに割り当てられた分割軸別処理の完了を示す完了情報を完了状態にセットする。
【0035】
図7は、本発明の実施の形態における、実行完了監視手段により実行される実行完了監視処理のフローチャートである。本処理は、マルチコアプロセッサのいずれかのコア上(本実施の形態においては第1コア)で実行され、各コアに割り当てられた分割軸別処理の完了を待ち合わせるためのものである。
【0036】
●[ステップSC01]変数n(分割軸別処理の分割数カウンタ)に1を割り当てる。
●[ステップSC02]第n番目の完了情報が完了状態となったか判定する。第n番目の完了情報が完了状態である場合にはステップSC03へ進み、完了状態でない場合にはステップSC02を繰り返す。
●[ステップSC03]変数nの値を1増加させる。
●[ステップSC04]変数nの値が分割軸別処理の分割数よりも大きいか判定する。変数nが分割軸別処理の分割数よりも大きい場合には本処理を終了し、それ以下の場合にはステップSC02へ戻る。
【0037】
なお、一般に工作機械を制御する軸には、加工ワークを設置するテーブルや工具の位置および姿勢を制御するサーボ軸、および加工ワークの旋回や工具の回転を制御するスピンドル軸(主軸)など、様々な用途の軸が存在するが、上述した実施の形態の例における軸制御処理は、これら様々な用途の軸の軸制御に適用できる。
【0038】
以上、本発明の一実施の形態について説明したが、本発明は上述した実施の形態の例に限定されることなく、適宜の変更を加えることにより、その他の形態で実施することができる。
例えば、実行完了監視手段において、1つ以上の分割軸別処理の実行が未完了を検出した場合は、下位レベルの非リアルタイム処理を一定時間実行させ、再び実行完了監視に戻るように動作させてもよい。また、各コアに振り分けられる分割軸別処理の処理軸数は、必ずしも一定である必要はなく、例えば15軸構成時には第1コアに3軸、第2から第4コアに4軸ずつ振り分けるなど、軸構成やコア能力に応じてコア毎に振り分ける軸数を設定し、変更できるようにしてもよい。
【符号の説明】
【0039】
10 数値制御装置
11 統合化周辺制御LSI
12 DRAM
13 モータ制御部
14 モータ制御部プロセッサ
15 周辺制御LSI
16 アンプインタフェース部
17 通信制御LSI
18 機械側I/Oユニット
19 表示器/MDIユニット
20 モータ駆動用アンプ
21 モータ
30 マルチコアプロセッサ
31 第1コア
32 第2コア
33 第3コア
34 第4コア
35 コア間割り込み発生部
36 割り込み制御部
図1
図2
図3
図4
図5
図6
図7