스케줄 예제
예제: 스케줄을 이용해서 오일 교체 시기 미리 알리기
스케줄 설정
- 태그를 다음과 같이 2개 생성합니다. 태그 이름: Oil_Level 데이터 종류: INT (INT16) 초기 값: 50
태그 이름: Oil_Consumption 데이터 종류: BOOL 초기 값: False
- 페이지에 스위치/램프 오브젝트를 추가합니다. 삽입 > 스위치/램프 를 클릭하거나 툴바에서 스위치/램프 삽입 아이콘을 클릭하여 페이지에 추가할 수 있습니다. 이후 “Oil_consumption” 태그를 스위치/램프 오브젝트에 드래그 및 드랍하여 연결시킵니다.
- 삽입 메뉴 또는 툴바를 통해 사각형 오브젝트와 사각형 (채우기) 오브젝트를 추가합니다. 사각형 오브젝트를 선택한 다음, 동작 탭 > 누를 때에 태그 값 설정 명령을 다음과 같이 추가합니다. 명령: 태그 값 설정 태그: Oil_Level 값: 100
- Oil_Level 태그를 사각형 (채우기) 오브젝트에 드래그 및 드롭하여 연결시킵니다.
- 도구 > 스크립트 편집기를 클릭합니다. + 아이콘을 클릭해 새 스크립트를 생성하고 다음 내용을 붙여넣습니다.
thread.msleep(500); // sleeps for 500 ms
while(tag.read("Oil_consumption")){ // while Oil_consumption is true
thread.sleep(2); // pauses for 2 seconds
tag.write("Oil_Level", tag.read("Oil_Level") - 1); // deducts 1 from the oil level.
}
이후 스위치/램프 오브젝트의 동작 > 누를 때에 새 명령을 추가합니다. 명령 2개를 추가하며, 상세 내용은 다음과 같습니다. 명령: 태그 값 토글 태그: Oil_Consumption
명령: 스크립트 호출 스크립트: 위에서 생성한 스크립트
- 도구 > 스케줄 편집기를 클릭하여 편집기를 연 다음, + 아이콘을 눌러 새 스케줄을 생성합니다. 스케줄 속성은 다음과 같이 설정합니다. 스케줄 제목: Oil Refill 시작 날짜: 프로젝트 작성 당일 시작 시간: 현재 시각으로부터 5분 후 반복 주기: 1시간 동작: 화면에 알림 띄우기 (메시지: Refill the oil.)
런타임 스케줄
- 도구 > 시뮬레이터 실행을 클릭하여 시뮬레이터를 실행합니다.
- 스위치/램프 오브젝트를 클릭하여 Oil_Consumption 태그의 값을 1로 설정합니다. 그러면 스크립트가 호출되며 Oil_Level 태그의 값이 2초마다 1씩 감소합니다. 만약 Oil_Level의 값이 스케줄 실행 이전에 0이 된다면 사각형 오브젝트를 클릭해 다시 충전합니다.
- 시간이 지난 후 스케줄이 실행되면 다음 그림과 같이 화면에 알림이 발생합니다.