# 조건

조건 트리거는 지정된 조건에 따라 작업을 실행합니다.

이 트리거는 조건이 충족되면 한 번 발생합니다. 조건 충족 여부는 조건에 설정된 값이 변경될 때 결정됩니다.

##### 블록

##### 텍스트

onCondition(SOURCE < CONSTANT1&&SOURCE > CONSTANT2,
1 4 1 5
{enableDelay:false,enableDeadband:false,delayValue:0,deadBandValue:0},
3 2 3 2
()=>{

});

1: Condition Source

2: Deadband

3: Hold Delay

[Hold Delay]가 사용하도록 설정되어 있으면 설정된 시간이 지나면 작업이 실행됩니다.

4: 조건 1

5: 조건 2

메모: Condition Source에 설정된 변수가 [값 변경] 또는 [조건] 트리거에 대한 다른 Condition Source에서도 사용되면 트리거가 제대로 작동하지 않을 수 있습니다. 여러 [값 변경] 또는 [조건] 트리거를 사용하는 경우 서로 다른 변수를 Condition Source에 할당하십시오.

(예제 1)

BOOL 변수 BOOL2 값이 ON으로 설정되면 트리거가 발생합니다.

변수 블록 | 조건
변수 블록에서 BOOL2를 선택합니다. | 조건을 [==]으로 설정합니다. 상수 블록에서 [Bool]을 선택하고 확인란을 선택합니다.
##### 블록 ##### 텍스트 onCondition(BOOL2 == true,{enableDelay:false,enableDeadband:false,delayValue:0,deadBandValue:0}, ()=>{ });

(예제 2)

정수 변수 INT2 값이 20을 초과하면 트리거가 발생합니다.

변수 블록 | 조건
변수 블록에서 INT2 변수를 선택합니다. | 조건을 [>]으로 설정합니다. 상수 블록에서 [Int]를 선택하고 20을 설정합니다.
##### 블록 ##### 텍스트 onCondition(INT2 > 20,{enableDelay:false,enableDeadband:false,delayValue:0,deadBandValue:0}, ()=>{ });

(예제 3)

문자열 변수 STRING2 값이 ABC가 되면 트리거가 발생합니다.

변수 블록 | 조건
변수 블록에서 STRING2 변수를 선택합니다. | 조건을 [==]으로 설정합니다. 상수 블록에서 [STRING]을 선택하고 ABC를 입력합니다.
##### 블록 ##### 텍스트 onCondition(STRING2 == "ABC",{enableDelay:false,enableDeadband:false,delayValue:0,deadBandValue:0}, ()=>{ });

(예제 4)

그래픽 개체 Rectangle2의 높이가 15~20이면 트리거가 발생합니다.

그래픽 오브젝트가 Screen1에 그려집니다.

화면 오브젝트 블록 | 조건
화면 오브젝트 블록에서 Rectangle2.Height를 선택합니다. | 상수 블록에서 [Int]를 선택하고 15을 설정합니다. 조건을 [<=]으로 설정합니다. 기타 조건을 [<=]로 설정합니다. 상수 블록에서 [Int]를 선택하고 20을 설정합니다.
##### 블록 ##### 텍스트 onCondition(15 <= $GraphicObject.Rectangle2.Height && $GraphicObject.Rectangle2.Height <= 20,{enableDelay:false,enableDeadband:false,delayValue:0,deadBandValue:0}, ()=>{ });

### 조건에서 지원되는 부호

[==] | 같음 부호
[!=] | 같지 않음 부호
[<=] | 작거나 같음 부호
[>=] | 크거나 같음 부호
[<] | 보다 작음 부호
[>] | 보다 큼 부호

### 데드 밴드

알람을 트리거할 값과 알람을 복구할 값 사이의 값 범위를 Deadband라고 합니다.

(예)

조건이 X>20 이고 Deadband가 5라고 가정합니다.

다음 차트를 참조하십시오. A 지점에서는 입력값이 처음으로 20을 초과하므로 트리거가 발생합니다. B 지점에서는 입력값이 15 미만으로 떨어지지 않으므로 트리거가 발생하지 않습니다. C 지점에서는 입력값이 15 미만이었다가 20을 초과하게 되므로 트리거가 발생합니다.

##### 블록

##### 텍스트

onCondition(Var1 > 20,{enableDelay:false,enableDeadband:true,delayValue:0,deadBandValue:5}, ()=>{

});

아래 표는 다양한 조건에서의 Deadband를 보여줍니다:

예 | 설명
X<5, Deadband = 1 | 입력값이 5 미만이면 항상 트리거가 발생합니다. 입력값이 처음으로 5 미만일 때 트리거가 발생합니다. 다음 트리거는 입력값이 6 이상으로 오르거나 5 미만으로 내려갈 때 발생합니다.
X<=5, Deadband = 1 | 입력값이 5 이하이면 항상 트리거가 발생합니다. 입력값이 처음으로 5 이하일 때 트리거가 발생합니다. 다음 트리거는 입력값이 6 이상으로 오르거나 5로 내려갈 때 발생합니다.
X==5, Deadband = 1 | 입력값이 5가 되면 항상 트리거가 발생합니다. 입력값이 처음으로 5가 될 때 트리거가 발생합니다. 다음 트리거는 입력값이 6 이상으로 오르거나 4 이하로 내려간 다음 다시 5에 이를 때 발생합니다.
X!=5, Deadband = 1 메모: Deadband는 설정해도 [!=] 조건을 지원하지 않습니다. | 입력값이 5가 아닐 때 항상 트리거가 발생합니다. 입력값이 처음으로 5가 아닐 때 트리거가 발생합니다. 입력값이 5에 도달한 후 다른 값으로 변경될 때 다음 번 트리거가 발생합니다.
4<=X<=6, Deadband = 1 | 입력값이 4 ~ 6일 때 항상 트리거가 발생합니다. 입력값이 처음으로 4 ~ 6일 때 트리거가 발생합니다. 다음 트리거는 입력값이 7 이상으로 오른 다음 4~6 사이의 겂에 이를 때 발생합니다. 트리거는 입력값이 3 이하로 내려간 다음 4~6 사이의 값에 이를 때도 발생합니다.