DNP3协议与其在CW中应用课件_第1页
DNP3协议与其在CW中应用课件_第2页
DNP3协议与其在CW中应用课件_第3页
DNP3协议与其在CW中应用课件_第4页
DNP3协议与其在CW中应用课件_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、DNP3协议DNP: The Distributed Network Protocol(分散式网络协议)DNP3:DNP V3.0第1页,共32页。协议简介DNP3协议是由美国IEEE的电力工程协会(PES)在IEC的基础上制定成为美国的通信标准,在美国等西方国家有广泛的应用,在我国的应用范围也十分广阔。DNP30是开放式协议,既可用于SCADA系统,也可应用于分布式的自动化(DA)系统。该协议高度灵活并且末端开放,不含任何目标硬件的专用结构,适合高可靠,中等速度和中等吞吐量的应用;IEC8705101协议采用FT12的帧格式,是我国的国家标准。该协议适用于SCADA等系统,通讯方式灵活,适用

2、于较快速度和较低可靠要求的应用场合。DNP 3.0是开放式协议,它可以对不同的数据类型安排不同的优先级;支持主动上报信息;支持主站与子站对时;允许多主站和对等操作。DNP 3.0是分层实现的协议。它定义了三层,即应用层:处理用户数据并控制报文的流向和报文的目的;数据链路层:控制帧的类型;物理层:为链路层提供基本服务以及相应的接口。第2页,共32页。虚拟传输层的由来由于IEC870.5-101链路层每一帧中所传送的应用数据不超过255个字节,为了方便应用层传输大容量数据块,DNP3.0增加了一个传输层,将超过255个字节的应用数据分成若干个不超过255字节的数据子模块,送到链路层传输。因此,为了

3、实现的方便,DNP3.0在应用程序层与数据链路层之间增加了虚拟传输层。为了支持高级RTU功能和大于最大帧长的报文,DNP3.0的数据链路层用虚拟传输层来完成最短报文的组装与分解。第3页,共32页。图为通讯模型的比较第4页,共32页。各层的帧结构图示图1中:(1)请求报头用于主站的数据请求报文,包含应用控制和功能码两个字段。响应报头用于子站的响应报文,包含应用控制,功能码和内部信号三个字段。这一字段指出报文的目的;(2)对象标题:指明了其后的数据对象,包含Object段、Qualifier段和Range段;(3)数据段:由对象标题指定的数据对象组成的数据。-应用层第5页,共32页。传输层传输层在

4、应用层形成的报文前加了一个字节长的传输控制单元,以便在应用层报文长度大于249个字节时提供必要的多帧信息。第6页,共32页。数据链路层数据链路层采用IEC8705系列的FT3帧格式,以传输层的报文为源数据进行打包,形成最终报文并发送出去。 图3中:(1)0 x05、0 x64为固定的2个字节的起始字符;(2)目的地址、源地址、CRC校验码各为2个字节长。长度段、控制段各为1个字节长;(3)数据块1(n1)中的源数据为16个字节长,剩余字节作为第n个(最后一个)数据块的源数据;(4)协议为报头单独生成一组CRC校验码,为后面的每个数据块各生成一组CRC校验码。第7页,共32页。对象(Object

5、)在DNP协议中,每一个数据类型应称为一个对象组(Object Group),每一个对象组中有对象组变量(Object Group Variation),不同对象组变量表明所对应对象组中数据的不同组织方式。对于遥信、遥测等信息,DNP协议采用轮询方式,而对于变位信息(如SOE数据),由发生数据变化的设备(即子站)主动上报,而不需主站去询问。DNP 3.0用对象组(Object)和变体(Variation)来描述实际应用中不同的数据及事件。每一个对象组都定义了一种数据类型,变体则描述了该数据类型的某种具体表现形式,它们都有规定的格式和编号。这些数据又可分配为4类,分别为:0类(class 0),

6、1类(class 1),2类(class 2),3类(class 3)。每一类数据可以分配不同的优先级。其应用层采用的面向对象的数据结构保证它可以灵活采用以下工作方式:(1)主动上报模式(unsolicited responses);(2)轮询模式(pollresponse);(3)变位轮询模式(polled reportbyexception);(4)对等传输模式(peer to peer)。第8页,共32页。DNP3 通讯结构图 Outstation MasterDNP3ApplicationPseudo Transport LayerDNP3 Link LayerDNP3 Users C

