(57)【特許請求の範囲】
【請求項１】
主軸と従動軸との同期制御を一定制御周期ごとに実行する同期制御装置であって、
第１のカム曲線および第２のカム曲線を記憶する記憶手段と、
前記従動軸の位置指令値を算出し、前記算出した位置指令値で前記従動軸を制御する制御部とを備え、
前記制御部は、カム曲線の切替え前は、各制御タイミングで、第１のカム曲線上の値に基づいて、従動側部材への位置指令値を求め、
前記カム曲線の切替え後は、各制御タイミングで、第２のカム曲線上の値に基づいて位置指令値を求め、
前記カム曲線の切替期間は、各制御タイミングで、前記切換期間の開始タイミングでの前記第１のカム曲線上の値である第１のデータと、前記第２のカム曲線に基づく第２のデータとを加重平均した値に基づいて従動側部材への位置指令値を求める、同期制御装置。
【請求項２】
主軸と従動軸との同期制御を一定制御周期ごとに実行する同期制御装置であって、
第１のカム曲線および第２のカム曲線を記憶する記憶手段と、
前記従動軸の位置指令値を算出し、前記算出した位置指令値で前記従動軸を制御する制御部とを備え、
前記制御部は、カム曲線の切替え前は、各制御タイミングで、第１のカム曲線上の値に基づいて、従動側部材への位置指令値を求め、
前記カム曲線の切替え後は、各制御タイミングで、第２のカム曲線上の値に基づいて位置指令値を求め、
前記カム曲線の切替期間は、各制御タイミングで、各制御タイミングでの前記従動軸の位置である第１のデータと、前記第２のカム曲線に基づく第２のデータとを加重平均した値に基づいて従動側部材への位置指令値を求める、同期制御装置。
【請求項３】
主軸と従動軸との同期制御を一定制御周期ごとに実行する同期制御装置であって、
第１のカム曲線および第２のカム曲線を記憶する記憶手段と、
前記従動軸の位置指令値を算出し、前記算出した位置指令値で前記従動軸を制御する制御部とを備え、
前記制御部は、カム曲線の切替え前は、各制御タイミングで、第１のカム曲線上の値に基づいて、従動側部材への位置指令値を求め、
前記カム曲線の切替え後は、各制御タイミングで、第２のカム曲線上の値に基づいて位置指令値を求め、
前記カム曲線の切替期間は、各制御タイミングで、前記切替期間の開始タイミングでの前記従動軸の位置である第１のデータと、前記第２のカム曲線に基づく第２のデータとを加重平均した値に基づいて従動側部材への位置指令値を求める、同期制御装置。
【請求項４】
主軸と従動軸との同期制御を一定制御周期ごとに実行する同期制御装置であって、
第１のカム曲線および第２のカム曲線を記憶する記憶手段と、
前記従動軸の位置指令値を算出し、前記算出した位置指令値で前記従動軸を制御する制御部とを備え、
前記制御部は、カム曲線の切替え前は、各制御タイミングで、第１のカム曲線上の値に基づいて、従動側部材への位置指令値を求め、
前記カム曲線の切替え後は、各制御タイミングで、第２のカム曲線上の値に基づいて位置指令値を求め、
前記カム曲線の切替期間は、各制御タイミングで、前記第１のカム曲線または前記従動軸の位置に基づく第１のデータと、前記切換期間の終了タイミングでの前記第２のカム曲線上の値である第２のデータとを加重平均した値に基づいて従動側部材への位置指令値を求める、同期制御装置。
【請求項５】
前記加重平均において、前記第１のデータの重みを（１−ａ）とし、前記第２のデータの重みをａとしたときに、
前記重みａは、前記切替期間の開始タイミングでは０であり、前記切替期間での時刻の経過とともに単調に増加し、前記切替期間の終了タイミングでは１となる、請求項１〜４のいずれか１項に記載の同期制御装置。
【請求項６】
前記重みａは、時刻に対して１次関数で変化する、請求項５記載の同期制御装置。
【請求項７】
前記重みａは、時刻に対してｎ次関数で変化する、ただし、ｎは１以外の正の実数である、請求項５記載の同期制御装置。
【請求項８】
前記重みａは、時刻に対して正弦関数で変化する、請求項５記載の同期制御装置。
【請求項９】
前記重みａは、時刻に対して余弦関数で変化する、請求項５記載の同期制御装置。
【請求項１０】
前記加重平均において、重みは主軸位置に連動して可変であって、前記切替期間の開始タイミングでは前記第１のデータの重みを前記第２のデータの重みより大きく設定し、前記切替期間の終了タイミングでは前記第１のデータの重みを前記第２のデータの重みより小さく設定する、請求項１〜４のいずれか１項に記載の同期制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、同期制御装置に関し、特に主軸と従動軸を任意のギヤ比をによって同期動作させる同期制御装置に関する。
【背景技術】
【０００２】
プログラマブルロジックコントローラ（Programmable Logic Controller：以下「ＰＬ
Ｃ」と称す。）は、たとえば、ユーザプログラムを実行する演算ユニット、外部のスイッチやセンサからの信号入力および外部のリレーやアクチュエータへの信号出力を担当するＩＯ（Input Output）ユニットといった複数のユニットで構成される。それらのユニット間で、ユーザプログラム実行サイクルごとに、ＰＬＣシステムバスおよび／またはフィールドネットワークを経由してデータの授受をしながら、ＰＬＣは制御動作を実行する。
【０００３】
機械、設備などの動作の制御としては、モータの運動を制御するためのモーションコントロールが含まれる場合がある。このようなモーション制御の典型例としては、位置決めテーブルやロボットといったメカニカル機構の位置決めを行なうようなアプリケーションが想定される。
【０００４】
モーションコントローラにおいて、同期動作や同期制御は、主軸と従動軸が何らかの関係を保ちつつ動作する方式のことを意味し、一般的にはカム動作やギヤ動作が含まれる。カム動作とは、主軸の位置（位相）に対応する従動軸の位置（変位）を毎制御周期、カムテーブル中から検索して、従動軸の指令位置を決定する方式である。ギヤ動作とは、主軸の速度にギヤ比を乗算した値を従動軸の指令速度として、従動軸の指令位置を決定する方式である。
【０００５】
同期制御を行なう位置制御システムにおいて、カム曲線を切替る場合に、位置目標値（位置指令値）が不連続となり、振動や衝撃の原因となる。
【０００６】
このような問題に対して、たとえば、特許文献１および特許文献２には、カム曲線の接続区間の終端で位置や速度が不連続とならないように軌道（指令値の曲線）を生成することが記載されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開昭５９−１８３４１３号公報
【特許文献２】特開平５−１２７７３１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１および特許文献２では、予め速度曲線を生成する必要があるため、ユーザが任意のタイミングでカム曲線を切替ることができない。
【０００９】
また、特許文献１および特許文献２では、微分値が連続となるような高次曲線を生成する必要があるため、複雑なソフトウェア処理が必要である。そのため、低スペックなＣＰＵでは制御周期内のリアルタイムでの計算ができないという問題がある。
【００１０】
それゆえに、本発明の目的は、容易かつ遅れなしにカム曲線の切替が可能な同期制御装置を提供することである。
【課題を解決するための手段】
【００１１】
上記課題を解決するために、主軸と従動軸との同期制御を制御周期ごとに実行する同期制御装置であって、第１のカム曲線および第２のカム曲線を記憶する記憶手段と、従動軸の位置指令値を算出し、算出した位置指令値で従動軸を制御する制御部とを備える。制御部は、カム曲線の切替え前は、各制御タイミングで、第１のカム曲線上の値に基づいて、従動側部材への位置指令値を求める。制御部は、カム曲線の切替え後は、各制御タイミングで、第２のカム曲線上の値に基づいて位置指令値を求める。制御部は、カム曲線の切替期間は、各制御タイミングで、第１のカム曲線または従動軸の位置に基づく第１のデータと、第２のカム曲線に基づく第２のデータとを加重平均した値に基づいて従動側部材への位置指令値を求める。
【００１２】
好ましくは、加重平均において、重みは主軸位置に連動して可変であって、切替期間の開始タイミングでは第１のデータの重みを第２のデータの重みより大きく設定し、切替期間の終了タイミングでは第１のデータの重みを第２のデータの重みより小さく設定する。
【００１３】
好ましくは、第１のデータは、各制御タイミングでの第１のカム曲線上の値である。
好ましくは、第１のデータは、切替期間の開始タイミングでの第１のカム曲線上の値である。
【００１４】
好ましくは、第１のデータは、各制御タイミングでの従動軸の位置である。
好ましくは、第１のデータは、切替期間の開始タイミングでの従動軸の位置である。
【００１５】
好ましくは、第２のデータは、各制御タイミングでの第２のカム曲線上の値である。
好ましくは、第２のデータは、切替期間の終了タイミングでの第２のカム曲線上の値である。
【００１６】
好ましくは、加重平均において、第１のデータの重みを（１−ａ）とし、第２のデータの重みをａとしたときに、重みａは、切替期間の開始タイミングでは０であり、切替期間での時刻の経過とともに単調に増加し、切替期間の終了タイミングでは１となる。
【００１７】
好ましくは、重みａは、時刻に対して１次関数で変化する。
好ましくは、重みａは、時刻に対してｎ次関数で変化する、ただし、ｎは１以外の正の実数である。
【００１８】
好ましくは、重みａは、時刻に対して正弦関数で変化する。
好ましくは、重みａは、時刻に対して余弦関数で変化する。
【発明の効果】
【００１９】
本発明によれば、従動軸に加わる衝撃を緩和し、かつ同期開始位置で確実に同期制御を開始することができる。
【図面の簡単な説明】
【００２０】
【図１】ＰＬＣシステムの概略構成を示す模式図である。
【図２】ＣＰＵユニットのハードウェア構成を示す模式図である。
【図３】ＣＰＵユニットで実行されるソフトウェア構成を示す模式図である。
【図４】同期制御装置の構成を表わす図である。
【図５】重みａの変化を表わす図である。
【図６】（ａ）は、第１の実施形態における、第１のカム曲線と、第２のカム曲線と、切替曲線とを表わす図である。（ｂ）は、第１の実施形態における、制御部６６で使用するカム曲線、およびそのカム曲線を微分した曲線である速度を表わす曲線を表わす図である。
【図７】（ａ）は、第２の実施形態における、第１のカム曲線と、第２のカム曲線と、切替曲線とを表わす図である。（ｂ）は、第２の実施形態における、制御部６６で使用するカム曲線、およびそのカム曲線を微分した曲線である速度を表わす曲線を表わす図である。
【図８】（ａ）は、第３の実施形態における、第１のカム曲線と、第２のカム曲線と、切替曲線とを表わす図である。（ｂ）は、第３の実施形態における、制御部６６で使用するカム曲線、およびそのカム曲線を微分した曲線である速度を表わす曲線を表わす図である。
【発明を実施するための形態】
【００２１】
以下、本発明の実施形態について図面を参照して説明する。
［第１の実施形態］
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
【００２２】
＜Ａ．システム構成＞
本実施の形態に係るＰＬＣ（Programmable Logic Controller）は、モータの運動を制御するためのモーション制御機能を有する。まず、図１を参照して、本実施の形態に係るＰＬＣ１のシステム構成について説明する。
【００２３】
図１は、本発明の実施の形態に係るＰＬＣシステムの概略構成を示す模式図である。図１を参照して、ＰＬＣシステムＳＹＳは、ＰＬＣ１と、ＰＬＣ１とフィールドネットワーク２を介して接続されるサーボモータドライバ３およびリモートＩＯターミナル５と、フィールド機器である検出スイッチ６およびリレー７とを含む。また、ＰＬＣ１には、接続ケーブル１０などを介してＰＬＣサポート装置８が接続される。
【００２４】
ＰＬＣ１は、主たる演算処理を実行するＣＰＵユニット１３と、１つ以上のＩＯユニット１４と、特殊ユニット１５とを含む。これらのユニットは、ＰＬＣシステムバス１１を介して、データを互いに遣り取りできるように構成される。また、これらのユニットには、電源ユニット１２によって適切な電圧の電源が供給される。
【００２５】
ＣＰＵユニット１３の詳細については、図２を参照して後述する。
ＩＯユニット１４は、一般的な入出力処理に関するユニットであり、オン／オフといった２値化されたデータの入出力を司る。すなわち、ＩＯユニット１４は、検出スイッチ６などのセンサが何らかの対象物を検出している状態（オン）および何らの対象物も検出していない状態（オフ）のいずれであるかという情報を収集する。また、ＩＯユニット１４は、リレー７やアクチュエータといった出力先に対して、活性化するための指令（オン）および不活性化するための指令（オフ）のいずれかを出力する。
【００２６】
特殊ユニット１５は、アナログデータの入出力、温度制御、特定の通信方式による通信といった、ＩＯユニット１４ではサポートしない機能を有する。
【００２７】
フィールドネットワーク２は、ＣＰＵユニット１３と遣り取りされる各種データを伝送する。フィールドネットワーク２としては、典型的には、各種の産業用イーサネット（登録商標）を用いることができる。
【００２８】
なお、図１には、ＰＬＣシステムバス１１およびフィールドネットワーク２の両方を有するＰＬＣシステムＳＹＳを例示するが、一方のみを搭載するシステム構成を採用することもできる。たとえば、フィールドネットワーク２ですべてのユニットを接続してもよい。あるいは、フィールドネットワーク２を使用せずに、サーボモータドライバ３をＰＬＣシステムバス１１に直接接続してもよい。さらに、フィールドネットワーク２の通信ユニットをＰＬＣシステムバス１１に接続し、ＣＰＵユニット１３から当該通信ユニット経由で、フィールドネットワーク２に接続された機器との間の通信を行なうようにしてもよい。
【００２９】
サーボモータドライバ３は、フィールドネットワーク２を介してＣＰＵユニット１３と接続されるとともに、ＣＰＵユニット１３からの指令値に従ってサーボモータ４を駆動する。より具体的には、サーボモータドライバ３は、ＰＬＣ１から一定周期で、位置指令値、速度指令値、トルク指令値といった指令値を受ける。また、サーボモータドライバ３は、サーボモータ４の軸に接続されている位置センサ（ロータリーエンコーダ）やトルクセンサといった検出器から、位置、速度（典型的には、今回位置と前回位置との差から算出される）、トルクといったサーボモータ４の動作に係る実測値を取得する。そして、サーボモータドライバ３は、ＣＰＵユニット１３からの指令値を目標値に設定し、実測値をフィードバック値として、フィードバック制御を行なう。すなわち、サーボモータドライバ３は、実測値が目標値に近づくようにサーボモータ４を駆動するための電流を調整する。
なお、サーボモータドライバ３は、サーボモータアンプと称されることもある。
【００３０】
また、図１には、サーボモータ４とサーボモータドライバ３とを組み合わせたシステム例を示すが、その他の構成、たとえば、パルスモータとパルスモータドライバとを組み合わせたシステムを採用することもできる。
【００３１】
図１に示すＰＬＣシステムＳＹＳのフィールドネットワーク２には、さらに、リモートＩＯターミナル５が接続されている。リモートＩＯターミナル５は、基本的には、ＩＯユニット１４と同様に、一般的な入出力処理に関する処理を行なう。より具体的には、リモートＩＯターミナル５は、フィールドネットワーク２でのデータ伝送に係る処理を行なうための通信カプラ５２と、１つ以上のＩＯユニット５３とを含む。これらのユニットは、リモートＩＯターミナルバス５１を介して、データを互いに遣り取りできるように構成される。
【００３２】
＜Ｂ．ＣＰＵユニットのハードウェア構成＞
次に、図２を参照して、ＣＰＵユニット１３のハードウェア構成について説明する。図２は、本発明の実施の形態に係るＣＰＵユニット１３のハードウェア構成を示す模式図である。
【００３３】
図２を参照して、ＣＰＵユニット１３は、マイクロプロセッサ１００と、チップセット１０２と、メインメモリ１０４と、不揮発性メモリ１０６と、システムタイマ１０８と、ＰＬＣシステムバスコントローラ１２０と、フィールドネットワークコントローラ１４０と、ＵＳＢコネクタ１１０とを含む。チップセット１０２と他のコンポーネントとの間は、各種のバスを介してそれぞれ結合されている。
【００３４】
マイクロプロセッサ１００およびチップセット１０２は、典型的には、汎用的なコンピュータアーキテクチャに準じて構成される。すなわち、マイクロプロセッサ１００は、チップセット１０２から内部クロックに従って順次供給される命令コードを解釈して実行する。チップセット１０２は、接続されている各種コンポーネントとの間で内部的なデータを遣り取りするとともに、マイクロプロセッサ１００に必要な命令コードを生成する。さらに、チップセット１０２は、マイクロプロセッサ１００での演算処理の実行の結果得られたデータなどをキャッシュする機能を有する。
【００３５】
ＣＰＵユニット１３は、記憶手段として、メインメモリ１０４および不揮発性メモリ１０６を有する。
【００３６】
メインメモリ１０４は、揮発性の記憶領域（ＲＡＭ）であり、ＣＰＵユニット１３への電源投入後にマイクロプロセッサ１００で実行されるべき各種プログラムを保持する。また、メインメモリ１０４は、マイクロプロセッサ１００による各種プログラムの実行時の作業用メモリとしても使用される。このようなメインメモリ１０４としては、ＤＲＡＭ（Dynamic Random Access Memory）やＳＲＡＭ（Static Random Access Memory）といったデバイスが用いられる。
【００３７】
一方、不揮発性メモリ１０６は、リアルタイムＯＳ（Operating System）、ＰＬＣ１のシステムプログラム、ユーザプログラム、モーション演算プログラム、システム設定パラメータといったデータを不揮発的に保持する。これらのプログラムやデータは、必要に応じて、マイクロプロセッサ１００がアクセスできるようにメインメモリ１０４にコピーされる。このような不揮発性メモリ１０６としては、フラッシュメモリのような半導体メモリを用いることができる。あるいは、ハードディスクドライブのような磁気記録媒体や、ＤＶＤ−ＲＡＭ（Digital Versatile Disk Random Access Memory）のような光学記録媒体などを用いることもできる。
【００３８】
システムタイマ１０８は、一定周期ごとに割り込み信号を発生してマイクロプロセッサ１００に提供する。典型的には、ハードウェアの仕様によって、複数の異なる周期でそれぞれ割り込み信号を発生するように構成されるが、ＯＳ（Operating System）やＢＩＯＳ（Basic Input Output System）などによって、任意の周期で割り込み信号を発生するように設定することもできる。このシステムタイマ１０８が発生する割り込み信号を利用して、後述するようなモーション制御サイクルごとの制御動作が実現される。
【００３９】
ＣＰＵユニット１３は、通信回路として、ＰＬＣシステムバスコントローラ１２０およびフィールドネットワークコントローラ１４０を有する。
【００４０】
ＰＬＣシステムバスコントローラ１２０は、ＰＬＣシステムバス１１を介したデータの遣り取りを制御する。より具体的には、ＰＬＣシステムバスコントローラ１２０は、ＤＭＡ（Dynamic Memory Access）制御回路１２２と、ＰＬＣシステムバス制御回路１２４と、バッファメモリ１２６とを含む。なお、ＰＬＣシステムバスコントローラ１２０は、ＰＬＣシステムバスコネクタ１３０を介してＰＬＣシステムバス１１と内部的に接続される。
【００４１】
バッファメモリ１２６は、ＰＬＣシステムバス１１を介して他のユニットへ出力されるデータ（以下「出力データ」とも称す。）の送信バッファ、および、ＰＬＣシステムバス１１を介して他のユニットから入力されるデータ（以下「入力データ」とも称す。）の受信バッファとして機能する。なお、マイクロプロセッサ１００による演算処理によって作成された出力データは、原始的にはメインメモリ１０４に格納される。そして、特定のユニットへ転送されるべき出力データは、メインメモリ１０４から読み出されて、バッファメモリ１２６に一次的に保持される。また、他のユニットから転送された入力データは、バッファメモリ１２６に一次的に保持された後、メインメモリ１０４に移される。
【００４２】
ＤＭＡ制御回路１２２は、メインメモリ１０４からバッファメモリ１２６への出力データの転送、および、バッファメモリ１２６からメインメモリ１０４への入力データの転送を行なう。
【００４３】
ＰＬＣシステムバス制御回路１２４は、ＰＬＣシステムバス１１に接続される他のユニットとの間で、バッファメモリ１２６の出力データを送信する処理および入力データを受信してバッファメモリ１２６に格納する処理を行なう。典型的には、ＰＬＣシステムバス制御回路１２４は、ＰＬＣシステムバス１１における物理層およびデータリンク層の機能を提供する。
【００４４】
フィールドネットワークコントローラ１４０は、フィールドネットワーク２を介したデータの遣り取りを制御する。すなわち、フィールドネットワークコントローラ１４０は、用いられるフィールドネットワーク２の規格に従い、出力データの送信および入力データの受信を制御する。このように、本実施の形態に係るＣＰＵユニット１３は、フィールドネットワーク２を介して、駆動装置であるサーボモータドライバ３と接続される。
【００４５】
ＤＭＡ制御回路１４２は、メインメモリ１０４からバッファメモリ１４６への出力データの転送、および、バッファメモリ１４６からメインメモリ１０４への入力データの転送を行なう。
【００４６】
フィールドネットワーク制御回路１４４は、フィールドネットワーク２に接続される他の装置との間で、バッファメモリ１４６の出力データを送信する処理および入力データを受信してバッファメモリ１４６に格納する処理を行なう。典型的には、フィールドネットワーク制御回路１４４は、フィールドネットワーク２における物理層およびデータリンク層の機能を提供する。
【００４７】
ＵＳＢコネクタ１１０は、ＰＬＣサポート装置８とＣＰＵユニット１３とを接続するためのインターフェイスである。典型的には、ＰＬＣサポート装置８から転送される、ＣＰＵユニット１３のマイクロプロセッサ１００で実行可能なプログラムなどは、ＵＳＢコネクタ１１０を介してＰＬＣ１に取込まれる。
【００４８】
＜Ｃ．ＣＰＵユニットのソフトウェア構成＞
次に、図３を参照して、本実施の形態に係る各種機能を提供するためのソフトウェア群について説明する。これらのソフトウェアに含まれる命令コードは、適切なタイミングで読み出され、ＣＰＵユニット１３のマイクロプロセッサ１００によって実行される。
【００４９】
図３は、本発明の実施の形態に係るＣＰＵユニット１３で実行されるソフトウェア構成を示す模式図である。図３を参照して、ＣＰＵユニット１３で実行されるソフトウェアとしては、リアルタイムＯＳ２００と、システムプログラム２１０と、ユーザプログラム２３６との３階層になっている。
【００５０】
リアルタイムＯＳ２００は、ＣＰＵユニット１３のコンピュータアーキテクチャに応じて設計されており、マイクロプロセッサ１００がシステムプログラム２１０およびユーザプログラム２３６を実行するための基本的な実行環境を提供する。このリアルタイムＯＳは、典型的には、ＰＬＣのメーカーあるいは専門のソフトウェア会社などによって提供される。
【００５１】
システムプログラム２１０は、ＰＬＣ１としての機能を提供するためのソフトウェア群である。具体的には、システムプログラム２１０は、スケジューラプログラム２１２と、出力処理プログラム２１４と、入力処理プログラム２１６と、シーケンス命令演算プログラム２３２と、モーション演算プログラム２３４と、その他のシステムプログラム２２０とを含む。なお、一般には出力処理プログラム２１４および入力処理プログラム２１６は、連続的（一体として）に実行されるので、これらのプログラムを、ＩＯ処理プログラム２１８と総称する場合もある。
【００５２】
ユーザプログラム２３６は、ユーザにおける制御目的に応じて作成される。すなわち、ＰＬＣシステムＳＹＳを用いて制御する対象のライン（プロセス）などに応じて、任意に設計されるプログラムである。
【００５３】
後述するように、ユーザプログラム２３６は、シーケンス命令演算プログラム２３２およびモーション演算プログラム２３４と協働して、ユーザにおける制御目的を実現する。すなわち、ユーザプログラム２３６は、シーケンス命令演算プログラム２３２およびモーション演算プログラム２３４によって提供される命令、関数、機能モジュールなどを利用することで、プログラムされた動作を実現する。そのため、ユーザプログラム２３６、シーケンス命令演算プログラム２３２、およびモーション演算プログラム２３４を、制御プログラム２３０と総称する場合もある。
【００５４】
このように、ＣＰＵユニット１３のマイクロプロセッサ１００は、記憶手段に格納されたシステムプログラム２１０およびユーザプログラム２３６を実行する。
【００５５】
以下、各プログラムについてより詳細に説明する。
ユーザプログラム２３６は、上述したように、ユーザにおける制御目的（たとえば、対象のラインやプロセス）に応じて作成される。ユーザプログラム２３６は、典型的には、ＣＰＵユニット１３のマイクロプロセッサ１００で実行可能なオブジェクトプログラム形式になっている。このユーザプログラム２３６は、ＰＬＣサポート装置８などにおいて、ラダー言語などによって記述されたソースプログラムがコンパイルされることで生成される。そして、生成されたオブジェクトプログラム形式のユーザプログラム２３６は、ＰＬＣサポート装置８から接続ケーブル１０を介してＣＰＵユニット１３へ転送され、不揮発性メモリ１０６などに格納される。
【００５６】
スケジューラプログラム２１２は、出力処理プログラム２１４、入力処理プログラム２１６、および制御プログラム２３０について、各実行サイクルでの処理開始および処理中断後の処理再開を制御する。より具体的には、スケジューラプログラム２１２は、ユーザプログラム２３６およびモーション演算プログラム２３４の実行を制御する。
【００５７】
出力処理プログラム２１４は、ユーザプログラム２３６（制御プログラム２３０）の実行によって生成された出力データを、ＰＬＣシステムバスコントローラ１２０および／またはフィールドネットワークコントローラ１４０へ転送するのに適した形式に再配置する。ＰＬＣシステムバスコントローラ１２０またはフィールドネットワークコントローラ１４０が、マイクロプロセッサ１００からの、送信を実行するための指示を必要とする場合は、出力処理プログラム２１４がそのような指示を発行する。
【００５８】
入力処理プログラム２１６は、ＰＬＣシステムバスコントローラ１２０および／またはフィールドネットワークコントローラ１４０によって受信された入力データを、制御プログラム２３０が使用するのに適した形式に再配置する。
【００５９】
シーケンス命令演算プログラム２３２は、ユーザプログラム２３６で使用されるある種のシーケンス命令が実行されるときに呼び出されて、その命令の内容を実現するために実行されるプログラムである。
【００６０】
モーション演算プログラム２３４は、ユーザプログラム２３６による指示に従って実行され、サーボモータドライバ３やパルスモータドライバといったなモータドライバに対して出力する指令値を算出するプログラムである。
【００６１】
その他のシステムプログラム２２０は、図３に個別に示したプログラム以外の、ＰＬＣ１の各種機能を実現するためのプログラム群をまとめて示したものである。その他のシステムプログラム２２０は、モーション制御サイクルの周期を設定するプログラム２２２を含む。モーション制御サイクルの周期は、制御目的に応じて適宜設定することができる。モーション制御サイクルの周期を設定するプログラム２２２は、システムタイマ１０８から指定されたモーション制御サイクルの周期で割り込み信号が発生されるように、システムタイマ１０８を設定する。ＣＰＵユニット１３への電源投入時に、モーション制御サイクルの周期を設定するプログラム２２２が実行されることで、モーション制御サイクルの周期を指定する情報が不揮発性メモリ１０６から読み出され、読み出された情報に従ってシステムタイマ１０８が設定される。
【００６２】
リアルタイムＯＳ２００は、複数のプログラムを時間の経過に従い切替えて実行するための環境を提供する。
【００６３】
＜Ｄ．モーション制御の概略＞
次に、上述したユーザプログラム２３６に含まれる典型的な構成について説明する。ユーザプログラム２３６は、モータの運動に関する制御開始の条件が成立するか否かを周期的に判断させる命令を含む。たとえば、モータの駆動力によって何らかの処置がなされるワークが所定の処置位置まで搬送されたか否かを判断するようなロジックである。そして、ユーザプログラム２３６は、この制御開始の条件が成立したと判断されたことに応答して、モーション制御を開始させる命令をさらに含む。このモーション制御の開始に伴って、モーション命令の実行が指示される。すると、指示されたモーション命令に対応するモーション演算プログラム２３４が起動し、まず、モーション演算プログラム２３４の実行ごとにモータに対する指令値を算出していくために必要な初期処理が実行される。また、初期処理と同じモーション制御サイクルにおいて、第１サイクルでの指令値が算出される。したがって、初期処理および第１番目の指令値算出処理が、起動したモーション演算プログラム２３４が第１番目の実行においてなすべき処理となる。以降、各サイクルでの指令値が順次算出される。
【００６４】
＜Ｅ．同期制御の概略＞
図４は、同期制御装置の構成を表わす図である。
【００６５】
図４に示すように、同期制御装置６１は、主軸と従動軸との同期制御を制御周期ごとに実行する装置であって、カム曲線記憶部６４と、検出部６５と、制御部６６とを備える。これらの構成要素は、制御プログラム２３０、モーション制御サイクルの周期を設定するプログラム２２２、およびスケジューラプログラム２１２によって実現される。
【００６６】
検出部６５は、主軸用のエンコーダ６７および従動軸用のエンコーダ６８からのパルスのカウント値に基づいて、主軸の現在位置、従動軸の現在位置、主軸の現在速度、従動軸の現在速度を検出する。
【００６７】
カム曲線記憶部６４は、第１のカム曲線および第２のカム曲線と記憶する。
本実施の形態において、カム曲線とは、主軸の回転角で表わされる時間変位に対する従動軸の位置を表わすものとする。
【００６８】
制御部６６は、第１のカム曲線、第２のカム曲線、および従動軸の現在位置に基づいて、従動軸の位置指令値を算出し、従動軸用のサーボモータドライバ７０へ出力する。
【００６９】
具体的には、制御部は、カム曲線の切替え前は、各制御タイミングで、第１のカム曲線上の値と従動軸の現在位置に基づいて、従動側部材への位置指令値として求める。制御部は、カム曲線の切替え後は、各制御タイミングで、第２のカム曲線上の値と従動軸の現在位置に基づいて、位置指令値を求める。制御部は、カム曲線の切替え期間は、切替曲線上の値と、従動軸の現在位置に基づいて、動側部材への位置指令値を求める。切替曲線上の値は、第１のカム曲線または従動軸の位置に基づく第１のデータと、第２のカム曲線に基づく第２のデータとを加重平均した値である。
【００７０】
加重平均において、第１のデータの重みを（１−ａ）とし、第２のデータの重みをａとする。
【００７１】
本実施の形態では、重みａは、切替期間の開始タイミングでは０であり、切替期間での時刻の経過とともに単調に増加し、切替期間の終了タイミングでは、１となるものとする。
【００７２】
本実施の形態では、より具体的には、重みａは、図５に示すように、時刻の経過に対して１次関数で変化するものとする。
【００７３】
第１の実施の形態では、第１のデータを、各制御タイミングでの第１のカム曲線上の値とする。また、第２のデータを、各制御タイミングでの第２のカム曲線上の値とする。
【００７４】
図６（ａ）は、第１の実施形態における、第１のカム曲線と、第２のカム曲線と、切替曲線とを表わす図である。
【００７５】
切替曲線の各制御タイミングの値は、各制御タイミングでの第１のカム曲線上の値と各制御タイミングでの第２のカム曲線上の値が０〜１で増加する重みを用いて加重平均された値となる。
【００７６】
図６（ｂ）は、第１の実施形態における、制御部６６で使用するカム曲線、およびそのカム曲線を微分した曲線である速度を表わす曲線を表わす図である。
【００７７】
カム曲線の切替前は、第１のカム曲線が使用され、カム曲線の切替期間中は、切替曲線が使用され、カム曲線の切替後は、第２のカム曲線が使用される。
【００７８】
以上のように、本実施の形態によれば、カム曲線の切替期間において、第１のカム曲線と第２のカム曲線の加重平均で切替曲線が求まるので、容易かつ遅れなしにカム曲線を切替ることができる。
【００７９】
［第２の実施形態］
第２の実施形態では、第１のデータを切替期間の開始タイミングでの第１のカム曲線上の値とする。第２のデータを、第１の実施形態と同様に、各制御タイミングでの第２のカム曲線上の値とする。
【００８０】
本実施の形態では、重みａは、第１の実施形態と同様に、図５に示すように、時刻の経過に対して１次関数で変化するものとする。
【００８１】
図７（ａ）は、第２の実施形態における、第１のカム曲線と、第２のカム曲線と、切替曲線とを表わす図である。
【００８２】
切替曲線の各制御タイミングでの値は、切替期間の開始タイミングでの第１のカム曲線上の値と、各制御タイミングでの第２のカム曲線上の値が０〜１で増加する重みを用いて加重平均された値となる。
【００８３】
図７（ｂ）は、第２の実施形態における、制御部６６で使用するカム曲線、およびそのカム曲線を微分した曲線である速度を表わす曲線を表わす図である。
【００８４】
カム曲線の切替前は、第１のカム曲線が使用され、カム曲線の切替期間中は、切替曲線が使用され、カム曲線の切替後は、第２のカム曲線が使用される。
【００８５】
以上のように、本実施の形態によれば、カム曲線の切替期間において、切替期間の開始タイミングでの第１のカム曲線上の値と第２のカム曲線の加重平均で切替曲線が求まるので、容易かつ遅れなしにカム曲線を切替ることができる。
【００８６】
［第２の実施形態の変形例１］
本変形例では、第１のデータを、第１の実施形態と同様に、各制御タイミングでの第１のカム曲線上の値とする。また、第２のデータを、切替期間の終了タイミングでの第２のカム曲線上の値とする。
【００８７】
以上のように、本実施の形態によれば、カム曲線の切替期間において、第１のカム曲線と切替期間の終了タイミングでの第２のカム曲線上の値の加重平均で切替曲線が求まるので、容易かつ遅れなしにカム曲線を切替ることができる。
【００８８】
［第３の実施形態］
第３の実施形態では、第１のデータを、各制御タイミングでの従動軸の位置とする。従動軸の位置は、検出部６５が、従動軸用のエンコーダ６８からのパルスのカウント値に基づいて算出された値が用いられる。
【００８９】
また、第２のデータを、第１の実施形態と同様に、各制御タイミングでの第２のカム曲線上の値とする。
【００９０】
図８（ａ）は、第３の実施形態における、第１のカム曲線と、第２のカム曲線と、切替曲線とを表わす図である。
【００９１】
切替曲線の各制御タイミングでの値は、各制御タイミングでの従動軸の位置と、各制御タイミングでの第２のカム曲線上の値が０〜１で増加する重みを用いて加重平均された値となる。
【００９２】
図８（ｂ）は、第３の実施形態における、制御部６６で使用するカム曲線、およびそのカム曲線を微分した曲線である速度を表わす曲線を表わす図である。
【００９３】
カム曲線の切替前は、第１のカム曲線が使用され、カム曲線の切替期間中は、切替曲線が使用され、カム曲線の切替後は、第２のカム曲線が使用される。
【００９４】
以上のように、本実施の形態によれば、カム曲線の切替期間において、従動軸の現在位置と第２のカム曲線の加重平均で切替曲線が求まるので、容易かつ遅れなしにカム曲線を切替ることができる。
【００９５】
［第３の実施形態の変形例１］
本変形例では、第１のデータを、切替期間の開始タイミングでの従動軸の位置とする。また、第２のデータを、第１の実施形態と同様に、各制御タイミングでの第２のカム曲線上の値とする。
【００９６】
以上のように、本実施の形態によれば、カム曲線の切替期間において、切替期間の開始タイミングでの従動軸の位置と第２のカム曲線の加重平均で切替曲線が求まるので、容易かつ遅れなしにカム曲線を切替ることができる。
【００９７】
本発明は、上記の実施形態に限定されるものではなく、たとえば以下のような変形例も含む。
【００９８】
［変形例１］
重みａを、時刻に対してｎ次関数で変化するものとしてもよい。ただし、ｎは正の実数である。ｎが１の場合には、第１の実施形態と同様に、重みａは、直線で変化する関数となる。ｎが１でない場合には、重みａは、曲線で変化する関数となる。
【００９９】
たとえば、時刻と関係するθを主軸の位相としたときに、ａ（θ）＝（θ／２π）0.5とすることができる。切替期間の開始タイミングをθ＝０とし、切替期間の終了タイミングをθ＝２πとしたときに、ａ（０）＝０、ａ（２π）＝１なる。
【０１００】
［変形例２］
重みａを、時刻対して正弦関数で変化するものとしてもよい。たとえば、θを主軸の位相としたときに、ａ（θ）＝sin（θ／４）とすることができる。切替期間の開始タイミングをθ＝０とし、切替期間の終了タイミングをθ＝２πとしたときに、ａ（０）＝０、ａ（２π）＝１なる。
【０１０１】
［変形例３］
重みａを、時刻対して余弦弦関数で変化するものとしてもよい。たとえば、θを主軸の位相としたときに、ａ（θ）＝cos（θ／４−π／２）とすることができる。切替期間の開始タイミングをθ＝０とし、切替期間の終了タイミングをθ＝２πとしたときに、ａ（０）＝０、ａ（２π）＝１なる。
【０１０２】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１０３】
１  ＰＬＣ、２  フィールドネットワーク、３，６９，７０  サーボモータドライバ、４  サーボモータ、５  ターミナル、６  検出スイッチ、７  リレー、８  ＰＬＣサポート装置、１０  接続ケーブル、１１  システムバス、１２  電源ユニット、１３  ＣＰＵユニット、１５  特殊ユニット、５１  ターミナルバス、５２  通信カプラ、１４，５３  ＩＯユニット、６１  同期制御装置、６４  カム曲線記憶部、６５  検出部、６６  制御部、６７，６８  エンコーダ、１００  マイクロプロセッサ、１０２  チップセット、１０４  メインメモリ、１０６  不揮発性メモリ、１０８  システムタイマ、１１０  コネクタ、１２０  システムバスコントローラ、１２２，１４２  制御回路、１２４  システムバス制御回路、１２６，１４６  バッファメモリ、１３０  システムバスコネクタ、１４０  フィールドネットワークコントローラ、１４４  フィールドネットワーク制御回路、２００  リアルタイムＯＳ、２１０，２２０  システムプログラム、２１２  スケジューラプログラム、２３０  制御プログラム、２３２  シーケンス命令演算プログラム、２３４  モーション演算プログラム、ＳＹＳ  システム。
【図１】
0005879800.tif 000002
【図２】
0005879800.tif 000003
【図３】
0005879800.tif 000004
【図４】
0005879800.tif 000005
【図５】
0005879800.tif 000006
【図６】
0005879800.tif 000007
【図７】
0005879800.tif 000008
【図８】
0005879800.tif 000009