본문으로 건너뛰기

DNP3 — 전력 / Utility 표준

DNP3 (Distributed Network Protocol v3) 는 전력회사 / 수도 / 가스 같은 utility SCADA 에서 가장 널리 쓰이는 프로토콜입니다. RTU / IED 와 SCADA master 사이의 통신 표준이며, 시각 동기 (time-stamped events)신뢰성 있는 보고 (unsolicited responses) 가 핵심 특징입니다.


등록 폼 입력값

입력 칸무엇을 적나요예시
IP 주소RTU / IED 의 IP192.168.0.120
포트DNP3 TCP 포트20000 (표준)
Master 주소 (master-address)게이트웨이 (master) 자기 주소1
Outstation 주소 (outstation-address)상대 (slave) 의 DNP 주소10
응답 타임아웃 (request-timeout)응답 대기 (ms)5000
Unsolicited (enable-unsolicited)RTU 의 자발 송신 (push) 활성화 — driver 가 cache 후 read() 시 우선 반환all / 1 / 2 / 3 / 1,2 (기본 비움 = 미사용)
두 주소 다 맞아야 통신됨

DNP3 는 master 주소 / outstation 주소가 양쪽 다 일치 해야 합니다. RTU 측 설정 (보통 ABB / SEL / GE 의 IED 설정 도구) 에서 “Source Address” 와 “Destination Address” 가 게이트웨이의 master/outstation 과 짝을 이루는지 확인하세요.


태그의 PLC 주소 표기

DNP3 는 Group / Variation / Index 로 데이터 포인트를 식별합니다. 흔한 group:

Group종류비고
1Binary Input (BI)차단기·접점 상태 등
10Binary Output (BO)출력 상태
20Counter누적 카운터
30Analog Input (AI)전류·전압·온도 — 가장 흔함
40Analog Output (AO)출력 setpoint
41Analog Output Block (write 대상)setpoint 쓰기

게이트웨이에서는 g<group>v<variation>.<index> 또는 class<n> 형식으로 입력합니다.

표기의미
g30v1.5Analog Input, var 1 (32-bit + flag), index 5
g30v5.5Analog Input, var 5 (Float), index 5
g1v2.0Binary Input, var 2 (with flag), index 0
g20v1.0Counter, 32-bit, index 0
class0Class 0 polling (정적 데이터 전체 스캔)
class1Class 1 events (이벤트성 변화)
Class 0 vs g30v1.x

프로젝트 초기 단계에서 “일단 다 가져와보고 싶다” 면 class0 으로 한 번에 받은 뒤, 필요한 포인트만 골라 g30v... 로 정밀 등록하시는 게 편합니다.


데이터 형식 매칭

Group데이터 형식형식 보조
g1 (BI)Boolean(비움)
g30v1 (AI 32-bit signed)IntegerDW
g30v2 (AI 16-bit signed)Integer(비움)
g30v5 (AI float)FloatREAL
g30v6 (AI double)DoubleLREAL
g20v1 (Counter 32-bit)IntegerDW

쓰기 (Write) 지원

DNP3 outstation 의 쓰기 대상은 보통 두 가지입니다.

표기의미
g41v1.5Analog Output Block 32-bit signed setpoint, index 5
g41v3.5Analog Output Block float setpoint, index 5
g12v1.0Control Relay Output Block (CROB) — 차단기 trip/close 등
CROB 는 위험

g12 (CROB) 는 차단기 / 릴레이를 직접 동작 시킵니다. 운영 환경에서는 반드시 select-before-operate 절차와 권한 확인 후 사용하세요.


흔한 문제와 해결

증상가능한 원인해결
“No reply”주소 mismatchmaster / outstation 주소 양쪽 다 확인
모든 값 0 또는 staleunsolicited 미수신, link layer 문제class0 으로 명시적 polling 시도
“Object not found”잘못된 group/variationRTU 의 “DNP point map” 문서 확인
시간이 한참 어긋남DNP3 timestamp UTC vs 로컬게이트웨이가 UTC 로 받음. 표시단에서 변환

Group / Variation 더 자세한 표

DNP3 의 데이터 모델은 “Group” 안에 여러 “Variation” 이 들어있는 구조입니다. 같은 Group 30 (AI) 라도 32-bit / 16-bit / float / double 여러 표현이 있어 RTU 가 어떤 variation 을 노출하는지에 맞춰야 합니다.

GroupVar의미크기 / 형식
11Binary Input — packed format (no flag)1 bit
12Binary Input with status (flag bit 포함)1 byte
21Binary Input Change — no timeevent
22Binary Input Change — absolute timeevent + 6-byte time
102Binary Output Status (with flag)1 byte
121CROB (Control Relay Output Block) — write 전용11 byte struct
201Counter — 32-bit4 byte
202Counter — 16-bit2 byte
301AI 32-bit signed (with flag)5 byte
302AI 16-bit signed (with flag)3 byte
303AI 32-bit signed (no flag)4 byte
305AI single-precision float (with flag)5 byte
306AI double-precision float (with flag)9 byte
321AI Change — no timeevent
327AI Change — single float, abs timeevent
401AO Status 32-bit signed (with flag)5 byte
411AO Block 32-bit signed (write 대상)5 byte
413AO Block float (write 대상)5 byte

자주 쓰는 운영 패턴

패턴 1. 변전소 IED 의 기본 측정값 (전류·전압·전력)

ABB REC615 / SEL-451 / SEL-735 미터 같은 IED 는 보통 다음과 같은 식으로 매핑됩니다.

태그 이름주소데이터 형식형식 보조
A 상 전류g30v5.0FloatREAL
B 상 전류g30v5.1FloatREAL
C 상 전류g30v5.2FloatREAL
총 유효전력g30v5.10FloatREAL
주파수g30v5.20FloatREAL
차단기 1 위치g1v2.0Boolean(비움)
차단기 2 위치g1v2.1Boolean(비움)

패턴 2. 누적 카운터 (kWh / 가스 m³ 등)

Counter (Group 20) 는 누적값입니다. 표시단에서 차이를 구해 “시간당 사용량” 으로 변환합니다.

태그 이름주소데이터 형식
적산 유효전력 (kWh)g20v1.0Integer
적산 무효전력 (kvarh)g20v1.1Integer

패턴 3. CROB 로 차단기 제어 (write)

g12v1.0 = "Pulse-On / Trip / Close" 명령 코드

CROB 1 byte control code:

의미
0x01Pulse-On
0x02Pulse-Off
0x03Latch-On
0x04Latch-Off
0x41Trip (보호 동작)
0x81Close
select-before-operate

CROB 는 SBO (select → operate) 절차가 필수인 RTU 가 많습니다. PlantPulse 측에서 단발 write 로 명령을 내려도 RTU 가 reject 할 수 있습니다. 이런 환경에서는 RTU 측에서 SBO 미사용 모드를 켜거나, 별도 자동화 스크립트로 두 단계 수행.


참고 / 다음 단계

  • RTU 제조사 (ABB, SEL, GE, Schneider) 의 “DNP3 device profile” PDF 에 group/variation/index 매핑이 다 있습니다.
  • IEEE 1815-2012 표준 문서 (DNP3) 가 공식 spec.
  • 고급 — REST API 의 DNP3 자동화 예제 참고.