[신규] DNP 3.0 Serial 프로토콜 추가
김이삭
0
131
09.11 10:44
전력, 수력, 가스 등 산업 자동화 분야에서 사용되는 DNP 3.0 Serial Master가 추가되었습니다.
1. 프로토콜 선택

1) 장치 탐색기 → 새 장치 추가 → 시리얼 연결 추가

2) 우측의 속성 창에서 통신 프로토콜 선택 후 DNP 3.0 Serial 선택
2. 속성 설정

- DNP 3.0
1) Master Address : 마스터(클라이언트)의 주소 (1 ~ 65533)
2) Outstation Address : 아웃스테이션(서버)의 주소(1 ~ 65533)
주의) 마스터와 아웃스테이션은 동일한 주소를 설정할 수 없습니다.
3) Request Mode: 아웃스테이션과 통신 방식을 설정한다.
- StaticPolling : ScanTime마다 모든 태그 값을 갱신한다.
- EventPolling : ScanTime마다 값이 변경된 태그만 갱신한다.
- Unsolicited : 서버가 자발적으로 전송한 변경된 태그 값만 자동으로 갱신한다. 서버가 오랫동안 값을 전송하지 않으면 연결이 자동 종료되므로, 타임아웃을 충분히 길게 설정해 연결이 끊기지 않도록 한다.
4) Request Size: 한 번의 요청에서 가져올 태그 개수를 설정한다.
예시) 총 태그 수가 1,000개이고, Request Size를 100으로 설정하면, 매 요청마다 100개씩 태그를 가져와 10번에 걸쳐 전체를 갱신하게 됩니다.
5) Update Interval: Event Polling 모드 및 Unsolicited 모드에서 전체 태그 값을 주기적으로 갱신하는 간격(분 단위)을 설정한다.
- 시리얼
1) DTR 사용: DTR(Data Terminal Ready) 신호 사용 여부를 설정한다.
2) RTS 사용: RTS(Ready To Send) 신호 사용 여부를 설정한다.
3) 국번: 통신 대상 장치의 Station 번호(ID)를 설정한다.
4) 데이터 비트: 한 프레임에서 데이터 비트의 수를 설정한다.
5) 스위칭 지연 시간: 요청 전환 시 대기 시간(지연 시간)을 설정한다.
6) 스톱 비트: 전송 데이터의 종료를 나타내는 Stop 비트의 수를 설정한다.
7) 전송 속도: 장치와 통신할 때 사용하는 전송 속도를 설정한다.
8) 패리티 비트: 패리티 비트(짝수, 홀수 등)를 설정하여 데이터 오류 검출을 지원한다.
9) 포트이름: 연결할 시리얼 포트(COM1, COM2 등)를 지정한다.
10) 핸드셰이킹: 흐름 제어 방식(RTS, XONXOFF 등)을 설정한다.
3.장치의 포트 확인 방법

1) 제어판 -> 모든 제어판 항목 -> 장치관리자 선택

2) 장치관리자에서 포트(COM & LPT)탭을 열어 연결된 Serial Port를 확인.
예시) 사진의 포트는 USB-SERIAL CH340 : COM9가 할당되었습니다.
4. 태그 및 장치 내 주소
예시) Analog Input의 Index = 7은 장치 내 주소에서 AI.7로 사용됩니다.
주의 1) 만약 아웃스테이션(서버)에서 Double 타입을 지원하지 않는 경우, Double 타입 요청 시 타입 오류가 발생할 수 있습니다.
주의 2) 아웃스테이션(서버)에 존재하지 않는 그룹이나 인덱스를 요청할 경우, 인덱스 오류가 발생할 수 있습니다.
그룹 | 장치 내 주소 | 설명 | 접근 권한 | 사용 가능한 태그 | |
Binary Input | BI.Index | 디지털 신호(ON/OFF 상태)를 읽는 입력 데이터 | Read | Digital, String | |
Binary Output | BO.Index | 디지털 신호(ON/OFF 상태)를 제어하는 출력 명령 | Read, Write | Digital | |
Double Binary Input | DI.Index | 네 가지 상태(0, 1, 2, 3)를 표현하는 디지털 입력 데이터 | Read | Analog, String | |
Analog Input | AI.Index | 연속적인 아날로그 값을 읽는 입력 데이터 | Read | Analog, String | |
Analog Output | AO.Index | 연속적인 아날로그 값을 제어하는 출력 명령 | Read, Write | Analog | |
Counter | CI.Index | 누적 카운트 값을 읽는 데이터 | Read | Analog, String | |