DNP3.0 规约描述 该规约文本分为四部分,数据链路层、传输层、应用层以及对象库。而请求帧与应答帧的结构又有所不同,以下按这两种帧的结构分别描述。 一个完整的请求帧由三部分组成:1.链路层报文头,长度固定为10 字节。2.传输层报文头,长度为1 字节。3.应用层数据,长度不固定。 1. 链路层报文头 链路层报文头由以下几部分组成: a. 起始字 (两字节) 0x05 0x65 b. 长度 (一字节) 长度值=帧总长-CRC 长-3 c. 链路层控制字 (一字节) BIT7:方向位,1 表示此帧为请求帧 BIT6:源发标志位 BIT5:FCB,0、1 交替变化,FCV 为1 时有效 BIT4:FCV,1 时 FCB 有效,0 时 FCB 无效 BIT0~BIT3:功能码,请求帧中功能码定义如下 0:使远方链路复位 1:使远方进程复位 3:发送数据,需链路层确认 4:发送数据,不需链路层确认 9:询问链路状态 返回帧中功能码定义如下 0:肯定确认 1:否定确认 11:回答链路状态 d.两字节的目的地址,低字节在前,高字节在后 e.两字节的源地址,低字节在前,高字节在后 2. 传输层报头 传输层报头只有一字节,即 TH 头 BIT7:1 表示本帧是本用户数据传输的最后一帧 BIT6:1 表示本帧是本用户数据传输的第一帧 BIT0~BIT5:帧序号,多帧传输时,表示本帧是多帧传输中的第几帧,0~63 注意:只有在单帧数据超过 255 字节,必须采用多帧传输的时候,传输层序号才有意义,一般情况下此字节为0xc0,表示单帧传输 3. 应用层报头 请求帧和响应帧的应用层报头不同,分别描述: A. 请求帧的应用层报头两字节,为应用控制和功能码 应用控制字节 BIT7:1 表示此报文分段为应用层报文的第一个分段 BIT6:1 表示此报文分段为应用层报文的最后一个分段 BIT5:1 表示在响应此帧时需应用层确认,即功能码要为0 BIT4~BIT0:表示分段序号,多帧传输时表示此帧为多帧传输中的第几个应用层报文 功能码 0 确认 1 读 2 写 3 选择 4 操作 5 直接操作(ACK) 6 直接操作(NO ACK) 7 立即冻结(ACK) 8 立即冻结(NO ACK) 9 冻结同时清除(ACK) 10 冻结同时清除(NO ACK) 11 在特定的时间或间隔冻结(ACK) 12 在特定的时间或间隔冻结(NO ACK) 13 冷启动 14 热启动 15 用缺省值初始化数据 16 应用初始化 17 开始应用 18 停止应用 19 存储组态 20 使能非请求信息 21 禁止非请求信息 22 分类 23 测量延时 ...