SCADA 시스템 infoU 설치하고 공부를 시작해본다.
SCADA 시스템이란 Supervisory Control And Data Acquisition의 약자로 멀리 떨어져 있는 장치들을 네트워크를 통해서 모니터링 하거나 제어하기 위한 시스템을 말한다.
앞으로 공부할 infoU도 SCADA 시스템이며 장비의 데이터를 실시간 수집하고 감시 분석할 수 있는 PC용 HMI (Human Machine Interface) 소프트웨어이다.
infoU의 특징
1. OLE DB, IPC Server/Clinet 등의 인터페이스를 제공하고 DB 연결 및 확장성과 호환성이 뛰어난 개방형 구조이다.
2. 태그, 로깅, 알람, 보고서, 그래픽, 스크립트 등이 프로젝트 하위 경로에 일괄 생성되어 관리된다.
3. Visual Basic Script를 지원하여 infoU가 지원하는 범용 기능보다 유연하고 복잡한 기능을 구현할 수 있다.
4. 다양한 형식의 그래픽 파일을 지원하며 기본 심볼 라이브러리를 지원한다.
5. 그룹단위로 알람을 관리할 수 있고 알람의 등급별로 경보흠, 인쇄, 메일 발신, SMS 등의 작업을 수행할 수 있으며 로깅 DB에서 데이터를 추출하여 PDF, 엑셀 파이르 등의 레포트 파일을 쉽게 생성할 수 있다.
6. 모바일 서버와 웹 서버를 지원한다. (안드로이드와 Internetl Explore 브라우저를 통해 원격지에서 모니터링 및 제어 가능.)
infoU 소프트웨어는 LS 홈페이지에서 배포하고 있으며 Trial 버전은 1시간 기동 후 자동 종료되며 다시 실행해야만 작업을 지속할 수 있지만 라이선스를 구매하면 지속적인 운전이 가능하다. (일단 이 녀석을 익힐 동안에는 Trial 버전을 설치해서 사용해본다.)
infoU 패키기 설치
패키지 설치를 완료하면 '엔지니어링'과 '실시간 운전' 프로그램 두 개가 설치되는데 실행해서 둘러본다. 엔지니어링은 프로젝트 단위로 시스템을 구성하고 어플리케이션을 개발하는 도구이다. 실시간 운전은 엔지니어링으로 작성된 프로젝트를 실행시켜주는 프로그램이다.
프로젝트 시스템 구성
프로젝트의 시스템은 단일, 클라이언트-서버, 이중화, 라인 이중화, 웹서버, 모바일 서버/클라이언트 등으로 구성될 수 있다.
1. 단일 시스템(Stand Alone System) : 단독으로 설치되며 InfoU를 통해 하위에 있는 장비들의 데이터를 수집하고 제어한다. 1:1 또는 1:N으로 네트워크 구성할 수 있다. (소규모 프로젝트)
2. 클라이언트-서버 시스템 (Clinet - Server System) : 1번의 단일 시스템을 서버로 동작하게 하고 다른 PC의 InfoU는 클라이언트가 되어 서버측으로 데이터를 요구할 수 있게 된다.
3. 이중화 시스템 (Redundancy System) : 작동중이던 서버의 문제 발생 시 Standby 서버로 전환되도록 하여 운전에 대한 신뢰성을 높일 수 있는 구성이다.
4. 라인 이중화 (Line-Redundancy System) : PC에 두 개의 랜카드가 장착되어 있는 경우 장비와 이더넷 라인 이중화를 구축할 수 있으며 하나의 라인에 문제가 생겨도 지속적으로 통신 유지가 가능하다.
5. 웹서버 (Web Server) : 프로젝트를 웹브라우저 (Internet Explore)를 통해서 상태 감시가 가능하다.
6. 모바일 서버 / 클라이언트 : 모바일용 화면을 Mobile Designer를 통해 제작할 수 있고 안드로이드 스마트폰을 통해서 접속할 수 있다.
프로젝트의 생성
프로젝트는 현재 실시간으로 기동중인 운전이 있따면 종료 후 생성해야 한다.
이름과 저장경로 소속, 프로젝트 설명 등을 입력한 후 프로젝트를 생성한다. 이때 프로젝트의 이름에는 특수문자, 스페이스, 숫자등은 사용할 수 없으며 경로는 영문 60자, 한글 30자 이내로 제한되어 있다.
프로젝트 생성 후 저장 경로를 살펴보니 꽤 많은 하위 폴더가 생성되어 있다.
Archive에는 알람과 이벤트 그리고 데이터 로깅 파일이 저장되며 Config는 실행시 필요한 설정 파일이 저장된다. CrossRef에는 크로스 레퍼런스 관련 파일이 GraLS에는 그래픽 화면 파일이 저장된다.
IO Driver는 드라이버 구성 설정과 관련된 것들이 있으며 Log에는 오류 및 경고 메시지를 저장한다. Package는 서버 패키지 파일 경로이며 Report, Report-Form, Report-Data에는 각각 보고서 관련 설정, 양식, 생성 파일이 저장되며 Script가 저장되는 장소가 있으며 TagDB에는 설정 정보 DB이고 Wav는 경보음 사운드 파일이 저장된다.
다음은 프로젝트 생성과 함께 표시되는 속성 창의 내용을 살펴본다.
먼저 프로젝트의 이름과, 유형, 경로, 설명, 만든이, 생성일, 변경일, 암호 등 일반 사항이 보인다. 네트워크는 서버 프로젝트에서만 활성화 되며 기본 아이피 주소는 현재 컴퓨터의 주소이다. 만약 라인 이중화 프로젝트를 설정했다면 회선 이중화에 체크하며 예비 아이피 주소는 두 번째 랜카드가 있는 경우 설정한다.
라이선스 정보는 현재 없기 때문에 따로 정리하지 않으며 옵션에서는 프로젝트 열기 암호, 이중화, SMS, E-Mail, 웹서버 기능들을 사용하기 위해서 체크하는 곳이며 실행 모듈에서 작동하길 원하는 기능을 선택해서 실행할 수 있고 이것들은 각 모듈로 작동하기 때문에 한 부분에 문제가 생겨도 다른 모듈에 영향을 미치지 않는다.
통신의 설정
이 프로그램이 컨트롤러를 제어하고 데이터를 수집하기 위해서는 해당 컨트롤러와 네트워크로 연결되어야 하며 "태그관리"의 "태그 편집기"에서 구서을 진행하면 된다.
이 구성은 채널 설정이라고도 하며 통신채널과 스테이션을 추가하고 설정할 수 있다. 먼저 [태그관리 > 기기태그 > 입출력 태그 > 통신채널 추가] 메뉴를 선택해서 추가를 해본다.
추가할 수 있는 드라이버 목록들이 나타나는데 내가 사용하는 PLC와 통신 방법을 선택해서 추가를 한다.
그리고 새로운 채널의 이름과 설명 그리고 포트 및 통신 설정을 한 후 채널을 만든다. 이때 485나 422 통신을 사용할 경우 RTS 제어 옵션에 체크를 해준다.
이제 새 스테이션 이름과 PLC CPU 종류를 선택한다.
채널 이름과 스테이션 이름의 합은 한글 12자, 영어 24자 이상을 초과하지 않도록 해야 한다. 다음은 블럭을 추가하는데 이때 블록의 번호는 0부터 순차적으로 지정해줘야 한다.
Block의 시작 Address를 입력하고 데이터 수집주기 및 Block의 크기를 지정한 후 설정을 마무리한다.
태그관리
HMI 시스템의 기능은 태그 DB에 등록된 태그를 기반으로 동작을 하며 그 종류로는 기기로 부터 신호를 받아서 처리하는 입출력 태그와 상위 시스템에 필요하여 가상 등록한 메모리 태그가 있다.
구성을 트리 형태로 전개하며 실제로 기기에 연결된 물리적인 구조로 전개하는 [기기 뷰]와 논리적으로 구성하는 [그룹 뷰] 두 가지 방법이 있다.
1. 분류
우선 기기보드 모드에서 스테이션을 선택한 후 빈칸을 더블 클릭하여 생성할 수 있으며 장비와 연결된 입출력 또는 필요에 의해서 생성된 메모리 태그로 구분하여 생성할 수 있고 그것들은 값을 가질 수 있는데 Analog, Digital, String으로 구분한다.
종류 |
입출력 | 일반 시스템 |
아날로그 디지털 문자열 |
메모리 |
|||
시스템 태그는 채널, 스테이션, 블록 생성 후 자동 생성되는 6개를 말하며 일반 태그는 장비의 데이터가 갱신되는 녀석으로 장비의 주소를 직접 매핑한다.
아날로그는 정수형과 실수형으로 구분되며 디지털은 0과 1의 값을 갖고 String은 텍스트 타입의 값을 갖는다.
2. 생성
기기뷰에서 태그를 생성할 때는 그룹 이름을 선택하거나 지정할 수 없다. 이름을 입력할 때 중간에 DOT(.) 있는 경우 내부적으로 부모 그룹을 찾아서 하위 태그로 생성한다. 만약 입력한 부모 그룹이 없을 경우 부모를 먼저 생성하고 하위에 만들어진다.
3. 속성
태그는 공통 항목, 일반, 상세, 알람, 연삭식의 5가지 속성 그룹을 갖고 있으며 다음과 같이 정의되어진다.
- 공통 : 기본적인 속성의 집합으로 모든 태그에 사용된다. 앞 그림에서 이름~타입 까지가 공통이며 여기서 이름은 한글 95글자, 영문 190자를 초과할 수 없으며 이때 이름이란 그룹을 포함안 전체 이름을 말한다. 설명도 한글 127글자, 영문 254글자를 초과할 수 없으며 타임은 값의 특성에 따라 Group, Analog, Digital, String으로 나누어 진다.
종류는 읽기 전용 속성이며 수정할 수 없다. 그림에서 표시된 일반은 사용자가 생성한 태그이며 시스템은 스테이션 추가시에 자동으로 생성된다.
- 일반 : I/O 관련 속성 및 플래그를 설정하는 항목으로 실제 기기에 연결되어 수집되는 태그인지 가상으로 생서된 태그인지를 구분한다. 장비의 정보는 입출력에만 활성화되며 통신채널 및 스테이션 입출력 주소를 설정한다. 이때 이 녀석은 선택된 스테이션의 하위에 속하며 등록된 주소는 해당 스테이션의 메모리 주소가 된다.
알람 처리는 세부 알람을 설정할 수 있는 속성으로 아날로그/디지털만 선택가능하다. 종료시 태그 값 저장은 실시간 운전 중 종료할 때 마지막 값을 데이터베이스에 기록할 지를 선택할 수 있으며 다시 기동시 이 값이 초기값이 된다.
태그값 쓰기는 값에 대한 제어를 허용할 것인지 설정하는 것으로 해제할 경우 제어가 불가능하게 된다. 실데이터 반전은 디지털인 경우에만 적용할 수 있는 속성이고 메모리 연산은 메모리 태그인 경우 연산식을 수행할지 여부를 결정할 수 있다.
- Analog 상세
공업치 데이터에서는 InfoU에서 표현되는 데이터 타입을 설정할 수 있으며 실수의 경우 FLOAT보다 DOUBLE를 선택하는 것이 정밀도가 높으며 최소값과 최대값을 설정할 수 있다. 만약 값이 이 범위를 벗어나면 Eng BAD로 표시가 된다.
장비 데이터는 기가가 수집하는 값의 타입이며 스테이션에 올라가는 값이다. [시뮬레이터 > RAW 데이터 보기]에서 모니터링 가능하다.
기타의 소수점 자리수는 타입이 실수인 경우 소수점 이하 자리수를 설정한다. 기본은 4자리이며 10자리까지 가능하다.
데드밴드는 데이터가 미세하게 흔들릴 경우 해당 영역을 지정하여 그 변화를 무시할 수 있다.
단위는 공업치 값에 관한 것이며 여기서 설정한 값은 그래픽 에디터에서 숫자표시기의 [단위값 표시]를 이용해서 출력할 수 있으며 초기값은 프로젝트 시작할 때 갖게 되는 초기값을 의미하며 메모리만 활성화 된다. 하지만 앞에서 살펴본 저장 옵션이 활성화 되면 이 기능은 무시되고 종료될 때 저장된 값이 초기값이 되어 기동한다.
데이터 변환은 스케일이라고도 하며 장비의 데이터를 사용자가 인식할 수 있는 타입으로 변환하는 역할을 한다.
Ratio/Bias : 기울기와 절편을 이용한 변환 공식으로 [공업치값 = (Ratio X 기기값) + Bias]
- Digital 상세
BOOL로 고정된 데이터 타입과 장비값 타입이 있으며 ON/OFF 문자열은 1 또는 0 일때 화면에 출력하기 위한 문자열이다. 초기값의 경우 메모리 태그인 경우이만 활성화 되며 OFF와 ON 중 하나를 지정할 수 있다.
- String 상세
String 으로 고정된 공업치 값이며 초기값은 메모리 태그의 경우 사용되는 초기값이다. 문자열의 길이는 String을 수집하고 제어할 때의 길이로 사용된다.