UDP协议在风电机组通信系统中的实现

2013-04-29 00:39叶伟丁桂林颜毅斌胡凯凯
风能 2013年6期
关键词:端口号字节以太网

叶伟,丁桂林,颜毅斌,胡凯凯

(南车株洲电力机车研究所有限公司,湖南 株洲 412001)

0 引言

风能作为一种清洁的可再生能源,受到了世界各国的重视。中国风能储量大、分布面广,仅陆上风能储量就有约253GW。2012年中国新增风电装机容量12960MW,累计风电装机容量为75324.2MW,双居全球第一位[1]。发展风电,不仅可以节约常规能源,而且有利于改善能源结构,减少环境污染。风电机组的控制系统根据风速、风向对风电机组的各单元加以控制,稳定输出电压和频率,并实现最大风能利用。

1 基于以太网的风电机组通信系统

近年来,性能优越的以太网应用越来越广泛。本文基于以太网,提出了一种采用UDP协议的风电机组通信方案。采用ABB公司的可编程逻辑控制器(PLC)作为核心控制器,PLC预留了1400多 Bytes的RAM作为数据发送和接收缓冲区,能够满足系统需求。PLC与上位机通过以太网组成分布式计算机网络通信系统,如图1所示。

2 以太网通信协议

TCP/IP协议是目前网络协议中的实际工业标准,采用TCP/IP协议会带来诸多好处,网络设备可以连接到Internet,实现风电机组真正意义上的远程监控。TCP/IP是一个4层协议系统,可以分为链路层、网络层、传输层和应用层[2]。每一层都呼叫它的下一层所提供的网络来完成自己的需求。TCP/IP协议族的4个层次如图2所示。

图1 风电机组分布式计算机网络通信系统

图2 TCP/IP协议族的4个层次

图3 PLC与上位机通信示意图

图4 UDP报文结构

链路层完成以太网设备的驱动、物理接口的处理等任务。网络层由多种协议组成,IP协议是其中最重要的一个,主要完成网络互连和路由选择。应用层则负责处理特定的应用服务。TCP/IP传输层有两个并列的协议:TCP(传输控制协议)和UDP(用户数据报协议)。二者的共同点是均提供了进程通信的能力,主要差别在于:TCP面向连接,需要建立“握手信息”,提供可靠通信保证;而UDP是一种无连接的服务。TCP较UDP占用较多系统资源。通信速度上,UDP比TCP快。UDP能够达到较高的通信速率[3]。

PLC给上位机传输的数据主要有:报文信息;总发电量、总耗电量等全局统计量;日发电量等日统计量;机组登录信息;风机状态机信息;10分钟记录值;功率曲线;故障信息等;风电场的专用以太网带宽可以保证通信质量,故选用UDP协议,加快通信速度,减轻控制器的负担。

3 UDP协议的实现

3.1 UDP报文格式

上位机向PLC发送UDP请求报文,该报文中的数据“告诉”PLC需要什么信息。PLC收到UDP请求报文后,给上位机发送UDP响应报文,该报文中含有对应的信息。其通信结构如图3。

每一个UDP报文分为UDP首部和UDP数据区两部分。UDP协议规定UDP首部由4个字段组成,且长度固定为8个字节,每个字段占2个字节。分别为源端口号,目的端口号,UDP长度以及校验和[4]。UDP数据区由开发人员定义。UDP报文结构如图4所示。

上位机向PLC发送UDP请求报文,源端口号为1026(该端口号可以根据实际情况确定,通常建议使用较大的端口号,避免与其他应用冲突),目的端口号为32768。PLC给上位机发送UDP响应报文,源端口号与目的端口号都为32768。UDP长度是指每1条UDP报文的长度。UDP校验和提供差错检测。由于PLC需要给上位机发送的数据量较大,我们将数据分为99个UDP响应报文发送;因而上位机也需要给PLC发送99个UDP请求报文,UDP请求报文和UDP响应报文一一对应。UDP请求报文长度统一为37个字节,对应UDP数据区长度为29个字节,UDP响应报文长度(共99个)各不一样。UDP请求报文数据区格式与值如表1所示(16进制表示,每格代表1个字节)。

表1前7个字节为UDP协议底层自动增加的部分,其余字节预留给上位机做标志位使用。第1个字节为PLC的标识值,值为0x 5A;第6(LL)与第7(HL)字节内的数据为UDP请求报文数据区从第8字节开始到尾部的字节数,第6字节为低位,第7字节为高位,值为0x0016。第8(高8位)和第9字节(低8位),为PLC响应并返回数据的条件(可自由定义,这里定义为0x0008,)。IF1,IF2和IF3(14~16字节)是UDP请求报文的用户标识符,可自由定义。26、27、28和29这四个字节规定了具体的UDP请求报文类型及索引。其中FCH(高8位)和FCL(低8位)为UDP请求报文类型;CIH(高8位)和CIL(低8位)为UDP请求报文类型对应的索引。一般情况下,FCH和CIH总为0,FCL和CIL的意义如表2所示,由类型值和其对应的索引值,可以得到UDP请求报文为99个,分别是1个报文信息、1个全局统计量报文、20个日统计量报文、2个登录信息报文、2个风电机组状态机报文、18个10分钟记录值报文、3个功率曲线报文和52个故障信息报文。请求报文中未说明的字节可为任意值,应用中未作处理,直接丢弃。

