일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- SCADA
- CIMON
- QJ71C24N MODBUS
- PLC 메모리
- 윈도우 단축키
- QJ71C24N
- 진주육전맛집
- 사용자LOG DB
- GP-4401T
- PLC FOR문
- 단양
- gx logviewer
- M2I 다운로드
- 이더넷 통신
- LED 추천
- PLC FOR-NEXT
- 주방등 추천
- CIMON LOG DB
- 진주육전
- 브롤스타즈
- FANUC
- CIMON 예제
- ISMART
- CIMON SCADA
- 소선지국밥
- PLC 다운로드
- 무수순 통신
- BMOV
- PLC
- 배터리 수명
- Today
- Total
For maintenance
CIMON SCADA LOG DB 사용방법 본문
아래의 내용은 CIMON SCADA 사용자 메뉴얼의 내용입니다.
1. 사용자LOG DB
본 기능을 통하여 상용 DB를 사용하지 않으면서 원하는 태그값을 CIMON-SCADA의 사용자LOG DB에 삽입하고 검색할 수 있습니다. 또한, 검색한 결과를 확인하기 쉽게 표의 형식으로 표현할 수 있으며, csv, pdf 및 Excel의 다양한 서식으로 출력이 가능합니다. 사용자LOG DB의 데이터 출력 리스트에 암호를 설정함으로써 보안을 높일 수 있습니다.
1.1 특징
● Microsoft SQL, Oracle Database 등과 같은 상용 DB의 사용 없이 간단한 데이터를 검색하거나 삽입할 수
있습니다.
● 검색한 결과를 표의 형식으로 보기 쉽게 나타낼 수 있습니다.
● 검색한 결과를 csv, pdf 및 Excel의 서식으로 출력할 수 있습니다.
● Excel 출력 시 비밀번호를 설정하여 보안을 강화할 수 있습니다.
1.2 설정 화면
새 프로젝트를 생성한 후, [도구] – [사용자LOG DB]로 이동하거나 프로젝트 워크스페이스에서 [사용자LOG DB]를 더블클릭 혹은 상단 메뉴에 위치한 아이콘을 선택하면 아래와 같은 화면이 표시됩니다.
(1) 설정
본 카테고리에서는 사용자LOG DB에 등록할 모델의 이름과 저장 방법을 설정할 수 있습니다.
*.ldd: 사용자LOG DB 모델에 추가된 데이터가 저장되는 파일.
(2) 레코드 항목 편집
[Item 추가] 또는 [Item 편집]을 선택하였을 시 아래와 같은 창이 나타납니다. 사용자DB 모델에 등록할 데이터의 종류를 설정하고 편집할 수 있습니다.
1.3 관련 기능
본 항목에서는 사용자LOG DB 상에서 자주 쓰이는 함수(Function) 및 서브루틴(Subroutine)2을 확인할 수 있습니다. 활용할 수 있는 함수 및 서브루틴은 다음 표를 참조하여 주시기 바랍니다. 각 함수 및 서브루틴의 자세한 사항은 각 항을 참조하여 주시기 바랍니다.
1.3.1 검색 함수
1.3.2 리스트 컨트롤 제어 함수
1.3.3 달력 컨트롤 관련 함수
1.3.4 에러 코드표
함수가 정상적으로 동작하지 않을 때 연산식에서 출력된 값을 확인하여 에러 내용을 알 수 있습니다.
DbSetFindFilter, DbInsert, DbFindRun 함수의 경우에만 적용되며, 0은 정상적인 결과값을 의미합니다.
조건식의 문법이 잘못되었거나, 동작이 수행되지 않았을 때 에러가 발생합니다.
아래는 에러 코드표에 따른 잘못된 명령식의 사용 예제입니다.
a) CimonX를 실행한 뒤, 상단 메뉴의 [작업] - [명령창]을 실행하여 아래의 각 명령식을 입력할 수 있습니다.
b) 0, 1, 4, 5, 6, 7, 8의 값이 출력되는 경우, 명령어를 잘못 입력하여 발생하는 문제입니다.
c) 3의 값이 출력되는 경우, CimonX의 프로그램상 오류가 발생함에 따라 사용자 로그 DB 모듈이 종료되어 발생하는
에러입니다.
d) 다음은 9번 버튼의 명령식 정의입니다.
RESULT =DbSetFindFilter("사용자로그DB", "[온도] = STR1")
RESULT = DbFindRun("사용자로그DB")
위의 DbSetFindFilter 함수 내 "[온도] = STR1" 조건식 중, “[온도]”에 해당되는 태그는 아날로그 태그,
“STR1”는 문자열 태그입니다. 이와 같이 태그의 타입과 아이템 타입이 일치하지 않을 때 DbFindRun
함수를 실행하면 9번 에러가 발생합니다.
e) DbInsert 함수를 사용했을 때, 입력한 사용자LOG DB의 모델명이 틀렸을 경우를 의미하는
1번 에러만이 발생합니다.
1.4 상세 기능
본 항목의 내용은 1.3절의 명령식 및 함수와 1.5절의 사용 예제를 기반으로 하여, 사용자로그 DB 기능에서
사용할 수 있는 관련 함수 혹은 서브루틴3의 심층적인 내용을 설명합니다.
※ 스크립트에 대한 상세한 내용은 스크립트 도움말을 참조하여 주시기 바랍니다.
1.4.1 조건 검색
사용자LOG DB에서 원하는 조건을 충족시키는 데이터만을 검색 결과로 출력할 수 있습니다.
n = DbSetFindFilter(“사용자LOG DB 모델 이름”, “조건식”) 함수를 사용합니다.
검색하기 위한 조건식에 이상이 없고 필터 설정이 완료된 경우에는 0을 출력합니다.
이상이 있다면 0이 아닌 값을 출력합니다. 조건식에 들어가는 규칙은 다음과 같습니다.
● 사용자LOG DB 모델에서 설정한 아이템들이 조건식의 주체로, [아이템이름] 과 같이 사용합니다.
예) 제품명에 대한 조건을 검색하고 싶은 경우 [제품명]으로 입력합니다.
● 조건식을 만들 때, 조건에는 반드시 하나의 아이템 이름만이 들어가야 합니다.
[제품명], [시리얼번호]와 같이 조건 내에 한 개의 이름만 입력합니다.
● 복수 조건을 만들 때는 AND, OR로 연결합니다.
예) 제품명이 A이고 시리얼코드가 A101인 제품만 검색하고 싶은 경우에는
[제품명] = $A AND [시리얼코드] = $A101을 조건으로 입력합니다.
● 괄호 연산은 지원하지 않습니다.
예) DbSetFindFilter("사용자로그DB", "(시리얼번호) = $B04")와 같이,
조건식에 [시리얼번호]가 아닌 (시리얼번호)를 입력할 경우 에러가 발생합니다.
● 문자열이 피연산자가 될 때는 반드시 문자열의 앞에 $를 붙여줍니다.
예) 아날로그 태그를 검색하는 경우에는 [온도] = 10을 조건으로 입력하는 반면,
문자열 태그를 검색하는 경우에는 [제품명] = $A를 조건으로 입력합니다.
● 태그값을 이용해 조건식을 만들 때는 태그의 전체 이름을 써줍니다.
예) 로그DB.온도1, 로그DB.온도2 라는 태그의 값을 이용하여 비교할 경우,
로그DB.온도1 < [온도] < 로그DB.온도2 의 조건식을 입력하면 됩니다.
1.5절의 사용 예제 (3) – h)에서 추가한 Find 스크립트에 다음과 같이 DbSetFindFilter 함수를 추가합니다.
스크립트 실행 결과는 다음과 같습니다. 필터 적용 후 시리얼번호가 B104인 제품만이 리스트 컨트롤에
출력되는 것을 볼 수 있습니다.
1.4.2 검색 직접 제어
사용자LOG DB에 저장된 내용을 검색하여 리스트 컨트롤에 출력한 후에 검색된 데이터를 직접 제어할 수 있습니다.
검색 데이터 제어를 위해 DbFindCount, DbFindFirstItem, DbFindNextItem, DbFindItemData의 함수를 사용합니다.
각 함수의 상세한 내용은 다음과 같습니다.
● n = DbFindCount(“사용자LOG DB 모델 이름”) 함수를 사용하여 DbFindRun에서 검색한 레코드의 개수를 알 수 있습니다. 출력 값은 검색된 레코드의 수 입니다.
● n = DbFindFirstItem(“사용자LOG DB 모델 이름”) 함수를 사용하면 DbFindRun 함수에서 검색한 레코드 중에서 가장 처음 위치를 가리킬 수 있습니다. 출력 값은 레코드의 순서입니다.
● n = DbFindNextItem(“사용자LOG DB 모델 이름”) 함수를 사용하면 현재 레코드 위치에서 다음 순서로 이동합니다. 출력 값은 레코드의 순서입니다.
● findData = DbFindItemData(“사용자LOG DB 모델 이름”, “사용자LOG DB 아이템”) 함수를 사용합니다. 해당 함수를 사용하면 리스트 컨트롤의 현 레코드 위치에서 아이템의 값을 얻어올 수 있습니다.이 때, 사용자LOG DB 모델과 아이템을 참조하여 값을 찾습니다.
검색된 레코드를 순회하며 압력, 온도, 제품명, 시리얼번호 데이터를 새로운 태그에 저장하는 스크립트를 추가합니다.
스크립트의 내용은 다음과 같습니다.
f) DbFindRun 함수를 통해 검색된 레코드 수를 구하기 위하여 DbFindCount 함수를 사용합니다.
g) DbFindFirstItem 함수를 이용하여 레코드의 첫 번째 위치로 이동한 후, 구한 레코드 수만큼
사용자LOG DB 모델을 순회합니다
h) DbFindItemData 함수를 이용하여 TIME, 제품명, 시리얼번호, 온도, 압력의 데이터를 가져오고,
SetTagVal 함수를 이용하여 가져온 데이터를 태그에 설정합니다.
i) DbFindNextItem 함수를 이용하여 현 위치에서 다음 레코드로 이동하며,
레코드 순회가 완료될 때까지 위의 내용을 반복합니다.
스크립트 실행 결과는 다음과 같습니다. 위의 리스트 컨트롤을 순회하며
온도, 압력, 제품명, 시리얼번호를 가상태그에 입력하는 화면입니다.
검색된 레코드를 거꾸로 순회하려면 다음 스크립트에 나타난 것과 같이 DbFindLastItem, DbFindPrevItem
함수를 사용하면 됩니다.
1.4.3 리스트 컨트롤 제어
사용자LOG DB에 저장된 내용을 리스트 컨트롤에 출력하는 것 외에도, 사용자가 임의로 값을 출력하거나
csv 파일을 읽어 값을 출력하는 것이 가능합니다. 다음은 사용자가 임의로 값을 출력하는 스크립트입니다.
스크립트 실행 결과는 다음과 같습니다.
csv 파일을 읽어 리스트 컨트롤에 출력하는 스크립트입니다.
스크립트 실행 결과는 다음과 같습니다.
1.5 사용 예제
제품이 생산되었을 때 작업 환경의 압력과 온도를 시간 단위로 사용자LOG DB 모델에 저장하고,
등록된 데이터를 엑셀 파일로 출력하여 확인하는 예제입니다.
(1) 태그 생성
a) [도구] – [데이터베이스] 메뉴를 선택하고 새태그 아이콘을 클릭하여 사용자LOG DB에 수집할 태그를 생성합니다.
b) 시간 검색을 위한 EDATE, ETIME, SDATE, STIME 등의 태그를 설정합니다.
시작 시간과 종료 시간을 설정하기 위하여 각각 2개씩 추가합니다.
(2) 사용자LOG DB 모델 생성
a) [도구] – [사용자LOG DB] 메뉴를 선택하여 모델을 생성합니다. Database 이름과 저장 경로, 저장 일수 등을
설정합니다.
b) Itemb) Item 추가 버튼을 눌러 등록된 태그를 입력합니다.
c) Item 추가가 완료되면 오른쪽 상단의 추가 버튼을 눌러 모델을 등록합니다.
(3) 프로젝트 화면 작성
사용자LOG DB를 활용하기 위하여 프로젝트의 화면을 작성합니다.
a) 제품추가를 위해 제품명, 시리얼번호, 압력, 온도를 입력할 수 있는 에디트 컨트롤을 추가합니다.
b) 에디트 컨트롤을 더블클릭하여 사용자LOG DB에서 입력한 태그의 이름을 에디트 컨트롤의 태그이름으로 설정합니다.
c) 사용자LOG DB 검색된 값을 출력하기 위해 [도구상자] 내 윈도우 컨트롤에서 리스트 컨트롤을
드래그하여 페이지 위에 추가합니다.
d) 리스트 컨트롤을 더블클릭하거나 우클릭하여 그림 설정 화면에 진입합니다.
e) 이름을 입력하고 [사용자로그 DB 사용] 체크박스를 체크하여,
앞서 생성한 사용자LOG DB 모델을 설정합니다. [사용자로그 DB 가져오기]를 클릭하면
해당 사용자로그 DB 모델이 리스트에 등록됩니다.
f) 검색 시간을 설정하기 위해 [도구상자] 내 윈도우 컨트롤에서 달력 컨트롤을 드래그하여
페이지 위에 추가합니다. 달력 컨트롤을 더블클릭하거나 우클릭하여 그림 설정 창을 띄운 후,
검색할 날짜와 시간의 값을 받을 태그를 설정합니다.
g) 시간검색 버튼을 생성합니다. 버튼에 검색 스크립트를 실행시키기 위해 [동작정의] 탭에서
명령식 동작을 선택하고, RunScript 명령식을 추가합니다.
h) 검색 스크립트는 다음과 같이 작성합니다.
i) 설정된 데이터를 사용자로그 Database 모델에 추가하기 위하여 제품추가 버튼을 만듭니다.
버튼에 스크립트를 실행시키기 위해 RunScript 명령식을 추가합니다.
j) 삽입 스크립트는 다음과 같이 작성합니다.
DbInsert 함수를 이용한 삽입이 성공했다면, n이라는 변수에 0 값이 저장됩니다.
그렇지 못할 경우, 0 이외의 값을 저장합니다.
k) 리스트 컨트롤에 출력된 내용을 엑셀 파일로 출력할 수 있습니다.
출력되는 파일에 양식을 지정하는 방법은 다음 절차와 같습니다.
l) c)에서 추가한 리스트 컨트롤을 더블클릭하거나 우클릭을 하여 그림설정 화면에 진입합니다.
[고급설정] 탭에서 엑셀의 양식 경로와 시작 셀 위치, 시트 번호를 설정합니다.
m) 출력에 필요한 양식을 생성한 후, 양식 경로에 입력하면 됩니다. 시트 번호는 0부터 시작되므로,
첫 번째 시트 번호를 입력하기 위해 0으로 설정하면 됩니다.
n) 리스트 컨트롤에 출력된 내용을 wcSaveData 함수를 이용하여 csv, xlsx, pdf 형식으로 출력할 수 있습니다.
엑셀 출력 기능을 사용하기 위해 엑셀 출력 버튼을 만들고, 명령식에 RunScript 함수를 입력합니다
o) 엑셀 출력 스크립트는 다음과 같이 작성합니다.
p) 리스트 컨트롤에 출력된 내용을 csv 혹은 pdf 형식으로 출력하려면, 다음 스크립트에 제시된 형식별 명령식을
사용하시면 됩니다.
q) 스크립트 실행 결과 LogDB_현재날짜.xlsx 파일에 리스트 컨트롤의 내용이 출력됩니다.
r) 리스트 컨트롤에 출력된 내용을 삭제하기 위해 화면지우기 버튼을 생성합니다. RunScript 명령식을 설정하여
스크립트를 실행시킵니다.
s) 스크립트는 다음과 같이 작성합니다.
(4) CimonX 실행 및 사용 방법
a) 실행 화면은 아래와 같습니다. 제품명, 시리얼번호, 압력, 온도에 값을 입력하고, ‘제품추가’를 누릅니다.
바로 데이터가 입력되는 것은 볼 수 없습니다.
b) 시작 시간과 종료 시간을 설정한 후, 시간 검색을 클릭하면 이전에 입력했던 데이터가 검색됩니다.
검색 시 검색 시간 범위에 유의하십시오.
c) 사용자 LOG DB에 데이터를 추가하면 아래와 같이 프로젝트의 저장경로에 .ldd 파일이
생성되는 것을 확인할 수 있습니다.
d) 화면 지우기 기능을 클릭하면 아래와 같이 데이터들이 리스트에서 지워집니다.
e) 엑셀 파일을 출력하기 위하여 엑셀 출력 버튼을 클릭합니다. 지정한 경로에 생성된 엑셀 파일에 아래와 같이 데이터가 입력된 것을 볼 수 있습니다.
f) CimonD에서 작성한 스크립트에서 “ 각각 Pdf 형식과 CSV 형식으로 결과물을 출력할 수 있습니다.
다음과 같이 리스트 컨트롤을 대신하여 입출력 테이블을 표현하는 것으로 데이터의 태그값에서 소수점을
제거할 수 있습니다.
a) [도구 상자] 내의 윈도우 컨트롤 목록에서 [입출력 테이블]을 페이지에 드래그하여 추가합니다.
b) 입출력 테이블에는 사용자LOG DB의 설정을 불러오는 기능이 없으므로, 셀 상단의 제목을 미리 설정해야 합니다.
열의 개수와 행의 개수를 설정하고, 최상단의 셀을 클릭한 뒤 [편집]을 선택하면 나타나는 화면에서 각 셀의
제목을 입력합니다.
c) 입출력 테이블 검색용 버튼을 추가합니다.
d) 1.4.2항의 FindDirect 함수 스크립트를 수정합니다. 다음과 같이 사용 예제 (3) – h)에 제시된 Find 함수
스크립트에서의 시간 검색 부분을 추가합니다.
e) 1.4.2항의 FindDirect 함수 스크립트에 내용을 추가합니다. 입출력 테이블을 사용할 때는 셀에 각각의 데이터를
추가해야 합니다.
※ wcGridSetData 함수의 사용법은 1.3.2항을 참조하여 주십시오.
f) 검색을 실행하면 입출력 테이블에 데이터가 표시되는 것을 볼 수 있습니다. 리스트 컨트롤과 달리 데이터의 값에
소수점이 표시되지 않습니다.
리스트 컨트롤 오브젝트에 사용자 LOG DB의 내용을 출력할 때, 숫자의 소수점이 생략되어 표시되도록 하는 예제입니다.
a) 리스트 컨트롤의 그림 설정 화면에 진입하여 오브젝트 이름과 행 이름을 확인합니다.
b) 프로젝트 폴더 내에 ‘gLogDbList.ini’의 이름으로 텍스트 파일을 생성합니다. 다음 그림과 같이 데이터 형식을
지정하여 작성합니다.
[리스트 컨트롤 오브젝트명]
행이름_NAME = 행이름
행이름_TYPE = 0일 경우 소수점 생략
= 1일 경우 소수점 모두 표시
= 2일 경우 소수점 2자리까지 표시
= 3일 경우 소수점 3자리까지 표시
= 4일 경우 소수점 4자리까지 표시
= 5 이상은 적용되지 않음
c) CimonX를 실행하여 사용자 LOG DB 데이터의 출력을 확인합니다. 다음은 각 필드의 소수점을 생략하거나,
둘째 또는 셋째 자리 수까지 나타낸 화면입니다.
1.6 활용 예제
본 활용 예제는 ‘CIMON-SCADA BAS’ 프로젝트를 바탕으로 하여 작성되었습니다. 사용자 LOG DB가 사용된 지점을
중심으로 활용 예제를 설명합니다. 활용 예제 : 리스트 컨트롤로 사용자 LOG DB 표현
‘CIMON-SCADA BAS’ 내에서 설정된 리스트 컨트롤을 확인하고 CimonX 실행 후 동작을 확인할 수 있습니다.
a) [도구] – [사용자LOG DB] 메뉴를 선택하여 현재 프로젝트에 등록된 사용자 LOG DB 모델을 확인합니다.
b) 본 프로젝트 내에서 사용자 LOG DB는 냉난방 설비 화면에서 사용되었습니다. CimonX 실행 후 화면 좌측의
메뉴에서 [냉난방설비]를 누르고 화면 우측의 [LogDB] 버튼을 눌러 다음과 같은 화면을 확인할 수 있습니다.
c) 스크립트로 인하여 사용자LOG DB가 10초 주기로 리스트 컨트롤에 업데이트 되는 것을 확인할 수 있습니다.
'터치패널 > Cimon Scada' 카테고리의 다른 글
사이몬 스카다 연산자 사용 (0) | 2021.04.30 |
---|---|
CIMON SCADA LOG DB 사용예제 파일 (0) | 2021.03.30 |
윈도우10 바탕화면에 윈도우 종료 버튼 만들기(사이몬 스카다에서 윈도우 종료 실행하기_아래 별도 내용 참조) (0) | 2021.02.22 |
CIMON SCADA 사용자 LOG DB 데이터 표시 불능 조치 (0) | 2020.08.26 |
CIMON SCADA 연습 기초#01 (0) | 2020.03.10 |