JOG動作と位置決め
位置制御開始入力がTRUEになったあと、指定されたパルス数を出力します。減速が実行された後、目標値に達するとパルス出力は停止します。指定したチャンネルの制御中フラグがFALSEで、実行条件がTRUEのとき、指定したチャンネルからパルスが出力します。
入力
データテーブルが格納されているエリアの先頭アドレス
F171_PulseOutput_Jog_Positioning_Type0_DUTまたはF171_PulseOutput_Jog_Positioning_Type1_DUTパルス出力チャンネル: 0–3
2つの動作モードからいずれかを選択してください:
タイプ 0: 指定した目標速度の範囲内で、速度を変更することができます。
タイプ1:目標速度は、位置制御開始入力がTRUEになるタイミングで、あらかじめ設定した速度に切り替わります。
パルス出力図
指定した加速時間と減速時間によって、パルス出力周波数が変化します。
目標速度と初速度の差で、加速時の傾斜が決まります。
目標速度と最終速度の差で、減速時の傾斜が決まります。
位置制御開始入力がTRUEになると、パルス出力を継続して減速し、目標値に達すると停止します。
パルス出力は、以下のいずれかの動作によって停止させることができます。
位置制御開始をTRUEにする(目標値に達して減速が完了するまでパルス出力を継続する)。位置制御は、位置制御開始入力をTRUEにする。または、位置制御開始入力に割り付けられたデータレジスタのビット6をFALSEからTRUEにすると開始されます。(例: MOVE(16#140, sys_wHscOrPulseControlCode);
)
減速停止の要求:減速停止を行うには、パルス出力制御コードが格納されているデータレジスタのビット5をFALSE からTRUEにしてください(例: MOVE(16#120, sys_wHscOrPulseControlCode);
)。加速中に減速停止要求があった場合、目標速度からと同じ傾きで減速します。
非常停止の実行: 非常停止を実行するには、パルス出力制御コードを格納しているデータレジスタのビット3をFALSEからTRUEにします(例:MOVE(16#108, sys_wHscOrPulseControlCode);
)。
停止している間、プログラム中で使用されているチャンネルに対して、すべてのパルス出力命令を起動することはできません。
以下のDUTを使用してください。 F171_PulseOutput_Jog_Positioning_Type0_DUT
下記のパラメータをDUTに設定します:
制御コード
初速
目標速度
加速時間
減速時間
目標値
目標速度は、パルス出力中に変更することができます。パルス出力中の速度変更について
目標速度の変更を行わない場合: |
目標速度の変更を行う場合: |
初速
目標速度
目標値
加速時間
減速時間
実行条件
位置制御開始入力
パルス出力制御中フラグ
速度変更を行う場合は、実行条件をTRUEに保持してください。
目標速度に50kHzより大きい値が指定された場合、50kHzに補正されます。
経過値が加速禁止領域開始位置(システム変数: sys_diPulseChannel0AccelerationForbiddenAreaStartingPosition)を超えている場合は、加速されません。
減速時の速度は、補正最終速度までしか下げることができません。
割り込みプログラム中で実行するときは、目標速度を変更することができません。
以下のDUTを使用してください。 F171_PulseOutput_Jog_Positioning_Type1_DUT
下記のパラメータをDUTに設定します:
制御コード
初速
目標速度1
加速時間
目標速度2
切替時間
減速時間
目標値
目標速度1 <目標速度2の場合: |
目標速度1 > 目標速度2の場合: |
初速
目標速度
目標速度
目標値
加速時間
切替時間
減速時間
実行条件
位置制御開始入力
位置制御開始入力がTRUEになると、パルス出力周波数を設定した切替時間で、目標速度2への加速または減速に切り替えます。目標速度を変更することはできません。加速中に位置制御開始入力が変化しても、位置制御開始入力は無視されます。
この命令を使用しているプログラムをオンライン(RUNモード)で編集し始めるとすぐに、パルス出力は停止します。
通常プログラムと割り込みプログラムの両方に、同じチャンネルについて記述する場合、同時に実行されないようにしてください。
パルス出力命令が実行され、パルスが出力されている間は、対応するチャンネルのパルス出力命令制御中フラグ(例: sys_bIsPulseChannel0Active)がTRUEになります。このフラグがTRUEのときは、他のパルス出力命令を実行することはできません。
位置開始制御入力(X0、X1、X2、X3)は、システムレジスタ402で指定します。
位置開始制御入力は、立ち上がりエッジ(TRUE)のみ有効となります。
減速停止が要求されている間は、命令を起動することはできません。
動作を停止したあと、リセットするには、実行条件を一旦FALSEとし、再度TRUEにしてください。
位置決めプログラムの作成にあたっては、強制停止ができるようにプログラミングすることをおすすめします。
高速カウンタ制御フラグとパルス出力制御フラグのステータスは、スキャンが実行されている間に変化します。例えば、受信バイト数が2回以上読み出された場合、1スキャン内で異なる状態が存在することがあります。
POUヘッダには、このプログラムで使用するすべての入力変数と出力変数を宣言します。 POUヘッダは全プログラム言語で使用できます。
VAR
Start: BOOL:=FALSE;
dutJog: F171_PulseOutput_Jog_Positioning_Type0_DUT:=dwControlCode := 16#010,
diInitialAndFinalSpeed := 1000,
diTargetSpeed := 7000,
diAccelerationTime := 300,
diDecelerationTime := 450,
diTargetValue := 10000;
(*Digit3: 0=Pulse output
Digit2: 1=Fixed
Digit0: 0=CW/CCW2*)
diInitialAndFinalSpeed: DINT:=1000;
@'': @'';
END_VAR
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 5 ;
NETWORK_BODY
B(B_F,E_MOVE!,Instance,13,0,19,4,,?DEN?D?AENO?C);
B(B_VARIN,,diInitialAndFinalSpeed,11,2,13,4,);
B(B_VAROUT,,dutJog.diInitialAndFinalSpeed,19,2,21,4,);
B(B_CONTACT,,Start,6,1,8,3,);
L(1,2,6,2);
L(8,2,13,2);
L(1,0,1,5);
END_NETWORK_BODY
END_NET_WORK
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 5 ;
NETWORK_BODY
B(B_F,F171_PulseOutput_Jog_Positioning!,Instance,8,0,24,5,,?DEN?Ds_dutDataTable?Hn_iPulseOutputChannel?AENO);
B(B_VARIN,,dutJog,6,2,8,4,);
B(B_VARIN,,0,6,3,8,5,);
B(B_CONTACT,,Start,2,1,4,3,);
L(1,2,2,2);
L(4,2,8,2);
L(1,0,1,5);
END_NETWORK_BODY
END_NET_WORK
END_BODY
IF (Start) then
dutJog.diInitialAndFinalSpeed:=diInitialAndFinalSpeed;
END_IF;
IF (Start) then
F171_PulseOutput_Jog_Positioning(s_dutDataTable := dutJog, 0);
END_IF;