F172_PulseOutput_Jog

JOG運転

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

パラメータ

入力

s_dutDataTable

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

  • FP-S, FP-X:

    F172_PulseOutput_Jog_Type0_DUT_0

    F172_PulseOutput_Jog_Type1_DUT_0

  • FP0R:

    F172_PulseOutput_Jog_Type0_DUT_1

    F172_PulseOutput_Jog_Type1_DUT_1

n_iPulseOutputChannel*(10進定数)

パルス出力チャンネル:

FP-XH C30 T/P: 0~3

FP-XH C60 T/P: 0~5

FP-S: 0,2

FP-X R: 0,1

FP-XC14T: 0,1,2

FP-X C30T/C60T: 0,1,2,3

FP0R: 0,1,2,3

FP-SigmaFP-Xに関する説明

以下のDUTを使用してください。 F172_PulseOutput_Jog_Type0_DUT_0 (目標値なしモード)またはF172_PulseOutput_Jog_Type1_DUT_0 (目標値一致停止モード)

下記のパラメータをDUTに設定します:
  • 制御コード
  • 周波数
  • 目標値

パルス出力図

周波数と目標値は、スキャン毎に変更することができます。ただし、命令実行中に制御コードを変更することはできません。2つの動作モードからいずれかを選択してください:

  • 目標値なしモード(タイプ0):

    実行条件がTRUEの間は、DUTにセットされた条件で、パルスが出力されます。
    1.  (1) 実行条件
    2.  (2) CWパルス出力
  • 目標値一致停止モード(タイプ1):

    目標値に達すると、パルス出力が停止します。このモードを制御コードにセットし、DUTに目標値(絶対値)をセットします。(FPSV1.4以上、FP-X)

    1.  (1) 実行条件
    2.  (2) CWパルス出力
    3.  (3) 目標値到達(パルス出力停止)

プログラム上のご注意

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

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

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

  • FPS: 高速カウンタ制御中フラグ(例: sys_bIsHscChannel0ControlActive)とパルス出力制御中フラグ(例: sys_bIsPulseChannel0Active)は、同じ特殊内部フラグの番号に割り付けられています(例: R903A)。従って、高速カウンタ命令またはパルス出力命令が実行されているときは、使用しているチャンネルに対応する、高速カウンタ制御中フラグ(例: sys_bIsHscChannel0ControlActive)とパルス出力制御中フラグ(例: sys_bIsPulseChannel0Active)がTRUEになります。このフラグがTRUEの間は、同じチャンネルに対して、他の高速カウンタ命令、あるいはパルス出力命令を実行することはできません。

  • FPS: 円弧補間制御命令F176_PulseOutput_Centerが実行されている間、円弧補間制御フラグ(sys_bIsCircularInterpolationActive)がTRUEになり、目標値に達するまで保持されます(実行条件がTRUEではなくなった場合も)。この間、他のパルス出力命令を実行することはできません。

  • FPS: パルス出力に使用するチャンネルの高速カウンタは、システムレジスタで"未使用"を指定してください。

  • FP-X: 使用するチャンネルに対応するシステムレジスタには "パルス出力" を指定してください。

  • 指定できる範囲外の周波数値で、命令が起動された場合は、演算エラーとなります。命令起動後に周波数を指定できる範囲外の値に設定した場合は、演算エラーにはならず、指定レンジの最小値、または最大値で動作します。

  • 命令の実行中に制御コードを変更しても影響ありません。
  • 位置決めプログラムの作成にあたっては、強制停止ができるようにプログラミングすることをおすすめします。

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

FP0Rに関する説明

以下のDUTを使用してください。 F172_PulseOutput_Jog_Type0_DUT_1 (目標値なしモード)またはF172_PulseOutput_Jog_Type1_DUT_1 (目標値一致停止モード)

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

  • 制御コード
  • 初速
  • 目標速度
  • 加速時間
  • 減速時間
  • 目標値

