F175_PulseOutput_Linear

直線補間

DUTに指定されたパラメータの内容に従って、目標位置までの軌跡が直線となるように、2つのチャンネルからパルスを出力します。指定したチャンネルの制御中フラグがFALSEで、実行条件がTRUEのとき、指定したチャンネルからパルスが出力します。

パラメータ

入力

n_iPulseOutputChannel定数

パルス出力チャンネル:

FP-XH C30 T/P: 0~3

FP-XH C60 T/P: 0~5

FPS: 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

補間制御では、チャンネル0と1、または、チャンネル2と3をペアで使用します。0または2を指定してください。(C14Tの場合: 0のみ)

入出力

s_dutDataTable (DUT)

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

FPS, FP-X: F175_PulseOutput_Linear_DUT_0

FP0R: F175_PulseOutput_Linear_DUT_1

FP-SigmaFP-Xに関する説明

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

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

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

下記のパラメータは、命令によって計算され、DUTの演算結果格納エリアに格納されます。

  • X軸 初速
  • X軸 目標速度
  • Y軸 初速
  • Y軸 目標速度
  • X軸 周波数レンジ
  • Y軸 周波数レンジ
  • :X軸 加減速段数
  • Y軸 加減速段数

パルス出力図

X軸 目標値(チャンネル0): 5000

Y軸 目標値(チャンネル2) (FP-X:チャンネル1): 2000

2つの軸は、目標位置までの軌跡が直線を描くように制御します。

  • 各軸の目標値は、-8388608–8388607の範囲内で設定してください。この命令を他のパルス出力命令(例: F171_PulseOutput_Trapezoidal)と組み合わせて使用する場合は、同じ周波数レンジで使用してください。
  • 精度を要求される用途にご使用の場合、実機にてご確認ください。
  • 通常プログラムと割り込みプログラムの両方に、同じチャンネルについて記述する場合、同時に実行されないようにしてください。
  • 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使用するチャンネルに対応するシステムレジスタには "パルス出力" を指定してください。

  • RUN中書き替えを行った場合、パルス出力は停止します。ただし、プログラム変更部分のダウンロードが完了すると、書き替え前の動作を継続します。
  • 位置決めプログラムの作成にあたっては、強制停止ができるようにプログラミングすることをおすすめします。

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

FP0Rに関する説明

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

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

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

下記のパラメータは、命令によって計算され、DUTの演算結果格納エリアに格納されます。

  • X軸 初速
  • X軸 目標速度
  • Y軸 初速
  • Y軸 目標速度

パルス出力図

X軸 目標値(チャンネル0): 5000

Y軸 目標値(チャンネル1): 2000

初速500Hz、目標速度 5kHz、加減速時間300msで、X軸(チャンネル0)とY軸(チャンネル1)からパルス出力します。2つの軸は、目標位置までの軌跡が直線を描くように制御します。

パルスは、デューティ25%で出力します。"PLS+SIGN"方式でパルス出力する場合、方向出力がONになったあと、約300ms後にパルス出力を開始します。モータドライバの特性を考慮しています。

  • 経過値が目標値に達すると、パルス出力が停止します。

  • 各軸の目標値は、-8388608–8388607の範囲内で設定してください。この命令を他のパルス出力命令(例: F171_PulseOutput_Trapezoidal)と組み合わせて使用する場合は、同じ周波数レンジで使用してください。
  • 精度を要求される用途にご使用の場合、実機にてご確認ください。
  • 通常プログラムと割り込みプログラムの両方に、同じチャンネルについて記述する場合、同時に実行されないようにしてください。
  • パルス出力命令が実行され、パルスが出力されている間は、対応するチャンネルのパルス出力命令制御中フラグ(例: sys_bIsPulseChannel0Active)がTRUEになります。このフラグがTRUEのときは、他のパルス出力命令を実行することはできません。
  • RUN中書き替えを行った場合、パルス出力は停止します。ただし、プログラム変更部分のダウンロードが完了すると、書き替え前の動作を継続します。
  • 位置決めプログラムの作成にあたっては、強制停止ができるようにプログラミングすることをおすすめします。

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

POUヘッダ

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

	VAR
		bTrigger: BOOL:=FALSE;
		dutLinearData: F175_PulseOutput_Linear_DUT_0:=dwControlCode := 16#1000,
diInitialAndFinalSpeed := 500,
diMaximumSpeed := 5000,
diAccelerationAndDecelerationTime := 300,
diTargetValue_X := 5000,
diTargetValue_Y := 2000;
			(*Control code:
Digit 3: 1=Duty ratio 25%
Digit 2: 0=Fixed
Digit 1: 0=Relative value control 
Digit 0: 0=CW/CCW
*)
		@'': @'';
	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 := 6 ;
        NETWORK_BODY
B(B_CONTACT,,bTrigger,4,2,6,4,R);
B(B_VARIN,,dutLinearData,11,4,13,6,);
B(B_VARIN,,0,11,3,13,5,);
B(B_F,F175_PulseOutput_Linear!,Instance,13,1,28,6,,?DEN?Hn_iPulseOutputChannel?Ds_dutDataTable?As_dutDataTable?AENO);
L(1,3,4,3);
L(6,3,13,3);
L(1,0,1,6);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

STボディ

IF DF(bTrigger) then
    F175_PulseOutput_Linear(n_iPulseOutputChannel := 0, 
      s_dutDataTable := dutLinearData);
END_IF;

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