비교(Compare, CMP)
이 정보는
CompactLogix
5370, ControlLogix
5570, Compact GuardLogix
5370, GuardLogix
5570, Compact GuardLogix
5380, CompactLogix
5380, ControlLogix
5580, GuardLogix
5580 및 ControlLogix 5590 컨트롤러에 적용됩니다. 컨트롤러 구분이 있을 때는 언급합니다.연산자, 태그 및 즉시 값을 사용하여 CMP 식을 정의합니다. 괄호( )를 사용하여 더 복잡한 식의 섹션을 정의합니다.
CMP 명령어를 사용할 경우 복잡한 식을 하나의 명령어에 담을 수 있다는 장점이 있습니다.
식을 계산할 때 다음 조건 중 하나라도 참인 경우 계산이 수행되기 전에 REAL이 아닌 모든 피연산자가 REAL로 변환됩니다.
- 식의 모든 피연산자가 REAL입니다.
- 이 식에는 SIN, COS, TAN, ASIN, ACOS, ATAN, LN, LOG, DEG, RAD가 포함됩니다.
안전 응용 프로그램에서 허용 가능한 연산자에 대한 규칙이 있습니다.
유효 연산자
섹션을 참조하십시오.사용 가능한 언어
래더 다이어그램

펑션 블록
이 명령어는 함수 블록에서 사용할 수 없습니다.
구조화된 텍스트
이 명령어는 구조화된 텍스트에서 사용할 수 없습니다.
피연산자
다음은 CMP 명령어에 대한 피연산자입니다.
중요:
다음과 같은 경우 작업 시 예외가 발생할 수 있습니다.
- 출력 태그 피연산자가 덮어써집니다.
- 구조 피연산자의 구성원이 덮어써집니다.
- 지정된 경우를 제외하고 여러 명령어에서 구조 피연산자를 공유합니다.
명령어 내에서 숫자 데이터 유형을 혼합하기 위한 데이터 변환 규칙이 있습니다. 데이터 변환을 참조하십시오.
래더 다이어그램
다음은 래더 다이어그램 피연산자입니다.
피연산자 | 데이터 유형 CompactLogix 5370, ControlLogix 5570, Compact GuardLogix 5370 및 GuardLogix 5570 컨트롤러 | 데이터 유형 CompactLogix 5380, ControlLogix 5580, Compact GuardLogix 5380, GuardLogix 5580 및 ControlLogix 5590 컨트롤러 | 형식 | 설명 |
|---|---|---|---|---|
Expression | SINT INT DINT REAL 문자열 유형 | SINT INT DINT LINT USINT UINT UDINT ULINT REAL LREAL 문자열 유형 | 즉시 태그 | 태그 및/또는 연산자로 구분된 즉시 값으로 구성된 식 |
식의 형식
식에 사용된 연산자마다 하나 또는 두 개의 피연산자(태그 또는 즉시 값)를 입력해야 합니다. 다음 표를 사용하여 식 내의 연산자 및 피연산자 형식을 지정합니다.
연산자 작용 대상: | 사용 형식: | 예 |
|---|---|---|
피연산자 1개 | 연산자(피연산자) | ABS(태그) |
피연산자 2개 | operand_a 연산자 operand_b | tag_b + 5 tag_c AND tag_d (tag_e**2) MOD (tag_f / tag_g) |
연산 순서 정의
명령어는 규정된 순서로 식의 연산을 수행합니다. 연산이 반드시 나타나는 순서대로 수행되는 것은 아닙니다. 괄호 내에 조건을 그룹화, 명령어 자체의 연산에 앞서 괄호 안의 연산을 수행하게 하는 등으로 연산 순서를 지정할 수 있습니다.
연산 순서가 같은 경우에는 왼쪽에서 오른쪽 순으로 수행됩니다.
순서 | 연산 |
|---|---|
1 | ( ) |
2 | ABS, ACOS, ASIN, ATAN, COS, DEG, BCD_TO, IsINF, IsNAN, LN, LOG, RAD, SIN, SQRT, TAN, TO_BCD, TRUNC |
3 | ** |
4 | - (부정), NOT, ! |
5 | *, /, MOD |
6 | - (빼기), + |
7 | AND |
8 | XOR |
9 | OR |
10 | <, <=, >, >=, =, <> |
11 | && |
12 | ^^ |
13 | || |
식에 문자열 사용
식에 ASCII 문자의 문자열을 사용하려면 다음 지침을 따릅니다.
- 식으로 두 문자열 태그를 비교합니다.
- ASCII 문자를 직접 식 안에 입력할 수 없습니다.
- 다음 연산자가 허용됩니다.연산자설명=같음<보다 작음<=보다 작거나 같음>보다 큼>=보다 크거나 같음<>같지 않음
- 문자가 일치하면 문자열은 동일합니다.
- ASCII 문자는 대소문자가 구분됩니다. 대문자 A($41)와 소문자 a($61)는 다릅니다.
- 16진수 문자값으로 한 문자열이 다른 문자열보다 작거나 큰지를 판단합니다.
- 두 문자열이 전화번호부와 마찬가지로 정렬된 경우 문자열의 순서로 어느 문자열이 큰지 알 수 있습니다.

연산 상태 플래그에 영향
컨트롤러 | 연산 상태 플래그에 영향 |
CompactLogix 5380, ControlLogix 5580, Compact GuardLogix 5380 및 GuardLogix 5580 컨트롤러 | 아니요 |
CompactLogix 5370, ControlLogix 5570, Compact GuardLogix 5370 및 GuardLogix 5570 컨트롤러 | 식에 연산 상태 플래그에 영향을 미치는 연산자(예: +, −, *, /)가 포함되어 있는 경우 CMP 명령어가 연산 상태 플래그에 영향을 미칩니다. |
연산 상태 플래그를 참조하십시오.
주 폴트/부 폴트
이 명령어에만 해당되는 것은 없습니다. 배열 인덱스 오류의 경우 배열을 통한 인덱스를 참조하세요.
실행
래더 다이어그램
조건/상태 | 수행한 작업 |
|---|---|
사전 스캔 | N/A. |
렁-입력-조건이 거짓임 | 렁-출력-조건을 렁-입력-조건으로 설정 |
렁-입력-조건이 참임 | 렁-출력-조건을 렁-입력-조건으로 설정 식이 거짓으로 평가되는 경우 렁-출력-조건이 거짓으로 해제됩니다. |
사후 스캔 | N/A |
예
래더 다이어그램

value_1과 value_2가 같은 경우 light_a는 참으로 설정됩니다. value_1과 value_2가 같지 않으면 light_a는 거짓으로 해제됩니다.
의견을 작성 부탁드립니다.