摘要:IEC TC57所推出的IEC 870-5-1和IEC 870-5-2关于远动系统内数据传输的标准构成了DNP V3.00数据链路层的基础,DNP 3.0规约使SCADA进行有了国际标准规约。标准规约的适用面广,功能强大,可以大大减少电力网维护的工作强度。馈线终端单元(FTU)是配电自动化系统中的重要组成部分。
关键词:分布式网络规约DNP3.0 无线FTU 配电自动化
DNP 3.0(Distributed Network Protocol Version 3.0)规约是目前在欧洲及北美比较流行的一种开放性结构的规约,在国内正逐渐成为主流性通信规约之一。它可用于电力系统子站系统、RTU、智能电子设备(IEDS)以及主站系统之间的通信。由于目前大部分国外配电自动化(DA)设备都支持DNP3.0,为使电力设备具有兼容性和标准性,大部分与国外电力主站配套的FTU都使用DNP3.0通讯规约。
FTU作为配电自动化系统的重要部分,不但要实现基本的测量与监控功能,还要实现与远方主站的通信。本设计以ARM为主处理器,以多处理器的方式将功能项模块化,各自独立互不干扰,主处理器控制和协调各个功能单元的操作和数据交互,这样既减少了设备的维护也可以利用设备的冗余来保证电力设备的正常运行。
1 无线FTU系统构成
图1为无线FTU系统的构成,利用GPRS/CDMA等无线网络作为通讯载体,移动服务商数据通过无线或者Internet网络传输到电力监控中心的局域网络的电脑上,通过这种科学的方式来实现远程自动化监控。
由于电力终端设备工作的特殊性,其安装位置、工作环境以及对可靠性、稳定性的要求,传统的有线网络已很难满足电力设备网络化的要求。无线FTU在实现标准通讯规约的基础上加以改进,通过GPRS/CDMA网络实现电力设备的网络化,在实现正常工作的同时,提高电力网络的自动化程序,也更高效地实现了电力监控设备的网络化。
2 DNP3.0规约介绍
DNP3.0规约是在国际电子电工协会(IEC)的TC57协议基础上制定的通信规约,它支持ISO的OSI/EPA模型。这种模型规定了物理层、数据链路层和应用层。然而,为了支持的RTU功能和大于帧长的报文,DNP3.0的数据链路采用一个伪传输层去完成短报文的组装与分解。
2.1 DNP3.0的框架结构
DNP3.0规约的文本共分4部分:数据链路层规约、传输功能、应用层规约及数据对象库。
由于汇编语言在硬件控制和处理速度上的高效性,在对规约处理时,整个CRC部分用汇编实现,似乎很麻烦,但由于汇编语言在位控制上可以类似C语言中联合体的操作,所以在协议的控制上使用整体赋值分位判断的方法,协议处理简单明了。C与汇编的混合使用,各取其长,实现了DNP通信的同时也提高了响应速度和代码质量。
DNP3.0规约的帧格式的基本单元是字节的,所以按照DNP3.0规约的层次结构分别是定义链路层控制字、伪传输层控制字、应用层控制字、应用层功能码、FTU内部状态1、FTU内部状态2等。
按照DNP3.0规约的数据流程,分层搭建处理程序流程。DNP3.0规约详细规定了协议的层次结构及每一层的功能,程序只要完成全与规约一致即可实现通讯的标准化。
DNP协议链路层处理流程所示。
2.2 DNP3.0中CRC算法的实现
CRC校验是保证通信可靠性的关键处理部分,在协议中必须对报文的报头、每个数据块都进行校验,并将校验码与数据一起捆绑发送,主站接收时可以对报文的信息进行分析,判断通信是否正常。下面是结合实现应用给出的分析方法和汇编语言的CRC校验程序。
CRC的生成函数为:
P=G(X)=X16+X13+X12+X11+X10+X8+X6+X5+X2+1
CRC=(M2 16)/G(X)
具体实现细节分为:
发送一个数据块:
·取用户数据块M,其长度为K比特。
·将M乘以2 16得2 16M。
·将比数除以(模2除)P(17比特),得余数R(16比特)。
·对R取反,得R'。
·将R'挂在2 16M之后,并作为数据块(T')发送出去。
接收一个数据块:
·接收一个数据块(T'),它具有(K+16)比特。
·将T'中的R'取反后得T,仍为(K+16)比特。
·将T除以P,得出它的余数。
·若余数为非零,则数据块出错,否则数据块无误。
用汇编语言实现:(用查表法实现,具体表格省)
PROC ASKCRC
;入口参数:要转换的个数;0A0H:数据的起始位置
;出口参数:CRCL CRCH
;需保护的参数:10H,11H,12H,13 14H R6 R1 A ASKCR:
MOV R1,#0A0H
MOV DPTR,#CRCTAB
MOV 10H,#0 ;CRCL
MOV 11H,#0 ;CRCH
CRC1:
MOV A,@R1
MOVC A,@A+DPTR
MOV 12H,10H
MOV 13H,#0
ANL 12H,#0FFH
XRL 10H,#0
XRL 11H,A
MOV A,12H
ORL 10H,A
MOV A,13H
ORL 11H,A
MOV R6,#8
CRC2:
MOV 14H,11H
ANL 14H,#80H
CLR C
MOV A,10H
RLC A
MOV 10H,A
MOV A,11H
RLC A
MOV 11H,A
MOV A,14H
CJNE A,#80H,CRC3
XRL 10H,#65H
XRL 11H,#3DH
CRC3:
DJNZ R6,CRC2
INC R1
DJNZ R7,CRC1
XRL 10H,#0FFH
XRL 11H,#0FFH
MOV 12H,10H
MOV 13H,11H
MOV A,10H
MOVC A,@A+DPTR
MOV 13H,A
MOV A,11H
MOVC A,@A+DPTR
MOV CRCL,A
MOV CRCH,13H
RET
2.3 DNP3.0的对象库设定
采用DNP应用层规约的智能化设备可以监视控制,在软、硬件方面均产生大量的数据,这些数据被称之为“信息单元”。不论它的数据源是什么,设备的简要文件(Profile documents)都需要为每个远动设备的数据对象指明其确切的数据源及意义。FTU需要对电网进行测量和监控,所以必须明确DNP信息单元或用于DNP应用层的数据对象之编码规范。实现应用时采用的一种通信格式。
FTU现行的通信规约有多种。由于DNP3.0规约是国际通用的,所以一般的电力设备上都要有此项功能。又考虑到DNP3.0规约功能强大,涉及到很多方面,所以在不同要求的FTU设备上可以根据现场需要实现不同的功能单元,而不必将所有的功能都完成。
随着工业总线网络化的发展和工业自动化程度的提高,依托无线网络的工业设备必然会得到更一步的发展,通信协议也会向着通用的方向发展。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。