(57)【特許請求の範囲】
【請求項１】
工作機械を制御する数値制御装置であって、
複数のコアプロセッサを含むマルチコアプロセッサと、
前記マルチコアプロセッサに含まれるコアプロセッサの個数を示す情報を含むリソース情報、前記工作機械を構成するハードウェアに関する機械構成情報、及び、前記マルチコアプロセッサによって実行される処理がソフトウェアが用いられて実行される場合の前記ソフトウェアの構成を示すソフトウェア構成情報をもとに、複数の処理パターンのなかから、前記マルチコアプロセッサが前記処理を実行する際の処理時間が、前記複数のコアプロセッサのうちのひとつのコアプロセッサが前記処理を実行する際の処理時間より短くなる処理パターンを選択し、選択された処理パターンを前記複数のコアプロセッサが前記処理を実行する際の処理パターンと決定するパターン決定部と、
前記パターン決定部によって決定された前記処理パターンにしたがって、前記処理を構成する複数のサブ処理を分散させて前記複数のコアプロセッサに割り当てる割り当て部とを備え、
前記複数の処理パターンの各々は、前記複数のサブ処理のうちの実行される順序の変更が許可されない複数のサブ処理を実行の順序が変更されることなく実行させる処理パターンである
ことを特徴とする数値制御装置。
【請求項２】
前記パターン決定部は、前記リソース情報、前記機械構成情報及び前記ソフトウェア構成情報をもとに、前記複数の処理パターンのなかから、前記マルチコアプロセッサが前記処理を実行する際の処理時間が最短となる処理パターンを選択し、選択された処理パターンを前記複数のコアプロセッサが前記処理を実行する際の処理パターンと決定する
ことを特徴とする請求項１に記載の数値制御装置。
【請求項３】
前記パターン決定部は、前記複数のサブ処理の各々の処理時間を事前に計測し、計測された前記処理時間を利用して、前記複数の処理パターンのなかから、前記マルチコアプロセッサが前記処理を実行する際の処理時間が最短となる処理パターンを選択し、選択された処理パターンを前記複数のコアプロセッサが前記処理を実行する際の処理パターンと決定する
ことを特徴とする請求項２に記載の数値制御装置。
【請求項４】
前記割り当て部は、前記複数のサブ処理の一部を前記数値制御装置に割り当てると共に、前記複数のサブ処理の残部を前記数値制御装置に接続されている他の数値制御装置又は計算装置に割り当て、前記マルチコアプロセッサが前記一部を実行する期間に、前記残部を前記他の数値制御装置又は前記計算装置に実行させる
ことを特徴とする請求項１又は２に記載の数値制御装置。
【請求項５】
工作機械を制御する数値制御装置であって、
複数のコアプロセッサを含むマルチコアプロセッサと、
前記マルチコアプロセッサによって実行される処理を分割し、分割を行うことによって得られた複数の１次サブ処理の個数が前記複数のコアプロセッサの個数より多い場合、前記複数の１次サブ処理の一部を分割して複数の２次サブ処理を得る分割部と、
前記分割部によって得られた前記複数の１次サブ処理のうちの前記一部以外である残部の１次サブ処理と、前記複数の２次サブ処理とを、分散させて前記複数のコアプロセッサに割り当てる割り当て部とを備え、
前記割り当て部は、
前記複数の２次サブ処理の各々についての実行順を保持させると共に、
前記複数の２次サブ処理のうちの第１の１次サブ処理を分割することによって得られる第１の２次サブ処理と第２の２次サブ処理との間に、前記複数の２次サブ処理のうちの第２の１次サブ処理を分割することによって得られる第３の２次サブ処理を割り込ませ、前記第１の２次サブ処理、前記第３の２次サブ処理及び前記第２の２次サブ処理を、この順に、複数のコアプロセッサのうちのひとつのコアプロセッサに割り当て、
前記複数の２次サブ処理のうちの第３の１次サブ処理を分割することによって得られる第４の２次サブ処理と第５の２次サブ処理との間に、前記複数の２次サブ処理のうちの第２の１次サブ処理を分割することによって得られる第６の２次サブ処理を割り込ませ、前記第４の２次サブ処理、前記第６の２次サブ処理及び前記第５の２次サブ処理を、この順に、複数のコアプロセッサのうちの別のひとつのコアプロセッサに割り当てる
ことを特徴とする数値制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、工作機械を制御する数値制御装置に関する。
【背景技術】
【０００２】
工作機械を制御する数値制御装置は、加工プログラムを読込み、加工プログラムをもとに、工具径路上の単位時間毎の指令位置を計算する補間処理と、工作機械を滑らかに動作させるための加減速処理と、工作機械の各軸のモータへ指令するための軸制御処理とを実行する。数値制御装置は、数値制御装置を操作するための情報の表示及び操作結果の表示を行うＨＭＩ処理と、入出力信号の制御を行うＩ／Ｏ制御処理と、ネットワーク通信及びバス通信の処理を行う通信処理とを実行する。“ＨＭＩ”は、“Human  Machine  Interface”の略語である。“Ｉ／Ｏ”は、“Input/Output”の略語である。【０００３】
近年、工作機械の構成が複雑になってきていたり、モータによって回転させられる軸の個数及び軸のグループである系統数が増加してきているので、数値制御装置が実行する処理が増加してきている。数値制御装置が実行する処理は、あらかじめ決められた時間以内に実行されなければならない。【０００４】
従来、複数のコアプロセッサを有する数値制御装置が提案されている（例えば、特許文献１参照）。従来の数値制御装置は、実行される処理を複数のサブ処理に分割し、複数のサブ処理を分散させて複数のコアプロセッサに割り当てる。これにより、従来の数値制御装置は、増加してきている処理をあらかじめ決められた時間以内に実行する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第６１５１６６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
数値制御装置によって実行される処理を複数のサブ処理に分割することはできるが、複数のサブ処理のなかには実行される順序の変更が許可されない複数のサブ処理が含まれる場合がある。例えば、ある処理をサブ処理Ａ、サブ処理Ｂ及びサブ処理Ｃに分割することができるが、サブ処理Ｂはサブ処理Ａの結果を利用する処理であり、サブ処理Ｃはサブ処理Ｂの結果を利用する処理である場合がある。この場合、サブ処理Ａ、サブ処理Ｂ及びサブ処理Ｃは、サブ処理Ａ、サブ処理Ｂ、サブ処理Ｃの順に実行されなければならない。【０００７】
従来の数値制御装置では、サブ処理Ａが第１コアプロセッサに割り当てられ、サブ処理Ｂが第２コアプロセッサに割り当てられ、サブ処理Ｃが第３コアプロセッサに割り当てられる場合がある。この場合、上述の通り、サブ処理Ａ、サブ処理Ｂ及びサブ処理Ｃは、サブ処理Ａ、サブ処理Ｂ、サブ処理Ｃの順に実行されなければならないので、サブ処理Ａ、サブ処理Ｂ及びサブ処理Ｃを並列に実行することはできない。【０００８】
本発明は、上記に鑑みてなされたものであって、実行される処理が複数のサブ処理に分割された場合に複数のサブ処理のうちの実行される順序の変更が許可されない複数のサブ処理を実行の順序が変更されることなく実行すると共に、ひとつのコアプロセッサが上記の処理を実行する際の処理時間より短い処理時間で上記の処理を実行する数値制御装置を得ることを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するために、本発明は、工作機械を制御する数値制御装置であって、複数のコアプロセッサを含むマルチコアプロセッサと、パターン決定部とを有する。前記パターン決定部は、前記マルチコアプロセッサに含まれるコアプロセッサの個数を示す情報を含むリソース情報、前記工作機械を構成するハードウェアに関する機械構成情報、及び、前記マルチコアプロセッサによって実行される処理がソフトウェアが用いられて実行される場合の前記ソフトウェアの構成を示すソフトウェア構成情報をもとに、複数の処理パターンのなかから、前記マルチコアプロセッサが前記処理を実行する際の処理時間が、前記複数のコアプロセッサのうちのひとつのコアプロセッサが前記処理を実行する際の処理時間より短くなる処理パターンを選択し、選択された処理パターンを前記複数のコアプロセッサが前記処理を実行する際の処理パターンと決定する。本発明は、前記パターン決定部によって決定された前記処理パターンにしたがって、前記処理を構成する複数のサブ処理を分散させて前記複数のコアプロセッサに割り当てる割り当て部を更に有する。前記複数の処理パターンの各々は、前記複数のサブ処理のうちの実行される順序の変更が許可されない複数のサブ処理を実行の順序が変更されることなく実行させる処理パターンである。
【発明の効果】
【００１０】
本発明によれば、実行される処理が複数のサブ処理に分割された場合に複数のサブ処理のうちの実行される順序の変更が許可されない複数のサブ処理を実行の順序が変更されることなく実行すると共に、ひとつのコアプロセッサが上記の処理を実行する際の処理時間より短い処理時間で上記の処理を実行することができるという効果が得られる。
【図面の簡単な説明】
【００１１】
【図１】実施の形態１にかかる数値制御装置の構成を示す図
【図２】実施の形態１にかかる数値制御装置によって実行される処理を示す図
【図３】実施の形態１にかかる数値制御装置がサブ処理を複数のコアプロセッサに割り当てる際の動作を説明するための図
【図４】ひとつのコアプロセッサが複数のサブ処理を実行する場合において加工プログラム解析処理を所定周期時間を超えて実行する場合の例を示す図
【図５】ひとつのコアプロセッサが複数のサブ処理を実行する場合において補間処理を所定周期時間を超えて実行する場合の例を示す図
【図６】実施の形態１にかかる数値制御装置において処理が分散されて複数のコアプロセッサに割り当てられて処理が実行される処理パターンの第１の例を示す図
【図７】実施の形態１にかかる数値制御装置において処理が分散されて複数のコアプロセッサに割り当てられて処理が実行される処理パターンの第２の例を示す図
【図８】実施の形態１にかかる数値制御装置において処理が分散されて複数のコアプロセッサに割り当てられて処理が実行される処理パターンの第３の例を示す図
【図９】実施の形態１にかかる数値制御装置によって実行される複数のサブ処理の各々の処理時間及び実行周期を示す図
【図１０】実施の形態１にかかる数値制御装置が有するパターン決定部の動作の手順の一例を示すフローチャート
【図１１】実施の形態２にかかる数値制御装置の構成を示す図
【図１２】実施の形態２にかかる数値制御装置と他の数値制御装置とにおいて処理が実行される処理パターンの第１の例を示す図
【図１３】実施の形態２にかかる数値制御装置と他の数値制御装置とにおいて処理が実行される処理パターンの第２の例を示す図
【図１４】実施の形態３にかかる数値制御装置の構成を示す図
【図１５】実施の形態３にかかる数値制御装置が有するマルチコアプロセッサに含まれるコアプロセッサの個数が制御対象物の軸の個数より少ない場合の処理パターンの第１の例を示す図
【図１６】実施の形態３にかかる数値制御装置が有するマルチコアプロセッサに含まれるコアプロセッサの個数が制御対象物の軸の個数より少ない場合の処理パターンの第２の例を示す図
【図１７】実施の形態３にかかる数値制御装置が有するマルチコアプロセッサに含まれるコアプロセッサの個数が制御対象物の軸の個数より少ない場合の処理パターンの第３の例を示す図
【図１８】実施の形態１にかかる数値制御装置が有するパターン決定部及び割り当て部の一部又は全部の機能がプロセッサによって実現される場合のプロセッサを示す図
【図１９】実施の形態１にかかる数値制御装置が有するパターン決定部及び割り当て部の一部又は全部が処理回路によって実現される場合の処理回路を示す図
【発明を実施するための形態】
【００１２】
以下に、本発明の実施の形態にかかる数値制御装置を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１３】
実施の形態１．
図１は、実施の形態１にかかる数値制御装置１の構成を示す図である。数値制御装置１は、工作機械を制御する装置であって、マルチコアプロセッサ２を有する。マルチコアプロセッサ２は、第１コアプロセッサ２１と、第２コアプロセッサ２２と、第３コアプロセッサ２３と、第４コアプロセッサ２４とを含む。第１コアプロセッサ２１、第２コアプロセッサ２２、第３コアプロセッサ２３及び第４コアプロセッサ２４は、複数のコアプロセッサの一例である。
【００１４】
数値制御装置１は、記憶部３を更に有する。記憶部３の例は、半導体メモリである。例えば、記憶部３の一部は不揮発性メモリである。記憶部３は、マルチコアプロセッサ２に含まれるコアプロセッサの個数を示す情報を含むリソース情報を記憶する。記憶部３は、工作機械を構成するハードウェアに関する機械構成情報を更に記憶する。記憶部３は、マルチコアプロセッサ２によって実行される処理がソフトウェアが用いられて実行される場合の当該ソフトウェアの構成を示すソフトウェア構成情報を更に記憶する。ソフトウェア構成情報は、数値制御装置１の内部で実行される複数の処理ブロックと、当該複数の処理ブロックの各々の実行周期及び実行時間とを示す情報である。処理ブロックは、処理関数である。
【００１５】
記憶部３は、複数の処理パターンを示す処理パターン情報を更に記憶する。複数の処理パターンの各々は、上記の処理を構成する複数のサブ処理のうちの実行される順序の変更が許可されない複数のサブ処理を実行の順序が変更されることなく実行させる処理パターンである。
【００１６】
数値制御装置１は、リソース情報、機械構成情報及びソフトウェア構成情報をもとに、処理パターン情報が示す複数の処理パターンのなかから、マルチコアプロセッサ２が上記の処理を実行する際の処理時間が、複数のコアプロセッサのうちのひとつのコアプロセッサが上記の処理を実行する際の処理時間より短くなる処理パターンを選択するパターン決定部４を更に有する。パターン決定部４は、選択された処理パターンを複数のコアプロセッサが上記の処理を実行する際の処理パターンと決定する。実施の形態１では、リソース情報、機械構成情報、ソフトウェア構成情報及び処理パターン情報は、記憶部３に記憶されている情報である。
【００１７】
例えば、パターン決定部４は、リソース情報、機械構成情報及びソフトウェア構成情報をもとに、複数の処理パターンのなかから、マルチコアプロセッサ２が上記の処理を実行する際の処理時間が最短となる処理パターンを選択し、選択された処理パターンを複数のコアプロセッサが上記の処理を実行する際の処理パターンと決定する。
【００１８】
例えば、パターン決定部４は、複数のサブ処理の各々の処理時間を事前に計測し、計測された処理時間を利用して、複数の処理パターンのなかから、マルチコアプロセッサ２が上記の処理を実行する際の処理時間が最短となる処理パターンを選択し、選択された処理パターンを複数のコアプロセッサが上記の処理を実行する際の処理パターンと決定する。
【００１９】
数値制御装置１は、パターン決定部４によって決定された処理パターンにしたがって、上記の処理を構成する複数のサブ処理を分散させて複数のコアプロセッサに割り当てる割り当て部５を更に有する。第１コアプロセッサ２１、第２コアプロセッサ２２、第３コアプロセッサ２３及び第４コアプロセッサ２４の各々は、割り当て部５によって割り当てられたサブ処理を実行する。
【００２０】
数値制御装置１は、モータ制御アンプ１１に接続されている。モータ制御アンプ１１は、複数のモータ１２に接続されており、複数のモータ１２の各々を制御する。複数のモータ１２の各々は、工作機械の一部である。図１では、説明を簡単に行うために、ひとつのモータ１２のみが示されている。複数のモータ１２の各々は、制御対象物の軸を回転させる。つまり、モータ制御アンプ１１は、複数の制御対象物の各々の軸の回転を制御する。
【００２１】
数値制御装置１は、数値制御装置１によって実行された演算の結果を表示する機能を有する表示器１３にも接続されている。表示器１３は、データ入力装置を有していてもよい。データ入力装置は、キーボードを有していてもよい。数値制御装置１は、デジタルインプット情報とアナログインプット情報との一方又は双方を工作機械から受信すると共に、デジタルアウトプット情報とアナログアウトプット情報との一方又は双方を工作機械に送信する入出力装置１４にも接続されている。以下では、「入出力装置１４」は「Ｉ／Ｏ装置１４」と記載される場合がある。図面では、「入出力装置１４」は「Ｉ／Ｏ装置１４」と記載されている。数値制御装置１は、数値制御装置１を通信ネットワークに接続するネットワーク装置１５にも接続されている。
【００２２】
図２は、実施の形態１にかかる数値制御装置１によって実行される処理を示す図である。図２には、モータ制御アンプ１１、表示器１３、Ｉ／Ｏ装置１４及びネットワーク装置１５も示されている。数値制御装置１は、加工プログラム３１を読込んで、加工プログラム３１に記述されているＧコードを読み取る加工プログラム読込み処理３２を実行する。加工プログラム３１は、複数の指令文を含む。数値制御装置１は、加工プログラム読込み処理３２において、１行毎に指令文を読込んでもよいし、１度に複数の行の指令文を読込んでもよい。
【００２３】
数値制御装置１は、加工プログラム読込み処理３２を実行した後、読込まれた加工プログラム３１を解析する加工プログラム解析処理３３を実行する。加工プログラム３１には、Ｇコードと呼ばれる移動指令と系統間での同期指令とを含む機能コードが含まれている。加工プログラム３１には、例えば工具の先端位置を決める座標位置も記述されている。数値制御装置１は、加工プログラム解析処理３３において、移動指令、同期指令及び工具の座標位置をもとに、モータ１２に対して最終的に指令する座標位置を計算する。
【００２４】
例えば、加工プログラム３１に工具の径補正と工具の先端位置を決める座標位置とが記述されている場合、数値制御装置１は、加工プログラム解析処理３３において、読込まれた座標位置を指定された工具番号の工具の径補正分移動させた補正位置を計算する。数値制御装置１は、加工プログラム解析処理３３において、補正位置である工具の先端位置に対して座標変換を行い、モータ１２の制御位置を算出する。数値制御装置１は、複数のモータ１２の各々について制御位置を算出する。
【００２５】
次に、数値制御装置１は、加工プログラム解析処理３３において計算されたモータ１２の制御位置に一定の周期毎に送り速度に対応した移動量を加算して補間位置を計算する補間処理３４を実行する。数値制御装置１は、補間処理３４では、補間位置を計算するだけでなく、多系統の処理を実行する場合にはひとつの系統と他の系統とについて同期処理を実行する。
【００２６】
例えば、同期処理は、他の系統の状態を確認して、ひとつの系統について次の補間処理を行ってよいか否かを判定する待ち合わせ処理である。例えば、同期処理は、ひとつの系統の軸の移動量と他の系統の軸の移動量とを合算して加工プログラム３１において指令された移動量を扱う場合、他系統の軸の移動量を示す情報を取得してひとつの系統の軸の移動量を決めて補間位置を計算する処理である。
【００２７】
次に、数値制御装置１は、補間処理３４において得られた補間位置に対して例えば移動平均フィルタ処理又は加速度を一定にする処理を実行し、制御対象物の速度が滑らかになるように、モータ１２への指令位置を計算する加減速処理３５を実行する。
【００２８】
次に、数値制御装置１は、加減速処理３５において計算されたモータ１２への指令位置をモータ１２への指令に設定する軸制御処理３６を実行する。モータ制御アンプ１１は、指令をもとにモータ１２を制御する。例えば、モータ制御アンプ１１は、モータ１２に流れる電流値を制御する。
【００２９】
数値制御装置１は、数値制御装置１の内部のデータを表示器１３に表示させるＨＭＩ処理３７も実行する。当該データは、数値制御装置１の内部で行われた演算によって得られたデータを含む。ＨＭＩ処理３７は、ユーザからの入力を受け付ける処理を含む。ＨＭＩ処理３７では、処理の実行が早ければ早いだけユーザへの応答性が上がる。数値制御装置１は、工作機械へのデータの出力と、工作機械からの信号を受け付けるためのラダー処理とを含むＩ／Ｏ制御処理３８も実行する。数値制御装置１は、Ｉ／Ｏ制御処理３８をＩ／Ｏ装置１４を介して実行する。数値制御装置１は、ネットワーク装置１５を介して数値制御装置１の外部の物とデータの送受信を行う通信処理３９も実行する。数値制御装置１の外部の物には、工作機械は含まれない。
【００３０】
加工プログラム読込み処理３２、加工プログラム解析処理３３、補間処理３４、加減速処理３５、軸制御処理３６、ＨＭＩ処理３７、Ｉ／Ｏ制御処理３８及び通信処理３９は、マルチコアプロセッサ２によって実行される処理である。加工プログラム読込み処理３２、加工プログラム解析処理３３、補間処理３４、加減速処理３５、軸制御処理３６、ＨＭＩ処理３７、Ｉ／Ｏ制御処理３８及び通信処理３９の各々は、サブ処理の例である。
【００３１】
図３は、実施の形態１にかかる数値制御装置１がサブ処理を複数のコアプロセッサに割り当てる際の動作を説明するための図である。上述の通り、サブ処理のひとつの例は、図２を用いて説明した複数の処理のひとつである。記憶部３は、マルチコアプロセッサ２によって実行される処理をどのように分割して各サブ処理をどのタイミングで実行するのかを特定する処理パターンを示す処理パターン情報４１を記憶している。処理パターン情報４１は、複数の処理パターンを示す。複数の処理パターンを示す処理パターン情報４１は、あらかじめ用意されている。
【００３２】
記憶部３は、数値制御装置１が有するマルチコアプロセッサ２を構成するコアプロセッサの個数を示す情報を含むリソース情報４２を更に記憶している。リソース情報４２には、通信ネットワーク又は通信バスを介して数値制御装置１に接続されている他の数値制御装置又は計算装置に含まれていて使用可能な演算装置の個数を示す情報が含まれていてもよい。演算装置の例は、プロセッサである。
【００３３】
記憶部３は、工作機械を構成するハードウェアに関する機械構成情報４３を更に記憶している。例えば、機械構成情報４３には、工作機械に含まれている軸の個数を示す情報と、系統数を示す情報と、機械タイプを示す情報と、数値制御装置１に接続されているＩ／Ｏ装置の個数を示す情報とのうちの一部又は全部が含まれている。機械タイプを示す情報は、例えば工作機械が旋盤又はマシニングセンタであることを示す情報である。
【００３４】
記憶部３は、マルチコアプロセッサ２によって実行される処理がソフトウェアが用いられて実行される場合の当該ソフトウェアの構成を示すソフトウェア構成情報４４を更に記憶している。例えば、ソフトウェア構成情報４４は、数値制御装置１の内部で実行される複数の処理ブロックと、当該複数の処理ブロックの各々の実行周期及び実行時間とを示す情報である。処理ブロックは、処理関数である。
【００３５】
パターン決定部４は、リソース情報４２、機械構成情報４３及びソフトウェア構成情報４４をもとに、処理パターン情報４１が示す複数の処理パターンのなかから、マルチコアプロセッサ２が処理を実行する際の処理時間が、複数のコアプロセッサのうちのひとつのコアプロセッサが上記の処理を実行する際の処理時間より短くなる処理パターンを決定する。例えば、パターン決定部４は、リソース情報４２、機械構成情報４３及びソフトウェア構成情報４４をもとに、複数の処理パターンのなかから、マルチコアプロセッサ２が上記の処理を実行する際の処理時間が最短となる処理パターンを選択し、選択された処理パターンを複数のコアプロセッサが上記の処理を実行する際の処理パターンと決定する。
【００３６】
割り当て部５は、パターン決定部４によって決定された処理パターンにしたがって、複数のサブ処理を、分散させて、マルチコアプロセッサ２が有する第１コアプロセッサ２１と、第２コアプロセッサ２２と、第３コアプロセッサ２３と、第４コアプロセッサ２４とに割り当てる。
【００３７】
実施の形態１では、加工プログラムにおける指令系統がひとつであり、比較的短い線分長で記載された加工プログラムを実行する場合と、加工プログラムにおける指令系統が二つ以上ある多軸多系統制御を行っている場合とで、処理パターンを決定して複数のサブ処理を分散させて複数のコアプロセッサの各々に割り当てる例を示す。
【００３８】
図４は、ひとつのコアプロセッサが複数のサブ処理を実行する場合において加工プログラム解析処理を所定周期時間を超えて実行する場合の例を示す図である。図４は、制御対象の軸の個数及び系統数は比較的少ないが、比較的短い線分長で記載された加工プログラムにおいて自由曲面の作成を指令する場合の処理の例を示している。自由曲面を加工する際、工作機械の動作速度を一定に保つ必要があり、加工プログラムの読込み処理と、加工プログラムの解析処理とを一定の処理時間内に完了する必要がある。つまり、リアルタイム性が求められる。図４は、リアルタイムで行わなければならない処理である軸制御処理、加減速処理、補間処理、加工プログラム読込み処理及び加工プログラム解析処理の合計時間が所定周期時間を超えている様子を示している。リアルタイムで行わなければならない処理は、一定の処理時間内に実行完了しなければいけない処理である。
【００３９】
図５は、ひとつのコアプロセッサが複数のサブ処理を実行する場合において補間処理を所定周期時間を超えて実行する場合の例を示す図である。図５は、制御対象の軸の個数及び系統数が比較的多いが、加工プログラム読込み処理及び加工プログラム解析処理を一定の処理時間内に完了する必要がない場合の例を示す図である。
【００４０】
図５は、例えば数値制御装置１が４系統で１６個の軸を制御する場合において、リアルタイムで行われなければならない軸制御処理、加減速処理及び補間処理の合計時間が所定周期時間を超えている様子を示している。リアルタイムで行わなければならない処理が所定周期時間で行われない場合、従来、所定周期時間を延ばし、制御の応答性についての要求を低下させる対応がとられる。又は、従来、リアルタイムで行われなければならない処理の負荷を軽減してリアルタイムで行わなければならない処理を所定周期時間以内で実行することにより、制御の応答性についての要求を保つ対応がとられる。
【００４１】
図６は、実施の形態１にかかる数値制御装置１において処理が分散されて複数のコアプロセッサに割り当てられて処理が実行される処理パターンの第１の例を示す図である。図６は、複数の処理パターンのうちのひとつの処理パターンを示している。図６が示す処理パターンでは、制御対象の軸についての複数の処理と、系統についての複数の処理とが分割されている。複数のサブ処理は分散され、複数のサブ処理の各々は複数のコアプロセッサのいずれかに割り当てられている。以下では、系統についての複数のサブ処理は「系統処理」と記載される場合がある。
【００４２】
具体的には、図６が示す処理パターンは、第１コアプロセッサが、軸制御処理のうちの共通処理を実行すると共に、第１軸から第４軸までの各軸についての軸制御処理を実行することを示している。図６が示す処理パターンは、第２コアプロセッサが第５軸から第８軸までの各軸についての軸制御処理を実行し、第３コアプロセッサが第９軸から第１２軸までの各軸についての軸制御処理を実行し、第４コアプロセッサが第１３軸から第１６軸までの各軸についての軸制御処理を実行することを更に示している。
【００４３】
図６が示す処理パターンでは、各コアプロセッサに割り当てられる軸の個数は同じである。しかしながら、複数の軸の各々についての制御処理時間をもとに、各コアプロセッサにおける処理時間が均等になるように、コアプロセッサに割り当てる軸の個数をコアプロセッサ毎に異なる個数としてもよい。
【００４４】
図６が示す処理パターンは、第１コアプロセッサが、系統処理のうちの共通処理を実行すると共に、１系統目についての処理を実行することを更に示している。図６が示す処理パターンは、第２コアプロセッサが２系統目についての処理を実行し、第３コアプロセッサが３系統目についての処理を実行し、第４コアプロセッサが４系統目についての処理を実行することを更に示している。
【００４５】
図６が示す処理パターンでは、各コアプロセッサに割り当てられる系統の個数は同じである。しかしながら、数値制御装置１が４系統以上の処理を実行する場合、複数の系統の各々についての処理時間をもとに、各コアプロセッサにおける処理時間が均等になるように、コアプロセッサに割り当てる系統の個数をコアプロセッサ毎に異なる個数としてもよい。
【００４６】
図７は、実施の形態１にかかる数値制御装置１において処理が分散されて複数のコアプロセッサに割り当てられて処理が実行される処理パターンの第２の例を示す図である。図７も、複数の処理パターンのうちのひとつの処理パターンを示している。図７が示す処理パターンは、第１コアプロセッサが、軸制御処理のうちの共通処理を実行することと、第１軸から第８軸までの各軸についての処理を実行することとを示している。図７が示す処理パターンは、第１コアプロセッサが、１系統目についての系統処理を実行することと、２系統目についての系統処理を実行することとを更に示している。
【００４７】
図７が示す処理パターンは、第２コアプロセッサが、第９軸から第１６軸までの各軸についての処理を実行することと、３系統目についての系統処理を実行することと、４系統目についての系統処理を実行することとを更に示している。図７が示す処理パターンは、第３コアプロセッサが、Ｉ／Ｏ制御処理、ＨＭＩ処理及び通信処理を実行することを更に示している。Ｉ／Ｏ制御処理、ＨＭＩ処理及び通信処理は、リアルタイムに実行されなくてもよい処理である。図７が示す処理パターンは、第４コアプロセッサが、別タスク処理及び別関数処理を実行することを更に示している。別タスク処理及び別関数処理は、図２において示されていないサブ処理である。
【００４８】
図７が示す処理パターンは、リソースの半分を軸処理及び系統処理に割り当てている。リソースは、複数のコアプロセッサを意味する。しかしながら、軸処理及び系統処理に割り当てられるコアプロセッサの個数は、変更されてもよい。処理パターンは、軸処理及び系統処理が割り当てられるコアプロセッサの個数に対応して用意される。
【００４９】
図８は、実施の形態１にかかる数値制御装置１において処理が分散されて複数のコアプロセッサに割り当てられて処理が実行される処理パターンの第３の例を示す図である。図８も、複数の処理パターンのうちのひとつの処理パターンを示している。図８が示す処理パターンは、ひとつのタスクのサブ処理がひとつのコアプロセッサに割り当てられて実行される処理パターンである。
【００５０】
図８が示す処理パターンは、第１コアプロセッサが軸制御処理と加減速処理とを実行し、第２コアプロセッサが補間処理を実行することを示している。図８が示す処理パターンは、第３コアプロセッサが加工プログラム読込み処理と加工プログラム解析処理とを実行し、第４コアプロセッサがＩ／Ｏ制御処理、ＨＭＩ処理及び通信処理を実行することを更に示している。軸制御処理、加減速処理及び補間処理といったリアルタイムに実行する必要があるサブ処理が割り当てられるコアプロセッサの個数は変更されてもよい。処理パターンは、リアルタイムに実行する必要があるサブ処理が割り当てられるコアプロセッサの個数に対応して用意される。
【００５１】
図８が示す処理パターンは、独立して計算することができる複数のサブ処理が並列に実行される処理パターンである。更に言うと、図８が示す処理パターンは、ひとつの周期において、各タスクのサブ処理の実行順が変わらない処理パターンである。
【００５２】
パターン決定部４は、複数の処理パターンから処理の負荷を分散するための処理パターンをひとつ選択する。パターン決定部４は、複数のコアプロセッサの各々が実行するサブ処理を特定する処理パターンを決定する。具体的には、パターン決定部４は、リソース情報に含まれるマルチコアプロセッサ２を構成するコアプロセッサの個数をもとに、複数の処理パターンから当該個数のコアプロセッサがサブ処理を実行することになる複数の処理パターンを選択する。
【００５３】
実施の形態１では、パターン決定部４は、４個のコアプロセッサが処理を実行することになる処理パターンを選択する。コアプロセッサの個数が８である場合、パターン決定部４は、８個のコアプロセッサが処理を実行することになる処理パターンを選択する。
【００５４】
図９は、実施の形態１にかかる数値制御装置１によって実行される複数のサブ処理の各々の処理時間及び実行周期を示す図である。サブ処理の内容を示す処理関数及び処理タスク毎に、処理時間が予め計測される。図９には、共通の処理が必要な時間である共通処理時間ｔ１と、単位処理当たりの処理時間ｔ２とが示されている。単位処理当たりの処理時間ｔ２の例は、ひとつの軸当たり又はひとつの系統当たりの処理時間である。
【００５５】
図９において、加工プログラム読込み処理については、処理時間ｔ２は、ひとつの加工プログラムを読込む際の処理時間である。加工プログラム解析処理については、処理時間ｔ２は、ひとつの加工プログラムを解析する際の処理時間である。図９には、図２に示されていないサブ処理Ａ、サブ処理Ｂ及びサブ処理Ｃについての処理時間及び実行周期も示されている。図９における実行周期は、単位周期の倍数で示されている。
【００５６】
マルチコアプロセッサが処理を実行する際のオーバヘッド時間が、時間ｔ３であると仮定する。この場合、機械構成情報に含まれる系統数がｎであり、軸の個数がｍであるとき、系統数に依存する処理時間ｔ_ｋは下記の式（１）で表現され、軸の個数に依存する処理時間ｔ_ｊは下記の式（２）で表現される。
ｔ_ｋ=ｔ１_ｋ＋ｔ２_ｋ×ｎ＋ｔ３_ｋ  ・・・（１）
ｔ_ｊ=ｔ１_ｊ＋ｔ２_ｊ×ｍ＋ｔ３_ｊ  ・・・（２）
添え字_ｋは系統数に依存する時間を表し、添え字_ｊは軸の個数に依存する時間を表している。
【００５７】
各処理関数及び処理タスクの処理時間は、事前に数値制御装置１とは別の数値制御装置で計測されていてもよい。各処理関数及び処理タスクの処理時間は、数値制御装置１が処理時間を計測する計測手段を有していて、計測手段が数値制御装置１の立ち上がり時に各処理の処理時間を計測してソフトウェア構成情報に処理時間テーブルを含めてもよい。パターン決定部４は、計測手段の機能を有していてもよい。
【００５８】
図１０は、実施の形態１にかかる数値制御装置１が有するパターン決定部４の動作の手順の一例を示すフローチャートである。パターン決定部４は、ステップＳ１において、リソース情報からマルチコアプロセッサ２を構成するコアプロセッサの個数を示す情報を取得する。パターン決定部４は、ステップＳ２において、ステップＳ１において取得された情報が示す個数に対応する処理パターンを抽出する。抽出された処理パターンの例は、図６から図８が示す処理パターンである。
【００５９】
パターン決定部４は、ステップＳ３において、ステップＳ２において抽出されたひとつの処理パターンについて、機械構成情報とソフトウェア構成情報とをもとに各タスクの処理時間を計算し、当該処理パターンで実行周期にかかる処理時間を計算する。パターン決定部４は、ステップＳ４において、ステップＳ２において抽出されたすべての処理パターンの処理時間が計算されたか否かを判定する。パターン決定部４は、抽出されてすべての処理パターンの処理時間が計算されていないと判定した場合（ステップＳ４でＮｏ）、ステップＳ３の動作を行う。
【００６０】
パターン決定部４は、抽出されたすべての処理パターンの処理時間が計算されたと判定した場合（ステップＳ４でＹｅｓ）、ステップＳ５において、抽出された処理パターンのなかから、マルチコアプロセッサ２が処理を実行する際の処理時間が、複数のコアプロセッサのうちのひとつのコアプロセッサが上記の処理を実行する際の処理時間より短くなる処理パターンを選択する。ステップＳ５において、パターン決定部４は、選択することによってマルチコアプロセッサ２が実行する処理パターンを決定する。
【００６１】
系統数が比較的少なく、比較的短い線分長で記載された加工プログラムで所定周期以内に加工プログラム解析処理も実行する必要がある場合、例えば、パターン決定部４は、所定の周期を２周期として実行周期にかかる処理時間を計算する。図６が示す処理パターンでは、軸制御処理及び補間処理の個数がコアプロセッサの個数より少ないので、処理を分散してもコアプロセッサが処理を行わない空き時間が発生する。
【００６２】
図７が示す処理パターンでは、図６が示す処理パターンに比べて空き時間は少なくなり、処理時間は図６が示す処理パターンにおける処理時間より短い。図８が示す処理パターンでは、軸制御処理、加減速処理、補間処理、加工プログラム読込み処理及び加工プログラム解析処理の処理時間のバランスが図６及び図７が示す処理パターンにおける処理時間のバランスよりよく、処理時間も比較的短い。
【００６３】
パターン決定部４は、図６から図８が示す３個の処理パターンのなかで処理時間が最も短い図８が示す処理パターンを選択する。割り当て部５は、パターン決定部４によって決定された処理パターンをもとに、軸制御処理と加減速処理とを第１コアプロセッサに割り当て、補間処理を第２コアプロセッサに割り当てる。加えて、割り当て部５は、加工プログラム読込み処理と加工プログラム解析処理とを第３コアプロセッサに割り当て、Ｉ／Ｏ制御処理、ＨＭＩ処理及び通信処理を第４コアプロセッサに割り当てる。
【００６４】
数値制御装置１が、加工プログラムにおける指令系統が４系統であって軸の個数が１６個である多軸多系統制御を行う場合、例えば、パターン決定部４は、所定周期を２周期として実行周期にかかる処理時間を計算する。図６が示す処理パターンでは、各コアプロセッサに４軸の軸制御処理を割り当てることができると共に、各コアプロセッサに１系統の補間処理を割り当てることができる。そのため、図６が示す処理パターンは、処理時間を比較的短くすることができる。
【００６５】
図７が示す処理パターンでは、リアルタイムで処理を実行する必要があるコアプロセッサの個数が２個である。そのため、図６が示す処理パターンでは４つのコアプロセッサで処理を実行していた軸制御処理、および、補間処理を図７が示す処理パターンでは、２つのコアプロセッサで処理を実行することになるため、図７が示す処理パターンでの処理時間は、図６が示す処理パターンでの処理時間より長くなる。
【００６６】
図８が示す処理パターンは、系統数及び軸数に比例して大きくなった軸制御処理及び補間処理を第１コアプロセッサ及び第２コアプロセッサに割り当てるパターンである。このケースでは、処理時間は、図６が示す処理パターンでの処理時間よりも長く、図７が示す処理パターンでの処理時間よりも短い。
【００６７】
パターン決定部４は、図６から図８が示す３個の処理パターンのなかで処理時間が最も短い図６が示す処理パターンを選択する。割り当て部５は、パターン決定部４によって選択された処理パターンをもとに、共通処理と、第１軸及び１系統目の処理とを第１コアプロセッサに割り当てる。割り当て部５は、第２軸及び２系統目の処理を第２コアプロセッサに割り当て、第３軸及び３系統目の処理を第３コアプロセッサに割り当て、第４軸及び４系統目の処理を第４コアプロセッサに割り当てる。
【００６８】
上述の通り、実施の形態１にかかる数値制御装置１は、リソース情報、機械構成情報及びソフトウェア構成情報をもとに、処理パターン情報が示す複数の処理パターンのなかから、マルチコアプロセッサ２が実行する処理の時間が、上記の複数のコアプロセッサのうちのひとつのコアプロセッサが上記の処理を実行する場合の処理時間より短くなる処理パターンを選択する。数値制御装置１は、選択された処理パターンを複数のコアプロセッサが上記の処理を実行する際の処理パターンと決定する。
【００６９】
例えば、数値制御装置１は、リソース情報、機械構成情報及びソフトウェア構成情報をもとに、複数の処理パターンのなかから、マルチコアプロセッサ２が実行する処理の時間が最短となる処理パターンを選択する。数値制御装置１は、選択された処理パターンを複数のコアプロセッサが上記の処理を実行する際の処理パターンと決定する。
【００７０】
数値制御装置１は、決定された処理パターンにしたがって、上記の処理を構成する複数のサブ処理を分散させて複数のコアプロセッサに割り当てる。複数の処理パターンの各々は、上記の処理を構成する複数のサブ処理のうちの実行される順序の変更が許可されない複数のサブ処理を順序が変更されることなく実行させる処理パターンである。
【００７１】
したがって、数値制御装置１は、実行される処理が複数のサブ処理に分割された場合に複数のサブ処理のうちの実行される順序の変更が許可されない複数のサブ処理を処理の順序が変更されることなく実行することができる。加えて、数値制御装置１は、ひとつのコアプロセッサが上記の処理を実行する際の処理時間より短い処理時間で上記の処理を実行することができる。
【００７２】
実施の形態２．
図１１は、実施の形態２にかかる数値制御装置１Ａの構成を示す図である。数値制御装置１Ａは、第１コアプロセッサ２１、第２コアプロセッサ２２及び第３コアプロセッサ２３を含むマルチコアプロセッサ２Ａと、記憶部３Ａと、パターン決定部４とを有する。第１コアプロセッサ２１、第２コアプロセッサ２２及び第３コアプロセッサ２３及びパターン決定部４の各々は、実施の形態１において説明された構成要素である。記憶部３Ａは、実施の形態１の記憶部３と同様に、処理パターン情報、リソース情報、機械構成情報及びソフトウェア構成情報を記憶する。
【００７３】
数値制御装置１Ａは、通信ネットワーク１６を介して他の数値制御装置１Ｂに接続されている。他の数値制御装置１Ｂは、数値制御装置１Ａと同様な装置である。数値制御装置１Ａは、複数のサブ処理の一部を他の数値制御装置１Ｂに割り当てると共に、当該複数のサブ処理の残部を数値制御装置１Ａに割り当てる割り当て部５Ａを更に有する。割り当て部５Ａは、数値制御装置１Ａのマルチコアプロセッサ２Ａが当該残部を実行する期間に、当該一部を他の数値制御装置１Ｂに実行させる。他の数値制御装置１Ｂは、パターン決定部４及び割り当て部５Ａを有していない。
【００７４】
実施の形態２では、加工プログラムの指令系統数が２個以上であり、制御軸の個数が３２個であり、制御系統数が８系統である多軸多系統制御が行われる場合を想定する。実施の形態２では、当該場合において、数値制御装置１Ａがひとつの処理パターンを選択して、処理を、マルチコアプロセッサ２Ａを構成する複数のコアプロセッサと、他の数値制御装置１Ｂに分散させる例を説明する。
【００７５】
図１２は、実施の形態２にかかる数値制御装置１Ａと他の数値制御装置１Ｂとにおいて処理が実行される処理パターンの第１の例を示す図である。図１２が示す処理パターンは、数値制御装置１Ａの第１コアプロセッサが、Ｉ／Ｏ制御処理と、第１軸から第１６軸までの各軸についての軸制御処理と、第１軸から第１６軸までの各軸についての加減速処理とを実行することを示している。
【００７６】
図１２が示す処理パターンは、数値制御装置１Ａの第２コアプロセッサが、ＨＭＩ処理と、１系統から４系統までの各系統についての補間処理とを実行することを更に示している。図１２が示す処理パターンは、数値制御装置１Ａの第３コアプロセッサが、通信処理と、加工プログラム読込み処理と、加工プログラム解析処理とを実行することを更に示している。
【００７７】
図１２が示す処理パターンは、他の数値制御装置１Ｂの第１コアプロセッサが、Ｉ／Ｏ制御処理と、第１７軸から第３２軸までの各軸についての軸制御処理と、第１７軸から第３２軸までの各軸についての加減速処理とを実行することを更に示している。図１２が示す処理パターンは、他の数値制御装置１Ｂの第２コアプロセッサが、ＨＭＩ処理と、５系統から８系統までの各系統についての補間処理とを実行することを更に示している。図１２が示す処理パターンは、他の数値制御装置１Ｂの第３コアプロセッサが、通信処理と、加工プログラム読込み処理と、加工プログラム解析処理とを実行することを更に示している。
【００７８】
図１２が示す処理パターンでは、数値制御装置１Ａにおいて実行される処理の軸の個数及び系統数は、他の数値制御装置１Ｂにおいて実行される処理の軸の個数及び系統数と同じである。しかしながら、数値制御装置１Ａにおいて実行される処理の軸の個数及び系統数は、他の数値制御装置１Ｂにおいて実行される処理の軸の個数及び系統数と異なっていてもよい。
【００７９】
処理の負荷が比較的大きい１系統及び２系統の補間処理が数値制御装置１Ａにおいて行われ、３系統から８系統までの補間処理が他の数値制御装置１Ｂにおいて実行される処理パターンが用意されてもよい。同様に、数値制御装置１Ａにおいて実行される処理の軸の個数と他の数値制御装置１Ｂにおいて実行される処理の軸の個数とが異なる処理パターンが用意されてもよい。
【００８０】
図１３は、実施の形態２にかかる数値制御装置１Ａと他の数値制御装置１Ｂとにおいて処理が実行される処理パターンの第２の例を示す図である。図１３が示す処理パターンは、数値制御装置１Ａの第１コアプロセッサが、Ｉ／Ｏ制御処理と、補間処理とを実行することを示している。
【００８１】
図１３が示す処理パターンは、数値制御装置１Ａの第２コアプロセッサが、ＨＭＩ処理と、補間処理とを実行することを更に示している。図１３が示す処理パターンは、数値制御装置１Ａの第３コアプロセッサが、通信処理と、加工プログラム読込み処理と、加工プログラム解析処理とを実行することを更に示している。
【００８２】
図１３が示す処理パターンは、他の数値制御装置１Ｂの第１コアプロセッサが、Ｉ／Ｏ制御処理と、軸制御処理と、加減速処理とを実行することを更に示している。図１３が示す処理パターンは、他の数値制御装置１Ｂの第２コアプロセッサが、ＨＭＩ処理と、軸制御処理と、加減速処理とを実行することを更に示している。図１３が示す処理パターンは、他の数値制御装置１Ｂの第３コアプロセッサが、通信処理と、軸制御処理と、加減速処理とを実行することを更に示している。
【００８３】
加工プログラム読込み処理及び加工プログラム解析処理は、数値制御装置１Ａにおいて実行されるのではなく、他の数値制御装置１Ｂにおいて実行されてもよい。上述の通り、数値制御装置１Ａは通信ネットワーク１６を介して他の数値制御装置１Ｂに接続されている。データの通信にかかる処理負荷を軽減するために、ＨＭＩ処理と通信処理との一方又は双方は、数値制御装置１Ａと他の数値制御装置１Ｂとのうちの一方において実行されてもよい。
【００８４】
パターン決定部４は、処理パターン情報が示す複数の処理パターンのなかから、処理の負荷を分散するために、ひとつの処理パターンを選択する。リソース情報は、演算装置の個数が数値制御装置１Ａと他の数値制御装置１Ｂとの２個であることを示す情報を含んでいる。リソース情報は、数値制御装置１Ａ及び他の数値制御装置１Ｂの各々が３個のコアプロセッサを有することを示す情報を含んでいる。
【００８５】
パターン決定部４は、まず、リソース情報をもとに、すべての演算装置に含まれるコアプロセッサの個数を特定し、特定された個数をもとに、複数の処理パターンのなかで、当該個数に対応する処理パターンを絞り込む。パターン決定部４は、リソース情報をもとに処理パターンを絞り込むことができない場合、つまり想定された個数のリソースが存在しない場合、すべての演算装置に含まれるコアプロセッサの個数より少ない個数のコアプロセッサが処理を実行することになる処理パターンを選択する。
【００８６】
例えばすべての演算装置に含まれるコアプロセッサの個数が６個で、対応する処理パターンが存在しない場合、パターン決定部４は、すべての演算装置に含まれるコアプロセッサの個数が５個である場合の処理パターンを選択する。
【００８７】
実施の形態２では、パターン決定部４は、処理パターンをコアプロセッサの個数をもとに選択し、そのなかから処理時間が一番短い処理パターンを選択する。しかしながら、パターン決定部４は、コアプロセッサの個数をもとに処理パターンを選択しなくてもよい。例えば、パターン決定部４は、コアプロセッサの個数を問わず複数の処理パターンの各々の処理時間を計算し、処理時間が一番短い処理パターンを選択してもよい。
【００８８】
複数の演算装置が処理を分散して実行する場合においても、複数の演算装置の各々において、各処理関数及び処理タスクの処理時間があらかじめ計測され、更に通信処理にかかる時間も含めて、リアルタイムに実行することが必要な軸制御処理、加減速処理及び補間処理の処理時間が計算される。例えば、パターン決定部４は、計算の結果をもとに、処理時間が一番短い処理パターンを選択する。割り当て部５Ａは、複数のサブ処理を数値制御装置１Ａと他の数値制御装置１Ｂとに割り当てて、割り当てたサブ処理を数値制御装置１Ａ及び他の数値制御装置１Ｂに含まれるコアプロセッサに実行させる。
【００８９】
上述の通り、数値制御装置１Ａは、決定された処理パターンにしたがって、上記の処理を構成する複数のサブ処理を分散させて数値制御装置１Ａと他の数値制御装置１Ｂとに含まれる複数のコアプロセッサに割り当てる。したがって、数値制御装置１Ａは、上記の複数のコアプロセッサのうちのひとつのコアプロセッサが上記の処理を実行する場合の処理時間より短い時間で上記の処理を実行することができる。加えて、数値制御装置１Ａは、従来より多い個数の軸の制御と従来より多い系統数の制御とを行うことができる。
【００９０】
実施の形態２では、他の数値制御装置１Ｂは割り当て部５Ａを有していない。しかしながら、他の数値制御装置１Ｂは割り当て部５Ａを有していてもよい。数値制御装置１Ａは、数値制御装置１Ａに含まれるパターン決定部４によって決定された処理パターンを示す情報を他の数値制御装置１Ｂに出力し、他の数値制御装置１Ｂに含まれる割り当て部５Ａが、当該処理パターンをもとに、当該処理パターンのなかの実行すべきサブ処理を分散させて他の数値制御装置１Ｂに含まれる複数のコアプロセッサに割り当ててもよい。
【００９１】
他の数値制御装置１Ｂは、複数のコアプロセッサを有する計算装置に置き換えられてもよい。
【００９２】
実施の形態３．
図１４は、実施の形態３にかかる数値制御装置５０の構成を示す図である。数値制御装置５０は、工作機械を制御する装置であって、マルチコアプロセッサ２を有する。マルチコアプロセッサ２は、第１コアプロセッサ２１と、第２コアプロセッサ２２と、第３コアプロセッサ２３と、第４コアプロセッサ２４とを含む。第１コアプロセッサ２１、第２コアプロセッサ２２、第３コアプロセッサ２３及び第４コアプロセッサ２４は、複数のコアプロセッサの一例である。
【００９３】
数値制御装置５０は、マルチコアプロセッサ２によって実行される処理を分割し、分割を行うことによって得られた複数の１次サブ処理の個数が複数のコアプロセッサの個数より多い場合、複数の１次サブ処理を一部と残部に分割し、一部を分割して複数の２次サブ処理を得る分割部５１を更に有する。
【００９４】
数値制御装置５０は、分割部５１によって得られた複数の１次サブ処理の残部と、複数の２次サブ処理とを、分散させて複数のコアプロセッサに割り当てる割り当て部５２を更に有する。割り当て部５２は、複数の２次サブ処理の各々についての実行順を保持させる。
【００９５】
加えて、割り当て部５２は、第１の１次サブ処理を分割することによって得られる第１の２次サブ処理と第２の２次サブ処理との間に、第２の１次サブ処理を分割することによって得られる第３の２次サブ処理を割り込ませる。割り当て部５２は、第１の２次サブ処理、第３の２次サブ処理及び第２の２次サブ処理を、この順に、複数のコアプロセッサのうちのひとつのコアプロセッサに割り当てる。
【００９６】
さらに、割り当て部５２は、第３の１次サブ処理を分割することによって得られる第４の２次サブ処理と第５の２次サブ処理との間に、第２の１次サブ処理を分割することによって得られる第６の２次サブ処理を割り込ませる。割り当て部５２は、第４の２次サブ処理、第６の２次サブ処理及び第５の２次サブ処理を、この順に、複数のコアプロセッサのうちの別のひとつのコアプロセッサに割り当てる。
【００９７】
数値制御装置５０は、記憶部５３を更に有する。記憶部５３の例は、半導体メモリである。記憶部５３の一部は、不揮発性メモリである。
【００９８】
以下に、数値制御装置５０が行う動作について説明する。図１５は、実施の形態３にかかる数値制御装置５０が有するマルチコアプロセッサ２に含まれるコアプロセッサの個数が制御対象物の軸の個数より少ない場合の処理パターンの第１の例を示す図である。実施の形態３では、マルチコアプロセッサに含まれるコアプロセッサの個数が４個であり、制御対象物の軸の個数が５個である場合を想定する。
【００９９】
図１５が示す処理パターンは、第１軸及び第５軸の軸制御処理を第１コアプロセッサに割り当て、第２軸の軸制御処理を第２コアプロセッサに割り当て、第３軸の軸制御処理を第３コアプロセッサに割り当て、第４軸の軸制御処理を第４コアプロセッサに割り当てる処理パターンである。軸制御処理は、第１軸から第５軸までの各軸についての共通処理を含む。補間処理も、第１軸から第５軸までの各軸についての共通処理を含む。図１５が示す処理パターンは、軸制御処理が実行された後に補間処理を実行させる処理パターンである。
【０１００】
図１５が示す処理パターンでは、補間処理における共通処理を実行するために、第５軸の軸制御処理が実行されている間、第２コアプロセッサ、第３コアプロセッサ及び第４コアプロセッサについて、空き時間が発生する。空き時間は、無駄な時間である。
【０１０１】
図１６は、実施の形態３にかかる数値制御装置５０が有するマルチコアプロセッサ２に含まれるコアプロセッサの個数が制御対象物の軸の個数より少ない場合の処理パターンの第２の例を示す図である。軸制御処理のうちの共通処理以外の各軸の処理は、処理の独立性が高い。そのため、各軸の処理をひとつのコアプロセッサに割り当てて実行させることができる。
【０１０２】
しかしながら、ひとつの軸の処理を複数の処理に分割して分割後の複数の処理を並列に実行させようとしても、当該ひとつの軸の前半の処理についての結果を後半の処理で使用することがあるので、上記の分割後の複数の処理を並列に実行させることはできない。図１６は、複数の１次サブ処理のひとつの例である第５軸の軸制御処理が２次サブ処理Ａから２次サブ処理Ｄまでの４個の２次サブ処理に分割され、２次サブ処理ＢからＤまでの３個の２次サブ処理を実行することができない様子を示している。
【０１０３】
図１７は、実施の形態３にかかる数値制御装置５０が有するマルチコアプロセッサ２に含まれるコアプロセッサの個数が制御対象物の軸の個数より少ない場合の処理パターンの第３の例を示す図である。図１７が示す処理パターンでは、第１軸の軸制御処理は第１コアプロセッサに割り当てられており、第２軸の軸制御処理は第２コアプロセッサに割り当てられており、第３軸の軸制御処理は第３コアプロセッサに割り当てられており、第４軸の軸制御処理は第４コアプロセッサに割り当てられている。図１７が示す処理パターンでは、第１軸、第２軸及び第３軸の各軸についての軸制御処理は、２次サブ処理Ａと、２次サブ処理Ａが実行された後に実行される２次サブ処理Ｂとに分割されている。
【０１０４】
図１７が示す処理パターンでは、第５軸についての軸制御処理は、２次サブ処理Ａと、２次サブ処理Ａが実行された後に実行される２次サブ処理Ｂと、２次サブ処理Ｂが実行された後に実行される２次サブ処理Ｃと、２次サブ処理Ｃが実行された後に実行される２次サブ処理Ｄとの４個の２次サブ処理に分割されている。図１７が示す処理パターンでは、第１軸についての２次サブ処理Ａが第１コアプロセッサによって実行された後に、第５軸についての２次サブ処理Ａが第１コアプロセッサに割り当てられて第１コアプロセッサによって実行される。第５軸についての２次サブ処理Ａが実行された後に、第１軸についての２次サブ処理Ｂが第１コアプロセッサによって実行される。
【０１０５】
図１７が示す処理パターンでは、第２軸についての２次サブ処理Ａが第２コアプロセッサによって実行された後に、第５軸についての２次サブ処理Ｂが第２コアプロセッサに割り当てられて第２コアプロセッサによって実行される。第５軸についての２次サブ処理Ｂが実行された後に、第２軸についての２次サブ処理Ｂが第２コアプロセッサによって実行される。
【０１０６】
第３軸についての２次サブ処理Ａが第３コアプロセッサによって実行された後に、第５軸についての２次サブ処理Ｃが第３コアプロセッサに割り当てられて第３コアプロセッサによって実行される。第５軸についての２次サブ処理Ｃが実行された後に、第３軸についての２次サブ処理Ｂが第３コアプロセッサによって実行される。第４軸についての軸制御処理が第４コアプロセッサによって実行された後に、第５軸についての２次サブ処理Ｄが第４コアプロセッサに割り当てられて第４コアプロセッサによって実行される。
【０１０７】
上述の通り、図１７が示す処理パターンでは、第１軸、第２軸及び第３軸の各軸についての１次サブ処理である軸制御処理は、２次サブ処理Ａと、２次サブ処理Ａが実行された後に実行される２次サブ処理Ｂとに分割されている。第１コアプロセッサ、第２コアプロセッサ及び第３コアプロセッサの各々については、２次サブ処理Ａと２次サブ処理Ｂとの間に第５軸についてのひとつの２次サブ処理が割り当てられている。
【０１０８】
図１７が示す処理パターンでは、第１軸から第５軸までの各軸についての複数の２次サブ処理は、複数の２次サブ処理によって構成される１次サブ処理の先頭から順に実行される。そのため、図１７が示す処理パターンは、複数の２次サブ処理のうちの実行される順序の変更が許可されない複数の２次サブ処理を実行の順序が変更されることなく実行させる処理パターンである。つまり、図１７が示す処理パターンでは、実行の順序が保たれる。
【０１０９】
更に言うと、各２次サブ処理が実行されることによって得られたデータは、記憶部５３に記憶される。そのため、図１７が示す処理パターンでは、第１軸から第５軸までの各軸についての複数の２次サブ処理は、記憶部５３に記憶されたデータが利用されることによって、複数の２次サブ処理によって構成される１次サブ処理の先頭から順に実行される。
【０１１０】
上述の通り、実施の形態３にかかる数値制御装置５０は、マルチコアプロセッサ２によって実行される処理を分割し、分割を行うことによって得られた複数の１次サブ処理の個数が複数のコアプロセッサの個数より多い場合、複数の１次サブ処理の一部を分割して複数の２次サブ処理を得る。
【０１１１】
数値制御装置５０は、得られた複数の１次サブ処理のうちの一部以外である残部の１次サブ処理と、複数の２次サブ処理とを、分散させて複数のコアプロセッサに割り当てる。数値制御装置５０は、複数の２次サブ処理の各々についての実行順を保持させる。
【０１１２】
数値制御装置５０は、第１の１次サブ処理を分割することによって得られる第１の２次サブ処理と第２の２次サブ処理との間に、第２の１次サブ処理を分割することによって得られる第３の２次サブ処理を割り込ませる。数値制御装置５０は、第１の２次サブ処理、第３の２次サブ処理及び第２の２次サブ処理を、この順に、複数のコアプロセッサのうちのひとつのコアプロセッサに割り当てる。
【０１１３】
数値制御装置５０は、第３の１次サブ処理を分割することによって得られる第４の２次サブ処理と第５の２次サブ処理との間に、第２の１次サブ処理を分割することによって得られる第６の２次サブ処理を割り込ませる。数値制御装置５０は、第４の２次サブ処理、第６の２次サブ処理及び第５の２次サブ処理を、この順に、複数のコアプロセッサのうちの別のひとつのコアプロセッサに割り当てる。
【０１１４】
したがって、数値制御装置５０は、分割を行うことによって得られた複数の１次サブ処理の個数が複数のコアプロセッサの個数より多い場合、以下の効果を得る。すなわち、数値制御装置５０は、空き時間をできるだけ作ることなく、マルチコアプロセッサ２によって実行される処理を、ひとつのコアプロセッサが当該処理を実行する場合の処理時間より短い処理時間で実行することができる。
【０１１５】
図１８は、実施の形態１にかかる数値制御装置１が有するパターン決定部４及び割り当て部５の一部又は全部の機能がプロセッサ８１によって実現される場合のプロセッサ８１を示す図である。つまり、パターン決定部４及び割り当て部５の一部又は全部の機能は、メモリ８２に格納されるプログラムを実行するプロセッサ８１によって実現されてもよい。プロセッサ８１は、ＣＰＵ（Central  Processing  Unit）、処理装置、演算装置、マイクロプロセッサ、又はＤＳＰ（Digital  Signal  Processor）である。図１８には、メモリ８２も示されている。
【０１１６】
パターン決定部４及び割り当て部５の一部又は全部の機能がプロセッサ８１によって実現される場合、当該一部又は全部の機能は、プロセッサ８１と、ソフトウェア、ファームウェア、又は、ソフトウェア及びファームウェアとの組み合わせにより実現される。ソフトウェア又はファームウェアはプログラムとして記述され、メモリ８２に格納される。プロセッサ８１は、メモリ８２に記憶されたプログラムを読み出して実行することにより、パターン決定部４及び割り当て部５の一部又は全部の機能を実現する。
【０１１７】
パターン決定部４及び割り当て部５の一部又は全部の機能がプロセッサ８１によって実現される場合、数値制御装置１は、パターン決定部４及び割り当て部５の一部又は全部によって実行されるステップが結果的に実行されることになるプログラムを格納するためのメモリ８２を有する。メモリ８２に格納されるプログラムは、パターン決定部４及び割り当て部５の一部又は全部が実行する手順又は方法をコンピュータに実行させるものであるともいえる。
【０１１８】
メモリ８２は、例えば、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ、ＥＰＲＯＭ（Erasable  Programmable  Read  Only  Memory）、ＥＥＰＲＯＭ（登録商標）（Electrically  Erasable  Programmable  Read-Only  Memory）等の不揮発性もしくは揮発性の半導体メモリ、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク又はＤＶＤ（Digital  Versatile  Disk）等である。
【０１１９】
図１９は、実施の形態１にかかる数値制御装置１が有するパターン決定部４及び割り当て部５の一部又は全部が処理回路９１によって実現される場合の処理回路９１を示す図である。つまり、パターン決定部４及び割り当て部５の一部又は全部は、処理回路９１によって実現されてもよい。
【０１２０】
処理回路９１は、専用のハードウェアである。処理回路９１は、例えば、単一回路、複合回路、プログラム化されたプロセッサ、並列プログラム化されたプロセッサ、ＡＳＩＣ(Application  Specific  Integrated  Circuit)、ＦＰＧＡ（Field-Programmable  Gate  Array）、又はこれらを組み合わせたものである。
【０１２１】
パターン決定部４及び割り当て部５の一部は、残部とは別個の専用のハードウェアであってもよい。
【０１２２】
パターン決定部４及び割り当て部５の複数の機能について、当該複数の機能の一部がソフトウェア又はファームウェアで実現され、当該複数の機能の残部が専用のハードウェアで実現されてもよい。このように、パターン決定部４及び割り当て部５の複数の機能は、ハードウェア、ソフトウェア、ファームウェア、又はこれらの組み合わせによって実現することができる。
【０１２３】
実施の形態２にかかる数値制御装置１Ａが有するパターン決定部４及び割り当て部５Ａの一部又は全部の機能は、上記のプロセッサ８１と同等の機能を有するプロセッサによって実現されてもよい。その場合、実施の形態２にかかる数値制御装置１Ａは、当該プロセッサと、パターン決定部４及び割り当て部５Ａの一部又は全部によって実行されるステップが結果的に実行されることになるプログラムを格納するためのメモリとを有する。当該メモリは、上記のメモリ８２と同等の機能を有するメモリである。実施の形態２にかかる数値制御装置１Ａが有するパターン決定部４及び割り当て部５Ａの一部又は全部は、上記の処理回路９１と同等の機能を有する処理回路によって実現されてもよい。
【０１２４】
実施の形態３にかかる数値制御装置５０が有する分割部５１及び割り当て部５２の一部又は全部の機能は、上記のプロセッサ８１と同等の機能を有するプロセッサによって実現されてもよい。その場合、実施の形態３にかかる数値制御装置５０は、当該プロセッサと、分割部５１及び割り当て部５２の一部又は全部によって実行されるステップが結果的に実行されることになるプログラムを格納するためのメモリとを有する。当該メモリは、上記のメモリ８２と同等の機能を有するメモリである。実施の形態３にかかる数値制御装置５０が有する分割部５１及び割り当て部５２の一部又は全部は、上記の処理回路９１と同等の機能を有する処理回路によって実現されてもよい。
【０１２５】
以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
【符号の説明】
【０１２６】
１，５０  数値制御装置、２  マルチコアプロセッサ、３，５３  記憶部、４  パターン決定部、５，５２  割り当て部、１１  モータ制御アンプ、１２  モータ、１３  表示器、１４  入出力装置、１５  ネットワーク装置、２１  第１コアプロセッサ、２２  第２コアプロセッサ、２３  第３コアプロセッサ、２４  第４コアプロセッサ、３１  加工プログラム、３２  加工プログラム読込み処理、３３  加工プログラム解析処理、３４  補間処理、３５  加減速処理、３６  軸制御処理、３７  ＨＭＩ処理、３８  Ｉ／Ｏ制御処理、３９  通信処理、４１  処理パターン情報、４２  リソース情報、４３  機械構成情報、４４  ソフトウェア構成情報、５１  分割部、８１  プロセッサ、８２  メモリ、９１  処理回路。
【図１】
0006877649.tif 000002
【図２】
0006877649.tif 000003
【図３】
0006877649.tif 000004
【図４】
0006877649.tif 000005
【図５】
0006877649.tif 000006
【図６】
0006877649.tif 000007
【図７】
0006877649.tif 000008
【図８】
0006877649.tif 000009
【図９】
0006877649.tif 000010
【図１０】
0006877649.tif 000011
【図１１】
0006877649.tif 000012
【図１２】
0006877649.tif 000013
【図１３】
0006877649.tif 000014
【図１４】
0006877649.tif 000015
【図１５】
0006877649.tif 000016
【図１６】
0006877649.tif 000017
【図１７】
0006877649.tif 000018
【図１８】
0006877649.tif 000019
【図１９】
0006877649.tif 000020