パルス出力図

  1.  (1) 目標速度1
  2.  (2) 目標速度2
  3.  (3) パルス出力制御中フラグ
  4.  (4) 実行条件
  • 指定した加速時間と減速時間によって、パルス出力周波数が変化します。
  • 50kHzの最大速度と初速度の差で、加速時の傾斜が決まります。
  • 50kHzの最大速度と最終速度の差で、減速時の傾斜が決まります。
  • 命令起動後に実行条件がFALSEになると、減速停止が実行されます。
  • 減速中に実行条件がTRUEになると、再度加速します。
  • 目標速度は、パルス出力中に変更することができます。
  • パルスは、デューティ25%で出力します。
  • "PLS+SIGN"方式でパルス出力する場合、方向出力がONになったあと、約300ms後にパルス出力を開始します。モータドライバの特性を考慮しています。
  • 加速中に減速停止要求があった場合、目標速度からと同じ傾きで減速します。
  • 初速よりも加減速時間優先の処理を行います。加速時間と減速時間は変更されませんので、指定された時間内に加速または減速が完了するように初速の値が補正される場合があります。補正された値はデータレジスタに格納され、システム変数sys_iPulseChannelxCorrectedInitialSpeedsys_iPulseChannelxCorrectedFinalSpeed (x=チャンネルNo.)で確認することができます

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

  • 目標値なしモード(タイプ0):

    実行条件がTRUEの間は、DUTにセットされた条件で、パルスが出力されます。実行条件がFALSEになると、減速停止を開始します。

    1.  (1) 初速
    2.  (2) 目標速度変更
    3.  (3) 実行条件
    4.  (4) パルス出力制御中フラグ
    5.  (5) 減速停止
  • 目標値一致停止モード(タイプ1):

    目標値に達すると、パルス出力が停止します。このモードを制御コードにセットし、DUTに目標値(絶対値)をセットします。減速動作後、目標値に達すると停止します。減速は、指定された減速時間で実行されます。

    1.  (1) 初速
    2.  (2) 目標速度変更
    3.  (3) 実行条件
    4.  (4) パルス出力制御中フラグ
    5.  (5) 目標値
    6.  (6) 減速時間

パルス出力中の速度変更について

  • 経過値が加速禁止領域開始位置(システム変数: sys_diPulseChannel0AccelerationForbiddenAreaStartingPosition)を超えている場合は、加速されません。
  • 減速時の速度は、補正最終速度までしか下げることができません。

プログラム上のご注意

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

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

  • パルス出力命令が実行され、パルスが出力されている間は、対応するチャンネルのパルス出力命令制御中フラグ(例: sys_bIsPulseChannel0Active)がTRUEになります。このフラグがTRUEのときは、他のパルス出力命令を実行することはできません。
  • 命令の実行中に制御コードを変更しても影響ありません。
  • 位置決めプログラムの作成にあたっては、強制停止ができるようにプログラミングすることをおすすめします。

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

POUヘッダ

POUヘッダには、このプログラムで使用するすべての入力変数と出力変数を宣言します。POUヘッダは全プログラム言語で使用できます。

	VAR_EXTERNAL
		bActivateJog: BOOL:=FALSE;
	END_VAR
	VAR 
		dutJog: F172_PulseOutput_Jog_Type0_DUT_0:=dwControlCode := 16#1110;
			(*Control code:
Digit 3: 1=Duty ratio 25%
Digit 2: 1=Frequency range 48Hz-100kHz
Digit 1: 1=Incremental counting
Digit 0: 0=CW*)
		diSpeed: DINT:=300;
		@'': @'';
	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 := 4 ;
        NETWORK_BODY
B(B_CONTACT,,bActivateJog,4,1,6,3,);
B(B_F,E_MOVE!,Instance,16,0,22,4,,?DEN?D?AENO?C);
B(B_VARIN,,diSpeed,14,2,16,4,);
B(B_VAROUT,,dutJog.diSpeed,22,2,24,4,);
L(1,2,4,2);
L(6,2,16,2);
L(1,0,1,4);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 5 ;
        NETWORK_BODY
B(B_CONTACT,,bActivateJog,4,1,6,3,);
B(B_VARIN,,dutJog,14,2,16,4,);
B(B_VARIN,,0,14,3,16,5,);
B(B_F,F172_PulseOutput_Jog!,Instance,16,0,29,5,,?DEN?Ds_dutDataTable?Hn_iPulseOutputChannel?AENO);
L(1,2,4,2);
L(6,2,16,2);
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

STボディ

 (bActivateJog) then
  dutJog.diSpeed:=diSpeed;
END_IF;
IF (bActivateJog) then
  F172_PulseOutput_Jog(s_dutDataTable := dutJog, 0);
END_IF;