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

고객지원

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

Q&A

HOME > 고객지원 > Q&A
  • 서울사업본부
  • 창원사업본부
hist data 관련 예제 입니다.
작성자: 관리자 2001-04-02 13:20:02 | 4,826
이력 파일의 데이타를 'HistData'란 프로그램을 사용하여 조회한 다음 그 내용을 CSV 파일로 만들어 엑셀에서 매크로를 이용하여 레포트로 출력할 수 있습니다.

먼저 이력 파일을 만들기 위해서는 이력을 남기고자 하는 태그에 'Log Data' 옵션에 체크를 하고 Configure에서 'Historical Logging'을 인에이블합니다.

이력 파일은 정해진 폴더 아래에 날짜별(yymmddxx)로 이름을 갖는 '.idx'와 '.lgh' 파일로 저장됩니다.

이 파일은 바이너리 파일로써 'HistData'란 프로그램을 이용해서 이력된 데이타를 조건에 맞게 조회해 올 수 있습니다. 또한 조회된 내용을 CSV 파일로 만들 수 있습니다.

다음은 매일 자정에 레포트를 출력하기 위해서 InTouch에서 해주어야 할 스크립트입니다.

Condition Script
Condition: $hour == 0
Condition Type: On True

DATADIR = InfoInTouchAppDir();
{DATADIR: 이력파일이 있는 폴더}
DBDIR = InfoInTouchAppDir();
{DBDIR: tagname.x 파일이 있는 폴더}
STARTDATE = StringFromTime(($Date - 1) * 86400, 1);
{STARTDATE: 조회 시작일자}
{$Date - 1: 하루 전}
{86400: 일당 초 수}
{1: $DateString 형식으로 출력, 제어판/국가별설정/날짜에서 'MM/dd/yy' 로 설정해야 함}
STARTTIME = "00:00:00";
{STARTTIME: 조회 시작시간}
DURATION = "24H";
{DURATION: 조회 기간 범위}
INTERVAL = "1H";
{INTERVAL: 조회 샘플링 주기}
TAGS = "$Time,start,milk_valve,syrup_valve,tank_level";
{TAGS: 조회할 태그들}
PRINTTAGNAMES = 0;
{1: 출력시 태그이름을 출력함}
{0: 출력시 태그이름을 출력 안함}
SENDDATA = 1;
{조회 시작}

DataChange Script
Tagname : Senddata

IF SENDDATA == 0 THEN
{조회가 끝나면}
FILENAME = "d:intouchtest" + StringRight( $DateString, 2 ) + StringLeft( $DateString, 2 ) + StringMid( $DateString, 4, 2 ) + ".CSV";
{쓰여질 파일이름 정의, yymmdd.csv}
WRITEFILE = 1;
{파일에 쓰기 시작}
ENDIF;


Tagname : writefile

IF WRITEFILE == 0 THEN
{파일에 쓰기가 끝나면}
StartApp "c:program filesmicrosoft officeofficeexcel.exe " + InfoInTouchAppDir() + "" +StringRight( $DateString, 2 ) + StringLeft( $DateString, 2 ) + StringMid( $DateString, 4, 2 ) + ".CSV";
{엑셀 매크로 파일 실행, 매크로 참조}
ENDIF;

계속해서 엑셀 매크로를 보면 다음과 같습니다.

Sub auto_open() '파일이 열릴 때 자동 수행
Workbooks.Open Filename:="e:kwangyangappreport" + Mid(CStr(Now), 7, 2) + Mid(CStr(Now), 1, 2) + Mid(CStr(Now), 4, 2) + ".csv"
'만들어진 CSV 파일 열기
Range("A1:D25").Select
'데이타 영역 선택
Selection.Copy
'선택된 영역 복사
Windows("Book1.xls").Activate
'활성화 파일 이동
Range("A4").Select
'붙여질 처음 위치에 커서 이동
Selection.PasteSpecial Paste:=7, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
'데이타의 값만 붙여넣기
ActiveWindow.SelectedSheets.PrintOut Copies:=1
'프린터로 출력
End Sub

다음은 InTouch에 사용된 태그입니다.

Access Name : HistData
Applicaiton Name : HISTDATA
Topic Name : ViewStream1
Use Tagname as an Item Nema = Yes

PRINTTAGNAMES : I/O Discrete
SENDDATA : I/O Integer
WRITEFILE : I/O Integer
DATADIR : I/O Message
DBDIR : I/O Message
STARTDATE : I/O Message
STARTTIME : I/O Message
DURATION : I/O Message
INTERVAL : I/O Message
TAGS : I/O Message
FILENAME : I/O Message
이전글
다음글
목록
답변 삭제 수정