SUB

減算

アキュムレータの内容が、オペランドフィールドで定義されたオペランドから減算されます。演算結果は、アキュムレータに転送されます。

パラメータ

入力

未定義入力 (INT, DINT, UINT, UDINT, REAL, LREAL)

入力1:被減算データ

未定義入力 (INT, DINT, UINT, UDINT, REAL, LREAL)

入力2:減算データ

出力

未定義出力 (INT, DINT, UINT, UDINT, REAL, LREAL)

出力: 演算結果

解説

オペランドはすべて同じデータ型にしてください。

POUヘッダ

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

	VAR
		bStart: BOOL:=FALSE;
		iMinuend: INT:=0;
		iSubtrahend: INT:=0;
		iResult: INT:=0;
	END_VAR

この例では、入力変数(iMinuendiSubtrahendbStart)が宣言されています。ファンクションの入力ピンに、定数を直接入力することもできます。

LDボディ

bStartがセットされると、iSubtrahend(INT型)がiMinuendから減算されます。演算結果は、iResult (INT型)に書き込まれます。

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 8 ;
        NETWORK_BODY
B(B_VARIN,,minuend,6,3,8,5,);
B(B_VARIN,,subtrahend,6,4,8,6,);
B(B_VAROUT,,result,14,3,16,5,);
B(B_CONTACT,,enable,3,2,5,4,);
B(B_F,E_SUB!,Instance,8,1,14,6,,?DEN?D?D?AENO?C);
L(1,3,3,3);
L(5,3,8,3);
L(1,0,1,8);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

STボディ

IF bStart then
    iResult:=iMinuend-iSubtrahend;
END_IF;

ILボディ

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