您好,欢迎访问三七文档
DNP3.0规约简介DNP3.0规约的文本共分为四个部分:数据链路层,传输层,应用层规约及数据对象库。DNP3.0规约采用三层结构:数据链路层,传输层和应用层。一.综述DNP3.0规约采用异步方式,一个起始位,一个结束位,8个数据位,无奇偶校验位。信号电平符合EIA—RS232标准。二.数据链路层规约数据链路层规约文件规定了DNP3.0版的数据链路层,链路规约数据单元(LPDU)以及数据链路服务和传输规程。数据采用一种可变帧长格式:FT3。1.FT3帧长格式:一个FT3帧被定义为一个固定长度的报头,随后是可以选用的数据块,每个数据块附有一个16位的CRC校验码。固定的报头含有2个字节的起始字,一个字节的长度(LENGH),一个字节的链路层控制字(CONTROL),一个16位的目的地址,一个16位的源地址和一个16位的CRC校验码。块0块1块N起始字0x05起始字0x64长度链路层控制字目的地址源地址CRC校验码用户数据CRC校验码…….用户数据CRC校验码定长的报头主体起始字:2字节,0x0564;长度:1字节,是控制字、目的地址、源地址和用户数据之和。255≥长度≥5;目的地址:2个字节,低字节在前;0xFFFF为广播地址;源地址:2个字节,低字节在前;用户数据:跟在报头之后的数据块,每16个字节一块,最后一个块包含剩下的字节,可以是1到16个字节。每个数据块都有一CRC循环冗余码挂在后面。CRC循环冗余码:2个字节。在一个帧内,挂在每个数据块之后。CRC生成多项式:G(x)=x16+x13+x12+x11+x10+x8+x6+x5+x2+1(0x3d65);CRC按2字节反向排列;2.控制字与功能码:通信控制字包含有本帧的传输方向,帧的类型以及数据流的控制信息。76543210DIRPRMFCBFCV功能码RESDFCDIR:方向位(direction),表示此帧是由主站发出还是从站发向主站。PRM:源发标志位(primary),表示此帧是来自源发站还是来自响应站。FCB:帧的计数位,0、1交替变化,设计此位的目的是进行简单的纠错。FCV:帧的计数位的有效标志,为1时,FCB位有效。DFC:(响应站报文)数据链路层数据缓冲区溢出;RES:(响应站报文)保留(0);功能码:主站(Primary)从站(Secondary)功能码帧类别功能FCV位帧类别功能0SEND-要求CONFIRM复位远方链路0CONFIRMACK-确认回答1SEND-要求CONFIRM复位用户进程0CONFIRMNACK-否定回答:链路忙,消息未接收2SEND-要求CONFIRM测试链路功能1-未使用3SEND-要求CONFIRM用户数据UserData1-未使用4SEND-不要求回答不需确认数据报文0-未使用5-8-未使用--未使用9REQUEST-要求RESPONSE请求链路状态0-未使用10-未使用--未使用11-未使用-RESPOND链路状态(DFC=0/1)12-15-未使用--未使用A.RESET命令(0):Primary:在上电或一次通信失败后,不断向SECONDARY下发(FCV=0,FCB=x,PRM=1,DIR=x)并等待,直到有ACK回答;Secondary:在上电或一次通信失败后,一直等待RESET命令;然后回答ACK响应(DFC=x,PRM=0,DIR=x),将FCB设为1(即接收到的下一帧其FCB=1)。B.Resetofuserprocess(1):用于复位链路使用者进程,主要是复位链路状态;回答ACK/NACK;C.Test(2):从站收到后,将FCB与预期的FCB比较,如相符,回答ACK(FCB翻转),否则,重复送上次发送的最后一帧;D.UserData(3):从站收到后,如果链路使用者可以接收数据,回答ACK,否则回答NACK;E.UnconfirmedUserData(4):从站收到后交给链路使用者,不做回答;F.RequestLinkStatus(9):从站收到后,回答LINKSTATUS,如果链路使用者可以接收数据,DFC=0,否则DFC=1;三.传输层规约DNP的传输层是一个伪传输层。伪传输层功能专门设计用于在原方站和从方站之间传送超出链路规约数据单元(LPDU)定义长度的信息。其格式如下:TH(传输层报头)数据块其中:传输层报头:传输控制字,1个字节数据块:应用用户数据1-249个字节由于数据链路层的FT3帧格式中的长度字的最大限制为255,因此传输层数据块的最大长度为:255-5(链路层control+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当用户数据只有一帧时,FIR和FIN都为1。4四.应用层规约本文本定义了应用层报文(APDU)的格式。这里,主站被定义为发送请求报文的站,而从站则为从属设备。被请求回送报文的RTU或智能终端(IEDs)是事先规定了的。在DNP中,只有被指定的主站能够发送应用层的请求报文,而从站则只能发送应用层的响应报文。1.应用报文格式:应用请求报文的格式:RequestHeader请求报头ObjectHeader对象标题Data数据ObjectHeader对象标题Data数据应用响应报文:ResponseHeader响应报头ObjectHeader对象标题Data数据ObjectHeader对象标题Data数据其中:请求(响应)报头:标识报文的目的,包含应用规约控制信息(ACPI);对象标题:标识随后的数据对象;数据:在对象标题内的指定的数据对象;2.应用报文报头字段的定义:请求报头有两个字段。每个字段为8位的字节,说明如下:ApplicationControl应用控制(8bit)FunctionCode功能码(8bit)响应报头有三个字段。前两个字段为8位的字节,第三个字段为两个字节,说明如下:ApplicationControl应用控制(8bit)FunctionCode功能码(8bit)InternalIndications内部信号字(16bit)其中:应用控制:一个字节的长度,格式如下:765543210FINFIRCON序号FIR:此位置“1”,表示本报文分段是整个应用报文的第一个分段;FIN:此位置“1”,表示本报文分段是整个应用报文的最后一个分段;CON:此位置“1”,表示接受到本报文时,对方须要给予确认;序号:表示分段的序号,0-15(RESPONSE)或16-31(UNSOLICITED);响应报文的序号应等于请求报文的序号(如是多分段请求报文,则响应序号等于末分段的序号),多分段响应报文的首段序号等于请求报文的序号,后续段顺序增加。注:规约推荐每个分段的缓冲区长度为2048字节(约9个链路帧)。当应用层数据超过本层的缓冲区长度时,就把数据分成几段。但每段都应该是一个完整的应用层报文。同一个对象标题的数据不应该跨段。功能码:标识报文的目的,一个字节的长度;功能码功能描述传输功能码0Confirm(确认)报文确认。无需回答。1Read(读)请从站送所指定的数据对象;要求响应2Write(写)向从站存入指定的对象;要求回答操作结果控制功能码3Select(选择)选择操作输出对象但不进行操作;要求回答所选点的状态4Operate(执行)对已选择的输出对象进行操作;要求回答操作结果5DirectOperate(直接控制)直接对输出对象进行操作;要求回答操作结果6DirectOperate-NoAck.(直接控制-无须回答)直接对输出对象进行操作;但不要求回答冻结功能码7ImmediateFreeze(立即冻结)将指定数据对象拷贝到冻结缓冲区;要求回答操作结果8ImmediateFreeze–NoAck.(立即冻结-无须确认)将指定数据对象拷贝到冻结缓冲区;不要求回答9Freeze&Clear(冻结并清除)将指定数据对象拷贝到冻结缓冲区,清除原数据;要求回答操作结果10Freeze&Clear-NoAck.(冻结并清除-无须回答)将指定数据对象拷贝到冻结缓冲区,清除原数据;不要求回答11FreezewithTime(带时间冻结)在指定时刻及期间将指定数据对象拷贝到冻结缓冲区;要求回答操作结果612FreezewithTime-NoAck.(带时间冻结-无须回答)在指定时刻及期间将指定数据对象拷贝到冻结缓冲区;不要求回答应用控制功能码13ColdRestart(冷启动)执行指定重启系列;待从站可用后回答时间对象14WarmRestart(热启动)执行部分重启系列;待从站可用后回答时间对象15InitializeDatatoDefaults(数据恢复缺省值)将指定时间对象恢复为上电缺省值;回答操作结果16InitializeApplication(应用初始化)初始化指定应用;回答操作结果17StartApplication(应用启动)启动指定应用;回答操作结果18StopApplication(应用停止)停止指定应用;回答操作结果配置功能码19SaveConfiguration(保存配置)将指定配置保存到不可变存储区;待从站可用后回答时间对象20EnableUnsolicitedMessages(自发报文使能)允许自发上送指定数据对象;回答操作结果21DisableUnsolicitedMessages(自发报文禁止)禁止自发上送指定数据对象;回答操作结果22AssignClass(类别分配)将指定数据对象设为某一类别对时功能码23DelayMeasurement(时间延迟测量)让应用计算某一从站的传输路径延迟保留功能码24-120-保留121-128-保留(用于测试)响应功能码0Confirm(确认)报文确认。无需回答。129Response(响应)回答Request请求130UnsolicitedMessage(自发上送消息)主动上送没有请求的消息内部信号IIN:共两个字节,16位,每一位分别表示从站的当前的各种状态。字节位说明字节10广播报文收到;响应后清除1一类数据可用2二类数据可用3三类数据可用4主站要求对时;对时后清除或由主站显式清除5从站的部分或全部数字输出点处于“当地”状态时置位,此时这些点无法遥控;处于“遥控”状态时清除6设备故障7设备重启;主站显式清除(直接写从站的IIN)字节20功能码未实现1被请求对象未知(从站没有或类别不对)2限定词或变程非法3事故或其它应用缓冲区溢出4所请求的操作已经执行5当前配置受到破坏6保留(保持0)7保留(保持0)对象标题(ObjectHeader):报文的对象标题指定包含在报文中的数据对象或是被用来响应此报文的数据对象。格式如下:Object对象(2BYTE)Qualifier限定词(1BYTE)Range变程(范围)(由限定词确定)对象(Object):两个字节,指定对象组以及跟在标题后面的对象的变化。对象段的格式如下:Group对象组Variation变体对象段规定一个对象组和在该组内的对象变体。对象的组别与变体结合起来可以唯一的规定报文所指定的对象。对象组指定数据的基本形式(如:模拟输入),对象变体指定数据的形式(如16位模拟输入或32位模拟输入)。类别组号变体对象定义备注数字位输入01011bit数字输入*0102带状态数字输入*0201不带时间数字输入变位*0202带时间的数字输入变位*0203带相对时间的数字输入变位数字输出10011bit数字输出(1位)1002带状态*数字输出
本文标题:DNP规约
链接地址:https://www.777doc.com/doc-2910170 .html