7、odeDNP3ApplicationPseudo Transport LayerDNP3 Link LayerDNP3 Users CodePhysical LayerBinary InputAnalogInputCounterBinary InputAnalogInputCounterBinaryOutputAnalogOutput第9页,共32页。Link Layer Balanced Transmission Request Message (User Data, Confirm Expected) (Acknowledgment) Response Message (User Data

8、, Confirm Expected) (Acknowledgment)MasterSlave第10页,共32页。DNP3.0功能码简述DNP3.0中的功能码均为一个字节长的字段。在应用层中,功能码标识着报文的目的,分为两组:一组用于请求;一组用于响应。在数据链路层中,功能码(控制字)标明帧的类型,原方用控制字功能码向副方请求各种过程,副方用控制字功能码指出报文是指示链路状态或是对原方报文的响应。原方和副方的功能码取值均在0到15之间。每个功能码均有其单独的控制操作。第11页,共32页。Report-By-Exception Processing (DNP Events)Any DNP Sta

9、tic point can be configured to create DNP Event objects on value changes.Binary Input Change Events are created when a DNP Binary Input point changes state. Counter and Analog Change Event objects are created when the corresponding Static object changes by more than a programmable deadband value.Dea

10、dbands 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

11、 of Events (SOE) log on Master Station.RBE can be polled or unsolicited.第12页,共32页。TIME SYNCHRONIZATION时间同步是由应用层来处理的,但是必须使用数据链接层的特殊服务。应用程序须通过发送适当的请求或响应开始时间同步。要同步主站和分站时间,参见下列各项:1、主站发送延迟测试(Delay Measurement)请求到分站,主站标记发送时间(MasterSendTime)在该请求的第一字节的第一位。2、分站接收延迟测试请求的第一字节的第一位,此时时间是RtuReceiveTime,这是当前分站的时间。

12、3、分站发送响应到延迟测试请求的第一字节第一位,此时时间是RtuSendTime。该响应包含时间延迟对象,对象中的时间是RtuTurnAround,它等于RTU发送响应时间减去RTU接收请求时间。第13页,共32页。4、主站接收分站响应的第一字节的第一位,时间是MasterReceiveTime.5、主站可立即计算这一路线传播的延迟时间,计算公式如下:6、主站发送写请求的第一字节的第一位,时间是发送写时间MasterSend。该写请求包含时间与日期(Time and Date)对象,对象中的时间等于MasterSend加上延迟(MasterSend + Delay).这是主站要设定到分站的时间

13、。7、分站接收写请求第一字节的第一位,此时时间是RtuReceive。8、分站处理写请求,设置分站时钟新的时间。运算规则是:9、至此主站与分站同步完毕。注:时间同步采取的是分站到主站的传播延迟和主站到分站的传播延迟相等的方案。第14页,共32页。应注意的事项1报文组织DNP30规约按照低字节在前,高字节在后的顺序组织和发送报文。子站也必须按照低字节在前,高字节在后的顺序解析报文,否则会造成校验错误,导致整个报文的丢失。2校时在正常情况下,主站并不需要经常对子站进行校时。校时操作经常发生在以下两种情况:(1)主站重启后,需要对全部子站进行广播校时;(2)子站重启后,在第一次响应主站请求数据的报文

14、时,在报文中置“校时”标志,主站检查到此标志置位后,对该站校时,然后重新请求数据。子站接收到校时报文后,将报文中的时间加上通道的延时存入时钟芯片。校时命令的优先级高于其他命令,有校时命令时优先处理校时命令,然后再执行其他请求。第15页,共32页。当前程序的同步当前程序的时间同步,使用IO SERVER可读取到Time and Date对象,对其写值即可立即同步RTU时间。如图所示:第16页,共32页。DNP3协议在CW中的应用由于DNP3协议在ControlWave中是由程序编制使用,并非是嵌入在固件中,所以其很多相关设置均可在程序中更改,本文介绍使用DNP3通信CW作从时的基本设置和DNP3

