文档详情

DNP3协议及其在CW中的应用

n****
实名认证
店铺
PPTX
1,008.51KB
约32页
文档ID:50701602
DNP3协议及其在CW中的应用_第1页
1/32

DNP3协议DNP: The Distributed Network Protocol (分散式网络协议) DNP3:DNP V3.0协议简介DNP3协议是由美国IEEE的电力工程协会(PES)在IEC的基础上制定成为美国 的通信标准,在美国等西方国家有广泛的应用,在我国的应用范围也十分广阔DNP3.0是开放式协议,既可用于SCADA系统,也可应用于分布式的自动化 (DA)系统该协议高度灵活并且末端开放,不含任何目标硬件的专用结构,适合 高可靠,中等速度和中等吞吐量的应用;IEC870-5-101协议采用FT1.2的 帧格式,是我国的国家标准该协议适用于SCADA等系统,通讯方式灵活,适 用于较快速度和较低可靠要求的应用场合DNP 3.0是开放式协议,它可以对不同的数据类型安排不同的优先级;支持主动 上报信息;支持主站与子站对时;允许多主站和对等操作DNP 3.0是分层实现的协议它定义了三层,即应用层:处理用户数据并控制报文的流向和报文的目的;数据链路层:控制帧的类型;物理层:为链路层提供基本服务以及相应的接口虚拟传输层的由来由于IEC870.5-101链路层每一帧中所传送的应用数据不超过255个 字节,为了方便应用层传输大容量数据块,DNP3.0增加了一个传输 层,将超过255个字节的应用数据分成若干个不超过255字节的数据 子模块,送到链路层传输。

因此,为了实现的方便,DNP3.0在应用程序层与数据链路层之间增 加了虚拟传输层为了支持高级RTU功能和大于最大帧长的报文,DNP3.0的数据链路 层用虚拟传输层来完成最短报文的组装与分解图为通讯模型的比较各层的帧结构图示图1中:(1)请求报头用于主站的数据请求报文,包含应用控制和功能码两个 字段响应报头用于子站的响应报文,包含应用控制,功能码和内部 信号三个字段这一字段指出报文的目的;(2)对象标题:指明了其后的数据对象,包含Object段、Qualifier段 和Range段;(3)数据段:由对象标题指定的数据对象组成的数据应用层传输层传输层在应用层形成的报文前加了一个字节长的传输控制单元,以便 在应用层报文长度大于249个字节时提供必要的多帧信息数据链路层数据链路层采用IEC870-5系列的FT3帧格式,以传输层的报文为源 数据进行打包,形成最终报文并发送出去 图3中:(1)0x05、0x64为固定的2个字节的起始字符;(2)目的地址、源地址、CRC校验码各为2个字节长长度段、控制 段各为1个字节长;(3)数据块1~(n-1)中的源数据为16个字节长,剩余字节作为第 n个(最后一个)数据块的源数据;(4)协议为报头单独生成一组CRC校验码,为后面的每个数据块各 生成一组CRC校验码。

对象(Object) 在在DNPDNP协议中,每一个数据类型应称为一个对象组(协议中,每一个数据类型应称为一个对象组(Object GroupObject Group),每一),每一 个对象组中有对象组变量(个对象组中有对象组变量(Object Group VariationObject Group Variation),不同对象组变量表明),不同对象组变量表明 所对应对象组中数据的不同组织方式所对应对象组中数据的不同组织方式对于遥信、遥测等信息,DNP协议采 用轮询方式,而对于变位信息(如SOE数据),由发生数据变化的设备(即 子站)主动上报,而不需主站去询问DNP 3.0用对象组(Object)和变体(Variation)来描述实际应用中不同的数 据及事件每一个对象组都定义了一种数据类型,变体则描述了该数据类型的 某种具体表现形式,它们都有规定的格式和编号这些数据又可分配为4类,分别为:0类(class 0),1类(class 1),2类( class 2),3类(class 3)每一类数据可以分配不同的优先级其应用层采用的面向对象的数据结构保证 它可以灵活采用以下工作方式:(1)主动上报模式(unsolicited responses);(2)轮询模式(poll-response);(3)变位轮询模式(polled report-by-exception);(4)对等传输模式(peer to peer)。

DNP3 通讯结构图Outstation MasterDNP3 ApplicationPseudo Transport LayerDNP3 Link LayerDNP3 User’s CodeDNP3 ApplicationPseudo Transport LayerDNP3 Link LayerDNP3 User’s CodePhysical LayerBinaryInputAnalog InputCounterBinaryInputAnalog InputCounterBinary OutputAnalog OutputLink Layer Balanced TransmissionRequest Message(User Data, Confirm Expected)(Acknowledgment)Response Message(User Data, Confirm Expected)(Acknowledgment)MasterSlaveDNP3.0功能码简述DNP3.0中的功能码均为一个字节长的字段 在应用层中,功能码标识着报文的目的,分 为两组:一组用于请求;一组用于响应。

