説明

同期制御装置、同期制御方法、同期制御プログラム、および同期制御プログラムを記録したコンピュータ読み取り可能な記録媒体

【課題】従動軸に加わる衝撃を緩和し、かつ同期開始位置で確実に同期制御を開始することができる同期制御装置、同期制御方法、同期制御プログラム、および同期制御プログラムを記録したコンピュータ読み取り可能な記録媒体を提供する。
【解決手段】ユーザ指令部62は、主軸と従動軸とが同期を開始する同期開始位置を指定する。カム曲線作成部64は、カム曲線を作成する。検出部65は、毎制御周期ごとの主軸の位置情報を検出する。制御部66は、同期開始位置までは、カム曲線と主軸の位置情報とに基づいて、制御周期ごとに従動軸に対する速度指令値を算出し、同期開始位置以降は、主軸と従動軸とのギア比に基づいて、制御周期ごとに従動軸に対する速度指令値を算出し、算出した速度指令値で従動軸を制御する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、同期制御装置、同期制御方法、同期制御プログラム、および同期制御プログラムを記録したコンピュータ読み取り可能な記録媒体に関し、特に主軸と従動軸を任意のギヤ比をによって同期動作させる同期制御装置、同期制御方法、同期制御プログラム、および同期制御プログラムを記録したコンピュータ読み取り可能な記録媒体に関する。
【背景技術】
【0002】
プログラマブルロジックコントローラ(Programmable Logic Controller:以下「PL
C」と称す。)は、たとえば、ユーザプログラムを実行する演算ユニット、外部のスイッチやセンサからの信号入力および外部のリレーやアクチュエータへの信号出力を担当するIO(Input Output)ユニットといった複数のユニットで構成される。それらのユニット間で、ユーザプログラム実行サイクルごとに、PLCシステムバスおよび/またはフィールドネットワークを経由してデータの授受をしながら、PLCは制御動作を実行する。
【0003】
機械、設備などの動作の制御としては、モータの運動を制御するためのモーションコントロールが含まれる場合がある。このようなモーション制御の典型例としては、位置決めテーブルやロボットといったメカニカル機構の位置決めを行うようなアプリケーションが想定される。
【0004】
モーションコントローラにおいて、同期動作や同期制御は、主軸と従動軸が何らかの関係を保ちつつ動作する方式のことを意味し、一般的にはカム動作やギヤ動作が含まれる。カム動作とは、主軸の位置(位相)に対応する従動軸の位置(変位)を毎制御周期、カムテーブル中から検索して、従動軸の指令位置を決定する方式である。ギヤ動作とは、主軸の速度にギヤ比を乗算した値を従動軸の指令速度として、従動軸の指令位置を決定する方式である。
【0005】
次に、ギヤ動作について説明する。
従動軸が停止した状態から主軸に同期させるには、従動軸の速度をステップ状に変化させる必要がある。
【0006】
これは、マニュアルトランスミッション方式の自動車において主軸をエンジン、従動軸をタイヤと置き換えて考えた場合に、半クラッチをせずにいきなりギアチェンジした場合に対応する。すなわち、クラッチをつなげたら従動軸(=タイヤ)に無理な力が発生することと同じである。このような従動軸速度が急激に変化することによって従動軸に加わる機械的衝撃を緩和するには、主軸の速度を落とす方法と、同期開始前に従動軸の動作を開始させる方法(以下、「追いつき動作」という)とが考えられる。
【0007】
主軸の速度を落とす方法では、装置のスループット(単位時間に処理できる数)が減ったり、CNC(Computerized Numerically Controlled)では加工精度が落ちるなどの問題がある。そのため、追いつき動作を実現することが重要である。実現例として、たとえば、特許文献1(特許第3452899号公報)には、「追いかけ動作」による実現方法が開示されている。すなわち、特許文献1に記載された動作方式では、予め加減速の直線や曲線を定義しており、従動軸は同期開始位置まで加減速を行い、同期開始位置以降は主軸と従動軸が同期する。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特許第3452899号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
しかしながら、特許文献1(特許第3452899号公報)では、追いかけ動作中は、従動軸が単独で動作している。そのため、追いかけ動作中に主軸の速度が変化した場合には、同期開始位置で同期制御を開始できないという問題がある。
【0010】
これは、特許文献1(特許第3452899号公報)が解決しようとしている課題は「同期開始時の従動軸の機械的衝撃の緩和」であって、追いかけ動作時の主軸の速度変化を考慮していないためである。
【0011】
CNC(Computerized Numerically Controlled)工作機械のように主軸の速度が微小な場合には、追いかけ動作中に主軸と従動軸が同期していなくても、大きな問題とならないかもしれない。しかし、いわゆる汎用モーションコントローラでは、主軸の速度が大きく変化する場合がある。そのような場合には同期開始位置で同期制御を開始できないことになる。
【0012】
それゆえに、本発明の目的は、従動軸に加わる衝撃を緩和し、かつ同期開始位置で確実に同期制御を開始することができる同期制御装置、同期制御方法、同期制御プログラム、および同期制御プログラムを記録したコンピュータ読み取り可能な記録媒体を提供することである。
【課題を解決するための手段】
【0013】
上記課題を解決するために、本発明は、主軸と従動軸との同期制御を制御周期ごとに実行する同期制御装置であって、主軸と従動軸とが同期を開始する同期開始位置を指定する指定部と、カム曲線を作成するカム曲線作成部と、毎制御周期ごとの主軸の位置情報を検出する検出部と、同期開始位置までは、カム曲線と主軸の位置情報とに基づいて、制御周期ごとに従動軸に対する速度指令値を算出し、同期開始位置以降は、主軸と従動軸とのギア比に基づいて、制御周期ごとに従動軸に対する速度指令値を算出する制御部とを備え、制御部は、算出した速度指令値で従動軸を制御する。
【0014】
好ましくは、カム曲線作成部は、同期開始位置までの期間における、指定された目標加速度、目標減速度、および目標速度に基づいて、カム曲線を作成する。
【0015】
また、本発明は、主軸と従動軸との同期制御を制御周期ごとに実行する同期制御方法であって、主軸と従動軸とが同期を開始する同期開始位置を指定するステップと、カム曲線を作成するステップと、毎制御周期ごとの主軸の位置情報を検出するステップと、同期開始位置までは、カム曲線と主軸の位置情報とに基づいて、制御周期ごとに従動軸に対する速度指令値を算出し、同期開始位置以降は、主軸と従動軸とのギア比に基づいて、制御周期ごとに従動軸に対する速度指令値を算出するステップと、算出した速度指令値で従動軸を制御するステップとを備える。
【0016】
また、本発明は、コンピュータに、主軸と従動軸との同期制御を制御周期ごとに実行させる同期制御プログラムであって、主軸と従動軸とが同期を開始する同期開始位置を指定するステップと、カム曲線を作成するステップと、毎制御周期ごとの主軸の位置情報を検出するステップと、同期開始位置までは、カム曲線と主軸の位置情報とに基づいて、制御周期ごとに従動軸に対する速度指令値を算出し、同期開始位置以降は、主軸と従動軸とのギア比に基づいて、制御周期ごとに従動軸に対する速度指令値を算出するステップと、算出した速度指令値で従動軸を制御するステップとを実行させる。
【0017】
また、本発明は、コンピュータに、主軸と従動軸との同期制御を制御周期ごとに実行させる同期制御プログラムを記録したコンピュータ読み取り可能な記録媒体であって、主軸と従動軸とが同期を開始する同期開始位置を指定するステップと、カム曲線を作成するステップと、毎制御周期ごとの主軸の位置情報を検出するステップと、同期開始位置までは、カム曲線と主軸の位置情報とに基づいて、制御周期ごとに従動軸に対する速度指令値を算出し、同期開始位置以降は、主軸と従動軸とのギア比に基づいて、制御周期ごとに従動軸に対する速度指令値を算出するステップと、算出した速度指令値で従動軸を制御するステップとを実行させる。
【発明の効果】
【0018】
本発明によれば、従動軸に加わる衝撃を緩和し、かつ同期開始位置で確実に同期制御を開始することができる。
【図面の簡単な説明】
【0019】
【図1】PLCシステムの概略構成を示す模式図である。
【図2】CPUユニットのハードウェア構成を示す模式図である。
【図3】CPUユニットで実行されるソフトウェア構成を示す模式図である。
【図4】同期制御装置の構成を表わす図である。
【図5】カム曲線の例を表わす図である。
【図6】第1の実施形態の同期制御の動作手順を表わすフローチャートである。
【図7】第2の実施形態の同期制御の動作手順を表わすフローチャートである。
【図8】カム曲線の例を表わす図である。
【発明を実施するための形態】
【0020】
以下、本発明の実施形態について図面を参照して説明する。
[第1の実施形態]
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
【0021】
<A.システム構成>
本実施の形態に係るPLC(Programmable Logic Controller)は、モータの運動を制御するためのモーション制御機能を有する。まず、図1を参照して、本実施の形態に係るPLC1のシステム構成について説明する。
【0022】
図1は、本発明の実施の形態に係るPLCシステムの概略構成を示す模式図である。図1を参照して、PLCシステムSYSは、PLC1と、PLC1とフィールドネットワーク2を介して接続されるサーボモータドライバ3およびリモートIOターミナル5と、フィールド機器である検出スイッチ6およびリレー7とを含む。また、PLC1には、接続ケーブル10などを介してPLCサポート装置8が接続される。
【0023】
PLC1は、主たる演算処理を実行するCPUユニット13と、1つ以上のIOユニット14と、特殊ユニット15とを含む。これらのユニットは、PLCシステムバス11を介して、データを互いに遣り取りできるように構成される。また、これらのユニットには、電源ユニット12によって適切な電圧の電源が供給される。
【0024】
CPUユニット13の詳細については、図2を参照して後述する。
IOユニット14は、一般的な入出力処理に関するユニットであり、オン/オフといった2値化されたデータの入出力を司る。すなわち、IOユニット14は、検出スイッチ6などのセンサが何らかの対象物を検出している状態(オン)および何らの対象物も検出していない状態(オフ)のいずれであるかという情報を収集する。また、IOユニット14は、リレー7やアクチュエータといった出力先に対して、活性化するための指令(オン)および不活性化するための指令(オフ)のいずれかを出力する。
【0025】
特殊ユニット15は、アナログデータの入出力、温度制御、特定の通信方式による通信といった、IOユニット14ではサポートしない機能を有する。
【0026】
フィールドネットワーク2は、CPUユニット13と遣り取りされる各種データを伝送する。フィールドネットワーク2としては、典型的には、各種の産業用イーサネット(登録商標)を用いることができる。
【0027】
なお、図1には、PLCシステムバス11およびフィールドネットワーク2の両方を有するPLCシステムSYSを例示するが、一方のみを搭載するシステム構成を採用することもできる。たとえば、フィールドネットワーク2ですべてのユニットを接続してもよい。あるいは、フィールドネットワーク2を使用せずに、サーボモータドライバ3をPLCシステムバス11に直接接続してもよい。さらに、フィールドネットワーク2の通信ユニットをPLCシステムバス11に接続し、CPUユニット13から当該通信ユニット経由で、フィールドネットワーク2に接続された機器との間の通信を行なうようにしてもよい。
【0028】
サーボモータドライバ3は、フィールドネットワーク2を介してCPUユニット13と接続されるとともに、CPUユニット13からの指令値に従ってサーボモータ4を駆動する。より具体的には、サーボモータドライバ3は、PLC1から一定周期で、位置指令値、速度指令値、トルク指令値といった指令値を受ける。また、サーボモータドライバ3は、サーボモータ4の軸に接続されている位置センサ(ロータリーエンコーダ)やトルクセンサといった検出器から、位置、速度(典型的には、今回位置と前回位置との差から算出される)、トルクといったサーボモータ4の動作に係る実測値を取得する。そして、サーボモータドライバ3は、CPUユニット13からの指令値を目標値に設定し、実測値をフィードバック値として、フィードバック制御を行なう。すなわち、サーボモータドライバ3は、実測値が目標値に近づくようにサーボモータ4を駆動するための電流を調整する。
なお、サーボモータドライバ3は、サーボモータアンプと称されることもある。
【0029】
また、図1には、サーボモータ4とサーボモータドライバ3とを組み合わせたシステム例を示すが、その他の構成、たとえば、パルスモータとパルスモータドライバとを組み合わせたシステムを採用することもできる。
【0030】
図1に示すPLCシステムSYSのフィールドネットワーク2には、さらに、リモートIOターミナル5が接続されている。リモートIOターミナル5は、基本的には、IOユニット14と同様に、一般的な入出力処理に関する処理を行なう。より具体的には、リモートIOターミナル5は、フィールドネットワーク2でのデータ伝送に係る処理を行なうための通信カプラ52と、1つ以上のIOユニット53とを含む。これらのユニットは、リモートIOターミナルバス51を介して、データを互いに遣り取りできるように構成される。
【0031】
<B.CPUユニットのハードウェア構成>
次に、図2を参照して、CPUユニット13のハードウェア構成について説明する。図2は、本発明の実施の形態に係るCPUユニット13のハードウェア構成を示す模式図である。
【0032】
図2を参照して、CPUユニット13は、マイクロプロセッサ100と、チップセット102と、メインメモリ104と、不揮発性メモリ106と、システムタイマ108と、PLCシステムバスコントローラ120と、フィールドネットワークコントローラ140と、USBコネクタ110とを含む。チップセット102と他のコンポーネントとの間は、各種のバスを介してそれぞれ結合されている。
【0033】
マイクロプロセッサ100およびチップセット102は、典型的には、汎用的なコンピュータアーキテクチャに準じて構成される。すなわち、マイクロプロセッサ100は、チップセット102から内部クロックに従って順次供給される命令コードを解釈して実行する。チップセット102は、接続されている各種コンポーネントとの間で内部的なデータを遣り取りするとともに、マイクロプロセッサ100に必要な命令コードを生成する。さらに、チップセット102は、マイクロプロセッサ100での演算処理の実行の結果得られたデータなどをキャッシュする機能を有する。
【0034】
CPUユニット13は、記憶手段として、メインメモリ104および不揮発性メモリ106を有する。
【0035】
メインメモリ104は、揮発性の記憶領域(RAM)であり、CPUユニット13への電源投入後にマイクロプロセッサ100で実行されるべき各種プログラムを保持する。また、メインメモリ104は、マイクロプロセッサ100による各種プログラムの実行時の作業用メモリとしても使用される。このようなメインメモリ104としては、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)といったデバイスが用いられる。
【0036】
一方、不揮発性メモリ106は、リアルタイムOS(Operating System)、PLC1のシステムプログラム、ユーザプログラム、モーション演算プログラム、システム設定パラメータといったデータを不揮発的に保持する。これらのプログラムやデータは、必要に応じて、マイクロプロセッサ100がアクセスできるようにメインメモリ104にコピーされる。このような不揮発性メモリ106としては、フラッシュメモリのような半導体メモリを用いることができる。あるいは、ハードディスクドライブのような磁気記録媒体や、DVD−RAM(Digital Versatile Disk Random Access Memory)のような光学記録媒体などを用いることもできる。
【0037】
システムタイマ108は、一定周期ごとに割り込み信号を発生してマイクロプロセッサ100に提供する。典型的には、ハードウェアの仕様によって、複数の異なる周期でそれぞれ割り込み信号を発生するように構成されるが、OS(Operating System)やBIOS(Basic Input Output System)などによって、任意の周期で割り込み信号を発生するように設定することもできる。このシステムタイマ108が発生する割り込み信号を利用して、後述するようなモーション制御サイクルごとの制御動作が実現される。
【0038】
CPUユニット13は、通信回路として、PLCシステムバスコントローラ120およびフィールドネットワークコントローラ140を有する。
【0039】
PLCシステムバスコントローラ120は、PLCシステムバス11を介したデータの遣り取りを制御する。より具体的には、PLCシステムバスコントローラ120は、DMA(Dynamic Memory Access)制御回路122と、PLCシステムバス制御回路124と、バッファメモリ126とを含む。なお、PLCシステムバスコントローラ120は、PLCシステムバスコネクタ130を介してPLCシステムバス11と内部的に接続される。
【0040】
バッファメモリ126は、PLCシステムバス11を介して他のユニットへ出力されるデータ(以下「出力データ」とも称す。)の送信バッファ、および、PLCシステムバス11を介して他のユニットから入力されるデータ(以下「入力データ」とも称す。)の受信バッファとして機能する。なお、マイクロプロセッサ100による演算処理によって作成された出力データは、原始的にはメインメモリ104に格納される。そして、特定のユニットへ転送されるべき出力データは、メインメモリ104から読み出されて、バッファメモリ126に一次的に保持される。また、他のユニットから転送された入力データは、バッファメモリ126に一次的に保持された後、メインメモリ104に移される。
【0041】
DMA制御回路122は、メインメモリ104からバッファメモリ126への出力データの転送、および、バッファメモリ126からメインメモリ104への入力データの転送を行なう。
【0042】
PLCシステムバス制御回路124は、PLCシステムバス11に接続される他のユニットとの間で、バッファメモリ126の出力データを送信する処理および入力データを受信してバッファメモリ126に格納する処理を行なう。典型的には、PLCシステムバス制御回路124は、PLCシステムバス11における物理層およびデータリンク層の機能を提供する。
【0043】
フィールドネットワークコントローラ140は、フィールドネットワーク2を介したデータの遣り取りを制御する。すなわち、フィールドネットワークコントローラ140は、用いられるフィールドネットワーク2の規格に従い、出力データの送信および入力データの受信を制御する。このように、本実施の形態に係るCPUユニット13は、フィールドネットワーク2を介して、駆動装置であるサーボモータドライバ3と接続される。
【0044】
DMA制御回路142は、メインメモリ104からバッファメモリ146への出力データの転送、および、バッファメモリ146からメインメモリ104への入力データの転送を行なう。
【0045】
フィールドネットワーク制御回路144は、フィールドネットワーク2に接続される他の装置との間で、バッファメモリ146の出力データを送信する処理および入力データを受信してバッファメモリ146に格納する処理を行なう。典型的には、フィールドネットワーク制御回路144は、フィールドネットワーク2における物理層およびデータリンク層の機能を提供する。
【0046】
USBコネクタ110は、PLCサポート装置8とCPUユニット13とを接続するためのインターフェイスである。典型的には、PLCサポート装置8から転送される、CPUユニット13のマイクロプロセッサ100で実行可能なプログラムなどは、USBコネクタ110を介してPLC1に取込まれる。
【0047】
<C.CPUユニットのソフトウェア構成>
次に、図3を参照して、本実施の形態に係る各種機能を提供するためのソフトウェア群について説明する。これらのソフトウェアに含まれる命令コードは、適切なタイミングで読み出され、CPUユニット13のマイクロプロセッサ100によって実行される。
【0048】
図3は、本発明の実施の形態に係るCPUユニット13で実行されるソフトウェア構成を示す模式図である。図3を参照して、CPUユニット13で実行されるソフトウェアとしては、リアルタイムOS200と、システムプログラム210と、ユーザプログラム236との3階層になっている。
【0049】
リアルタイムOS200は、CPUユニット13のコンピュータアーキテクチャに応じて設計されており、マイクロプロセッサ100がシステムプログラム210およびユーザプログラム236を実行するための基本的な実行環境を提供する。このリアルタイムOSは、典型的には、PLCのメーカーあるいは専門のソフトウェア会社などによって提供される。
【0050】
システムプログラム210は、PLC1としての機能を提供するためのソフトウェア群である。具体的には、システムプログラム210は、スケジューラプログラム212と、出力処理プログラム214と、入力処理プログラム216と、シーケンス命令演算プログラム232と、モーション演算プログラム234と、その他のシステムプログラム220とを含む。なお、一般には出力処理プログラム214および入力処理プログラム216は、連続的(一体として)に実行されるので、これらのプログラムを、IO処理プログラム218と総称する場合もある。
【0051】
ユーザプログラム236は、ユーザにおける制御目的に応じて作成される。すなわち、PLCシステムSYSを用いて制御する対象のライン(プロセス)などに応じて、任意に設計されるプログラムである。
【0052】
後述するように、ユーザプログラム236は、シーケンス命令演算プログラム232およびモーション演算プログラム234と協働して、ユーザにおける制御目的を実現する。すなわち、ユーザプログラム236は、シーケンス命令演算プログラム232およびモーション演算プログラム234によって提供される命令、関数、機能モジュールなどを利用することで、プログラムされた動作を実現する。そのため、ユーザプログラム236、シーケンス命令演算プログラム232、およびモーション演算プログラム234を、制御プログラム230と総称する場合もある。
【0053】
このように、CPUユニット13のマイクロプロセッサ100は、記憶手段に格納されたシステムプログラム210およびユーザプログラム236を実行する。
【0054】
以下、各プログラムについてより詳細に説明する。
ユーザプログラム236は、上述したように、ユーザにおける制御目的(たとえば、対象のラインやプロセス)に応じて作成される。ユーザプログラム236は、典型的には、CPUユニット13のマイクロプロセッサ100で実行可能なオブジェクトプログラム形式になっている。このユーザプログラム236は、PLCサポート装置8などにおいて、ラダー言語などによって記述されたソースプログラムがコンパイルされることで生成される。そして、生成されたオブジェクトプログラム形式のユーザプログラム236は、PLCサポート装置8から接続ケーブル10を介してCPUユニット13へ転送され、不揮発性メモリ106などに格納される。
【0055】
スケジューラプログラム212は、出力処理プログラム214、入力処理プログラム216、および制御プログラム230について、各実行サイクルでの処理開始および処理中断後の処理再開を制御する。より具体的には、スケジューラプログラム212は、ユーザプログラム236およびモーション演算プログラム234の実行を制御する。
【0056】
出力処理プログラム214は、ユーザプログラム236(制御プログラム230)の実行によって生成された出力データを、PLCシステムバスコントローラ120および/またはフィールドネットワークコントローラ140へ転送するのに適した形式に再配置する。PLCシステムバスコントローラ120またはフィールドネットワークコントローラ140が、マイクロプロセッサ100からの、送信を実行するための指示を必要とする場合は、出力処理プログラム214がそのような指示を発行する。
【0057】
入力処理プログラム216は、PLCシステムバスコントローラ120および/またはフィールドネットワークコントローラ140によって受信された入力データを、制御プログラム230が使用するのに適した形式に再配置する。
【0058】
シーケンス命令演算プログラム232は、ユーザプログラム236で使用されるある種のシーケンス命令が実行されるときに呼び出されて、その命令の内容を実現するために実行されるプログラムである。
【0059】
モーション演算プログラム234は、ユーザプログラム236による指示に従って実行され、サーボモータドライバ3やパルスモータドライバといったなモータドライバに対して出力する指令値を算出するプログラムである。
【0060】
その他のシステムプログラム220は、図3に個別に示したプログラム以外の、PLC1の各種機能を実現するためのプログラム群をまとめて示したものである。その他のシステムプログラム220は、モーション制御サイクルの周期を設定するプログラム222を含む。モーション制御サイクルの周期は、制御目的に応じて適宜設定することができる。モーション制御サイクルの周期を設定するプログラム222は、システムタイマ108から指定されたモーション制御サイクルの周期で割り込み信号が発生されるように、システムタイマ108を設定する。CPUユニット13への電源投入時に、モーション制御サイクルの周期を設定するプログラム222が実行されることで、モーション制御サイクルの周期を指定する情報が不揮発性メモリ106から読み出され、読み出された情報に従ってシステムタイマ108が設定される。
【0061】
リアルタイムOS200は、複数のプログラムを時間の経過に従い切り換えて実行するための環境を提供する。
【0062】
<D.モーション制御の概略>
次に、上述したユーザプログラム236に含まれる典型的な構成について説明する。ユーザプログラム236は、モータの運動に関する制御開始の条件が成立するか否かを周期的に判断させる命令を含む。たとえば、モータの駆動力によって何らかの処置がなされるワークが所定の処置位置まで搬送されたか否かを判断するようなロジックである。そして、ユーザプログラム236は、この制御開始の条件が成立したと判断されたことに応答して、モーション制御を開始させる命令をさらに含む。このモーション制御の開始に伴って、モーション命令の実行が指示される。すると、指示されたモーション命令に対応するモーション演算プログラム234が起動し、まず、モーション演算プログラム234の実行ごとにモータに対する指令値を算出していくために必要な初期処理が実行される。また、初期処理と同じモーション制御サイクルにおいて、第1サイクルでの指令値が算出される。したがって、初期処理および第1番目の指令値算出処理が、起動したモーション演算プログラム234が第1番目の実行においてなすべき処理となる。以降、各サイクルでの指令値が順次算出される。
【0063】
<E.同期制御の概略>
図4は、同期制御装置の構成を表わす図である。
【0064】
図4に示すように、同期制御装置61は、ユーザ指令部62と、スケジュール部63と、カム曲線作成部64と、検出部65と、制御部66とを備える。これらの構成要素は、制御プログラム230、モーション制御サイクルの周期を設定するプログラム222、およびスケジューラプログラム212によって実現される。
【0065】
スケジュール部63は、制御周期のタイミング、ユーザ指令部63、および同期処理全体のタイミングを制御する。スケジュール部63は、同期開始時点よりも早いタイミングで従動軸に対して主軸を追いかける動作(以下、追いかけ動作)を実行させる。
【0066】
ユーザ指令部62は、ユーザが指定した同期開始主軸位置SPM、同期開始従動軸位置SPD、ギヤ比GR、追いかけ動作中の目標速度VTD、目標加速度ATD、目標減速度BTDの指令値を入力し、スケジュール部63の指令タイミングでカム曲線作成部64および制御部66の処理に反映させる。同期開始主軸位置SPMおよび同期開始従動軸位置SPDは、従動軸と主軸が同期する時点での主軸の位置、従動軸の位置を表わす。また、ユーザ指令部62は、同期制御の開始を指示する。
【0067】
検出部65は、主軸用のエンコーダ67および従動軸用のエンコーダ68からのパルスのカウント値に基づいて、主軸の位置、従動軸の位置、主軸の速度、従動軸の速度を検出する。
【0068】
カム曲線作成部64は、ギヤ同期開始時の速度として、追いつき動作開始時の主軸の速度VM(Ts)にギヤ比GRを掛けた速度を計算する。カム曲線作成部64は、目標速度VTD、目標加速度ATD、目標減速度BTD、追いつき動作開始時の従動軸の速度VD(Ts)、および算出したギヤ同期開始時の速度を用いて、図5に示すようなカム曲線を作成する。
【0069】
本実施の形態において、カム曲線とは時間変位に対する従動軸の速度を表わすものとする。
【0070】
制御部66は、追いかけ動作時には、カム曲線と主軸の位置情報(具体的には、追いかけ動作開始からの移動量)とに基づいて、制御周期ごとに、従動軸に対する速度指令値および位置指令値を算出して、従動軸用のサーボモータドライバ70へ出力する。制御部66は、追いかけ動作終了後の同期制御時には、主軸の速度とギヤ比とに基づいて、制御周期ごとに、従動軸に対する速度指令値および位置指令値を算出して、従動軸用のサーボモータドライバ70へ出力する。
【0071】
(同期制御の動作)
図6は、第1の実施形態の同期制御の動作手順を表わすフローチャートである。
【0072】
まず、ユーザ指令部62は、ユーザによって指定された同期開始主軸位置SPM、同期開始従動軸位置SPD、ギヤ比GR、目標速度VTD、目標加速度ATD、目標減速度BTDの指令値を入力する(ステップS101)。
【0073】
次に、スケジュール部63は、従動軸の追いかけ動作の開始を指示する(ステップS102)。
【0074】
検出部65は、開始を指示された時点Tsにおいて、主軸用のエンコーダ67からのパルスのカウント値(位置)を取得して主軸の位置PM(Ts)とし、取得したカウント値の時間微分(時間差分)から主軸の速度VM(Ts)を算出する。また、検出部65は、開始を指示された時点Tsにおいて、従動軸用のエンコーダ68からのパルスのカウント値(位置)を取得して従動軸の位置PD(Ts)とし、取得したカウント値の時間微分(時間差分)から従動軸の速度VD(Ts)を算出する(ステップS103)。
【0075】
次に、カム曲線作成部64は、目標速度VTD、目標加速度ATD、目標減速度BTD、追いつき動作開始時の従動軸の速度VD(Ts)、追いつき動作開始時の主軸の速度VM(Ts)にギヤ比GRを掛けた速度を用いて、図5に示すようなカム曲線(速度プロファイル)を作成する(ステップS104)。
【0076】
検出部65は、主軸用のエンコーダ67からのパルスのカウント値(位置)を取得して主軸の位置PM(i)とする。また、検出部65は、従動軸用のエンコーダ68からのパルスのカウント値(位置)を取得して従動軸の位置PD(i)とする(ステップS105)。
【0077】
スケジュール部63は、検出した主軸の位置PM(i)が同期開始主軸位置SPMと同じであり、かつ検出した従動軸の位置PD(i)が同期開始従動軸位置SPDと同じである条件を満足しない場合には(ステップS106でYES)、以下のステップによって追いかけ動作を続行する。
【0078】
制御部66は、カム曲線と、追いかけ動作開始からの主軸の移動量(PM(i)−PM(Ts))に基づいて、現在のモーション制御周期での従動軸の速度指令位置および位置指令値を算出する。具体的には、制御部66は、主軸の移動量がPのときに、カム曲線を積分した値がPとなるときの従動軸の速度を従動軸の速度指令値として算出する。さらに、制御部66は、従動軸の速度指令値を積分して、積分した値を従動軸の位置指令値とする(ステップS107)。
【0079】
制御部66は、従動軸用のサーボモータドライバ70に速度指令値および位置指令値を出力する(ステップS108)。
【0080】
スケジュール部63は、次のモーション制御サイクルが到着するまで待機するように指示する。次のモーション制御サイクルが到着したら、iをインクリメントする(ステップS109)。
【0081】
一方、検出した主軸の位置PM(i)が同期開始主軸位置SPMと同じであり、かつ検出した従動軸の位置PD(i)が同期開始従動軸位置SPDと同じである条件を満足する場合には(ステップS106でYES)、スケジュール部63は、追いかけ動作を終了し、以下のステップによってギヤ動作を実行させる。
【0082】
検出部65は、主軸用のエンコーダ67からのパルスのカウント値(位置)を取得し、取得したカウント値の時間微分(時間差分)から主軸の速度VM(i)を算出する(ステップS110)。
【0083】
制御部66は、検出した主軸の速度VM(i)とギヤ比GRとを乗算することによって、従動軸の速度指令値を算出する。さらに、制御部66は、従動軸の速度指令値を積分して、積分した値を従動軸の位置指令値とする(ステップS111)。
【0084】
制御部66は、従動軸用のサーボモータドライバ70に速度指令値および位置指令値を出力する(ステップS112)。
【0085】
スケジュール部63は、次のモーション制御サイクルが到着するまで待機するように指示する(ステップS113)。
【0086】
スケジュール部63は、ギア動作終了の終了条件が成立するまで(ステップS114でYES)、ステップS110〜S113のギヤ動作を続行させる。
【0087】
以上のように、本実施の形態では、「追いつき動作」をカム曲線を用いた、同期動作で実現し、同期開始位置以降は、ギヤ比を用いた同期動作を行なうので、従動軸の「追いかけ動作」中に、主軸の速度が変化しても、主軸の速度に同期して従動軸の速度が変化するので、同期開始位置での同期開始が可能となる。「同期開始主軸位置」「同期開始従動軸位置」で確実に同期状態に遷移できる(ギヤ動作を開始する)ことを保証する。
【0088】
[第2の実施形態]
第2の実施形態では、主軸の速度が追いかけ動作時から変化したときに、主軸と従動軸が指定された位置で同期をとるための方法をより具体化した方法について説明する。
【0089】
図7は、第2の実施形態の同期制御の動作手順を表わすフローチャートである。
まず、ユーザ指令部62は、ユーザによって指定された同期開始主軸位置SPM、同期開始従動軸位置SPD、ギヤ比GR、目標速度VTD、目標加速度ATD、目標減速度BTDの指令値を入力する(ステップS101)。
【0090】
次に、スケジュール部63は、従動軸の追いかけ動作の開始を指示する(ステップS102)。
【0091】
検出部65は、開始を指示された時点Tsにおいて、主軸用のエンコーダ67からのパルスのカウント値(位置)を取得して主軸の位置PM(Ts)とし、取得したカウント値の時間微分(時間差分)から主軸の速度VM(Ts)を算出する。また、検出部65は、開始を指示された時点Tsにおいて、従動軸用のエンコーダ68からのパルスのカウント値(位置)を取得して従動軸の位置PD(Ts)とし、取得したカウント値の時間微分(時間差分)から従動軸の速度VD(Ts)を算出する。
【0092】
制御部66は、同期開始主軸位置SPMと主軸の位置PM(Ts)とから、同期開始までの主軸の移動量SSPMを算出し、同期開始従動軸位置SPDと従動軸の位置PD(Ts)とから、同期開始までの従動軸の移動量SSPDを算出する。制御部66は、従動軸の移動量SSPDを主軸の移動量SSPMで除算して、移動量比PRを算出する。
【0093】
さらに、制御部66は、主軸の速度VM(Ts)と、同期開始までの主軸の移動量SSPMとから同期開始時点Teを特定する。さらに、制御部66は、同期開始時点Teまでに従動軸が移動量SSPDだけ移動するように、目標速度VTDを維持しつつ、目標加速度ATDおよび目標減速度BTDの値をそれぞれATD′およびBTD′に修正する(ステップS203)。
【0094】
次に、カム曲線作成部64は、目標速度VTD、目標加速度ATD′、目標減速度BTD′、追いつき動作開始時の従動軸の速度VD(Ts)、追いつき動作開始時の主軸の速度VM(Ts)にギヤ比GRを掛けた速度を用いて、図8に示すようなカム曲線(速度プロファイル)を作成する(ステップS204)。
【0095】
検出部65は、主軸用のエンコーダ67からのパルスのカウント値(位置)を取得して主軸の位置PM(i)とする。また、検出部65は、従動軸用のエンコーダ68からのパルスのカウント値(位置)を取得して従動軸の位置PD(i)とする(ステップS105)。
【0096】
スケジュール部63は、検出した主軸の位置PM(i)が同期開始主軸位置SPMと同じであり、かつ検出した従動軸の位置PD(i)が同期開始従動軸位置SPDと同じである条件を満足しない場合には(ステップS106でYES)、以下のステップによって追いかけ動作を続行する。
【0097】
制御部66は、カム曲線と、追いかけ動作開始からの主軸の移動量P(PM(i)−PM(Ts))に基づいて、現在のモーション制御周期での従動軸の速度指令位置および位置指令値を算出する。具体的には、制御部66は、カム曲線を積分した値がP×PRとなるときの従動軸の速度を従動軸の速度指令値として算出する。さらに、制御部66は、従動軸の速度指令値を積分して、積分した値を従動軸の位置指令値とする(ステップS207)。
【0098】
制御部66は、従動軸用のサーボモータドライバ70に速度指令値および位置指令値を出力する(ステップS108)。
【0099】
スケジュール部63は、次のモーション制御サイクルが到着するまで待機するように指示する。次のモーション制御サイクルが到着したら、iをインクリメントする(ステップS109)。
【0100】
一方、検出した主軸の位置PM(i)が同期開始主軸位置SPMと同じであり、かつ検出した従動軸の位置PD(i)が同期開始従動軸位置SPDと同じである条件を満足する場合には(ステップS106でYES)、スケジュール部63は、追いかけ動作を終了し、以下のステップによってギヤ動作を実行させる。
【0101】
検出部65は、主軸用のエンコーダ67からのパルスのカウント値(位置)を取得し、取得したカウント値の時間微分(時間差分)から主軸の速度VM(i)を算出する(ステップS110)。
【0102】
制御部66は、検出した主軸の速度VM(i)とギヤ比GRとを乗算することによって、従動軸の速度指令値を算出する。さらに、制御部66は、従動軸の速度指令値を積分して、積分した値を従動軸の位置指令値とする(ステップS111)。
【0103】
制御部66は、従動軸用のサーボモータドライバ70に速度指令値および位置指令値を出力する(ステップS112)。
【0104】
スケジュール部63は、次のモーション制御サイクルが到着するまで待機するように指示する(ステップS113)。
【0105】
スケジュール部63は、ギア動作終了の終了条件が成立するまで(ステップS114でYES)、ステップS110〜S113のギヤ動作を続行させる。
【0106】
以上の動作によって、主軸の速度が追いかけ動作開始時の速度VM(Ts)から変化しないときには、時点Teにおいて主軸の移動量がSSPMとなり、従動軸の移動量がSSPDとなり、時点Teの後から同期が開始される。
【0107】
一方、主軸の速度が追いかけ動作開始時の速度VM(Ts)から早くなる方に変化したときには、時点Teよりも前の時点Taにおいて主軸の移動量がSSPMとなり、従動軸の移動量がSSPDとなり、時点Taの後から同期が開始される。
【0108】
また、主軸の速度が追いかけ動作開始時の速度VM(Ts)から遅くなる方に変化したときには、時点Teよりも後の時点Tbにおいて主軸の移動量がSSPMとなり、従動軸の移動量がSSPDとなり、時点Tbの後から同期が開始される。
【0109】
本発明は、上記の実施形態に限定されるものではなく、たとえば以下のような変形例も含む。
【0110】
[変形例1]
なお、本実施の形態では、図に示すように、カム曲線は、直線で加速し、その後定速となり、その後減速するものであったが、これに限定するものではない。カム曲線として、たとえば、一般的に知られているサイクロイド曲線やトラペクロイド曲線などを用いてもよい。カム曲線の文献例としては 「Cam Design and Manufacturing Handbook Second Edition" (Robert L.Norton著 INDUSTRIAL PRESS INC 2009)」や、「機械技術者のための実用カム機構学」(西岡雅夫著 日刊工業新聞社 2003などがある)。また、カム曲線を多項式で表現することとしてもよい。
【0111】
[変形例2]
主軸の回転方向と逆方向に同期開始従動軸位置が存在した場合には、追いかけ動作は前述のカム曲線に従って主軸と逆方向に動作し、同期開始後は主軸の回転方向に動作する。
【0112】
[変形例3]
追いかけ動作中に主軸で異常が発生して停止した場合や、主軸に対して停止指令が出された場合であっても、従動軸は前述のカム曲線に従って同期関係を継続した状態を保つ。
【0113】
[変形例4]
同期開始主軸位置や同期開始従動軸位置が位置カウンタ1周分を越える場合に、ユーザプログラムに対して異常を発報するか、多回転とするかをユーザが指定できるようにしてもよい。
【0114】
たとえば、位置カウンタが0〜360degの場合に、ユーザプログラムから同期開始主軸位置として720degが指定された場合に、ユーザプログラムに対して異常を通知するか、2回転後の0degから同期を開始するかを指定できるようにしてもよい。
【0115】
[変形例5]
追いかけ動作中に、図5において、主軸の速度が大きく変化し、予め指定された閾値を越えた場合には、その時点での主軸の速度をVM(Ts1)としたときに、同期開始位置での従動軸の目標速度をVM(Ts)×GRからVM(Ts1)×GRに変えて、カム曲線の演算をやり直すこととしてもよい。
【0116】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0117】
1 PLC、2 フィールドネットワーク、3,69,70 サーボモータドライバ、4 サーボモータ、5 ターミナル、6 検出スイッチ、7 リレー、8 PLCサポート装置、10 接続ケーブル、11 システムバス、12 電源ユニット、13,14,53 IOユニット、15 特殊ユニット、51 ターミナルバス、52 通信カプラ、53 IOユニット、61 同期制御装置、62 ユーザ指令部、63 スケジュール部、64 カム曲線作成部、65 検出部、66 制御部、67,68 エンコーダ、100 マイクロプロセッサ、102 チップセット、104 メインメモリ、106 不揮発性メモリ、108 システムタイマ、110 コネクタ、120 システムバスコントローラ、122,142 制御回路、124 システムバス制御回路、126,146 バッファメモリ、130 システムバスコネクタ、140 フィールドネットワークコントローラ、144 フィールドネットワーク制御回路、200 リアルタイムOS、210,220 システムプログラム、212 スケジューラプログラム、230 制御プログラム、232 シーケンス命令演算プログラム、234 モーション演算プログラム、SYS システム。