15、TCP方式通信的相关设置。第17页,共32页。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所描述的数据的结构有别于我们通常所描述的,它是一种新的结构体, 需要我们在应用程序中做新的定义。TYPEDNPBinInpStru

16、ct:STRUCT ChangeFlags : 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

17、= Class 2, 4 = Class 3, 0 = None) *) Flags : BYTE;(* Bits to define state for point - See above. *) CustomFlags : BYTE;(* Event type which can be executed - see above - set by firmware *) Spare1 : BYTE;END_STRUCT;END_TYPE第18页,共32页。 Analog Input (AI) Counter (PI) Binary Output (DO) Analog Output (AO)

18、DNP3 报文DNP3 Frame HeaderDNP3 数据变量Event analog data can be represented by these variations1.A 32-bit integer value with flag2.A 16-bit integer value with flag3.A 32-bit integer value with flag and event time4.A 16-bit integer value with flag and event time5.A 32-bit floating point value with flag6.A

19、32-bit floating point value with flag and event timeHeaderData SectionSyncLengthLinkcontrolDestinationAddressSourceAddressCRC第19页,共32页。7.A 64-bit floating point value with flag8.A 64-bit floating point value with flag and event time注:CW不支持7,8两种数据变量。具体采用那种数据变量需在程序中定义。AI数据变量结构体定义TYPEDNPAnaInpStruct:ST

20、RUCTValue : DINT;RealValue : REAL;ChangeFlags : UINT;ValueType : BYTE; (* Currently supported Analog Value Types (ValueType): TMWTYPES_ANALOG_TYPE_SHORT 0 TMWTYPES_ANALOG_TYPE_USHORT 1 TMWTYPES_ANALOG_TYPE_LONG 2 TMWTYPES_ANALOG_TYPE_ULONG 3 TMWTYPES_ANALOG_TYPE_CHAR 4 TMWTYPES_ANALOG_TYPE_UCHAR 5 T

21、MWTYPES_ANALOG_TYPE_SFLOAT 6 *)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 point - See above. *)CustomFlags : BYTE;Spare1 : BYTE;END_STR

22、UCT;END_TYPE第20页,共32页。AI数据变量定义 (* Short Floating Point Analog Input (with flag) *)DNP_Slave_Sess_ConfigSTRUCT_NUM.Obj30DefaultVariation := BYTE#5; (* Data Object Tag: 30.5 *)(* Short Floating Point Analog Change Event *)DNP_Slave_Sess_ConfigSTRUCT_NUM.Obj32DefaultVariation := BYTE#5; (* Data Object

23、Tag: 32.5 *)(* Analog Input Deadband Floating Point (32-Bit Short Real) *)DNP_Slave_Sess_ConfigSTRUCT_NUM.Obj34DefaultVariation := BYTE#3;(* Data Object Tag: 34.3 *)第21页,共32页。数据类型相关设置在Data Types下的DNP_SETUP中设置传点的个数限制:(该值必须大于或等于传输层所定义点的个数)(* Slave data sizes *)DNP_SLAVE_BINARY_INPUT : ARRAY0.300设置DI点的

24、数量DNP_SLAVE_BINARY_OUTPUT : ARRAY0.10设置DO点的数量DNP_SLAVE_BINARY_COUNTER : ARRAY0.10DNP_SLAVE_FROZEN_COUNTER : ARRAY0.10DNP_SLAVE_ANALOG_INPUT : ARRAY0.300设置AI点的数量DNP_SLAVE_ANALOG_INPUT_DBAND : ARRAY0.300设置AI死区点的数量DNP_SLAVE_ANALOG_OUTPUT : ARRAY0.10设置AO点的数量DNP_SLAVE_STRING_POINT : ARRAY0.5DNP_SLAVE_VIR

