(57)【要約】【課題】比較的動作周波数が低く発熱や消費電力も低く抑えられ、かつマルチＣＰＵ構成よりも安価なマルチコアプロセッサを使用し、軸制御処理を任意の軸数単位に分割し、マルチコアプロセッサの複数のコアに分散させて実行させるための手段を備えた数値制御装置を提供すること。【解決手段】複数軸で構成される機械を制御し、複数のコアを有するマルチコアプロセッサを備えた数値制御装置において、前記複数軸の前記軸制御処理を所定の軸数単位で複数に分割した複数の分割軸別処理を、前記複数のコアにそれぞれ実行させることを要求する実行開始要求手段と、前記複数のコアにそれぞれ配置され、前記実行開始要求手段による要求を受けて、前記分割軸別処理を実行する分割軸別処理実行手段と、前記分割軸別処理実行手段による前記複数の分割軸別処理の完了状態を監視する実行完了監視手段とを備える数値制御装置を提供する。【選択図】図４
2016051258.tif 000002
【特許請求の範囲】
【請求項１】
複数のコアを有するマルチコアプロセッサを備え、複数軸で構成される機械を制御し、前記複数軸の軸毎に処理される軸別処理と、軸間で共通に処理される共通処理とから構成される軸制御処理を、既定周期の時間内に完了する数値制御装置において、
前記複数軸の前記軸制御処理を任意の軸数単位で複数に分割した複数の分割軸別処理を、前記複数のコアにそれぞれ実行要求する実行開始要求手段と、
前記複数のコアにそれぞれ配置され、前記実行開始要求手段による要求を受けて、前記分割軸別処理を実行する分割軸別処理実行手段と、
前記分割軸別処理実行手段による前記複数の分割軸別処理の完了状態を監視する実行完了監視手段と、
を備えたことを特長とする数値制御装置。
【請求項２】
前記実行開始要求手段が、前記複数の分割軸別処理を前記複数のコア毎に分散して実行させる要求をする際、コア間割り込みを使用する、
ことを特長とする請求項１に記載の数値制御装置。
【請求項３】
前記分割軸別処理実行手段は、コア間共有メモリに分割軸別処理の完了状態を書き込み、
前記実行完了監視手段は、前記コア間共有メモリを監視する、
ことを特長とする請求項１に記載の数値制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、数値制御装置に関し、特にマルチコアプロセッサを有する数値制御装置において、軸制御処理を複数のコアに分散して実行させて性能の向上を可能とする数値制御装置に関する。
【背景技術】
【０００２】
工作機械を制御する数値制御装置のコントロールソフトウェアの処理には、各種補間処理や各制御軸への分配データを作成するための軸制御処理に代表されるリアルタイム性が高い処理と、加工プログラムの解析や補間準備データの作成を行う自動運転処理や、画面表示や操作に応じた動作を行うＨＭＩ処理に代表されるリアルタイム性の低い処理が存在する。
【０００３】
リアルタイム性が高い軸制御処理は、既定の周期内に完了する必要があるため、制御軸数の増加にともない軸制御処理の時間が増大すると、他のリアルタイム性の低い自動運転処理やＨＭＩ処理等には、既定周期内での処理時間の割り当てが困難になる。例えば金型加工で指令される微小線分で構成された加工プログラムを高速に運転する場合では、加工プログラムの解析と補間準備データの作成を短時間で大量に行う必要があるが、このように軸制御処理の時間が増大した状況になると、自動運転処理やＨＭＩ処理が十分行われないため、指令速度に到達できない、分配パルスが途切れて加工面が乱れる、画面表示の更新や操作の応答が遅くなるといった問題が生じる。
【０００４】
加工プログラムの解析と補間準備データの作成を円滑に行う目的として、特許文献１および特許文献２に開示されているように、加工プログラムの解析と補間準備データの作成を複数の工程に分割し、マルチＣＰＵのハードウェア構成を使用して分割された各工程をそれぞれのＣＰＵに分担させて処理する技術が提案されている。
【０００５】
また、特許文献３に開示されているように、コスト削減を目的として、従来別々だった数値制御プロセッサとシーケンス制御プロセッサをそれぞれひとつのプロセッサのマルチコアの一つとして統合したマルチコアプロセッサを有する数値制御装置を提供し、併せてプロセッサと周辺制御ＬＳＩ間を高速なシリアルバスにより接続することでＬＳＩのピンの削減をはかり、周辺制御ＬＳＩの統合化を可能にする技術が提案されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開昭６３−１８１００５公報
【特許文献２】特開平１−１９５５０７号公報
【特許文献３】特開２０１４−３５５６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
数値制御装置のコントロールソフトウェアの処理量は、工作機械の多軸化、多系統化や、高機能化の要望実現により年々増加しており、特に多軸化による軸制御処理の増加は顕著である。また、より高速かつ高精度な加工を実現するために、リアルタイム性の高い軸制御処理の既定周期をより短縮化することも要求されており、結果として、より短時間でより多くの処理を行うことが必要である。
【０００８】
特許文献１、２に記載のマルチＣＰＵのハードウェア構成では、ＣＰＵ数の増加とともにコストも上昇し、さらにそれを搭載する周辺のハードウェア回路も複雑になるため設計や保守に係る工数が増大する。また、加工プログラムの解析と補間準備データの作成処理時間を軽減するものの、工作機械の多軸化による軸制御処理の増加を直接軽減するものではないため、近年の要求に対する対策としては不十分である。さらに動作周波数の高いＣＰＵを採用することで処理時間を高速化することも可能ではあるが、発熱や消費電力が増大するという問題が生じ、製造現場など厳しい環境下で使用される工作機械の制御に使用するプロセッサとしては不向きである。
【０００９】
特許文献３に記載のマルチコアプロセッサを有する数値制御装置の場合、コストを削減しつつ発熱や消費電力も低く抑えられるが、工作機械の多軸化による軸制御処理の増加を直接軽減するものではないため、特許文献１、２と同様に近年の要求に対する対策としては不十分である。
【００１０】
そこで本発明の目的は、比較的動作周波数が低く発熱や消費電力も低く抑えられ、かつマルチＣＰＵ構成よりも安価なマルチコアプロセッサを使用し、軸制御処理を任意の軸数単位に分割し、マルチコアプロセッサの複数のコアに分散させて実行させるための手段を備えた数値制御装置を提供することである。
【課題を解決するための手段】
【００１１】
本願の請求項１に係る発明は、複数のコアを有するマルチコアプロセッサを備え、複数軸で構成される機械を制御し、前記複数軸の軸毎に処理される軸別処理と、軸間で共通に処理される共通処理とから構成される軸制御処理を、既定周期の時間内に完了する数値制御装置において、前記複数軸の前記軸制御処理を所定の軸数単位で複数に分割した複数の分割軸別処理を、前記複数のコアにそれぞれ実行要求する実行開始要求手段と、前記複数のコアにそれぞれ配置され、前記実行開始要求手段による要求を受けて、前記分割軸別処理を実行する分割軸別処理実行手段と、前記分割軸別処理実行手段による前記複数の分割軸別処理の完了状態を監視する実行完了監視手段と、を備えたことを特長とする数値制御装置である。
【００１２】
本願の請求項２に係る発明は、前記実行開始要求手段が、前記複数の分割軸別処理を前記複数のコア毎に分散して実行させる要求をする際、コア間割り込みを使用する、ことを特長とする請求項１に記載の数値制御装置である。
本願の請求項３に係る発明は、前記分割軸別処理実行手段は、コア間共有メモリに分割軸別処理の完了状態を書き込み、前記実行完了監視手段は、前記コア間共有メモリを監視する、ことを特長とする請求項１に記載の数値制御装置である。
【発明の効果】
【００１３】
本発明により、制御軸数の多い工作機械を制御する場合でも、マルチコアプロセッサを使用してリアルタイム性の高い軸制御処理を短時間により多く行うことが可能になり、さらには自動運転処理やＨＭＩ処理などのリアルタイム性の低い処理への割当時間も十分確保できるようになる。このため、発熱や消費電力を低く抑えつつ比較的安価に数値制御装置全体の性能を向上させられるので、工作機械の多軸・多系統化や、高機能化の要求に応じることが可能となる。
さらに、将来的に制御軸数が増加した場合であっても、コア数の多いマルチコアプロセッサを使用して増加分の軸に関する軸制御処理を分散させればよく、制御軸数増加に対する対応が容易となる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施の形態における、マルチコアプロセッサを有する数値制御装置の要部ブロック図である。
【図２】マルチコアプロセッサを使用せず１ＣＰＵで実現される従来の数値制御装置における、通常時と軸制御処理の増大時における既定周期１回当たりに実行される処理の概要を示す図である。
【図３】図２で示した軸制御処理の増大時における既定周期１回当たりに実行される処理の概要において、軸制御処理が共通処理部４つと１６軸分の軸別処理部３つで構成される例を示す図である。
【図４】本発明の実施の形態における、４コアを有するマルチコアプロセッサを使用した軸制御処理の分散例を示す図である。
【図５】本発明の実施の形態における、実行開始要求手段のフローチャートである。
【図６】本発明の実施の形態における、分割軸別処理実行手段のフローチャートである。
【図７】本発明の実施の形態における、実行完了監視手段のフローチャートである。
【発明を実施するための形態】
【００１５】
以下に、本発明の一実施の形態を図面と共に説明する。
図１は、本発明の一実施形態におけるマルチコアプロセッサを有する数値制御装置の要部を説明するブロック図である。数値制御装置１０には、マルチコアプロセッサ３０と統合化周辺制御ＬＳＩ１１が実装され、更に、モータ制御部プロセッサ１４およびその周辺制御ＬＳＩ１５からなるモータ制御部１３と、モータ駆動用アンプ２０との間の通信を行うアンプインタフェース部１６があり、それぞれ、内部バス２２により接続されている。
【００１６】
マルチコアプロセッサ３０は、第１コア３１から第４コア３４までの４つのコア、割り込みのうち特にＣＰＵコア間の割り込みを発生させるコア間割り込み発生部３５、各種デバイスからの状態変化などを伝えるために割り込みを発生させる割り込み制御部３６を備えて構成され、これらがプロセッサ内部バス３７で接続されている。また、各コア３１〜３４間で情報を共有するためのコア間通信で用いられるコア間共有メモリを備えている。例えば、コア間共有メモリとしてＤＲＡＭ１２が使用される。
【００１７】
マルチコアプロセッサ３０では、数値制御装置１０と接続されたモータ駆動用アンプ２０を制御するための加工プログラムを加工プログラム解析処理を実行することで解析し、解析結果に基づいて移動指令作成処理を実行して移動指令を作成し、前記移動指令を統合化周辺制御ＬＳＩ１１及び内部バス２２を経由して、モータ制御部１３の周辺制御ＬＳＩ１５の内部のＲＡＭ（図示せず）へ送信する。
【００１８】
モータ制御部１３のモータ制御部プロセッサ１４では、この内部のＲＡＭに書かれた移動指令を読み取り、モータ駆動用アンプ２０へ送信するモータ制御用のデータを作成し、内部バス２２を経由してアンプインタフェース部１６の通信制御ＬＳＩ１７に前記データを書き込む。
【００１９】
アンプインタフェース部１６の通信制御ＬＳＩ１７では、通信制御ＬＳＩ１７の内部のＲＡＭに書き込まれたデータをモータ駆動用アンプ２０に送信し、モータ駆動用アンプ２０が工作機械（図示せず）に備わった複数の軸に相当するモータ２１を駆動し、工作機械（図示せず）を制御する。
【００２０】
また、マルチコアプロセッサ３０では、数値制御装置１０と接続された工作機械（図示せず）からの入力データ等に基づいて所定のシーケンス制御用プログラムを実行するＰＭＣ処理も実行される。そして、ＰＭＣ処理結果に基づいて機械の各機械要素を制御するための信号を機械側Ｉ／Ｏユニット１８に送信する。
【００２１】
表示器／ＭＤＩユニット１９はディスプレイやキーボード等を備えた手動データ入力装置である。統合化周辺制御ＬＳＩ１１は、キーボードからの指令、データを受け付けてマルチコアプロセッサ３０へ渡すと共に、マルチコアプロセッサ３０上で実行される表示処理からの出力される表示指令をディスプレイへと出力する。
【００２２】
図２は、マルチコアプロセッサを使用せず１ＣＰＵで実現される従来の数値制御装置における、通常時と軸制御処理の増大時における既定周期１回当たりに実行される処理の概要を示す図である。本図に示される軸制御処理は、各種補間処理や各制御軸への分配パルス作成処理などのリアルタイム性の高い処理であり、制御軸数分の処理が既定周期内で必ず終了する必要がある。
【００２３】
一方、自動運転処理は、工作機械を駆動してワークを加工するためにユーザが作成して指令する加工プログラムを解析し、補間のための準備データを作成するための処理である。また、ＨＭＩ処理は画面表示や操作に応じた動作を行うための処理で、両処理とも、必ずしも規定周期内で終了する必要はないリアルタイム性の低い処理であり、終了できずに残った処理は、次の周期で継続して実行される。
【００２４】
例えば、Ｘ−Ｙ−Ｚの基本３軸で構成されるような制御軸数の少ない工作機械を制御する数値制御装置では、図２の左（通常時）に示すように、規定周期内のうち軸制御処理の占める割合は比較的小さいため、自動運転処理やＨＭＩ処理にも十分な時間が割り当てられる。
一方、テーブルや工具の姿勢を制御するために複数の回転軸を有するものや、複数のワークを設置して同時に加工するために上述の基本３軸や回転軸を複数有するような多軸工作機械も存在する。このような制御軸数の多い工作機械を制御する数値制御装置では、図２の右（軸制御処理増大時）に示すように、規定周期内のうち軸制御処理の占める割合が比較的大きいため、自動運転処理やＨＭＩ処理には十分な時間が割り当てられなくなる。
【００２５】
このような状況になると、金型の加工プログラムのようにブロック長が短くかつ加工速度の速い加工プログラムを運転する場合などには、加工プログラムの解析や補間のための準備データの作成が間に合わなくなるために加工面が乱れたり、画面表示の更新や操作の応答が遅くなるといった弊害が生じる。
【００２６】
数値制御装置の軸制御処理には、各制御軸に依存せず共通に処理される共通処理と、各制御軸毎に個別に処理される軸別処理とが存在する。図３は、図２で示した軸制御処理増大時における既定周期１回当たりに実行される処理の概要において、軸制御処理が共通処理４つと１６軸分の軸別処理３つで構成される例を示す図である。軸別処理では、第１軸から第１６軸までを順番に、軸ループ内で繰り返し処理を実行する。
【００２７】
図４は、図３で示した軸別処理＜１＞について、本発明の実施の形態における、４つのコアを有するマルチコアプロセッサを使用した軸制御処理の分散例を示す図である。図３で示した共通処理＜１＞および共通処理＜２＞は第１コアで処理し、その間に実行すべき図３で示した１６軸分の軸別処理＜１＞のうち、第１軸から第４軸までの４軸分の分割軸別処理＜１＞を第１コアに、第５軸から第８軸までの４軸分の分割軸別処理＜２＞を第２コアに、第９軸から第１２軸までの４軸分の分割軸別処理＜３＞を第３コアに、第１３軸から第１６軸までの４軸分の分割軸別処理＜４＞を第４コアに、それぞれ４つに分散させて処理するものである。
【００２８】
第１コアでは、共通処理＜１＞を実行後、実行開始要求手段による処理が行われる。４つに分割された分割軸別処理の完了を示す完了情報が、分割数の４つ分、コア間共有メモリに配置されており、本処理において、まずこれら４つの完了情報を初期化する。続いて第２、第３、第４コアに対してコア間割り込み発生部３５を経由してコア間割り込みを発生させ、それらのコア毎に割り振られた分割軸別処理実行手段＜２＞＜３＞＜４＞による処理開始を要求する。その後、第１コア自身に割り振られた分割軸別処理実行手段＜１＞による処理を開始する。
第２、第３、第４コアでは、上述のコア間割り込みの発生を受けて、割り込みに対応づけられた分割軸別処理実行手段＜２＞＜３＞＜４＞による処理をコア毎に起動して実行する。
【００２９】
分割軸別処理実行手段＜１＞＜２＞＜３＞＜４＞による処理では、各コアに割り振られた分割軸別処理＜１＞＜２＞＜３＞＜４＞を割り振られた軸数分（本実施例ではどのコアも全て４軸分）繰り返し実行する。各コアに割り振られた軸数分の処理が全て完了すると、分割軸別処理実行手段＜１＞＜２＞＜３＞＜４＞により該当するコアに割り振られた分割軸別処理が完了したことを、コア間共有メモリに配置された完了情報に通知する。
【００３０】
一方、第１コアでは、分割軸別処理＜１＞が完了し完了情報を通知すると、実行完了監視手段による処理が行われる。ここでは全４コア分の分割軸別処理の完了情報を確認し、全て完了状態になったことをもって、本手段の処理を終了し、共通処理部＜２＞の実行に移る。
【００３１】
図５は、本発明の実施の形態における、実行開始要求手段により実行される実行開始要求処理のフローチャートである。本処理は、マルチコアプロセッサのいずれかのコア上（本実施の形態においては第１コア）で実行され、各コアに分割軸別処理の割り当てと、分割軸別処理の開始要求を行うものである。
【００３２】
●［ステップＳＡ０１］コア間共有メモリに配置されている全完了情報を初期化する。
●［ステップＳＡ０２］変数ｎ（分割軸別処理の分割数カウンタ）に２を割り当てる。
●［ステップＳＡ０３］第ｎ番目の分割軸別処理を実行するコアに対し、コア間割り込み発生部３５を経由してコア間割り込みを発行する。
●［ステップＳＡ０４］変数ｎの値を１増加させる。
●［ステップＳＡ０５］変数ｎの値が分割軸別処理の分割数よりも大きいか判定する。変数ｎが分割軸別処理の分割数よりも大きい場合にはステップＳＡ０６へ進み、それ以下の場合にはステップＳＡ０３へ戻る。
●［ステップＳＡ０６］自コア上で機能する分割軸別処理実行手段により、第１番目の分割軸別処理を起動する。
【００３３】
図６は、本発明の実施の形態における、分割軸別処理実行手段により実行される分割軸別処理実行処理のフローチャートである。本処理は、各コア上で実行され、自コアに割り当てられた分割軸別処理を順次実行するものである。
【００３４】
●［ステップＳＢ０１］変数ｍ（分割軸数カウンタ）に１を割り当てる。
●［ステップＳＢ０２］分割軸別処理内の、第ｍ番目の軸処理を実行する。
●［ステップＳＢ０３］変数ｍの値を１増加させる。
●［ステップＳＢ０４］変数ｍの値が自コアに割り当てられた分割軸数よりも大きいか判定する。変数ｍが自コアに割り当てられた分割軸数よりも大きい場合にはステップＳＢ０５へ進み、それ以下の場合にはステップＳＢ０２へ戻る。
●［ステップＳＢ０５］自コアに割り当てられた分割軸別処理の完了を示す完了情報を完了状態にセットする。
【００３５】
図７は、本発明の実施の形態における、実行完了監視手段により実行される実行完了監視処理のフローチャートである。本処理は、マルチコアプロセッサのいずれかのコア上（本実施の形態においては第１コア）で実行され、各コアに割り当てられた分割軸別処理の完了を待ち合わせるためのものである。
【００３６】
●［ステップＳＣ０１］変数ｎ（分割軸別処理の分割数カウンタ）に１を割り当てる。
●［ステップＳＣ０２］第ｎ番目の完了情報が完了状態となったか判定する。第ｎ番目の完了情報が完了状態である場合にはステップＳＣ０３へ進み、完了状態でない場合にはステップＳＣ０２を繰り返す。
●［ステップＳＣ０３］変数ｎの値を１増加させる。
●［ステップＳＣ０４］変数ｎの値が分割軸別処理の分割数よりも大きいか判定する。変数ｎが分割軸別処理の分割数よりも大きい場合には本処理を終了し、それ以下の場合にはステップＳＣ０２へ戻る。
【００３７】
なお、一般に工作機械を制御する軸には、加工ワークを設置するテーブルや工具の位置および姿勢を制御するサーボ軸、および加工ワークの旋回や工具の回転を制御するスピンドル軸（主軸）など、様々な用途の軸が存在するが、上述した実施の形態の例における軸制御処理は、これら様々な用途の軸の軸制御に適用できる。
【００３８】
以上、本発明の一実施の形態について説明したが、本発明は上述した実施の形態の例に限定されることなく、適宜の変更を加えることにより、その他の形態で実施することができる。
例えば、実行完了監視手段において、１つ以上の分割軸別処理の実行が未完了を検出した場合は、下位レベルの非リアルタイム処理を一定時間実行させ、再び実行完了監視に戻るように動作させてもよい。また、各コアに振り分けられる分割軸別処理の処理軸数は、必ずしも一定である必要はなく、例えば１５軸構成時には第１コアに３軸、第２から第４コアに４軸ずつ振り分けるなど、軸構成やコア能力に応じてコア毎に振り分ける軸数を設定し、変更できるようにしてもよい。
【符号の説明】
【００３９】
１０    数値制御装置
１１    統合化周辺制御ＬＳＩ
１２    ＤＲＡＭ
１３    モータ制御部
１４    モータ制御部プロセッサ
１５    周辺制御ＬＳＩ
１６    アンプインタフェース部
１７    通信制御ＬＳＩ
１８    機械側Ｉ／Ｏユニット
１９    表示器／ＭＤＩユニット
２０    モータ駆動用アンプ
２１    モータ
３０    マルチコアプロセッサ
３１    第１コア
３２    第２コア
３３    第３コア
３４    第４コア
３５    コア間割り込み発生部
３６    割り込み制御部
【図１】
2016051258.tif 000003
【図２】
2016051258.tif 000004
【図３】
2016051258.tif 000005
【図４】
2016051258.tif 000006
【図５】
2016051258.tif 000007
【図６】
2016051258.tif 000008
【図７】
2016051258.tif 000009