트렌드 예제
예제: 트렌드로 데이터 변화 관측하기
트렌드 설정
-
태그 4개를 다음과 같이 생성합니다.
태그명: Count 데이터 종류: INT (INT16) 초기값: 0
태그명: ON 데이터 종류: BOOL 초기값: False
태그명: Max 데이터 종류: INT (INT16) 초기값: 20
태그명: Min
데이터 종류: INT (INT16)
초기값: 0
-
페이지에 스위치/램프 오브젝트를 생성합니다. ON 태그를 드래그하여 스위치/램프 오브젝트 위에 드롭합니다.
-
도구 > 스크립트 편집기에서 새 스크립트를 생성하고 다음 내용을 복사 및 붙여넣기 합니다.
var invert = false; // 값 증감 결정
thread.msleep(100); // 스위치/램프에 할당된 태그 값 업데이트 대기
while (tag.read("ON")) { // ON 태그 값이 1일 동안
tag.write("Count", invert ? tag.read("Count") - 1 : tag.read("Count") + 1); // Invert 변수가 false 이면 Count 태그에 1 추가. Invert 변수가 true 면 Count 태그에서 1 감소
thread.msleep(500); // Count 태그 값 업데이트 대기
if (tag.read("Count") < tag.read("Min")) {tag.write("Count", tag.read("Min"))} // Count 값이 Min보다 적으면 Min 값을 Count 태그에 쓰기
else if (tag.read("Count") > tag.read("Max")) {tag.write("Count", tag.read("Max"))} // Count 값이 Max 보다 크면 Max 값을 Count 태그에 쓰기
thread.msleep(500); // Count 태그 값 업데이트 대기
if (tag.read("Count") == tag.read("Min") || tag.read("Count") == tag.read("Max")) {invert = !invert} // Count 태그 값이 Max 또는 Min에 도달하면 Invert 변수 값 반전
}
붙여넣기를 완료한 다음 스위치/램프 오브젝트의 동작 탭으로 이동합니다. 누를 때에 새 명령을 생성합니다. 태그 값 토글 명령을 사용하고 대상 태그에는 On 태그를 사용합니다. 또 스크립트 호출 명령을 추가합니다. 호출할 스크립트는 3에서 생성한 스크립트를 지정합니다.
-
삽입 > 트렌드 또는 트렌드 삽입을 클릭하여 페이지에 트렌드 오브젝트를 추가합니다. Min 태그는 최솟값 속성에, Max 태그는 최댓값 속성에 연결합니다.
-
Count 태그를 드래그하여 트렌드 오브젝트에 놓습니다. 이 동작으로 펜 하나를 추가하게 됩니다. 펜 속성에서 펜 굵기를 5로 바꿉니다.
런타임 트렌드
-
도구 > 시뮬레이터 실행을 눌러 시뮬레이터를 실행합니다.
-
스위치/램프 오브젝트를 클릭하여 ON 상태로 만듭니다. 이후 Count 태그의 값이 계속 증가하며 Max 값에 도달하면 다시 줄어드는 동작을 반복합니다.
-
시간이 지난 후 Max 태그의 값을 10으로 변경하고 Min 태그의 값을 -10으로 변경합니다. Count 태그의 값이 범위 밖에 있다면 즉시 가장 가까운 최대/최솟값으로 변경됩니다.