
DNP3规约简介.doc
8页DNP3.0规约简介DNP3.0规约的文本共分为四个部分,数据链路层、传输层、应用层规约及数据对象库一、数据链路层规约数据链路层规约文件规定了DNP3.0版的数据链路层,链路规约数据单元(LPDU)以及数据链路服务和传输规程数据采用一种可变帧长格式:FT3FT3帧长格式:一个FT3帧被定义为一个固定长度的报头,随后是可以选用的数据块,每个数据块附有一个16位的CRC校验码固定的报头含有2个字节的起始字,一个字节的长度(LENGH),一个字节的链路层控制字(CONTROL),一个16位的目的地址,一个16位的源地址和一个16位的CRC校验码起始字0*05起始字0*64长度链路层控制字目的地址源地址CRC校验码用户数据CRC校验码.长的.4主体块N用户数据CRC校验码起始字:2字节,0x0564长度:1字节,是控制字、目的地址、源地址和用户数据之和255三长度三5目的地址:2个字节,低字节在前源地址:2个字节,低字节在前用户数据:跟在报头之后的数据块,每I6个字节一块,最后一个块包含剩下的字节,可以是1到16个字节每个数据块都有一CRC循环冗余码挂在后面CRC循环冗余码:2个字节在一个帧内,挂在每个数据块之后。
控制字与功能码:通信控制字包含有本帧的传输方向,帧的类型以及数据流的控制信息76543210DIRPRMFCBFCV功能码DIR:方向位(direction),表示此帧是由主站发出还是从站发向主站FRM:源发标志位(primary),表示此帧是来自原发站还是来自响应站FCB:帧的计数位,0、1交替变化,设计此位的目的是进行简单的纠错FCV:帧的计数位的有效标志,为1时,FCB位有效功能码:对于原发送方的帧:0:使远方链路复位1:使远方进程复位(Resetofuserprocess)3:发送用户数据,须对方确认4:发送用户数据,不须对方确认9:询问链路状态对于从方发送帧:0:肯定确认1:否定确认11:回答链路状态二、传输层规约这部分定义对于DNP数据链路层充当伪传输层的传输层功能伪传输层功能专门设计用于在原方站和从方站之间传送超出链路规约数据单元(LPDU)定义长度的信息其格式如下:TH(传输层报头)数据块其中:传输层报头:传输控制字,1个字节数据块:应用用户数据l-249个字节由于数据链路层的FT3帧格式中的长度字的最大限制为255,因此传输层数据块的最大长度为255-5(链路层contro1+source+destination)-1(TH)=249。
当应用用户数据长度大于249字节时,传输层将以多帧报文方式传送,并每帧前加TH控制字如1234=249+249+249+249+238,分5帧传送传输层报头(TH)格式:76543210FINFIR序号FIN:此位置“1”,表示本用户数据是整个用户信息的最后一帧FIR:此位置“1”,表示本用户数据是整个用户信息的第一帧序号:表示这一数据帧是用户信息的第几帧,帧号范围为0〜63,每个开始帧可以是0〜63中的任何一个数字,下一帧自然增加,63以后接0三、应用层规约本文本定义了应用层报文(APDU)的格式这里,主站被定义为发送请求报文的站,而从站则为从属设备被请求回送报文的RTU或智能终端(IEDS)是事先规定了的在DNP中,只有被指定的主站能够发送应用层的请求报文,而从站则只能发送应用层的响应报文1.应用报文格式:应用请求报文的格式:RequestHeaderObjectHeaderData:ObjectHeaderData请求报文对象标题数据:对象标题数据应用响应报文格式:ResponseHeaderObjectHeaderData------------|1ObjectHeaderData响应报文对象标题数据;对象标题1数据其中:请求(响应)报头:标识报文的目的,包含应用规约控制信息(ACPI)对象标题:标识随后的数据对象数据:在对象标题内的指定的数据对象2.应用报文报头字段的定义:请求报头有两个字段。
每个字段为8位的字节,说明如下:ApplicationControl应用控制FunctionCode功能码响应报头有三个字段前两个字段为8位的字节,第三个字段为两个字节,说明如下:ApplicationControl应用控制FunctionCode功能码InternalIndication内部信号字这里:A.应用控制:一个字节的长度,格式如下:76543210FINFIRCON序号FIR:此位置“1”,表示本报文分段是整个应用报文的第一个分段FIN:此位置“1”,表示本报文分段是整个应用报文的最后一个分段CON:此位置“1”,表示接受到本报文时,对方须要给予确认序号:表示分段的序号,1-15B.功能码:标识报文的目的,一个字节的长度,例如:请求报文:1一读,请从站送所指定的数据对象2一写,向从站存入指定的对象响应报文:0一确认129一响应130—主动上送C.内部信号:共两个字节,16位,每一位分别表示从站的当前的各种状态3.对象标题(ObjectHeader):报文的对象标题指定包含在报文中的数据对象或是被用来响应此报文的数据对象格式如下:Object对象Qualifier限定词Range变程(范围)A.对象(Object):两个字节,指定对象组以及跟在标题后面的对象的变化。
对象段的格式如下Group对象组Variation变体对象段规定一个对象组和在该组内的对象变体对象的组别与变体结合起来可以唯一的规定报文所指定的对象对象组指定数据的基本形式(如:模拟输入),对象变体指定数据的形式(如16位模拟输入或32位模拟输入)B.限定词(Qualifier)、变程(范围,Range)限定词为一个8位的字节段,规定交程段的意义变程说明数据对象的数量,起点和终点的索引成所讨论的对象的标识符限定词段的格式如下:RIndexSize索引规模QualifierCode4位限定词码其中:R:保留位,置为零索引规模(IndexSize):3个Bits,,规定前置于每个数据对象的索引规模或对象的规模在请话求报文中,当限定词码(QualifierCode)等于11时,1、2、3分别代表数据对象前的索引是1、2、4个字节4、5、6、7保留在响应报文中,或包含数据对象的请求报文的对象标题中:0:对象没有前缀的索引1:对象有一个字节的前缀索引2:对象有两个字节的前缀索引3:对象有四个字节的前缀索引4:对象前有一个字节标识对象的大小5:对象前有两个字节标识对象的大小6:对象前有四个字节标识对象的大小7:保留限定词码(QualifierCode):4个Bits,用以规定变程(Range)意义。
当限定词码取值0〜5时,变程段包含1个开始范围(StartRange)和1个结束范围(Stoprange)当限定词码取值6时,则Range段的长为零(即无变程段),因为所指定的是所要求的数据类型的全部数据对象当限定词码取值为7〜9时,则变程段由一个计数值所组成,它指明所讨论的数据对象的数目限定词段中限定词码和索引规模的有效组合主要有“0x00,0x01,0x02,0x03,0x04,0x05,0x40,0x43,0x5l,0x54,0x62,0x65,0x07,0xl7,0x27,0x37,0x08,0xl8,0x28,0x38,0x09,0x19,0x29,0x39,0x1b,0x2b,0x3b四、几个典型过程说明下面列出几个典型的应答过程,其中当链路层不需要确认时,相应过程中的ACK就没有,若应用层也不需要确认,则Confirm也没有1:上电握手过程(主站上电呼叫)(主)Reset--->(从)(fcv=0,fcb=x) 从站呼叫)(主)(从)<---Reset(fcv=0,fcb=x)ACK>(destfcv=1,destfcb=1) 主)(从)<时间到,unsolicited(全电度)(。












