CN103281287B - 基于udp协议的风力发电机组通信方法及系统 - Google Patents
基于udp协议的风力发电机组通信方法及系统 Download PDFInfo
- Publication number
- CN103281287B CN103281287B CN201210407765.8A CN201210407765A CN103281287B CN 103281287 B CN103281287 B CN 103281287B CN 201210407765 A CN201210407765 A CN 201210407765A CN 103281287 B CN103281287 B CN 103281287B
- Authority
- CN
- China
- Prior art keywords
- message
- udp
- plc
- host computer
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种基于UDP协议的风力发电机组通信方法,PLC和上位机所采用的操作系统都能为以太网提供良好的支持;当上位机启动应用程序时,调用UDP发送进程,把相关数据封装成一个UDP报文,并进一步组装成一个IP报文;当PLC接收到上位机发送的IP报文,它会将报文中的IP首部取出,判断IP地址是否正确,若正确则判断端口号以及UDP首部的校验和;如果上述条件都满足,说明此报文是有效的,接下来的工作就是将有效信息从报文中提取出来,按照规约进行解析即可;然后PLC会给上位机发送UDP响应报文,上位机接收后,对报文进行判断和解析。
Description
技术领域
本发明涉及网络通信技术领域,具体涉及一种基于UDP协议的风力发电机组通信方法及系统,选择UDP协议来完成以太网传输任务,建立风电机组的现场快速通信系统。
背景技术
TCP/IP协议是目前网络协议中的实际工业标准,采用TCP/IP协议会带来诸多好处,网络设备可以连接到Internet,实现风力发电机组真正意义上的远程监控。TCP/IP是一个四层协议系统,可以分为链路层、网络层、传输层和应用层。
链路层完成以太网设备的驱动、物理接口的处理等任务。网络层由多种协议组成,IP协议是其中最重要的一个,主要完成网际互连和路由选择。应用层则负责处理特定的应用服务。TCP/IP传输层有两个并列的协议:TCP(传输控制协议)和UDP(用户数据包协议)。二者的共同点是均提供了进程通信的能力,主要差别在于:TCP面向连接,需要建立“握手信息”,提供可靠通信保证,在TCP数据传输中,高层,高层数据以字节流的形式传递给TCP,字节流被TCP缓冲区缓存,积累到一定长度才启动一次发送操作;而UDP是一种无连接的服务,每个UDP分组都是独立的数据单元,不提供报文顺序、流控制、差错检查、优先级等控制,传输中,上层传递给UDP的是对应于UDP数据包的数据块。
现有风力发电机组通信系统一般采用TCP/IP协议,虽然TCP协议中植入了各种安全保障功能,TCP面向连接,需要建立“握手信息”,在实际执行的过程中会占用大量的系统资源,无疑使速度受到严重的影响。反观UDP由于排除了信息可靠传递机制,将安全和排序等功能移交给上层应用来完成,极大降低了执行时间,使速度得到了保证。
UDP协议作为一个高效率数据传输协议,被广泛应用在数据交换频繁、数据传输量庞大的工业系统通信中,但是经初步检索,尚未发现在风力发电领域应用UDP协议的技术方案。申请号为200810227059.9的中国发明专利公开了一种基于UDP协议的实时数据通讯方法。其技术方案是,先将待发送的数据在发送端或者转发端分成批次数据;之后将每批次数据拆分成UDP数据包组,将UDP数据包发送到接收端,并由接收端发起接收线程,根据UDP数据包中的采集时间与接收缓冲区记载的采集时间,决定将UDP数据包拷贝到该接收缓冲区或者将接收缓冲区清空或者将UDP数据包抛弃;最后,当接收缓冲区中的UDP数据包的总数达到该批次数据的组数时,根据UDP数据包的组号和数据区大小,将UDP数据包组装成完整的批次数据。上述专利公开的基于UDP协议的实时数据通讯方法,其请求报文和响应报文是通过时间参数建立对应关系,与本发明采用的技术方案不一样。
发明内容
针对现有风力发电机组通信系统采用的TCP/IP协议通信速度慢、占用系统资源多的缺陷,本发明提供一种基于UDP协议的风力发电机组通信方法及系统,选择UDP协议来完成以太网任务,建立了快速的现场通信系统,通信性能优越。
本发明采用的技术方案是:
一种基于UDP协议的风力发电机组通信方法,在风力发电机组的PLC和上位机之间采用UDP协议进行数据通信,包括以下步骤:
S1、开始,上位机启动应用程序,调用UDP发送进程,将数据请求信息封装成一个UDP请求报文,并进一步组装成一个IP报文,发送到PLC;
S2、PLC接收上位机发送的IP报文,并判断其IP地址、端口号以及UDP请求报文首部的校验和,如果全部判断正确,说明此IP报文有效,则PLC解析该IP报文,并进入步骤S3,如果其中任意一个判断错误,说明此IP报文无效,则PLC将此IP报文丢弃,并等待下一个IP报文;
S3、有效的IP报文经PLC解析后,PLC读取其中的数据请求信息,了解上位机的数据请求需要,将上位机需要的数据打包封装成UDP响应报文,并进一步组装成IP报文,发送给上位机;
S4、上位机调用UDP接收进程,接收PLC发过来的IP报文,判断该IP报文的IP地址、端口号以及UDP响应报文首部的校验和,如过全部判断正确,则上位机解析该IP报文并进一步解析UDP响应报文,得到上位机所需数据,如果判断其中任意一个出现错误,则上位机丢弃该IP报文,一个通信周期结束。
进一步地,PLC将数据分为多个UDP响应报文发送,上位机给PLC发送相应数量的UDP请求报文,UDP请求报文和UDP响应报文一一对应。
进一步地,步骤S2中,PLC接收上位机发送的IP报文的具体过程为:包含UDP请求报文的IP报文先进入PLC接收缓冲区,判断其IP地址、端口号以及UDP报文首部的校验和,如果判断成功,则该IP报文进入PLC的接收区进行解析,如果判断其中任意一个出错,则PLC将该IP报文丢弃。
进一步地,步骤S2中,所述有效的IP报文在解析之前,要判断其UDP请求报文类型和索引,如果判断正确,则对该IP报文进行解析,如果其中任意一个出现错误,则丢弃该IP报文。
进一步地,所述UDP请求报文中UDP首部的源端口号为1000以上,避免与其他应用冲突。
进一步地,所述UDP请求报文中UDP数据区包括UDP协议底层自动增加的部分、PLC响应并返回数据条件、具体的UDP请求报文类型及索引,所述具体的UDP请求报文类型及索引包括报文信息、全局统计量、日统计量、登录信息、风机状态机、十分钟记录值、功率曲线和故障信息。
进一步地,所述UDP响应报文包括PLC系统底层自动添加的部分、PLC生成的标识值及与UDP请求报文相对应的请求数据信息。
本发明的有益效果在于:1)首次将UDP协议应用于风电机组的通信,替换原有的TCP/IP协议,通信速度更快,占用资源更少,整个系统的性能得到提高;2)在具体的通信过程中采用多次应答校验机制,克服了UDP通信准确率低的缺点,且对通信速度影响不大;3)从风场实际运行情况看,本发明通信方案高效可靠,充分发挥了以太网的优点,能够满足要求。
附图说明
图1是本发明所述基于UDP协议的风力发电机组通信方法的流程图;
图2是本发明所述UDP报文在上位机与下位机之间的通信之意图;
图3是本发明所述UDP报文结构示意图。
具体实施方式
下面结合附图和具体实施方式来进一步阐述本发明的技术方案。
本发明采用的技术方案是:
如图1所示,一种基于UDP协议的风力发电机组通信方法,在风力发电机组的PLC和上位机之间采用UDP协议进行数据通信,包括以下步骤:
S1、开始,上位机启动应用程序,调用UDP发送进程,将数据请求信息封装成一个UDP请求报文,并进一步组装成一个IP报文,发送到PLC;
S2、PLC接收上位机发送的IP报文,并判断其IP地址、端口号以及UDP请求报文首部的校验和,如果全部判断正确,说明此IP报文有效,则PLC解析该IP报文,并进入步骤S3,如果其中任意一个判断错误,说明此IP报文无效,则PLC将此IP报文丢弃,并等待下一个IP报文;
S3、有效的IP报文经PLC解析后,PLC读取其中的数据请求信息,了解上位机的数据请求需要,将上位机需要的数据打包封装成UDP响应报文,并进一步组装成IP报文,发送给上位机;
S4、上位机调用UDP接收进程,接收PLC发过来的IP报文,判断该IP报文的IP地址、端口号以及UDP响应报文首部的校验和,如过全部判断正确,则上位机解析该IP报文并进一步解析UDP响应报文,得到上位机所需数据,如果判断其中任意一个出现错误,则上位机丢弃该IP报文,一个通信周期结束。
作为本发明通信方法的进一步实施方式,由于PLC需要给上位机发送的数据量较大,PLC将数据分为多个UDP响应报文发送,上位机也需要给PLC发送相应数量的UDP请求报文,UDP请求报文和UDP响应报文一一对应。
作为本发明通信方法的进一步实施方式,步骤S2中,PLC接收上位机发送的IP报文的具体过程为:包含UDP请求报文的IP报文先进入PLC接收缓冲区,判断其IP地址、端口号以及UDP报文首部的校验和,如果判断成功,则该IP报文进入PLC的接收区进行解析,如果判断其中任意一个出错,则PLC将该IP报文丢弃。
作为本发明通信方法的进一步实施方式,步骤S2中,所述有效的IP报文在解析之前,要判断其UDP请求报文类型和索引,如果判断正确,则对该IP报文进行解析,如果其中任意一个出现错误,则丢弃该IP报文。
作为本发明通信方法的进一步实施方式,所述UDP请求报文中UDP首部的源端口号为1000以上,避免与其他应用冲突。
作为本发明通信方法的进一步实施方式,所述UDP请求报文中UDP数据区包括UDP协议底层自动增加的部分、PLC响应并返回数据条件、具体的UDP请求报文类型及索引,所述具体的UDP请求报文类型及索引包括报文信息、全局统计量、日统计量、登录信息、风机状态机、十分钟记录值、功率曲线和故障信息。
作为本发明通信方法的进一步实施方式,所述UDP响应报文包括PLC系统底层自动添加的部分、PLC生成的标识值及与UDP请求报文相对应的请求数据信息。
实施例:
上位机向PLC发送UDP请求报文,该报文中的数据“告诉”PLC需要什么信息,PLC收到UDP请求报文后,给上位机发送UDP响应报文,该报文中含有对应的信息,其通信结构如图2。
UDP报文结构如图3所示,每一个UDP报文分为UDP首部和UDP数据区两部分,UDP协议规定UDP首部由4个字段组成,且长度固定为8个字节,每个字段占两个字节,分别为源端口号,目的端口号,UDP长度以及校验和,UDP数据区由开发人员定义。
上位机向PLC发送UDP请求报文,源端口号为1026(该端口号可以根据实际情况确定,通常使用1000以上的端口号,避免与其他应用冲突),目的端口号为32768;PLC给上位机发送UDP响应报文,源端口号与目的端口号都为32768;UDP长度是指每一条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的标识值,值为0x5A;第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个十分钟记录值报文、3个功率曲线报文和52个故障信息报文。
表2
由表2中FCL和CIL的值,可知UDP响应报文的数量与UDP请求报文的数量一样,为99个,UDP响应报文数据区长度不一,前25个字节为标识值,第26字节到报文尾部为风机具体数据。UDP响应报文数据区前25个字节格式如表3所示(每格代表一个字节)。
表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所示,PLC和上位机所采用的操作系统都能为以太网提供良好的支持;当上位机启动应用程序时,调用UDP发送进程,把相关数据封装成一个UDP报文,并进一步组装成一个IP报文;当PLC接收到上位机发送的IP报文,它会将报文中的IP首部取出,判断IP地址是否正确,若正确则判断端口号以及UDP首部的校验和;如果上述条件都满足,说明此报文是有效的,接下来的工作就是将有效信息从报文中提取出来,按照规约进行解析即可;然后PLC会给上位机发送UDP响应报文,上位机接收后,对报文进行判断和解析。
上述实施方式和实施例仅为本发明的优选实施方式和实施例,仅用于进一步说明本发明的技术方案,而不对本发明作任何限制,本领域普通技术人员在不脱离本发明实质及技术启示下所作的不具新颖性和创造性的变形和润湿,均应视为在本发明的保护范围之内,本发明的保护范围具体视其权利要求书而定。
Claims (6)
1.一种基于UDP协议的风力发电机组通信方法,其特征在于,在风力发电机组的PLC和上位机之间采用UDP协议进行数据通信,包括以下步骤:
S1、开始,上位机启动应用程序,调用UDP发送进程,将数据请求信息封装成一个UDP请求报文,并进一步组装成一个IP报文,发送到PLC;
S2、PLC接收上位机发送的IP报文,并判断其IP地址、端口号以及UDP请求报文首部的校验和,如果全部判断正确,说明此IP报文有效,则PLC解析该IP报文,并进入步骤S3,如果其中任意一个判断错误,说明此IP报文无效,则PLC将此IP报文丢弃,并等待下一个IP报文;
S3、有效的IP报文经PLC解析后,PLC读取其中的数据请求信息,了解上位机的数据请求需要,将上位机需要的数据打包封装成UDP响应报文,并进一步组装成IP报文,发送给上位机;
S4、上位机调用UDP接收进程,接收PLC发过来的IP报文,判断该IP报文的IP地址、端口号以及UDP响应报文首部的校验和,如果全部判断正确,则上位机解析该IP报文并进一步解析UDP响应报文,得到上位机所需数据,如果判断其中任意一个出现错误,则上位机丢弃该IP报文,一个通信周期结束;
其中步骤S2中,所述有效的IP报文在解析之前,要判断其UDP请求报文类型和索引,如果判断正确,则对该IP报文进行解析,如果其中任意一个出现错误,则丢弃该IP报文。
2.根据权利要求1所述一种基于UDP协议的风力发电机组通信方法,其特征在于,PLC将数据分为多个UDP响应报文发送,上位机给PLC发送相应数量的UDP请求报文,UDP请求报文和UDP响应报文一一对应。
3.根据权利要求1所述一种基于UDP协议的风力发电机组通信方法,其特征在于,步骤S2中,PLC接收上位机发送的IP报文的具体过程为:包含UDP请求报文的IP报文先进入PLC接收缓冲区,判断其IP地址、端口号以及UDP报文首部的校验和,如果判断成功,则该IP报文进入PLC的接收区进行解析,如果判断其中任意一个出错,则PLC将该IP报文丢弃。
4.根据权利要求1所述一种基于UDP协议的风力发电机组通信方法,其特征在于,所述UDP请求报文中UDP首部的源端口号为1000以上,避免与其他应用冲突。
5.根据权利要求1所述一种基于UDP协议的风力发电机组通信方法,其特征在于,所述UDP请求报文中UDP数据区包括UDP协议底层自动增加的部分、PLC响应并返回数据条件、具体的UDP请求报文类型及索引,所述具体的UDP请求报文类型及索引包括报文信息、全局统计量、日统计量、登录信息、风机状态机、十分钟记录值、功率曲线和故障信息。
6.根据权利要求1所述一种基于UDP协议的风力发电机组通信方法,其特征在于,所述UDP响应报文包括PLC系统底层自动添加的部分、PLC生成的标识值及与UDP请求报文相对应的请求数据信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210407765.8A CN103281287B (zh) | 2012-10-24 | 2012-10-24 | 基于udp协议的风力发电机组通信方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210407765.8A CN103281287B (zh) | 2012-10-24 | 2012-10-24 | 基于udp协议的风力发电机组通信方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103281287A CN103281287A (zh) | 2013-09-04 |
CN103281287B true CN103281287B (zh) | 2016-03-30 |
Family
ID=49063737
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210407765.8A Expired - Fee Related CN103281287B (zh) | 2012-10-24 | 2012-10-24 | 基于udp协议的风力发电机组通信方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103281287B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109561094B (zh) * | 2018-12-06 | 2021-06-11 | 国网辽宁省电力有限公司锦州供电公司 | 使用风力级别改变电量采集数据报文头结构的方法 |
CN111123826A (zh) * | 2019-12-26 | 2020-05-08 | 浙江机电职业技术学院 | 数据传输方法、装置及电子设备 |
CN113271287A (zh) * | 2020-02-17 | 2021-08-17 | 西安诺瓦星云科技股份有限公司 | 终端设备连接方法及装置 |
CN112114294A (zh) * | 2020-09-24 | 2020-12-22 | 北京无线电测量研究所 | 一种雷达目标模拟器的控制方法及系统 |
CN112950150A (zh) * | 2021-02-04 | 2021-06-11 | 上海中通吉网络技术有限公司 | 智能扫描设备和系统 |
CN114070877B (zh) * | 2021-11-18 | 2023-10-20 | 北京云上曲率科技有限公司 | 基于用户数据报协议的数据传输方法、服务端及客户端 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101159387A (zh) * | 2007-11-12 | 2008-04-09 | 辽宁华冶集团发展有限公司 | 智能监控风力箱式变电站 |
CN101420423A (zh) * | 2007-10-26 | 2009-04-29 | 株式会社日立制作所 | 网络系统 |
CN102354191A (zh) * | 2011-09-06 | 2012-02-15 | 中联重科股份有限公司 | 一种用于与plc进行通信的方法及上位机 |
-
2012
- 2012-10-24 CN CN201210407765.8A patent/CN103281287B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101420423A (zh) * | 2007-10-26 | 2009-04-29 | 株式会社日立制作所 | 网络系统 |
CN101159387A (zh) * | 2007-11-12 | 2008-04-09 | 辽宁华冶集团发展有限公司 | 智能监控风力箱式变电站 |
CN102354191A (zh) * | 2011-09-06 | 2012-02-15 | 中联重科股份有限公司 | 一种用于与plc进行通信的方法及上位机 |
Non-Patent Citations (4)
Title |
---|
UDP协议在变电站自动化通信系统中的实现;窦晓波等;《电力自动化设备》;20031225;第23卷(第12期);第39-42页 * |
UDP协议在现场实时通信中的应用;李淑君等;《自动化与仪表》;20040725(第4期);第35-38页正文第4.2节,第5.2节,图3 * |
一种基于UDP的可靠传输协议分析与研究;王海军等;《计算机应用研究》;20051110(第11期);第181-183页正文第1部分 * |
基于_NET的上位机与PLC以太网通信的实现;刘大千等;《控制工程》;20100520(第S2期);第180-182页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103281287A (zh) | 2013-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103281287B (zh) | 基于udp协议的风力发电机组通信方法及系统 | |
CN103078895B (zh) | 一种基于mcf52233芯片的工业以太网多功能双串口服务器 | |
CN106411907A (zh) | 一种数据传输方法和系统 | |
CN104158627B (zh) | 一种异构链路多协议的自动识别系统和方法 | |
CN102624738B (zh) | 一种串口服务器、协转芯片及数据传输方法 | |
CN112822276B (zh) | 一种变电站站控层通信方法、系统、电子设备及存储介质 | |
CN102946260B (zh) | 自动抄表系统及其通信链路质量检测方法 | |
CN101986648A (zh) | 一种tcp选项的协商方法、装置及网络设备 | |
CN106506347B (zh) | 一种用于空管系统的多协议数据通信网关设备 | |
CN108860218B (zh) | 一种列车健康状态信息监测无线网关装置及其工作方法 | |
WO2013183649A1 (ja) | 通信装置、通信システム、通信方法及びプログラム | |
JP2021505020A (ja) | フレーム集約方法、ネットワーク設定フレーム送信方法およびデバイス | |
CN113162931A (zh) | 一种在广域网传输Modbus RTU协议的方法 | |
CN102868613A (zh) | 一种通用路由封装隧道报文发送方法和装置 | |
CN115118663B (zh) | 结合带内网络遥测获取网络拥塞信息的方法 | |
CN103067238A (zh) | 一种兼容于modbus总线的数据采集方法 | |
CN102438017A (zh) | 基于路由功能的Modbus和BACnet Ethernet协议转化装置及转化方法 | |
CN105284083B (zh) | OpenFlow设备与IP网络设备通信的方法、装置和系统 | |
CN106292518A (zh) | 远程plc监控和调试系统及方法 | |
CN102255800A (zh) | Can总线上ip数据包和can消息之间数据格式相互转换的方法 | |
CN101388570A (zh) | 变电站自动化系统数据流快速可靠交互方法 | |
CN110086669A (zh) | 一种基于zynq的网络发包机 | |
CN101047620B (zh) | 快速处理报文的装置及方法 | |
CN103428677B (zh) | 分组业务数据的发送方法及信令信道发送信息的接收方法 | |
CN115277450B (zh) | 基于opnet的虚实结合异构通信网络融合系统及应用 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160330 Termination date: 20191024 |
|
CF01 | Termination of patent right due to non-payment of annual fee |