Pulse_TargetValueMatch_Set

目標値一致ON (パルス出力制御)

経過値がiChannelで指定されたパルス出力チャンネルの目標値diTargetValueと一致したとき、pYOutputで指定された出力リレーが直ちにTRUEになります。

パラメータ

入力

bExecute (BOOL)

立ち上がりエッジでファンクションを起動します。PulseInfo_IsTargetValueMatchActiveを使用してパルス出力チャンネル制御フラグを確認します。

iChannel (INT)

FPS: 02

FP-X R: 01

FP-X 16K C14T: 012

FP-X 32K C30TC60T: 0123

FP0R: 0123

FP0: 01

FP-e: 01

pYOutput (POINTER)

チャンネル番号と出力を示すグローバル変数からGetPointerによって得られるポインタ結果を入力します。

diTargetValue (DINT)

以下の範囲で、32ビットデータの目標値を指定します。

FP0FP-e: -838808~+8388607

FPSFP-XFP0R: -2147483467~+2147483648

出力

bError (BOOL)

Channel%dpYOuput.iOffsetの組み合わせが、グローバル変数で決められたチャンネル番号と出力の有効な組み合わせに一致しないときにTRUE

解説

この非インライン命令は、パルス出力用Tool命令の一部です。内部で使われる命令に関する詳細は、をご参照ください。F166_PulseOutput_Set

注記

チャンネルとY出力の組み合わせを確認する場合、コンパイラはグローバル変数の以下の名前パターンを必要とします。%sPulse_TargetValueMatch_Channel%d_Y%d_%s

目標値一致制御では、グローバル変数に常にこのパターンを使用します。

  • Channel%dは、システムレジスタで有効にされたパルス出力チャンネル番号でなければなりません。

  • Y%d は、PLCによってサポートされる明示的な出力アドレスでなければなりません。

FP-SFP0FP-e:

Y0~Y7

FP-S (V3.1以上)、FP0R:

Y0~Y1F

FP-X:

Y0~Y29F

  • %s は、パターンの先頭で指定するオプションの記述子です。

  • _%s は、パターンの終端で指定するオプションの記述子です。

オプション 固定パターン オプション
g_b Pulse_TargetValueMatch_ChannelA_Y11F _MotorOn

このグローバル変数は、チャンネルAと出力Y11F用のコードを生成します。

グローバル変数リスト

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

POUヘッダ

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

	VAR_EXTERNAL
		g_bPulse_TargetValueMatch_Channel1_YA_Horn1_On: BOOL:=FALSE;
	END_VAR
	VAR 
		diTargetValue0: DINT:=11000;
		iChannel1: INT:=1;
		bIsActive: BOOL:=FALSE;
		bErrorSet: BOOL:=FALSE;
		bSet: BOOL:=FALSE;
	END_VAR

LDボディ

PulseInfo_IsTargetValueMatchActiveを使用してチャンネルiChannel1がアクティブであることを確認します。bSetで立ち上がりエッジが検出され、bIsActiveTRUEではない場合に命令が実行されます。グローバル変数g_bPulse_TargetValueMatch_Channel1_YA_Horn1_Onでチャンネル番号と出力接点の組み合わせの有効性が確認されます。チャンネル1のパルス出力が目標値diTargetValue0に達すると、出力YATRUEにセットされます。

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 3 ;
        NETWORK_BODY
B(B_VARIN,,iChannel1,7,1,9,3,);
B(B_VAROUT,,bIsActive,26,1,28,3,);
B(B_F,PulseInfo_IsTargetValueMatchActive!,,9,0,26,3,,?DiChannel?C);
L(1,0,1,3);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 6 ;
        NETWORK_BODY
B(B_VAROUT,,bErrorSet,51,1,53,3,);
B(B_CONTACT,,bSet,3,1,5,3,R);
B(B_CONTACT,,bIsActive,7,1,9,3,N);
B(B_VARIN,,iChannel1,32,2,34,4,);
B(B_VARIN,,diTargetValue0,32,4,34,6,);
B(B_F,GetPointer!,,27,3,34,5,,?D?C);
B(B_VARIN,,g_bPulse_TargetValueMatch_Channel1_YA_Horn1_On,25,3,27,5,);
B(B_F,Pulse_TargetValueMatch_Set!,,34,0,48,6,,?DbExecute?DiChannel?DpYOutput?DdiTargetValue?CbError);
L(5,2,7,2);
L(1,2,3,2);
L(9,2,34,2);
L(48,2,51,2);
L(1,0,1,6);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

STボディ

bIsActive:=PulseInfo_IsTargetValueMatchActive(iChannel1);
Pulse_TargetValueMatch_Set(bExecute := DF(bSet) AND NOT bIsActive,
             iChannel := iChannel1,
             pYOutput := GetPointer(g_bPulse_TargetValueMatch_Channel1_YA_Horn1_On),
             diTargetValue := diTargetValue0,
             bError => bErrorSet);

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