(57)【要約】 【課題】  モーションコントローラが指定された処理負荷内で通信処理ができるよう自動的にサーボコントローラへの通信周期を算出し、その指令周期でサーボコントローラと通信を行うモーションコントローラを提供する。【解決手段】  通信周期の優先度を設定するための優先度パラメータ９と、サーボコントローラ１２との通信処理にＣＰＵを使用する限度の比率を設定する通信処理許容負荷率パラメータ３と、優先度パラメータ９と通信処理許容負荷率パラメータ３を参照し、サーボコントローラ１２とモーションコントローラ２０間の通信処理の負荷率が通信処理許容負荷率パラメータ３の値以下になるように通信周期を設定する処理負荷解析部１０を備える。【選択図】図１
2006259823.tif 000002
【特許請求の範囲】
【請求項１】
サーボコントローラと定周期で通信を行うサーボコントローラ周期処理部と、
通信周期を定義する周期パラメータと、
該周期パラメータを解析し、前記サーボコントローラ周期処理部を起動する通信周期管理部を有するサーボ通信処理部を備えたモーションコントローラにおいて、
前記通信周期の優先度を設定する優先度パラメータと、
前記サーボコントローラとの通信処理にＣＰＵを使用する限度の比率を設定する通信処理許容負荷率パラメータと、
前記優先度パラメータと前記通信処理許容負荷率パラメータを参照し、サーボコントローラとモーションコントローラ間の通信処理の負荷率が前記通信処理許容負荷率パラメータの値以下になるように通信周期を設定する処理負荷解析部を備えることを特徴とするモーションコントローラ。
【請求項２】
前記通信処理負荷率は、前記周期パラメータと前記優先度パラメータを基に決定する周期データと、予め測定された通信処理にかかる時間の通信処理時間データを基に、周期あたりの通信処理負荷率（Ａ）を以下の式（１）で求め、各周期の値の和を取り求めることを特徴とする請求項１記載のモーションコントローラ。
通信処理負荷率（Ａ）＝（通信処理時間データ×周期あたりの軸数）／周期データ（１）
【請求項３】
サーボコントローラと定周期で通信を行うサーボコントローラ周期処理部と、
通信周期を定義する周期パラメータと、
該周期パラメータを解析し、前記サーボコントローラ周期処理部を起動する通信周期管理部を有するサーボ通信処理部を備えたモーションコントローの通信周期設定方法において、
前記周期パラメータを周期データに転送するステップと、
予め測定された通信処理にかかる時間の通信処理時間データと周期データを基に通信処理の負荷率を計算し通信処理負荷率を求めるステップと、
該通信処理負荷率が前記通信処理許容負荷率を超えているかどうかを判別するステップと、
もし超えていれば前記周期パラメータ、優先度パラメータを取得するステップと、
取得した前記周期パラメータ、優先度パラメータから通信周期を再計算するステップと、
再計算された周期を周期データに格納するステップと、
前記通信処理負荷率が前記通信処理許容負荷率を超えているかどうかを判別するステップに戻るステップと、
前記通信処理負荷率が前記通信処理許容負荷率を超えていなければ、周期データを通信周期として通信初期化処理を行うステップを備えることを特徴とするモーションコントローラの通信周期設定方法。
【請求項４】
通信周期あたりの前記通信処理負荷率は、前記周期データと前記通信処理時間データを基に、周期あたりの通信処理負荷率（Ａ）を以下の式（１）で求め、各周期の値の和を取り求めることを特徴とする請求項３記載のモーションコントローラの通信周期設定方法。
通信処理負荷率（Ａ）＝（通信処理時間データ×周期あたりの軸数）／周期データ（１）
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モーションコントローラとサーボドライブとの通信周期を自動調整するモーションコントローラおよびその通信周期設定方法に関する。
【背景技術】
【０００２】
図８は、従来のモーションコントローラを示す構成図である。
図８において、２０はモーションコントローラ、２１はモーションコントローラに入力されるモーションプログラム、２２はモーションプログラム２１を解析し、補間処理部への入力情報へ変換するための指令解析部、２３は指令解析部２２の解析結果をもとに、基本周期あたりのモータへの移動量を演算するための補間処理部、２４は軸処理部、２５は軸処理部２４が計算した結果を入力し、モータへ電流として指令を出すためのサーボ通信処理部である。１２はサーボコントローラである。モーションコントローラ２０とサーボコントローラ１２の接続はネットワーク型が主流であり、シリアルの通信ラインで接続されており、それぞれのデータの授受は、あらかじめ決められた周期での通信を行う。１３は、サーボコントローラ１２からの電流指令を受けて動作するモータである。５は、サーボコントローラ１２との通信周期で発生するハードウエアの通信割り込みである。２６は基本周期処理部で、通信割り込み５をベースとして補間処理部２３や軸処理部２４の起動をハンドリングする。
基本周期処理は通常、リアルタイムクロック処理と呼ばれることが多く、モーションコントロールを行う最小の周期で動作する処理である。
【０００３】
図９は、従来のモーションコントローラ２０のサーボ通信処理部２５のソフトウエア構成を示す図である。１は通信の初期化を行うための通信周期初期化部であり、２は各サーボコントローラ１２との通信周期を設定する周期パラメータである。通信周期初期化部１は、周期パラメータ２を基に通信処理のための初期化を行う。５は通信割り込みで起動されるハードウェアからの割り込みであり、通常送受信の開始のタイミングで起動される。６は、通信ドライバである。７は通信周期毎に実行される通信周期管理部である。８は各サーボコントローラ１２との周期毎に必要な処理を行うためのサーボコントローラ周期処理部であり、通信周期管理部７から各サーボコントローラ１２毎に起動される。なお、サーボコントローラ１２の数はシステムによって様々であるが、図９では５軸分を例示している。
【０００４】
図１０は、従来のモーションコントローラが持つ周期パラメータ２の設定例を示す図である。
この例で１軸目というのは、１番目のサーボコントローラ（サーボコントローラ１）で制御される軸を示している。図１０では、１軸目から５軸目まで全て１ｍｓの周期パラメータを持つ。
【０００５】
次に図８から図１０を使用し、モーションコントローラ２０がサーボコントローラ１２との通信を開始し、モーションコントローラ２０内に存在するモーション指令を解析し、モータ１３を動作させるまでの手順について説明する。
まず、作業者がモーションコントローラ２０の電源を投入すると通信周期初期化部１の初期化処理にて、サーボコントローラ１２との通信確立処理を開始する。このとき、周期パラメータ２を基にサーボコントローラ１２との通信を行う。初期化が完了すると、サーボコントローラ１２へ指令を送信できる状態となる。
次に、作業者がモーションコントローラ２０に準備されているモーション命令を使用し、モーション動作を発生させるためのモーションプログラム２１をモーションコントローラへ設定する。通常モーションプログラム２１は、モーションコントローラ２０が持つ不揮発性のメモリに存在する。次に、作業者がモーションプログラム２１を選択し、モーション動作開始の起動をかけると、指令解析部２２は、設定されたモーションプログラムを１命令毎に読み込み、移動量や補間の種類などの情報を補間処理部２３への入力情報として変換する。補間処理部２３はモーションコントローラ２０の基本周期に同期して実行されるため、通常、補間処理部２３の基本周期は、モーションコントローラ２０の基本周期と同等である。補間処理部２３は、補間周期単位の移動量を演算する。補間処理部２３は指令解析部２２より設定された情報を基に、モーションコントローラ２０の規定された補間周期での移動量を演算する。補間処理部２３が演算した補間周期あたりの移動量は、補間周期毎に軸処理部２４へ渡される。軸処理部２４は、軸固有に存在する処理をまとめた処理部であり、モーションコントローラに接続されている軸数分実行される必要がある。軸処理部２４は、軸毎に可能な位置の作成や、単位変換等の処理を行う。軸処理部２４が演算した結果は、サーボコントローラ１２との通信を行うためのサーボ通信処理部２５へ渡される。サーボ通信処理部２５は、あらかじめ周期パラメータ２で設定された周期のもとで、サーボコントローラ１２との定周期の通信を行っている。軸処理部２４が作成したデータは、この定周期の通信データとしてサーボコントローラ１２へ転送される、さらには、サーボコントローラ１２からモータ１３へと電流指令で渡される。以上の流れにより、モータが動作するのである。
【０００６】
このように、従来のモーションコントローラのサーボ通信処理部は周期パラメータに従った周期でサーボコントローラと通信処理を行っており、補間処理部が計算し補間周期毎の移動データを軸処理部に出力することによりモータを動作させているのである。（例えば、特許文献１参照）。
【特許文献１】特開平０８−１３７５３８号公報（第３−５頁、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
通信ラインで接続されるモーションコントローラとサーボコントローラ間の通信はモーションコントロ―ラ内に持つ通信周期を決定する周期パラメータに従った周期で通信を行うようになっている。この場合、モーションコントローラに接続できるサーボコントローラの軸数がモーションコントローラの通信処理性能に依存するため、軸数が多くなることでコントローラの通信処理時間に多くの処理を費やしてしまい、モーションコントローラとしての定周期処理がオーバーフローしてしまうという問題点があり、この場合、作業者が通信の周期パラメータを手動で設定して処理負荷を調整する必要があった。
【０００８】
本発明はこのような問題点に鑑みてなされたものであり、モーションコントローラが指定された処理負荷内で通信処理ができるよう自動的にサーボコントローラとの通信周期を算出し、その通信周期でサーボコントローラと通信を行うモーションコントローラを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記問題を解決するため、本発明は、次のように構成したのである。
【００１０】
請求項１に記載の発明は、サーボコントローラと定周期で通信を行うサーボコントローラ周期処理部と、通信周期を定義する周期パラメータと、該周期パラメータを解析し、前記サーボコントローラ周期処理部を起動する通信周期管理部を有するサーボ通信処理部を備えたモーションコントローラにおいて、前記通信周期の優先度を設定する優先度パラメータと、前記サーボコントローラとの通信処理にＣＰＵを使用する限度の比率を設定する通信処理許容負荷率パラメータと、前記優先度パラメータと前記通信処理許容負荷率パラメータを参照し、サーボコントローラとモーションコントローラ間の通信処理の負荷率が前記通信処理許容負荷率パラメータの値以下になるように通信周期を設定する処理負荷解析部を備えることを特徴としている。
請求項２に記載の発明は、前記通信処理負荷率は、前記周期パラメータと前記優先度パラメータを基に決定する周期データと、予め測定された通信処理にかかる時間の通信処理時間データを基に、周期あたりの通信処理負荷率（Ａ）を以下の式（１）で求め、各周期の値の和を取り求めることを特徴としている。
通信処理負荷率＝（通信処理時間データ×周期あたりの軸数）／周期データ    （１）
請求項３に記載の発明は、サーボコントローラと定周期で通信を行うサーボコントローラ周期処理部と、通信周期を定義する周期パラメータと、該周期パラメータを解析し、前記サーボコントローラ周期処理部を起動する通信周期管理部を有するサーボ通信処理部を備えたモーションコントローの通信周期設定方法において、前記周期パラメータを周期データに転送するステップと、予め測定された通信処理にかかる時間の通信処理時間データと周期データを基に通信処理の負荷率を計算し通信処理負荷率を求めるステップと、該通信処理負荷率が前記通信処理許容負荷率を超えているかどうかを判別するステップと、もし超えていれば前記周期パラメータ、優先度パラメータを取得するステップと、取得した前記周期パラメータ、優先度パラメータから通信周期を再計算するステップと、再計算された周期を周期データに格納するステップと、前記通信処理負荷率が前記通信処理許容負荷率を超えているかどうかを判別するステップに戻るステップと、前記通信処理負荷率が前記通信処理許容負荷率を超えていなければ、周期データを通信周期として通信初期化処理を行うステップを備えることを特徴としている。
【発明の効果】
【００１１】
本発明のモーションコントローラは、通信の優先度を設定する優先度パラメータと、通信処理にＣＰＵを使用する限度の比率を設定する通信処理許容負荷率パラメータをもち、作業者がそれらのパラメータを予め設定しておくことで、作業者が周期パラメータで設定した通信周期で通信処理ができない場合は、モーションコントローラが自動的に優先度パラメータを参照し通信周期を設定するため、処理時間不足時に作業者が通信周期の再調整をする必要がない。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施の形態について図を参照して説明する。
【実施例１】
【００１３】
図１は、本発明のモーションコントローラ２０のサーボ通信処理部２５内のソフトウエア構成を示す図である。
図１において、１は通信の初期化を行うための通信周期初期化部であり、２は各サーボコントローラ１２との通信周期を設定した周期パラメータである。３は、サーボコントローラ１２との通信処理にどのくらいのＣＰＵを費やすことができるかを決定するためのＣＰＵを使用する限界の比率を設定する通信処理許容負荷率パラメータである。４はモーションコントローラ２０が計算した各サーボコントローラ１２との通信周期が設定される周期データである。５は通信に同期して起動されるハードウエアの通信割り込みであり、通常送受信の開始のタイミングで起動される。６は、サーボコントローラとの通信を行うための通信ドライバ部である。７は通信周期毎に実行される通信周期管理部である。８は各サーボコントローラとの周期処理に必要な処理を行うためのサーボコントローラ周期処理部であり、通信周期管理部７から各サーボコントローラ１２毎に起動される。９は、通信の優先度を設定するための優先度パラメータである。１０は周期パラメータで指定された周期で通信を行ったときの処理の負荷率を計算する処理負荷解析部である。１１は１軸あたりの通信ドライバの時間とサーボコントローラ周期処理部の処理時間の加算値が保持される通信処理時間データである。なお、通信処理時間データ１１は、予め１度モーションコントローラを立ち上げて、実際に処理にかかる時間を実測してその値を格納しておくことが望ましい。
本発明が従来技術と異なる点は、通信処理許容負荷率パラメータ３と、周期データ４と、優先度パラメータ９と処理負荷解析部１０および、通信処理時間データ１１を備えた点である。
【００１４】
図１の処理負荷解析部１０は、接続されているサーボコントローラ１２の数と、通信処理時間データ１１を参照し、通信処理許容負荷率パラメータ３以内で、指定された周期でサーボコントローラ１２との通信が可能かどうか計算する。もし、周期パラメータ２で設定された周期で動作した場合に、モーションコントローラ２０の通信処理負荷率が通信処理許容負荷率パラメータ３を超えた場合は、優先度パラメータ９と周期パラメータ２から、通信周期を再計算する。再計算された通信周期は、周期データ４へ格納される。通信周期初期化部１は、周期データ４に設定された通信周期を参照し、サーボコントローラ１２との通信周期の初期化を行う。通信ドライバ６は、通信周期管理部７を送受信のタイミングで呼び出す。通信周期管理部７は、周期パラメータ２にしたがって各サーボコントローラ１２用のサーボコントローラ周期処理部８を呼び出す。
【００１５】
図２は、本発明のモーションコントローラ２０が持つ通信関連のパラメータの設定例を示す図である。
図２の例では、モーションコントローラ２０に５軸のサーボコントローラ１２ａ、１２ｂが接続されている。モーションコントローラ２０は、各サーボコントローラ１２ａ、１２ｂとモーションコントローラ２０の通信周期を設定するための周期パラメータ２を持つ。この例で１軸目というのは、サーボコントローラ１で制御される軸を示している。図２の例では、１軸目から５軸目までの通信周期を１ｍｓと設定しており、さらに、通信の優先度として、１軸目と２軸目は優先度１、３軸目から５軸目は優先度２が設定されている。この優先度の設定は、モーションコントローラ２０の作業者が、各軸の役割を考えて設定するものである。また、通信処理許容負荷率パラメータは２０％に設定されている。
全ての軸の処理が１ｍｓの処理時間で十分な処理が行える場合は、全ての軸の通信周期は１ｍｓに設定される。また、全ての軸を１ｍｓで行うと通信処理にかかる負荷率が通信処理許容負荷率パラメータ３で設定された負荷率を超える場合は、プライオリティ２に設定されている軸がいま実行している周期の次に早く設定可能な通信周期となる。次に早く設定可能な通信周期でも通信処理にかかる負荷率が通信処理許容負荷率パラメータで設定された負荷率を超える場合は、さらに遅い通信周期になる。図２では、５軸すべてを１ｍｓで動作させることができないため、３軸目と４軸目、５軸目は、通信周期を次に早く設定可能な通信周期すなわち２ｍｓに設定している。
【００１６】
次に、本実施形態例の処理の流れを、図３を使用して説明する。
図３は、本発明のモーションコントローラ２０のサーボ通信処理部２５の処理のフローチャートである。この処理はモーションコントローラ２０の電源投入時に実行される。
モーションコントローラ２０の電源が投入されると、サーボコントローラ１２との通信に関連する初期化処理を行う。まず、ステップＳＴ１で、作業者が設定した周期パラメータ２を内部的に使用するための周期データ４へ転送する。次に、ステップＳＴ２において、処理負荷解析部１０は、接続されているサーボコントローラ１２の数と通信処理時間データ１１を参照し周期データを基に通信処理の負荷率を計算し通信処理負荷率を求める。ステップＳＴ３では、ステップＳＴ２で計算された通信処理負荷率が、作業者が設定した通信処理許容負荷率パラメータ３で設定された負荷率に収まるかどうか、通信処理負荷率が通信処理許容負荷率を超えているかどうかを判別する。もし、周期データ４で設定された周期で動作したときの通信処理負荷率が、作業者が設定した通信処理許容負荷率パラメータ３を超えていないときは、ステップＳＴ７に進み、サーボコントローラ１２との通信初期化処理を行う。通信処理負荷率が通信処理許容負荷率パラメータ３を超えた場合は、ステップＳＴ４で、優先度パラメータ８と周期パラメータ２を取得し、ステップＳＴ５で、サーボコントローラ１２との通信周期を再計算する。再計算された通信周期は、周期データ４へ格納され、ステップＳＴ２へ処理が移行する。ステップＳＴ２からは、前述同様のフローを、通信負荷率が指定された通信処理許容負荷率パラメータ内に収まるまで繰り返すことになる。
【００１７】
次に図３のステップＳＴ５の優先度パラメータ８と周期パラメータ２を基に通信周期を再計算する方法を図４、図５を使用して説明する。
図４は周期データの内部構成を示す図である。周期と優先度は、パラメータのデータと同様である。変更回数は、図３のステップＳＴ５において周期が何回変更されたかと示すカウンタである。変更回数の初期値は０である。次に通信周期の再計算について図５を使用して説明する。
図５は、優先度を基に通信周期を再計算する処理のフローチャートである。まず、ステップＳＴ１１において変更回数のカウンタが一番小さい軸をサーチする。次にステップＳＴ１２で、ステップＳＴ１１で絞られた軸の中から最低優先度の軸をサーチする。これでステップＳＴ１２において、変更回数がもっとも少なく、かつ、優先順位が低い軸がサーチされたことになる。これにより、次に周期を変更すべき軸がすべてサーチできたため、ステップＳＴ１３で、これらの軸の周期を１レベル遅い周期に設定しなおす。最後にステップＳＴ１４で設定変更を行ったこと示す変更回数をインクリメントして終了する。
【００１８】
次に、図６及び図７を使用し通信処理負荷率の計算例を説明する。
図６は通信処理負荷率を計算するフローチャートである。また、図７は図６の処理内で使用する通信負荷率計算用テーブルを示す図である。図６ではステップＳＴ２１で、接続されている軸数分ループしながら周期パラメータ２で設定された周期と軸数の関連を図７のような通信負荷率計算用テーブルとして作成する。次に、ステップＳＴ２２で、通信負荷率計算用テーブルから各周期における通信処理負荷率（Ａ）とトータルの通信処理負荷率を計算する。通信処理負荷率（Ａ）は以下の式（１）で通信処理負荷率が算出される。
通信処理負荷率（Ａ）＝（通信処理時間データ×周期あたりの軸数）／周期データ    （１）
なお、ここで通信処理時間データとは、各軸用のサーボコントローラ周期処理部８の処理時間と通信ドライバ５の処理時間を加えたものであり、厳密には各軸により異なるが、軸の特性が大きく異ならない限り同一とみなして良い。もし、システムの構成に大きく特性の異なる軸がある場合は、各軸の処理時間を加算して負荷率を計算すれば良い。
【００１９】
図７では、通信処理時間データが５０μｓで１ｍｓ（１０００μｓ）周期の軸数が２軸であるため、この分の負荷率は、
通信処理負荷率（Ａ）＝（５０×２）／１０００＝１０％となる。
また、２ｍｓ（２０００μｓ）周期の軸数は３軸であるため、この分の負荷率は、
通信処理負荷率（Ａ）＝（５０×３）／２０００＝７．５％となる。
次に、これらの通信処理負荷率（Ａ）を合計して、トータルの通信処理負荷率を計算する。
図７の場合、１７．５％となる。  図３のステップＳＴ３では、この結果が通信周期処理許容負荷率パラメータと比較されるのである。
【００２０】
このように、本発明のモーションコントローラは、通信の優先度を設定する優先度パラメータと、通信処理にＣＰＵを使用する限度の比率を設定する通信処理許容負荷率パラメータをもち、作業者がそれらのパラメータを予め設定しておくことで、作業者が周期パラメータで設定した通信周期で通信処理ができない場合は、モーションコントローラが自動的に優先度パラメータを参照し通信周期を設定するため、処理時間不足時に作業者が通信周期の再調整をする必要がないのである。
【図面の簡単な説明】
【００２１】
【図１】本発明のモーションコントローラのサーボ通信処理部内のソフトウエア構成を示す図
【図２】本発明のモーションコントローラが持つ通信関連のパラメータの設定例を示す図
【図３】本発明のモーションコントローラのサーボ通信処理部の処理のフローチャート
【図４】周期データの内部構成を示す図
【図５】優先度を基に周期データを再計算する処理のフローチャート
【図６】通信処理負荷率を計算するフローチャート
【図７】通信負荷率計算用テーブルを示す図
【図８】従来のモーションコントローラを示す構成図
【図９】従来のモーションコントローラのサーボ通信処理部のソフトウエア構成を示す図
【図１０】従来のモーションコントローラが持つ周期パラメータの設定例を示す図
【符号の説明】
【００２２】
１  通信周期初期化部
２  周期パラメータ
３  通信処理許容負荷率パラメータ
４  周期データ
５  通信割り込み
６  通信ドライバ
７  通信周期管理部
８  サーボコントローラ周期処理部
９  優先度パラメータ
１０  処理負荷解析部
１１  通信処理時間データ
１２、１２ａ、１２ｂ  サーボコントローラ
１３  モータ
２０  モーションコントローラ
２１  モーションプログラム
２２  指令解析部
２３  補間処理部
２４  軸処理部
２５  サーボ通信処理部
２６  基本処理周期部
【図１】
2006259823.tif 000003
【図２】
2006259823.tif 000004
【図３】
2006259823.tif 000005
【図４】
2006259823.tif 000006
【図５】
2006259823.tif 000007
【図６】
2006259823.tif 000008
【図７】
2006259823.tif 000009
【図８】
2006259823.tif 000010
【図９】
2006259823.tif 000011
【図１０】
2006259823.tif 000012