-
제품선택
-
Q: 디지털 입력신호가 몇 분 동안 가동 되었는지 확인 하려면 어떻게 해야 하나요
A: 보고서를 이용하여 가동시간을 출력 할 수 있습니다.
- 먼저 디지털 태그를 생성하고 보고서용 데이터 생성에 체크를 합니다. 보고서 사용시 반드시 보고서용 데이터 생성에 체크를 해야 합니다.
2. CimonD – 도구 – 보고서에 들어가서 보고서 양식으로 사용할 양식을 등록하고 저장경로를 설정 합니다.
3. 보고서 태그등록을 합니다.
이렇게 설정을 하면 아침 9시에 보고서 파일이 생성되며 엑셀파일의 A1셀과, B1셀에 어제 오후 7시부터 8시까지의 가동시간이 분단위로 입력되어 나오게 됩니다.
도움말에 TLogVal을 검색하면 보고서에서 사용 할 수 있는 시각 값과, 값 종류가 자세하게 나와 있습니다. 참고 하시면 됩니다.
-
[점검사항1]
자동으로 Windows가 업데이트 되어 CimonX가 종료되는 경우 Windows 업데이트 시간에 CimonX 또한 종료가 됩니다.
이때 업데이트 되고 종료되면서 다시 CimonX가 동작되는 사이에 보고서 내용이 저장되는 시점이라면 그 부분은 보고서 내용이 나타나지 않는 경우가 생깁니다.
이러한 경우는 Windows 자동업데이트는 중지하는 것이 좋습니다.
업데이트 시점을 확인 하시려면 제어판→관리도구→이벤트 뷰어 에서 확인하실 수 있습니다.
[점검사항2]
현재 EXCEL 사용중이 아닌데 EXCEL.EXE 파일이 작업관리자의 프로세서에 표시되는 경우
(EXCEL이 비정상적으로 사용중일 경우)이는 EXCEL 프로그램이 켜져 있거나 비정상 종료될 시에 엑셀 프로그램이 실행한 상태가 아님에
도 동작되며 프로세서 상에서 표시될 시에는 EXCEL.EXE 프로세서를 종료시켜 주시면 됩니다.
[점검사항3]
(OFFLB.EXE 파일이 작업관리자의 프로세서에 표시되는 경우)
이는 위의 EXCEL..EXE 처럼 프로세서상에서 OFFLB.EXE 파일이 존재 할 시 보고서 생성이 안 되거나 생성이 되더라도 엑셀 형식 안에 데이터가
제대로 표시되지 않을 수가 있습니다.
OFFLB.EXE 파일은 OFFICE LIFEBOAT의 약어로서 OFFICE 프로그램이 바이러스나 다른 프로그램과의 충돌로 인해
OFFICE 프로그램 동작에 문제가 발생하여 자동으로 복구동작 시 발생되는 파일입니다.
(출처:http://www.processlibrary.com/directory/files/offlb/218663/)
어떤 한 개의 프로그램과의 호환에 있어서 문제가 발생한다면 프로세서 상에서 OFFLB.EXE 파일을 닫고 재 부팅하여 해결할 수 있으나
한 가지 프로그램의 경우라 보기는 어렵습니다.
실제로기술 지원 시 MS OFFICE 와 HP프린터 DRIVER 간에 충돌이 발생하는 것을 파악한 뒤 OFFLB.EXE 파일을 닫아도 DRIVER가 작동하는 시점에서는
OFFLB.EXE 파일이 동작하여 보고서 데이터가 엑셀 문서 안에 표기가 안되는 경우가 확인 되었습니다.
따라서 저희는 이런 문제점을 해결하기 위해 보고서에서 보고서 양식 콤보 박스를 클릭하시면
위에서 보시는 것처럼 3가지 양식을 정할 수 있도록 되어 있습니다.이중 가상 엑셀 워크시트를 이용하시면 이 문제를 해결하실 수 있습니다.
가상 엑셀 워크시트는 엑셀이 설치되어 있지 않은 PC에 이용됩니다. 이때 양식파일 설정은 실제 엑셀 형식의 파일로 존재해야 하며 이를 읽어서 가상양식으로 출력하는 방식입니다.[점검사항4]
태그 등록 시에 Sheet 이름이 엑셀에서의 Sheet이름과 동일한지(빈칸포함) 확인해 주세요.
보고서 모델 별로 저장하는 경로가 동일하지 않은지 확인해 주세요.
태그 등록 시 셀 지정이 정확한지 확인해 주세요.
[점검사항5]
Microsoft Office의 엑셀을 사용할 경우 다양한 버전과의 인터페이스의 호환 문제가 발생할 수 있습니다.
이 경우 OLE 통신이 제대로 이루어지지 않아 보고서가 출력되지 않거나 데이터가 누락될 수 있습니다. 또한, 엑셀 프로그램이 사용 중 이상이 생겨 엑셀파일이
open 되지 않는 경우도 발생할 수 있습니다. 따라서, Cimon에서 제공하는 가상 엑셀 워크 시트를 사용하게 된다면 좀더 안정적으로 보고서 생성을 할 수 있습니다.
<참고>
● 가상엑셀을 사용하여도 이전의 양식 파일을 그대로 사용할 수 있습니다.
● 가상엑셀을 사용할 경우 양식파일은 ‘엑셀 97-2003’ 포멧(xls 확장자)으로 저장하여야 사용해야 합니다.
-
안녕하세요.
CIMON입니다.
보고서 기능처럼 엑셀 파일에 데이터를 쓰기 및 출력하고자 할 때, 다음 예제에서 제시되는 스크립트를 통해 기능을 설정할 수 있습니다.
[적용 방법]
1. 데이터 베이스에서 보고서 데이터로 등록할 태그를 생성합니다.
값1, 값2, 값3은 ‘ANA1’, ‘ANA2’, ‘ANA 3’ 태그로 등록합니다.
쓰기 신호는 ‘SIN’ 태그로 등록합니다.
제품코드는 ‘제품코드’ 태그, 제품명은 ‘제품명’ 태그로 등록합니다.
2. 사전에 설정하여야 할 내용은 다음과 같습니다.
*모든 경로는 ‘C:\보고서’입니다. 엑셀 파일을 출력하기 전에 폴더를 만들어 주시거나, 스크립트 내에 입력된 경로들을 동일하게 변경해 주시기 바랍니다.
*보고서 폴더 내에 Test.xls라는 양식 파일이 존재해야 합니다.
*쓰기 신호(‘SIN’ 태그)가 1일 때 보고서 실행을 하면 현재 태그 값이 엑셀에 입력됩니다. 저장 형식은 ‘제품코드-금일 날짜’입니다.
* 제품 코드가 다르거나 날짜가 다를 경우 새로운 파일을 생성하게 됩니다.
* 생성된 파일은 코드 별 날짜 별로 저장이 되기 때문에 금일의 날짜를 기준으로 3일 이전의 파일들은 자동적으로 삭제됩니다.
*엑셀 파일을 출력하고자 할 때, ‘파일 불러오기’ 버튼을 눌러 저장 폴더의 목록을 불러와 파일 선택 후, ‘인쇄’ 버튼을 눌러 출력할 수 있습니다.
3. [도구]-[스크립트]에 진입하여 다음과 같이 메인 스크립트를 작성합니다.
Sub Main()
While 1
SetTagVal”ANA1″,Random(0,100)
SetTagVal”ANA2″,Random(0,100)
SetTagVal”ANA3″,Random(0,100) ‘테스트임으로 각 태그의 값을 랜덤으로 받습니다.
sleep(1000)
Wend
End Sub
===========================================================
아래 그림과 같이 스크립트를 등록합니다.
4. 각 버튼 오브젝트를 다음과 같이 생성합니다.
RUN 버튼을 등록하고, 명령식 동작으로 Runscript(“Scr”)을 입력합니다.
RUN 버튼으로 구동할 스크립트는 다음과 같이 작성합니다.
Sub Scr()
Dim DelFileName(2)
‘신호태그를 불러와 신호 태그가 1이 됐을 경우만 스크립트를 실행한다.
WT = GetTagVal(“SIN”)
Code$ = GetTagVal(“제품코드”)
If WT = 1 Then
‘오늘 부터 3일치 이후의 같은 코드의 파일을 삭제 한다.
For i = 0 to 2
TStr$ = ReportTimeStr(“-” & i+3 & “일”,14)
DelFileName(i) = Left(TStr$,4) & Mid(TStr$,6,2) & Right(TStr$,2)
FileDel$ = “C:\보고서” & Code$ & “-” & DelFileName(i) & “.xls”
If FileExists(FileDel$) Then Kill FileDel$
Next i
‘엑셀파일 경로
FileName$ = “C:\보고서” & Code$ & “-” & TimeStr(50) & TimeStr(51)& TimeStr(52) & “.xls” ‘생성될 파일
FileOld$ = “C:\보고서\Test.xls” ‘양식 파일
If FileExists(FileName$) Then ‘동일한 파일이있면 파일에 계속 쓴다.
Else
FileCopy FileOld$, FileName$ ‘없으면 양식 파일에서 복사해 새로운 파일을 만듬
End If
Set ExcelApp = CreateObject(“Excel.Application”)
Set ExcelFile = ExcelApp.Workbooks.Open(FileName$)
Set ws=ExcelFile.sheets.item(“sheet1”)
‘엑셀 파일에 저장될 행을 불러온다.
Cell_Cnt = ws.range(“A1”).currentregion.rows.count + 1
‘태그들의 값을 가져온다.
Val1% = GetTagVal(“ANA1”)
Val2% = GetTagVal(“ANA2”)
Val3% = GetTagVal(“ANA3”)
‘엑셀 파일에 데이터 쓰기 ‘행, 열
ws.Cells(Cell_Cnt,1) = Cell_Cnt – 3 ‘카운트
ws.Cells(Cell_Cnt,2) = TimeStr(37) ‘시간 출력
ws.Cells(Cell_Cnt,3) = Val1%
ws.Cells(Cell_Cnt,4) = Val2%
ws.Cells(Cell_Cnt,5) = Val3%
ws.Calculate
ExcelFile.Save
ExcelApp.Quit
Set ExcelApp = Empty
End If
End Sub
===============================================
아래 그림과 같이 스크립트를 등록합니다.
5. ‘파일 불러오기’ 버튼을 등록하고, 명령식 동작으로 Runscript(“FileListLoad”)를 입력합니다.
‘파일 불러오기’ 버튼으로 실행할 스크립트는 다음과 같이 작성합니다.
Sub FileListLoad()
On Error Goto Pass
‘ ListBox에 있는 파일 리스트 초기화
wcDeleteAll “List1”
FilePathLoad$ = “C:\보고서”
Dim FileName$()
FileList FileName$, FilePathLoad$+”*.xls”
‘ ListBox에 파일 리스트 추가
i% = 0
While ( FileName$(i) <> “” )
WcInsertItem “List1”, -1, FileName$(i%)
i% = i%+1
Wend
Pass:
End Sub
==========================================
아래 그림과 같이 스크립트를 등록합니다.
6. ‘파일 인쇄’ 버튼을 등록하고, 명령식 동작으로 Runscript(“Scr1”)을 입력합니다.
‘파일 인쇄’ 버튼으로 실행할 스크립트는 다음과 같이 작성합니다.
Sub Scr1()
a$=wcGetData(“List1”,-1)
FileName$ = “C:\보고서” & a$
Set ExcelApp = CreateObject(“Excel.Application”)
Set ExcelFile = ExcelApp.Workbooks.Open(FileName$)
Set ws=ExcelFile.sheets.item(“sheet1”)
ws.PrintOut
ExcelApp.Quit
End Sub
=============================================
아래 그림과 같이 스크립트를 등록합니다.
7. CimonX를 실행한 후 각 버튼을 누를 때 다음과 같이 동작합니다.
쓰기 신호(‘SIN’ 태그)가 1인 상태에서 RUN버튼을 눌렀을 때, TEST.XLS양식 파일을 바탕으로 데이터가 엑셀에 입력되면서 제품코드-금일 날짜 형태의 데이터가 생성됩니다.
제품코드가 CIMON001일 경우, RUN버튼을 누른 후 ‘파일 불러오기’ 버튼을 누르면 CIMON001-20171014 라는 파일이 생성됩니다.
언제나 고객을 먼저 생각하는 CIMON이 되겠습니다.
감사합니다.