【特許請求の範囲】
【請求項1】
主軸と従動軸との同期制御を制御周期ごとに実行する同期制御装置であって、
主軸と従動軸とが同期を開始する同期開始位置を指定する指定部と、
カム曲線を作成するカム曲線作成部と、
毎制御周期ごとの前記主軸の位置情報を検出する検出部と、
前記同期開始位置までは、前記カム曲線と前記主軸の位置情報とに基づいて、制御周期ごとに従動軸に対する速度指令値を算出し、前記同期開始位置以降は、主軸と従動軸とのギア比に基づいて、制御周期ごとに従動軸に対する速度指令値を算出する制御部とを備え、
前記制御部は、前記算出した速度指令値で前記従動軸を制御する、同期制御装置。
【請求項2】
前記カム曲線作成部は、前記同期開始位置までの期間における、指定された目標加速度、目標減速度、および目標速度に基づいて、前記カム曲線を作成する、請求項1に記載の同期制御装置。
【請求項3】
主軸と従動軸との同期制御を制御周期ごとに実行する同期制御方法であって、
主軸と従動軸とが同期を開始する同期開始位置を指定するステップと、
カム曲線を作成するステップと、
毎制御周期ごとの前記主軸の位置情報を検出するステップと、
前記同期開始位置までは、前記カム曲線と前記主軸の位置情報とに基づいて、制御周期ごとに従動軸に対する速度指令値を算出し、前記同期開始位置以降は、主軸と従動軸とのギア比に基づいて、制御周期ごとに従動軸に対する速度指令値を算出するステップと、
前記算出した速度指令値で前記従動軸を制御するステップとを備える、同期制御方法。
【請求項4】
コンピュータに、主軸と従動軸との同期制御を制御周期ごとに実行させる同期制御プログラムであって、
主軸と従動軸とが同期を開始する同期開始位置を指定するステップと、
カム曲線を作成するステップと、
毎制御周期ごとの前記主軸の位置情報を検出するステップと、
前記同期開始位置までは、前記カム曲線と前記主軸の位置情報とに基づいて、制御周期ごとに従動軸に対する速度指令値を算出し、前記同期開始位置以降は、主軸と従動軸とのギア比に基づいて、制御周期ごとに従動軸に対する速度指令値を算出するステップと、
前記算出した速度指令値で前記従動軸を制御するステップとを実行させる、同期制御プログラム。
【請求項5】
コンピュータに、主軸と従動軸との同期制御を制御周期ごとに実行させる同期制御プログラムを記録したコンピュータ読み取り可能な記録媒体であって、
主軸と従動軸とが同期を開始する同期開始位置を指定するステップと、
カム曲線を作成するステップと、
毎制御周期ごとの前記主軸の位置情報を検出するステップと、
前記同期開始位置までは、前記カム曲線と前記主軸の位置情報とに基づいて、制御周期ごとに従動軸に対する速度指令値を算出し、前記同期開始位置以降は、主軸と従動軸とのギア比に基づいて、制御周期ごとに従動軸に対する速度指令値を算出するステップと、
前記算出した速度指令値で前記従動軸を制御するステップとを実行させる、コンピュータ読み取り可能な記録媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2013−11937(P2013−11937A)
【公開日】平成25年1月17日(2013.1.17)
【国際特許分類】
【出願番号】特願2011−142764(P2011−142764)
【出願日】平成23年6月28日(2011.6.28)
【出願人】(000002945)オムロン株式会社 (3,542)
【Fターム(参考)】