논리연산 명령은 논리합, 논리적 등의 논리 연산을 1비트 단위로 다음과 같이 처리합니다.

AND: 특정 비트를 16진코드와 AND처리하여 마스크하는 프로그램에서 사용 합니다. 

OR: 바이트 단위의 데이터를 결합, 조작하는 프로그램에서 사용합니다. 

XOR: 입력 A와 B가 같을 때 0이 되고, 다를 때 1이 되므로 SUM명령 또는 = K0의 비교문과 더불어 알람 발생시 BUZZER등의 경보를 발생할 수 있습니다. 시리얼 통신에서 패리티 체크를 하거나 체크섬 계산에 이용할 수도 있습니다.

XNR: 상대 데이터의 비트 패턴을 비교하는 프로그램에서 사용합니다.  입력 A와 B가 같을 때 1이되고, 다를 때 0이 되므로 SUM명령과 더불어 유니트의 준비 상태 비교나, 알람 발생 여부(개수)등을 알 수 있습니다.


1) 16비트/32비트 데이터 논리적(WAND(P), DAND(P)) 

▶[WAND(P)   (S)    (D)]

(S)로 지정된 디바이스의 16비트 데이터와 (D)로 지정된 디바이스의 16비트 데이터를 비트 별로 논리적으로 실행하여, 결과를 (D)로 지정된 디바이스에 저장 

▶[WAND(P)  (S1)    (S2)   (D)]

(S1)로 지정된 디바이스의 16비트 데이터와 (S2)로 지정된 디바이스의 16비트 데이터를 비트 별로 논리적으로 실행하여, 결과를 (D)로 지정된 디바이스에 저장
비트 디바이스의 경우, 지정된 자리 이상은 0으로 처리 됩니다.

▶[DAND(P)    (S)    (D)]

(S)로 지정된 디바이스의 32비트 데이터와 (D)로 지정된 디바이스의 32비트 데이터를 비트 별로 논리적으로 실행하여 결과를 (D)로 지정된 디바이스에 저장 
비트 디바이스의 겨우, 지정된 자리 이상은 0으로 처리됩니다.

▶[DAND(P)   (S1)   (S2)    (D)]

(S1)로 지정된 디바이스의 32비트 데이터와 (S2)로 지정된 디바이스의 32비트 데이터를 비트별로 논리적으로 실행하여, 결과를 (D)로 지정된 디바이스에 저장
비트 디바이스의 경우, 지정된 자리 이상은 0으로 처리된다.
특정비트를 16진 코드와 AND처리하여 마스크하는 프로그램에서 자주 사용한다.
[WAND K4X100 HF0 D10] = X100~X10F까지의 비트 중 X104~X107 의 상태만 D10에저장

2) 블록 논리적(BKAND(P))

▶[BKAND(P)   (S1)    (S2)     (D)   n]

(S1)로 지정된 디바이스부터 n점의 내용과 (S2)로 지정된 디바이스부터 n점의 내용의 논리적으로 실행하여 결과를 (D)로 지정된 디바이스 이후에 저장
(S2)에 BIN 16비트 정수를 지정하는 경우 -32768~32767(BIN16비트)의 정수를 지정할 수 있다.


3) 16비트/32비트 데이터 논리합(WOR(P) DOR(P))

▶[WOR(P)     (S)     (D)]

(S)로 지정된 디바이스의 16비트 데이터와 (D)로 지정된 디바이스의 16비트 데이터를 비트 별로 논리합을 실행하여, 결과를 (D)로 지정된 디바이스에 저장
비트 디바이스의 경우, 지정된 자리 이상은 0으로 처리 됩니다.

▶[WOR(P)   (S1)    (S2)    (D)]

(S1)로 지정된 디바이스의 16비트 데이터와 (S2)로 지정된 디바이스의 16비트 데이터를 비트 별로 논리합으로 실행하여, 결과를 (D)로 지정된 디바이스에 저장합니다. 
비트 디바이스의 경우, 지정된 자리 이상은 0으로 처리됩니다.

▶[DOR(P)  (S)   (D)]

(S)로 지정된 디바이스의 32비트 데이터와 (D)로 지정된 디바이스의 32비트 데이터를 비트 별로 논리합을 실행하여, 결과를 (D)로 지정된 디바이스에 저장합니다. 

▶[DOR(P)   (S1)   (S2)   (D)]

(S1)로 지정된 디바이스의 32비트 데이터와 (S2)로 지정된 디바이스의 32비트 데이터를 비트 별로 논리합을 실행하여 결과를 (D)로 지정된 디바이스에 저장합니다. 
비트 디바이스의 경우, 지정된 자리 이상은 0으로 처리됩니다. 
바이트 단위의 ASCII코드나 통신 수신부 데이터를 결합 및 조작하는 프로그램에서 자주 사용

4) 블록 논리합(BKOR(P))

▶[BKOR(P)   (S1)    (S2)    (D)    n]

