JP3852572B2 - Programmable controller - Google Patents

Programmable controller Download PDF

Info

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
Application number
JP2001346739A
Other languages
Japanese (ja)
Other versions
JP2003150209A (en
Inventor
卓弘 吉田
陽一 田中
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Electric Works Co Ltd
Original Assignee
Matsushita Electric Works Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Works Ltd filed Critical Matsushita Electric Works Ltd
Priority to JP2001346739A priority Critical patent/JP3852572B2/en
Publication of JP2003150209A publication Critical patent/JP2003150209A/en
Application granted granted Critical
Publication of JP3852572B2 publication Critical patent/JP3852572B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Programmable Controllers (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、パルス列により回転速度および回転角度が制御されるモータを制御する際に、複数個のモータの回転開始と回転停止とのタイミングを一致させる同期運転を可能とするプログラマブルコントローラに関するものである。
【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】

Figure 0003852572
【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 設定テーブル[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a programmable controller that enables synchronous operation to match the timings of rotation start and rotation stop of a plurality of motors when controlling a motor whose rotation speed and rotation angle are controlled by a pulse train. .
[0002]
[Prior art]
In general, in a motor that rotates by a fixed angle for each pulse input, such as a stepping motor, the rotation speed is determined by the frequency (cycle) of the input pulse train, and the rotation angle of the rotating shaft is the number of pulses included in the pulse train. Determined by. For example, if there is a pulse motor designed so that the rotation shaft makes one rotation with 1000 pulses, the rotation shaft can be stopped after 1.5 rotations by giving a pulse train of 1500 pulses.
[0003]
In controlling this type of motor, it may be necessary to control the timings of rotation start and stop of a plurality of motors to coincide with each other, and this type of control is called synchronous control. Here, in order to simplify the explanation, the synchronous control of two motors will be considered. Now, as shown in FIG. 33, the rotation start time of each motor is set as the origin O, and the rotation angles required for each motor in the period from the rotation start to the rotation stop are respectively expressed on the X axis and the Y axis. think of. In the figure, the lengths of the arrows on the X axis and the Y axis represent the rotation angle. Here, if each motor is controlled so that the ratio of the rotation angle during operation of each motor is kept constant, the rotation angle of each motor during operation of both motors becomes a component of the straight line tr shown in FIG. It must be controlled to satisfy. Hereinafter, such control is referred to as linear interpolation control. This type of control corresponds to, for example, control for linearly moving to a target position on an XY table.
[0004]
On the other hand, taking into account the inertia of the motor itself and the inertia of the load driven by the motor, as shown in FIG. 34, there is provided an acceleration period T1 for performing acceleration control for increasing the rotation speed with the passage of time after the start of rotation of each motor. Before the motors stop rotating, it is necessary to provide a deceleration period T3 in which deceleration control is performed to reduce the rotational speed over time. Between the acceleration control and the deceleration control, a constant speed period T2 in which the rotation speed is constant is set. Therefore, in order to perform the linear interpolation control, not only keep the ratio of the rotation angles of the two motors constant during the constant speed period T2, but also keep the ratio of the rotation angles constant during the acceleration period T1 and the deceleration period T3. Don't be. That is, the acceleration period T1 and the deceleration period T3 are the same for both motors. Also, since the number of pulses included in each pulse train given to each motor after the start of rotation of each motor is determined by the rotation angle required for each motor, the frequency of the pulse train given to each motor is set to perform linear interpolation control. To control.
[0005]
Here, since the acceleration period T1 and the deceleration period T3 are generally set equal to each other, each time of the acceleration period T1 and the deceleration period T3 is hereinafter referred to as an acceleration / deceleration time. Further, the frequency of the pulse train at the start of rotation (that is, the initial speed and the length of the vertical line at the start of the acceleration period T1 in FIG. 34) and the frequency of the pulse train at the time of rotation stop (that is, the final speed). 34 and the length of the vertical line at the end of the deceleration period T3 in FIG. 34, and the frequency of the pulse train determines the rotational speed of the motor as described above. The frequency of the pulse train when rotation is stopped is called the initial speed. The frequency of the pulse train in the constant speed period T2 is called the maximum speed, and the number of pulses of the pulse train input to each motor is called the movement amount. The rate of change of the frequency of the pulse train in the acceleration period T1 and the deceleration period T3 can be determined as (maximum speed−initial speed) / (acceleration / deceleration time) using the initial speed, the maximum speed, and the acceleration / deceleration time. In order to control each motor, it is only necessary to obtain four parameters (initial speed, maximum speed, acceleration / deceleration time, movement amount) as parameters for each motor.
[0006]
When the XY table is actually controlled by two motors, the initial speed is not given to the X-axis motor and the Y-axis motor. The maximum speed is given as a composite value of the X axis and the Y axis. Hereinafter, the composite value of the initial speed is referred to as the composite initial speed, and the composite value of the maximum speed is referred to as the composite maximum speed. Since the acceleration / deceleration time is common to the X-axis and the Y-axis as described above, one acceleration / deceleration time may be used in common for each motor, and the movement amount is given separately for each individual motor. If the specifications of both motors are the same, the slope of the straight line tr in FIG. 33 is equal to the ratio of the moving amounts of the individual motors. Therefore, by using the combined initial speed and the combined maximum speed and the moving amount for each motor, The initial speed and the maximum speed for each motor can be obtained.
[0007]
[Problems to be solved by the invention]
By the way, in order to perform synchronous control of two motors as in the linear interpolation control described above, it is necessary to give a combined initial speed, a combined maximum speed, an acceleration / deceleration time, and a movement amount for each motor. By obtaining four sets of parameters for each motor from these data, each motor can be controlled.
[0008]
This type of synchronization control is realized using a programmable controller. However, as shown in FIG. 35, in a programmable controller of a large-scale system that has a CPU unit 1 and a power supply unit 2 separately and further combines an input / output unit (not shown), a dedicated unit (motor) At present, the control unit 3 is provided. That is, the CPU unit 1 executes a normal command of the programmable controller, and the dedicated unit 3 controls the motor including the synchronous control. In other words, the dedicated unit 3 is required in addition to the CPU unit 1 in order to realize synchronous control of a plurality of motors, and there is a problem that the cost of the programmable controller as a whole is increased. Further, there is a problem that in order to use the dedicated unit 3, it is necessary to learn how to use the dedicated unit 3.
[0009]
The present invention has been made in view of the above reasons, and an object of the present invention is to provide a programmable controller that can easily and inexpensively realize synchronous control of a plurality of devices.
[0010]
[Means for Solving the Problems]
  In the invention of claim 1, the speed is determined according to the frequency of the pulse train and the position is determined according to the number of pulses in the pulse train.motorA programmable controller having a function of generating a pulse train in accordance with a sequence program so as to perform synchronous control for simultaneously starting and stoppingFor microcomputer system programs that execute sequence programspluralmotorTo generate a pulse train forSynchronous control instructions are incorporated,Setting values required when executing synchronous control instructionsAs at least initial speed, maximum speed, acceleration / deceleration time, travel amountIt has a setting table to store, using the setting value read from the setting table when executing the synchronous control instructionPerform linear interpolation controlGenerate a pulse trainAnd an acceleration period in which acceleration control is performed after the pulse train is generated, and a deceleration period in which deceleration control is performed before the pulse train is stopped, and when the synchronous control command is executed, the motor speed is increased during the acceleration period and the deceleration period. A continuously changing frequency is obtained as a calculated value, a pulse train is generated based on the calculated value, and the timing for changing the frequency for a plurality of pulse trains is set as a constant value for each of the acceleration period and the deceleration period, and Adjust the timing to match the fastest arrival times of multiple pulse trainsIt is characterized by that.
[0011]
A second aspect of the invention is a programmable controller configured by connecting a CPU unit that executes a sequence program and another unit according to the first aspect of the invention, wherein the synchronization control instruction is executed in the CPU unit. And a setting table is provided in the CPU unit.
[0012]
According to a third aspect of the present invention, in the first or second aspect of the present invention, in the setting table, an area for storing an operation value calculated when the synchronous control instruction is executed is an area for storing the setting value. It is provided as a continuous area.
[0013]
According to a fourth aspect of the present invention, in the first or second aspect of the present invention, the setting table includes an area for storing an error code corresponding to the presence or absence of an error detected when the synchronization control instruction is executed. It is characterized by being provided as an area continuous to the area for storing the value.
[0014]
  The invention of claim 5 is the invention of claims 1 to 4,A frequency at which the motor speed continuously changes at a constant acceleration during the acceleration period and the deceleration period is obtained as a calculation value.It is characterized by that.
[0015]
  The invention of claim 65. The invention according to claim 1, wherein an acceleration ratio is included as a set value set in the setting table, and a frequency at which the motor speed continuously changes in accordance with the acceleration ratio in the acceleration period and the deceleration period is calculated. AskingIt is characterized by that.
[0031]
DETAILED DESCRIPTION OF THE INVENTION
The present invention basically enables synchronous control of a plurality of motors without using a dedicated unit for performing motor control in a programmable controller having a processor for executing a sequence program. Therefore, a configuration is adopted in which a synchronization control command is newly provided as a command that can be described in the sequence program, and the synchronization control command is executed in an apparatus including a processor that executes the sequence program. A device including a processor that executes a sequence program is also provided with a setting table for registering various parameters necessary for synchronous control.
[0032]
In the embodiment described below, an example in which a command for synchronous control is executed in the CPU unit 1 used in combination with the power supply unit 2 or the like as in the conventional configuration will be described. As shown in FIG. 32, the CPU unit 1 includes a microcomputer including a processor for executing a sequence program (in addition to a processor, a system memory storing a system program, a program memory storing a sequence program, and a sequence program being executed) 1a) including a data memory for storing generated data.
[0033]
By the way, the sequence program of the programmable controller is based on basic instructions centering on bit processing such as on / off input / output, opening / closing of contacts, or basic logical operations such as logical product operation and logical sum operation, and four arithmetic operations and comparisons. It is described by application instructions for performing various data processing. A command for performing synchronous control of a plurality of motors described in the following embodiments (hereinafter referred to as a synchronous control command) is prepared in the CPU unit 1 as an application command. In addition, as a configuration for executing this instruction, a dedicated integrated circuit 1b for synchronization control can be adopted as shown in FIG. 32A, but the synchronization control instruction is used as software as shown in FIG. When the execution of the synchronization control instruction is instructed in the sequence program, the software 1c may be executed by the microcomputer 1a. If the configuration in which the synchronization control instruction is incorporated into the CPU unit 1 with the software 1c is employed, the synchronization control instruction can be easily added to the CPU unit with the work of changing the system program because the hardware is not changed.
[0034]
As described in the prior art, since various parameters are required to perform synchronous control of a plurality of motors, setting a synchronous control command requires a plurality of parameters as operands of the synchronous control command. On the other hand, a logical symbolic language or a ladder language is used as a language for describing a sequence program of a programmable controller. In particular, if a large number of parameters are described in a ladder diagram described in the ladder language, the readability is lowered, and the sequence program The flow of is difficult to understand. Therefore, in the embodiment described below, a setting table for setting parameters necessary for the synchronization control instruction is provided, and only the position of the setting table to be read is described in the synchronization control instruction to improve the readability of the sequence program. That is, by reading the parameters from the setting table at the position specified at the time of executing the synchronous control command, it is unnecessary to write a plurality of parameters in the synchronous control command.
[0035]
(First embodiment)
This embodiment is an example in which the synchronization control of two motors is performed, and as shown in FIG. 1A, the operand for the operator F175 of the synchronization control command is the start address DT1000 of the setting table Tb. The operator F175 can know the position of the setting table Tb by the head address DT1000. The setting table Tb may be provided in an appropriate area of the memory provided in the CPU unit 1. In the setting table Tb, as shown in FIG. 1B, four sets of (control code, composite speed, X-axis movement amount, Y-axis movement amount) are registered as parameters. That is, in the synchronous control command of this embodiment, the initial speed and the acceleration / deceleration time described as the prior art are not considered. In other words, it is assumed that the rotation speed of the rotation shaft reaches the combined speed immediately after the start of rotation of the motor, and the rotation speed of the rotation shaft is maintained at the combined speed until just before the rotation of the motor is stopped. Here, the control code is an area for setting a flag or the like as necessary. Further, in the setting table Tb in the illustrated example, two consecutive address areas on the memory are allocated for each parameter, and if DT1000 is the head address, DT1007 (= DT1000 + 7) is read by the synchronization control instruction. It becomes the last address of.
[0036]
As explained in the prior art, when synchronous control is performed for two motors, the synchronous control calculates the speed for each motor from the ratio of the X-axis movement amount to the Y-axis movement amount and the combined speed. Therefore, by using a set of four parameters as in this embodiment, the number of parameters can be reduced as compared with the case where parameters are set for each motor.
[0037]
The speed obtained for each motor is written in a region that is continuous with the region in which the above-described four sets of parameters are set in the setting table Tb. That is, since the synchronization control command in this embodiment uses 8 addresses on the memory, if the head address is DT1000, the parameters stored in DT1000 to DT1007 are used in the synchronization control command as shown in FIG. Therefore, if four addresses are required to store the speeds obtained for each motor (hereinafter referred to as the X-axis component speed and the Y-axis component speed), DT1008 to DT1011 subsequent to DT1007 are changed to the X-axis component speed and Y Used for storage area of axis component speed. As described above, if the X-axis component speed and the Y-axis component speed obtained by calculation from the parameters set in the setting table Tb are also stored in the setting table Tb, the calculation result can be referred to during control. In addition, the calculation result can be confirmed even after the control, and convenience is enhanced. In addition, it is necessary to set separate indicators for reading the X-axis component speed and the Y-axis component speed by storing the parameters set in the setting table Tb and the calculation results obtained from the parameters in a continuous area of the address space. And can be extracted using the head address (DT1000 in the present embodiment) of the setting table Tb. In short, in this embodiment, the first half of the area secured as the setting table Tb in the memory address space is a parameter used for the calculation of the synchronous control instruction, and the second half is the result obtained by the calculation at the time of executing the synchronous control instruction. Store it. However, it is not essential that the area for storing the X-axis component speed and the Y-axis component speed is continuous with the area for storing the parameters used for the synchronization control command.
[0038]
By the way, when the X-axis component speed and the Y-axis component speed, which are the speeds of the respective motors, are obtained based on the parameters stored in the setting table Tb, depending on the size of the parameters set in the setting table Tb, There is a possibility of deviating from the operable range of the motor. For example, there is a possibility that the speed obtained as the calculation result becomes a negative value, or the speed obtained as the calculation result exceeds the maximum speed allowed by the motor specifications. In some cases, the calculation itself cannot be performed (for example, division by zero). Therefore, when a calculation result deviating from the operable range of the motor is obtained or when the calculation cannot be performed, the fact that there is a problem with the parameter set in the setting table Tb and the cause are reported. In order to facilitate identification, an error code is written in the setting table Tb. As shown in FIG. 3, it is desirable to write the error code in an area continuous with the storage area of the X-axis component speed and the Y-axis component speed.
[0039]
Table 1 shows examples of error code settings. However, “H” accompanying the number in the error code indicates that the number is a hexadecimal number.
[0040]
[Table 1]
Figure 0003852572
[0041]
It should be noted that the area for storing the error code is desirably an area continuous with the X-axis component speed and the Y-axis component speed in the setting table Tb, similarly to the X-axis component speed and the Y-axis component speed. That is, the error code is also a kind of calculation result obtained when executing the synchronization control instruction, and is stored in the latter half of the setting table Tb. In this way, it is not necessary to set a separate indicator for reading the error code, and it is possible to extract using the head address (DT1000 in this embodiment) of the setting table Tb. However, it is not essential that the area for storing the error code is continuous with the area for storing the X-axis component speed and the Y-axis component speed.
[0042]
Therefore, if the synchronization control command in the present embodiment is described in the sequence program, the setting table Tb is read when the synchronization control command is executed, and each motor is used using the parameters registered in the setting table Tb. Each speed is obtained, and the frequency of the pulse train for driving each motor is determined. For example, in the example shown in FIG. 1A, the synchronization control command F175 is connected to the contact R0, and the synchronization control command F175 is executed when the contact R0 is turned on.
[0043]
In the configuration of the present embodiment, the CPU unit 1 can execute the synchronization control command without providing a dedicated unit for controlling the motor as in the conventional configuration. Therefore, a system for performing the synchronization control of two motors is provided. It can be easily and inexpensively constructed. For example, as shown in FIG. 4, by adding an expansion unit 4 such as an input / output unit to the CPU unit 1, two motors can be controlled synchronously without adding a dedicated unit for controlling the motor. Become. In the illustrated example, the power supply unit is not shown.
[0044]
In this embodiment, an example in which synchronous control is performed for two motors has been described. However, when synchronous control of three or more motors is performed, the same command is set for three or more motors, and the command A setting table corresponding to the above may be provided. Further, in the above-described embodiment, an example is shown in which the X-axis component speed and the Y-axis component speed obtained as the speed for driving each motor, and the error code generated by executing the synchronization control command are stored in the setting table Tb. However, a synchronous control command in which the storage of the error code in the setting table Tb is omitted, or a synchronous control command in which the storage of the X-axis component speed and the Y-axis component speed in the setting table Tb is omitted may be prepared.
[0045]
(Second Embodiment)
In the first embodiment, the control example in which the acceleration period and the deceleration period described as the prior art are not provided is shown. However, as shown in FIG. 5, when the acceleration period T1 and the deceleration period T3 are provided, the initial speed and The acceleration / deceleration time must be indicated to each motor. However, in this embodiment, the speed immediately before the rotation stop is matched with the initial speed, and the lengths of the acceleration period T1 and the deceleration period T3 are both matched with the acceleration / deceleration time. Therefore, in this embodiment, as parameters to be set in the setting table Tb corresponding to the synchronization control command, as shown in FIG. 6, instead of the synthesis speed in the first embodiment, the synthesis initial speed, the synthesis maximum speed, Set the deceleration time. That is, the parameters set in the setting table Tb in the present embodiment are six sets of (control code, combined initial speed, combined maximum speed, acceleration / deceleration time, X-axis movement amount, Y-axis movement amount). By setting the parameters for synchronous control in this way, synchronous control with acceleration / deceleration becomes possible. In short, as in the first embodiment, in this embodiment, when a synchronization control instruction is described in a sequence program, the start address of the setting table Tb may be specified as an operand accompanying the operator.
[0046]
When the synchronous control command is executed, as described in the prior art, the initial speed and the maximum speed for each motor are the X-axis component initial speed, the X-axis component maximum speed, the Y-axis component initial speed, The maximum Y-axis component speed is obtained. Further, as described in the first embodiment, an error code is also extracted. Data obtained by calculation based on the parameters set in the setting table Tb is stored in the latter half of the setting table Tb.
[0047]
By the way, in this embodiment, the frequency range and the number of acceleration / deceleration stages for each motor are also obtained by calculation from the parameters set in the setting table Tb when the synchronous control command is executed. The frequency range is the frequency difference between the frequency of the pulse train corresponding to the initial speed and the frequency of the pulse train corresponding to the maximum speed, and the number of acceleration / deceleration stages is the number of times each motor switches the frequency during the acceleration / deceleration time. A specific procedure for determining the number of acceleration / deceleration steps will be described later.
[0048]
In the synchronous control of this embodiment, the acceleration is constant in the acceleration period T1 and the deceleration period T3, and the absolute value of the acceleration is set equal in the acceleration period T1 and the deceleration period T3. However, since it is difficult to change the acceleration continuously in actual control, as shown in FIG. 7, the speed is changed by a constant increment (hereinafter referred to as acceleration Δf) for each speed switching time Δta. Let Although the speed switching time Δta can be set as appropriate, in this embodiment, the speed switching time Δta is set in the form of 1 / Fmin using the synthesized initial speed (frequency) Fmin stored in the setting table Tb. To do. When the speed switching time Δta is determined, the number of acceleration / deceleration steps for changing the speed in the acceleration period T1 or the deceleration period T3 can be obtained by dividing the acceleration / deceleration time stored in the setting table Tb by the speed switching time Δta. That is, if the frequency range, which is the difference between the combined initial speed Fmin and the combined maximum speed Fmax stored in the setting table Tb, is divided by the acceleration / deceleration stage number obtained as described above, the frequency range is changed for each speed switching time Δta. The velocity acceleration Δf can be determined.
[0049]
In order to obtain the frequency range and the number of acceleration / deceleration stages for each motor as in the setting table Tb of the present embodiment shown in FIG. 6, the above-described calculation may be performed for each motor. That is, when the synchronous control command is executed, the parameters set in the setting table Tb are read as in the first embodiment, and the above-described calculation is performed based on these parameters to obtain the X-axis component initial velocity and the X-axis component maximum. In addition to speed, Y-axis component initial speed, Y-axis component maximum speed, X-axis frequency range, Y-axis frequency range, X-axis acceleration / deceleration stage number, Y-axis acceleration / deceleration stage number, error code are determined, and these data are set in a table Store in Tb. Further, each motor is controlled using the obtained data.
[0050]
By the way, the number of acceleration / deceleration steps for each motor can be obtained by the following procedure. Here, an example will be described in which the reciprocal of the initial speed (frequency) is obtained as the number of acceleration / deceleration stages for the motor having the minimum initial speed among the motors, and data for each motor is calculated based on the number of acceleration / deceleration stages.
[0051]
As shown in FIG. 8, in the setting table Tb, as shown in FIG. 8, (control code, synthesized initial speed, synthesized maximum speed, acceleration / deceleration time, X axis movement) A set of six parameters (amount, Y-axis movement amount) is set as a parameter. However, hereinafter, the combined initial speed, combined maximum speed, acceleration / deceleration time, X-axis movement amount, and Y-axis movement amount are represented by Fmin, Fmax, ta, psx, and psy, respectively.
[0052]
In addition, the data required for execution of the synchronous control command for these parameters includes the initial speed, maximum speed, frequency range, number of acceleration / deceleration steps, acceleration, speed switching time, acceleration operation accumulated time, actual time for each motor. There are output time and output time errors, and data that is commonly obtained from parameters for both motors includes the number of acceleration / deceleration stages, error codes, and frequency switching time. That is, X-axis component initial speed, X-axis component maximum speed, Y-axis component initial speed, Y-axis component maximum speed, X-axis frequency range, Y-axis frequency range, X-axis acceleration / deceleration stage number, Y-axis acceleration / deceleration stage number, X-axis Acceleration, Y-axis acceleration, X-axis speed switching time, Y-axis speed switching time, X-axis acceleration operation accumulation time, Y-axis acceleration operation accumulation time, X-axis actual output time, Y-axis actual output time, X-axis output time error, There is a Y-axis output time error, which is expressed as fxmin, fxmax, fymin, fymax, xrang, ylang, xdansu, ydansu, Δfx, Δfy, Δtax, Δtay, txadd, tyadd, txr, tyr, txg, tyg, respectively. The number of acceleration / deceleration steps, error code, and frequency switching time that are commonly obtained from the parameters for both motors are represented by dansu, errcode, and Δta, respectively. The meaning of each value will be described later.
[0053]
When the synchronous control command is executed, first, the X-axis component initial speed and the Y-axis component initial speed (fxmin, fymin), the X-axis component maximum speed and the Y-axis component maximum speed (fxmax, fymax) are obtained. It is done. Here, as shown in FIG. 9, when the X-axis component initial speed fxmin is smaller than the Y-axis component initial speed fymin, that is, when the X-axis acceleration / deceleration stage number xdansu is smaller than the Y-axis acceleration / deceleration stage number ydansu, An X-axis speed switching time Δtxa that is a period 1 / fxmin of the initial speed fxmin is used as a speed switching time Δta common to the motors. That is, the acceleration / deceleration stage number dansu is set to dansu = ta / Δta (= ta / Δtax) with respect to the acceleration / deceleration time ta, and the X-axis acceleration Δfx and the Y-axis acceleration Δfy are obtained in the following manner.
Δfx = (fxmax−fxmin) / dansu
Δfy = (fymax−fymin) / dansu
As a result, as shown as a stepped shape in FIG. 10, the timings of speed switching of both motors in the acceleration period T1 coincide.
[0054]
Here, the acceleration / deceleration stage number dansu must be a positive integer value, but the acceleration / deceleration stage number obtained as described above does not become an integer value but causes an error. Therefore, first, the number of pulses output in the time closest to the speed switching time Δta for the X-axis component initial speed fxmin and the Y-axis component initial speed fymin is obtained, and the actual X-axis output for actually outputting a pulse train with the obtained number of pulses Time txr and Y-axis actual output time tyr are obtained. The error caused by this calculation is added to or subtracted from the speed switching time Δta with respect to the speed of the next stage. For example, an X-axis output time error txg, which is an error of the X-axis component with respect to the speed switching time Δta, and a Y-axis output time error tyg, which is an error of the Y-axis component, are added to the speed switching time Δta, and the time Δta + txg, Δta + tyg The number of pulses output in the near time is calculated for fxmin + Δfx and fymin + Δfy. The actual output time for actually outputting the pulse train is obtained with respect to the number of pulses, and the error caused by this calculation is further added to or subtracted from the speed switching time Δta with respect to the speed of the next stage. In the same manner, the number of pulses at each speed is adjusted so as to correct the error.
[0055]
In actual calculation, as shown in FIG. 11 as an example of the X-axis component, the actual output time txr for outputting two pulses at a certain speed is Δta−Δtxg1 (Δtxg1 is an error), and three pulses are output. Assuming that the actual output time txr to be output is Δta + txg2 (Δtxg2 is an error), the X-axis output time error txg is −txg1 when txg1 <txg2, so that txr = Δta−txg1, and X when txg1> txg2. Since the shaft output time error txg becomes txg2, it is assumed that txr = Δta + txg2. In the illustrated example, since txg1 <txg2, Δta−txg1 is used as the X-axis actual output time txr, and the number of pulses at this speed is determined. Further, the value of the X-axis output time error txg in the setting table Tb is −txg1.
[0056]
At the speed of the next stage, as shown as an example of the X-axis component in FIG. 12, the number of pulses for Δta + txg (= Δta + txg1) is obtained, and the same calculation as that shown in FIG. 11 is performed to obtain the error components Δtxg1 ′, Δtxg2 ′. Txg1 ′ is adopted as the X-axis output time error txg when txg1 ′ <txg2 ′, Xx actual output time txr is set to txr = Δta + txg−txg1 ′, and X-axis output time error when txg1 ′> txg2 ′. txg2 ′ is adopted as txg, and the X-axis actual output time txr is set to txr = Δta + txg + txg2 ′. Further, the number of pulses at this speed is determined from the X-axis actual output time txr. Since txg1 ′ <txg2 ′ in the illustrated example, Δta + txg1−txg1 ′ is used as the X-axis actual output time txr, and the number of pulses at this speed is determined. At this time, the value of the X-axis output time error txg in the setting table Tb becomes −txg1 ′.
[0057]
By repeating the correction calculation as described above, the fastest arrival times of both motors are made to coincide, and a linear interpolation operation with acceleration / deceleration is realized.
[0058]
In the present embodiment, the lengths of the acceleration period T1 and the deceleration period T3 are set equal, but the lengths of the acceleration period T1 and the deceleration period T3 can be different, and the initial speed and Although the final speed is matched, it is not essential that the initial speed and the final speed match. However, when the acceleration period T1 and the deceleration period T3 are different, or when the initial speed and the final speed are different, it is necessary to set each, and the acceleration period T1 and the deceleration are set using the set parameters. It is necessary to obtain the frequency range and the number of acceleration / deceleration steps in the period T3. Similarly to the first embodiment, it is not essential to store the data obtained by the calculation using the parameters set in the setting table Tb in a region continuous with the parameter storage region set in advance. You may store in the area | region provided separately above. However, if the storage area for the set parameter and the data obtained by the calculation is made continuous, it is not necessary to set a separate indicator for extracting the data obtained by the calculation from the memory. Other configurations and operations are the same as those in the first embodiment.
[0059]
(Third embodiment)
The present embodiment shows an example in which an acceleration period T1 and a deceleration period T3 are provided as in the second embodiment. However, in the second embodiment, the number of acceleration / deceleration stages of each motor is matched in the acceleration period T1 and the deceleration period T3. However, in this embodiment, the number of acceleration / deceleration stages is set for each motor.
[0060]
That is, in the second embodiment, the speed switching time Δta is set based on the smaller of the X-axis acceleration / deceleration stage number xdansu and the Y-axis acceleration / deceleration stage number ydansu. However, in this embodiment, the cycle of the X-axis component initial speed fxmin 1 / fxmin is used for the X-axis speed switching time Δtax, and the cycle 1 / fymin of the Y-axis component initial speed (fymin) is used for the Y-axis speed switching time Δtay. Therefore, the acceleration / deceleration stage number is obtained for each motor with respect to the acceleration / deceleration time ta. The X-axis acceleration / deceleration stage number xdansu is xdansu = ta / Δtax, and the Y-axis acceleration / deceleration stage number ydansu is ydansu = ta / Δtay. Desired.
[0061]
As a result, the X-axis acceleration Δfx and the y-axis acceleration Δfy are obtained in the following form.
Δfx = (fxmax−fxmin) / xdansu
Δfy = (fymax−fymin) / ydansu
Since the processing procedure after obtaining the X-axis acceleration Δfx and the y-axis acceleration Δfy is the same as that of the second embodiment, the description thereof is omitted.
[0062]
(Fourth embodiment)
In this embodiment, as in the third embodiment, the X-axis acceleration Δfx and the y-axis acceleration Δfy are obtained based on the X-axis speed switching time Δtax and the Y-axis speed switching time Δtay, respectively. For the component initial speed fxmin, the number of pulses output in the time closest to the X-axis speed switching time Δtax is obtained, and for the Y-axis component initial speed fymin, the number of pulses output in the time closest to the Y-axis speed switching time Δtay is obtained. Further, an X-axis actual output time txr and a Y-axis actual output time tyr for actually outputting a pulse train with the number of pulses determined for each motor are obtained. Here, the X-axis actual output time txr and the Y-axis actual output time tyr are added to the accumulated acceleration operation times txadd and tyaadd of each motor. The X-axis acceleration operation accumulation time txadd and the Y-axis acceleration operation accumulation time tyadd mean the elapsed time from the start of the acceleration period T1 or the deceleration period T3. Therefore, the time obtained by subtracting the X-axis acceleration operation accumulated time txadd or the Y-axis acceleration operation accumulated time tyadd from the acceleration / deceleration time ta, which means the entire time of the acceleration period T1 to the deceleration period T3, is the remaining in the acceleration period T1 or the deceleration period T3. Meaning time. That is, the remaining time of the acceleration period T1 to the deceleration period T3 for each motor is ta-txadd and ta-tyadd, respectively.
[0063]
Thus, when the remaining time of the acceleration period T1 to the deceleration period T3 is obtained, the X-axis speed switching time Δtax and the Y-axis speed are calculated with the remaining number of acceleration / deceleration steps in the acceleration period T1 to the deceleration period T3 by performing the following calculation. The switching time Δtay can be corrected respectively.
Δtax = (ta−txadd) / (xdansu−1)
Δtay = (ta−tyadd) / (ydansu−1)
After obtaining the X-axis speed switching time Δtax and the Y-axis speed switching time Δtay, the number of pulses output in the time closest to the X-axis speed switching time Δtax and the Y-axis speed switching time Δtay obtained by recalculation is calculated as fxmin + Δfx. , Fymin + Δfy. The actual output time for actually outputting the pulse train with respect to the number of pulses is obtained for each motor, and the same correction calculation as in the second embodiment is performed.
[0064]
A specific example of the above-described calculation is shown in FIG. 13 using the X axis as an example. Here, when txg1 <txg2, the X-axis actual output time txr is determined as txr = Δta-txg1, and when txg1> txg2, the X-axis actual output time txr is determined as txr = Δta + txg2, and the number of pulses at this speed is determined.
[0065]
Since the X-axis acceleration operation accumulated time txadd is txr at the start of the speed of the next stage, the remaining time of the acceleration period T1 is ta-txr as shown in FIG. Here, if the X-axis acceleration / deceleration stage number xdansu is n, the remaining stage number is n−1. Therefore, the frequency switching time Δta is recalculated by dividing the remaining time by the remaining stage number. That is, Δta = (ta−txr) / (n−1). By repeating such correction calculation, linear interpolation operation with acceleration / deceleration can be realized so that the fastest arrival times of both motors coincide. Other configurations and operations are the same as those of the second embodiment.
[0066]
(Fifth embodiment)
In this embodiment, in the acceleration period T1 and the deceleration period T3, the speed of each motor is controlled while performing correction by adding the number of pulses by (1/2) Δf.
[0067]
That is, when the X-axis component initial speed fxmin, the Y-axis component initial speed fymin, the X-axis component maximum speed fxmax, and the Y-axis component maximum speed fymax stored in the setting table Tb are given, they are output at the time of acceleration / deceleration of each motor. The number of pulses to be expressed can be represented as the area of the hatched portion in FIG. Here, in the illustrated example, each component is described without being divided (that is, fmin is read as fxmin or fymin, and fmax is read as fxmax or fymax).
[0068]
By the way, in the acceleration period T1 to the deceleration period T3, it is ideal to continuously change the motor speed, and the ideal time change can be represented by a straight line L0 that rises to the right in FIG. On the other hand, in actual control, the speed changes stepwise, and the speed is changed by the acceleration Δf (that is, the X-axis acceleration Δfx and the Y-axis acceleration Δfy) obtained in each of the above-described embodiments. At this time, if the speed is changed as shown in the stepped form in FIG. 16, the number of pulses is insufficient for the hatched portion.
[0069]
Therefore, in the present embodiment, as shown in FIG. 17, (1/2) Δf is added to the initial speed at the start of the acceleration period T1, and thereafter, one stage before reaching the maximum speed (the number of acceleration / deceleration stages is set). If n stages are set, the acceleration up to (n-1) stages) is Δf, and the final stage acceleration is (1/2) Δf, so that the excess and deficiency are less than the ideal number of pulses at each speed. 17 (that is, the area of the hatched portion A1 and the hatched portion A2 are equal when shown for one-stage speed in FIG. 17), and as a result, the hatched portion is shown in FIG. 18 while changing the speed stepwise. As described above, the area can be controlled to be equal to the area of the hatched portion shown in FIG. 15, and the number of pulses of the pulse train for controlling the motor can be set to an ideal value.
[0070]
In addition, this embodiment can be combined with any of the second embodiment, the third embodiment, and the fourth embodiment described above, and by combining these, each of the linear interpolation controls with acceleration / deceleration is combined. The fastest arrival time of the motor can be matched.
[0071]
(Sixth embodiment)
In the second to fifth embodiments, control is performed so that the acceleration is kept constant in the acceleration period T1 and the deceleration period T2. In this embodiment, as shown in FIG. In the vicinity, an example in which the acceleration is controlled to be small is shown.
[0072]
Specifically, as shown in FIG. 20, the acceleration Δf of the speed for each speed switching time Δta described in the second embodiment is made smaller in the vicinity of the initial speed and in the vicinity of the maximum speed than in other periods. . In such a setting, an acceleration ratio as an acceleration change rate is set as a setting value in the setting table Tb so that the acceleration Δf changes in the pattern shown in FIG. 20, and the accelerations Δf1, Δf2,. , Δf (n−1), Δfn may be set. Other configurations and operations are the same as those of the second embodiment.
[0073]
  (Reference example 1)
  In each embodiment described above, an example in which linear interpolation control is performed using a plurality of motors has been shown.This exampleShows an example in which circular interpolation control is performed using two motors. That is, an example is shown in which control is performed so that the trajectory of the table passes on an arc when the X-axis motor and the Y-axis motor of the XY table are synchronously controlled.
[0074]
In this type of control, for example, as shown in FIG. 21, the movement trajectory Tr from the start position P1 to the end position P2 is controlled to pass on the arc, and the arc including the movement trajectory Tr can be defined. is necessary. As a method of defining the arc, in addition to the end point position P2, a method of giving a position (passing point position) Pm that is different from the start position P1 and the end point position P2 on the movement trajectory Tr and that should pass through; In addition to the end point position P, there is a method of giving the center O of the arc including the movement locus Tr.
[0075]
When the circular arc is defined by giving the passing point position Pm, as shown in FIG. 22, in addition to the control code and the composite speed, the X axis end point position, the Y axis end point position, the X axis passing point position, the Y axis The passing point position is set in the setting table Tb. In the synchronous control command, the radius r of the arc including the movement locus Tr, the X-axis center position, and the Y-axis center position are obtained based on these pieces of information.
[0076]
  On the other hand, when the arc is defined by giving the center O of the arc including the movement locus Tr, as shown in FIG. 22, in addition to the control code and the composite speed, the X-axis end position, the Y-axis end position, X The axis center position and the Y axis center position are set in the setting table Tb. In the synchronous control command, the radius r of the arc including the movement locus Tr is obtained based on these pieces of information. After the arc including the movement trajectory Tr is determined in this way, the speed of each motor is controlled so as to pass through the determined arc shape.This exampleThen, it is possible to specify the movement trajectory Tr by any of the above-described data, and when executing the synchronous control instruction, which calculation is performed is selected by the control code set in the setting table Tb. ing.
[0077]
  This exampleFIG. 24 shows the processing procedure of the synchronization control command in FIG. When execution of a synchronous control command for performing circular interpolation control is started, it is first determined whether or not a pulse train for controlling the motor is output (S1). Since the pulse train is not output when the execution of the synchronous control instruction is started, the presence or absence of a logical contradiction in the set value is confirmed (S2). If there is a contradiction, error processing is performed (S3). Which of the above-described two types of data is set is determined from the contents of the setting table Tb (S4). When the passing point position Pm is specified, the radius and the center position are obtained (S5), and the center position is specified. In the case of, the radius is obtained (S6). When the end point position, the center position, and the radius are thus determined, the output of the pulse train is started (S7). While the pulse train is being output (S1), the number of pulses given to each motor (that is, the current position) is confirmed (S8). If the end position has not been reached (S9), the speed given to each motor (Frequency) is calculated (S10), and the speed is changed (S11). When the end position is reached (S9), the output of the pulse train is stopped and the execution of the synchronous control command is ended (S12).
[0078]
  In addition,This exampleIn the setting table Tb, the end point position and the passing point position or the end point position and the center position are set in the setting table Tb as data defining the arc including the movement locus Tr. Other data can also be used. Other configurations and operations are the same as those of the first embodiment.
[0079]
  (Reference example 2)
  by the way,Reference example 1When performing circular interpolation control like this, the current position is confirmed by the number of pulses given to each motor, and the frequency (speed) of the pulse train given to each motor is adjusted according to the current position. When the frequency of the pulse train to be applied is relatively high and the time interval for position confirmation is relatively long, the movement locus Tr swells outward with respect to the arc L2 defined as shown in FIG.
[0080]
In order to suppress such a problem, the distance between the center position of the specified arc L2 and the current position is calculated during the execution of the synchronous control command, and the calculated distance and radius are compared, and based on the difference between the two. By correcting the frequency (speed) of the pulse train applied to each motor, the motor can be controlled without greatly deviating from the arc L2 defining the movement locus Tr.
[0081]
  That is,This exampleThen, as shown in FIG. 26, after step S10 for obtaining the speed for each motor shown in FIG. 24, a process (S13) for correcting the speed for the error obtained as described above is added. Thus, by performing such speed correction, it is possible to suppress deviation from the arc L2 defined by the movement trajectory Tr. Other configurations and operations areReference example 1It is the same.
[0082]
  (Reference example 3)
  Reference example 2However, in order to prevent the movement trajectory Tr from greatly deviating from the prescribed arc L2, a configuration is adopted in which the distance between the center position and the current position is compared with the radius.This exampleAs shown in FIG. 27, an area surrounded by four straight lines separated from the center position O in the X-axis direction and the Y-axis direction by a radius r is set as the allowable range of the movement locus Tr. In short, a limit value for the position of the movement trajectory Tr is set.
[0083]
  This exampleAs shown in FIG. 28, the synchronous control command in FIG.Reference example 2The processing procedure of (1) is a process of comparing the current position with the limit value (S14) after the determination of whether or not the position is the end point position (S9), and a case of further deviating from the limit value (out of the allowable range). Is different in that a process of temporarily stopping the motor on the side deviating from the limit value (S15) is added. That is, if the current position is within the limit value, speed calculation (S10), speed correction (S13), and speed change (S11) are performed for each motor, and the operation is continued. When the current position reaches the limit value, the output of the pulse train to the motor that has reached the limit value is temporarily stopped, and then a circular arc is formed so that the trajectory is at least within the limit values in the X-axis direction and the Y-axis direction. Interpolate. Other configurations and operations areReference example 2It is the same.
[0084]
  (Reference example 4)
  Reference example 3When the current position reaches the limit value, the motor that has reached the limit value is temporarily stopped. By the way, considering a coordinate system having the origin at the center position O of the arc L2 including the set movement locus Tr, the plane including the movement locus Tr can be divided into four quadrants as shown in FIG.
[0085]
  Now, assuming that the movement trajectory Tr shifts from the first quadrant to the fourth quadrant, when the quadrant changes the timing of restarting the output of the pulse train for the motor whose current position has reached the limit value in the first quadrant It is. In other words, since it is considered that only the X-axis may reach the limit value in the first quadrant, the pulse train output to the X-axis motor is stopped when the limit value is reached. Since the output of the pulse train is continued, the movement trajectory Tr enters the fourth quadrant even when the X-axis motor is stopped. As described above, by restarting the output of the pulse train to the X-axis motor, it is possible to suppress the deviation of the movement locus Tr from the arc L2. Other configurations and operations areReference example 3It is the same.
[0086]
  (Reference Example 5)
  This exampleFIG. 30 shows an example in which circular interpolation control is continuously performed, and the end position P12 of one arc L12 of the two arcs L12 and L22 is set as the start position of the other arc L22. It matches P21.
[0087]
  In order to perform such control, it is desirable to execute circular interpolation control from the start position P21 of the next arc L21 without stopping the motor operation at the end point position P12 of one arc L12. Therefore,This exampleThen, the operation continuation flag can be set in the control code of the setting table Tb. For example, if the operation continuation flag is 1, it means that the operation is continued, and if it is 0, it means that the operation is stopped. In the case of the stop, it is stopped at the end positions of the arcs L21 and L21 where the execution of the synchronous control command is started.
[0088]
  In FIG. 31, when the operation continuation flag is 0, the operation stops at the end point position L12 of one arc L12. Further, when the operation continuation flag is 1, continuous operation is realized by creating a new setting table Tb after starting execution of the synchronous control command and before reaching the end point position L12. As shown in FIG.This exampleThen, after determining the end point position (S9), it is determined whether or not the movement trajectory Tr continuously passes through another arc L22 (continuous mode) (S16), and the continuous mode is requested. Sometimes the final position is reset based on the setting table Tb (S17). If the continuous mode is not selected (S16), the pulse train output is stopped (S18). Other configurations and operations areReference example 1It is the same. ,
[0089]
【The invention's effect】
  Invention of Claim 1According to the configuration ofMultiplemotorCan be realized without using a dedicated unit. In addition, since the setting values necessary for the synchronization control are stored in the setting table, there is an advantage that the readability does not deteriorate even when the sequence program is created by the ladder program.In addition, linear interpolation control can be performed such that an operation locus obtained by synthesizing the movements of a plurality of motors becomes a straight line, and control with acceleration / deceleration can be performed. Furthermore, since synchronization control can be performed with the system software of the microcomputer that executes the sequence program without using dedicated hardware, the synchronization control instruction can be easily and inexpensively incorporated into the programmable controller. In addition, since the timing for changing the frequency of the pulse train is different for each motor, it is possible to perform control so as to change the speed smoothly as a whole.
[0090]
A second aspect of the invention is a programmable controller configured by connecting a CPU unit that executes a sequence program and another unit according to the first aspect of the invention, wherein the synchronization control instruction is executed in the CPU unit. In addition, since the CPU unit is provided with a setting table and the CPU unit executes the synchronization control command, no other synchronization control unit is required, and synchronization control can be realized easily and inexpensively. Become.
[0091]
According to a third aspect of the present invention, in the first or second aspect of the present invention, in the setting table, an area for storing an operation value calculated when the synchronous control instruction is executed is an area for storing the setting value. It is provided as a continuous area, and when the calculated value is calculated based on the set value in order to realize synchronous control, the calculated value is stored in an area continuous with the set value in the setting table. It is easy to confirm the relationship between the value and the calculated value.
[0092]
According to a fourth aspect of the present invention, in the first or second aspect of the present invention, the setting table includes an area for storing an error code corresponding to the presence or absence of an error detected when the synchronization control instruction is executed. It is provided as a continuous area to the value storage area. If a setting value outside the setting range is stored in the setting table or calculation is not possible, the error contents stored in the setting table indicate the error content. Can be easily determined.
[0096]
  Claim 5The invention ofClaims 1 to 4In the invention ofIn the acceleration period and the deceleration period, the motorThe frequency at which the speed continuously changes at a constant acceleration is used as the calculated value.Because I askLinear interpolation control with constant acceleration / deceleration operation can be realized.
[0097]
  Claim 6The invention ofClaims 1 to 4In the present invention, the setting set in the setting tableAdd as valueIncludes speed ratioIn the acceleration period and the deceleration period, the motorThe frequency at which the speed changes continuously according to the acceleration ratioBecause I askLinear interpolation control with acceleration / deceleration operation that continuously changes the speed can be realized.
[Brief description of the drawings]
FIG. 1 is a conceptual explanatory diagram of a first embodiment of the present invention.
FIG. 2 is a diagram showing a setting table used for the above.
FIG. 3 is a diagram showing a setting table used for the above.
FIG. 4 is a block diagram showing a system configuration example according to the above.
FIG. 5 is an operation explanatory diagram of a second embodiment of the present invention.
FIG. 6 is a diagram showing a setting table used in the above.
FIG. 7 is an operation explanatory diagram of the above.
FIG. 8 is a diagram showing a setting table used for the above.
FIG. 9 is an operation explanatory diagram of the above.
FIG. 10 is an operation explanatory diagram of the above.
FIG. 11 is an operation explanatory diagram of the above.
FIG. 12 is an operation explanatory view of the above.
FIG. 13 is an operation explanatory view showing a third embodiment of the present invention.
FIG. 14 is an operation explanatory view showing a fourth embodiment of the present invention.
FIG. 15 is an operation explanatory view showing a fifth embodiment of the present invention.
FIG. 16 is an operation explanatory view of the above.
FIG. 17 is an operation explanatory view of the above.
FIG. 18 is an operation explanatory diagram of the above.
FIG. 19 is an operation explanatory diagram showing a sixth embodiment of the present invention.
FIG. 20 is an operation explanatory diagram of the above.
FIG. 21Reference example 1It is operation | movement explanatory drawing which shows.
FIG. 22 is a diagram showing a setting table used for the above.
FIG. 23 is a diagram showing a setting table used for the above.
FIG. 24 is an operation explanatory diagram of the above.
FIG. 25Reference example 2It is operation | movement explanatory drawing which shows.
FIG. 26 is an operation explanatory diagram of the above.
FIG. 27Reference example 3FIG.
FIG. 28 is an operation explanatory view of the above.
FIG. 29Reference example 4FIG.
FIG. 30Reference Example 5FIG.
FIG. 31 is an operation explanatory diagram of the above.
32 (a) and 32 (b) are block diagrams each showing a basic configuration of the present invention.
FIG. 33 is an operation explanatory diagram showing a conventional example.
FIG. 34 is an operation explanatory diagram of the above.
FIG. 35 is a block diagram of the above.
[Explanation of symbols]
  1 CPU unit
  1a Microcomputer
  1b Dedicated integrated circuit
  1c software
  2 Power supply unit
  3 Dedicated unit (motor control unit)
  4 Expansion unit
  Tb setting table

Claims (6)

パルス列の周波数に応じて速度が決定されるとともにパルス列のパルス数に応じて位置が決定される複数台のモータを同時に起動しかつ同時に停止させる同期制御を行うように、シーケンスプログラムに従ってパルス列を発生する機能を備えたプログラマブルコントローラであって、シーケンスプログラムを実行するマイコンのシステムプログラムに複数のモータに対するパルス列の発生を指示する同期制御命令が組み込まれており、同期制御命令の実行時に必要な設定値として少なくとも初速度、最高速度、加減速時間、移動量を格納する設定テーブルを備え、同期制御命令の実行時に設定テーブルから読み出した設定値を用いて直線補間制御を行うようにパルス列を発生させるとともに、パルス列の発生後に加速制御を行う加速期間を有し、パルス列の停止前に減速制御を行う減速期間を有しており、同期制御命令の実行時には加速期間および減速期間においてモータの速度が連続的に変化する周波数を演算値として求め、この演算値に基づいてパルス列を発生させ、加速期間および減速期間には複数のパルス列について周波数を変化させるタイミングを各別に一定値として設定するとともに、前記複数のパルス列の最高速到達時間を一致させるように前記タイミングを調節することを特徴とするプログラマブルコントローラ。A pulse train is generated according to a sequence program so as to perform synchronous control for simultaneously starting and stopping a plurality of motors whose speed is determined according to the frequency of the pulse train and whose position is determined according to the number of pulses of the pulse train a programmable controller having a function, the sequence program and the synchronization control command is incorporated to direct the generation of a pulse sequence for a plurality of motors to a microcomputer for executing the system program, as set values required during execution of the synchronous control command at least the initial speed, maximum speed, acceleration and deceleration time, comprising a setting table for storing the movement amount to generate a pulse train to perform linear interpolation control using the set values read out from the setting table during execution of the synchronous control command Rutotomoni Has an acceleration period for acceleration control after the pulse train is generated. , Which has a deceleration period in which deceleration control is performed before the pulse train stops.When a synchronous control command is executed, the frequency at which the motor speed continuously changes during the acceleration period and the deceleration period is obtained as the calculated value. Based on this, the pulse train is generated, and the timing for changing the frequency for each of the plurality of pulse trains is set as a constant value in the acceleration period and the deceleration period, and the timing is set so that the fastest arrival times of the plurality of pulse trains coincide with each other. A programmable controller characterized by adjusting . シーケンスプログラムを実行するCPUユニットと、他のユニットとを接続して構成されるプログラマブルコントローラであって、前記同期制御命令がCPUユニットにおいて実行されるとともにCPUユニットに前記設定テーブルが設けられていることを特徴とする請求項1記載のプログラマブルコントローラ。A CPU unit for executing a sequence program, a programmable controller constituted by connecting the other units, said synchronous control command is the setting table is provided to the CPU unit while being executed in the CPU unit The programmable controller according to claim 1. 前記設定テーブルには、前記同期制御命令の実行時に算出される演算値を格納する領域が、前記設定値を格納する領域に連続した領域として設けられていることを特徴とする請求項1または請求項2記載のプログラマブルコントローラ。  2. The setting table is provided with an area for storing an operation value calculated when the synchronization control instruction is executed as an area continuous with an area for storing the setting value. Item 3. The programmable controller according to item 2. 前記設定テーブルには、前記同期制御命令の実行時に検出されるエラーの有無に対応したエラーコードを格納する領域が、前記設定値を格納する領域に連続した領域として設けられていることを特徴とする請求項1または請求項2記載のプログラマブルコントローラ。  In the setting table, an area for storing an error code corresponding to the presence or absence of an error detected when the synchronization control instruction is executed is provided as an area continuous with the area for storing the setting value. The programmable controller according to claim 1 or 2. 前記加速期間および前記減速期間においてモータの速度が一定加速度で連続的に変化する周波数を演算値として求めることを特徴とする請求項1ないし請求項4のいずれか1項に記載のプログラマブルコントローラ。 5. The programmable controller according to claim 1, wherein a frequency at which the motor speed continuously changes at a constant acceleration during the acceleration period and the deceleration period is obtained as a calculation value . 6. 前記設定テーブルに設定される設定値として加速度比率を含み、前記加速期間および前記減速期間においてモータの速度が加速度比率に従って連続的に変化する周波数を演算値として求めることを特徴とする請求項1ないし請求項4のいずれか1項に記載のプログラマブルコントローラ。 2. A frequency which includes an acceleration ratio as a set value set in the setting table and continuously changes the motor speed in accordance with the acceleration ratio during the acceleration period and the deceleration period. programmable controller according to any one of claims 4.
JP2001346739A 2001-11-12 2001-11-12 Programmable controller Expired - Fee Related JP3852572B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001346739A JP3852572B2 (en) 2001-11-12 2001-11-12 Programmable controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001346739A JP3852572B2 (en) 2001-11-12 2001-11-12 Programmable controller

Publications (2)

Publication Number Publication Date
JP2003150209A JP2003150209A (en) 2003-05-23
JP3852572B2 true JP3852572B2 (en) 2006-11-29

Family

ID=19159850

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001346739A Expired - Fee Related JP3852572B2 (en) 2001-11-12 2001-11-12 Programmable controller

Country Status (1)

Country Link
JP (1) JP3852572B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6215003B2 (en) * 2013-10-30 2017-10-18 株式会社キーエンス Programmable controller, expansion unit, and program creation support system

Also Published As

Publication number Publication date
JP2003150209A (en) 2003-05-23

Similar Documents

Publication Publication Date Title
US4528632A (en) Industrial articulated robot linear interpolation control device
JP4576260B2 (en) Motor control device
US20040236462A1 (en) Numerical control apparatus for machine tool
JP3852572B2 (en) Programmable controller
JPS61150699A (en) Step motor controller
US20220173675A1 (en) Method for the vibration-reduced operation of a bldc motor
JP2003224998A (en) Drive method for stepping motor
JP3719044B2 (en) Positioning control device
WO2002033815A1 (en) Method for controlling acceleration/deceleration of motor
JPS6234210A (en) Detector for original point position
JP2001062678A (en) Numerical control device
JP4014777B2 (en) Threading machine
JPH0561551A (en) Programmable controller
JPS6232508A (en) Positioning control method for servo-system of numerical controller
JP2001154719A (en) Method for interpolating free curve
JPS63157206A (en) Numerical controller
JPH1049233A (en) Control unit for pulse motor
JP2002284341A (en) Turntable control system and control method for turntable control system
JP3013998B2 (en) Rotary axis zero return method in numerical controller
JPH0736599U (en) Driving device for two-phase stepping motor
JPH08214597A (en) Control method and controller of motor
RU1817061C (en) Device for controlling reeling machine
JPH08186997A (en) Origin resetting control method for pulse motor
JPH0797289B2 (en) Positioning device
JPS6171947A (en) Positioning control device

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