JP2006259823A - モーションコントローラおよびその通信周期設定方法 - Google Patents
モーションコントローラおよびその通信周期設定方法 Download PDFInfo
- Publication number
- JP2006259823A JP2006259823A JP2005072658A JP2005072658A JP2006259823A JP 2006259823 A JP2006259823 A JP 2006259823A JP 2005072658 A JP2005072658 A JP 2005072658A JP 2005072658 A JP2005072658 A JP 2005072658A JP 2006259823 A JP2006259823 A JP 2006259823A
- Authority
- JP
- Japan
- Prior art keywords
- communication
- cycle
- communication processing
- load factor
- parameter
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
【課題】 モーションコントローラが指定された処理負荷内で通信処理ができるよう自動的にサーボコントローラへの通信周期を算出し、その指令周期でサーボコントローラと通信を行うモーションコントローラを提供する。
【解決手段】 通信周期の優先度を設定するための優先度パラメータ9と、サーボコントローラ12との通信処理にCPUを使用する限度の比率を設定する通信処理許容負荷率パラメータ3と、優先度パラメータ9と通信処理許容負荷率パラメータ3を参照し、サーボコントローラ12とモーションコントローラ20間の通信処理の負荷率が通信処理許容負荷率パラメータ3の値以下になるように通信周期を設定する処理負荷解析部10を備える。
【選択図】図1
Description
本発明は、モーションコントローラとサーボドライブとの通信周期を自動調整するモーションコントローラおよびその通信周期設定方法に関する。
図8は、従来のモーションコントローラを示す構成図である。
図8において、20はモーションコントローラ、21はモーションコントローラに入力されるモーションプログラム、22はモーションプログラム21を解析し、補間処理部への入力情報へ変換するための指令解析部、23は指令解析部22の解析結果をもとに、基本周期あたりのモータへの移動量を演算するための補間処理部、24は軸処理部、25は軸処理部24が計算した結果を入力し、モータへ電流として指令を出すためのサーボ通信処理部である。12はサーボコントローラである。モーションコントローラ20とサーボコントローラ12の接続はネットワーク型が主流であり、シリアルの通信ラインで接続されており、それぞれのデータの授受は、あらかじめ決められた周期での通信を行う。13は、サーボコントローラ12からの電流指令を受けて動作するモータである。5は、サーボコントローラ12との通信周期で発生するハードウエアの通信割り込みである。26は基本周期処理部で、通信割り込み5をベースとして補間処理部23や軸処理部24の起動をハンドリングする。
基本周期処理は通常、リアルタイムクロック処理と呼ばれることが多く、モーションコントロールを行う最小の周期で動作する処理である。
図8において、20はモーションコントローラ、21はモーションコントローラに入力されるモーションプログラム、22はモーションプログラム21を解析し、補間処理部への入力情報へ変換するための指令解析部、23は指令解析部22の解析結果をもとに、基本周期あたりのモータへの移動量を演算するための補間処理部、24は軸処理部、25は軸処理部24が計算した結果を入力し、モータへ電流として指令を出すためのサーボ通信処理部である。12はサーボコントローラである。モーションコントローラ20とサーボコントローラ12の接続はネットワーク型が主流であり、シリアルの通信ラインで接続されており、それぞれのデータの授受は、あらかじめ決められた周期での通信を行う。13は、サーボコントローラ12からの電流指令を受けて動作するモータである。5は、サーボコントローラ12との通信周期で発生するハードウエアの通信割り込みである。26は基本周期処理部で、通信割り込み5をベースとして補間処理部23や軸処理部24の起動をハンドリングする。
基本周期処理は通常、リアルタイムクロック処理と呼ばれることが多く、モーションコントロールを行う最小の周期で動作する処理である。
図9は、従来のモーションコントローラ20のサーボ通信処理部25のソフトウエア構成を示す図である。1は通信の初期化を行うための通信周期初期化部であり、2は各サーボコントローラ12との通信周期を設定する周期パラメータである。通信周期初期化部1は、周期パラメータ2を基に通信処理のための初期化を行う。5は通信割り込みで起動されるハードウェアからの割り込みであり、通常送受信の開始のタイミングで起動される。6は、通信ドライバである。7は通信周期毎に実行される通信周期管理部である。8は各サーボコントローラ12との周期毎に必要な処理を行うためのサーボコントローラ周期処理部であり、通信周期管理部7から各サーボコントローラ12毎に起動される。なお、サーボコントローラ12の数はシステムによって様々であるが、図9では5軸分を例示している。
図10は、従来のモーションコントローラが持つ周期パラメータ2の設定例を示す図である。
この例で1軸目というのは、1番目のサーボコントローラ(サーボコントローラ1)で制御される軸を示している。図10では、1軸目から5軸目まで全て1msの周期パラメータを持つ。
この例で1軸目というのは、1番目のサーボコントローラ(サーボコントローラ1)で制御される軸を示している。図10では、1軸目から5軸目まで全て1msの周期パラメータを持つ。
次に図8から図10を使用し、モーションコントローラ20がサーボコントローラ12との通信を開始し、モーションコントローラ20内に存在するモーション指令を解析し、モータ13を動作させるまでの手順について説明する。
まず、作業者がモーションコントローラ20の電源を投入すると通信周期初期化部1の初期化処理にて、サーボコントローラ12との通信確立処理を開始する。このとき、周期パラメータ2を基にサーボコントローラ12との通信を行う。初期化が完了すると、サーボコントローラ12へ指令を送信できる状態となる。
次に、作業者がモーションコントローラ20に準備されているモーション命令を使用し、モーション動作を発生させるためのモーションプログラム21をモーションコントローラへ設定する。通常モーションプログラム21は、モーションコントローラ20が持つ不揮発性のメモリに存在する。次に、作業者がモーションプログラム21を選択し、モーション動作開始の起動をかけると、指令解析部22は、設定されたモーションプログラムを1命令毎に読み込み、移動量や補間の種類などの情報を補間処理部23への入力情報として変換する。補間処理部23はモーションコントローラ20の基本周期に同期して実行されるため、通常、補間処理部23の基本周期は、モーションコントローラ20の基本周期と同等である。補間処理部23は、補間周期単位の移動量を演算する。補間処理部23は指令解析部22より設定された情報を基に、モーションコントローラ20の規定された補間周期での移動量を演算する。補間処理部23が演算した補間周期あたりの移動量は、補間周期毎に軸処理部24へ渡される。軸処理部24は、軸固有に存在する処理をまとめた処理部であり、モーションコントローラに接続されている軸数分実行される必要がある。軸処理部24は、軸毎に可能な位置の作成や、単位変換等の処理を行う。軸処理部24が演算した結果は、サーボコントローラ12との通信を行うためのサーボ通信処理部25へ渡される。サーボ通信処理部25は、あらかじめ周期パラメータ2で設定された周期のもとで、サーボコントローラ12との定周期の通信を行っている。軸処理部24が作成したデータは、この定周期の通信データとしてサーボコントローラ12へ転送される、さらには、サーボコントローラ12からモータ13へと電流指令で渡される。以上の流れにより、モータが動作するのである。
まず、作業者がモーションコントローラ20の電源を投入すると通信周期初期化部1の初期化処理にて、サーボコントローラ12との通信確立処理を開始する。このとき、周期パラメータ2を基にサーボコントローラ12との通信を行う。初期化が完了すると、サーボコントローラ12へ指令を送信できる状態となる。
次に、作業者がモーションコントローラ20に準備されているモーション命令を使用し、モーション動作を発生させるためのモーションプログラム21をモーションコントローラへ設定する。通常モーションプログラム21は、モーションコントローラ20が持つ不揮発性のメモリに存在する。次に、作業者がモーションプログラム21を選択し、モーション動作開始の起動をかけると、指令解析部22は、設定されたモーションプログラムを1命令毎に読み込み、移動量や補間の種類などの情報を補間処理部23への入力情報として変換する。補間処理部23はモーションコントローラ20の基本周期に同期して実行されるため、通常、補間処理部23の基本周期は、モーションコントローラ20の基本周期と同等である。補間処理部23は、補間周期単位の移動量を演算する。補間処理部23は指令解析部22より設定された情報を基に、モーションコントローラ20の規定された補間周期での移動量を演算する。補間処理部23が演算した補間周期あたりの移動量は、補間周期毎に軸処理部24へ渡される。軸処理部24は、軸固有に存在する処理をまとめた処理部であり、モーションコントローラに接続されている軸数分実行される必要がある。軸処理部24は、軸毎に可能な位置の作成や、単位変換等の処理を行う。軸処理部24が演算した結果は、サーボコントローラ12との通信を行うためのサーボ通信処理部25へ渡される。サーボ通信処理部25は、あらかじめ周期パラメータ2で設定された周期のもとで、サーボコントローラ12との定周期の通信を行っている。軸処理部24が作成したデータは、この定周期の通信データとしてサーボコントローラ12へ転送される、さらには、サーボコントローラ12からモータ13へと電流指令で渡される。以上の流れにより、モータが動作するのである。
このように、従来のモーションコントローラのサーボ通信処理部は周期パラメータに従った周期でサーボコントローラと通信処理を行っており、補間処理部が計算し補間周期毎の移動データを軸処理部に出力することによりモータを動作させているのである。(例えば、特許文献1参照)。
特開平08−137538号公報(第3−5頁、図1)
通信ラインで接続されるモーションコントローラとサーボコントローラ間の通信はモーションコントロ―ラ内に持つ通信周期を決定する周期パラメータに従った周期で通信を行うようになっている。この場合、モーションコントローラに接続できるサーボコントローラの軸数がモーションコントローラの通信処理性能に依存するため、軸数が多くなることでコントローラの通信処理時間に多くの処理を費やしてしまい、モーションコントローラとしての定周期処理がオーバーフローしてしまうという問題点があり、この場合、作業者が通信の周期パラメータを手動で設定して処理負荷を調整する必要があった。
本発明はこのような問題点に鑑みてなされたものであり、モーションコントローラが指定された処理負荷内で通信処理ができるよう自動的にサーボコントローラとの通信周期を算出し、その通信周期でサーボコントローラと通信を行うモーションコントローラを提供することを目的とする。
上記問題を解決するため、本発明は、次のように構成したのである。
請求項1に記載の発明は、サーボコントローラと定周期で通信を行うサーボコントローラ周期処理部と、通信周期を定義する周期パラメータと、該周期パラメータを解析し、前記サーボコントローラ周期処理部を起動する通信周期管理部を有するサーボ通信処理部を備えたモーションコントローラにおいて、前記通信周期の優先度を設定する優先度パラメータと、前記サーボコントローラとの通信処理にCPUを使用する限度の比率を設定する通信処理許容負荷率パラメータと、前記優先度パラメータと前記通信処理許容負荷率パラメータを参照し、サーボコントローラとモーションコントローラ間の通信処理の負荷率が前記通信処理許容負荷率パラメータの値以下になるように通信周期を設定する処理負荷解析部を備えることを特徴としている。
請求項2に記載の発明は、前記通信処理負荷率は、前記周期パラメータと前記優先度パラメータを基に決定する周期データと、予め測定された通信処理にかかる時間の通信処理時間データを基に、周期あたりの通信処理負荷率(A)を以下の式(1)で求め、各周期の値の和を取り求めることを特徴としている。
通信処理負荷率=(通信処理時間データ×周期あたりの軸数)/周期データ (1)
請求項3に記載の発明は、サーボコントローラと定周期で通信を行うサーボコントローラ周期処理部と、通信周期を定義する周期パラメータと、該周期パラメータを解析し、前記サーボコントローラ周期処理部を起動する通信周期管理部を有するサーボ通信処理部を備えたモーションコントローの通信周期設定方法において、前記周期パラメータを周期データに転送するステップと、予め測定された通信処理にかかる時間の通信処理時間データと周期データを基に通信処理の負荷率を計算し通信処理負荷率を求めるステップと、該通信処理負荷率が前記通信処理許容負荷率を超えているかどうかを判別するステップと、もし超えていれば前記周期パラメータ、優先度パラメータを取得するステップと、取得した前記周期パラメータ、優先度パラメータから通信周期を再計算するステップと、再計算された周期を周期データに格納するステップと、前記通信処理負荷率が前記通信処理許容負荷率を超えているかどうかを判別するステップに戻るステップと、前記通信処理負荷率が前記通信処理許容負荷率を超えていなければ、周期データを通信周期として通信初期化処理を行うステップを備えることを特徴としている。
請求項2に記載の発明は、前記通信処理負荷率は、前記周期パラメータと前記優先度パラメータを基に決定する周期データと、予め測定された通信処理にかかる時間の通信処理時間データを基に、周期あたりの通信処理負荷率(A)を以下の式(1)で求め、各周期の値の和を取り求めることを特徴としている。
通信処理負荷率=(通信処理時間データ×周期あたりの軸数)/周期データ (1)
請求項3に記載の発明は、サーボコントローラと定周期で通信を行うサーボコントローラ周期処理部と、通信周期を定義する周期パラメータと、該周期パラメータを解析し、前記サーボコントローラ周期処理部を起動する通信周期管理部を有するサーボ通信処理部を備えたモーションコントローの通信周期設定方法において、前記周期パラメータを周期データに転送するステップと、予め測定された通信処理にかかる時間の通信処理時間データと周期データを基に通信処理の負荷率を計算し通信処理負荷率を求めるステップと、該通信処理負荷率が前記通信処理許容負荷率を超えているかどうかを判別するステップと、もし超えていれば前記周期パラメータ、優先度パラメータを取得するステップと、取得した前記周期パラメータ、優先度パラメータから通信周期を再計算するステップと、再計算された周期を周期データに格納するステップと、前記通信処理負荷率が前記通信処理許容負荷率を超えているかどうかを判別するステップに戻るステップと、前記通信処理負荷率が前記通信処理許容負荷率を超えていなければ、周期データを通信周期として通信初期化処理を行うステップを備えることを特徴としている。
本発明のモーションコントローラは、通信の優先度を設定する優先度パラメータと、通信処理にCPUを使用する限度の比率を設定する通信処理許容負荷率パラメータをもち、作業者がそれらのパラメータを予め設定しておくことで、作業者が周期パラメータで設定した通信周期で通信処理ができない場合は、モーションコントローラが自動的に優先度パラメータを参照し通信周期を設定するため、処理時間不足時に作業者が通信周期の再調整をする必要がない。
以下、本発明の実施の形態について図を参照して説明する。
図1は、本発明のモーションコントローラ20のサーボ通信処理部25内のソフトウエア構成を示す図である。
図1において、1は通信の初期化を行うための通信周期初期化部であり、2は各サーボコントローラ12との通信周期を設定した周期パラメータである。3は、サーボコントローラ12との通信処理にどのくらいのCPUを費やすことができるかを決定するためのCPUを使用する限界の比率を設定する通信処理許容負荷率パラメータである。4はモーションコントローラ20が計算した各サーボコントローラ12との通信周期が設定される周期データである。5は通信に同期して起動されるハードウエアの通信割り込みであり、通常送受信の開始のタイミングで起動される。6は、サーボコントローラとの通信を行うための通信ドライバ部である。7は通信周期毎に実行される通信周期管理部である。8は各サーボコントローラとの周期処理に必要な処理を行うためのサーボコントローラ周期処理部であり、通信周期管理部7から各サーボコントローラ12毎に起動される。9は、通信の優先度を設定するための優先度パラメータである。10は周期パラメータで指定された周期で通信を行ったときの処理の負荷率を計算する処理負荷解析部である。11は1軸あたりの通信ドライバの時間とサーボコントローラ周期処理部の処理時間の加算値が保持される通信処理時間データである。なお、通信処理時間データ11は、予め1度モーションコントローラを立ち上げて、実際に処理にかかる時間を実測してその値を格納しておくことが望ましい。
本発明が従来技術と異なる点は、通信処理許容負荷率パラメータ3と、周期データ4と、優先度パラメータ9と処理負荷解析部10および、通信処理時間データ11を備えた点である。
図1において、1は通信の初期化を行うための通信周期初期化部であり、2は各サーボコントローラ12との通信周期を設定した周期パラメータである。3は、サーボコントローラ12との通信処理にどのくらいのCPUを費やすことができるかを決定するためのCPUを使用する限界の比率を設定する通信処理許容負荷率パラメータである。4はモーションコントローラ20が計算した各サーボコントローラ12との通信周期が設定される周期データである。5は通信に同期して起動されるハードウエアの通信割り込みであり、通常送受信の開始のタイミングで起動される。6は、サーボコントローラとの通信を行うための通信ドライバ部である。7は通信周期毎に実行される通信周期管理部である。8は各サーボコントローラとの周期処理に必要な処理を行うためのサーボコントローラ周期処理部であり、通信周期管理部7から各サーボコントローラ12毎に起動される。9は、通信の優先度を設定するための優先度パラメータである。10は周期パラメータで指定された周期で通信を行ったときの処理の負荷率を計算する処理負荷解析部である。11は1軸あたりの通信ドライバの時間とサーボコントローラ周期処理部の処理時間の加算値が保持される通信処理時間データである。なお、通信処理時間データ11は、予め1度モーションコントローラを立ち上げて、実際に処理にかかる時間を実測してその値を格納しておくことが望ましい。
本発明が従来技術と異なる点は、通信処理許容負荷率パラメータ3と、周期データ4と、優先度パラメータ9と処理負荷解析部10および、通信処理時間データ11を備えた点である。
図1の処理負荷解析部10は、接続されているサーボコントローラ12の数と、通信処理時間データ11を参照し、通信処理許容負荷率パラメータ3以内で、指定された周期でサーボコントローラ12との通信が可能かどうか計算する。もし、周期パラメータ2で設定された周期で動作した場合に、モーションコントローラ20の通信処理負荷率が通信処理許容負荷率パラメータ3を超えた場合は、優先度パラメータ9と周期パラメータ2から、通信周期を再計算する。再計算された通信周期は、周期データ4へ格納される。通信周期初期化部1は、周期データ4に設定された通信周期を参照し、サーボコントローラ12との通信周期の初期化を行う。通信ドライバ6は、通信周期管理部7を送受信のタイミングで呼び出す。通信周期管理部7は、周期パラメータ2にしたがって各サーボコントローラ12用のサーボコントローラ周期処理部8を呼び出す。
図2は、本発明のモーションコントローラ20が持つ通信関連のパラメータの設定例を示す図である。
図2の例では、モーションコントローラ20に5軸のサーボコントローラ12a、12bが接続されている。モーションコントローラ20は、各サーボコントローラ12a、12bとモーションコントローラ20の通信周期を設定するための周期パラメータ2を持つ。この例で1軸目というのは、サーボコントローラ1で制御される軸を示している。図2の例では、1軸目から5軸目までの通信周期を1msと設定しており、さらに、通信の優先度として、1軸目と2軸目は優先度1、3軸目から5軸目は優先度2が設定されている。この優先度の設定は、モーションコントローラ20の作業者が、各軸の役割を考えて設定するものである。また、通信処理許容負荷率パラメータは20%に設定されている。
全ての軸の処理が1msの処理時間で十分な処理が行える場合は、全ての軸の通信周期は1msに設定される。また、全ての軸を1msで行うと通信処理にかかる負荷率が通信処理許容負荷率パラメータ3で設定された負荷率を超える場合は、プライオリティ2に設定されている軸がいま実行している周期の次に早く設定可能な通信周期となる。次に早く設定可能な通信周期でも通信処理にかかる負荷率が通信処理許容負荷率パラメータで設定された負荷率を超える場合は、さらに遅い通信周期になる。図2では、5軸すべてを1msで動作させることができないため、3軸目と4軸目、5軸目は、通信周期を次に早く設定可能な通信周期すなわち2msに設定している。
図2の例では、モーションコントローラ20に5軸のサーボコントローラ12a、12bが接続されている。モーションコントローラ20は、各サーボコントローラ12a、12bとモーションコントローラ20の通信周期を設定するための周期パラメータ2を持つ。この例で1軸目というのは、サーボコントローラ1で制御される軸を示している。図2の例では、1軸目から5軸目までの通信周期を1msと設定しており、さらに、通信の優先度として、1軸目と2軸目は優先度1、3軸目から5軸目は優先度2が設定されている。この優先度の設定は、モーションコントローラ20の作業者が、各軸の役割を考えて設定するものである。また、通信処理許容負荷率パラメータは20%に設定されている。
全ての軸の処理が1msの処理時間で十分な処理が行える場合は、全ての軸の通信周期は1msに設定される。また、全ての軸を1msで行うと通信処理にかかる負荷率が通信処理許容負荷率パラメータ3で設定された負荷率を超える場合は、プライオリティ2に設定されている軸がいま実行している周期の次に早く設定可能な通信周期となる。次に早く設定可能な通信周期でも通信処理にかかる負荷率が通信処理許容負荷率パラメータで設定された負荷率を超える場合は、さらに遅い通信周期になる。図2では、5軸すべてを1msで動作させることができないため、3軸目と4軸目、5軸目は、通信周期を次に早く設定可能な通信周期すなわち2msに設定している。
次に、本実施形態例の処理の流れを、図3を使用して説明する。
図3は、本発明のモーションコントローラ20のサーボ通信処理部25の処理のフローチャートである。この処理はモーションコントローラ20の電源投入時に実行される。
モーションコントローラ20の電源が投入されると、サーボコントローラ12との通信に関連する初期化処理を行う。まず、ステップST1で、作業者が設定した周期パラメータ2を内部的に使用するための周期データ4へ転送する。次に、ステップST2において、処理負荷解析部10は、接続されているサーボコントローラ12の数と通信処理時間データ11を参照し周期データを基に通信処理の負荷率を計算し通信処理負荷率を求める。ステップST3では、ステップST2で計算された通信処理負荷率が、作業者が設定した通信処理許容負荷率パラメータ3で設定された負荷率に収まるかどうか、通信処理負荷率が通信処理許容負荷率を超えているかどうかを判別する。もし、周期データ4で設定された周期で動作したときの通信処理負荷率が、作業者が設定した通信処理許容負荷率パラメータ3を超えていないときは、ステップST7に進み、サーボコントローラ12との通信初期化処理を行う。通信処理負荷率が通信処理許容負荷率パラメータ3を超えた場合は、ステップST4で、優先度パラメータ8と周期パラメータ2を取得し、ステップST5で、サーボコントローラ12との通信周期を再計算する。再計算された通信周期は、周期データ4へ格納され、ステップST2へ処理が移行する。ステップST2からは、前述同様のフローを、通信負荷率が指定された通信処理許容負荷率パラメータ内に収まるまで繰り返すことになる。
図3は、本発明のモーションコントローラ20のサーボ通信処理部25の処理のフローチャートである。この処理はモーションコントローラ20の電源投入時に実行される。
モーションコントローラ20の電源が投入されると、サーボコントローラ12との通信に関連する初期化処理を行う。まず、ステップST1で、作業者が設定した周期パラメータ2を内部的に使用するための周期データ4へ転送する。次に、ステップST2において、処理負荷解析部10は、接続されているサーボコントローラ12の数と通信処理時間データ11を参照し周期データを基に通信処理の負荷率を計算し通信処理負荷率を求める。ステップST3では、ステップST2で計算された通信処理負荷率が、作業者が設定した通信処理許容負荷率パラメータ3で設定された負荷率に収まるかどうか、通信処理負荷率が通信処理許容負荷率を超えているかどうかを判別する。もし、周期データ4で設定された周期で動作したときの通信処理負荷率が、作業者が設定した通信処理許容負荷率パラメータ3を超えていないときは、ステップST7に進み、サーボコントローラ12との通信初期化処理を行う。通信処理負荷率が通信処理許容負荷率パラメータ3を超えた場合は、ステップST4で、優先度パラメータ8と周期パラメータ2を取得し、ステップST5で、サーボコントローラ12との通信周期を再計算する。再計算された通信周期は、周期データ4へ格納され、ステップST2へ処理が移行する。ステップST2からは、前述同様のフローを、通信負荷率が指定された通信処理許容負荷率パラメータ内に収まるまで繰り返すことになる。
次に図3のステップST5の優先度パラメータ8と周期パラメータ2を基に通信周期を再計算する方法を図4、図5を使用して説明する。
図4は周期データの内部構成を示す図である。周期と優先度は、パラメータのデータと同様である。変更回数は、図3のステップST5において周期が何回変更されたかと示すカウンタである。変更回数の初期値は0である。次に通信周期の再計算について図5を使用して説明する。
図5は、優先度を基に通信周期を再計算する処理のフローチャートである。まず、ステップST11において変更回数のカウンタが一番小さい軸をサーチする。次にステップST12で、ステップST11で絞られた軸の中から最低優先度の軸をサーチする。これでステップST12において、変更回数がもっとも少なく、かつ、優先順位が低い軸がサーチされたことになる。これにより、次に周期を変更すべき軸がすべてサーチできたため、ステップST13で、これらの軸の周期を1レベル遅い周期に設定しなおす。最後にステップST14で設定変更を行ったこと示す変更回数をインクリメントして終了する。
図4は周期データの内部構成を示す図である。周期と優先度は、パラメータのデータと同様である。変更回数は、図3のステップST5において周期が何回変更されたかと示すカウンタである。変更回数の初期値は0である。次に通信周期の再計算について図5を使用して説明する。
図5は、優先度を基に通信周期を再計算する処理のフローチャートである。まず、ステップST11において変更回数のカウンタが一番小さい軸をサーチする。次にステップST12で、ステップST11で絞られた軸の中から最低優先度の軸をサーチする。これでステップST12において、変更回数がもっとも少なく、かつ、優先順位が低い軸がサーチされたことになる。これにより、次に周期を変更すべき軸がすべてサーチできたため、ステップST13で、これらの軸の周期を1レベル遅い周期に設定しなおす。最後にステップST14で設定変更を行ったこと示す変更回数をインクリメントして終了する。
次に、図6及び図7を使用し通信処理負荷率の計算例を説明する。
図6は通信処理負荷率を計算するフローチャートである。また、図7は図6の処理内で使用する通信負荷率計算用テーブルを示す図である。図6ではステップST21で、接続されている軸数分ループしながら周期パラメータ2で設定された周期と軸数の関連を図7のような通信負荷率計算用テーブルとして作成する。次に、ステップST22で、通信負荷率計算用テーブルから各周期における通信処理負荷率(A)とトータルの通信処理負荷率を計算する。通信処理負荷率(A)は以下の式(1)で通信処理負荷率が算出される。
通信処理負荷率(A)=(通信処理時間データ×周期あたりの軸数)/周期データ (1)
なお、ここで通信処理時間データとは、各軸用のサーボコントローラ周期処理部8の処理時間と通信ドライバ5の処理時間を加えたものであり、厳密には各軸により異なるが、軸の特性が大きく異ならない限り同一とみなして良い。もし、システムの構成に大きく特性の異なる軸がある場合は、各軸の処理時間を加算して負荷率を計算すれば良い。
図6は通信処理負荷率を計算するフローチャートである。また、図7は図6の処理内で使用する通信負荷率計算用テーブルを示す図である。図6ではステップST21で、接続されている軸数分ループしながら周期パラメータ2で設定された周期と軸数の関連を図7のような通信負荷率計算用テーブルとして作成する。次に、ステップST22で、通信負荷率計算用テーブルから各周期における通信処理負荷率(A)とトータルの通信処理負荷率を計算する。通信処理負荷率(A)は以下の式(1)で通信処理負荷率が算出される。
通信処理負荷率(A)=(通信処理時間データ×周期あたりの軸数)/周期データ (1)
なお、ここで通信処理時間データとは、各軸用のサーボコントローラ周期処理部8の処理時間と通信ドライバ5の処理時間を加えたものであり、厳密には各軸により異なるが、軸の特性が大きく異ならない限り同一とみなして良い。もし、システムの構成に大きく特性の異なる軸がある場合は、各軸の処理時間を加算して負荷率を計算すれば良い。
図7では、通信処理時間データが50μsで1ms(1000μs)周期の軸数が2軸であるため、この分の負荷率は、
通信処理負荷率(A)=(50×2)/1000=10%となる。
また、2ms(2000μs)周期の軸数は3軸であるため、この分の負荷率は、
通信処理負荷率(A)=(50×3)/2000=7.5%となる。
次に、これらの通信処理負荷率(A)を合計して、トータルの通信処理負荷率を計算する。
図7の場合、17.5%となる。 図3のステップST3では、この結果が通信周期処理許容負荷率パラメータと比較されるのである。
通信処理負荷率(A)=(50×2)/1000=10%となる。
また、2ms(2000μs)周期の軸数は3軸であるため、この分の負荷率は、
通信処理負荷率(A)=(50×3)/2000=7.5%となる。
次に、これらの通信処理負荷率(A)を合計して、トータルの通信処理負荷率を計算する。
図7の場合、17.5%となる。 図3のステップST3では、この結果が通信周期処理許容負荷率パラメータと比較されるのである。
このように、本発明のモーションコントローラは、通信の優先度を設定する優先度パラメータと、通信処理にCPUを使用する限度の比率を設定する通信処理許容負荷率パラメータをもち、作業者がそれらのパラメータを予め設定しておくことで、作業者が周期パラメータで設定した通信周期で通信処理ができない場合は、モーションコントローラが自動的に優先度パラメータを参照し通信周期を設定するため、処理時間不足時に作業者が通信周期の再調整をする必要がないのである。
1 通信周期初期化部
2 周期パラメータ
3 通信処理許容負荷率パラメータ
4 周期データ
5 通信割り込み
6 通信ドライバ
7 通信周期管理部
8 サーボコントローラ周期処理部
9 優先度パラメータ
10 処理負荷解析部
11 通信処理時間データ
12、12a、12b サーボコントローラ
13 モータ
20 モーションコントローラ
21 モーションプログラム
22 指令解析部
23 補間処理部
24 軸処理部
25 サーボ通信処理部
26 基本処理周期部
2 周期パラメータ
3 通信処理許容負荷率パラメータ
4 周期データ
5 通信割り込み
6 通信ドライバ
7 通信周期管理部
8 サーボコントローラ周期処理部
9 優先度パラメータ
10 処理負荷解析部
11 通信処理時間データ
12、12a、12b サーボコントローラ
13 モータ
20 モーションコントローラ
21 モーションプログラム
22 指令解析部
23 補間処理部
24 軸処理部
25 サーボ通信処理部
26 基本処理周期部
Claims (4)
- サーボコントローラと定周期で通信を行うサーボコントローラ周期処理部と、
通信周期を定義する周期パラメータと、
該周期パラメータを解析し、前記サーボコントローラ周期処理部を起動する通信周期管理部を有するサーボ通信処理部を備えたモーションコントローラにおいて、
前記通信周期の優先度を設定する優先度パラメータと、
前記サーボコントローラとの通信処理にCPUを使用する限度の比率を設定する通信処理許容負荷率パラメータと、
前記優先度パラメータと前記通信処理許容負荷率パラメータを参照し、サーボコントローラとモーションコントローラ間の通信処理の負荷率が前記通信処理許容負荷率パラメータの値以下になるように通信周期を設定する処理負荷解析部を備えることを特徴とするモーションコントローラ。 - 前記通信処理負荷率は、前記周期パラメータと前記優先度パラメータを基に決定する周期データと、予め測定された通信処理にかかる時間の通信処理時間データを基に、周期あたりの通信処理負荷率(A)を以下の式(1)で求め、各周期の値の和を取り求めることを特徴とする請求項1記載のモーションコントローラ。
通信処理負荷率(A)=(通信処理時間データ×周期あたりの軸数)/周期データ(1) - サーボコントローラと定周期で通信を行うサーボコントローラ周期処理部と、
通信周期を定義する周期パラメータと、
該周期パラメータを解析し、前記サーボコントローラ周期処理部を起動する通信周期管理部を有するサーボ通信処理部を備えたモーションコントローの通信周期設定方法において、
前記周期パラメータを周期データに転送するステップと、
予め測定された通信処理にかかる時間の通信処理時間データと周期データを基に通信処理の負荷率を計算し通信処理負荷率を求めるステップと、
該通信処理負荷率が前記通信処理許容負荷率を超えているかどうかを判別するステップと、
もし超えていれば前記周期パラメータ、優先度パラメータを取得するステップと、
取得した前記周期パラメータ、優先度パラメータから通信周期を再計算するステップと、
再計算された周期を周期データに格納するステップと、
前記通信処理負荷率が前記通信処理許容負荷率を超えているかどうかを判別するステップに戻るステップと、
前記通信処理負荷率が前記通信処理許容負荷率を超えていなければ、周期データを通信周期として通信初期化処理を行うステップを備えることを特徴とするモーションコントローラの通信周期設定方法。 - 通信周期あたりの前記通信処理負荷率は、前記周期データと前記通信処理時間データを基に、周期あたりの通信処理負荷率(A)を以下の式(1)で求め、各周期の値の和を取り求めることを特徴とする請求項3記載のモーションコントローラの通信周期設定方法。
通信処理負荷率(A)=(通信処理時間データ×周期あたりの軸数)/周期データ(1)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005072658A JP2006259823A (ja) | 2005-03-15 | 2005-03-15 | モーションコントローラおよびその通信周期設定方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005072658A JP2006259823A (ja) | 2005-03-15 | 2005-03-15 | モーションコントローラおよびその通信周期設定方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006259823A true JP2006259823A (ja) | 2006-09-28 |
Family
ID=37099054
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005072658A Pending JP2006259823A (ja) | 2005-03-15 | 2005-03-15 | モーションコントローラおよびその通信周期設定方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006259823A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011134197A (ja) * | 2009-12-25 | 2011-07-07 | Hitachi Industrial Equipment Systems Co Ltd | プログラマブルコントローラ、及びプログラマブルコントローラにおける複数処理の時分割方法 |
CN109753020A (zh) * | 2017-11-07 | 2019-05-14 | 发那科株式会社 | 电动机控制装置、控制系统以及电动机控制方法 |
US10935959B2 (en) | 2017-11-07 | 2021-03-02 | Fanuc Corporation | Motor control device, control system, and motor control method |
-
2005
- 2005-03-15 JP JP2005072658A patent/JP2006259823A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011134197A (ja) * | 2009-12-25 | 2011-07-07 | Hitachi Industrial Equipment Systems Co Ltd | プログラマブルコントローラ、及びプログラマブルコントローラにおける複数処理の時分割方法 |
CN109753020A (zh) * | 2017-11-07 | 2019-05-14 | 发那科株式会社 | 电动机控制装置、控制系统以及电动机控制方法 |
US10635079B2 (en) | 2017-11-07 | 2020-04-28 | Fanuc Corporation | Motor control device, control system, and motor control method |
CN109753020B (zh) * | 2017-11-07 | 2020-10-16 | 发那科株式会社 | 电动机控制装置、控制系统以及电动机控制方法 |
US10935959B2 (en) | 2017-11-07 | 2021-03-02 | Fanuc Corporation | Motor control device, control system, and motor control method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4973792B1 (ja) | 演算ユニット、出力制御方法、およびプログラム | |
JP6544219B2 (ja) | 制御装置 | |
JP6626240B2 (ja) | コントローラ | |
JP2007140655A (ja) | モーションコントローラ | |
US8901870B2 (en) | Synchronous control apparatus | |
JP2006259823A (ja) | モーションコントローラおよびその通信周期設定方法 | |
CN112561072A (zh) | 机器学习装置、学习模型的生成方法、绝缘电阻推定装置及控制装置 | |
JP2005056196A (ja) | プログラマブルコントローラ | |
JP2015122077A (ja) | 制御装置、コントローラ・システム、出力制御方法、およびプログラム | |
US9360856B2 (en) | Machine tool control device | |
JP6500767B2 (ja) | 調整装置、制御パラメータ調整方法、情報処理プログラム、および記録媒体 | |
JP2007185014A (ja) | モータ制御装置の制御パラメータ算出方法、算出プログラムおよびモータ制御装置 | |
JP6517706B2 (ja) | 効率的に数値制御データの受け渡しをする数値制御システム | |
JP7056395B2 (ja) | 制御装置およびその制御方法 | |
JP2007122373A (ja) | 分散型モーションコントロールシステムおよびそのシステム設定方法 | |
JP2006024185A (ja) | モーションコントローラ及びその補間周期調整方法及び補間データバッファリング調整方法 | |
JP4485896B2 (ja) | Pid制御装置 | |
JP7230703B2 (ja) | 制御装置 | |
JP2010198380A (ja) | 処理装置、処理方法、及び、プログラム | |
JP2009019853A (ja) | デマンド制御装置、デマンド制御方法およびデマンド制御プログラム | |
CN106970652B (zh) | 运动控制器 | |
KR101333639B1 (ko) | 머신코드 생성 방식을 이용한 원격감시제어장치의 설비 제어방법 및 그 원격감시제어장치 | |
JP7396063B2 (ja) | データ処理方法 | |
JP7086297B2 (ja) | 制御プログラム改良装置、制御プログラム改良方法及び制御プログラム改良システム | |
JP2007128341A (ja) | サーボドライブ装置 |