(S1)로 지정된 디바이스부터 n점의 내용과 (S2)로 지정된 디바이스부터 n점의 내용의 논리합을 실행하여, 결과를 (D)로 지정된 디바이스 이후에 저장
(S2)에 BIN16비트 정수를 지정하는 경우, -32768~32767(BIN16비트)의 정수를 지정할 수 있습니다.

5) 16비트/32비트 데이터 배타적 논리합(WXOR(P), DXOR(P))

▶[WXOR(P)    (S)    (D)]

(S)로 지정된 디바이스의 16비트 데이터와 (D)로 지정된 디바이스의 16비트 데이터를 비트 별로 배타적 논리합을 실행하여, 결과를 (D)로 지정된 디바이스에 저장합니다. 
비트 디바이스의 경우, 지정된 자리 이상은 0으로 처리됩니다.

▶[WXOR(P)   (S1)   (S2)   (D)]

(S1)로 지정된 디바이스의 16비트 데이터와 (S2)로 지정된 디바이스의 16비트 데이터를 비트 별로 배타적 논리합을 실행하여, 결과를 (D)로 지정된 디바이스에 저장

▶[DXOR(P)  (S)    (D)]

(S)로 지정된 디바이스의 32비트 데이터와 (D)로 지정된 디바이스의 32비트 데이터를 비트별로 배타적 논리합을 실행하여, 결과를 (D)로 지정된 디바이스에 저장합니다. 
비트 디바이스의 경우, 지정된 자리 이상은 0으로 처리됩니다.

▶[DXOR(P)  (S1)    (S2)   (D)]

(S1)로 지정된 디바이스의 32비트 데이터와 (S2)로 지정된 디바이스의 32비트 데이터를 비트 별로 배타적 논리합을 실행하여, 결과를 (D)로 지정된 디바이스에 저장합니다.
비트 디바이스의 경우, 지정된 자리 이상은 0으로 처리됩니다.

6) 블록 배타적 논리합(BKXOR(P))

▶[BKXOR(P)   (S1)    (S2)   (D)   n]

(S1)로 지정된 디바이스부터 n점의 내용과 (S2)로 지정된 디바이스부터 n점의 내용의 배타적 논리합을 실행하여, 결과를 (D)로 지정된 디바이스 이후에 저장한다.
(S2)에 BIN 16비트 정수를 지정하는 경우, -32768~32767(BIN 16비트)의 정수를 지정할 수 있다.

7) 16비트/32비트 데이터 부정 배타적 논리합(WXNR(P), DXNR(P))

▶[WXNR(P)    (S)    (D)]

(S)로 지정된 디바이스의 16비트 데이터와 (D)로 지정된 디바이스의 16비트 데이터를 비트 별로 부정 배타적 논리합을 실행하여, 결과를 (D)로 지정된 디바이스에 저장
비트 디바이스의 경우, 지정된 자리 이상은 0으로 처리됩니다.

▶[WXNR(P)  (S1)   (S2)    (D)]

(S1)로 지정된 디바이스의 16비트 데이터와 (S2)로 지정된 디바이스의 16비트 데이터를 비트 별로 부정 배타적 논리합을 실행하여, 결과를 (D)로 지정된 디바이스에 저장
비트 디바이스의 경우, 지정된 자리 이상은 0으로 처리됩니다.

▶[DXNR(P)   (S)   (D)]

(S)로 지정된 디바이스의 32비트 데이터와 (D)로 지정된 디바이스의 32비트 데이터를 비트 별로 부정 배타적 논리합을 실행하여, 결과를 (D)로 지정된 디바이스에 저장
비트 디바이스의 경우, 지정된 자리 이상은 0으로 처리됩니다.

▶[DXNR(P)   (S1)   (S2)    (D)]

(S1)로 지정된 디바이스의 32비트 데이터와 (D)로 지정된 디바이스의 32비트 데이터를 비트 별로 부정배타적 논리합을 실행하여, 결과를(D)로 지정된 디바이스에 저장
비트 디바이스의 경우, 지정된 자리 이상은 0으로 처리됩니다.
※상대 데이터의 비트 패턴을 비교하는 프로그램에서 자주 사용합니다.
[WXNR  K4X100   D10   D12]
[SUM  D12  D14]  D14=K4X100과 D10의 패턴이 일치하는 비트 개수

8) 블록 배타적 논리합 (BKXNR(P))

▶[BKXNR(P)    (S1)     (S2)     (D)   n]

(S1)로 지정된 디바이스부터 n점의 내용과 (S2)로 지정된 디바이스부터 n점의 내용의 부정 배타적 논리합을 실행하여, 결과를 (D)로 지정된 디바이스 이후에 저장
(S2)에 BIN 16비트 정수를 지정하는 경우, -32768~32767(BIN 16비트)의 정수를 지정할 수 있습니다.

 

'PLC' 카테고리의 다른 글

[20] 시프트 명령  (0) 2020.02.19
아날로그 제어 (D/A)(미완성)  (0) 2020.02.18
BJT (Bipolar Junction Transistor)란?  (0) 2020.01.28
FET란?  (0) 2020.01.28
PNP와 NPN차이점  (0) 2020.01.28

+ Recent posts