### DNP3通讯协议知识点详解 #### 一、概述 DNP3 (Distributed Network Protocol Version 3) 是一种广泛应用于工业自动化领域的开放式通信协议,主要用于监控与数据采集(SCADA)系统。它由四个主要部分组成:数据链路层、传输层、应用层以及数据对象库。 #### 二、数据链路层规约 数据链路层规约定义了DNP3通信的基本单元——链路规约数据单元(LPDU)及其传输规则。这一层采用了可变帧长格式FT3。 ##### FT3帧结构 - **起始字**:2字节,固定值`0x0564`,用于标识帧的开始。 - **长度(LENGTH)**:1字节,表示控制字、目的地址、源地址和用户数据的总长度。长度范围为5至255字节。 - **链路层控制字(CONTROL)**:1字节,包含传输方向、帧类型等信息。 - **目的地址**:2字节,低位在前。 - **源地址**:2字节,低位在前。 - **CRC校验码**:2字节,用于错误检测。 - **用户数据**:位于报头之后,可以是1至16字节的数据块,每个数据块后跟随一个16位的CRC校验码。 ##### 控制字与功能码 控制字包含了方向位(DIR)、源发标志位(FRM)、帧计数位(FCB)和帧计数位有效标志(FCV)。 - **DIR**:指示帧的方向,0为主站到从站,1为从站到主站。 - **FRM**:指示帧的来源,0表示原发站,1表示响应站。 - **FCB/FCV**:用于简单的错误检测和纠正。 功能码用于指示帧的功能,例如: - 0:重置远程链路。 - 1:重置远程进程。 - 3:发送用户数据并等待确认。 - 4:发送用户数据但不需要确认。 - 9:查询链路状态。 从站响应帧的功能码包括: - 0:肯定确认。 - 1:否定确认。 - 11:回应链路状态查询。 #### 三、传输层规约 传输层规约负责在主站和从站之间传输超过LPDU定义长度的信息。 ##### 传输层报头格式 - **FIN**:标志当前帧是否为整个用户数据的最后一帧。 - **FIR**:标志当前帧是否为整个用户数据的第一帧。 - **序号**:表示数据帧在整个用户数据中的顺序编号,范围为0~63。 ##### 数据块格式 - **传输层报头(TH)**:1字节,包含传输控制字。 - **数据块**:应用用户数据,长度为1~249字节。 如果应用用户数据长度超过249字节,则需分割成多个报文进行传输,每帧前面加上TH控制字。 #### 四、应用层规约 应用层规约定义了应用层报文(APDU)的格式和规则,用于处理具体的业务逻辑。 ##### 应用报文格式 - **请求报文**:由主站发起,包含请求报头、对象标题和数据。 - **响应报文**:由从站响应,同样包含响应报头、对象标题和数据。 ##### 报文报头字段定义 - **应用控制**:包含控制信息。 - **功能码**:指示报文的功能。 - **内部信号字**:仅存在于响应报文中,用于携带额外的状态信息。 #### 五、总结 DNP3协议通过定义清晰的数据链路层、传输层和应用层,实现了复杂工业环境下的可靠通信。其独特的FT3帧格式和传输层分割机制确保了即使在网络条件不佳的情况下也能保证数据的准确传输。同时,通过详细的控制字和功能码定义,使得主站和从站之间的交互更加灵活高效,满足了不同应用场景的需求。
2025-10-11 10:01:47 114KB dnp3
1
本文件定义了Harris公司的分布网络规约(DNP)应用层APDU的格式与服务。ISO OSI(国际标准化组织开放系统互连)模型规定了七层。国际电工委员会(IEC)规定了一个简化了的模型只包含有物理、数据链路与应用层。它被名之为性能加强了的体系结构(EPA)。本文件定义该EPA的第三层或应用层。数据链路层被定义于: Distributed Network Protocl Version 3.00: Data Link Layer (P009-OPD.DL)
2025-09-29 09:58:18 627KB DNP3.0
1
积分最低了,本人从luciol官网下载的一套集成一系列电力规约IEC608705、DNP3协议的java源码框架,而用java编写电力规约本身就很少见,能在网上找到这套代码实属不易。这套框架已经满足大部分需求,代码精简、易懂,对象关系设计合理,各种规约分类明确,只有IEC104规约没有完善,不过可以参考IEC101规约源码及设计思路,本人已经做过测试,工具类灵活、可扩展性强,虽然不能直接商用,但确实参考性极强
2024-03-02 09:22:36 6.91MB Java 电力规约
1
GitHub上的资源,免费分享,包含DNP3的client与server
2023-03-13 08:04:48 7.05MB github
1
DNP3 协议基础类c++ class ,put ,get,unsolated method, 支持triangle 测试,DI、AI,AO , DO l
2022-11-21 19:01:00 15KB DNP3
1
dnp3 协议通讯过程中使用wireshark抓取传输报文,包括连接,读操作,写操作等等基本交互操作
2022-08-05 08:47:12 20KB dnp3 工控协议
1
工控协议-dnp3-数据包-0-30功能码
2022-07-22 09:00:09 17KB 工控协议 dnp3 dnp3抓包
1
NP3协议FreyrSCADA提供DNP3 RTU站点/服务器模拟器,DNP3客户端主模拟器,静态和动态库,DNP3源代码库,Windows Linux-C,C ++,C#.NET演示套件(Raspberry Pi和BeagleBone Black)或客户特定的硬件窗口,Linux,QNX完整实现DNP3协议标准,包括文件传输。 二进制输入,双位二进制输入,二进制输出,计数器输入,模拟输入,模拟输出,八进制字符串,虚拟端子字符串。 支持CROB,具有“ select-before-operate”或“ direct-execute”命令执行模式的模拟输出命令,经过行业验证,已使用所有领先的测试工具进行了测试。免费获得DNP3协议开发套件。主客户端模拟器,支持Windows和Linux SDK。
2022-07-20 14:04:14 13.76MB DNP3 工业协议
1
SIMATIC NET S7-1200 - Telecontrol CP 1243-1 DNP3 操作说明[手册]pdf,
2022-05-08 10:18:32 1.27MB 说明书
1
IEEE standard 1815-2012 for Electric Power systems communications DNP3
2022-05-05 22:03:23 18.33MB DNP3 protocol 1815-2012
1