F166_HighSpeedCounter_Set

目標値一致ON (高速カウンタ)

指定した高速カウンタの経過値が目標値と一致したとき、指定した出力がTRUEになります。割り込み処理で実行されます。

パラメータ

入力

n_diHscChannel (DINT)

高速カウンタチャンネル:

FP-S0–3

FP-X R: 0–11

FP-X T: 0–7

FP0: 0–3

F168_PulseOutput_Trapezoidal: 0–3

F171_PulseOutput_Trapezoidal: 0–5

s_diTargetValue (DINT)

次の範囲で、32ビットデータの目標値を指定してください:

FP0F168_PulseOutput_Trapezoidal-838808–+8388607

FPSFP-XF171_PulseOutput_Trapezoidal-2147483467–+2147483648

出力

d_Y (BOOL)

経過値が目標値と一致したとき、出力がTRUEになります。

FP-SFP0F168_PulseOutput_TrapezoidalY0–Y7

FP-S (V3.1以上)、F171_PulseOutput_TrapezoidalY0–Y1F

FP-XY0–Y29F

解説

目標値一致ON制御の動作

目標値: 10000

  1.  (1) 高速カウンタの経過値
  2.  (2) 実行条件
  3.  (3) 高速カウンタ制御中フラグ
  4.  (4) PLC出力

経過値が目標値と一致したとき、PLCの出力がTRUEになります。同時に、高速カウンタ制御中フラグがFALSEになり、命令の実行が停止します。

実際に出力として使用されていないデバイスは、アドレスWYのメモリ上でのみセット、リセットします。

割り込み動作

経過値が目標値に一致したとき、割り込みプログラムが実行されます。タスクリストの"Interrupt"に登録されると自動的に許可された状態になります。割り込みプログラム番号は、それぞれのチャンネルに割り付けられます。

割り込みプログラムで使用されるチャンネル:

PLC機種

FP0FP-e

FPSFP0H

FP-X (リレー出力タイプ)、FP-XH

FP-X (トランジスタ出力タイプ)

FP0R

割り込み0

チャンネル0

チャンネル0

チャンネル0

チャンネル0

チャンネル0

割り込み1

チャンネル1

チャンネル1

チャンネル1

チャンネル1

チャンネル1

割り込み2

チャンネル2

チャンネル2

割り込み3

チャンネル2

チャンネル2

チャンネル3

チャンネル3

チャンネル2

割り込み4

チャンネル3

チャンネル3

チャンネル4

チャンネル4

チャンネル3

割り込み5

チャンネル5

チャンネル5

割り込み6

チャンネル6

チャンネル6

チャンネル4

割り込み7

チャンネル7

チャンネル7

チャンネル5

割り込み8

チャンネル8

割り込み9

チャンネル9

割り込み10

割り込み11

チャンネルA

割り込み12

チャンネルB

プログラム上のご注意

  • あらかじめ、使用するチャンネルの高速カウンタ入力の方法をシステムレジスタに指定してください。

  • FP-XFP0R: 高速カウンタ命令が実行されると、対応するチャンネルの高速カウンタ制御中フラグsys_bIsHscChannel0ControlActiveTRUEになり、このフラグがTRUEの間は、同じチャンネルに対して他の高速カウンタ命令を実行することはできません。

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

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

  • この命令で以前TRUEに設定したPLCの出力をFALSEに設定するためには、RST命令、またはMOVE命令を使用してください。

  • 命令の実行をキャンセルするには、高速カウンタ制御コード(sys_wHscOrPulseControlCode)を格納するデータレジスタのビット3TRUEにセットします。高速カウンタ制御フラグがFALSEに変化します。高速カウンタ命令の実行を再び有効にするには、ビット3FALSEに戻します。

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

エラーフラグ

sys_bIsOperationErrorHold (TRUEになり、TRUEを保持)
  • チャンネルNo.やデータテーブルの設定値が、指定できる範囲外の値のとき
  • システムレジスタに高速カウンタの使用方法が指定されていないとき
sys_bIsOperationErrorNonHold (1回のスキャンに対してTRUE)
  • チャンネルNo.やデータテーブルの設定値が、指定できる範囲外の値のとき
  • システムレジスタに高速カウンタの使用方法が指定されていないとき

グローバル変数リスト

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

POUヘッダ

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

	VAR_EXTERNAL
		out_0: BOOL:=FALSE;
			(*output Y0 of PLC*)
	END_VAR
	VAR 
		start: BOOL:=FALSE;
			(*start condition*)
	END_VAR

POUボディ

変数startがON (TRUE)のとき、このファンクションが実行されます。

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,F166_HighSpeedCounter_Set!,Instance,12,0,26,5,,?DEN?Hn_diHscChannel?Ds_diTargetValue?AENO?Cd_Y);
B(B_VARIN,,0,10,2,12,4,);
B(B_VARIN,,10,10,3,12,5,);
B(B_VAROUT,,out_0,26,2,28,4,);
B(B_CONTACT,,start,5,1,7,3,R);
L(1,2,5,2);
L(7,2,12,2);
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

STボディ

IF DF(start) then
    F166_HighSpeedCounter_Set(n_diHscChannel := 0, 
      s_diTargetValue := 10, 
      d_Y => out_0);
END_IF;
注記
入力変数に数値を割り付ける(例: メニューバーから、 「モニター」 > 「ヘッダモニタ」を選択。変数をクリックして値を入力し、<Enter>を押す)、または、直接的に入力変数を数値に置き換えてください。

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