(57)【要約】 【課題】モーションコントローラのＣＰＵを最大限有効に活用し、低速シーケンス処理時間を最小にすることと非定周期モーション制御処理と、低速シーケンス処理の実行比率の調整を可能にする。  【解決手段】  高速シーケンス処理部４と、低速シーケンス処理部５と、低速シーケンス停止カウンタ７と、低速シーケンス処理部５を実行させるシーケンス処理スケジューラ８を有し、モータを制御するモーション制御とシーケンス演算を実行するＰＬＣ（プログラマブルロジックコントローラ）機能を１つのＣＰＵで処理するモーションコントローラ１において、ＣＰＵがモーション制御にかかる処理の負荷を演算し、負荷に応じて低速シーケンス停止カウンタ７を設定する処理負荷解析部９を備える。【選択図】図１
2007140655.tif 000002
【特許請求の範囲】
【請求項１】
制御対象機械の信号の入出力を行い、毎回の基本クロックに同期してシーケンス演算を実行する高速シーケンス処理部と、
前記基本クロックの複数回に1回は該基本クロックに同期してシーケンス演算を実行し、他の回は実行を停止する低速シーケンス処理部と、
前記低速シーケンス処理部が実行を停止する前記基本クロックの停止回数を示す低速シーケンス停止カウンタと、
前記停止回数を参照して前記低速シーケンス処理部を実行させるシーケンス処理スケジューラを有し、
制御対象機械の軸を駆動するモータを制御するモーション制御とシーケンス演算を実行するＰＬＣ（プログラマブルロジックコントローラ）機能を１つのＣＰＵで処理するモーションコントローラにおいて、
前記ＣＰＵがモーション制御に要する処理の負荷を演算し、負荷に応じて前記低速シーケンス停止カウンタを設定する処理負荷解析部を備えることを特徴とするモーションコントローラ。
【請求項２】
前記基本クロックに同期して実行するモーション制御に要する時間と各軸の動作に必要な処理時間が設定された負荷率モニタテーブルを備え、
前記処理負荷解析部は、前記負荷率モニタテーブルを基に負荷を演算することを特徴とする請求項１に記載のモーションコントローラ。
【請求項３】
前記ＣＰＵがモーション制御に要する処理の負荷に応じて低速シーケンス停止カウンタの値を設定する低速シーケンス停止カウンタ設定テーブルを備え、
前記処理負荷解析部は、前記低速シーケンス停止カウンタ設定テーブルを基に前記低速シーケンス停止カウンタを設定することを特徴とする請求項１に記載のモーションコントローラ。
【請求項４】
前記低速シーケンス停止カウンタ設定テーブルはユーザにて設定可能であることを特徴とする請求項３に記載のモーションコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御対象機械の軸を駆動するモータを制御してモーション制御を行うモーションコントローラに関し、特に、シーケンス演算を実行するＰＬＣ（プログラマブルロジックコントローラ）機能を内蔵したモーションコントローラに関する。
【背景技術】
【０００２】
ＰＬＣ機能を内蔵するモーションコントローラは、制御対象機械の軸を駆動するモータを制御するモーション制御と、制御対象機械の信号の入出力を行い、ラダー言語等で記述されたシーケンス演算を実行するＰＬＣ機能のシーケンス処理を同一ＣＰＵで実行している。（例えば、特許文献1参照）
シーケンス処理は、高速の定周期で実行する高速シーケンス処理と、ＣＰＵがより優先度の高い処理を行った合い間に実行する低速シーケンス処理とがある。
図８は、従来のモーションコントローラのＰＬＣ制御に関するブロック図である。
図８において、２１はモーションコントローラ、２２はＣＰＵでモーションコントローラ２１内の各処理部を制御する。２３は制御対象機械の軸を駆動するモータで図８ではＸ軸、Ｙ軸、Ｚ軸の３軸の例を示している。２４は高速シーケンス処理部、２５は低速シーケンス処理部、２６は制御対象機械である。また、２７は低速シーケンス停止カウンタ、２８はシーケンス処理スケジューラである。
高速シーケンス処理部２４及び低速シーケンス処理部２５は、制御対象機械２６の信号の入出力を行いながら逐次的にそれぞれのシーケンス演算を実行する。低速シーケンス処理部２５は、シーケンス処理スケジューラ２８により起動される。シーケンス処理スケジューラ２８は、低速シーケンス停止カウンタ２７を参照し、低速シーケンス処理部２５の実行／停止を管理する。
【０００３】
図９は、従来の高速シーケンス処理と低速シーケンス処理の実行タイムチャートである。モーションコントローラ２１は基本クロックを有し、この基本クロックに同期して定周期でモーション制御等の各処理を実行する。
高速シーケンス処理と低速シーケンス処理もこの基本クロックに同期して実行する。
図９のＡは定周期モーション制御及び各軸処理であり、毎回の基本クロックに同期して実行する。Ｂは高速シーケンス処理であり、毎回の基本クロックに同期してシーケンス演算を実行する。Ｃは低速シーケンス処理であり、Ｄは非定周期に実行される非定周期モーション制御処理であり、この２つの処理は、Ａ、Ｂの処理を行った残りの時間で実行する。
【０００４】
低速シーケンス処理は、基本クロック内での定周期モーション制御及び各軸処理と高速シーケンス処理の残り時間を使用して実行されるため、低速シーケンス処理の全てのシーケンスプログラムがシステム基本クロック内に終了しない場合は、システムで規定されている低速シーケンス停止カウンタ２７で指定された基本クロック回数分の時間の停止後に残りの低速シーケンス処理を実行する。
図９は低速シーケンス停止カウンタ２７が２の場合の例であり、低速シーケンス停止時間は２基本クロック分であり、基本クロックを１msとすれば２msとなる。低速シーケンス処理を１度実行した後次に実行するのは３ms後となり、これが低速シーケンススキャン時間となり、結局３msごとに低速シーケンス処理を実行することになる。通常、モーションコントローラで、モーション制御とＰＬＣ部が同一ＣＰＵ上で動作する場合、低速シーケンス処理が非定周期モーション制御処理を邪魔しないように、想定されるモーション制御処理への最大ＣＰＵ負荷を前提とした低速シーケンス停止カウンタを設定する。
【特許文献１】特許第２９０１７１４号公報  （第３図）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従来のモーションコントローラでは、定周期モーション制御処理及び各軸処理、非定周期モーション制御処理は実際に動作している軸数により処理時間が増減するため、最大ＣＰＵ負荷を前提とした低速シーケンス停止カウンタとしておくと、動作軸数が最大動作軸数より少ないときは、本来低速シーケンス処理に使用できるはずのＣＰＵ資源を余らせてしまい、有効にモーションコントローラのＣＰＵを使用しているとはいえず、低速シーケンス処理時間が必要以上に長くなる。また、低速シーケンス停止カウンタは固定であり、試運転時等に低速シーケンス処理の実行間隔を調整したい場合等に対応できない。
本発明はこのような問題点に鑑みてなされたものであり、モーションコントローラのＣＰＵを最大限有効に活用し、低速シーケンス処理時間を最小にすることと、低速シーケンス処理の実行間隔の調整を可能にすることを目的とする。
【課題を解決するための手段】
【０００６】
上記問題を解決するため、本発明は、次のように構成したのである。
請求項１に記載の発明は、制御対象機械の信号の入出力を行い、毎回の基本クロックに同期してシーケンス演算を実行する高速シーケンス処理部と、前記基本クロックの複数回に1回は該基本クロックに同期してシーケンス演算を実行し、他の回は実行を停止する低速シーケンス処理部と、前記低速シーケンス処理部が実行を停止する前記基本クロックの停止回数を示す低速シーケンス停止カウンタと、前記停止回数を参照して前記低速シーケンス処理部を実行させるシーケンス処理スケジューラを有し、制御対象機械の軸を駆動するモータを制御するモーション制御とシーケンス演算を実行するＰＬＣ（プログラマブルロジックコントローラ）機能を１つのＣＰＵで処理するモーションコントローラにおいて、前記ＣＰＵがモーション制御に要する処理の負荷を演算し、負荷に応じて前記低速シーケンス停止カウンタを設定する処理負荷解析部を備えることを特徴とするものである。
【０００７】
また、請求項２の記載の発明は、請求項１に記載のモーションコントローラにおいて、前記基本クロックに同期して実行するモーション制御に要する時間と各軸の動作に必要な処理時間が設定された負荷率モニタテーブルを備え、前記処理負荷解析部は、前記負荷率モニタテーブルを基に負荷を演算することを特徴とするものである。
また、請求項３に記載の発明は、請求項１に記載のモーションコントローラにおいて、前記ＣＰＵがモーション制御に要する処理の負荷に応じて低速シーケンス停止カウンタの値を設定する低速シーケンス停止カウンタ設定テーブルを備え、前記処理負荷解析部は、前記低速シーケンス停止カウンタ設定テーブルを基に前記低速シーケンス停止カウンタを設定することを特徴とするものである。
また、請求項４に記載の発明は、請求項３に記載のモーションコントローラにおいて、前記低速シーケンス停止カウンタ設定テーブルはユーザにて設定可能であることを特徴とするものである。
【発明の効果】
【０００８】
請求項１〜請求項３に記載の発明によると、ＣＰＵがモーション制御にかかる処理の負荷を演算し、処理の負荷に応じて低速シーケンス停止カウンタを決定するため、モーションコントローラのＣＰＵを最大限有効に活用し、低速シーケンス処理時間を最小にする。
また、請求項４に記載の発明によると、低速シーケンス停止カウンタ設定テーブルはユーザにて設定可能なため、低速シーケンス停止カウンタ設定テーブルの設定を変更することで、低速シーケンス処理の実行間隔の調整が可能になる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明の実施の形態について図に基づいて説明する。
【実施例１】
【００１０】
図１は、本発明のモーションコントローラのＰＬＣ制御に関するブロック図である。
図１において、１はモーションコントローラ、２はＣＰＵでモーションコントローラ１内の各処理部を制御する。３は制御対象機械の軸を駆動するモータで図１ではＸ軸、Ｙ軸、Ｚ軸の３軸の例を示している。４は高速シーケンス処理部、５は低速シーケンス処理部、６は制御対象機械である。また、７は低速シーケンス停止カウンタ、８はシーケンス処理スケジューラである。
９は、モーションコントローラの処理の負荷を解析し、最適な低速シーケンス停止カウンタを設定する処理負荷解析部、１０はモーション制御に要する時間と各軸の動作に必要な処理時間が設定された負荷率モニタテーブル、１１は処理の負荷に応じて低速シーケンス停止カウンタを設定する低速シーケンス停止カウンタ設定テーブルである。
本発明が従来技術と異なる点は、処理負荷解析部９、負荷率モニタテーブル１０、低速シーケンス停止カウンタテーブル１１を備える点である。
【００１１】
処理負荷解析部９は、モーションコントローラ１が持つ定周期での動作と同期して実行される。
処理の負荷状況は、モーションコントローラ１に接続される軸数と各軸の動作状況を基に算出される。
図２は、モーション制御に要する時間と各軸の動作に必要な処理時間が設定された負荷率モニタテーブル１０である。定周期モーション制御に必要な処理時間と、各軸の動作に必要な処理時間がテーブルになっている。ここで、各軸の動作に必要な処理時間は、モーションコントローラ１のシステムソフトウエアとしてあらかじめ計測された結果を基に設定されている。
【００１２】
図３は、処理負荷解析部９の処理フローである。処理負荷解析部９では、接続されている軸数分だけ各軸の動作状況を解析しＣＰＵ全体におけるモーション制御に必要な処理時間を計算する。
図３では、まずステップＳＴ１で処理時間計算用ワークエリアへ負荷率モニタテーブルの定周期モーション制御時間を初期データとして設定する。
ステップＳＴ２では、処理時間計算しようとしている軸が動作中かどうかを軸動作中情報を基にチェックする。軸が動作中であれば、ステップＳＴ３で、負荷率モニタテーブルから指定軸の処理時間を取得し、ステップＳＴ４でその値を処理時間計算用ワークエリアに足しこむ。もし、計算対象の軸が動作中でなければ、その軸に対応する処理時間は加算せずに次軸の処理時間の計算に進む。ここで軸動作中情報は、モーションコントローラ１が内部で作成する軸の動作状況を示すフラグであり、図４に示すように各軸が動作中かどうかの情報がビットに対応している。
全ての軸の処理時間の加算が終了すると、ステップＳＴ５へ進み、処理の負荷率を次式（１）で計算し、ステップＳＴ６でその結果を基に低速シーケンス停止カウンタ設定テーブル１１から、低速シーケンス停止カウンタ７を設定する。
負荷率＝(定周期モーション制御処理時間＋第１軸処理時間＋・・・第ｎ軸処理時間)／モーション制御の基本クロック                    ・・・（１）
【００１３】
次に、図２、図５を使用し実際の負荷率の計算例と、低速シーケンス停止カウンタ７の算出について説明する。
図２の負荷率モニタテーブル１０の例では、３軸の処理時間がそれぞれ、Ｘ軸１００μs、Ｙ軸１２０μs、Ｚ軸１３０μs、定周期モーション制御処理時間は１００μsとなっている。
図５は低速シーケンス停止カウンタ設定テーブル１１の例であり、モーションコントローラ１のパラメータとして準備される。このため、ユーザがパラメータによりシーケンス停止カウンタ設定テーブル１１の設定を変更することにより負荷率に対応する低速シーケンス停止カウンタ７が設定できる。図５の例では、２５％毎に停止カウンタが１から４まで設定されている。ここで、１msの基本クロックでモーション制御処理が動作している場合を例に低速シーケンス停止カウンタ７を算出する。
まず、定周期実行で必要な時間を算出する。
図２によると、定周期モーション制御及び各軸処理の時間は、
１００μs＋１２０μs＋１３０μs＋１００μs＝４５０μsとなる。
次に、負荷率を計算する。
モーション制御周期は前述したとおり1msであるため、負荷率は以下の計算となる。
４５０μs÷１０００μs＝０．４５
従って、負荷率は４５％となる。
次に、図５の低速シーケンス停止カウンタ設定テーブル１１を参照し、４５％の負荷率のときの低速シーケンス停止カウンタ７を算出する。図５では、４５％の場合“２”が低速シーケンス停止カウンタ７となる。
【００１４】
次に、図６、図７を基に、負荷率が変化した場合の低速シーケンス処理とモーション制御処理の動作について説明する。
図６は、低速シーケンス停止カウンタ７として２を設定した場合の高速シーケンス処理と低速シーケンス処理の実行タイムチャートを示す図である。
図６のＡは定周期モーション制御及び各軸処理であり、毎回の基本クロックに同期して実行する。Ｂは高速シーケンス処理であり、毎回の基本クロックに同期してシーケンス演算を実行する。Ｃは低速シーケンス処理、Ｄは非定周期に実行される非定周期モーション制御処理であり、この２つの処理は、Ａ、Ｂの処理を行った残りの時間で実行する。ここで、ＥはＸ軸のみ動作している期間であり、また、ＦはＸＹＺが３軸同時に動作している期間である。
【００１５】
図６の場合、区間Ｅでも区間Ｆでも低速シーケンス停止カウンタ７は２である。これは、モーション制御で使用される最大ＣＰＵ負荷を前提として設定された値である。図６において定周期モーション制御処理及び各軸処理、非定周期モーション制御処理、低速シーケンス処理、高速シーケンス処理の処理割合は、以下のとおりとなる。
図６の例では、基本クロックを１msとし、８ms区間を表現している。また、区間Ｅにおける定周期モーション制御部及び各軸処理の負荷率は２５％、区間Ｆにおける負荷率は４５％、高速シーケンス処理の処理割合を２０％とすると、低速シーケンス処理、非定周期モーション制御処理の処理割合は区間Ｅでは５５％、区間Ｆでは３５％となり、このときそれぞれの処理の８ms期間内で平均したＣＰＵ資源の配分は以下のとおりである。
定周期モーション制御処理及び各軸処理は、
（２５％×３回＋４５％×５回）／８００％＝３７．５％
非定周期モーション制御処理は、
（５５％×２＋３５％×３回）／８００％＝２６．９％
高速シーケンス処理は、
（２０％×８回）／８００％＝２０％
低速シーケンス処理は、
（５５％＋３５％×２回）／８００％＝１５．６％
（小数点以下２桁目は四捨五入）
【００１６】
図７は、図５の低速シーケンス停止カウンタ設定テーブル１１に沿って低速シーケンス停止カウンタ７を変化させた場合の高速シーケンス処理と低速シーケンス処理の実行タイムチャートを示す図である。１軸動作時の定周期モーション制御部及び各軸処理の負荷率は２５％なので選択される低速シーケンス停止カウンタ７は１となる。３軸同時動作時は４５％の負荷率なので、低速シーケンス停止カウンタ７は２となる。図７において定周期モーション制御処理、非定周期制御モーション処理、低速シーケンス処理、高速シーケンス処理の処理割合は、以下のとおりとなる。
定周期制御モーション処理及び各軸処理は、    
（２５％×３＋４５％×５回）／８００％＝３７．５％
非定周期制御モーション処理は、
（５５％＋３５％×４回）／８００％＝２４．４％
高速シーケンス処理は、
（２０％×８回）／８００％＝２０％
低速シーケンス処理は、
（５５％×２＋３５％）／８００％＝１８．１％
（小数点以下２桁目は四捨五入）
このように、図６における低速シーケンスへのＣＰＵ資源の割り当ての１５．６％に対し、図７においては、１８．１％となり、より多くの低速シーケンス処理の実行が可能になる。
本実施例では、負荷率モニタテーブル１０の軸の処理時間をプリセットしてあるものとしたが、実機動作中にモニタ計測するようにしてもよい。また、同様にして、高速シーケンス処理時間も動作時にモニタし、負荷率に加えることも可能である。
【００１７】
このように、本発明では、ＣＰＵがモーション制御にかかる処理の負荷を演算し、負荷に応じて低速シーケンス停止カウンタを決定するため、モーションコントローラのＣＰＵを最大限有効に活用し、低速シーケンス処理時間を最小にする。
また、低速シーケンス停止カウンタ設定テーブルはユーザにて設定可能なため、低速シーケンス停止カウンタ設定テーブルの設定を変更することで、低速シーケンス処理の実行間隔の調整が可能になるのである。
【図面の簡単な説明】
【００１８】
【図１】本発明のモーションコントローラのＰＬＣ制御に関するブロック図
【図２】モーション処理の負荷率モニタテーブル
【図３】処理負荷解析部の処理フロー
【図４】動作中軸情報
【図５】低速シーケンス停止カウンタ設定テーブル
【図６】低速シーケンス停止カウンタとして２を設定した場合の高速シーケンス処理と低速シーケンス処理の実行タイムチャート
【図７】低速シーケンス停止カウンタを変化させた場合の高速シーケンス処理と低速シーケンス処理の実行タイムチャート
【図８】従来のモーションコントローラのＰＬＣ制御に関するブロック図
【図９】従来の高速シーケンス処理と低速シーケンス処理の実行タイムチャート
【符号の説明】
【００１９】
１、２１  モーションコントローラ
２、２２  ＣＰＵ
３、２３  モータ
４、２４  高速シーケンス処理部
５、２５  低速シーケンス処理部
６、２６  制御対象機械
７、２７  低速シーケンス停止カウンタ
８、２８  シーケンス処理スケジューラ
９  処理負荷解析部
１０  負荷率モニタテーブル
１１  低速シーケンス停止カウンタ設定テーブル
【図１】
2007140655.tif 000003
【図２】
2007140655.tif 000004
【図３】
2007140655.tif 000005
【図４】
2007140655.tif 000006
【図５】
2007140655.tif 000007
【図６】
2007140655.tif 000008
【図７】
2007140655.tif 000009
【図８】
2007140655.tif 000010
【図９】
2007140655.tif 000011