■ 台形速度制御 (File: plc_public_codex_xxx | Module:Trapezoid)

⇒ TO Home Page
内容

モータの加速 / 減速時の台形速度のサンプルです。

パラメータは、稼働時間 / 加速時間 / 減速時間 / 速度 の4つです。今回は演算を「スクリプト言語」でコーディングしました。
この4つのパラメータから台形の傾きに必要なΔt とΔv 、加えてΔt のステップ数を計算します。

●PDFを表示 
◆ シーケンスルーチン

00008
・待機状態(初期)です。トリガ[TRG]がセットされると、サブルーチン10を呼び出し次のステージへ移行します。
・サブルーチン10は、加減速時間や速度のリミット、その他のパラメータを演算します。


00009
・加速ルーチンです。ここを実行している間、クロックを発振させるためのフラグ[T_ACT]を立てます。
・段階的(離散的)に速度を増加させるクロック、[@T0]の立上りでサブルーチン12を呼び出します。
・サブルーチンではステップ(増速の段階)のカウントと速度を演算します。
・ステップが設定以上になればフラグ[F_Upp]をセットし、サブルーチン呼び出しを中止します。
・また除算の関係で、実際の加速時間[@T4]とクロック×ステップ数が完全に一致しないので、加速時間のタイムアップで最高速度を 出力(変数[SPEED]に代入)し、定速運転に移行します。
00003
・フラグ[T_ACT]が真であれば、タイマ能動状態になって、クロックを発生します。


00011
・加速運転終了時の最高速度を定速時間[@T6]保持します。


00012
・加速時同様、減速時もクロックを発振させ、その立上りでサブルーチンを呼び出します。 またステップカウントがアップすればサブルーチン呼び出しを中止します。
・同じく減速時間のタイムアップで速度を0にして、次ステージへ進みます。


00014
・このステージでは、[TRG]をリセットし、待機状態へ飛びます。

◆ サブルーチン

□ 加速演算(サブルーチン12)
00028
・加速ルーチン(9行目)から呼び出されます。
・ステップ(増速の段階)カウンタをインクリメントします。モータ起動時に計算されたステップ値とカウンタを比較し ( ステップ > カウンタ)であれば、加速ステップアップフラグ[F_Upp]をセットし速度増加を禁止します。
・速度[SPEED]は次の一次関数で計算されます。現在速度[SPEED] = ( カウンタ値[DM8] / 増速設定ステップ値[DM4] ) × 速度[DM3]
・式では 【 ( A ÷ B ) × C 】の形ですが、割算の答えはは誤差が有るため(この場合は小数点以下切捨)に割 算を一番最後 に実行させます。


□ 減速演算 (サブルーチン13)
00019
・減速ルーチン(12行目)から呼び出されます。
・加速時と同様に、カウンタが0以下になれば減速ステップアップフラグ[F_Dwn]をセットし減速演算を禁止します。
・演算式は、現在速度[SPEED] = ( カウンタ値[DM9] / 減速設定ステップ値[DM5] ) × 速度[DM3]
・同様に割算を一番最後に するのが原則です。


□ パラメータセット (サブルーチン10)
00038
・入力した速度が設定された範囲内に収まる様、リミッタをかけます。( 上限速度[@FM1] / 下限速度[@FM2] )


00041
・加減速時間の合計が稼働時間より長く入力された場合、加速/減速の割合を保ったまま、稼働時間に圧縮します。
・加速時間[@EM1]に減速時間[@EM2]を加えたものを、バッファ[AccTime]に代入します。(加減速時間の合計)
・稼働時間[@EM0]が加減速時間の合計[AccTime]より小さければ次の演算をします。
圧縮後の加速時間[@DM1] = ( 加速時間[@EM1] / 加減速合計[AccTime] ) × 稼働時間[@EM0]
圧縮後の減速時間[@DM2] = ( 減速時間[@EM2] / 加減速合計[AccTime] ) × 稼働時間[@EM0]
プログラムでは割算を一番最後に します。
・最後に、稼働時間から加減速時間を引いた分が定速時間です。

・次に、増速/減速設定ステップ値を計算します。
・加速時間をクロック時間で割ったものが増速設定ステップ値[DM4]、減速時間をクロック時間で割ったものが減速設定ステップ値[DM5]になります。


00072
・クロック設定時間[@FM0](PLC起動時の初期設定)をタイマ[@T0]に代入します。
・41行目で算出された加速[@DM1] / 減速[@DM2] / 定速[@DM0] 時間を各タイマに代入します。


00073
・速度[SPEED]を0に設定。
・カウンタ値を初期化。(加速カウンタ[@DM8]は0を、減速カウンタ[@DM9]は減速ステップ数を代入)


00074
・カウントアップフラグをリセットします。


□ 基本パラメータセット (サブルーチン0)
00078
・クロック[@FM0]を10msに、最高速度[@FM1]を4000に、最低速度[@FM2]を200にしています。

◆ テスト操作

00005
・入力パラメータは、稼働時間[@EM0]、加速時間[@EM1]、減速時間[@EM2]、速度[@EM3]です。
・シミュレーション時に、上の4変数を選択して、右クリック>登録モニタウィンドウ にて値を入力してください。


00008
・[TRG]をダブルクリックすると、実行パラメータが計算され、速度やカウンタ値がへんかんします。
・シミュレーションではタイマが正確ではないため、クロックのカウンタ値と加減速タイマが一致しません。

●PDFを表示