F171_PulseOutput_Jog_Positioning

JOG動作と位置決め

位置制御開始入力がTRUEになったあと、指定されたパルス数を出力します。減速が実行された後、目標値に達するとパルス出力は停止します。指定したチャンネルの制御中フラグがFALSEで、実行条件がTRUEのとき、指定したチャンネルからパルスが出力します。

パラメータ

入力

s_DUT_DataTable (DUT)

データテーブルが格納されているエリアの先頭アドレス

F171_PulseOutput_Jog_Positioning_Type0_DUTまたはF171_PulseOutput_Jog_Positioning_Type1_DUT
n_iPulseOutputChannel(10進定数)

パルス出力チャンネル: 0–3

解説

2つの動作モードからいずれかを選択してください:

  • タイプ 0: 指定した目標速度の範囲内で、速度を変更することができます。

  • タイプ1目標速度は、位置制御開始入力がTRUEになるタイミングで、あらかじめ設定した速度に切り替わります。

パルス出力図

  1.  (1) 初速
  2.  (2) 目標速度
  3.  (3) 目標値
  4.  (4) 加速時間
  5.  (5) 減速時間
  6.  (6) 実行条件
  7.  (7) 位置制御開始入力
  8.  (8) パルス出力制御中フラグ
  • 指定した加速時間と減速時間によって、パルス出力周波数が変化します。

  • 目標速度と初速度の差で、加速時の傾斜が決まります。

  • 目標速度と最終速度の差で、減速時の傾斜が決まります。

  • 位置制御開始入力がTRUEになると、パルス出力を継続して減速し、目標値に達すると停止します。

パルス出力の停止

パルス出力は、以下のいずれかの動作によって停止させることができます。

  • 位置制御開始をTRUEにする(目標値に達して減速が完了するまでパルス出力を継続する)。位置制御は、位置制御開始入力をTRUEにする。または、位置制御開始入力に割り付けられたデータレジスタのビット6FALSEからTRUEにすると開始されます。(例: MOVE(16#140, sys_wHscOrPulseControlCode);)

  • 減速停止の要求:減速停止を行うには、パルス出力制御コードが格納されているデータレジスタのビット5FALSE からTRUEにしてください(例: MOVE(16#120, sys_wHscOrPulseControlCode);)。加速中に減速停止要求があった場合、目標速度からと同じ傾きで減速します。

  • 非常停止の実行: 非常停止を実行するには、パルス出力制御コードを格納しているデータレジスタのビット3FALSEからTRUEにします(例:MOVE(16#108, sys_wHscOrPulseControlCode);)。

注記

停止している間、プログラム中で使用されているチャンネルに対して、すべてのパルス出力命令を起動することはできません。

JOG動作タイプ0

以下のDUTを使用してください。 F171_PulseOutput_Jog_Positioning_Type0_DUT

下記のパラメータをDUTに設定します:

  • 制御コード

  • 初速

  • 目標速度

  • 加速時間

  • 減速時間

  • 目標値

目標速度は、パルス出力中に変更することができます。パルス出力中の速度変更について

目標速度の変更を行わない場合:

目標速度の変更を行う場合:

  1. 初速

  2. 目標速度

  3. 目標値

  4. 加速時間

  5. 減速時間

  6. 実行条件

  7. 位置制御開始入力

  8. パルス出力制御中フラグ

  • 速度変更を行う場合は、実行条件をTRUEに保持してください。

  • 目標速度に50kHzより大きい値が指定された場合、50kHzに補正されます。

  • 経過値が加速禁止領域開始位置(システム変数: sys_diPulseChannel0AccelerationForbiddenAreaStartingPosition)を超えている場合は、加速されません。

  • 減速時の速度は、補正最終速度までしか下げることができません。

  • 割り込みプログラム中で実行するときは、目標速度を変更することができません。

JOG動作タイプ1

以下のDUTを使用してください。 F171_PulseOutput_Jog_Positioning_Type1_DUT

下記のパラメータをDUTに設定します:

  • 制御コード

  • 初速

  • 目標速度1

  • 加速時間

  • 目標速度2

  • 切替時間

  • 減速時間

  • 目標値

目標速度1 <目標速度2の場合:

目標速度1 > 目標速度2の場合:

  1. 初速

  2. 目標速度

  3. 目標速度

  4. 目標値

  5. 加速時間

  6. 切替時間

  7. 減速時間

  8. 実行条件

  9. 位置制御開始入力

位置制御開始入力がTRUEになると、パルス出力周波数を設定した切替時間で、目標速度2への加速または減速に切り替えます。目標速度を変更することはできません。加速中に位置制御開始入力が変化しても、位置制御開始入力は無視されます。

プログラム上のご注意

  • この命令を使用しているプログラムをオンライン(RUNモード)で編集し始めるとすぐに、パルス出力は停止します。

  • 通常プログラムと割り込みプログラムの両方に、同じチャンネルについて記述する場合、同時に実行されないようにしてください。

  • パルス出力命令が実行され、パルスが出力されている間は、対応するチャンネルのパルス出力命令制御中フラグ(例: sys_bIsPulseChannel0Active)がTRUEになります。このフラグがTRUEのときは、他のパルス出力命令を実行することはできません。

  • 位置開始制御入力(X0X1X2X3)は、システムレジスタ402で指定します。

  • 位置開始制御入力は、立ち上がりエッジ(TRUE)のみ有効となります。

  • 減速停止が要求されている間は、命令を起動することはできません。

  • 動作を停止したあと、リセットするには、実行条件を一旦FALSEとし、再度TRUEにしてください。

  • 位置決めプログラムの作成にあたっては、強制停止ができるようにプログラミングすることをおすすめします。

  • 高速カウンタ制御フラグとパルス出力制御フラグのステータスは、スキャンが実行されている間に変化します。例えば、受信バイト数が2回以上読み出された場合、1スキャン内で異なる状態が存在することがあります。

POUヘッダ

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

LDボディ

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

STボディ

IF (Start) then
    dutJog.diInitialAndFinalSpeed:=diInitialAndFinalSpeed;
END_IF;
IF (Start) then
  F171_PulseOutput_Jog_Positioning(s_dutDataTable := dutJog, 0);
END_IF;

最終修正日: 2023-03-16このページに関するフィードバックお問い合わせ窓口