DNP3 프로토콜 : 아키텍처, 작업, 기능 코드, 데이터 형식 및 응용

문제를 제거하기 위해 도구를 사용해보십시오





DNP3 또는 Distributed Network Protocol3은 분산 시스템 간의 통신을 위한 프로토콜을 구축하기 위해 일본 기업에서 1992년에 출시했습니다. DNP3는 장치와 원격 입출력 장치 간의 통신에 사용되는 네트워크 기반 장치 제어 프로토콜입니다. 이 프로토콜은 주로 다른 덜 객체 지향적인 프로토콜에서 일반적으로 요구되는 데이터 비트 매핑을 줄이는 객체 지향 모델에 의존합니다. 주로 중앙 마스터 스테이션과 분산 원격 장치 간에 사용되며, 여기서 중앙 마스터 스테이션은 단순히 인간 네트워크 관리자와 모니터링 시스템 간의 인터페이스 역할을 합니다. 분산 원격 장치는 마스터 스테이션과 원거리에서 관찰 및 제어되는 물리적 장치 간의 인터페이스입니다. 이 둘 사이의 데이터 교환은 공통 개체 라이브러리에서 수행할 수 있습니다. 이 문서에서는 DNP3 프로토콜 – 응용 프로그램 작업.


DNP3 프로토콜이란 무엇입니까?

프로세스 자동화 시스템 내의 서로 다른 구성요소 간에 사용되는 통신 프로토콜 세트를 DNP3 프로토콜이라고 합니다. 이 프로토콜은 주로 서로 다른 종류의 데이터 수집 및 제어 장비 간의 통신 목적으로 설계되었습니다. 그래서 에 SCADA 시스템 , 이 프로토콜은 RTU, SCADA 및 IED에서 사용할 때 필수적인 역할을 합니다.



DNP3 프로토콜 아키텍처 및 작동

DNP3는 세 번째 버전의 분산 네트워크 프로토콜입니다. 하나의 무결성 폴링과 세 개의 폴링 수준이 있으며 무결성 폴은 한 폴에서 데이터를 가져오는 데 사용됩니다.

  DNP3 프로토콜 아키텍처
DNP3 프로토콜 아키텍처

DNP3 네트워크 아키텍처는 유니캐스트, 멀티드롭 및 데이터 커넥터/계층 아키텍처가 될 수 있습니다.



유니캐스트 아키텍처: 일대일 아키텍처라고도 하며 여기에서 마스터 스테이션은 하나의 아웃스테이션과만 통신할 수 있지만 멀티드롭 아키텍처 마스터 스테이션은 하나 이상의 outstation 장치와 통신할 수 있습니다. 즉, 여러 outstation 장치와 통신할 수 있습니다. 데이터 커넥터/계층 아키텍처는 멀티드롭 및 유니캐스트 아키텍처의 조합입니다.

DNP3 통신 프로토콜은 일반적으로 전기 유틸리티, 상하수도, 석유 및 가스, 운송 및 기타 SCADA 환경에 사용됩니다. 이를 통해 온도, 습도, 배터리 잔량, 전압, 연료 잔량 등이 될 수 있는 중요한 수준을 실시간으로 역사적으로 볼 수 있습니다. 또한 문제를 감지하고 문제를 신속하게 수정할 수 있으며 병목 현상을 제거할 수도 있습니다. 그리고 비효율.

DNP3 프로토콜의 설계는 데이터 링크, 전송, 응용 프로그램 및 사용자 계층과 같은 OSI 모델의 계층을 기반으로 수행할 수 있습니다. 이 프로토콜은 이더넷 물리적 매체뿐만 아니라 직렬 위의 최소 하나 이상의 아웃스테이션을 통해 단일 마스터를 연결할 수 있는 유연성을 가지고 있습니다.
다른 가능한 아키텍처는 주로 단일 아웃스테이션 및 P2P 작업을 사용하는 다양한 마스터 연결로 구성됩니다. 일반적으로 마스터는 outstation을 통해 관리되는 장치에서 데이터를 요청하거나 활성화하기 위해 제어 명령을 시작합니다. 이 outstation은 단순히 적절한 정보를 전송하여 마스터에 반응합니다.

  DNP3 프로토콜 계층
DNP3 프로토콜 계층

OSI 모델을 기반으로 하는 DNP3 프로토콜은 데이터 링크, 전송 기능, 응용 프로그램 및 사용자 계층의 4개 계층을 포함합니다. 여기서 하단의 Data Link Layer는 주소 지정 및 오류 감지를 통해 물리적 링크를 보다 안정적으로 만듭니다. 전송 기능은 단순히 링크 계층의 프레임을 응용 프로그램 계층 조각으로 조합합니다. 이 계층은 전체 메시지를 취하고 위의 사용자 계층보다 선호되는 데이터를 지정합니다. 모든 메시지는 아날로그, 바이너리 및 카운터 입력 및 출력과 같은 여러 데이터 유형을 가질 수 있습니다.

