데이터베이스 연동하기!
Database 연동하기
데이터 입력, 조회, 삭제 등 다양한 SQL 을 활용하여 SQLite 데이터베이스를 XSCADA와 실시간 연동한다.
1. 데이터베이스 파일 준비하기 (SQLite 기준)
1) 아래와 같은 속성을 가진 데이터베이스 테이블을 생성한다.
· 예제 데이터베이스 파일명 : db1
· 예제 테이블명 : tb1
2. 태그 생성하기
1) 태그 탐색기(Tag Explorer)에서 마우스 우측 클릭 후 2개의 아날로그 태그(Analog Tag)를 추가한 뒤 아래와 같이 이름을 설정한다.
3. 데이터베이스 연동하기 (SQLite 기준)
1) Designer 상단의 보기(View) > 데이터 소스(Data Sources) 선택 후 좌측에 활성화된 데이터 소스(Data Sources) 탭에서 마우스 우측 클릭 후 SQLite 추가(Add SQLite)를 클릭한다.
2) 미리 준비한 db1.db 파일을 불러온 뒤 [테스트(Test)] 버튼을 눌러 연결 상태를 확인한 뒤 [확인(OK)]을 누른다.
3) 생성된 sqlite_1 데이터소스를 마우스 우측 클릭한 뒤 SELECT SQL 추가(Add SELECT SQL)를 클릭한 뒤 이름(Name)을 ‘select_all’로 변경 후 아래와 같이 SQL을 작성한 뒤 [확인(OK)]을 클릭한다.
· strftime( … ) : millisecond까지 표현하기 위해 사용 (대소문자 구분)
· order by no desc : no를 기준으로 내림차순 정렬하겠다는 의미
4) sqlite_1 데이터소스를 마우스 우측 클릭한 뒤 SELECT 이외의 SQL 추가(Add Other SQL)를 클릭한 뒤 이름(Name)을 ‘delete_all’로 변경한 뒤 아래와 같이 작성한다.
※ SQL실행(Execute SQL)은 실제로 해당 SQL을 한번 실행하기 때문에 사용에 주의해야 하며, 특히 delete SQL의 경우 실제로 데이터를 삭제할 수 있기에 더욱 주의한다.
5. sqlite_1 데이터소스를 마우스 우측 클릭한 뒤 SELECT 이외의 SQL 추가(Add Other SQL)를 클릭한 뒤 이름(Name)을 ‘insert_data’로 변경한 뒤 아래와 같이 작성한다.
· SQL에서의 태그에 대한 접근은 #{그룹태그명.태그명}으로 가능
4. 화면 구성하기
1) 도구모음에서 사각형(Rectangle)과 타원(Ellipse)을 생성한 뒤 대비가 잘 되도록 속성(Properties)에서 면 색상 변경(FillColor)을 한다.
2) 도구모음에서 2개의 텍스트(Text)를 생성한 뒤 속성(Properties)에서 텍스트(Text)를 아래와 같이 변경한다.
3) 2개의 레이블(Label)을 생성한 뒤 바인딩 태그(Binding Tag)와 텍스트 형식(TextFormat)을 설정한다.
(1) 도구모음에서 2개의 레이블(Label)을 생성한 뒤 항목에 맞게 속성(Properties)에서 바인딩 태그(Binding Tag)를 한다.
(2) 2개의 레이블 모두 속성(Properties)에서 텍스트 형식(TextFormat)을 아래와 같이 설정한다.
4) 도구모음 최하단 우측에 있는 리스트뷰(ListView)를 생성한다.
5) 도구모음 최하단 우측에 있는 트렌드 차트(Trend Chart)를 생성한다.
6) 디자인 화면 우측 상단에 DELETE 버튼을 생성한다.
(1) 심볼 라이브러리(Symbol Library) > svglink.com에서 “텍스트박스(Textbox)” 검색 후 디자인 화면 우측 상단에 배치한다.
(2) 텍스트박스(Textbox) 이미지와 겹치게 텍스트(Text)를 배치한 뒤 속성(Properties)에서 텍스트(Text)를 “DELETE”로 변경한다.
(3) 텍스트박스(Textbox) 이미지와 텍스트(Text)를 함께 배치한 뒤 마우스 우측 클릭 후 객체 잠금(Lock object)를 설정한다.
7) 흰색 타원(Ellipse) 객체 더블클릭 후 수평/수직 슬라이드(Horizontal/Vertical Slide)를 체크선택한 뒤 아래와 같이 설정한다.
8) 리스트 뷰(ListView) 객체 선택 후 속성(Properties)에서 바인딩 조회 SQL(BindSelectSQL) 항목에 sqlite_1.select_all SQL을 추가한 뒤, 리스트뷰(ListView) > 열 설정(Columns) 페이지 진입 후 4개의 열(column)을 추가한다.
9) 생성된 4개의 열(columns)을 아래와 같이 바인딩 필드(Binding Field), 셀 텍스트 형식(CellFormat), 이름(Name), 너비(Width) 등을 설정한다.
· 바인딩 필드(Binding Field) : 데이터베이스의 필드명을 직접 입력 (no, data1, data2, insert_date)
10) 트렌드 차트(TrendChart) 선택 후 속성(Properties)에서 시리즈(Series) 설정창에 진입한 뒤 2개의 시리즈(series)를 추가하고 아래와 같이 바인딩 태그(Binding Tag), 이름(Name), 색상(Color) 등을 설정한다.
5. 스크립트 작성하기
1) 디자인 화면 좌측 상단에서 스크립트(Script)를 클릭하여 스크립트 작성창에 진입한다.
2) 스크립트 작성창이 활성화되면 아래와 같이 작성한다.
· $XT("Data_A") : Data_A 태그에 대한 접근
· $XD("sqlite_1") : sqlite_1 데이터 소스에 대한 접근
· $XV("listview_1") : listview_1 객체에 대한 접근
3) 페이지에 대한 속성(Properties) > 스크립트(Script)창에 진입한 뒤 페이지(Page) > OnLoad 우측 점 3개를 클릭한 뒤 page_1_OnLoad(event)를 선택한다.
4) group_1 객체 선택 후 속성(Properties) > 스크립트(Script)창에 진입한 뒤 마우스(Mouse) > OnClick 우측 점 3개를 클릭한 뒤 group_1_OnClick (event)를 선택한다.
6. 실행하기
1) 저장 후 시작 버튼 또는 F5를 눌러 뷰어를 실행한 타원(Ellipse) 객체를 움직여 태그 값을 변화시키거나 DELETE 버튼을 눌러 데이터를 삭제하여 데이터 변화를 직접 확인한다.
2) 데이터베이스에서 데이터가 정상적으로 기록되었는지 확인한다.