(57)【特許請求の範囲】
【請求項１】
ＰＬＣ位置決定システムにおける制御周期割当方法であって、
各軸を、第１の制御周期を有する第１の軸グループと、第２の制御周期を有する第２の軸グループとに区分し、各軸毎に異なる制御周期を割り当てるステップと、
前記第２の軸グループの位置制御演算中に第１の軸グループの位置制御演算が要請されると、割込みによるタスク切り替えによって前記第１の軸グループの位置制御演算を行うステップと、
前記第１の軸グループの位置制御演算を完了した後、割込みによるタスク切り替えによって前記第２の軸グループの位置制御演算を引き続き行うステップと、を含み、
前記各軸毎に異なる制御周期を割り当てるステップにおいて、
前記第１の制御周期及び前記第２の制御周期は、各軸に対する位置制御演算実行区間及びマージン区間を含み、
前記第２の軸グループの位置制御演算を引き続き行うステップにおいて、
前記第１の制御周期の位置制御演算実行区間の間に前記第１の軸グループの位置制御演算が完了されると、前記第２の軸グループの位置制御演算のためのタスク切り替えを行い、
前記第１の軸グループの前記マージン区間の間に前記第２の軸グループの位置制御演算を引き続き行うこと、及び
前記タスク切り替えのために前記第１の軸グループと第２の軸グループに異なるスタック領域を割り当て、
前記第１の軸グループの位置制御演算中にＩＳＰ領域が使用され、前記第２の軸グループの位置制御演算中にＵＳＰ領域が使用されることを特徴とする、ＰＬＣ位置決定システムにおける軸毎の制御周期独立割当方法。
【請求項２】
前記各軸毎に異なる制御周期を割り当てるステップにおいて、
前記第１の軸グループに単一軸を指定することを特徴とする、請求項１に記載のＰＬＣ位置決定システムにおける軸毎の制御周期独立割当方法。
【請求項３】
前記各軸毎に異なる制御周期を割り当てるステップにおいて、
前記第１の軸グループに複数の軸を指定することを特徴とする、請求項１に記載のＰＬＣ位置決定システムにおける軸毎の制御周期独立割当方法。
【請求項４】
前記各軸毎に異なる制御周期を割り当てるステップにおいて、
前記ＩＳＰ領域を用いる軸の演算が前記第１の制御周期内に完了されるように前記第１の制御周期を指定することを特徴とする、請求項１に記載のＰＬＣ位置決定システムにおける軸毎の制御周期独立割当方法。
【請求項５】
前記第１の軸グループの位置制御演算を行うステップは、
前記第２の軸グループの位置制御演算を行う中に、前記第１の制御周期の位置制御演算が要求された時点にスタック切り替え割込みが発生すると、全てのレジスタを前記ＵＳＰ領域にプッシュし、割込みサービスルーチンの完了後に前記ＩＳＰ領域に復帰するように復帰アドレスを第１の制御周期演算領域に変更するステップを含み、
前記第２の軸グループの位置制御演算を引き続き行うステップは、
前記第１の軸グループの位置制御演算を完了すると、前記ＩＳＰ領域に一般レジスタと状態レジスタ、プログラムカウンタをプッシュし、前記ＵＳＰ領域にスタック切り替えを行った後、さらに前記第２の軸グループの位置制御演算を引き続き行うステップを含むことを特徴とする、請求項１に記載のＰＬＣ位置決定システムにおける軸毎の制御周期独立割当方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＰＬＣ位置決定システムにおける軸毎の制御周期独立割当方法に関し、より詳細には、多数の軸を制御するＰＬＣ位置決定システムにおいて、各軸を、早い応答を要求する第１の軸グループと、比較的遅い応答を要求する第２の軸グループとに区分し、第１の軸グループの位置制御演算が要求される時点にタスクを切り替えて、第１の軸グループの位置制御演算を第２の軸グループの位置制御演算より優先的に行うように軸毎に制御周期を独立して割り当てる、ＰＬＣ位置決定システムにおける軸毎の制御周期独立割当方法に関する。
【背景技術】
【０００２】
ＰＬＣ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｃｏｎｔｒｏｌｌｅｒ）の位置決定機能は、ＰＬＣのトランジスタ出力接点に高速のパルス列を出力してモータを駆動することで、対象体を正確な位置に移動させる機能である。
【０００３】
自動制御システムが益々複雑化するに伴って、多数の軸を一つのコントローラで制御するアプリケーションが多くなっている。既存のパルスやアナログ信号を用いた直接的なサーボドライブ制御は、入出力接点とサーボドライブが１：１に連結されるため、制御できるサーボドライブの個数に限界があった。
【０００４】
しかし、近年、このような方式から脱皮して、ネットワーク技術を用いて目標位置と速度をリアルタイムで多数のサーボドライブに伝送する方式が活用されている。
【０００５】
例えば、ＥｔｈｅｒＣＡＴプロトコルを用いると、１００個のサーボ軸に対して、１００ｕｓ毎に命令値及び制御データを提供することができる。しかし、１００個のサーボ軸に対して、それぞれの移動量を１００ｕｓ毎に演算することは困難である。もちろん、高い性能のＭＰＵを用いると演算時間を短縮することはできるが、根本的な限界は依然として存在する。
【０００６】
ＰＬＣの位置決定システムは、単位時間を制御周期として決め、制御周期毎に出力するべきパルスを演算する。制御周期は、製造社や製品によって異なるが、通常、数百μｓ〜数十ｍｓである。制御周期の間に出力されるパルスの周波数は一定であり、制御周期毎に、次の制御周期の間に出力されるパルスの速度が決定される。したがって、制御周期が短いほど、よりスムーズなモータ制御が可能となる。
【０００７】
図１及び図２は従来のＰＬＣ位置決定システムの位置制御演算方式を説明するための図面である。
【０００８】
図１及び図２を参照すると、各区間の制御周期開始地点から軸毎に制御周期内に移動する移動量を演算する（Ｓ１）。一般に、第１の軸から開始し、最後の軸（製品毎に異なる）まで演算を完了する。演算を完了すると、該当制御周期における残り時間の間に、待機するかまたは制御に必要な残りの作業を進行する（Ｓ２）。演算を完了した後、次の制御周期の間に、以前の制御周期で演算した移動量をサーボドライブに出力し、該当制御周期では各軸のその次の制御周期の間の移動量を演算する（Ｓ３）。すなわち、第２の制御周期の間に、第１の制御周期で演算された移動量を出力する。この際、演算された移動量は出力バッファに格納されてから出力される。
【０００９】
従来の方式は、各軸毎に制御周期が同一であるため、全ての軸の最大演算時間を考慮して制御周期を割り当てなければならない。例えば、１個の軸の演算時間が最大１ｍｓであり、同種の軸が１０個であるシステムを制御する場合には、少なくとも１０ｍｓの制御周期を割り当てなければならない。
【００１０】
図３は、従来のＰＬＣ位置決定システムにおいて、全ての軸を演算する時間が制御周期を超えた場合を説明するための図面である。
【００１１】
図３を参照すると、１軸と２軸を含む最初の制御周期内に演算を完了した軸の移動量は、次の制御周期の間にサーボドライブに正常に伝達されるが、最初制御周期（第１区間）内で演算が完了されなかった軸は、次の制御周期の間に出力する移動量がなくなる。
【００１２】
したがって、第２区間では、ｎ軸が実際に出力されず、この現象が積み重なると、益々大きい位置誤差が誘発される。このため、全ての軸に対して同一の制御周期で制御を行う場合、割り当てた制御周期内に全ての軸の位置制御演算を完了しなければならない。
【発明の概要】
【発明が解決しようとする課題】
【００１３】
しかし、制御周期は、制御システムの応答性と柔軟性に影響を与える。制御周期が長いと、その分だけエンドポイント（Ｅｎｄ‐Ｐｏｉｎｔ）における反応速度が遅くなり、これは製造業の生産量に直接的な影響を与える。
【００１４】
また、加・減速区間で速度変化量が大きくなるため、機構的な衝撃による故障を誘発する可能性が高くなる。したがって、多数の軸を演算する際には、他の具現方法が要求される。
【００１５】
そこで、本発明が解決しようとする課題は、多数の軸を制御するＰＬＣ位置決定システムにおいて全ての軸を柔軟に制御できるＰＬＣ位置決定システムにおける軸毎の制御周期独立割当方法を提供することにある。
【００１６】
本発明が達成しようとする課題は上述の課題に制限されず、言及されていない他の課題は、以下の記載から提案される実施形態が属する技術分野において通常の知識を有する者に明確に理解されるであろう。
【課題を解決するための手段】
【００１７】
本発明の一側面によれば、ＰＬＣ位置決定システムにおける制御周期割当方法であって、各軸を、第１の制御周期を有する第１の軸グループと、第２の制御周期を有する第２の軸グループとに区分し、各軸毎に異なる制御周期を割り当てるステップと、前記第２の軸グループの位置制御演算中に第１の軸グループの位置制御演算が要請されると、割込みによるタスク切り替えによって前記第１の軸グループの位置制御演算を行うステップと、前記第１の軸グループの位置制御演算を完了した後、割込みによるタスク切り替えによって前記第２の軸グループの位置制御演算を引き続き行うステップと、を含む、ＰＬＣ位置決定システムにおける軸毎の制御周期独立割当方法が提供される。
【００１８】
前記各軸毎に異なる制御周期を割り当てるステップにおいて、前記第１の軸グループに単一軸を指定することができる。
【００１９】
前記各軸毎に異なる制御周期を割り当てるステップにおいて、前記第１の軸グループに複数の軸を指定することができる。
【００２０】
前記各軸毎に異なる制御周期を割り当てるステップにおいて、前記第１の制御周期及び前記第２の制御周期は、各軸に対する位置制御演算実行区間及びマージン区間を含むことができる。
【００２１】
前記第２の軸グループの位置制御演算を引き続き行うステップにおいて、前記第１の制御周期の位置制御演算実行区間の間に前記第１の軸グループの位置制御演算が完了されると、前記第２の軸グループの位置制御演算のためのタスク切り替えを行うことができる。
【００２２】
前記第２の軸グループの位置制御演算を引き続き行うステップにおいて、前記第１の軸グループの前記マージン区間の間に前記第２の軸グループの位置制御演算を引き続き行うことができる。
【００２３】
前記各軸毎に異なる制御周期を割り当てるステップは、前記第１の軸グループの軸にＩＳＰ領域のスタックを割り当て、前記第２の軸グループの軸にＵＳＰ領域のスタックを割り当てるステップをさらに含むことができる。
【００２４】
前記各軸毎に異なる制御周期を割り当てるステップにおいて、前記ＩＳＰ領域を用いる軸の演算が、前記第１の制御周期より短い時間内に完了されるように指定することができる。
【００２５】
前記第１の軸グループの位置制御演算を行うステップは、前記第２の軸グループの位置制御演算を行う中に、前記第１の制御周期の位置制御演算が要求される時点にスタック切り替え割込みが発生すると、全てのレジスタを前記ＵＳＰ領域にプッシュし、割込みサービスルーチンの完了後に前記ＩＳＰ領域に復帰するように復帰アドレスを第１の制御周期演算領域に変更するステップを含み、前記第２の軸グループの位置制御演算を引き続き行うステップは、前記第１の軸グループの位置制御演算を完了すると、前記ＩＳＰ領域に一般レジスタと状態レジスタ、プログラムカウンタをプッシュし、前記ＵＳＰ領域にスタック切り替えを行った後、さらに前記第２の軸グループの位置制御演算を引き続き行うステップを含むことができる。
【発明の効果】
【００２６】
本発明によれば、多数の軸を制御するＰＬＣ位置決定システムにおいて全ての軸を柔軟に制御するために、既存のように一括して制御周期を適用する方法から脱皮して、各軸を、第１の軸グループ（早い応答を要求する軸）と第２の軸グループ（比較的遅い応答を要求する軸）とに区分し、２つのグループの運転データ演算中に第１の軸グループの演算が要求された時点にタスクを切り替えて、第１の軸グループの位置制御演算を優先的に行うことができる。
【００２７】
本発明によれば、早い応答が要求される軸に対して演算優先順位を付与することで、制御軸が多くなる場合にも、早い応答を要求する軸の応答速度を保障することができる。
【００２８】
産業現場では、多関節ロボットなどのように、反応速度に敏感であり且つ軸毎の同期が重要な軸があり、コンベアベルトなどのように、反応速度や軸毎の同期に比較的敏感ではない軸がある。したがって、本発明によれば、第１の軸グループに多関節ロボットなどを制御する軸を割り当て、第２の軸グループにコンベアベルトなどを制御する軸を割り当てることで、大規模システムでもサーボドライブを柔軟に制御することができる。
【図面の簡単な説明】
【００２９】
【図１】従来のＰＬＣ位置決定システムの位置制御演算方式を説明するための図である。
【図２】従来のＰＬＣ位置決定システムの位置制御演算方式を説明するための図である。
【図３】従来のＰＬＣ位置決定システムにおいて、全ての軸を演算する時間が制御周期を超えた場合を説明するための図である。
【図４】本発明の一実施形態によるＰＬＣ位置決定システムを説明するための図である。
【図５】本発明の一実施形態によるＰＬＣ位置決定システムにおける軸毎の制御周期独立割当方法を説明するための図である。
【図６】本発明の一実施形態によるＰＬＣ位置決定システムにおける軸毎の制御周期独立割当方法において、関数呼び出し時における現在のスタックの格納領域を示す。
【図７】本発明の一実施形態によるＰＬＣ位置決定システムにおける軸毎の制御周期独立割当方法において、割込み呼び出し時における現在のスタックの格納領域を示す。
【図８】本発明の一実施形態による、短い制御周期と長い制御周期の制御演算を行うことを説明するための図である。
【図９】本発明の一実施形態によるＰＬＣ位置決定システムにおける軸毎の制御周期独立割当方法のシミュレーション結果を説明するグラフである。
【図１０】本発明の一実施形態によるＰＬＣ位置決定システムにおける軸毎の制御周期独立割当方法のシミュレーション結果を説明するグラフである。
【発明を実施するための形態】
【００３０】
本発明は多様に変更されることができ、様々な実施形態を有することができて、特定実施形態を図面に例示して詳細に説明する。但し、これは本発明を特定の実施形態に限定するためのものではなく、本発明の技術思想及び技術範囲に含まれる全ての変更、均等物乃至代替物を含むものと理解されるべきである。
【００３１】
以下、添付図面を参照して本発明の好ましい一実施形態を詳細に説明する。
【００３２】
図４は本発明の一実施形態によるＰＬＣ位置決定システムを説明するための図である。
【００３３】
図４を参照すると、本発明の一実施形態によるＰＬＣ位置決定システム１００は、位置決定制御部１１０と、高速フォトカプラ１２０と、外部インタフェース部１３０と、を含んで構成されることができる。
【００３４】
位置決定制御部１１０は、各軸を第１の軸グループと第２の軸グループに分け、２つのグループの運転データ演算中に、第１の軸グループの演算が要求された時点でタスクを切り替えて、第１のグループの位置制御演算を優先的に行うように構成される。第１の軸グループには早い応答を要求する軸が該当され、第２の軸グループには比較的遅い応答を要求する軸が該当される。
【００３５】
位置決定制御部１１０は、第１の軸グループに１つの軸を指定し、第２の軸グループに残りの軸を指定することができる。このようにすると、第１の軸グループに指定された軸に対する演算が、他の軸に対する演算より優先的に実行されることができる。
【００３６】
位置決定制御部１１０は、第１の軸グループに複数の軸を指定し、第２の軸グループに残りの軸を指定することができる。このようにすると、第１の軸グループに指定された複数の軸に対する演算が、他の軸に対する演算より優先的に実行されることができる。
【００３７】
例えば、位置決定制御部１１０は、第１の軸グループに２つの軸を指定し、第２の軸グループに残りの軸を指定することができる。このようにすると、第１の軸グループに指定された２つの軸に対する演算が、他の軸に対する演算より優先的に実行されることができる。この際、第１の軸グループに指定された２つの軸は、互いに同一の優先順位を有することになる。第１の軸グループに指定される軸の数が多くなるほど、第１の軸グループ内に指定された軸が優先順位を共有することになるため、第１の軸グループに指定される軸の数を１つにするか、その個数をなるべく少なくすることが好ましい。
【００３８】
位置決定制御部１１０は、ユーザにより設定された出力モードがパルス／方向またはＣＷ／ＣＣＷである場合と、出力レベルがハイアクティブまたはローアクティブである場合に応じて、高速パルス列を生成することができる。パルス列は、絶縁伝送部である高速フォトカプラ１２０を介して、外部と絶縁された状態で外部に伝送される。高速フォトカプラ１２０を介して伝送されたパルス列は、外部インタフェース部１３０により、外部のモータドライバ２００に適したオープンコレクタまたはラインドライブの形態の信号レベルに変換されて出力される。
【００３９】
図５は、本発明の一実施形態によるＰＬＣ位置決定システムにおける軸毎の制御周期独立割当方法を説明するための図である。
【００４０】
図５を参照すると、位置決定制御部１１０は、各軸を、第１の制御周期を有する第１の軸グループと、第２の制御周期を有する第２の軸グループとに区分し、各軸毎に異なる制御周期を割り当てる（Ｓ１１）。
【００４１】
すなわち、位置決定制御部１１０は、タスクの切り替えを用いて、早い応答を要求する軸には短い制御周期（第１の制御周期）を適用し、比較的応答が遅くてもよい軸には長い制御周期（第２の制御周期）を割り当てるように、各軸毎に異なる制御周期を割り当てる。
【００４２】
例えば、位置決定制御部１１０は、多関節ロボットなどのように、短い制御周期が要求されるサーボドライブグループ（第１の軸グループ）と、コンベアベルトなどのように、比較的制御周期が長くてもよいサーボドライブグループ（第２の軸グループ）とに区分する。そして、第１の軸グループの位置制御演算の優先順位を第２の軸グループの位置制御演算の優先順位より高くする。
【００４３】
すなわち、位置決定制御部１１０は、第２の軸グループの位置制御演算中に第１の軸グループの位置制御演算が要請されると、第１の軸グループの位置制御演算を行う（Ｓ１２）。そして、第１の軸グループの位置制御演算を完了した後、第２の軸グループの位置制御演算を引き続き行う（Ｓ１３）。これにより、第２の軸グループの制御周期を増やすことなく、第１の軸グループの短い制御周期を保障することができる。
【００４４】
位置決定制御部１１０はＭＰＵ（Ｍｉｃｒｏ  Ｐｒｏｃｅｓｓ  Ｕｎｉｔ）を用いて具現されることができる。この場合、位置決定制御部１１０は、ＭＰＵの内部周辺装置（ｐｅｒｉｐｈｅｒａｌ）を用いたタスク切り替えを用いて、制御周期を独立して割り当てることができる。
【００４５】
ＲＴＯＳ（Ｒｅａｌ  Ｔｉｍｅ  Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）を用いてタスク切り替え技術を具現する場合には、不要な周期的／非周期的スケジューリングが多くの負荷を誘発するため、ＭＰＵ資源が無駄使いされ得る。
【００４６】
したがって、位置決定制御部１１０は、ＲＴＯＳの機能のうち、タイマ割込み発生時に柔軟にタスク切り替えが可能なプロセスを行うことができる。
【００４７】
すなわち、位置決定制御部１１０は、制御周期の長い軸の位置演算中に、制御周期の短い軸の位置演算が要求された時には、進行中であった演算を停止し、制御周期の短い軸の位置演算を優先的に行う。位置決定制御部１１０は、制御周期の短い軸の位置演算を完了すると、さらに制御周期の長い軸の位置演算を引き続き進行する。
【００４８】
そのために、位置決定制御部１１０は２つの軸制御規則を有する。
【００４９】
第一に、制御周期の長い軸の位置制御演算中に、制御周期の短い軸の位置制御演算が要求されると、制御周期の短い軸の位置制御演算ルーチンが直ちに行われるように構成される。
【００５０】
第二に、制御周期の短い軸の位置制御演算が完了すると、制御周期の長い軸の位置制御演算が引き続き進行されるように構成される。
【００５１】
互いに異なる制御周期を有する軸の位置制御演算を柔軟に具現するためには、タスク切り替え技法が必要である。一般的なＲＴＯＳは、タイムチック（Ｔｉｍｅ  Ｔｉｃｋ）を用いるか、またはカーネルが動作するＡＰＩ関数呼び出しを用いてタスクを切り替える。カーネルのスケジューラは、カーネル関数が呼び出されると、現在準備状態であるタスクのうち最も高い優先順位を有するタスクを実行する。
【００５２】
しかし、一般的な組み込みＲＴＯＳのタイムチック（Ｔｉｍｅ  Ｔｉｃｋ）は１０ｍｓであり、通常、位置決定制御のためには１ｍｓ内外の制御周期を基本的に提供している。そのため、タスク切り替えのために行われる作業が必要以上に発生し、システムに負担をかけることになり得る。したがって、位置決定制御部１１０は、Ｎｏｎ‐ＲＴＯＳにおいてマルチタスキング技法のみを用いてタスクを切り替える方法が好適である。
【００５３】
タスク切り替えのためにはスタック分割が必要であり、スタック分割は、ユーザが任意にソースコードにより具現することができる。例えば、位置決定制御部１１０はスタック分割方式を用いることができる。スタック分割方式は、ＩＳＰ（Ｉｎｔｅｒｒｕｐｔ  Ｓｔａｃｋ  Ｐｏｉｎｔｅｒ）とＵＳＰ（Ｕｓｅｒ  Ｓｔａｃｋ  Ｐｏｉｎｔｅｒ）を用いることができる。位置決定制御部１１０は、コントロールレジスタの操作により、現在のスタック分割においてＩＳＰ領域を用いるかまたはＵＳＰ領域を用いるかを決定することができる。
【００５４】
図６は、本発明の一実施形態によるＰＬＣ位置決定システムにおける軸毎の制御周期独立割当方法において、関数呼び出し時における現在スタックの格納領域を示す。
【００５５】
図６を参照すると、位置決定制御部１１０は、Ｆｕｎｃ１のタスクを行う中に、Ｆｕｎｃ２のタスクを行うように関数呼び出しを受信することができる。この際、ＩＳＰ領域とＵＳＰ領域の何れを用いるかによって、プッシュ（ｐｕｓｈ）及びポップ（ｐｏｐ）される領域が互いに異なる。
【００５６】
位置決定制御部１１０は、ＩＳＰ領域を用いている場合には、Ｆｕｎｃ１のタスクを行う中にＦｕｎｃ２のタスクを行うための関数呼び出しが発生すると、ＩＳＰ領域にプッシュする。そして、さらにＦｕｎｃ２のタスクを完了した後にＦｕｎｃ１のタスクに切り替える場合にもＩＳＰ領域からポップ（ｐｏｐ）する。
【００５７】
一方、位置決定制御部１１０は、ＵＳＰ領域を用いている場合、Ｆｕｎｃ１のタスクを行う中にＦｕｎｃ２のタスクを行うための関数呼び出しが発生すると、ＵＳＰ領域にプッシュする。そして、さらにＦｕｎｃ２のタスクを完了した後にＦｕｎｃ１のタスクに切り替える場合にもＵＳＰ領域からポップ（ｐｏｐ）する。
【００５８】
図７は、本発明の一実施形態によるＰＬＣ位置決定システムにおける軸毎の制御周期独立割当方法において、割込み呼び出し時における現在スタックの格納領域を示す。
【００５９】
図７を参照すると、位置決定制御部１１０は、ＩＳＰ領域を用いる場合とＵＳＰ領域を用いる場合の両方で、割込みが発生すると、ＩＳＰ領域を用いてプッシュ（ｐｕｓｈ）とポップ（ｐｏｐ）を行う。
【００６０】
すなわち、位置決定制御部１１０は、Ｆｕｎｃ１のタスクを行う中にＩｎｔｅｒｒｕｐｔ１が発生するとＩＳＰ領域にプッシュし、Ｉｎｔｅｒｒｕｐｔ１のタスクを行う中にＩｎｔｅｒｒｕｐｔ２が発生するとＩＳＰ領域にプッシュする。
【００６１】
さらに、Ｉｎｔｅｒｒｕｐｔ２のタスクを完了した後にＩｎｔｅｒｒｕｐｔ１のタスクに切り替える場合にもＩＳＰ領域からポップ（ｐｏｐ）する。そして、Ｉｎｔｅｒｒｕｐｔ１のタスクを完了した後にＦｕｎｃ１のタスクに切り替える場合にもＩＳＰ領域からポップ（ｐｏｐ）する。
【００６２】
このように、位置決定制御部１１０は、特別な操作がない際にはＩＳＰ領域を用い、関数呼び出しや割込みが発生した際には、現在の状態をＩＳＰ領域に格納する。位置決定制御部１１０は、ＵＳＰを用いる場合にも関数呼び出しが発生した際には現在の状態をＵＳＰ領域に格納するが、割込みが発生した際にはＩＳＰ領域を用いることができる。
【００６３】
したがって、位置決定制御部１１０は、割込み処理プロセスを用いて、２つの独立したタスクのうち、ＩＳＰ領域は早い応答速度を要求する軸に対して用い、ＵＳＰ領域は比較的応答速度が遅くてもよい軸に対して用いる。
【００６４】
便宜のために、早い制御周期を第１の制御周期と、比較的遅い制御周期を第２の制御周期と定義する。したがって、位置決定制御部１１０は、ＩＳＰ領域を用いる軸に対しては第１の制御周期を基準として運転データを演算し、ＵＳＰ領域を用いる軸に対しては第２の制御周期を基準として運転データを演算する。第１の制御周期が始まると、ＩＳＰ領域を用いる軸の位置制御演算を開始する。
【００６５】
ここで、ＩＳＰ領域を用いる軸の演算は、第１の制御周期より短い時間内に完了される程度に指定するべきである。第１の制御周期より演算時間が長い場合が発生しないように留意するべきである。早い応答速度を要求する軸の演算が第１の制御周期内に完了され、次の制御周期が始まる前までの残る時間中に、遅い制御周期を有する軸の演算を行う方式によりタスクを管理する。
【００６６】
図８は、本発明の一実施形態による、短い制御周期と長い制御周期の制御演算を行うことを説明するための図である。
【００６７】
図８を参照すると、位置決定制御部１１０は、運転データ演算を開始すると、先ず、ＩＳＰ領域にある第１の制御周期演算を開始する。第１の制御周期で行うべきの全ての制御演算を完了すると、位置決定制御部１１０のシステムレジスタを用いてＵＳＰ領域にスタック切り替えを行う。
【００６８】
位置決定制御部１１０は、ＵＳＰ領域で第２の制御周期を演算する中に第１の制御周期の位置制御演算のためのタイマ割込みが発生すると、ＵＳＰ領域での演算を停止する。そして、レジスタと状態をＵＳＰ領域のスタックに格納した後、ＩＳＰ領域にスタック切り替えする。タスク切り替えにより、第１の制御周期の位置制御演算を優先的に行う。この際、プログラムポインタは、ＩＳＰからＵＳＰに切り替えた時点の次のステップを指定するため、ＩＳＰ領域の演算が引き続き行われる。
【００６９】
すなわち、位置決定制御部１１０は、タイマ割込みを用いて第２の制御周期を演算する中に第１の制御周期の位置制御演算が要求された時点にスタック切り替え割込み（１ｍｓ）が発生すると、全てのレジスタをＵＳＰ領域にプッシュする。そして、割込みサービスルーチンの完了後にＩＳＰ領域に復帰するように、復帰アドレスを第１の制御周期演算領域に変更する。その後、スタックを切り替えて第１の制御周期の位置制御演算を行い、第１の制御周期の位置制御演算を完了すると、ＩＳＰ領域に一般レジスタと状態レジスタ、プログラムカウンタをプッシュする。そして、ＵＳＰにスタック切り替え後、さらに第２の制御周期の位置制御演算を引き続き行う。
【００７０】
図９は、本発明の一実施形態によるＰＬＣ位置決定システムにおける軸毎の制御周期独立割当方法のシミュレーション結果を説明するグラフである。
【００７１】
図９を参照すると、一実施形態によるＰＬＣ位置決定システムにおける軸毎の制御周期独立割当方法のシミュレーションを行うために、ｒｅｎｅｓａｓ社のＲｘ６２１  ＭＰＵを用いた。プログラムが作業中の領域がＩＳＰ領域であるかＵＳＰ領域であるかを確認するために、ＧＰＩＯピンを用いて出力されるＯｎ／Ｏｆｆ信号をオシロスコープで測定した。第１の制御周期演算中である場合には、オシロスコープの３番プローブ（ＣＨ３）と連結したＧＰＩＯをＯｎ、演算完了後にはＯｆｆし、第２の制御周期に対しても同様に２番プローブ（ＣＨ２）と連結した。
【００７２】
第１の制御周期は１ｍｓと指定し、第２の制御周期は５ｍｓと指定した。すなわち、第１の制御周期が５回繰り返す間に、第２の制御周期は１回繰り返す。
【００７３】
上記の方式により、互いに異なる制御周期を有する２つのグループの運転データ演算が、時間が経過するにしたがって下記のように行われることを確認した。
【００７４】
図９から確認できるように、位置決定制御部１１０は、第１の制御周期演算を完了すると、第２の制御周期タスク切り替えを用いて第２の制御周期を演算する。そして、第２の制御周期を演算する中に、第１の制御周期が始まる時点に１ｍｓタイマ割込みが発生して、第１の制御周期の位置制御演算を行うためにスタック切り替えを行う。第１の制御周期の演算を完了すると、さらに第２の制御周期の残りの演算を引き続くことを確認することができる。
【００７５】
ここで、第１の制御周期（ＣＨ３）及び第２の制御周期（ＣＨ２）は、各軸に対する位置制御演算実行区間及びマージン区間を含んで構成される。第１の制御周期が１ｍｓであるとしても、１ｍｓの全体期間が、第１の制御周期の制御演算が行われる制御演算実行区間として用いられるのではなく、一部のみが用いられ、残りはマージン区間で構成される。各制御周期毎に、制御演算実行区間と待機するマージン区間とが存在するため、第１の制御周期の実行が完了すると、マージン区間の間には待つのではなく第２の制御周期の制御演算を行うことになる。
【００７６】
図１０は、本発明の一実施形態によるＰＬＣ位置決定システムにおける軸毎の制御周期独立割当方法のシミュレーション結果を説明するグラフである。
【００７７】
図１０を参照すると、第１の制御周期で１軸と２軸を演算し、第２の制御周期で３軸と４軸を演算した結果を示す。各軸は、同一の速度で移動するように設定して同一のプロファイルが生成されることを確認することができる。
【００７８】
本発明は、多数の軸を制御する位置決定制御部１１０において、軸毎に制御周期を独立して割り当て、早い応答速度が要求される軸に演算優先権を付与している。これにより、早い応答が要求される軸に演算優先順位を付与することで、制御軸が多くなる場合にも、早い応答を要求する軸の応答速度を保障することができる。
【００７９】
一方、産業現場では、多関節ロボットなどのように、反応速度に敏感であり且つ軸毎の同期が重要な軸があり、コンベアベルトなどのように、反応速度や軸毎の同期に比較的敏感ではない軸がある。したがって、本発明によれば、第１の軸グループに多関節ロボットなどを制御する軸を割り当て、第２の軸グループにコンベアベルトなどを制御する軸を割り当てることで、大規模システムでもサーボドライブを柔軟に制御することができる。
【００８０】
以上、本発明の好ましい実施形態を詳細に説明したが、これは例示に過ぎず、当該分野で通常的知識を有した者であれば、これらから多様な変形及び均等な範囲の実施形態が可能であるということを理解できる。従って、本発明の真の技術的保護の範囲は添付の特許請求の範囲によって決められる。
【図１】
0006429842.tif 000002
【図２】
0006429842.tif 000003
【図３】
0006429842.tif 000004
【図４】
0006429842.tif 000005
【図５】
0006429842.tif 000006
【図６】
0006429842.tif 000007
【図７】
0006429842.tif 000008
【図８】
0006429842.tif 000009
【図９】
0006429842.tif 000010
【図１０】
0006429842.tif 000011