DNP3 프로토콜은 어떻게 작동합니까?

DNP3 프로토콜은 마스터 스테이션과 원격 장치 간의 통신을 허용하기 위해 27개의 기본 기능 코드를 사용하여 간단하게 작동합니다. 일부 기능 코드는 마스터가 원격 장치로부터 정보의 조건을 요청하고 얻을 수 있도록 하고 다른 기능 코드는 마스터가 원격 장치 구성을 결정하거나 수정하도록 허용합니다.

DNP3 마스터 스테이션에서는 주로 원격지에서 장비 또는 원격 장치를 제어하기 위해 여러 기능 코드를 사용합니다. DNP3 마스터 스테이션은 대부분의 통신을 DNP3의 원격 장치로 발행합니다. 그러나 Unsolicited Message(o/p message)는 원격 장치를 통해 시작되고 알람이 발생합니다. 알람이 발생하면 이 메시지가 마스터에게 경고를 제공합니다.

기능 코드

DNP3의 기능 코드는 다음과 같습니다.

기능 코드

설명

0x00

기능 코드를 확인하십시오.

0x01

기능 코드를 읽습니다.
0x02

함수 코드를 작성합니다.

0x03

기능 코드를 선택합니다.

0x04

기능 코드를 조작하십시오.

0x05

직접 작동 기능 코드

0x0d

콜드 재시작 기능 코드

0x0e

웜 리스타트 기능 코드

0x12

애플리케이션 기능 코드 중지

0x1b

파일 기능 코드 삭제

0x81

응답 기능 코드

0x82

원치 않는 응답 기능 코드

DNP3 메시지 형식

DNP3의 메시지 형식 구조는 아래와 같습니다. 이 구조를 살펴보면 마스터와 리모트 간에 메시지가 교환되는 것을 볼 수 있습니다. 직렬 원격 측정 프로토콜(TBOS)은 단일 바이트를 교환하여 통신하는 바이트 지향입니다.

TABS와 같은 확장 직렬 원격 측정 프로토콜은 통신을 위해 교환되는 바이트 패킷을 사용하는 패킷 지향입니다. 이러한 패킷에는 일반적으로 헤더, 데이터 및 체크섬 바이트가 포함됩니다. DNP3 프로토콜은 패킷 지향적이며 다음 그림과 같은 패킷 구조를 활용합니다.

  DNP3의 메시지 형식
DNP3의 메시지 형식

위의 메시지 형식 다이어그램에서 DNP3 ASDU(응용 서비스 데이터 단위)는 한정자와 indexSize 필드를 통해 제어되는 영리한 콘텐츠 조정에 유용합니다. 따라서 이 설계를 통해 유연한 구성 내에서 애플리케이션 데이터에 액세스할 수 있습니다.

이제 특히 계층화된 통신 모델에서 데이터가 교환되는 방식에 대해 논의해 보겠습니다.
위 다이어그램의 응용 계층은 ASDU(응용 서비스 데이터 단위)와 패키지된 개체를 APCI(응용 프로토콜 제어) 블록으로 결합하여 APDU(응용 프로토콜 데이터 단위)를 만듭니다.

전송 계층은 애플리케이션 서비스 데이터 단위 또는 APDU를 최대 16바이트 크기의 다른 세그먼트로 나누고 8비트 전송 제어 헤더 및 16비트 세그먼트 CRC 구분 기호로 전송 프레임으로 패키징합니다.

링크 레이어는 생략된 DoD Internet Layer를 통해 DoD(Department of Defense)를 통해 개발된 4-layer 모델에 매핑됩니다. 직렬 전송이 사용되는 경우 패킷 어셈블리가 수행되고 전달을 위해 전송 매체에 위치합니다.

패킷이 LAN 또는 WAN을 통해 전송되는 경우 3개의 DNP3 계층이 첫 번째 계층으로 롤업됩니다. 조립된 패킷은 인터넷 계층을 통해 IP(인터넷 프로토콜) 내에 래핑된 전송 레이어를 통해 TCP(전송 제어 프로토콜) 내에 래핑될 수 있습니다. UDP(User Datagram Protocol)도 사용할 수 있지만 패킹된 네트워크 내에서 안정적인 전달과 관련된 몇 가지 추가 문제가 있습니다.

DNP3 데이터 형식

DNP는 중앙 스테이션과 제어 장치 사이에 전달되는 메시지를 제어하는 ​​데 광범위하게 사용됩니다. DNP3의 데이터 형식은 주로 헤더와 데이터 섹션의 두 부분으로 구성됩니다. 또한 헤더는 6개의 하위 섹션으로 구분됩니다.

  DNP3 데이터 형식
