주메뉴 바로가기 | 쇼핑카테고리 바로가기 | 하위메뉴 바로가기 | 본문 바로가기

고객지원

  • 공지사항
  • 새소식
  • 자료실
  • 영업문의
  • A/S 문의
  • Q&A
  • 교육
  • 사업자등록증 출력
  • 자료실

Q&A

HOME > 고객지원 > Q&A
  • 서울사업본부
  • 창원사업본부
수정하여 다시 올립니다.
작성자: 관리자 2002-07-03 18:15:18 | 1,619
{위의 Script는 ON된 날짜와 OFF된 날짜가 다를 경우 가동시간이 계산되지 않는 에러를 수정하였습니다. }
{ 현재 가동시간은 분단위로 계산이 되게 되어있습니다. }
{ 현재 총 가동시간이 35791분 이상은 계산이 되지 않습니다. }
{ Data란의 93번에 Application 예제를 올려놨습니다. }


{ 현재 작성된 Application은 날짜 타입 MM-DD-YY 시간은 HH:mm:ss 를 기준으로 작성된 것임 }

{ Event --> Memory Discrete }
{ Ja_St_Date_M --> Memory Message }
{ ja_st_date_i --> Memory Integer }
{ Ja_St_Time_i --> Memory Integer }
{ Ja_Ed_Date_M --> Memory Message }
{ total_time --> Memory Integer }
{ DateMin --> Memory Integer }
{ TimeMin --> Memory Integer }
{ ja_ed_date_i --> Memory Integer }
{ Ja_Ed_Time_i --> Memory Integer }



DIM pump_message AS MESSAGE;
DIM pump_filename AS MESSAGE;

{ 장치가 ON 되었을 경우 }
IF Event == 1 THEN
{ ON된 날짜와 시간 }
Ja_St_Date_M = $DateString + " " + $TimeString;
{ ON된 날짜에 대한 정수값 }
ja_st_date_i = $Date;
{ ON된 시간에 대한 정수값 }
Ja_St_Time_i = $Time;

{ OFF시 저장되는 값들과 가동시간 초기화 }
Ja_Ed_Date_M = "";
total_time =0;
DateMin = 0;
TimeMin = 0;
ENDIF;

{ 장치가 OFF 되었을 경우 }
IF Event == 0 THEN

{ 저장될 파일의 경로와 파일 이름 hkp_YYMMDD.csv형태로 파일 생성 }
pump_filename = "hkp_"+ StringRight($DateString, 2 ) + StringLeft( $DateString, 2 ) + StringMid( $DateString, 4, 2 ) + ".csv";

{ OFF된 날짜와 시간 }
Ja_Ed_Date_M = $DateString + " " + $TimeString;

{ OFF된 날짜에 대한 정수값 }
ja_ed_date_i = $Date;

{ OFF된 시간에 대한 정수값 }
Ja_Ed_Time_i = $Time;

{ 하루 안에 ON 되고 OFF된 경우 }
IF ja_ed_date_i == ja_st_date_i THEN

{ OFF된 시간에서 ON된 시간을 뺀 후 1분에 대한 값을 나누어 준다 ( 1000Msec * 60 Sec ) }
{ 만약 1초 단위로 출력하길 원하는 경우 나누기 1000을 해준다 }
total_time = ( Ja_Ed_Time_i - Ja_St_Time_i ) / 60000;

{ ON된 날짜와 OFF된 날짜가 다를 경우 }
ELSE

{ OFF된 시간보다 ON된 시간에대한 정수값이 클 경우 }
{ 예) ON -> 20일 13시 30분 30초 OFF -> 21일 06시 12분 30초 }
{ $Time Tag는 하루를 기준으로 초기화 된다. }
IF Ja_Ed_Time_i < Ja_St_Time_i THEN

{ OFF된 날짜의 정수값에서 ON된 날짜에 대한 정수값을 뺀후 일당 MSec값을 곱한다 }
{ -1을 하는 이유는 13시 30분에서 그날 23시 59분 59초에 대한 차이값만큼 다음날 06시 12분에 더해주면 되기 때문 }
DateMin = ( ja_ed_date_i - ja_st_date_i - 1 ) * 86400000;

{ 23시 59분 59초 999MSec에대한 정수값 => 86399999 }
{ 시간에 대한 하루의 최고값에서 ON시간에 대한 정수값을 뺀후 더하기 OFF된 시간에 대한 정수값 }
{ ON되서 OFF되기까지의 총 가동한 시간에 대한 MSec값 }
TimeMin = 86399999 - Ja_St_Time_i + Ja_Ed_Time_i;

{ MSec기준의 가동시간을 1분 단위로 표시하기 위하여 60000 ( 60초 * 1000MSec )로 나누어줌 }
total_time = ( DateMin + TimeMin ) / 60000;

{ OFF된 시간에 대한 정수값 보다 ON된 시간에 대한 정수값이 작을 경우 }
{ 예) ON -> 20일 13시 30초 OFF -> 21일 18시 30초 }
{ 하루에 대한 정수값과 OFF된 시간에서 ON된 시간을 뺀 후 더하면 총가동시간에 대한 MSec값이 나온다. }
ELSE

DateMin = ( ja_ed_date_i - ja_st_date_i ) * 86400000;
TimeMin = Ja_Ed_Time_i - Ja_St_Time_i;
total_time = ( DateMin + TimeMin ) / 60000;

ENDIF;
ENDIF;

{ 파일로 출력을 원하는 값들을 정의 }
pump_message ="event," + Ja_St_Date_M + "," + Ja_Ed_Date_M + "," + StringFromIntg(total_time, 10 );

{ 파일로 출력 }
이전글
다음글
목록
답변 삭제 수정