目標値一致ON (高速カウンタ)
指定した高速カウンタの経過値が目標値と一致したとき、指定した出力がTRUEになります。割り込み処理で実行されます。
入力
高速カウンタチャンネル:
FP-S:0–3
FP-X R: 0–11
FP-X T: 0–7
FP0: 0–3
F168_PulseOutput_Trapezoidal: 0–3
F171_PulseOutput_Trapezoidal: 0–5
次の範囲で、32ビットデータの目標値を指定してください:
FP0、F168_PulseOutput_Trapezoidal:-838808–+8388607
FPS、FP-X、F171_PulseOutput_Trapezoidal:-2147483467–+2147483648
出力
経過値が目標値と一致したとき、出力がTRUEになります。
FP-S、FP0、F168_PulseOutput_Trapezoidal:Y0–Y7
FP-S (V3.1以上)、F171_PulseOutput_Trapezoidal:Y0–Y1F
FP-X:Y0–Y29F
目標値一致ON制御の動作
目標値: 10000
経過値が目標値と一致したとき、PLCの出力がTRUEになります。同時に、高速カウンタ制御中フラグがFALSEになり、命令の実行が停止します。
実際に出力として使用されていないデバイスは、アドレスWYのメモリ上でのみセット、リセットします。
経過値が目標値に一致したとき、割り込みプログラムが実行されます。タスクリストの"Interrupt"に登録されると自動的に許可された状態になります。割り込みプログラム番号は、それぞれのチャンネルに割り付けられます。
PLC機種 |
FP0、FP-e |
FPS、FP0H |
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-X、FP0R: 高速カウンタ命令が実行されると、対応するチャンネルの高速カウンタ制御中フラグsys_bIsHscChannel0ControlActiveがTRUEになり、このフラグがTRUEの間は、同じチャンネルに対して他の高速カウンタ命令を実行することはできません。
FP0、FP-e、FPS:高速カウンタ制御中フラグ(例: sys_bIsHscChannel0ControlActive)とパルス出力制御中フラグ(例: sys_bIsPulseChannel0Active)は、同じ特殊内部フラグの番号に割り付けられています(例: R903A)。従って、高速カウンタ命令またはパルス出力命令が実行されているときは、使用しているチャンネルに対応する、高速カウンタ制御中フラグ(例: sys_bIsHscChannel0ControlActive)とパルス出力制御中フラグ(例: sys_bIsPulseChannel0Active)がTRUEになります。このフラグがTRUEの間は、同じチャンネルに対して、他の高速カウンタ命令、あるいはパルス出力命令を実行することはできません。
通常プログラムと割り込みプログラムの両方に、同じチャンネルについて記述する場合、同時に実行されないようにしてください。
この命令で以前TRUEに設定したPLCの出力をFALSEに設定するためには、RST命令、またはMOVE命令を使用してください。
命令の実行をキャンセルするには、高速カウンタ制御コード(sys_wHscOrPulseControlCode)を格納するデータレジスタのビット3をTRUEにセットします。高速カウンタ制御フラグがFALSEに変化します。高速カウンタ命令の実行を再び有効にするには、ビット3をFALSEに戻します。
高速カウンタ制御フラグとパルス出力制御フラグのステータスは、スキャンが実行されている間に変化します。例えば、受信バイト数が2回以上読み出された場合、1スキャン内で異なる状態が存在することがあります。
グローバル変数リストでは、プロジェクト内のすべてのPOUからアクセスできる変数を宣言します。
POUヘッダには、このプログラムで使用するすべての入力変数と出力変数を宣言します。 POUヘッダは全プログラム言語で使用できます。
VAR_EXTERNAL
out_0: BOOL:=FALSE;
(*output Y0 of PLC*)
END_VAR
VAR
start: BOOL:=FALSE;
(*start condition*)
END_VAR
変数startがON (TRUE)のとき、このファンクションが実行されます。
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
IF DF(start) then
F166_HighSpeedCounter_Set(n_diHscChannel := 0,
s_diTargetValue := 10,
d_Y => out_0);
END_IF;