XOR

排他的論理和演算

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

パラメータ

入力

未定義入力 (BOOL, WORD, DWORD)

入力1:XOR演算の要素1

未定義入力 (BOOL, WORD, DWORD)

入力2: 入力1との比較する要素

出力

未定義出力 (BOOL, WORD, DWORD)

出力: 演算結果

解説

  • オペランドはすべて同じデータ型にしてください。
  • このファンクションは、最大28入力接点まで拡張することができます。エレメントの修正も参照してください。

真理値表:

入力1

入力2

出力

信号

0

0

0

1

0

1

0

1

1

1

1

0

POUヘッダ

POUヘッダには、このプログラムで使用するすべての入力変数と出力変数を宣言します。POUヘッダは全プログラム言語で使用できます。
	VAR
		bvar_1: BOOL:=FALSE;
			(*Input 1*)
		bvar_2: BOOL:=FALSE;
			(*Input 2*)
		bvar_3: BOOL:=FALSE;
			(*Output*)
	END_VAR

POUボディ

BOOL型変数bvar_1bvar_2が排他的論理和演算され、演算結果がbvar_3に格納されます。

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,@XOR-2!,,10,1,15,4,,?D?D?C);
B(B_VARIN,,bvar_1,8,1,10,3,);
B(B_VARIN,,bvar_2,8,2,10,4,);
B(B_VAROUT,,bvar_3,15,1,17,3,);
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

STボディ

var_3:= var_1 XOR var_2;

ILボディ

LD

bvar_1

(* Load bvar_1 in accu *)

XOR

bvar_2

(* Perform an XOR of accu with bvar_2; store result in accu *)

ST

bvar_3

(* Store accu in bvar_3 *)

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