[SCADA] TREND History mode에서 임의로 시간을 설정하여 데이터 보는 방법
2021.04.22

안녕하세요.
CIMON 입니다.

Q. TREND History mode에서 임의로 시간을 설정하여 데이터를 볼 수 있나요?

A. TrendSetTime(“Trend Object 이름”, “시간종류”, “시간 값”)함수를 응용하면 가능합니다.

1. TREND에서 사용할 태그와 임의의 시간을 설정할 태그를 등록합니다.

TREND에서 사용하는 태그는 반드시 데이터 수집을 추가해야 합니다.

2. 그림 – 라이브러리 – 윈도우컨트롤 – 문자입력 창 혹은 ComboBox를 선택합니다.


시작 시간과 종료 시간에 대한 태그를 년, 월, 일, 시, 분, 초에 맞게 넣어 줍니다.

3. TREND Object를 등록하고 펜 설정에서 펜을 등록합니다.

4. 시간 검색을 위한 Object와 History, Real mode로 변환할 Object를 등록합니다.

아래에서 사용할 Script를 사전에 등록합니다.

RealTime에서 History mode로 변환하기 위해 SetTrendMode 함수를 사용합니다.
SetTrendMode에서 TREND 모드가 1인 경우에는 Historical TREND 모드로 설정되고,
TREND 모드가 0인 경우에는 Real TREND 모드로 설정됩니다.

출몰조건은 TREND 모드가 Real TREND 모드일 때 출몰 되도록 설정합니다.
Real TREND인 경우에는 GetTrendMode의 값이 0을 출력하고,
Historical TREND인 경우에는 GetTrendMode의 값이 1을 출력합니다.
RealTime일 때 Object가 출몰 되야 하기 때문에 출몰조건을 Off로 설정합니다.

HistoryTime Object는 RealTime Object 와 반대로 설정합니다.


출몰조건이 성립할 때만 출몰 되도록 RealTime, HistoryTime Object를 겹쳐서 사용합니다.

5. Script를 작성합니다.

Script 하단에서 사용할 fVal은 년, 월, 일을 초 값으로 사용하기 때문에 Long 데이터로
사전에 선언합니다.
TrendSetTime 함수의 시간종류를 0으로 사용하기 위하여 sTime$를 YYYY/MM/DD HH:MM:SS 형태로 변경합니다..

dTime$는 Datediff 함수에서 YYYY-MM-DD로 사용하기 위해 형식에 맞게 변경합니다.
dTime2$ 또한 Datediff 함수에서 HH:MM:SS로 사용하기 위해 형식에 맞게 변경합니다.
eTime$, eTime2$ 또한 dTime$, dTime2$와 동일한 형태로 변경합니다.

Datediff 함수는 Datediff(interval, date1, date2) 형식으로 date2에서 date1을 뺀 값을
Interval 값으로 반환해주는 함수입니다.
Interval의 인수는 연도(yyyy), 분기(q), 월(m), 연중일(y), 일(d), 요일(w), 주(ww), 시(h),
분(m), 초(s)의 구성 요소로 되어 있습니다.

fVal은 종료 시간 YYYY-MM-DD에서 시작 시간 YYYY-MM-DD을 뺀 값을 초 값으로
반환한 값입니다.
sVal은 종료시간 HH-MM-SS에서 시작 시간 HH-MM-SS를 뺀 값을 초 값으로
반환한 값입니다.
fVal, sVal을 초 값으로 반환한 이유는 TrendSetTime 함수의 시간종류를 3번(“초단위”)으로 사용해야하기 때문입니다.
fVal, sVal의 합을TrendSetTime “TREND”, 3, fVal + sVal에 넣어줍니다.
sTime$은 TrendSetTime “TREND”, 0, sTime$에 넣어줍니다.

CimonX를 실행한 화면입니다.
시작 시간은 문자입력 창, ComboBox 중 아무거나 사용해도 무방합니다.

RealTime 모드를 History 모드로 변경하고 시작 시간과 종료 시간을 입력합니다.
시작 시간을 2020년12월9일10시30분10초로 설정하고
종료 시간을 2020년12월9일10시45분50초로 설정합니다.
입력이 끝나면 검색 버튼을 클릭합니다.

시작 시간과 종료 시간이 TREND에 들어간 것을 확인할 수 있습니다.

시작 시간과 종료 시간의 간격을 1년 이상 설정해도 무방합니다.
TrendSetTime 함수를 응용하면 임의의 기간 동안의 데이터를 Trend에서 확인 가능합니다.

추가 문의는 1899-5001으로 문의 바랍니다.

다운로드