在 数据链路层中,功能码(控制字)标明帧的 类型,原方用控制字功能码向副方请求各种 过程,副方用控制字功能码指出报文是指示 链路状态或是对原方报文的响应原方和副 方的功能码取值均在0到15之间每个功能码均有其单独的控制操作Report-By-Exception Processing(DNP Events)Any DNP Static point can be configured to create DNP Event objects on value changes.a)Binary Input Change Events are created when a DNP Binary Input point changes state. b)Counter and Analog Change Event objects are created when the corresponding Static object changes by more than a programmable deadband value. Deadbands can be set on a per-object basis. Further, Event objects can be assigned as either Class 1, Class 2, or Class 3 on a per-object basis.Protocols like Modbus transmit all the data each time a device is polled.RBE only transmits changes, so fewer data points.Timestamps allow creation of Sequence of Events (SOE) log on Master Station.RBE can be polled or unsolicited.TIME SYNCHRONIZATION•时间同步是由应用层来处理的,但是必须使用数据链接层的特殊服 务。

应用程序须通过发送适当的请求或响应开始时间同步 •要同步主站和分站时间,参见下列各项: •1、主站发送延迟测试(Delay Measurement)请求到分站,主站标记发 送时间(MasterSendTime)在该请求的第一字节的第一位 •2、分站接收延迟测试请求的第一字节的第一位,此时时间是 RtuReceiveTime,这是当前分站的时间 •3、分站发送响应到延迟测试请求的第一字节第一位,此时时间是 RtuSendTime该响应包含时间延迟对象,对象中的时间是 RtuTurnAround,它等于RTU发送响应时间减去RTU接收请求时间•4、主站接收分站响应的第一字节的第一位,时间是MasterReceiveTime. •5、主站可立即计算这一路线传播的延迟时间,计算公式如下:•6、主站发送写请求的第一字节的第一位,时间是发送写时间MasterSend 该写请求包含时间与日期(Time and Date)对象,对象中的时间等于 MasterSend加上延迟(MasterSend + Delay).这是主站要设定到分站的时间 •7、分站接收写请求第一字节的第一位,此时时间是RtuReceive。

•8、分站处理写请求,设置分站时钟新的时间运算规则是:•9、至此主站与分站同步完毕•注:时间同步采取的是分站到主站的传播延迟和主站到分站的传播延迟相 等的方案应注意的事项•1报文组织 •DNP3.0规约按照低字节在前,高字节在后的顺序组织和发送报文 子站也必须按照低字节在前,高字节在后的顺序解析报文,否则会造 成校验错误,导致整个报文的丢失 •2校时 •在正常情况下,主站并不需要经常对子站进行校时校时操作经常发 生在以下两种情况: •(1)主站重启后,需要对全部子站进行广播校时; •(2)子站重启后,在第一次响应主站请求数据的报文时,在报文中 置“校时”标志,主站检查到此标志置位后,对该站校时,然后重新请 求数据 •子站接收到校时报文后,将报文中的时间加上通道的延时存入时钟芯 片校时命令的优先级高于其他命令,有校时命令时优先处理校时命 令,然后再执行其他请求当前程序的同步 •当前程序的时间同步,使用IO SERVER可读取到Time and Date对象, 对其写值即可立即同步RTU时间如图所示:DNP3协议在CW中的应用由于DNP3协议在ControlWave中是由程序编制使用,并 非是嵌入在固件中,所以其很多相关设置均可在程序中更 改,本文介绍使用DNP3通信CW作从时的基本设置和 DNP3TCP方式通信的相关设置。

DNP3特点 ● 时间同步,带时间标签的事件 ● 多主对一从 ● 支持主动上报----- RBE (Report-By-Exception) ● DNP 3.0与IEC 870.5-101的另一个重要区别是,能够在多种通信网络拓扑结构下支持自发响应(unsolicited response)方式DNP3四级数据召唤 ● Class 0 ● Class 1 ● Class 2 ● Class 3DNP3数据类型: ● Binary Input (DI) 注:DNP3所描述的数据的结构有别于我们通常所描述的,它是一种新的结构体,需要我们在应用程序中做新的定义 TYPE DNPBinInpStruct: STRUCTChangeFlags : UINT;(* Tracks reporting of changes to connected hosts - write 16#ffff to force exception reports *)Value : BOOL;(* Current value for point. *)PointEnabled : BOOL; (* TRUE if point enabled for collection *)EventClass : BYTE;(* Event class assigned to point (1 = Class 1, 2 = Class 2, 4 = Class 3, 0 = None) *)Flags : BYTE;(* Bits to define state for poin。

下载提示
相似文档
正为您匹配相似的精品文档