(57)【特許請求の範囲】
【請求項１】
機械の制御に係るデータである数値制御データを記憶可能な第１のバッファを備えた数値制御装置と、前記数値制御装置とバスを介して接続され、前記数値制御データを記憶可能な第２のバッファを備えたパソコン部と、を有する数値制御システムにおいて、
前記数値制御装置は、
前記数値制御データのデータ種類毎の優先順位を示すデータ優先順位情報が記憶されたデータ優先順位情報記憶部と、
前記数値制御装置の負荷状態に基づいて、前記第２のバッファに対して前記数値制御データをセット処理に許容される時間であるデータセット許容時間を算出する許容時間算出部と、
前記データ優先順位情報記憶部に記憶されるデータ優先順位情報と、前記許容時間算出部が算出したデータセット許容時間とに基づいて、前記データセット許容時間内にデータセットすることができるように前記数値制御データのデータセット先となるバッファをデータ種類毎に決定するバッファ決定部と、
前記バッファ決定部が決定した前記数値制御データのデータ種類毎のデータセット先となるバッファの情報である使用中バッファ情報を前記パソコン部へと送信する使用中バッファ情報設定部と
を備え、
前記パソコン部は、
前記数値制御データのデータ種類毎の優先順位を示すデータ優先順位情報を前記データ優先順位情報記憶部へと設定する優先順位設定部と
を備え、
前記パソコン部の上で動作するアプリケーションは、前記使用中バッファ情報設定部から受信した前記使用中バッファ情報に基づいて、前記第１のバッファまたは前記第２のバッファの少なくともいずれか一方から前記数値制御データを取得する、
ことを特徴とする数値制御システム。
【請求項２】
前記データ優先順位情報は、前記数値制御データのデータ種類毎のデータセット処理に必要となる処理時間である必要データセット時間と、当該データ種類毎のアクセス頻度とを関連付けたものである、
ことを特徴とする請求項１に記載の数値制御システム。
【請求項３】
前記バッファ決定部は、前記数値制御データのデータ種類の内でアクセス頻度が高いデータ種類の数値制御データを優先して第２のバッファへとデータセットするように決定する、
ことを特徴とする請求項２に記載の数値制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、数値制御システムに関し、特に効率的に数値制御データの受け渡しをする数値制御システムに関する。
【背景技術】
【０００２】
多くの数値制御装置（ＣＮＣ）には、ＰＣなどのデータ処理装置が接続されており、これらを含めて数値制御システムを構成している（例えば、特許文献１）。数値制御システムにおいては、ＰＣなどのデータ処理装置（以下、パソコン部とする）は、数値制御装置が機械の制御を行っている際に得られたデータに基づいて機械制御の支援をするためのデータ処理や、ユーザが対話型でデータの入出力を行う各種ユーザインタフェースを提供している。
このように、パソコン部を有する数値制御システムでは、数値制御装置が機械を制御するのに必要なデータは数値制御装置内のメモリ等で保持されていた。そして、パソコン部から数値制御装置内のデータに対しては、自由にアクセスすることができる。
【０００３】
図６は、従来の数値制御システムの概略構成図である。図において数値制御装置１とパソコン部２とは、それぞれバッファ１０，２０を介してＰＣＩ−Ｅｘｐｒｅｓｓなどのバス３に接続されている。このバッファ１０，２０は、数値制御装置１からパソコン部２へ数値制御データ（ＣＮＣデータ）を受け渡すために用いられ、例えばメモリなどで構成される。
数値制御装置１が備えるデータセット処理部１１は、数値制御装置１がプログラムを解析して得られたデータや、制御対象となる機械の動作データなどを含む数値制御データを、直接バッファ１０に、またはバス３を介してバッファ２０にデータセット（書き込み）する。一方で、パソコン部２の上で動作しているアプリケーション２１は、ユーザからのデータ処理や画面表示などの指令に基づいてＡＰＩ（アプリケーションプログラマブルインタフェース）２２を呼び出して、データ処理や画面表示に必要な数値制御データを、バス３を介してバッファ１０から、または直接バッファ２０からデータリード（読み出し）する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平０８−１６１０２１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
一般に、ＰＣＩ−Ｅｘｐｒｅｓｓ等の昨今用いられているバスは、小容量のデータ転送に時間が長くかかるため、バスを越えてデータにアクセスすると高い負荷がかかる。図６を例にとると、データセット処理部１１からバッファ１０に対するデータセットは負荷が小さく、データセット処理部１１からバス３を介したバッファ２０に対するデータセットには大きな負荷が掛かる。また、アプリケーション２１からバス３を介したバッファ１０からのデータリードは大きな負荷が掛かり、アプリケーション２１からバッファ２０に対するデータリードは負荷が小さい。そのため、数値制御装置１がパソコン部２に対して受け渡す数値制御データを数値制御装置１のバッファ１０に偏って記憶するようにした場合はアプリケーション２１によるデータリードの負荷が増加するためパソコン部２のパフォーマンスが低下し、逆に数値制御データをパソコン部２のバッファ２０に偏って記憶するようにした場合はデータセット処理部１１によるデータセットの負荷が増加するため数値制御装置１の加工制御に影響するという問題がある。
【０００６】
そこで本発明の目的は、数値制御装置の動作状況に応じて数値制御データの受け渡しに掛かる負荷を調節することが可能な数値制御システムを提供することである。
【課題を解決するための手段】
【０００７】
本発明の数値制御システムでは、数値制御装置の負荷状況に応じて、数値制御装置からパソコン部への数値制御データの受け渡しに用いるバッファの使用状況をダイナミックに切換える。より具体的には、数値制御装置の負荷が高い時には数値制御装置側に設けられているバッファを優先的に使用するようにし、数値制御装置の負荷が低い時にはパソコン部側に設けられているバッファを優先的に使用する。
【０００８】
そして、本願の請求項１に係る発明は、機械の制御に係るデータである数値制御データを記憶可能な第１のバッファを備えた数値制御装置と、前記数値制御装置とバスを介して接続され、前記数値制御データを記憶可能な第２のバッファを備えたパソコン部と、を有する数値制御システムにおいて、前記数値制御装置は、前記数値制御データのデータ種類毎の優先順位を示すデータ優先順位情報が記憶されたデータ優先順位情報記憶部と、前記数値制御装置の負荷状態に基づいて、前記第２のバッファに対して前記数値制御データをセット処理に許容される時間であるデータセット許容時間を算出する許容時間算出部と、前記データ優先順位情報記憶部に記憶されるデータ優先順位情報と、前記許容時間算出部が算出したデータセット許容時間とに基づいて、前記データセット許容時間内にデータセットすることができるように前記数値制御データのデータセット先となるバッファをデータ種類毎に決定するバッファ決定部と、前記バッファ決定部が決定した前記数値制御データのデータ種類毎のデータセット先となるバッファの情報である使用中バッファ情報を前記パソコン部へと送信する使用中バッファ情報設定部とを備え、前記パソコン部は、前記数値制御データのデータ種類毎の優先順位を示すデータ優先順位情報を前記データ優先順位情報記憶部へと設定する優先順位設定部とを備え、前記パソコン部の上で動作するアプリケーションは、前記使用中バッファ情報設定部から受信した前記使用中バッファ情報に基づいて、前記第１のバッファまたは前記第２のバッファの少なくともいずれか一方から前記数値制御データを取得する、ことを特徴とする数値制御システムである。
【０００９】
本願の請求項２に係る発明は、前記データ優先順位情報は、前記数値制御データのデータ種類毎のデータセット処理に必要となる処理時間である必要データセット時間と、当該データ種類毎のアクセス頻度とを関連付けたものである、ことを特徴とする請求項１に記載の数値制御システムである。
【００１０】
本願の請求項３に係る発明は、前記バッファ決定部は、前記数値制御データのデータ種類の内でアクセス頻度が高いデータ種類の数値制御データを優先して第２のバッファへとデータセットするように決定する、ことを特徴とする請求項２に記載の数値制御システムである。
【発明の効果】
【００１１】
本発明により、数値制御装置のＣＰＵ負荷を一定以下に保ちつつ、その下でパソコン部で実行されるアプリケーションのパフォーマンスを最大化することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の一実施形態による数値制御システムの概略構成図である。
【図２】データ優先順位情報を例示する図である。
【図３】使用中バッファ情報を例示する図である。
【図４】許容時間算出部上で実行される処理の概略フローチャートである。
【図５】バッファ決定部上で実行される処理の概略フローチャートである。
【図６】従来技術による数値制御システムの概略構成図である。
【発明を実施するための形態】
【００１３】
以下、本発明の実施形態を図面と共に説明する。なお、従来技術と同一または類似する構成は同じ符号を用いて説明する。
図１は、本発明の一実施形態による数値制御システムの概略構成図である。本実施形態の数値制御システム１００は、従来技術の数値制御システムと同様に数値制御装置１とパソコン部２とがバス３を介して接続されて構成される。数値制御装置１が備えるデータセット処理部１１は、数値制御データを、直接バッファ１０に、またはバス３を介してバッファ２０にデータセットし、また、パソコン部２の上で動作しているアプリケーション２１は、ユーザからのデータ処理や画面表示などの指令に基づいてＡＰＩ２２を呼び出して、データ処理や画面表示に必要な数値制御データを、バス３を介してバッファ１０から、または直接バッファ２０からデータリードする。なお、データセット処理部１１によるデータセット処理は、数値制御装置１の処理周期毎に実行される。
本実施形態の数値制御装置１は、更に許容時間算出部１２を備え、また、データセット処理部１１は、バッファ決定部１３、使用中バッファ情報設定部１４を備える。また、本実施形態のパソコン部２は、優先順位設定部２３を備える。
【００１４】
許容時間算出部１２は、数値制御装置１の負荷を測定し、データセット処理部１１によるデータセット処理に許容される時間であるデータセット許容時間を算出する機能手段である。許容時間算出部１２が測定する数値制御装置１の負荷としては、例えば、ある単位時間当たりのサーボの補間制御に要した時間を測定するようにすればよい。許容時間算出部１２は、測定した数値制御装置１の負荷に基づいて、例えば以下に示す数１式を用いてデータセット処理の許容時間を算出して決定する。数１式において、データセット許容基準時間は運転を行っていない状態におけるデータセットに割ける最大時間を、サーボ補間基準時間は運転を行っていない状態におけるサーボ補間時間を、それぞれ指しており、これら値は予め実験などにより算出しておく。
【００１５】
【数１】
0006517706.tif 000002
【００１６】
許容時間算出部１２は、決定したデータセット許容時間をメモリ上に設けられたデータセット許容時間記憶部１５へと保存する。ここで、数値制御装置１の負荷を測定してデータセット許容時間を算出した際に、データセット許容時間記憶部１５に前回算出したデータセット許容時間が既に記憶されている場合には、今回算出したデータセット許容時間とデータセット許容時間記憶部１５に記憶されている前回算出したデータセット許容時間との差分を計算し、その差分があらかじめ定めておいた閾値Ｄよりも大きい場合に、データセット許容時間記憶部１５に記憶されているデータセット許容時間を更新する。このようにすることで、数値制御装置１の負荷が小さい幅で変動する場合であっても、その影響を受けずに安定したデータセット許容時間を用いることができる。
【００１７】
パソコン部２が備える優先順位設定部２３は、アプリケーション２１からの呼び出しに基づいて、データ優先順位情報を数値制御装置１内のメモリ上に設けられたデータ優先順位情報記憶部１６に対してデータセットする。
図２は、データ優先順位情報の例を示す図である。図２に示すように、データ優先順位情報は、数値制御データの種類ごとに、数値制御装置１のデータセット処理部１１がパソコン部２のバッファ２０に対して当該数値制御データをデータセットするのに必要な時間である必要データセット時間と、アプリケーション２１からの当該数値制御データへのアクセス頻度とを関連付けた情報である。各数値制御データの種類ごとの必要データセット時間の初期値は、あらかじめ実験などを行って計測した値を登録する。また、各数値制御データの種類ごとのアクセス頻度の初期値は０としておく。
優先順位設定部２３は、アプリケーション２１がＡＰＩ２２を介して通知した各数値制御データの種類ごとのアクセス頻度をデータ優先順位情報としてデータセットするようにしてもよい。また、アプリケーション２１によるＡＰＩ２２を介した数値制御データに対する過去の所定時間内のアクセスを監視して統計処理することで各数値制御データの種類ごとのアクセス頻度を求め、データ優先順位情報としてデータセットするようにしてもよい。また、これらを組み合わせるようにしてもよい。なお、アプリケーション２１が複数動作している場合には、それぞれのアプリケーション２１のアクセス頻度の合計値をデータ優先順位情報としてデータセットするようにすればよい。
【００１８】
数値制御装置１が備えるバッファ決定部１３は、データセット許容時間記憶部１５に記憶されているデータセット許容時間と、データ優先順位情報記憶部１６に記憶されているデータ優先順位情報とを読み出し、読み出したデータセット許容時間とデータ優先順位情報とに基づいて、数値制御装置１に設けられたバッファ１０とパソコン部２に設けられたバッファ２０とでどちらのバッファに対していずれの数値制御データをデータセットするのかを決定する。
バッファの決定方法の一例としては、データ優先順位情報で示されるアクセス頻度の高いデータ種類の数値制御データから順にデータ種類の組み合わせを考え、組み合わせたデータ種類の必要データセット時間を加算し、加算した必要データセット時間がデータセット許容時間を越えない範囲でアクセス頻度の高いデータ種類の数値制御データをバッファ２０に対してデータセットするものとして決定し、それ以外のデータ種類の数値制御データをバッファ１０に対してデータセットする方法が考えられる。この方法により、図２下に示した優先順位データが設定されている場合であってデータセット許容時間が１００μｓｅｃである場合におけるそれぞれのデータ種類の数値制御データのデータセット先を決定すると、アクセス頻度の高い順序（優先順）はＡ→Ｃ→Ｂ→Ｄであり、この順で優先的な（すなわち、トータルで最もアクセス頻度が多くなる）データ種類の組み合わせを考えていくと［Ａ，Ｂ，Ｃ］、［Ａ，Ｃ］、［Ａ，Ｂ］、［Ａ］、［Ｂ，Ｃ］、［Ｂ］，［Ｃ］（Ｄはアクセス頻度が０なので除外する）という順序が考えられる。それぞれの組み合わせについて必要データセット時間を加算し、データセット許容時間内に収まる最も優先的なデータ種類の組み合わせを探索する。例えば、［Ａ，Ｂ，Ｃ］の組み合わせでは１５０μｓｅｃ、［Ａ，Ｃ］の組合せでは１１０μｓｅｃとなっていずれもデータセット許容時間を越えてしまうが、［Ａ，Ｂ］の組み合わせでは９０μｓｅｃとなり、データセット許容時間を越えないので、データ種類がＡとＢの数値制御データをパソコン部２が備えるバッファ２０へとデータセットし、残りのデータ種類がＣとＤの数値制御データを数値制御装置１が備えるバッファ１０へとデータセットすると決定できる。
【００１９】
使用中バッファ情報設定部１４は、バッファ決定部１３が決定した各数値制御データのデータセット先に係る情報である使用中バッファ情報を、パソコン部２が備えるメモリ上に設けられた使用中バッファ情報記憶部２４へとデータセットする。
図３は、使用中バッファ情報の例を示す図である。図３に示すように、使用中バッファ情報は、数値制御データのデータ種類に対して当該データ種類の数値制御データが数値制御装置１が備えるバッファ１０とパソコン部２が備えるバッファ２０とのいずれに記憶されているのか（いずれを使用しているのか）を示す情報を関連付けた情報である。図３に例示する使用中バッファ情報は、データ種類がＡとＢの数値制御データはパソコン部２が備えるバッファ２０に、データ種類がＣとＤの数値制御データは数値制御装置１が備えるバッファ１０に、それぞれ記憶されていることを示している。
【００２０】
そして、データセット処理部１１は、このようにしてバッファ決定部１３がデータ種類ごとに決定した数値制御データのデータセット先に（バッファ１０、バッファ２０）に従って、それぞれの数値データセットをデータセットする。データセット処理部１１によるデータセット処理は、上記したように数値制御装置１の処理周期毎に実行されるので、バッファ決定部１３による数値制御データの各データ種類毎のデータセット先となるバッファの決定は処理周期毎に反映されることになる。
パソコン部２のＡＰＩ２２は、このような使用中バッファ情報を参照して、アプリケーション２１が要求する数値制御データがバッファ１０に記憶されているのか、バッファ２０に記憶されているのかを特定する。そして、特定したバッファへとアクセスすることでアプリケーション２１が要求する数値制御データをデータリードして取得し、取得した数値制御データをアプリケーション２１へと引き渡す。
【００２１】
図４は、上記した許容時間算出部１２が実行する処理の概略フローチャートである。
●［ステップＳＡ０１］許容時間算出部１２は、数値制御装置１の負荷を測定する。
●［ステップＳＡ０２］許容時間算出部１２は、ステップＳＡ０１で測定された数値制御装置１の負荷に基づいて、データセット処理に許容される時間であるデータセット許容時間を算出する。
【００２２】
●［ステップＳＡ０３］許容時間算出部１２は、ステップＳＡ０２で算出したデータセット許容時間とデータセット許容時間記憶部１５に既に記憶されている前回算出したデータセット許容時間との差分が予め定められた閾値Ｄよりも大きいか否かを判定する。閾値Ｄよりも大きい場合にはステップＳＡ０４へ処理を移行し、閾値Ｄ以下である場合には本処理を終了する。
●［ステップＳＡ０４］許容時間算出部１２は、ステップＳＡ０２で算出されたデータセット許容時間をデータセット許容時間記憶部１５へと上書きして記憶する。
【００２３】
図５は、上記したバッファ決定部１３が実行する処理の概略フローチャートである。
●［ステップＳＢ０１］バッファ決定部１３は、アクセス頻度の最も高いデータ種類を優先したデータ種類の組み合わせを作成する。
●［ステップＳＢ０２］バッファ決定部１３は、ステップＳＢ０１で作成したそれぞれのデータ種類の組み合わせについて、優先的な順（すなわち、トータルで最もアクセス頻度が多くなる順）でステップＳＢ０３〜ステップＳＢ０５を繰り返す。
●［ステップＳＢ０３］バッファ決定部１３は、データ種類の組み合わせに含まれる各データ種類の必要データセット時間を加算する。
【００２４】
●［ステップＳＢ０４］バッファ決定部１３は、ステップＳＢ０３で加算した必要データセット時間が、データセット許容時間を越えているか否かを判定する。越えている場合には次のデータ種類の組み合わせに対してステップＳＢ０３からの処理を繰り返し、越えていない場合にはステップＳＢ０５へと処理を移行する。
●［ステップＳＢ０５］バッファ決定部１３は、ステップＳＢ０４で判定したデータ種類の組み合わせに含まれるデータ種類をパソコン部２のバッファ２０へ保存するデータ種類として決定し、本処理を終了する。
●［ステップＳＢ０６］バッファ決定部１３は、パソコン側のバッファへ保存するデータ種類は無いと決定し、本処理を終了する。
【００２５】
上記構成を備えた数値制御システムにより、数値制御装置のＣＰＵ負荷を一定以下に保ちつつ、パソコン部で実行されるアプリケーションのパフォーマンスを最大化することができる。
【００２６】
以上、本発明の実施の形態について説明したが、本発明は上述した実施の形態の例にのみ限定されるものでなく、適宜の変更を加えることにより様々な態様で実施することができる。
例えば、上記した実施形態では、バッファ決定部１３は単純にアクセス頻度が多いものを優先順位が高いデータ種類とした処理を行っているが、データ種類ごとにアクセス頻度と必要データセット時間を乗算した値に基づいて優先順位を決めるようにしてもよい。必要データセット時間は専ら当該データ種類のデータ量に依存して大きくなるので、アクセス頻度と必要データセット時間を乗算した値に基づいた優先順位はパソコン部２が数値制御装置１から取得している実質的なデータ量に依存した数値となるので、より実態に即した優先順位として用いることができる。
【符号の説明】
【００２７】
１  数値制御装置
２  パソコン部
３  バス
１０，２０  バッファ
１１  データセット処理部
１２  許容時間算出部
１３  バッファ決定部
１４  使用中バッファ情報設定部
１５  データセット許容時間記憶部
１６  データ優先順位情報記憶部
２０  アプリケーション
２１  アプリケーション
２２  ＡＰＩ
２３  優先順位設定部
２４  使用中バッファ情報記憶部
１００  数値制御システム
【図１】
0006517706.tif 000003
【図２】
0006517706.tif 000004
【図３】
0006517706.tif 000005
【図４】
0006517706.tif 000006
【図５】
0006517706.tif 000007
【図６】
0006517706.tif 000008