JP3852572B2 - プログラマブルコントローラ - Google Patents
プログラマブルコントローラ Download PDFInfo
- Publication number
- JP3852572B2 JP3852572B2 JP2001346739A JP2001346739A JP3852572B2 JP 3852572 B2 JP3852572 B2 JP 3852572B2 JP 2001346739 A JP2001346739 A JP 2001346739A JP 2001346739 A JP2001346739 A JP 2001346739A JP 3852572 B2 JP3852572 B2 JP 3852572B2
- Authority
- JP
- Japan
- Prior art keywords
- acceleration
- speed
- axis
- deceleration
- setting table
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Programmable Controllers (AREA)
Description
【発明の属する技術分野】
本発明は、パルス列により回転速度および回転角度が制御されるモータを制御する際に、複数個のモータの回転開始と回転停止とのタイミングを一致させる同期運転を可能とするプログラマブルコントローラに関するものである。
【0002】
【従来の技術】
一般に、ステッピングモータのようにパルスの入力毎に一定角度ずつ回転して停止するモータでは、回転速度は入力するパルス列の周波数(周期)により決定され、回転軸の回転角度はパルス列に含まれるパルス数により決定される。たとえば、1000パルスで回転軸が1回転するように設計されたパルスモータがあるとすれば、1500パルスのパルス列を与えることによって回転軸を1.5回転させた後に停止させることができる。
【0003】
この種のモータを制御するにあたっては、複数個のモータの回転開始と回転停止とのタイミングを一致させるように制御しなければならないことがあり、この種の制御を同期制御と呼んでいる。ここでは説明を簡単にするために2個のモータの同期制御について考察する。いま、図33に示すように、各モータの回転開始時点を原点Oとし、回転開始から回転停止までの期間に各モータに要求される回転角度をそれぞれX軸上およびY軸上に表した平面を考える。図においてX軸上およびY軸上の矢印の長さが回転角度を表す。ここで、各モータの運転中における回転角度の比率を一定に保つように各モータを制御するとすれば、両モータの運転中における各モータの回転角度は図34に示す直線trの成分となる関係を満たすように制御しなければならない。以下では、このような制御を直線補間制御と呼ぶ。この種の制御は、たとえばX−Yテーブルにおいて目標位置まで直進移動させる制御に相当する。
【0004】
一方、モータ自身の慣性およびモータにより駆動される負荷の慣性を考慮すると、図34に示すように、各モータの回転開始後に時間経過ととともに回転速度を増加させる加速制御を行う加速期間T1を設け、各モータの回転停止前には時間経過とともに回転速度を低下させる減速制御を行う減速期間T3を設けることが必要である。加速制御と減速制御との間では回転速度を一定とした定速期間T2になる。したがって、直線補間制御を行うには、定速期間T2において両モータの回転角度の比率を一定に保つだけではなく、加速期間T1や減速期間T3においても回転角度の比率を一定に保たなければならない。つまり、加速期間T1および減速期間T3は両モータについて等しくなる。また、各モータの回転開始後に各モータにそれぞれ与えるパルス列に含まれるパルス数は各モータに要求される回転角度によって定められているから、直線補間制御を行うには各モータに与えるパルス列の周波数を制御することになる。
【0005】
ここで、加速期間T1と減速期間T3とは一般に等しく設定されるから、以下では加速期間T1および減速期間T3の各時間を加減速時間と呼ぶ。さらに、回転開始時のパルス列の周波数(つまり、初速度であって、図34における加速期間T1の開始時点での縦線の長さ)と回転停止時のパルス列の周波数(つまり、最終速度であって、図34における減速期間T3の終了時点での縦線の長さ)とについても等しく設定され、上述のようにパルス列の周波数はモータの回転速度を決定するから、以下ではモータの回転開始時および回転停止時のパルス列の周波数を初速度と呼ぶ。また、定速期間T2におけるパルス列の周波数を最高速度と呼び、各モータに入力するパルス列のパルス数を移動量と呼ぶ。加速期間T1および減速期間T3におけるパルス列の周波数の変化率は、初速度と最高速度と加減速時間とを用いて、(最高速度−初速度)/(加減速時間)として決定することができるから、各モータを制御するには、各モータごとに(初速度、最高速度、加減速時間、移動量)の4つ組をパラメータとして求めればよい。
【0006】
実際にX−Yテーブルを2個のモータによって制御するような場合には、X軸用のモータとY軸用のモータとの個々に対して上述した4つ組を与えるのではなく、初速度、最高速度についてはX軸とY軸との合成値で与える。以下では、初速度の合成値を合成初速度と呼び、最高速度の合成値を合成最高速度と呼ぶ。また、加減速時間は上述のようにX軸とY軸とについて共通であるから、各モータにおいて1つの加減速時間を共通に用いればよく、移動量については個々のモータごとに各別に与える。両モータの仕様が等しいとすれば、図33における直線trの傾きは個々のモータの移動量の比率に等しいから、合成初速度および合成最高速度と各モータごとの移動量とを用いることによって、各モータごとの初速度および最高速度を求めることができる。
【0007】
【発明が解決しようとする課題】
ところで、上述した直線補間制御のように、2個のモータの同期制御を行うには、合成初速度と合成最高速度と加減速時間と各モータごとの移動量とを与えることが必要であり、これらのデータから各モータごとの4つ組のパラメータを求めることによって各モータをそれぞれ制御することが可能になる。
【0008】
この種の同期制御はプログラマブルコントローラを用いて実現されている。ただし、図35に示すように、CPUユニット1と電源ユニット2とを個別に持ち、さらに図示しない入出力ユニットなどを組み合わせている大規模システムのプログラマブルコントローラではモータを制御するために専用ユニット(モータ制御ユニット)3を設けているのが現状である。つまり、CPUユニット1はプログラマブルコントローラの通常の命令を実行し、専用ユニット3が同期制御を含めてモータの制御を行うのである。言い換えると、複数個のモータの同期制御を実現するためにCPUユニット1のほかに専用ユニット3が必要であり、プログラマブルコントローラの全体としてはコスト高につながるという問題が生じている。また、専用ユニット3を用いるには専用ユニット3の使用方法を習得しなければならないという問題もある。
【0009】
本発明は上記事由に鑑みて為されたものであり、その目的は、複数個の機器の同期制御を簡単かつ安価に実現することができるプログラマブルコントローラを提供することにある。
【0010】
【課題を解決するための手段】
請求項1の発明は、パルス列の周波数に応じて速度が決定されるとともにパルス列のパルス数に応じて位置が決定される複数台のモータを同時に起動しかつ同時に停止させる同期制御を行うように、シーケンスプログラムに従ってパルス列を発生する機能を備えたプログラマブルコントローラであって、シーケンスプログラムを実行するマイコンのシステムプログラムに複数のモータに対するパルス列の発生を指示する同期制御命令が組み込まれており、同期制御命令の実行時に必要な設定値として少なくとも初速度、最高速度、加減速時間、移動量を格納する設定テーブルを備え、同期制御命令の実行時に設定テーブルから読み出した設定値を用いて直線補間制御を行うようにパルス列を発生させるとともに、パルス列の発生後に加速制御を行う加速期間を有し、パルス列の停止前に減速制御を行う減速期間を有しており、同期制御命令の実行時には加速期間および減速期間においてモータの速度が連続的に変化する周波数を演算値として求め、この演算値に基づいてパルス列を発生させ、加速期間および減速期間には複数のパルス列について周波数を変化させるタイミングを各別に一定値として設定するとともに、前記複数のパルス列の最高速到達時間を一致させるように前記タイミングを調節することを特徴とする。
【0011】
請求項2の発明は、請求項1の発明において、シーケンスプログラムを実行するCPUユニットと、他のユニットとを接続して構成されるプログラマブルコントローラであって、前記同期制御命令がCPUユニットにおいて実行されるとともにCPUユニットに設定テーブルが設けられていることを特徴とする。
【0012】
請求項3の発明は、請求項1または請求項2の発明において、前記設定テーブルには、前記同期制御命令の実行時に算出される演算値を格納する領域が、前記設定値を格納する領域に連続した領域として設けられていることを特徴とする。
【0013】
請求項4の発明は、請求項1または請求項2の発明において、前記設定テーブルには、前記同期制御命令の実行時に検出されるエラーの有無に対応したエラーコードを格納する領域が、前記設定値を格納する領域に連続した領域として設けられていることを特徴とする。
【0014】
請求項5の発明は、請求項1ないし請求項4の発明において、前記加速期間および前記減速期間においてモータの速度が一定加速度で連続的に変化する周波数を演算値として求めることを特徴とする。
【0015】
請求項6の発明は、請求項1ないし請求項4の発明において、前記設定テーブルに設定される設定値として加速度比率を含み、前記加速期間および前記減速期間においてモータの速度が加速度比率に従って連続的に変化する周波数を演算値として求めることを特徴とする。
【0031】
【発明の実施の形態】
本発明は、基本的にはシーケンスプログラムを実行するプロセッサを備えるプログラマブルコントローラにおいて、モータ制御を行うための専用ユニットを用いることなく複数のモータの同期制御を可能とするものである。そこで、シーケンスプログラムに記述可能な命令として同期制御用の命令を新たに設け、さらにシーケンスプログラムを実行するプロセッサを備えた装置において同期制御用の命令を実行する構成を採用している。また、シーケンスプログラムを実行するプロセッサを備えた装置には、同期制御に必要な各種パラメータを登録するための設定テーブルも設けてある。
【0032】
以下に説明する実施形態では、従来構成と同様に電源ユニット2などに組み合わせて用いるCPUユニット1において同期制御用の命令を実行する例を示す。CPUユニット1は、図32に示すように、シーケンスプログラムを実行するためのプロセッサを含むマイコン(プロセッサのほか、システムプログラムを格納したシステムメモリ、シーケンスプログラムを格納するプログラムメモリ、シーケンスプログラムの実行中に発生するデータを格納するデータメモリなどを備える)1aを備える。
【0033】
ところで、プログラマブルコントローラのシーケンスプログラムは、オンオフの入出力や接点の開閉、あるいは論理積演算や論理和演算のような基本的な論理演算などビット処理を中心とした基本命令と、四則演算や比較など各種のデータ処理を行う応用命令とによって記述される。以下の実施形態で説明する複数個のモータの同期制御を行う命令(以下、同期制御命令と呼ぶ)は応用命令としてCPUユニット1に用意される。また、この命令を実行する構成には、図32(a)のように同期制御のための専用の集積回路1bを採用することができるが、図32(b)のように同期制御命令をソフトウェア1cで実現し、シーケンスプログラムにおいて同期制御命令の実行が指示されているときにソフトウェア1cをマイコン1aで実行してもよい。CPUユニット1に同期制御命令をソフトウェア1cで組み込む構成を採用すれば、ハードウェアの変更を伴わないから同期制御命令をシステムプログラムの変更程度の作業でCPUユニットに容易に追加することができる。
【0034】
従来の技術として説明したように、複数個のモータの同期制御を行うには各種パラメータを必要とするから、同期制御命令を設定すると同期制御命令のオペランドとして複数のパラメータが必要である。一方、プログラマブルコントローラのシーケンスプログラムを記述する言語としてはロジカルシンボリック言語やラダー言語が用いられており、とくにラダー言語によって記述されるラダー図の中に多数のパラメータを表記すると可読性が低下し、シーケンスプログラムの流れがわかりにくくなる。そこで、以下に説明する実施形態では同期制御命令に必要なパラメータを設定する設定テーブルを設け、同期制御命令には読み出すべき設定テーブルの位置のみを記述しシーケンスプログラムの可読性を高めている。つまり、同期制御命令の実行時に指定された位置の設定テーブルからパラメータを読み出すことによって、複数個のパラメータを同期制御命令に並記することを不要にしているのである。
【0035】
(第1実施形態)
本実施形態では、2個のモータの同期制御を行う例であって、図1(a)に示すように、同期制御命令のオペレータF175に対するオペランドを設定テーブルTbの先頭番地DT1000としてある。この先頭番地DT1000によってオペレータF175は設定テーブルTbの位置を知ることができる。設定テーブルTbはCPUユニット1に設けたメモリの適宜エリアに設ければよい。設定テーブルTbには、図1(b)のように、パラメータとして(制御コード、合成速度、X軸移動量、Y軸移動量)の4つ組を登録する。つまり、本実施形態の同期制御命令では、従来の技術として説明した初速度と加減速時間とは考慮しない形式としてある。言い換えると、モータの回転開始の直後に回転軸の回転速度が合成速度に達し、モータの回転停止の直前まで回転軸の回転速度が合成速度に保たれると仮定している。ここに、制御コードは必要に応じてフラグなどを設定する領域である。また、図示例の設定テーブルTbでは、1つのパラメータごとにメモリ上の2個の連続したアドレス領域を割り当ててあり、DT1000を先頭番地とすればDT1007(=DT1000+7)が同期制御命令によって読み出される領域の最終番地になる。
【0036】
従来の技術として説明したように、2個のモータについて同期制御を行う場合には、同期制御ではX軸移動量とY軸移動量との比率と合成速度とから各モータごとの速度を求めることができるから、本実施形態のようにパラメータとして4つ組を用いることによって、各モータごとにパラメータを設定する場合よりもパラメータの個数を低減することができる。
【0037】
各モータごとに求められた速度は、設定テーブルTbにおいて上述した4つ組のパラメータが設定される領域に連続した領域に書き込まれる。つまり、本実施形態における同期制御命令はメモリ上の8アドレスを用いるから、先頭番地がDT1000であると、図2に示すように、DT1000〜DT1007に格納されたパラメータが同期制御命令において用いられる。そこで、各モータごとに求めた速度(以下では、X軸成分速度およびY軸成分速度と呼ぶ)の格納に4アドレスが必要になるとすれば、DT1007に続くDT1008〜DT1011をX軸成分速度およびY軸成分速度の格納領域に用いる。このように、設定テーブルTbに設定されたパラメータから演算によって求めたX軸成分速度およびY軸成分速度も設定テーブルTbに格納すれば、制御中に演算結果を参照することができるのはもちろんのこと、制御後も演算結果の確認が可能になり利便性が高まる。また、設定テーブルTbに設定されたパラメータとパラメータから得られた演算結果とをアドレス空間の連続領域に格納することによってX軸成分速度およびY軸成分速度を読み出すための別途の標識を設定する必要がなく、設定テーブルTbの先頭番地(本実施形態ではDT1000)を用いて抽出することができる。要するに、本実施形態ではメモリのアドレス空間に設定テーブルTbとして確保される領域の前半部分は同期制御命令の演算に用いるパラメータとし、後半部分は同期制御命令の実行時の演算によって求められた結果を格納するのである。ただし、X軸成分速度およびY軸成分速度を格納する領域が同期制御命令に用いるパラメータを格納する領域に連続していることは必須ではない。
【0038】
ところで、設定テーブルTbに格納されたパラメータに基づいて各モータごとの速度であるX軸成分速度およびY軸成分速度を求めたときに、設定テーブルTbに設定されたパラメータの大きさによっては、各モータの動作可能範囲を逸脱する可能性がある。たとえば、演算結果として得られた速度が負の値になったり、演算結果として得られた速度がモータの仕様により許容されている最大速度を越える可能性がある。また、場合によっては演算自身を行えない場合(たとえば、0での除算など)もある。そこで、このようにモータの動作可能範囲を逸脱するような演算結果が得られる場合や演算が行えない場合には、設定テーブルTbに設定されているパラメータに不具合があることを報知するとともに、原因の特定を容易にするために、設定テーブルTbにエラーコードを書き込む。エラーコードは、図3に示すように、X軸成分速度およびY軸成分速度の格納領域に連続する領域に書き込むのが望ましい。
【0039】
表1にエラーコードの設定例を示す。ただし、エラーコードにおいて数字に付随する「H」は数字が16進数であることを示している。
【0040】
【表1】
【0041】
なお、エラーコードを格納する領域は、X軸成分速度およびY軸成分速度と同様に、設定テーブルTbにおいてX軸成分速度およびY軸成分速度に連続する領域とするのが望ましい。つまり、エラーコードも同期制御命令を実行する際に得られる演算結果の一種であるから、設定テーブルTbの後半部分に格納するのである。このようにすれば、エラーコードを読み出すための別途の標識を設定する必要がなく、設定テーブルTbの先頭番地(本実施形態ではDT1000)を用いて抽出することができる。ただし、エラーコードを格納する領域がX軸成分速度およびY軸成分速度を格納する領域に連続していることは必須ではない。
【0042】
しかして、本実施形態における同期制御命令をシーケンスプログラムに記述しておけば、この同期制御命令を実行するときに設定テーブルTbが読み出され、設定テーブルTbに登録されたパラメータを用いて各モータごとの速度が求められ、各モータを駆動するためのパルス列の周波数が決定される。たとえば、図1(a)に示す例では、同期制御命令F175を接点R0と接続してあり、接点R0がオンになると同期制御命令F175が実行されるようにしてある。
【0043】
本実施形態の構成では、従来構成のようにモータを制御するための専用ユニットを設けずにCPUユニット1において同期制御命令の実行を可能としているから、2個のモータの同期制御を行うシステムを容易かつ安価に構築することができる。たとえば、図4に示すように、CPUユニット1に入出力ユニットのような増設ユニット4を付加するだけで、モータの制御用の専用ユニットを付加することなく2個のモータの同期制御が可能になる。なお、図示例では電源ユニットは図示を省略してある。
【0044】
なお、本実施形態においては2個のモータについて同期制御を行う例を示したが、3個以上のモータの同期制御を行う場合には3個以上のモータに関して同様の命令を設定し、当該命令に対応した設定テーブルを設ければよい。また、上述した実施形態では各モータを駆動する速度として求めたX軸成分速度およびY軸成分速度と、同期制御命令の実行に伴って生じたエラーコードとを設定テーブルTbに格納する例を示したが、設定テーブルTbへのエラーコードの格納を省略した同期制御命令、あるいは設定テーブルTbへのX軸成分速度およびY軸成分速度の格納を省略した同期制御命令を用意してもよい。
【0045】
(第2実施形態)
第1実施形態では、従来の技術として説明した加速期間および減速期間を設けない制御例を示したが、図5に示すように、加速期間T1および減速期間T3を設ける場合には、初速度および加減速時間を各モータに指示しなければならない。ただし、本実施形態では回転停止直前の速度を初速度と一致させ、加速期間T1と減速期間T3との長さをともに加減速時間に一致させている。したがって、本実施形態では、同期制御命令に対応する設定テーブルTbに設定すべきパラメータとして、図6に示すように、第1実施形態における合成速度に代えて、合成初速度、合成最高速度、加減速時間を設定する。つまり、本実施形態において設定テーブルTbに設定するパラメータは、(制御コード、合成初速度、合成最高速度、加減速時間、X軸移動量、Y軸移動量)の6つ組になる。同期制御のためのパラメータをこのように設定することによって、加減速を伴う同期制御が可能になる。要するに、本実施形態も第1実施形態と同様に、シーケンスプログラムにおいて同期制御命令を記述する際には、オペレータに付随するオペランドとして設定テーブルTbの先頭番地を指定すればよい。
【0046】
しかして、同期制御命令が実行されると、従来の技術において説明したように、各モータごとの初速度および最高速度であるX軸成分初速度、X軸成分最高速度、Y軸成分初速度、Y軸成分最高速度が求められる。また、第1実施形態において説明したようにエラーコードも抽出される。設定テーブルTbに設定されたパラメータに基づく演算によって求められたデータは、設定テーブルTbの後半領域に格納される。
【0047】
ところで、本実施形態では同期制御命令の実行時に設定テーブルTbに設定されたパラメータから、各モータごとの周波数レンジおよび加減速段数も演算によって求めている。周波数レンジは初速度に対応するパルス列の周波数と最高速度に対応するパルス列の周波数との周波数差であり、加減速段数は各モータが加減速時間において周波数を切り換える回数である。加減速段数の具体的な決定手順については後述する。
【0048】
本実施形態の同期制御では、加速期間T1と減速期間T3とにおいてそれぞれ加速度を一定とし、かつ加速期間T1と減速期間T3とにおいて加速度の絶対値を等しく設定する。ただし、実際の制御にあたっては加速度を連続的に変化させるのは困難であるから、図7に示すように、速度切替時間Δtaごとに速度を一定の刻み幅(以下では、加速度Δfという)ずつ変化させる。速度切替時間Δtaは適宜に設定することができるが、本実施形態では、設定テーブルTbに格納されている合成初速度(周波数)Fminを用いて、速度切替時間Δtaを1/Fminという形で設定する。速度切替時間Δtaが決まれば、設定テーブルTbに格納された加減速時間を速度切替時間Δtaで除算することによって加速期間T1または減速期間T3において速度を変化させる加減速段数を求めることができる。つまり、設定テーブルTbに格納されている合成初速度Fminと合成最高速度Fmaxとの差である周波数レンジを上述のようにして求めた加減速段数によって除算すれば、速度切替時間Δtaごとに変化させる速度の加速度Δfを決定することができる。
【0049】
図6に示した本実施形態の設定テーブルTbのように各モータごとに周波数レンジおよび加減速段数を求めるには、上述した演算を各モータごとに行えばよい。すなわち、同期制御命令が実行されると第1実施形態と同様に設定テーブルTbに設定されたパラメータを読み込み、これらのパラメータに基づいて上述した演算を行ってX軸成分初速度、X軸成分最高速度、Y軸成分初速度、Y軸成分最高速度のほか、X軸周波数レンジ、Y軸周波数レンジ、X軸加減速段数、Y軸加減速段数、エラーコードを決定し、これらのデータを設定テーブルTbに格納する。また、求めたデータを用いて各モータを制御する。
【0050】
ところで、各モータごとの加減速段数は以下の手順で求めることができる。ここでは、各モータのうち初速度が最小であるモータについて初速度(周波数)の逆数を加減速段数として求め、この加減速段数に基づいて各モータごとのデータを演算する例を説明する。
【0051】
X軸とY軸との2軸について直線補間制御を行うものとして、設定テーブルTbには、図8に示すように、(制御コード、合成初速度、合成最高速度、加減速時間、X軸移動量、Y軸移動量)の6つ組をパラメータとして設定する。ただし、以下では、合成初速度、合成最高速度、加減速時間、X軸移動量、Y軸移動量をそれぞれFmin、Fmax、ta、psx、psyで表す。
【0052】
また、これらのパラメータに対して同期制御命令の実行に伴って求められるデータとして、各モータごとの初速度、最高速度、周波数レンジ、加減速段数、加速度、速度切替時間、加速動作累積時間、実出力時間、出力時間誤差があり、両モータについてパラメータから共通に求められるデータには加減速段数、エラーコード、周波数切替時間がある。つまり、X軸成分初速度、X軸成分最高速度、Y軸成分初速度、Y軸成分最高速度、X軸周波数レンジ、Y軸周波数レンジ、X軸加減速段数、Y軸加減速段数、X軸加速度、Y軸加速度、X軸速度切替時間、Y軸速度切替時間、X軸加速動作累積時間、Y軸加速動作累積時間、X軸実出力時間、Y軸実出力時間、X軸出力時間誤差、Y軸出力時間誤差があり、以下ではそれぞれfxmin,fxmax,fymin,fymax,xrang,yrang,xdansu,ydansu,Δfx,Δfy,Δtax,Δtay,txadd,tyadd,txr,tyr,txg,tygで表す。両モータについてパラメータから共通に求められる加減速段数、エラーコード、周波数切替時間は、それぞれdansu,errcode,Δtaで表す。なお、各値の意味については後述する。
【0053】
しかして、同期制御命令が実行されると、まずX軸成分初速度およびY軸成分初速度(fxmin,fymin)と、X軸成分最高速度およびY軸成分最高速度(fxmax,fymax)とが求められる。ここで、図9に示すように、X軸成分初速度fxminがY軸成分初速度fyminより小さい場合、つまりX軸加減速段数xdansuがY軸加減速段数ydansuより少ない場合には、X軸成分初速度fxminの周期1/fxminであるX軸速度切替時間Δtxaを各モータに共通の速度切替時間Δtaとして用いる。つまり、加減速時間taに対して加減速段数dansuを、dansu=ta/Δta(=ta/Δtax)とし、以下の形でX軸加速度ΔfxおよびY軸加速度Δfyを求める。
Δfx=(fxmax−fxmin)/dansu
Δfy=(fymax−fymin)/dansu
その結果、図10に階段状として示しているように、加速期間T1における両モータの速度切替のタイミングが一致することになる。
【0054】
ここで、加減速段数dansuは正の整数値でなければならないが、上述のようにして求めた加減速段数は整数値にならずに誤差を生じる。そこで、まずX軸成分初速度fxminとY軸成分初速度fyminとについて速度切替時間Δtaにもっとも近い時間で出力されるパルス数を求め、求めたパルス数で実際にパルス列を出力するX軸実出力時間txrおよびY軸実出力時間tyrを求める。この演算により生じた誤差分は次段の速度に対する速度切替時間Δtaに対して加減算する。たとえば、速度切替時間Δtaに対するX軸成分の誤差であるX軸出力時間誤差txgと、Y軸成分の誤差であるY軸出力時間誤差tygとを速度切替時間Δtaに加算した時間Δta+txg,Δta+tygにもっとも近い時間で出力されるパルス数をfxmin+Δfx、fymin+Δfyとについて算出する。このパルス数に対してパルス列を実際に出力する実出力時間を求め、この演算により生じた誤差分は、さらに次段の速度に対する速度切替時間Δtaに対して加減算する。以下、同様にして誤差分を補正するように各速度でのパルス数を調節する。
【0055】
実際の演算では、図11にX軸成分の例として示すように、ある速度について2個のパルスを出力する実出力時間txrがΔta−Δtxg1(Δtxg1は誤差分)になり、3個のパルスを出力する実出力時間txrがΔta+txg2(Δtxg2は誤差分)になるとすれば、txg1<txg2のときにはX軸出力時間誤差txgは−txg1になるから、txr=Δta−txg1とし、txg1>txg2のときにはX軸出力時間誤差txgはtxg2になるから、txr=Δta+txg2とする。図示例ではtxg1<txg2であるから、X軸実出力時間txrとしてΔta−txg1を用い、この速度でのパルス数を決定する。また、設定テーブルTbのX軸出力時間誤差txgの値は−txg1になる。
【0056】
次段の速度では、図12にX軸成分の例として示すように、Δta+txg(=Δta+txg1)に対するパルス数を求め、図11に示した演算と同様の演算を行って誤差分Δtxg1′,Δtxg2′を求め、txg1′<txg2′のときにはX軸出力時間誤差txgとしてtxg1′を採用し、X軸実出力時間txrをtxr=Δta+txg−txg1′とし、txg1′>txg2′のときにはX軸出力時間誤差txgとしてtxg2′を採用し、X軸実出力時間txrをtxr=Δta+txg+txg2′とする。また、この速度でのパルス数をX軸実出力時間txrから決定するのである。図示例ではtxg1′<txg2′であるから、X軸実出力時間txrとしてΔta+txg1−txg1′を用い、この速度でのパルス数を決定する。また、この時点で設定テーブルTbのX軸出力時間誤差txgの値は−txg1′になる。
【0057】
上述のような補正演算を繰り返すことによって、両モータの最高速到達時間を一致させ、加減速を伴う直線補間動作を実現する。
【0058】
なお、本実施形態では、加速期間T1と減速期間T3との長さを等しく設定しているが、加速期間T1と減速期間T3との長さは異ならせることが可能であり、また初速度と最終速度とを一致させているが、初速度と最終速度とが一致することも必須条件ではない。ただし、加速期間T1と減速期間T3とが異なる場合や初速度と最終速度とが異なる場合には、それぞれを設定することが必要になり、さらに設定された各パラメータを用いて加速期間T1と減速期間T3とにおける周波数レンジや加減速段数をそれぞれ求めることが必要になる。また、第1実施形態と同様に、設定テーブルTbに設定されたパラメータを用いた演算によって求めたデータは、あらかじめ設定されたパラメータの格納領域に連続した領域に格納することも必須ではなく、メモリ上で別に設けた領域に格納してもよい。ただし、設定されたパラメータと演算によって求めたデータとの格納領域を連続させておけば、演算によって求めたデータをメモリから抽出するために別途に標識を設定する必要がない。他の構成および動作は第1実施形態と同様である。
【0059】
(第3実施形態)
本実施形態は、第2実施形態と同様に加速期間T1および減速期間T3を設ける例を示す。ただし、第2実施形態では加速期間T1および減速期間T3において各モータの加減速段数を一致させていたが、本実施形態では各モータごとに加減速段数を設定してある。
【0060】
すなわち、第2実施形態ではX軸加減速段数xdansuとY軸加減速段数ydansuとの少ないほうに基づいて速度切替時間Δtaを設定していたが、本実施形態ではX軸成分初速度fxminの周期1/fxminをX軸速度切替時間Δtaxに用い、Y軸成分初速度(fymin)の周期1/fyminをY軸速度切替時間Δtayに用いている。したがって、加減速時間taに対して、各モータごとに加減速段数を求めるのであって、X軸加減速段数xdansuはxdansu=ta/Δtaxとなり、Y軸加減速段数ydansuはydansu=ta/Δtayとして求められる。
【0061】
その結果、X軸加速度Δfxおよびy軸加速度Δfyは、以下の形で求められる。
Δfx=(fxmax−fxmin)/xdansu
Δfy=(fymax−fymin)/ydansu
X軸加速度Δfxおよびy軸加速度Δfyを求めた後の処理手順は第2実施形態と同様であるから説明を省略する。
【0062】
(第4実施形態)
本実施形態は、第3実施形態と同様に、X軸加速度Δfxおよびy軸加速度Δfyを、X軸速度切替時間ΔtaxとY軸速度切替時間Δtayとに基づいてそれぞれ求めるものであって、X軸成分初速度fxminについてX軸速度切替時間Δtaxにもっとも近い時間で出力されるパルス数を求め、Y軸成分初速度fyminについてY軸速度切替時間Δtayにもっとも近い時間で出力されるパルス数を求める。また、各モータごとに求めたパルス数で実際にパルス列を出力するX軸実出力時間txrおよびY軸実出力時間tyrを求める。ここで、求めたX軸実出力時間txrおよびY軸実出力時間tyrに各モータの加速動作累積時間txadd,tyaddに加算する。X軸加速動作累積時間txaddおよびY軸加速動作累積時間tyaddは、加速期間T1または減速期間T3の開始からの経過時間を意味する。したがって、加速期間T1ないし減速期間T3の全時間を意味する加減速時間taからX軸加速動作累積時間txaddまたはY軸加速動作累積時間tyaddを減算した時間が、加速期間T1または減速期間T3における残り時間を意味になる。つまり、各モータについて加速期間T1ないし減速期間T3の残り時間は、それぞれta−txadd,ta−tyaddになる。
【0063】
このように、加速期間T1ないし減速期間T3の残り時間を求めると、以下の演算を行うことによって、加速期間T1ないし減速期間T3における残りの加減速段数でX軸速度切替時間ΔtaxおよびY軸速度切替時間Δtayをそれぞれ補正することができる。
Δtax=(ta−txadd)/(xdansu−1)
Δtay=(ta−tyadd)/(ydansu−1)
X軸速度切替時間ΔtaxおよびY軸速度切替時間Δtayを求めた後には、再演算して求めたX軸速度切替時間ΔtaxおよびY軸速度切替時間Δtayにもっとも近い時間で出力されるパルス数をfxmin+Δfx、fymin+Δfyについて算出する。このパルス数に対してパルス列を実際に出力する実出力時間を各モータについてそれぞれ求め、第2実施形態と同様の補正演算を行う。
【0064】
上述した演算の具体例を図13にX軸を例として示す。ここに、txg1<txg2のときにはX軸実出力時間txrをtxr=Δta−txg1とし、txg1>txg2のときにはX軸実出力時間txrをtxr=Δta+txg2として求め、この速度でのパルス数を決定する。
【0065】
次段の速度の開始時点では、X軸加速動作累積時間txaddはtxrであるから、加速期間T1の残り時間は、図14に示すように、ta−txrになる。ここで、X軸加減速段数xdansuがnであるとすれば、残り段数はn−1であるから、残り時間を残り段数で除算することによって、周波数切替時間Δtaを再演算する。つまり、Δta=(ta−txr)/(n−1)になる。このような補正演算を繰り返すことによって、両モータの最高速到達時間を一致させるように加減速を伴う直線補間動作を実現することができる。他の構成および動作は第2実施形態と同様である。
【0066】
(第5実施形態)
本実施形態は、加速期間T1および減速期間T3において、パルス数を(1/2)Δfずつ加算する補正を行いながら各モータの速度を制御するものである。
【0067】
すなわち、設定テーブルTbに格納されているX軸成分初速度fxminおよびY軸成分初速度fymin、X軸成分最高速度fxmaxおよびY軸成分最高速度fymaxが与えられると、各モータの加減速時に出力されるパルス数は、図15における斜線部の面積として表すことができる。ここに、図示例では各成分を分けずに記述している(つまり、fminはfxminまたはfyminと読み替え、fmaxはfxmaxまたはfymaxと読み替える)。
【0068】
ところで、加速期間T1ないし減速期間T3においてはモータの速度を連続的に変化させるのが理想的であって、理想的な時間変化は図16における右上がりの直線L0によって表すことができる。これに対して、実際の制御においては速度が段階的に変化するものであって、上述した各実施形態で求めた加速度Δf(つまり、X軸加速度Δfx、Y軸加速度Δfy)ずつ速度を変化させる際に、図16に階段状に示しているように速度を変化させるとすれば、斜線部についてはパルス数が不足することになる。
【0069】
そこで、本実施形態では、図17に示すように、加速期間T1の開始時点では初速度に(1/2)Δfを加算し、その後は、最高速度に到達する1段階前(加減速段数をn段とすると(n−1)段)までの加速度をΔfとし、最終段の加速度は(1/2)Δfとすることによって、各速度において理想のパルス数に対して超過分と不足分が等しくなり(つまり、図17において1段階の速度について示すと、斜線部A1と斜線部A2の面積が等しくなり)、結果的に、速度を段階的に変化させながらも図18に斜線部で示すように、図15に示した斜線部の面積に等しい面積となるように制御することができ、モータを制御するパルス列のパルス数を理想値にすることができる。
【0070】
なお、本実施形態は、上述した第2実施形態、第3実施形態、第4実施形態とのいずれとも組み合わせることが可能であり、これらを組合せることによって、加減速を伴う直線補間制御において各モータの最高速到達時間を一致させることができる。
【0071】
(第6実施形態)
第2実施形態ないし第5実施形態では、加速期間T1および減速期間T2において加速度を一定に保つように制御していたが、本実施形態では、図19に示すように、初速度付近と最高速度付近とでは加速度が小さくなるように制御する例を示す。
【0072】
具体的には図20に示すように、第2実施形態において説明した速度切替時間Δtaごとの速度の加速度Δfを、初速度付近と最高速度付近とでは他の期間よりも小さくなるようにしてある。このような設定は、加速度Δfが図20に示すパターンで変化するように加速度の変化率としての加速度比率を設定テーブルTbに設定値として設定し、加速度比率に基づいて加速度Δf1,Δf2,……,Δf(n−1),Δfnを設定すればよい。他の構成および動作は第2実施形態と同様である。
【0073】
(参考例1)
上述した各実施形態では複数個のモータを用いて直線補間制御を行う例を示したが、本例は2個のモータを用いて円弧補間制御を行う例を示す。つまり、X−YテーブルのX軸モータとY軸モータとを同期制御したときにテーブルの軌跡が円弧上を通る制御を行う例を示す。
【0074】
この種の制御では、たとえば図21に示すように、開始位置P1から終点位置P2までの移動軌跡Trが円弧上を通るように制御するのであって、移動軌跡Trを含む円弧を規定することが必要である。円弧を規定する方法としては、終点位置P2のほかに、移動軌跡Trの上で開始位置P1および終点位置P2とは異なる位置であって通過すべき位置(通過点位置)Pmを与える方法と、終点位置Pのほかに移動軌跡Trを含む円弧の中心Oを与える方法とがある。
【0075】
通過点位置Pmを与えることによって円弧を規定する場合には、図22に示すように、制御コード、合成速度のほかに、X軸終点位置、Y軸終点位置、X軸通過点位置、Y軸通過点位置を設定テーブルTbに設定する。同期制御命令では、これらの情報に基づいて、移動軌跡Trを含む円弧の半径r、X軸中心位置、Y軸中心位置を求める。
【0076】
一方、移動軌跡Trを含む円弧の中心Oを与えることによって円弧を規定する場合には、図22に示すように、制御コード、合成速度のほかに、X軸終点位置、Y軸終点位置、X軸中心位置、Y軸中心位置を設定テーブルTbに設定する。同期制御命令では、これらの情報に基づいて、移動軌跡Trを含む円弧の半径rを求める。このようにして移動軌跡Trを含む円弧が決定された後には、決定された円弧状を通るように各モータの速度を制御する。本例では、移動軌跡Trを上述したどちらのデータによっても指定することを可能としてあり、同期制御命令の実行時には設定テーブルTbに設定される制御コードによってどちらの演算を行うかが選択されるようになっている。
【0077】
本例における同期制御命令の処理手順を図24に示す。円弧補間制御を行う同期制御命令の実行が開始されると、まずモータを制御するパルス列を出力しているか否かが判定される(S1)。同期制御命令の実行を開始した時点ではパルス列を出力していないから、設定値の論理的矛盾の有無を確認し(S2)、矛盾があればエラー処理を行い(S3)、矛盾がなければ、設定テーブルTbの内容から上述した2種類のデータのどちらが設定されているかを判定し(S4)、通過点位置Pmの指定による場合には半径と中心位置とを求め(S5)、中心位置の指定による場合には半径を求める(S6)。このようにして終点位置と中心位置と半径とが決定されると、パルス列の出力を開始する(S7)。パルス列が出力されている間には(S1)、各モータにそれぞれ与えたパルス数(つまり現在位置)を確認し(S8)、終点位置に達していなければ(S9)、各モータごとに与える速度(周波数)を演算して(S10)、速度を変化させる(S11)。また、終点位置に達したときには(S9)、パルス列の出力を停止して同期制御命令の実行を終了する(S12)。
【0078】
なお、本例では移動軌跡Trを含む円弧を規定するデータとして、終点位置と通過点位置または終点位置と中心位置を設定テーブルTbに設定しているが、円弧を規定することが可能なデータの組合せであれば、他のデータを用いることも可能である。他の構成および動作は第1の実施の形態と同様である。
【0079】
(参考例2)
ところで、参考例1のように円弧補間制御を行うときには、各モータに与えたパルス数によって現在位置が確認され、現在位置に応じて各モータに与えるパルス列の周波数(速度)が調節されるのであるが、各モータに与えるパルス列の周波数が比較的高く、その一方で位置確認の時間間隔が比較的長くなるときは、図25に示すように、移動軌跡Trが規定した円弧L2に対して外に膨らむことになる。
【0080】
このような不具合を抑制するために、同期制御命令の実行中には規定した円弧L2の中心位置と現在位置との距離を求めるとともに求めた距離と半径とを比較し、両者の差に基づいて各モータに与えるパルス列の周波数(速度)を補正することにより、移動軌跡Trを規定した円弧L2から大きく逸脱させることなくモータを制御することが可能になる。
【0081】
すなわち、本例では、図26に示すように、図24に示した各モータごとの速度を求めるステップS10の次に、上述のようにして求めた誤差分に対する速度の補正を行う処理(S13)を追加しているのであって、このような速度補正を行うことにより、移動軌跡Trが規定した円弧L2からの逸脱を抑制することが可能になる。他の構成および動作は参考例1と同様である。
【0082】
(参考例3)
参考例2では、移動軌跡Trが規定の円弧L2から大きく逸脱するのを防止するために、中心位置と現在位置との距離を半径と比較する構成を採用しているが、本例では、図27に示すように、中心位置OからX軸方向およびY軸方向に半径rだけ離れた4本の直線に囲まれる領域内を移動軌跡Trの許容範囲としてある。要するに、移動軌跡Trの位置に対する限界値を設定してある。
【0083】
本例における同期制御命令では、図28に示すように、図26に示した参考例2の処理手順とは、終点位置か否かの判定(S9)の後に現在位置と限界値とを比較する処理(S14)と、さらに限界値から逸脱している(許容範囲外である)場合には限界値を逸脱している側のモータを一旦停止させる処理(S15)とを追加した点で相違する。すなわち、現在位置が限界値以内であれば、各モータについて速度計算(S10)と速度補正(S13)と速度変更(S11)を行い動作を継続する。また、現在位置が限界値に達した場合には限界値に達した側のモータに対するパルス列の出力を一旦停止した後、少なくともX軸方向およびY軸方向の限界値以内の軌跡となるように円弧補間を行う。他の構成および動作は参考例2と同様である。
【0084】
(参考例4)
参考例3で、現在位置が限界値に達した場合は、限界値に達した側のモータを一旦停止させている。ところで、設定された移動軌跡Trが含まれる円弧L2の中心位置Oを原点とする座標系を考えると、図29に示すように移動軌跡Trを含む平面を4つの象限に分けることができる。
【0085】
いま、移動軌跡Trが第1象現から第4象現に移行するものとして、第1象限において現在位置が限界値に達したモータに対してパルス列の出力を再開するタイミングを象現が変化したときにしてある。つまり、第1象現で限界値に達する可能性があるのはX軸のみと考えられるから、限界値に達した時点でX軸のモータに対するパルス列の出力を停止するが、Y軸のモータに対するパルス列の出力は継続されるから、X軸のモータを停止している状態でも移動軌跡Trは第4象現にはいることになる。このように、X軸のモータに対するパルス列の出力を再開することで、円弧L2からの移動軌跡Trのずれを抑制することができる。他の構成および動作は参考例3と同様である。
【0086】
(参考例5)
本例は、図30に示すように、円弧補間制御を連続的に行う場合の例であって、2個の円弧L12,L22のうちの一方の円弧L12の終点位置P12を他方の円弧L22の開始位置P21に一致させている。
【0087】
このような制御を行うには、一方の円弧L12の終点位置P12においてモータの動作を停止させることなく次の円弧L21の開始位置P21からの円弧補間制御を実行するのが望ましい。そこで、本例では設定テーブルTbの制御コードに、動作継続フラグを設定可能にしてある。動作継続フラグは、たとえば1であれば動作の継続を意味し、0であれば停止を意味する。停止の場合には同期制御命令の実行を開始した円弧L21,L21の終点位置で停止させる。
【0088】
図31において動作継続フラグが0であるときには、一方の円弧L12の終点位置L12で停止する。また、動作継続フラグが1であるときには、同期制御命令の実行を開始した後に、終点位置L12に到達する前に新たな設定テーブルTbを作成することによって連続動作を実現している。図31に示すように、本例では終点位置の判定の後(S9)、移動軌跡Trが連続して他の円弧L22を通ること(連続モード)を要求されているか否かを判断し(S16)、連続モードが要求されているときには設定テーブルTbに基づいて最終位置を再設定する(S17)。また、連続モードではないときには(S16)、パルス列の出力を停止する(S18)。他の構成および動作は参考例1と同様である。、
【0089】
【発明の効果】
請求項1の発明の構成によれば、複数個のモータの同期制御が別途に専用ユニットを用いることなく実現可能になる。しかも、同期制御に必要な設定値は設定テーブルに格納するから、シーケンスプログラムをラダープログラムによって作成する場合にも可読性が低下しないという利点がある。また、複数のモータの動きを合成した動作軌跡が直線になるような直線補間制御が行え、かつ加減速を伴う制御が可能になる。さらに、専用のハードウェアを用いることなくシーケンスプログラムを実行するマイコンのシステムソフトで同期制御が行えるから、プログラマブルコントローラに同期制御命令を安価かつ容易に組み込むことができる。加えて、各モータごとにパルス列の周波数を変化させるタイミングを異ならせているから、全体として滑らかな速度変化になるような制御が可能になる。
【0090】
請求項2の発明は、請求項1の発明において、シーケンスプログラムを実行するCPUユニットと、他のユニットとを接続して構成されるプログラマブルコントローラであって、前記同期制御命令がCPUユニットにおいて実行されるとともにCPUユニットに設定テーブルが設けられているものであり、CPUユニットによって同期制御命令を実行するから、他に同期制御用のユニットが不要であって、簡単かつ安価に同期制御が実現可能になる。
【0091】
請求項3の発明は、請求項1または請求項2の発明において、前記設定テーブルには、前記同期制御命令の実行時に算出される演算値を格納する領域が、前記設定値を格納する領域に連続した領域として設けられているものであり、同期制御を実現するために設定値に基づいて演算値が算出されると演算値が設定テーブルにおいて設定値に連続する領域に格納されるから、設定値と演算値との関係を確認するのが容易である。
【0092】
請求項4の発明は、請求項1または請求項2の発明において、前記設定テーブルには、前記同期制御命令の実行時に検出されるエラーの有無に対応したエラーコードを格納する領域が、前記設定値を格納する領域に連続した領域として設けられているものであり、設定範囲外の設定値が設定テーブルに格納されたり、演算不可となったりすると、設定テーブルに格納されたエラーコードによってエラー内容を容易に判断することができる。
【0096】
請求項5の発明は、請求項1ないし請求項4の発明において、前記加速期間および前記減速期間においてモータの速度が一定加速度で連続的に変化する周波数を演算値として求めるから、一定加速度の加減速動作を伴う直線補間制御を実現できる。
【0097】
請求項6の発明は、請求項1ないし請求項4の発明において、前記設定テーブルに設定される設定値として加速度比率を含み、前記加速期間および前記減速期間においてモータの速度が前記加速度比率に従って連続的に変化する周波数を演算値として求めるから、加速度が連続的に変化するような加減速動作を伴う直線補間制御を実現できる。
【図面の簡単な説明】
【図1】 本発明の第1実施形態の概念説明図である。
【図2】 同上に用いる設定テーブルを示す図である。
【図3】 同上に用いる設定テーブルを示す図である。
【図4】 同上によるシステム構成例を示すブロック図である。
【図5】 本発明の第2実施形態の動作説明図である。
【図6】 同上に用いる設定テーブルを示す図である。
【図7】 同上の動作説明図である。
【図8】 同上に用いる設定テーブルを示す図である。
【図9】 同上の動作説明図である。
【図10】 同上の動作説明図である。
【図11】 同上の動作説明図である。
【図12】 同上の動作説明図である。
【図13】 本発明の第3実施形態を示す動作説明図である。
【図14】 本発明の第4実施形態を示す動作説明図である。
【図15】 本発明の第5実施形態を示す動作説明図である。
【図16】 同上の動作説明図である。
【図17】 同上の動作説明図である。
【図18】 同上の動作説明図である。
【図19】 本発明の第6実施形態を示す動作説明図である。
【図20】 同上の動作説明図である。
【図21】 参考例1を示す動作説明図である。
【図22】 同上に用いる設定テーブルを示す図である。
【図23】 同上に用いる設定テーブルを示す図である。
【図24】 同上の動作説明図である。
【図25】 参考例2を示す動作説明図である。
【図26】 同上の動作説明図である。
【図27】 参考例3を示す概念説明図である。
【図28】 同上の動作説明図である。
【図29】 参考例4を示す概念説明図である。
【図30】 参考例5を示す概念説明図である。
【図31】 同上の動作説明図である。
【図32】 (a)(b)はそれぞれ本発明の基本構成を示すブロック図である。
【図33】 従来例を示す動作説明図である。
【図34】 同上の動作説明図である。
【図35】 同上のブロック図である。
【符号の説明】
1 CPUユニット
1a マイコン
1b 専用集積回路
1c ソフトウェア
2 電源ユニット
3 専用ユニット(モータ制御ユニット)
4 増設ユニット
Tb 設定テーブル
Claims (6)
- パルス列の周波数に応じて速度が決定されるとともにパルス列のパルス数に応じて位置が決定される複数台のモータを同時に起動しかつ同時に停止させる同期制御を行うように、シーケンスプログラムに従ってパルス列を発生する機能を備えたプログラマブルコントローラであって、シーケンスプログラムを実行するマイコンのシステムプログラムに複数のモータに対するパルス列の発生を指示する同期制御命令が組み込まれており、同期制御命令の実行時に必要な設定値として少なくとも初速度、最高速度、加減速時間、移動量を格納する設定テーブルを備え、同期制御命令の実行時に設定テーブルから読み出した設定値を用いて直線補間制御を行うようにパルス列を発生させるとともに、パルス列の発生後に加速制御を行う加速期間を有し、パルス列の停止前に減速制御を行う減速期間を有しており、同期制御命令の実行時には加速期間および減速期間においてモータの速度が連続的に変化する周波数を演算値として求め、この演算値に基づいてパルス列を発生させ、加速期間および減速期間には複数のパルス列について周波数を変化させるタイミングを各別に一定値として設定するとともに、前記複数のパルス列の最高速到達時間を一致させるように前記タイミングを調節することを特徴とするプログラマブルコントローラ。
- シーケンスプログラムを実行するCPUユニットと、他のユニットとを接続して構成されるプログラマブルコントローラであって、前記同期制御命令がCPUユニットにおいて実行されるとともにCPUユニットに前記設定テーブルが設けられていることを特徴とする請求項1記載のプログラマブルコントローラ。
- 前記設定テーブルには、前記同期制御命令の実行時に算出される演算値を格納する領域が、前記設定値を格納する領域に連続した領域として設けられていることを特徴とする請求項1または請求項2記載のプログラマブルコントローラ。
- 前記設定テーブルには、前記同期制御命令の実行時に検出されるエラーの有無に対応したエラーコードを格納する領域が、前記設定値を格納する領域に連続した領域として設けられていることを特徴とする請求項1または請求項2記載のプログラマブルコントローラ。
- 前記加速期間および前記減速期間においてモータの速度が一定加速度で連続的に変化する周波数を演算値として求めることを特徴とする請求項1ないし請求項4のいずれか1項に記載のプログラマブルコントローラ。
- 前記設定テーブルに設定される設定値として加速度比率を含み、前記加速期間および前記減速期間においてモータの速度が加速度比率に従って連続的に変化する周波数を演算値として求めることを特徴とする請求項1ないし請求項4のいずれか1項に記載のプログラマブルコントローラ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001346739A JP3852572B2 (ja) | 2001-11-12 | 2001-11-12 | プログラマブルコントローラ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001346739A JP3852572B2 (ja) | 2001-11-12 | 2001-11-12 | プログラマブルコントローラ |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003150209A JP2003150209A (ja) | 2003-05-23 |
JP3852572B2 true JP3852572B2 (ja) | 2006-11-29 |
Family
ID=19159850
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001346739A Expired - Fee Related JP3852572B2 (ja) | 2001-11-12 | 2001-11-12 | プログラマブルコントローラ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3852572B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6215003B2 (ja) * | 2013-10-30 | 2017-10-18 | 株式会社キーエンス | プログラマブルコントローラ、拡張ユニット及びプログラム作成支援システム |
-
2001
- 2001-11-12 JP JP2001346739A patent/JP3852572B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003150209A (ja) | 2003-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4528632A (en) | Industrial articulated robot linear interpolation control device | |
JP4576260B2 (ja) | モータ制御装置 | |
US20040236462A1 (en) | Numerical control apparatus for machine tool | |
JP3852572B2 (ja) | プログラマブルコントローラ | |
JPS61150699A (ja) | ステツプモ−タ制御装置 | |
US20220173675A1 (en) | Method for the vibration-reduced operation of a bldc motor | |
JP2003224998A (ja) | ステッピングモータ駆動方法 | |
JP3719044B2 (ja) | 位置決め制御装置 | |
WO2002033815A1 (fr) | Procede de commande de l'acceleration/deceleration d'un moteur | |
JPS6234210A (ja) | 原点位置の検出装置 | |
JP2001062678A (ja) | 数値制御装置 | |
JP4014777B2 (ja) | ねじ切り加工装置 | |
JPH0561551A (ja) | プログラマブルコントローラ | |
JPS6232508A (ja) | 数値制御装置のサ−ボ系の位置決め制御方法 | |
JP2001154719A (ja) | 自由曲線補間方法 | |
JPS63157206A (ja) | 数値制御装置 | |
JPH1049233A (ja) | パルスモータの制御装置 | |
JP2002284341A (ja) | ターンテーブル制御システムおよびターンテーブル制御システムの制御方法 | |
JP3399745B2 (ja) | 多系統数値制御装置における重畳制御方法および多系統数値制御装置 | |
JP3013998B2 (ja) | 数値制御装置における回転軸零点復帰方法 | |
JPH0736599U (ja) | 2相ステッピングモータの駆動装置 | |
JPH08214597A (ja) | モータの制御方法および制御装置 | |
RU1817061C (ru) | Устройство дл управлени намоточным станком | |
JPH08186997A (ja) | パルスモータの原点復帰制御方法 | |
JPH0797289B2 (ja) | 位置決め装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050613 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050906 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051107 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060816 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060829 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090915 Year of fee payment: 3 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090915 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090915 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100915 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110915 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110915 Year of fee payment: 5 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110915 Year of fee payment: 5 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110915 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120915 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120915 Year of fee payment: 6 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120915 Year of fee payment: 6 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130915 Year of fee payment: 7 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |