(57)【要約】【課題】マルチコアプロセッサを用いた数値制御装置において、許容時間内でより多くの移動指令作成処理を可能にする数値制御装置を提供すること。【解決手段】加工プログラムを実行して工作機械を制御するマルチコアプロセッサを有する数値制御装置において、加工プログラムから取得した加工指令に基づいて所定周期において実行する移動指令を作成するために必要とされる移動指令作成処理時間を推定する移動指令作成処理時間推定手段と、前記移動指令作成処理時間推定手段が推定した前記移動指令作成処理時間に基づいて、前記移動指令を作成する移動指令作成処理を前記マルチコアプロセッサの各コアに分割する移動指令作成処理分割手段とを備えることにより、移動指令作成処理の処理性能を向上させることが可能になり、工作機械の多軸・多系統化や、高機能化の要求に応じることが可能となる。【選択図】図７
2016012221.tif 000002
【特許請求の範囲】
【請求項１】
加工プログラムを実行して工作機械を制御するマルチコアプロセッサを有する数値制御装置であって、
前記加工プログラムから取得した加工指令に基づいて所定周期において実行する移動指令を作成するために必要とされる移動指令作成処理時間を推定する移動指令作成処理時間推定手段と、
前記移動指令作成処理時間推定手段が推定した前記移動指令作成処理時間に基づいて、前記移動指令を作成する移動指令作成処理を前記マルチコアプロセッサの各コアに分割する移動指令作成処理分割手段と、
を備えたことを特徴とするマルチコアプロセッサを有する数値制御装置。
【請求項２】
前記移動指令作成処理時間推定手段は、
前記加工指令に基づいて処理される指令機能または指令軸数の少なくとも一方に基づいて前記移動指令作成処理時間を推定する、
ことを特徴とする請求項１に記載のマルチコアプロセッサを有する数値制御装置。
【請求項３】
前記移動指令作成処理分割手段は、
前記加工指令の指令機能毎に割り当てられた分割情報に基づいて、前記移動指令作成処理を前記マルチコアプロセッサの各コアに分割する、
ことを特徴とする請求項１に記載のマルチコアプロセッサを有する数値制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、数値制御装置に関し、特にマルチコアプロセッサを有する数値制御装置において、許容時間内でより多くの移動指令作成処理を可能とする数値制御装置に関する。
【背景技術】
【０００２】
工作機械や産業用機械を制御する数値制御装置では、特許文献１に開示されているように、コスト削減を目的として、従来別々だった数値制御プロセッサとシーケンス制御プロセッサをそれぞれひとつのプロセッサのマルチコアの一つとして統合したマルチコアプロセッサを有する数値制御装置を提供し、併せてプロセッサと周辺制御ＬＳＩ間を高速なシリアルバスにより接続することでＬＳＩのピンの削減をはかり、周辺制御ＬＳＩの統合化を可能にする技術が提案されている。
【０００３】
また、特許文献２には、処理性能の向上を目的として、組込みシステムにマルチコアを導入し、マルチＯＳを実現させるシステムにおいて、計算資源をＯＳに配分するオーバーヘッドの最小化とＯＳ間の動的な負荷分散とを両立できないという課題を解決するために、計算資源をＯＳに配分するオーバーヘッドを抑えつつＯＳ間の動的な負荷分散する技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−０３５５６４号公報
【特許文献２】特開２００９−１６３５２７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
数値制御装置のソフトウェア処理には、加工プログラムの解析を行う加工プログラム解析処理、モータへの移動指令を作成する移動指令作成処理、数値制御装置や工作機械の状態を表示器に表示する表示処理、工作機械との信号入出力やシーケンス処理を行うＰＭＣ処理などがある。
これらの処理の中で、移動指令作成処理は、モータへの指令を途切れなく行うために周期毎に必ず行い処理を完了する必要がある。また、工作機械の多軸化、多系統化や、高機能化の要求により、軸や系統に関係する処理を行う移動指令作成処理の処理量は年々増加している。また、より高速かつ高精度な加工を実現するために、処理周期をより短くすることも要求されている。つまり、移動指令作成処理は、より多くの処理をより短い時間で行うことが要求されている。このような要求に対応するためには単位時間あたりの処理能力を上げることが必要である。
【０００６】
このような要求に対応するための一つの手法として、特許文献１，２に記載のマルチコアプロセッサを有する装置において、動作周波数を高く、または、コア数が多いプロセッサを採用することが考えられる。しかしながら、動作周波数を高くすることによりプロッサの発熱が大きくなり、数値制御装置が誤動作する原因になるという問題があった。また、コア数が多いプロセッサは高価であり、全体的にコストが掛かってしまうという問題があった。
【０００７】
そこで、本発明の目的は、マルチコアプロセッサを用いた数値制御装置において、許容時間内でより多くの移動指令作成処理を可能にする数値制御装置を提供することである。
【課題を解決するための手段】
【０００８】
本願の請求項１に係る発明は、加工プログラムを実行して工作機械を制御するマルチコアプロセッサを有する数値制御装置であって、前記加工プログラムから取得した加工指令に基づいて所定周期において実行する移動指令を作成するために必要とされる移動指令作成処理時間を推定する移動指令作成処理時間推定手段と、前記移動指令作成処理時間推定手段が推定した前記移動指令作成処理時間に基づいて、前記移動指令を作成する移動指令作成処理を前記マルチコアプロセッサの各コアに分割する移動指令作成処理分割手段と、を備えたことを特徴とするマルチコアプロセッサを有する数値制御装置である。
【０００９】
本願の請求項２に係る発明は、前記移動指令作成処理時間推定手段は、前記加工指令に基づいて処理される指令機能または指令軸数の少なくとも一方に基づいて前記移動指令作成処理時間を推定する、ことを特徴とする請求項１に記載のマルチコアプロセッサを有する数値制御装置である。
【００１０】
本願の請求項３に係る発明は、前記移動指令作成処理分割手段は、前記加工指令の指令機能毎に割り当てられた分割情報に基づいて、前記移動指令作成処理を前記マルチコアプロセッサの各コアに分割する、ことを特徴とする請求項１に記載のマルチコアプロセッサを有する数値制御装置である。
【発明の効果】
【００１１】
本発明により、マルチコアプロセッサを用いた数値制御装置において、移動指令作成処理の処理時間を推定し、許容時間を越える場合に移動指令作成処理を分割して各コアで処理させることによって、移動指令作成処理の処理性能を向上させることが可能になり、工作機械の多軸・多系統化や、高機能化の要求に応じることが可能となる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施の形態におけるマルチコアプロセッサを有する数値制御装置の要部ブロック図である。
【図２】マルチプロセッサの各コアへ数値制御装置の各処理を割り当てた例を示す図である。
【図３】本発明の実施の形態における各コアにおける加工プログラム解析処理、及び移動指令作成処理の実行順序を示す図である。
【図４】本発明の実施の形態における指令機能の推定処理時間を説明する図である。
【図５】本発明の実施の形態における移動指令作成処理の推定処理時間が許容時間を越えた例を示す図である。
【図６】本発明の実施の形態における指令機能の分割番号を説明する図である。
【図７】本発明の実施の形態における各分割処理を各コアへと割振った例を示す図である。
【図８】本発明の実施の形態におけるコア配分処理をコアへと割振った例を示す図である。
【図９】本発明の実施の形態における各コアで実行される動作処理のフローチャートである。
【図１０】本発明の手法において同系統の加工プログラム解析処理と移動指令作成処理を異なるコアへと割振った例を示す図である。
【図１１】本発明の手法を６コアプロセッサに適用し、同系統の加工プログラム解析処理と移動指令作成処理を異なるコアへと割振った例を示す図である。
【図１２】本発明の手法を６コアプロセッサで４系統の制御を行う数値制御装置に適用した例を示す図である。
【発明を実施するための形態】
【００１３】
以下に、本発明の一実施の形態を図面と共に説明する。
図１は、本発明の一実施形態におけるマルチコアプロセッサを有する数値制御装置の要部を説明するブロック図である。数値制御装置１０には、マルチコアプロセッサ３０と統合化周辺制御ＬＳＩ１１が実装され、更に、モータ制御部プロセッサ１４およびその周辺制御ＬＳＩ１５からなるモータ制御部１３と、モータ駆動用アンプ２０との間の通信を行うアンプインタフェース部１６があり、それぞれ、内部バス２１により接続されている。マルチコアプロセッサ３０は、４つのコア３１〜３４を有している。また、各コア３１〜３４間で情報を共有するためのコア間通信で用いられる共有メモリを有している。例えば、共有メモリとしてＤＲＡＭ１２が使用される。
【００１４】
マルチコアプロセッサ３０では、数値制御装置１０と接続されたモータ駆動用アンプ２０を制御するための加工プログラムを加工プログラム解析処理を実行することで解析し、解析結果に基づいて移動指令作成処理を実行して移動指令を作成し、前記移動指令を統合化周辺制御ＬＳＩ１１及び内部バス２１を経由して、モータ制御部１３の周辺制御ＬＳＩ１５の内部のＲＡＭ（図示せず）へ送信する。
モータ制御部１３のモータ制御部プロセッサ１４では、この内部のＲＡＭに書かれた移動指令を読み取り、モータ駆動用アンプ２０へ送信するモータ制御用のデータを作成し、内部バス２１を経由してアンプインタフェース部１６の通信制御ＬＳＩ１７に前記データを書き込む。
【００１５】
アンプインタフェース部１６の通信制御ＬＳＩ１７では、通信制御ＬＳＩ１７の内部のＲＡＭに書き込まれたデータをモータ駆動用アンプ２０に送信し、モータ駆動用アンプ２０が工作機械に備わったモータ（図示せず）を駆動する。
また、マルチコアプロセッサ３０では、数値制御装置１０と接続された機械（図示せず）からの入力データ等に基づいて所定のシーケンス制御用プログラムを実行するＰＭＣ処理も実行される。そして、ＰＭＣ処理結果に基づいて機械の各機械要素を制御するための信号を機械側Ｉ／Ｏユニット１８に送信する。
表示器／ＭＤＩユニット１９はディスプレイやキーボード等を備えた手動データ入力装置である。統合化周辺制御ＬＳＩ１１は、キーボードからの指令、データを受け付けてマルチコアプロセッサ３０へ渡すと共に、マルチコアプロセッサ３０上で実行される表示処理からの出力される表示指令をディスプレイへと出力する。
【００１６】
本実施の形態では、加工プログラムの指令系統が２つある多系統制御を行っているものとする。図２は、第１系統用の加工プログラム解析処理および移動指令作成処理を第１コア３１に、第２系統用の加工プログラム解析処理および移動指令作成処理を第２コア３２に、表示処理を第３コア３３に、ＰＭＣ処理を第４コアに割り当てた例を示している。
【００１７】
加工プログラム解析処理は、加工プログラムを解析して、経路の種類（直線か円弧かなど）、指令された軸、移動速度などの情報を得る。移動指令作成処理は、加工プログラム解析処理の解析結果から、指令された加工経路に従ったモータの位置を計算して、モータへ移動指令を行う。移動指令作成処理は、モータへの指令を途切れなく行うために周期毎に必ず行い処理を完了する必要がある。加工プログラム解析処理は、一周期のうち移動指令作成処理を行った残りの時間で行う。
図３は、第１コア、第２コアにおいて、第ｎ周期、第ｎ＋１周期において加工プログラム解析処理、及び移動指令作成処理が実行される際の時系列順序を示す図である。図３に示すように、第ｎ周期の加工プログラム解析処理の解析結果に基づき、第ｎ＋１周期の移動指令作成処理が行われることになる。
【００１８】
本実施の形態では、以降、第ｎ周期の加工プログラム解析処理の解析結果に基づき、第ｎ＋１周期の移動指令作成処理が行われる例で説明する。
なお、加工プログラム解析処理では１周期内に複数ブロックの加工プログラムを解析する場合もある。このとき、第ｎ周期の加工プログラム解析処理の解析結果に基づいて第ｎ＋１より後の周期における移動指令作成処理が行われる場合がある。この場合でも、本発明を適用することが可能である。
【００１９】
次に、移動指令作成処理の推定処理時間の算出方法について説明する。
まず、第ｎ周期の加工プログラム解析処理において加工プログラムを解析することで、第ｎ＋１周期のおける移動指令作成処理で処理される指令機能と指令軸数を得る。次に、第ｎ＋１周期で処理される指令機能と指令軸数から、図４に示す表を用いて、第ｎ＋１周期の移動指令作成処理の推定処理時間を計算することができる。
【００２０】
図４は、指令機能の種類と各指令機能の推定処理時間を演算する式との関係を示す表である。図４の表における指令機能Ａ〜Ｈは、移動指令作成処理で処理される機能群であり、それぞれ複数の指令軸を指令対象としている。移動指令作成処理において、各指令機能から各指令軸に対する移動指令を作成するためにかかる推定処理時間は、各指令機能が指令対象としている指令軸の数ｎを変数とする式で表される。
【００２１】
第ｎ周期の加工プログラム解析処理において、第ｎ＋１周期で処理される指令機能について図４の表に従って処理時間を計算し、それらを合算することで第ｎ＋１周期における移動指令作成処理の推定処理時間を求めることができる。
ここで、各指令機能の推定処理時間を表す式については、あらかじめ実験などにより指令機能を複数通りの指令軸数で指令したときの処理時間の変化（増減）から近似式として求めておく。指令軸数に依存しない機能の場合は、指令機能の推定処理時間の式に指令軸数ｎは含まれない。
【００２２】
加工プログラム解析処理の処理時間は、前述したように、一周期のうち移動指令作成処理を行った残りの時間で行う。移動指令作成処理を行った残りの時間で実行できるようにするために、状況に応じて最低限の処理で済ませることができるように加工プログラム解析処理内容は動的に変更できるようになっているため、本処理の処理時間は不定であるが、最低限確保したい最小処理時間を設定しておくことで、当該最小処理時間を加工プログラム解析処理の推定処理時間とすることができる。
【００２３】
表示処理は、数値制御装置や工作機械の状況を確認するために、各種情報を表示器に表示する処理である。一定周期内の表示処理の処理時間を短くすると、一画面の表示の更新にかかる時間が長くなるが、機械の制御に問題が生じる訳ではない。このため、最低限確保したい最小処理時間を設定しておき、これを表示処理の推定処理時間とすればよい。
ＰＭＣ処理は、工作機械の制御に直接関係する信号入出力やシーケンス処理を行う処理である。そのため、コアの処理能力として、他の処理の分散処理できるほどの余力があるとは言えない。このような場合、推定処理時間は周期時間と等しいとすればよい。
【００２４】
次に、移動指令作成処理の推定処理時間が許容時間を越える場合に、移動指令作成処理を分割して他のコアで分散処理させる処理について説明する。本処理は、コア配分処理としていずれかのコアの上で実行される。
移動指令作成処理の許容時間は、一周期の周期時間から加工プログラム解析処理の最小処理時間を引いた値として定義される。移動指令作成処理の推定処理時間が、移動指令作成処理の許容時間を越える場合は、移動指令作成処理を分割して各コアで分散処理させる。
【００２５】
図５は、マルチプロセッサの各コア上で実行される各処理の推定処理時間と一周期内の空き時間（余力）を図示したものである。図５は、第１コアにおいて移動指令作成処理の推定処理時間が移動指令作成処理の許容時間を越えている例（［２］＜［３］）を示している。前周期に実行した加工プログラム解析処理において、図５に示すような状態となることが推定された場合には、移動指令作成処理の推定処理時間が許容時間を越えた第１コアの移動指令作成処理を分割する処理を実行する。
【００２６】
移動指令作成処理をどのように分割するか、つまり、移動指令作成処理の各機能群（指令機能）をどの分割処理に割り振るかはあらかじめ決定しておいて、図６の表に示すように、各指令機能と関連付けて分割処理の番号として記憶しておく。移動指令作成処理を分割する処理においては、各指令機能の移動指令作成処理は図６の表に表される分割処理欄の分割番号毎にまとめられて分割される。図６の例は、移動指令作成処理は分割処理１〜３の３つに分割することを意味している。各分割処理の実行時間は図６の表に従って、各分割処理に割り当てられた指令機能の推定処理時間を合算すればよい。
【００２７】
以上により、各コアの推定処理時間と、移動指令作成処理の推定処理時間が許容時間を越えた場合の各分割処理の推定処理時間が求められるので、各コアの処理時間が一定周期を越えないように各分割処理を各コアに割り振る処理を実行する。
図７は、各コアの処理時間が一定周期を越えないように各分割処理を割り振った後の各コアの推定処理時間と一周期内の空き時間（余力）を示す図である。なお、分割処理の割り振りを決定するコア配分処理を実行するコアは、処理時間の推定時に一番空き時間が多いコアとしてもよいし、あらかじめいずれかのコアに固定的に決定しておいてもよい。例えば、第３コアでコア配分処理を行う場合には、第ｎ＋１周期の実際の処理は、図８のように実行される。
【００２８】
図９は、第ｎ周期におけるマルチプロセッサが備える各コアで実行される処理のフローチャートであり、本フローチャートに従って各周期が開始される毎にマルチプロセッサが備える各コアが動作する。
●［Ｓ９０１］第ｎ−１周期におけるコア配分処理において自コアに配分された分割処理があるか否かを判定する。自コアに配分された分割処理がある場合にはＳ９０２へ進み、無い場合にはＳ９０３へ進む。
●［Ｓ９０２］自コアに配分された分割処理を実行する。
●［Ｓ９０３］自コアが実行するべき第ｎ周期における処理を実行する。
●［Ｓ９０４］自コアの第ｎ＋１周期の推定処理時間を求める。求めた推定処理時間は共有メモリに記憶される。
●［Ｓ９０５］自コアが分散処理のコア配分を処理するコア（コア配分処理を実行するコア）であるか否かを判定する。自コアが分散処理のコア配分を処理するコアである場合にはＳ９０６へ進み、そうでない場合には第ｎ周期における自コアの処理を終了する。
●［Ｓ９０６］全コアにおける第ｎ＋１周期の推定処理時間が求められたか否かを判定する。全コアにおける第ｎ＋１周期の推定処理時間が求められた時点でＳ９０７へ進む。
●［Ｓ９０７］第ｎ＋１周期の分散処理のコア配分を決定する。
【００２９】
以上、本発明の一実施の形態について説明したが、本発明は上述した実施の形態の例に限定されることなく、適宜の変更を加えることにより、その他の態様で実施することができる。例えば、加工プログラム解析処理と移動指令作成処理を、それぞれ別々のコアに割り振るように処理の割振りを行うように構成してもよいし（図１０、図１１）、コア数についても４コアに限られるものではなくより多くのコア数に増やした場合においても（図１１、図１２）、本発明を適用することが可能である。
【符号の説明】
【００３０】
１０    数値制御装置
１１    統合化周辺制御ＬＳＩ
１２    ＤＲＡＭ
１３    モータ制御部
１４    モータ制御部プロセッサ
１５    周辺制御ＬＳＩ
１６    アンプインタフェース部
１７    通信制御ＬＳＩ
１８    機械側Ｉ／Ｏユニット
１９    表示器／ＭＤＩユニット
２０    モータ駆動用アンプ
２１    内部バス
３０    マルチコアプロセッサ
３１〜３４  コア
【図１】
2016012221.tif 000003
【図２】
2016012221.tif 000004
【図３】
2016012221.tif 000005
【図４】
2016012221.tif 000006
【図６】
2016012221.tif 000007
【図８】
2016012221.tif 000008
【図９】
2016012221.tif 000009
【図１０】
2016012221.tif 000010
【図１１】
2016012221.tif 000011
【図１２】
2016012221.tif 000012
【図５】
2016012221.tif 000013
【図７】
2016012221.tif 000014