조건
조건은 제어 또는 조건그룹 안에 추가하거나, 조건 영역에 있는 블록의 위·아래에 표시되는 + 버튼으로 추가합니다. 조건 영역이 비어 있으면 그 자리에 표시되는 조건 추가 버튼으로 추가합니다. 각 조건에는 사용 여부, 이름, 타입, 옵션을 설정할 수 있으며, 옵션은 제어의 조건 옵션과 동일합니다.
- 사용: 사용하지 않는 조건은 조건 계산에서 제외되므로 조건 영역이나 조건그룹의 만족 여부에 영향을 주지 않습니다.
- 이름: 임의의 이름을 사용할 수 있습니다.
- 타입: 선택한 타입의 설정 항목이 표시됩니다. 콤보박스 값을 바꾸면 다른 타입으로 변경할 수 있으며 기본값은 항상 만족입니다.
- 옵션: 고를 수 있는 옵션은 타입에 따라 다릅니다. 항상 만족, 한번만 만족, 시간 주기는 없음·반전 두 가지, 변경 감지는 없음·반전·참이 되는 횟수 세 가지, 나머지 타입은 제어의 조건 옵션과 같은 여섯 가지입니다. 옵션에 따라 표시되는 유지 시간, 횟수, 타임아웃 시간, 타임아웃 모드 항목도 제어와 같습니다.
조건 타입
| 분류 | 타입 | 설명 |
|---|---|---|
| 논리 | 항상 만족 | 항상 조건을 만족합니다. 동작을 항상 실행해야 할 때 사용합니다. |
| 한번만 만족 | 최초 1회만 만족하고 이후에는 만족하지 않습니다. 변수값 초기화처럼 최초 1회만 실행할 동작에 사용합니다. | |
| 변수값 비교 | 변수의 값을 설정한 값과 비교합니다. 가장 많이 사용하는 타입입니다. | |
| 날짜/시간 | 스케쥴 | 지정한 날짜에 조건을 만족합니다. 일, 주, 월, 년 단위의 반복 주기를 설정하며(주 단위에서는 요일을 함께 지정), 종료는 종료 없음, 종료 날짜, 반복 횟수 중에서 선택합니다. |
| 시간 구간 | 하루 중 설정한 시간 범위에만 만족합니다. 여러 구간을 설정할 수 있습니다. | |
| 시간 주기 | 설정한 시간 간격마다 한 사이클(로직 실행 주기 1회) 동안 만족합니다. 주기적으로 실행할 동작에 사용합니다. | |
| 상태 | 조건 참조 | 다른 조건, 조건그룹, 제어의 만족 여부를 참조합니다. 기존 조건을 재사용할 때 사용합니다. |
| 동작 참조 | 다른 동작, 동작그룹, 제어, 제어그룹의 실행 상태(시작안함/실행중/완료/에러)를 조건으로 사용합니다. | |
| 변경 감지 | 변수 값이 변경되면 한 사이클 동안 만족합니다. 여유 값과 샘플링 주기로 감지 기준을 조정합니다. | |
| 기타 | 사용자 조건 | 블록 코딩으로 조건을 직접 작성합니다. 블록의 반환값은 디지털 타입이어야 합니다. |
타입별 설정 항목
변수값 비교
변수의 값을 입력한 값과 비교하여, 비교 결과가 참이면 조건을 만족합니다.
- 변수: 비교할 변수를 선택합니다. 모든 타입의 변수를 선택할 수 있습니다.
- 연산자: 같다(=), 같지 않다(≠), 작다(<), 작거나 같다(≤), 크거나 같다(≥), 크다(>) 중에서 선택합니다. 변수가 디지털, 문자열, 바이트 배열, 색상 타입이면 같다(=)와 같지 않다(≠)만 선택할 수 있습니다.
- 값: 비교할 값을 입력합니다. 입력 항목은 변수 타입에 맞는 입력기(숫자, 문자열, 날짜, 시각, 시간, 색상 등)로 바뀌며, 블록 코딩으로 값을 지정할 수도 있습니다.
스케쥴
오늘 날짜가 설정한 스케쥴에 해당하면 조건을 만족합니다. 날짜 단위의 조건이므로 하루 중 특정 시각에만 실행하려면 시간 구간 조건과 함께 사용합니다.
- 시작 날짜: 스케쥴을 시작할 날짜를 선택합니다. 기본값은 오늘입니다.
- 종료 선택: 종료 없음(시작 날짜부터 계속 적용. 예: 2025-01-31부터 계속), 종료 날짜(시작 날짜부터 종료 날짜까지만 적용. 예: 2025-01-31부터 2025-02-28까지), 반복 횟수(시작 날짜부터 반복 횟수만큼 적용. 예: 2025-01-31부터 3일 주기로 5회 반복하면 01-31, 02-03, 02-06, 02-09, 02-12) 중에서 선택합니다.
- 종료 날짜: 종료 선택이 종료 날짜일 때만 표시됩니다.
- 반복 횟수: 종료 선택이 반복 횟수일 때만 표시됩니다(1~65535).
- 반복 단위: 일, 주, 월, 년 중에서 선택합니다.
- 반복 주기: 반복 단위 몇 개마다 반복할지 숫자로 입력합니다. 반복 단위가 일이고 반복 주기가 3이면 3일마다 만족합니다.
- 요일: 반복 단위가 주일 때만 표시되며, 스케쥴을 적용할 요일을 선택합니다.
시간 구간
현재 시각이 설정한 시간 구간 중 하나에라도 해당하면 조건을 만족합니다. 시간 구간 표의 우측 상단 +로 구간을 추가하고 각 줄의 시작시간과 종료시간을 입력하며, 줄 끝의 삭제 아이콘으로 구간을 삭제합니다. 구간은 한 줄 이상 입력합니다(필수 항목).
시간 주기
주기에 시간 간격을 입력합니다. 기본값은 5초이며, 설정한 간격마다 한 사이클 동안 조건을 만족합니다.
조건 참조
조건 참조 항목에서 참조할 조건, 조건그룹, 제어를 선택합니다. 선택 창 상단의 로직 목록에서 로직을 고른 뒤 그 로직의 제어와 조건을 선택하므로, 다른 로직에 있는 조건도 참조할 수 있습니다. 목록에는 각 항목의 타입과 옵션이 함께 표시됩니다.
동작 참조
동작 참조 항목에서 참조할 동작, 동작그룹, 제어, 제어그룹을 선택하고(선택 방법은 조건 참조와 같습니다), 상태에서 비교할 실행 상태를 선택합니다. 참조 대상의 현재 상태가 선택한 상태와 같으면 조건을 만족합니다.
- 시작안함: 참조 대상이 아직 실행되지 않았습니다.
- 실행중: 참조 대상이 실행 중입니다.
- 완료: 참조 대상이 실행을 완료했습니다. 기본값입니다.
- 에러: 참조 대상의 실행 중 에러가 발생했습니다.
변경 감지
변수에서 값 변경을 감지할 변수를 선택합니다. 모든 타입의 변수를 선택할 수 있으며, 여유 값은 숫자 타입 변수를 선택했을 때만 표시됩니다. 여유 값과 샘플링 주기의 의미는 위의 알아두기를 참고합니다. 이 타입의 옵션은 없음, 반전, 참이 되는 횟수 세 가지입니다.
사용자 조건
조건 항목의 블록 편집 창에서 블록 코딩으로 조건을 작성합니다. 작성한 블록은 반드시 최상위의 반환 블록에 연결해야 하며, 반환 값은 디지털 타입이어야 합니다. 반환 값이 true이면 조건을 만족하고 그렇지 않으면 만족하지 않습니다. 블록 편집 창의 사용 방법은 8부를 참고합니다.