DNP3 데이터 형식

데이터 프레임의 형식과 각 필드에 필요한 크기는 위 그림과 같습니다. 이 다이어그램에서 Sync는 1바이트이고 프레임의 시작을 지정하는 첫 번째 필드입니다.
이 필드 값은 0564로 고정되어 있으므로 Sync 필드 위치를 검사하여 프레임을 수신하면 매핑을 효율적으로 수행할 수 있습니다.

필드 길이는 수신 프레임을 보유하기 위해 대상에서 특정 버퍼를 할당할 수 있도록 전체 프레임 길이를 제공합니다. 따라서 두 번째 프레임은 수신기 측에서 요청해야 하는 제어 작업을 설명하는 '제어 필드'입니다.

제어 필드에는 작업 유형에 따라 16진수 값 41이 포함되고 그렇지 않으면 42가 포함됩니다. 그 후 목적지 및 소스 주소 필드는 의도한 수신자 주소 및 송신 노드를 제공합니다.
CRC 또는 순환 중복 검사는 프레임 오류를 확인하는 데 도움이 되는 마지막 필드입니다. 송신 시 메시지에 체크 값이 연결되어 수신 측에서 교차 검증됩니다. 이 값이 일치하면 프레임 내 오류가 없음을 지정합니다. 데이터 섹션은 2~4바이트이지만 메시지 전달을 제어하는 ​​역할은 없습니다.

위의 그림은 DNP3 형식으로 한 스테이션에서 다른 스테이션으로 전송되는 제어 메시지를 보여줍니다. 대상에 대한 다양한 작업의 통신을 위해 제어 필드 및 대상 주소와 같은 필드가 있지만 일부 필드는 모든 통신에 대해 변경되지 않습니다.

DNP3 모니터링 시스템의 예

DNP3 마스터 및 원격 모니터링 시스템 다이어그램은 다음과 같습니다. 이 모델은 DNP3를 사용하여 마스터와 원격과 같은 두 장치 간에 데이터를 전송하는 데 사용됩니다.

  DNP3 예
DNP3 시험 그만큼

DNP3 마스터 및 원격 모니터링 시스템 다이어그램은 다음과 같습니다. 이 모델은 DNP3를 사용하여 마스터와 원격과 같은 두 장치 간에 데이터를 전송하는 데 사용됩니다. 여기서 마스터는 컴퓨터이고 슬레이브 또는 원격은 아웃스테이션입니다. 전송되는 데이터는 정적 데이터, 이벤트 데이터 및 원치 않는 이벤트 데이터 수락입니다.

DNP3 프로토콜은 일반적으로 마스터(컴퓨터)와 원격(Outstation) 간에 사용됩니다. 여기에서 마스터는 네트워크 관리자와 모니터링 시스템 간의 인터페이스를 제공하는 데 사용됩니다. 리모컨은 마스터와 제어 또는 모니터링되는 물리적 장치 간의 인터페이스를 제공합니다.

마스터와 원격 모두 데이터 교환을 위해 공통 개체 라이브러리를 사용합니다. DNP3 프로토콜은 신중하게 설계된 기능을 포함하는 폴링 프로토콜입니다. 마스터 스테이션이 원격에 연결되면 데이터 포인트에 대해 버퍼링된 모든 값을 반환하고 포인트의 현재 값도 포함하기 때문에 DNP3 주소 지정에 매우 중요한 무결성 폴을 수행할 수 있습니다.

일반적으로 DNP3 드라이버는 Integrity Poll, Class 1, Class 2 및 Class 3과 같이 일상적으로 다른 폴링을 수행할 수 있습니다. Integrity Poll에서 DNP3는 단순히 외부 스테이션에 클래스 1, 클래스 2 및 클래스 3을 전송하도록 요청합니다. 이벤트 데이터 및 클래스 0 정적 데이터(시간순). Integrity Poll은 일반적으로 DNP3 마스터와 슬레이브의 데이터베이스를 동기화하는 데 사용되므로 느린 폴 속도가 할당되는 경향이 있습니다. 일반적으로 클래스 1, 클래스 2 및 클래스 3 폴링은 이벤트의 중요도에 따라 변경 가능한 속도로 개별 클래스 이벤트를 복구하는 데 사용됩니다. 더 중요한 이벤트는 폴링 속도가 더 빠른 클래스에 할당됩니다.

DNP3와 IEC 61850의 차이점

DNP3와 IEC 61850의 차이점은 다음과 같습니다.

DNP3

IEC 61850

