F174_PulseOutput_DataTable

データテーブル制御

この命令は、任意の速度と目標値が設定されたDUTのパラメータの内容に従って、長方形のパルス出力制御を行います。指定したチャンネルの制御中フラグがFALSEで、実行条件がTRUEのとき、指定したチャンネルからパルスが出力します。

パラメータ

入力

s_dutDataTable (ANY_DUT)

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

サンプル:F174_PulseOutput_DataTable_8_Values_DUT

n_iPulseOutputChannel*(10進定数)

パルス出力チャンネル:

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

解説

以下のサンプルを参考として、DUTを作成してください: F174_PulseOutput_DataTable_8_Values_DUT

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

  • 制御コード

  • 周波数 1

  • 目標値 1

  • 周波数 2

  • 目標値 2

  • ...

  • 周波数 n

  • 目標値 n

  • パルス停止

パルス出力図

  1.  (1) 実行条件
  2.  (2) パルス出力制御中フラグ

x 高速カウンタの経過値 (移動量)

  • パルスは、目標値に達するまで、設定した周波数で出力します。2番目の目標値に達するまで、2番目に設定された周波数でパルス出力が継続し、以下同様にパルス出力します。

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

  • 周波数が0に設定されていると、最後の周波数とみなされ、パルス出力が停止します。

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

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

  • 周波数 1 が指定可能な範囲外の値のとき、演算エラーになります。(周波数1のデータが 0 の場合、パルス出力を行なわず、動作を停止します。)

  • 周波数2の値が 0 もしくは指定範囲外の値の場合、パルス出力を停止します。

  • 目標値が範囲外の場合、出力パルス数は指定値と異なる場合があります。

  • FP0R: 目標値の1つが移動方向になければ、パルス出力は停止します。

  • FPSFP-X: 目標値の1つが移動方向になければ、カウントは無限に継続します。

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

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

  • FPSFP-X: 定時割込み、高速カウンタ割り込みプログラム実行、PLCリンク機能のいずれかを同時に使用する場合、80kHz 以下の周波数を指定してください。

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

  • RUN中書き替えを行った場合、パルス出力は停止します。ただし、プログラム変更部分のダウンロードが完了すると、書き替え前の動作を継続します。

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

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

グローバル変数リスト

グローバル変数リストでは、プロジェクト内のすべてのPOUからアクセスできる変数を宣言します。

DUT

DUT F174_PulseOutput_DataTable_8_Values_DUTは、あらかじめ「FP library」内に定義されており、サンプルとして使用することができます。

POUヘッダ

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

	VAR_EXTERNAL
		X0_bMotorSwitch: BOOL:=FALSE;
			(*at X0*)
	END_VAR
	VAR 
		dutDataTable4: F174_DUT:=ControlCode := 16#1200,
Frequency1 := 1000,
TargetValue1 := 1000,
Frequency2 := 2500,
TargetValue2 := 2000,
Frequency3 := 5000,
TargetValue3 := 5000,
Frequency4 := 1000,
TargetValue4 := 2000,
Termination := 0;
			(*Control code:
Digit 3: 1=Duty ratio 25%
Digit 2: 2=Frequency range 48Hz-100kHz
Digit 1: 0=Relative value control
Digit 0: 0=CW*)
		@'': @'';
	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_F,F174_PulseOutput_DataTable!,Instance,13,0,27,5,,?DEN?Ds_dutDataTable?Hn_iPulseOutputChannel?AENO);
B(B_VARIN,,dutDataTable4,11,2,13,4,);
B(B_VARIN,,0,11,3,13,5,);
B(B_CONTACT,,X0_bMotorSwitch,5,1,7,3,R);
L(1,2,5,2);
L(7,2,13,2);
L(1,0,1,6);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

STボディ

IF DF(X0_bMotorSwitch) then
  F174_PulseOutput_DataTable(s_dutDataTable := dutDataTable4, 4);
END_IF;
関連トピック

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