F167_PulseOutput_Reset

目標値一致OFF (パルス出力)

経過値がパルス出力の目標値と一致したとき、指定した出力が直ちにFALSEになります。

パラメータ

入力

n_diPulseOutputChannel (DINT)

パルス出力チャンネル: 0~3

s_diTargetValue (DINT)

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

出力

d_Y (BOOL)

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

解説

パルス出力図

目標値: -200

(1)

パルス出力の経過値

(2)

実行条件

(3)

"パルス出力制御中" フラグ

(4)

PLC 出力

経過値が目標値と一致したとき、PLCの出力がFALSEになります。同時に、"パルス出力制御中"フラグがFALSEになり、命令の実行が終了します。実際に出力として使用されていないデバイスは、アドレスWYのメモリ上でのみセット、リセットします。

割り込み動作

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

割り込み8

チャンネル0

割り込み9

チャンネル1

割り込み10

チャンネル2

割り込み11

チャンネル3

プログラム上のご注意

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

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

  • この命令は、F173_PulseOutput_PWMを除くすべてのパルス出力命令に対して有効で、各パルス出力命令の実行後、実行前のいずれでも実行することができます。

  • 他の命令(OUT、SET、RST、KEEP、その他のF命令など)との出力の重複使用は、FPWIN Proでは検出することはできません。

  • パルス出力命令の実行をキャンセルするには、パルス出力制御コード(sys_wHscOrPulseControlCode)を格納しているデータレジスタのビット2TRUEにセットします。その後、パルス出力制御フラグがFALSEになります。命令の実行を再び有効にするには、ビット2FALSEに戻します。

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

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

  • 高速カウンタ制御フラグとパルス出力制御フラグのステータスは、スキャンが実行されている間に変化します。例えば、受信バイト数が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,F167_PulseOutput_Reset!,Instance,12,0,26,5,,?DEN?Hn_diPulseOutputChannel?Ds_diTargetValue?AENO?Cd_Y);
B(B_VARIN,,0,10,2,12,4,);
B(B_VARIN,,-200,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
    F167_PulseOutput_Reset(n_diPulseOutputChannel := 0, 
          s_diTargetValue := -200, 
          d_Y => out_0);
END_IF;

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