DNP3 프로토콜은 개방형 산업 사양입니다. IEC 61850은 IEC 표준입니다.
DNP 사용자 그룹은 DNP3 프로토콜의 표준 조직입니다. 국제 전기 기술 위원회는 IEC 61850의 표준 기구입니다.
DNP3 프로토콜은 4계층 아키텍처이며 7계층도 지원합니다. TCP/IP 또는 UDP/IP. IEC 61850 프로토콜의 통신은 다음을 기반으로 합니다. OSI 모델 .
DNP3, GOOSE, HMI, IEC, RTU 및 SCADA는 IEC 61850 통신 프로토콜의 공통 용어입니다. 지능형 장치(IED), 논리적 장치 및 논리적 노드, 데이터 개체 및 데이터 속성은 IEC 61850의 계층적 정보 모델을 정의하는 수준입니다.
분산 네트워크 프로토콜 세 번째 버전의 이점은 프로토콜 변환기가 필요하지 않고 유지 관리, 테스트 및 교육에 시간이 덜 걸리고 시스템 확장이 쉽고 제품 수명이 길다는 것입니다. IEC 61850 프로토콜의 장점은 확장 비용, 통합 비용, 장비 마이그레이션 비용 및 낮은 설치 비용입니다.

DNP3와 Modbus의 차이점

DNP3와 Modbus의 차이점은 다음과 같습니다.

DNP3

모드버스

분산 네트워크 프로토콜은 Harris에 의해 1993년에 개발되었습니다. Modbus 프로토콜은 1979년 Modicon에 의해 개발되었습니다.
분산 네트워크 프로토콜은 비트를 사용합니다. Modbus 통신 프로토콜은 텍스트 설명을 사용하여 데이터를 보냅니다.
DNP3는 물리적 계층, 데이터 링크 계층, 응용 계층의 세 가지 계층으로 구성됩니다. Modbus 통신 프로토콜은 응용 계층으로만 구성됩니다.
DNP3 프로토콜은 다중 슬레이브, 다중 마스터 및 P2P 통신을 지원합니다. Modbus 프로토콜은 피어 투 피어 통신만 지원합니다.
DNP3 프로토콜에 필요한 구성 매개변수는 불량률, 조각 크기 및 장치 주소입니다. Modbus 프로토콜에 필요한 구성은 패리티 모드, ASCII 모드, RTU 모드 및 전송 속도입니다.

DNP3 찬반 양론

그만큼 DNP3 프로토콜의 장점 나는 다음을 포함합니다.

  • DNP3는 개방형 표준 프로토콜이므로 모든 설계자가 다른 DNP3 장비와 잘 어울리는 DNP3 장비를 설계할 수 있습니다.
  • DNP3는 지능적이고 강력한 프로토콜로 인해 많은 기능을 제공합니다.
  • 단일 메시지 내에서 여러 데이터 유형을 통해 요청 및 응답할 수 있습니다.
  • 여러 마스터 및 피어 투 피어 작업을 허용합니다.
  • 표준 시간 형식 및 시간 동기화를 지원합니다.
  • 소프트웨어 비용이 절감됩니다.
  • 프로토콜 번역기에 대한 요구 사항이 없습니다.
  • 유지 보수 및 테스트가 적습니다.

DNP3 프로토콜의 단점은 다음과 같습니다.

DNP3는 직렬 RTU를 사용하고 이더넷 RTU(ERTU)를 통해 업그레이드합니다. 해당 스테이션에 대한 통신 채널 대역폭도 향상되지 않으면 TCP/IP를 통해 DNP3를 래핑할 때 구현되는 오버헤드로 인해 사용자가 링크가 느려집니다.

DNP3 애플리케이션

그만큼 DNP3 애플리케이션 다음을 포함합니다.

  • DNP3를 사용하면 프로세스 자동화 시스템 내의 서로 다른 장치가 통신할 수 있습니다.
  • 여러 유틸리티 회사에서 가스, 전기 및 물 원격 측정 시스템에 이 프로토콜을 광범위하게 사용합니다.
  • SCADA 통신에서 사용됩니다.
  • DNP3 통신 프로토콜은 원격 및 SCADA 모니터링 시스템에서 사용됩니다.
  • 이는 마스터에서 원격으로, RTU에서 IED 통신을 포함하는 전체 SCADA 환경 및 네트워크 애플리케이션에 적용할 수 있습니다.

따라서 이것은 모든 것에 관한 것입니다. DNP3 프로토콜 개요 – 응용 프로그램 작업. 그만큼 DNP3 프로토콜 사양 주로 개체 모델에 따라 다릅니다. 따라서 이 모델은 일반적으로 덜 객체 지향적인 다른 프로토콜에 필요한 데이터 비트 매핑을 줄입니다. SCADA 기술자 및 엔지니어의 경우 사전 정의된 개체가 있으면 DNP3가 보다 편안한 설계 및 배포 프레임워크가 됩니다. 여기 당신을 위한 질문이 있습니다. 프로토콜이 무엇입니까?