由表2中FCL和CIL的值,可知UDP响应报文的数量为99个。UDP响应报文数据区长度不一,前25个字节为标识值,第26字节到报文尾部为机组具体数据。UDP响应报文数据区前25个字节格式如表3所示(每格代表一个字节)。

第1~7字节为PLC系统底层自动添加。第一个字节为PLC规定的标识值,与请求报文相对应,值为5A;ID(第2~5字节)为PLC生成的标识值;LL(低8位)和HL(高8位)表明了UDP响应报文数据区从第8字节到尾部的字节数。FCL(低8位)和FCH(高8位)是指UDP报文类型,CIL(低8位)和CIH(高8位)是指UDP报文类型对应的索引,与UDP请求报文相对应。NOH(高8位)和NOL(低8位)表示由FCL所确定的某一类型响应报文的总数量;IF1,IF2和IF3是指UDP请求报文的用户标识符,PLC不做处理将其返回给上位机。DT4,DT3,DT2,DT1是指PLC系统响应时刻的时间值;AFNH(高8位)和AFNL(低8位)是PLC标识值;FNH(高8位)和FNL(低8位)标识了该UDP响应报文帧数;第25字节的值总是00,预留备用。

表1 UDP请求报文数据区格式与值

表3 UDP响应报文数据区前25个字节格式

3.2 UDP报文的传输过程

PLC和上位机所采用的操作系统都能为以太网提供良好的支持。当上位机启动应用程序时,调用UDP发送进程,把相关数据封装成一个UDP报文,并进一步组装成一个IP报文。当PLC接收到上位机发送的IP报文,它会将报文中的IP首部取出,判断IP地址是否正确,若正确则判断端口号以及UDP首部的校验和。如果上述条件都满足,说明此报文是有效的,接下来的工作就是将有效信息从报文中提取出来,按照规约进行解析即可。然后PLC会给上位机发送UDP响应报文,上位机接收后,对报文进行判断和解析[5]。图5为UDP发送-接收流程图。

图5 UDP发送-接收流程图

3.3 UDP的PLC硬件组态和核心代码段

UDP的配置主要包括硬件组态和端口设置,如图6和图7。图6是在以太网接口上添加UDP协议。图7是UDP参数设置以及端口的设置,除了端口设置之外,其他参数可以使用缺省参数。

核心代码段包括UDP接收指令和发送指令、以及UDP请求报文解析语句。

图6 UDP硬件组态一

图7 UDP硬件组态二

图8 UDP报文截图

图9 UDP请求报文

4 UDP报文捕获与分析

在风电机组分布式计算机网络通信系统中,上位机通过UDP协议从机组得到相关数据。图8是上位机与风电场某一台机组之间的UDP报文截图。PLC的IP是192.168.1.130,上位机的IP是192.168.1.138。

从图8中提取一个UDP请求报文,如图9所示。其源端口号为1026,目的端口号为32768,UDP报文长度为37个字节,其中UDP数据区为29个字节(图9灰色部分)。FCH和FCL的值分别为0x00和0x02,即请求报文的类型为0x0002;CIH和CIL的值分别是0x00和0x01,即请求报文类型的索引为0x0001。表明上位机向PLC请求全局统计量的数据。

图9对应的UDP响应报文如图10所示,其源端口号为32768,目的端口号为32768,UDP报文长度为257个字节,其中UDP数据区为249个字节(图10灰色部分)。上位机根据规约解析数据,便可得到全局统计量,包括总发电量、总耗电量、并网次数、变浆次数、偏航次数、故障次数、制动次数等。

图10 UDP响应报文

5 结语

UDP协议由于其简洁、高效性而被广泛应用。本文提出了一种基于以太网的风电机组通信系统方案。详细阐述了UDP协议的实现过程,并分析了截取的实际UDP报文。从风电场实际运行情况看,该方案高效可靠,充分发挥了以太网的优点,能够满足要求。

[1] 中国可再生能源学会风能专业委员会.2012年中国风电装机容量统计[R].2013(3):44-55.

[2] W.Richard Stevens.TCP/IP Illustrated Volume 1:The Protocol[M].北京:机械工业出版社,2000.

[3]李淑君,陈新,季宝杰.UDP协议在现场实时通信中的应[J].总线与网络,2002(4):35-38.

[4] 窦晓波,吴在钧,胡敏强,郑健勇.UDP协议在变电站自动化通信系统中的实现[J].电力自动化设备,2003(12):39-42.

[5] 王海军,刘彩霞,程东年.一种基于UDP的可靠传输协议分析与研究[J].计算机应用研究, 2005,(11):181-183.

猜你喜欢
端口号字节以太网
No.8 字节跳动将推出独立出口电商APP
基于1500以太网养猪场的智能饲喂控制系统的设计与实现
在Docker容器中安装应用程序
No.10 “字节跳动手机”要来了?
简谈MC7字节码
浅谈以java为基础的Socket通信简介及实现
谈实时以太网EtherCAT技术在变电站自动化中的应用
一种90W高功率以太网供电系统的设计
浅谈EPON与工业以太网在贵遵高速公路中的应用
Winsock编程在《计算机网络基础》教学中的应用