KEEP

キープ

KEEP命令は、セット入力とリセット入力付きのフリップフロップとして働きます。

SetTriggerTRUEになると、指定したフラグがTRUEになり、その状態を維持します。ResetTriggerTRUEになると、フラグはFALSEになります。フラグの"TRUE"状態は、SetTriggerTRUE/FALSEに関係なく、ResetTriggerTRUEになるまで保持されます。SetTriggerResetTriggerが同時にTRUEになった場合は、ResetTriggerが優先されます。

パラメータ

入力

Set Trigger (BOOL)

AddressTRUEになります

Reset Trigger (BOOL)

AddressFALSEになります

出力

Address (BOOL)

このフラグの状態(TRUE/FALSE)が保持されます

POUヘッダ

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

	VAR
		SetTrigger1: BOOL:=FALSE;
			(*if SetTrigger1 is ON, the output  Address1 will turn ON*)
		ResetTrigger1: BOOL:=FALSE;
			(*if reset_trigger is ON, the
Address1 will turn OFF*)
		Address1: BOOL:=FALSE;
	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 := 5 ;
        NETWORK_BODY
B(B_F,KEEP!,Instance,13,1,23,5,,?DSetTrigger?DResetTrigger?CAddress);
B(B_VAROUT,,Address1,23,2,25,4,);
B(B_CONTACT,,ResetTrigger1,5,3,7,5,);
B(B_CONTACT,,SetTrigger1,5,1,7,3,);
L(1,4,5,4);
L(1,2,5,2);
L(7,2,12,2);
L(12,2,12,3);
L(7,4,13,4);
L(12,3,13,3);
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

STボディ

Address1:=KEEP(SetTrigger1, ResetTrigger1);

ILボディ

LD

SetTrigger1

(* load the value for the SetTrigger-Input *)

KEEP

ResetTrigger1

(* load the value for the ResetTrigger-Input and execute KEEP *)

ST

Address1

(* store the Address-Output value *)

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