25、TUAL_TERMINAL : ARRAY0.5第22页,共32页。虚拟传输层设置在全局变量组DNP Structures或DNP_IO程序组各输入输出功能块中设置所要传点的数量:变量:DNP_MAX_SLV_BIN_INP设置DI点的数量;DNP_MAX_SLV_BIN_OUT设置DO点的数量;DNP_MAX_SLV_AI设置AI点的数量;DNP_MAX_SLV_AI_DEAD设置AI死区点的数量;DNP_MAX_SLV_AO设置AO点的数量;这些变量在各自输入/出的功能块中均能够找到。在全局变量组DNP Status Defines中设置模拟量的数据类型:变量DNP_ANALOG_TYPE

26、_SFLOAT初值设BYTE#6为REAL型;设BYTE#2为DINT型。第23页,共32页。当虚拟传输层对点的个数定义大于数据类型中同类型点的数量限制时,将会碰到如下情况,而使程序无法运行。所以各类型点的数量必须在数据类型工作表中定义完全。第24页,共32页。点的数量限制The standard DNP and DNP_SETUP data type worksheets contain definitions for the structures and arrays mentioned here.Data TypeStructure TypeArray TypeSize/MaxBinar

27、y InputsDNPBinInpStructDNP_SLAVE_BINARY_INPUT8/8192Binary OutputsDNPBinOutStructDNP_SLAVE_BINARY_OUTPUT20/3276Binary Output Pattern MaskDNPBinOutPatternMaskStructBinary CountersDNPBinCntStructDNP_SLAVE_BINARY_COUNTER12/5461Frozen CountersDNPFrzCntStructDNP_SLAVE_FROZEN_COUNTER20/3276Analog InputsDNP

28、AnaInpStructDNP_SLAVE_ANALOG_INPUT16/4096Analog Input DeadbandsDNPAnaInpDbStructDNP_SLAVE_ANALOG_INPUT_DBAND12/5461Analog OutputsDNPAnaOutStructDNP_SLAVE_ANALOG_OUTPUT16/4096String PointsDNPStringPointStructDNP_SLAVE_STRING_POINT92/712Virtual Terminal PointsDNPVirtTermStructDNP_SLAVE_VIRTUAL_TERMINA

29、LDepends第25页,共32页。DNP传输模式设定全局变量组DNP Mode Values或在Application_Setup功能块中设定:串口作从MODE_DNP_SLAVE:33;串口作主MODE_DNP_MASTER:32;以太网作从MODE_DNP_TSLAVE:59;以太网作主MODE_DNP_TMASTER:58。其中串口程序和以太网作主程序还没有做上去,只有以太网作从可用。第26页,共32页。*号表示SCADA序号,从0开始。应用层设置在全局变量组DNP Setup 或Application_Setup功能块中可设定与SCADA通信需要设定固定的IP地址和TCP端口等,可设

30、8个SCADA通信连接,每个需要设置的几个重要参数是:赋值设定作从时Channel的id:DNP_Slave_Sess_Valid*.ChannelId;赋值设定作从时Session的id:DNP_Slave_Sess_Valid*.SessionID;赋值设定作从时ConfigSession的id:DNP_Slave_Sess_Valid*.ConfigSessionID;针对作从的单个本地控制器, RTUDNPAddress为单一固定值。设定SCADA设备的IP地址:DNP_Slave_Sess_Valid*.IPAddress;设定对应SCADA设备的目标地址,即SCADA软件中需要设置

31、的Source地址:DNP_Slave_Sess_Valid*.DestinationAddress。其中 为相同值,在功能块中赋值设定。TCP_PORT设定网络通信的端口,其默认值是20000,庆咸管线项目用的是5000,其它值亦可,但不能设Modbus的默认端口502。第27页,共32页。点的编号与排列DNP3中点的编号从0开始,以1为增量往后累加。(编号即是地址)当前结构程序中,模拟量点有DINT型和REAL型两种,可通过改变数据结构来使用其它几种类型的点。此图没有添加DINT型量,可在功能块中将变量value改成输入型即可使用。每个点均可设置其对应死区点。第28页,共32页。第29页,

32、共32页。Glossary of TermsapplicationA piece of software (a program) consisting of one or more processes and supporting functions.BinaryA number system having only two symbols (1 and 0), and where values are expressed in the base two number system.BitAbbreviation of binary digit. The smallest unit of information in a binary system. Has a value of either one (1) or zero (0).MasterThe client or h

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论