(57)【要約】【課題】補間周期の設定を容易にするとともに、割り与えたＣＰＵリソースで処理時間をオーバーすることなく、継続運転できるモーションコントローラ及びその補間周期調整方法を提供する。【解決手段】複数の補間周期で補間処理を行う補間処理部３を備えたモーションコントローラにおいて、前記各補間処理部３に前記補間周期３ａを持たせ、該補間周期３ａに基づいて前記各補間処理部３を実行させる基本周期マネージャ８を備える。【選択図】    図１
2006024185.tif 000002
【特許請求の範囲】
【請求項１】
複数の補間周期で補間処理を行う補間処理部（３）を備えたモーションコントローラにおいて、
前記各補間処理部（３）に前記補間周期（３ａ）の情報を持たせ、該補間周期（３ａ）に基づいて前記各補間処理部（３）を実行させる基本周期マネージャ（８）を備えることを特徴とするモーションコントローラ。
【請求項２】
前記補間周期をパラメータから設定するパラメータ補間周期設定部（９）を備えることを特徴とする請求項１記載のモーションコントローラ。
【請求項３】
動作を指令するモーションプログラムを解析し、前記補間処理部（３）に解析結果を出力する指令解析部（２）に、前記モーションプログラムに指令された補間周期設定指令を解析し、前記補間周期（３ａ）を設定する指令補間周期設定部（２ａ）を備えることを特徴とする請求項１記載のモーションコントローラ。
【請求項４】
複数の補間周期で補間処理を行う補間処理部（３）を備えたモーションコントローラにおいて、
補間処理に要する演算リソースの許容負荷率と、予め設定された各補間処理毎の通常補間周期、許容補間周期、優先順位及び補間に関するフラグを記憶するための補間周期調整用情報テーブル（１１）と、
前記補間処理に要する演算リソースの負荷率を常に監視し、設定された前記許容負荷率を維持するように前記補間周期調整用情報テーブル（１１）の情報に基づいて、補間周期を再設定するための補間周期調整マネージャ（１２）とを備えることを特徴とするモーションコントローラ。
【請求項５】
複数の補間周期で補間処理を行うモーションコントローラの補間周期調整方法において、
前記補間処理に要する演算リソースの最新の負荷率を取得するステップ（ＳＴ３１）と、
前記負荷率が許容範囲内にあるかどうか判断するステップ（ＳＴ３２）と、
判断の結果、前記負荷率が許容範囲内から外れている場合は前記補間周期の調整処理を実行するステップ（ＳＴ３３）とを備えることを特徴とするモーションコントローラの補間周期調整方法。
【請求項６】
複数の補間周期で補間処理を行う補間処理部（３）を備えたモーションコントローラにおいて、
補間処理に要する演算リソースの許容負荷率と、予め設定された各補間処理毎の補間周期、移動量バッファサイズ、優先順位、及び補間処理に関するフラグを記憶するための補間処理調整用情報テーブル（１１ｃ）と、
軸固有の処理を行う軸処理部（４）毎に、各補間処理毎の前記移動量バッファサイズの容量の移動量バッファ（４ａ）と、
前記補間処理に要する演算リソースの負荷率を常に監視し、設定された前記許容負荷率を維持するように前記補間処理調整用情報テーブル（１１ｃ）の情報に基づいて、補間処理に要する演算リソースの許容負荷率に余裕がある場合、次周期以降の補間処理を演算リソースの許容負荷率内で前もって行うための補間処理調整マネージャ（１２ａ）と、
前記補間処理部（３）に、前記次周期以降の補間処理を行い演算した移動量を前記移動量バッファ（４ａ）に出力するバッファ処理部（３ｂ）を備えることを特徴とするモーションコントローラ。
【請求項７】
複数の補間周期で補間処理を行うモーションコントローラの補間データバッファリング調整方法において、
前記補間処理に要する演算リソースの最新の負荷率を取得するステップ（ＳＴ３１）と、
前記負荷率が許容範囲内にあるかどうか判断するステップ（ＳＴ３２）と、
判断の結果、前記負荷率が許容範囲内から外れている場合は前記補間データのバッファリング調整処理を実行するステップ（ＳＴ６３）とを備えることを特徴とするモーションコントローラの補間データバッファリング調整方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、補間処理の周期の設定及びその周期の自動調整及び補間データのバッファリング調整を行うモーションコントローラ及びその補間周期調整方法及び補間データバッファリング調整方法に関する。
【背景技術】
【０００２】
図２１は、従来のモーションコントローラを示す構成図である。
図２１において、１はモーションコントローラに入力されるモーションプログラム、２はモーションプログラム１を解析し、補間処理部への入力情報へ変換する為の指令解析部、３は指令解析部２の解析結果をもとに、基本周期あたりのモータへの移動量を演算するための補間処理部、４は軸処理部、５は軸処理部４が計算した結果を入力し、モータへ電流として指令を出す為のドライブコントローラ、６はドライブコントローラ５からの電流指令を受けて動作するモータ、７はモーションコントローラが持つ基本周期処理部である。
基本周期処理は通常、リアルタイムクロック処理と呼ばれることが多く、モーションコントロールを行う最小の周期で動作する処理である。
以下、図２１を用いて、モーションコントローラが指令を解析し、モータを動作させる手順について説明する。
モーションコントローラに準備されている命令（モーション命令）を使用し、モーション動作を発生させる為のプログラム（モーションプログラム１）をモーションコントローラへ設定する。通常モーションプログラムは、モーションコントローラが持つ不揮発性のメモリに存在する。モーションプログラムの選択とモーション動作開始の命令により指令解析部２は、設定されたモーションプログラムを１命令毎に読み込み、移動量や補間の種類などの情報を補間処理部３への入力情報として変換する。補間処理部３はコントローラの基本周期に同期して実行されるため、通常、補間処理部３の基本周期は、コントローラの基本周期と同等である。補間処理部３は、補間周期単位の移動量を演算することになる。補間処理部３は指令解析部２より設定された情報を基に、モーションコントローラとして規定された補間周期での移動量を演算する。補間処理部３が演算した補間周期あたりの移動量は、補間周期毎に軸処理部４へ渡される。軸処理部４は、軸固有に存在する処理をまとめた処理部であり、モーションコントローラに接続されている軸数分実行される必要がある。軸処理部４は、軸ごとに可能な処理（例えば、位置の作成、単位変換など）を行う。軸処理部４が演算した結果は、ドライブコントローラ５へ渡され、さらには、ドライブコントローラ５からモータ６へと電流指令で渡される。以上の流れにより、モータ６が動作する。
以上述べたように、従来技術のモーションコントローラは、一定の周期で移動指令を生成する必要があり、この移動指令を生成する補間処理部の補間周期は、多軸曲線補間などの演算量が多い処理や、並列に動作させる補間処理部の数及び、その他の処理のための演算処理リソースを見積って、その最大値から補間周期を決定している。（例えば、特許文献１参照）。
【特許文献１】特開２００２−０８２７０１号公報（第２−３頁）
【発明の開示】
【発明が解決しようとする課題】
【０００３】
従来技術のモーションコントローラは、一定の周期で移動指令を生成する必要があり、この移動指令を生成する補間処理部の補間周期は、多軸曲線補間などの演算量が多い処理や、並列に動作させる補間処理部の数及び、その他の処理のための演算処理リソースを見積って、その最大値から補間周期を決定している。しかしながら、直線補間のような比較的演算処理が軽い補間処理をした場合は、演算の最大値から補間周期を決定すると処理に余裕があり、もっと多くの軸を同時に制御できるため、ＣＰＵリソースを無駄にしているという問題がある。また、最大値の見積りは難しく、最悪値を想定するため余裕を持たせた安全サイドの補間周期設定になり、本来演算処理に割り当てられるＣＰＵリソースを効率よく使用できず、その結果より多くの軸を制御できないという問題があった。
そこで本発明は、この問題に鑑みてなされたものであり、補間周期の設定を容易にするとともに、割り与えたＣＰＵリソースで処理時間をオーバーすることなく、継続運転できるモーションコントローラ及びその補間周期調整方法を提供することを目的とする。
【課題を解決するための手段】
【０００４】
上記問題を解決するため、請求項１に記載の発明は、複数の補間周期で補間処理を行う補間処理部を備えたモーションコントローラにおいて、前記各補間処理部に前記補間周期の情報を持たせ、該補間周期に基づいて前記各補間処理部を実行させる基本周期マネージャを備えることを特徴としている。
また、請求項２に記載の発明は、前記補間周期をパラメータから設定するパラメータ補間周期設定部を備えることを特徴としている。
また、請求項３に記載の発明は、動作を指令するモーションプログラムを解析し、前記補間処理部に解析結果を出力する指令解析部に、前記モーションプログラムに指令された補間周期設定指令を解析し、前記補間周期を設定する指令補間周期設定部を備えることを特徴としている。
【０００５】
また、請求項４に記載の発明は、複数の補間周期で補間処理を行う補間処理部を備えたモーションコントローラにおいて、補間処理に要する演算リソースの許容負荷率と、予め設定された各補間処理毎の通常補間周期、許容補間周期、優先順位及び補間に関するフラグを記憶するための補間周期調整用情報テーブルと、前記補間処理に要する演算リソースの負荷率を常に監視し、設定された前記許容負荷率を維持するように前記補間周期調整用情報テーブルの情報に基づいて、補間周期を再設定するための補間周期調整マネージャとを備えることを特徴としている。
また、請求項５に記載の発明は、複数の補間周期で補間処理を行うモーションコントローラの補間周期調整方法において、前記補間処理に要する演算リソースの最新の負荷率を取得するステップと、前記負荷率が許容範囲内にあるかどうか判断するステップと、判断の結果、前記負荷率が許容範囲内から外れている場合は前記補間周期の調整処理を実行するステップとを備えることを特徴としている。
【０００６】
また、請求項６に記載の発明は、複数の補間周期で補間処理を行う補間処理部を備えたモーションコントローラにおいて、補間処理に要する演算リソースの許容負荷率と、予め設定された各補間処理毎の補間周期、移動量バッファサイズ、優先順位、及び補間処理に関するフラグを記憶するための補間処理調整用情報テーブルと、軸固有の処理を行う軸処理部毎に、各補間処理毎の前記移動量バッファサイズの容量の移動量バッファと、前記補間処理に要する演算リソースの負荷率を常に監視し、設定された前記許容負荷率を維持するように前記補間処理調整用情報テーブルの情報に基づいて、補間処理に要する演算リソースの許容負荷率に余裕がある場合、次周期以降の補間処理を演算リソースの許容負荷率内で前もって行うための補間処理調整マネージャと、前記補間処理部に、前記次周期以降の補間処理を行い演算した移動量を前記移動量バッファに出力するバッファ処理部を備えることを特徴としている。
また、請求項７に記載の発明は、複数の補間周期で補間処理を行うモーションコントローラの補間データバッファリング調整方法において、前記補間処理に要する演算リソースの最新の負荷率を取得するステップと、前記負荷率が許容範囲内にあるかどうか判断するステップと、判断の結果、前記負荷率が許容範囲内から外れている場合は前記補間データのバッファリング調整処理を実行するステップとを備えることを特徴としている。
【発明の効果】
【０００７】
請求項１、２、３に記載の発明によれば、補間周期をパラメータ又はモーションプログラムから設定できるようにしたため、補間周期の設定が容易にできる。
また、請求項４、５に記載の発明によれば、補間処理の負荷に応じてオンラインで補間周期を変更可能としたため、常に同じ補間周期で動作する必要がない補間処理は、遅い補間周期で動作できる補間周期にダイナミックに変更できる。
また、請求項６、７に記載の発明によれば、補間処理に割り与えたＣＰＵリソースを有効に使用して補間周期あたりの移動量をバッファリングできるため、補間処理のピーク時の演算リソース負荷率を下げる方法として補間演算処理をスキップし、移動量バッファのみで運転できる。
これらにより、多軸曲線補間などの演算量が多い処理や、並列に動作させる補間処理部の数及び、その他の処理のための演算処理リソースを見積って、その最大値から補間周期を決定していた従来のコントローラと比べ、補間周期の設定を容易にするとともに、割り与えたＣＰＵリソースで処理時間をオーバーすることなく、継続運転できるモーションコントローラを実現できる。
【発明を実施するための最良の形態】
【０００８】
以下、本発明の具体的実施例について、図に基づいて説明する。
【実施例１】
【０００９】
図１は、本発明の実施例１のモーションコントローラを示す構成図である。
図１において、１はモーションコントローラに入力されるモーションプログラム、２はモーションプログラムに指令されたモーションコマンドを１命令ずつ読み込んで解析し補間処理部への入力情報へ変換する為の指令解析部、３は指令解析部の解析結果をもとに補間周期あたりの移動量を演算するための補間処理部である。補間処理部３は、補間周期の移動量を１回の補間処理実行で演算することになる。３ａは、補間処理部３の中にある補間周期の情報である。なお、図ではこの補間周期を単に周期と記す。４は軸処理部で、軸固有にある処理をまとめた処理部であり、モーションコントローラ１に接続されている軸数分実行される。なお、軸処理部４の中に軸処理周期の情報があるが、図では単に周期と記す。２ａは指令解析部２の中にあり、モーションコマンドの補間周期指令を解析し、補間処理部３の補間周期３ａを設定する指令補間周期設定部である。５はドライブコントローラ、６は実際に動作するモータ、７はコントローラが持つ基本周期処理部、８は基本周期を毎に呼び出され補間処理部３、軸処理部４の起動周期をマネージする基本周期マネージャである。１０は補間周期を指定する補間周期パラメータ、９は補間周期パラメータ１０を補間周期に設定するパラメータ補間周期設定部である。
本実施例の特徴は以下のとおりである。
すなわち、補間処理部３に補間周期３ａを持たせ、その周期情報に基づき基本周期マネージャ８が補間処理部３を実行させる点と、パラメータから補間周期３ａを設定するパラメータ補間周期設定部９を備える点と、モーションコマンドの補間周期指令を解析し補間周期３ａを設定する指令補間周期設定部２ａを備える点である。
【００１０】
パラメータから補間周期３ａを設定するには、作業者はモーションコントローラ１に付属するキーボード（図示せず）等から表示器（図示せず）のパラメータ画面等を使用して時間単位の補間周期の値を入力する。入力された補間周期の値はパラメータ補間周期設定部９により、単位を基本周期の倍数に変換され、補間周期３ａに設定される。なお、モーションコントローラ１の電源投入時は、パラメータにある補間周期の値が補間周期３ａに設定される。
【００１１】
次に、モーションプログラムから補間周期３ａを設定する方法を説明する。
図２は補間処理部３の補間周期３ａを設定するモーションプログラム例である。本例では、ＳＥＴＣＹＣＬＥというモーションコマンドを使用している。ＳＥＴＣＹＣＬＥ命令には、補間周期と、その補間周期で実行させたい補間処理部の名前を引数として指定する。本例においては、３つの補間処理部が存在し、それらには、ＦＧ１、ＦＧ２、ＦＧ３という名前が与えられている。プログラムでは、ＳＥＴＣＹＣＬＥ（ＦＧ２、２）と指令しているため、以降、ＦＧ２という名前の補間処理部は２の演算周期で動作せよ、ということを意味する。ここで“２”の単位は、基本周期の倍数とする。
この指令を指令解析部２が解析すると、指令解析部２の中の指令補間周期設定部２ａはＦＧ２の補間処理部の補間周期３ａに２を設定する。この補間周期３ａに設定されたデータは、基本周期マネージャにて常に参照されており、基本周期マネージャが、それぞれの補間処理部をどのタイミングで実行させるかを決定するのに使用される。
【００１２】
図３は、本発明の実施例１の基本周期マネージャのフローチャートである。基本周期マネージャは、補間周期、軸制御周期設定処理を実行する（ステップＳＴ１）。
図４は、本発明の実施例１の補間周期、軸制御周期設定処理のフローチャートである。
まず、パラメータで設定されている補間処理部の数を取得する（ステップＳＴ１１）。
次に、補間処理部の数分ループ処理し、補間周期３ａを各補間処理部３から取得する（ステップＳＴ１２）。次に、各補間処理部に接続されている軸処理部へ周期を設定する（ステップＳＴ１３）。次に、取得した補間周期により、今回補間を実行するタイミングかどうか判別し（ステップＳＴ１４）、実行するタイミングであれば、補間処理部を実行させる（ステップＳＴ１５）。更に接続されている制御軸数分軸処理部を実行させる（ステップＳＴ１６）。
【００１３】
図１のモーションプログラム１に示すように、補間周期設定指令を指令した後位置指令を指令した場合の動作を説明する。まず、指令解析部２はモーションプログラム１からの補間周期変更指令を解析し、指定された補間処理部３の補間周期３ａに補間周期の値を設定する。補間処理部３の実行は、基本周期マネージャ８にて実行する周期が管理されており、補間周期３ａが変更されると、補間処理部３の実行周期もリアルタイムに変更される。
次に指令解析部２は、次命令である移動指令を読み込み、移動量と、補間の種類等を解析し補間処理部３へ出力する。補間処理部３は入力された指令を基に補間周期あたりの移動量を演算する。補間処理部３が演算した移動量は、軸処理部４へ出力される。軸処理部４は、位置の作成、単位変換等の軸独立で可能な処理を基本周期に合った演算処理で行う。軸処理部４が演算した結果は、ドライブコントローラ５へ出力され、さらにドライブコントローラ５からモータ６へ指令が出力される。
このように、従来のモーションコントローラは、プログラムからの移動指令をどのような周期で補間演算を行うかはコントローラ固有の値に固定されていたが、本発明では、補間周期を設定するパラメータ及び補間周期設定指令により補間周期を設定できる。
【実施例２】
【００１４】
次に、本発明の実施例２について説明する。実施例２は、補間周期を補間処理部の負荷を監視することによって自動的に調整するように構成するものである。
図５は、本発明の実施例２のモーションコントローラを示す構成図である。
図５は実施例１の図１の構成図に、補間周期の調整の基となる情報を持つ補間周期調整用情報テーブル１１、この情報に基づき起動周期を調整する補間周期調整マネージャ１２、補間周期調整用情報の基となる補間周期条件パラメータ１３が追加となっている。
また、１１ａは補間周期調整用情報テーブル１１の補間グループに共通な情報を集めた共通情報テーブル、１１ｂは補間グループ毎の情報を集めたグループ別情報テーブルである。また、図１にある基本周期マネージャ８は、実施例２では、補間周期調整マネージャ１２とのやり取りで処理が追加されるため、図１と区別するため、基本周期マネージャＡ８ａとした。
本実施例の特徴は以下のとおりである。
すなわち、補間処理に要する演算リソースの許容負荷率と、予め設定された各補間処理毎の通常の補間周期、許容補間周期、優先度及び補間に関するフラグを記憶するための補間周期調整用情報テーブル１１と、補間処理に要する演算リソースの負荷率を常に監視し、設定された前記許容負荷率を維持するように補間周期調整用情報テーブル１１の情報に基づいて、補間周期を再設定するための補間周期調整マネージャ１２とを備える点である。
【００１５】
図６は、本発明の補間周期条件パラメータ１３の内容を示す説明図である。
補間周期条件パラメータ１３として補間グループ毎に、優先順位、通常補間周期、許容補間周期の情報を持っている。また許容負荷率としきい値（負荷率調整幅）を持っている。
補間周期調整用情報テーブル１１は、図６に示す補間周期条件パラメータ１０を基に作成した補間グループ共通情報テーブルと補間グループ別情報テーブルを持っている。
図７は、本発明の実施例２の補間グループ共通情報テーブル１１ａの内容を示す説明図である。
補間グループ共通情報テーブルは、許容負荷率としきい値（負荷率調整幅）を持っている。
図８は、本発明の実施例２の補間グループ別情報テーブル１１ｂの内容を示す説明図である。
補間グループ別情報テーブルは、Ｉｎｄｅｘ  Ｎｏ、補間グループＮｏ、優先順位、周期カウンタ、補間動作ステータス、補間モードステータス、調整状態フラグ、通常補間周期、許容補間周期の情報を記憶している。
図８では、優先順位は優先順位の数値が大きいほど低くなっており、優先順位でソートした状態を示している。補間モードステータスは、１＝通常運転周期運転状態、２＝許容補間周期運転状態を示している。補間動作ステータスは、０＝アイドル状態、１＝補間処理実行中状態を示している。調整状態フラグは０＝要求なし／変更完了、１＝変更要求（通常補間周期運転）、２＝変更要求（許容補間周期運転）を示している。
【００１６】
図９は本発明の実施例２の基本周期マネージャＡ８ａのフローチャートである。
図９において、補間周期調整マネージャ１２と、補間周期、軸制御周期設定処理Ａがコントローラが持つ基本周期毎に呼び出される（ステップＳＴ２１、２２）。ここで、補間周期、軸制御周期設定処理Ａは、実施例１の図４で説明した補間周期、軸制御周期設定処理と同様に、補間処理部３、軸処理部４を周期的に実行させる処理を行うものであるが、補間周期調整用情報テーブル１１の操作が追加となるため、図４と区別するため、補間周期、軸制御周期設定処理Ａとした。
図１０は本発明の補間周期調整マネージャ１２のフローチャートである。
以下、図１０を用いて、本発明の補間周期調整マネージャ１２による補間周期調整の動作を説明する。
補間周期調整マネージャ１２は、図１０に示すフローチャートの通り、まず最新の負荷率を算出する（ステップＳＴ３１）。この負荷率は、現在補間処理中の補間グループの内、一番長い周期の補間周期である補間グループの処理時間を基に算出した値である。例えば、補間処理部３が４ｍｓの周期で実行され、処理時間の計測結果、２ｍｓであれば、５０％の負荷率である。次に補間周期調整マネージャ１２は、算出した負荷率が、図７に示す許容負荷率としきい値から求められた許容範囲の中にあるかどうか判断する（ステップＳＴ３２）。判断の結果、範囲内でなければ、補間周期の調整処理を実行する（ステップＳＴ３３）。
【００１７】
図１１は、本発明の補間周期調整マネージャ１２の補間周期の調整処理のフローチャートである。
以下、図１１のフローチャートを用いて、補間周期の調整処理（図１０におけるステップＳＴ３３の部分）について説明する。
まず調整の方向が通常周期調整か、許容周期調整かを、算出した負荷率と許容負荷率範囲で判断する（ステップＳＴ４１）。
そして、既に調整中でないかを補間グループ別情報テーブル１１ｂの調整状態フラグより判断する。調整中の補間グループが調整完了するまで再度、別の補間グループの調整処理は行わない。調整後完了後に算出された負荷率が、許容負荷率範囲になければ再度別の補間グループの周期調整を行う。
補間周期の調整を行う補間グループの抽出は、補間グループ別情報テーブル１１ｂの先頭から調整状態フラグ、補間モードステータス、補間動作ステータスを読み取り、通常周期調整の場合、調整状態フラグが要求なし状態の補間グループを抽出し（ステップＳＴ４２）、補間動作ステータスが補間処理中状態の補間グループを抽出し（ステップＳＴ４３）、補間モードステータスが通常補間周期運転状態の補間グループを抽出し（ステップＳＴ４４）、通常補間周期から許容補間周期に変更、すなわち周期を伸ばすことで負荷率を軽減する（ステップＳＴ４５）。
一方、許容補間周期調整の場合、調整状態フラグが要求なし状態の補間グループを抽出し（ステップＳＴ４６）、補間動作ステータスが補間処理中状態の補間グループを抽出し（ステップＳＴ４７）、補間モードステータスが許容補間周期運転状態の補間グループを抽出し（ステップＳＴ４８）、許容補間周期から通常補間周期に変更することで負荷率を増加させる（ステップＳＴ４９）。
【００１８】
図１２は本発明の補間周期、軸制御周期設定処理Ａのフローチャートである。
まず、補間グループ別情報テーブルのテーブル数分ループ処理し、補間周期３ａを各補間処理部３から取得する（ステップＳＴ１２）。次に、各補間処理部に接続されている軸処理部へ周期を設定する（ステップＳＴ１３）。次に、補間モードステータスから各補間グループの周期が通常補間周期か許容補間周期か読み取り、かつ周期カウンタ、補間動作ステータスより、各補間グループが今回補間を実行するタイミングかどうか判別し（ステップＳＴ５１）、実行するタイミングであれば、補間処理部を実行させる（ステップＳＴ１５）。更に接続されている制御軸数分軸処理部を実行させる（ステップＳＴ１６）。そして、補間処理実行後、図８の調整状態フラグをクリアし、要求なし、に設定する（ステップＳ５２）。
このように、実施例２では、モーションコントローラは、予め設定された各補間処理毎の通常の補間周期、許容補間周期、優先度、補間処理に要する演算リソースの許容負荷率を記憶する補間周期調整用情報テーブル１１と、補間処理に要する演算リソースの負荷率を常に監視し、設定された許容負荷率を維持するように補間周期調整用情報テーブル１１の情報に基づいて、補間周期を再設定する補間周期調整マネージャ１２を備える構成としているので、補間処理の負荷に応じてオンラインで補間周期が変更可能であり、常に同じ補間周期で動作する必要がない補間処理は、遅い補間周期で動作できる補間周期にダイナミックに変更できる。これにより、多軸曲線補間などの演算量が多い処理や、並列に動作させる補間処理部の数及び、その他の処理のための演算処理リソースを見積って、その最大値から補間周期を決定していた従来のコントローラと比べ、補間周期の設定を容易にするとともに、割り与えたＣＰＵリソースで処理時間をオーバーすることなく、継続運転できるモーションコントローラを実現できるのである。
【実施例３】
【００１９】
次に、本発明の実施例３について説明する。実施例３は、負荷率に余裕がある場合、補間周期あたりの移動量を軸制御部にバッファリングさせ、補間処理のピーク時に補間演算処理をスキップし、バッファを使用して運転させるように構成するものである。
図１３は、本発明の実施例３のモーションコントローラを示す構成図である。
図１３は実施例２の図５の構成図に、補間処理部３にバッファ処理部３ｂが、軸処理部４に移動量バッファ４ａが追加となっている。また、図５の補間周期調整用情報テーブル１１、共通情報テーブル１１ａ，グループ別情報テーブル１１ｂの代わりに補間処理調整用情報テーブル１１ｃ、共通情報テーブル１１ｄ、グループ別情報テーブル１１ｅを備える。同様に、補間周期調整マネージャ１２の代わりに、基本周期を毎に呼び出され補間処理調整用情報テーブルに沿ってバッファの使用法を制御する補間処理調整マネージャ１２ａを備える。また、補間周期条件パラメータ１３の代わりに、補間処理条件パラメータ１３ａを備える。また、図５の基本周期マネージャＡ８ａは、補間処理調整マネージャ１２ａとのやり取りで処理が変更となるため、図５と区別するため、基本周期マネージャＢ８ｂとした。
本実施例の特徴は以下のとおりである。
すなわち、補間処理に要する演算リソースの許容負荷率と、予め設定された各補間処理毎の優先順位、補間周期、移動量バッファサイズ、および補間に関するフラグを記憶するための補間処理調整用情報テーブル１１ｃと、軸固有の処理を行う軸処理部毎に、各補間処理毎の移動量バッファサイズの容量の移動量バッファ４ａと、補間処理に要する演算リソースの負荷率を常に監視し、設定された許容負荷率を維持するように前記補間処理調整用情報テーブルの情報に基づいて、補間処理に要する演算リソースの許容負荷率に余裕がある場合、次周期以降の補間処理を演算リソースの許容負荷率内で前もって行うための補間処理調整マネージャ１２ａと、次周期以降の補間処理を行い演算した移動量を移動量バッファ４ａに出力するバッファ処理部３ｂを備えている点である。
【００２０】
図１４は、本発明の補間処理条件パラメータ１３ａの内容を示す説明図である。
補間処理条件パラメータ１３ａとして補間グループ毎に、優先順位、補間周期、移動量バッファサイズの情報を持っている。また許容負荷率としきい値（負荷率調整幅）、先読み補間処理回数を持っている。
補間周期調整用情報テーブル１１ｃは、図１４に示す補間処理条件パラメータ１３ａを基に作成した補間グループ共通情報テーブルと補間グループ別情報テーブルを持っている。
図１５は、本発明の実施例３の補間グループ共通情報テーブル１１ｄの内容を示す説明図である。
補間グループ共通情報テーブル１１ｄは、許容負荷率としきい値（負荷率調整幅）、先読み補間処理回数を持っている。
図１６は、本発明の実施例３の補間グループ別情報テーブル１１ｅの内容を示す説明図である。
補間グループ別情報テーブルは、Ｉｎｄｅｘ  Ｎｏ、補間グループＮｏ、優先順位、補間周期カウンタ、補間動作ステータス、補間周期、バッファ制御モード、バッファサイズ、バッファ有効長、バッファ最終オフセットの情報を記憶している。
図１６では、優先順位は優先順位の数値が大きいほど低くなっており、優先順位でソートした状態を示している。補間動作ステータスは、０＝アイドル状態、１＝補間処理実行中状態を示している。バッファ制御モードは０＝通常モード、１＝先読みモード、２＝バッファ使用モードを示している。
図１７は本発明の実施例３の基本周期マネージャのフローチャートである。
図１７において、補間処理調整マネージャ１２ａと、補間周期、軸制御周期設定処理Ｂがコントローラが持つ基本周期毎に呼び出される（ステップＳＴ６１、６２）。ここで、補間周期、軸制御周期設定処理Ｂは、実施例１の図４で説明した補間周期、軸制御周期設定処理と同様に、補間処理部３、軸処理部４を周期的に実行させる処理を行うものであるが、補間処理部の判別が補間グループ別情報テーブルを使用するため、補間周期、軸制御周期設定処理Ｂとした。なお、その点以外は図４と同様であるので、詳細の説明は省略する。
【００２１】
図１８は本発明の補間処理調整マネージャ１２ａのフローチャートである。
以下、図１８を用いて、本発明の補間処理調整マネージャ１２ａによる補間処理調整の動作を説明する。
補間処理調整マネージャ１２ａは、図１８に示すフローチャートの通り、まず最新の負荷率を算出する（ステップＳＴ３１）。次に補間処理調整マネージャ１２ａは、算出した負荷率が、図１５に示す許容負荷率としきい値から求められた許容範囲の中にあるかどうか判断する（ステップＳＴ３２）。判断の結果、範囲外であれば補間データのバッファリング調整処理を行う（ステップＳＴ６３）。
図１９は、本発明の補間データのバッファリング調整処理のフローチャートである。
まず調整の方向がバッファ使用モード／通常モード調整か、先読みモード／通常モード調整かを、算出した負荷率と許容負荷率範囲で判断する（ステップＳＴ７１）。
バッファ使用モード／通常モードの調整を行う補間グループの抽出は、補間グループ別情報テーブル１１ｅの先頭からバッファ制御モード、バッファ有効長を読み取り、バッファ制御モードが先読みモードか判断し（ステップＳＴ７２）、先読みモードの場合、バッファ制御モードを通常モードに変更し（ステップＳＴ７４）ループを抜ける。先読みモードでない場合、さらにバッファ制御モードが通常モードかつバッファ有効長が０より大きいか判断し（ステップＳＴ７３）、条件が真の場合、バッファ制御モードをバッファ使用モードに変更しループを抜ける。すなわちバッファ制御モードをバッファ使用モードまたは先読みモードから通常モードへ変更することで負荷率を軽減する。偽の場合、補間グループ別情報テーブルのＩｎｄｅｘループへ進む。
一方、先読み使用モード／通常モードの調整を行う補間グループの抽出は、補間グループ別情報テーブル１１ｅの先頭からバッファ制御モード、バッファサイズ、バッファ有効長を読み取り、まず移動量バッファがフルか判断し（ステップＳＴ７６）、フルの場合、補間グループ別情報テーブルのＩｎｄｅｘループへ進む。フルでない場合、バッファ制御モードがバッファ使用モードか判断し（ステップＳＴ７７）、バッファ使用モードの場合、バッファ制御モードを通常モードに変更しループを抜ける。バッファ使用モードでない場合、バッファ制御モードが先読みモードか判断し（ステップＳＴ７８）、先読みモードの場合、補間グループ別情報テーブルのＩｎｄｅｘループへ進む。先読みモードでない場合、バッファ制御モードを先読みモードへ変更しループを抜ける。以上の通り、バッファ制御モードを先読みモードに変更またはバッファ使用モードから通常モードへ変更することで負荷率を増加させる。
【００２２】
図２０は、本発明の補間処理部３のバッファ処理部３ｂのフローチャートである。
バッファ処理部３ｂは、基本周期マネージャ８からタスク起動されると図２０に示すフローチャートの通り、バッファ制御モードがバッファ使用モードかつバッファ有効長が０より大きいか判断し（ステップＳＴ１０１）、条件が真の場合、補間周期あたりの移動量演算をスキップする。条件が偽の場合、補間周期あたりの移動量演算を実行し（ステップＳＴ１０２）、演算結果の移動量を移動量バッファの最終オフセットに格納し、バッファ最終オフセットを更新する（ステップＳＴ１０３）。格納処理後、バッファ制御モードが先読みモードか判断し（ステップＳＴ１０４）、条件が真の場合、さらにバッファがフルか判断し（ステップＳＴ１０５）、フルでない場合、補間カウンタをインクリメントし（ステップＳＴ１０６）、補間カウンタが先読み補間処理回数を超えていないか判断し、超えていれば再度、補間周期あたりの移動量演算の実行ステップを繰り返す（ステップＳＴ１０２）。超えていれば、補間処理カウンタを０クリアし、タスク起動待ちに遷移する。バッファがフルの場合、バッファ制御モードを通常モードに変更してステップ４８へ進む。バッファ制御モードが先読みモードかの判断（ステップＳＴ１０４）が偽の場合、直ちにタスク起動待ちに遷移する。
なお、軸処理部４は、バッファ有効長、バッファ最終オフセットを読み取り、補間周期あたりの移動量を読み込む。
【００２３】
このように、実施例３では、モーションコントローラは、予め設定された各補間処理毎の補間周期、優先度、補間データバッファサイズと補間処理に要する演算リソースの許容負荷率、しきいち値、先読み補間処理回数を記憶する補間処理調整用情報テーブル１１ｃと、補間処理に要する演算リソースの負荷率を常に監視し、設定された前記許容負荷率を維持するように補間処理調整用情報テーブル１１ｃの情報に基づいて、バッファ制御モードを設定する補間処理調整マネージャ１２ａを備える構成としているので、補間処理の負荷に応じてバッファ制御モードを変更し負荷調整が可能である。これにより、多軸曲線補間などの演算量が多い処理や、並列に動作させる補間処理部の数及び、その他の処理のための演算処理リソースを見積って、その最大値から制御軸数及び補間周期を決定していた従来のコントローラと比べ、補間周期の設定及び制御軸数の設定を容易にするとともに、割り与えたＣＰＵリソースを効率よく使用し、処理時間をオーバーすることなく、継続運転できるモーションコントローラを実現できるのである。
なお、前記実施例の１と２、３は並存関係にあり、同時に機能することが可能である。
【産業上の利用可能性】
【００２４】
本発明によるモーションコントローラの負荷状況に応じた補間処理を行うシステムを構築することで補間処理時間オーバーすることなく継続運転でき、モーションコントローラの処理効率が向上できる。
【図面の簡単な説明】
【００２５】
【図１】本発明の実施例１のモーションコントローラを示す構成図
【図２】補間周期を設定するモーションプログラム例
【図３】本発明の実施例１の基本周期マネージャのフローチャート
【図４】本発明の実施例１の補間周期、軸制御周期設定処理のフローチャート
【図５】本発明の実施例２のモーションコントローラを示す構成図
【図６】本発明の補間周期条件パラメータの内容を示す説明図
【図７】本発明の実施例２の補間グループ共通情報テーブルの内容を示す説明図
【図８】本発明の実施例２の補間グループ別情報テーブルの内容を示す説明図
【図９】本発明の実施例２の基本周期マネージャのフローチャート
【図１０】本発明の補間周期調整マネージャのフローチャート
【図１１】本発明の補間周期調整マネージャの補間周期の調整処理のフローチャート
【図１２】本発明の補間周期、軸制御周期設定処理Ｂのフローチャート
【図１３】本発明の実施例３のモーションコントローラを示す構成図
【図１４】本発明の補間処理条件パラメータの内容を示す説明図
【図１５】本発明の実施例３の補間グループ共通情報テーブルの内容を示す説明図
【図１６】本発明の実施例３の補間グループ別情報テーブルの内容を示す説明図
【図１７】本発明の実施例３の基本周期マネージャのフローチャート
【図１８】本発明の補間処理調整マネージャのフローチャート
【図１９】本発明の補間データのバッファリング調整処理のフローチャート
【図２０】本発明の補間処理部のバッファ処理部のフローチャート
【図２１】従来のモーションコントローラを示す構成図
【符号の説明】
【００２６】
１  モーションプログラム
１ａ  補間周期設定指令
２  指令解析部
２ａ  指令補間周期設定部
３  補間処理部
３ａ  補間周期
３ｂ  バッファ処理部
４  軸処理部
４ａ  移動量バッファ
５  ドライブコントローラ
６  モータ
７  基本周期処理部
８、８ａ、８ｂ  基本周期マネージャ
９  パラメータ補間周期設定部
１０  補間周期パラメータ
１１  補間周期調整用情報テーブル
１１ａ、１１ｄ  共通情報テーブル
１１ｂ、１１ｅ  グループ別情報テーブル
１１ｃ  補間処理調整用情報テーブル
１２  補間周期調整マネージャ
１２ａ  補間処理調整マネージャ
１３  補間周期条件パラメータ
１３ａ  補間処理条件パラメータ
【図１】
2006024185.tif 000003
【図２】
2006024185.tif 000004
【図３】
2006024185.tif 000005
【図４】
2006024185.tif 000006
【図５】
2006024185.tif 000007
【図６】
2006024185.tif 000008
【図７】
2006024185.tif 000009
【図８】
2006024185.tif 000010
【図９】
2006024185.tif 000011
【図１０】
2006024185.tif 000012
【図１１】
2006024185.tif 000013
【図１２】
2006024185.tif 000014
【図１３】
2006024185.tif 000015
【図１４】
2006024185.tif 000016
【図１５】
2006024185.tif 000017
【図１６】
2006024185.tif 000018
【図１７】
2006024185.tif 000019
【図１８】
2006024185.tif 000020
【図１９】
2006024185.tif 000021
【図２０】
2006024185.tif 000022
【図２１】
2006024185.tif 000023