CN103490943A - 一种基于心跳信号的工业以太网丢包检测方法 - Google Patents
一种基于心跳信号的工业以太网丢包检测方法 Download PDFInfo
- Publication number
- CN103490943A CN103490943A CN201310280361.1A CN201310280361A CN103490943A CN 103490943 A CN103490943 A CN 103490943A CN 201310280361 A CN201310280361 A CN 201310280361A CN 103490943 A CN103490943 A CN 103490943A
- Authority
- CN
- China
- Prior art keywords
- data
- packet loss
- heartbeat
- plc
- message
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/24—Testing correct operation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种基于心跳信号的工业以太网丢包检测方法,首先要定义网络节点状态、然后以基于西门子工业以太网的Write报文和Fetch报文为基础,构建包含心跳信号的数据报文,嵌入式设备采用主动发送方式,每发送一次数据报文,心跳信号按照数据序列的顺序变化一次;PLC在接收到N个心跳信号后,要检查是否漏接心跳信号,如果有漏接将其通过Fetch报文返回给嵌入式设备,通过该模式在PLC与嵌入式设备间传递心跳包,判断双方在通信时是否丢包,然后,根据返回的心跳信号查找丢失的数据并重发。该方法不但可以减少丢包现象,而且PLC由于不需用每次接收到数据报文都检测是否存在丢包,所以大大降低了PLC的网络负担。
Description
技术领域
本发明涉及工业以太网通信领域,尤其是一种基于心跳信号的工业以太网丢包检测方法。
背景技术
工业以太网是基于IEEE802.3(Ethernet)的强大的区域和单元网络。西门子公司的ProfiNet就是以工业以太网为基础,将原有的Profibus与互联网技术结合,形成了ProfiNet的网络方案。目前,已经在国内经过了广泛的应用。ProfiNet采用标准TCP/IP十以太网作为连接介质,采用标准TCP/IP协议加上应用层的RPC/DCOM来完成节点间的通信和网络寻址。可以同时挂接传统Profibus系统和新型的智能现场设备。这使其既具有具有价格低廉、稳定可靠、通信速率高、软硬件产品丰富、应用广泛以及支持技术成熟等优点,又能兼容西门子公司基于profibus总线的设备。但是西门子公司的ProfiNet网络对非西门子公司的设备兼容性不好,其它嵌入式设备很难通过标准的TCP/IP协议与连接在ProfiNet中的PLC通信。为解决这个问题,通过使用西门子公司基于以太网的S5协议中的Fetch和Write报文,实现对PLC中RAM的直接读写。但在实际使用中,发现数据在传输中掉包明显,急需一种算法解决这些问题。
发明内容
本发明所要解决的技术问题是提供一种基于心跳信号的工业以太网丢包检测方法,不但可以减少丢包现象,而且PLC由于不需用每次接收到数据报文都检测是否存在丢包,所以大大降低了PLC的网络负担。
为解决上述技术问题,本发明的技术方案是:一种基于心跳信号的工业以太网丢包检测方法,包括以下步骤:
(1)首先,设计心跳模型,将接入ProfiNet嵌入式设备的通信状态设定为:
“通信中断”,表示未建立连接链路;
“通信丢包”,表示发现丢包正在重发;
“通信正常”,表示链路正常,心跳包收发正常;
(2)然后,由嵌入式设备向PLC发送含有心跳信号的数据报文,这个数据报文中包含用于检测数据报文是否丢包的测试数据,测试数据并不固定,每次发送心跳包时从一组连续数据序列中循环地、顺序地选取一位同时存储这次发送的数据;存储的总量不超过N个,N<=数据序列个数;
(3)当PLC收到数据报文后会将心跳信号取出存储在一个专门的数据区中,当接收到的N个数据报文后,检测这些心信号是否是这N个数据报文对应的心跳信号;
(4)如果有问题就把掉包的数据报文发回给嵌入式设备,要求其重发,否则,不做任何操作。
基于心跳信号设计数据报文,并在系统各个设备中传递心跳包,检测对方数据报文是否丢失,以便在丢失数据报文时采取相应措施保证PLC不会丢失嵌入式设备上传的关键数据。整个基于心跳机制的数据帧如下表所示:
数据位 | 设备编号 | 心跳测试位 |
在该协议中:数据位长度不定,用于表示需要传送到远端的实时数据和长度;设备编号多用于在嵌入式设备向PLC发送的心跳数据包中,用于表示嵌入式设备的ID,这里用2个字节表示;心跳测试位是用于检测连接的特定信息,心跳测试位采用了一组序列数据,这里采用数据序列0~N。
作为改进,当系统存在掉包现象,并且发送的数据报文个数达到整个数据序列个数时,要检测丢包率,当丢包率达到预先设定的限值时,要重新建立连接。
作为改进,PLC与嵌入式控制器之间的数据报文是基于西门子公司的Write报文和Fetch报文为基础的。
作为改进,PLC只需要建立一个Write服务器和Fetch服务器接收Write报文和Fetch报文。
作为改进,所述心跳帧包含:数据位、设备编号、心跳测试位。
本发明与现有技术相比所带来的有益效果是:
基于心跳信号设计数据报文,并在系统各个设备中传递心跳包,检测对方数据报文是否丢失,以便在丢失数据报文时采取相应措施保证PLC不会丢失嵌入式设备上传的关键数据。这种方式不但可以减少丢包现象,而且PLC由于不需用每次接收到数据报文都检测是否存在丢包,所以大大降低了PLC的网络负担;而且基于这种模型数据包协议具有很好的扩展性,所以该方法不但可以减少网络中的丢包问题,而且,通信传输的数据量小,可靠性高,监控端和被监控端之间不会产生无效发送数据的现象。
附图说明
图1是本发明基于以PLC为服务器端的ProfiNet系统结构图。
图2是本发明基于心跳信号的网络丢包检测的实现流程图。
具体实施方式
下面结合说明书附图对本发明作进一步说明。
一种基于心跳信号的工业以太网丢包检测方法,包括以下步骤:
(1)首先,设计心跳模型,将接入ProfiNet嵌入式设备的通信状态设定为:
“通信中断”,表示未建立连接链路;
“通信丢包”,表示发现丢包正在重发;
“通信正常”,表示链路正常,心跳包收发正常;
(2)然后,由嵌入式设备向PLC发送含有心跳信号的数据报文,这个数据报文中包含用于检测数据报文是否丢包的测试数据,测试数据并不固定,每次发送心跳包时从一组连续数据序列中循环地、顺序地选取一位同时存储这次发送的数据;存储的总量不超过N个,N<=数据序列个数;PLC与嵌入式控制器之间的数据报文是基于西门子公司的Write报文和Fetch报文为基础的;
(3)当PLC收到数据报文后会将心跳信号取出存储在一个专门的数据区中,当接收到的N个数据报文后,检测这些心信号是否是这N个数据报文对应的心跳信号;PLC只需要建立一个Write服务器和Fetch服务器接收Write报文和Fetch报文;
(4)如果有问题就把掉包的数据报文发回给嵌入式设备,要求其重发,否则,不做任何操作;
(5)当系统存在掉包现象,并且发送的数据报文个数达到整个数据序列个数时,要检测丢包率,当丢包率达到预先设定的限值时,要重新建立连接。
基于心跳信号设计数据报文,并在系统各个设备中传递心跳包,检测对方数据报文是否丢失,以便在丢失数据报文时采取相应措施保证PLC不会丢失嵌入式设备上传的关键数据。整个基于心跳机制的数据帧如下表所示:
数据位 | 设备编号 | 心跳测试位 |
在该协议中:数据位长度不定,用于表示需要传送到远端的实时数据和长度;设备编号多用于在嵌入式设备向PLC发送的心跳数据包中,用于表示嵌入式设备的ID,这里用2个字节表示;心跳测试位是用于检测连接的特定信息,心跳测试位采用了一组序列数据,这里采用数据序列0~N。
对上述方法进行举例说明,如图1所示,以PLC为服务器端的ProfiNet系统,采用C/S模式构建系统的网络结构。现场存在多个基于嵌入式系统的阀门控制器,它们一方面需用根据生产工艺要求对阀门进行控制,同时作为客户端要通过工业往远端传送实时采样的设备运行数据,以及接收从PLC发送的各种设置信息。在这个系统中,主要采用基于西门子公司的S5协议中的Fetch和Write报文,该方式可以通过网络直接访问PLC的内存,因此,PLC侧无需编程。其数据帧结构如下:
表2Fetch报文格式
如该表所示,0、1字节是s和5的ascii码,其它是16进制数。第八个字节代表是读取PLC那个内存块的数据(包括DB块、M模块等)第九个字节代表读取DB块的名称。第10、11字节访问内存的起始地址,第十二、十三字节是长度。通过发送Fetch报文,嵌入式系统通过PLC返回的报文可以得到PLC想要发送给它的数据。Write报文就是在这个基础上加上传送给PLC的数据。在这个报文的基础上,在发送给PLC的数据中加入心跳信号就可以检测网络数据在传送过程中是否掉包,如图2所示,具体过程:在参数初始化完成后,嵌入式系统开始周期性地发送含有心跳信号的Fetch和Write报文给PLC,同时将要传输给PLC的数据与对应的心跳信号存入预先划分好的缓冲区中,PLC每接收到一个Write数据报文就将对应的心跳信号存入长度为N的DB块中,而当接收到第N个Write报文后,检查这N个数据对应的心跳信号是否都接收到,如果有就在Fetch报文的返回报文中的对应字节写入一个设定好的值表示正常,反之则把丢失的报文心跳信号写入,嵌入式系统接收到这个信号后,在缓冲区中查找到对应的数据重发给PLC,当完成整个数据序列的发送完,并存在丢包现象,嵌入式系统要检查丢包率,如果丢包率高于设定值,则嵌入式系统进行重连。
Claims (5)
1.一种基于心跳信号的工业以太网丢包检测方法,其特征在于,包括以下步骤:
(1)首先,设计心跳模型,将接入ProfiNet嵌入式设备的通信状态设定为:
“通信中断”,表示未建立连接链路;
“通信丢包”,表示发现丢包正在重发;
“通信正常”,表示链路正常,心跳包收发正常;
(2)然后,由嵌入式设备向PLC发送含有心跳信号的数据报文,这个数据报文中包含用于检测数据报文是否丢包的测试数据,测试数据并不固定,每次发送心跳包时从一组连续数据序列中循环地、顺序地选取一位同时存储这次发送的数据;存储的总量不超过N个,N<=数据序列个数;
(3)当PLC收到数据报文后会将心跳信号取出存储在一个专门的数据区中,当接收到的N个数据报文后,检测这些心信号是否是这N个数据报文对应的心跳信号;
(4)如果有问题就把掉包的数据报文发回给嵌入式设备,要求其重发,否则,不做任何操作。
2.根据权利要求1所述的一种基于心跳信号的工业以太网丢包检测方法,其特征在于:当系统存在掉包现象,并且发送的数据报文个数达到整个数据序列个数时,要检测丢包率,当丢包率达到预先设定的限值时,要重新建立连接。
3.根据权利要求1所述的一种基于心跳信号的工业以太网丢包检测方法,其特征在于:PLC与嵌入式控制器之间的数据报文是基于西门子公司的Write报文和Fetch报文为基础的。
4.根据权利要求3所述的一种基于心跳信号的工业以太网丢包检测方法,其特征在于:PLC只需要建立一个Write服务器和Fetch服务器接收Write报文和Fetch报文。
5.根据权利要求1所述的一种基于心跳信号的工业以太网丢包检测方法,其特征在于:所述心跳帧包含:数据位、设备编号、心跳测试位。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310280361.1A CN103490943A (zh) | 2013-07-04 | 2013-07-04 | 一种基于心跳信号的工业以太网丢包检测方法 |
PCT/CN2013/084401 WO2015000230A1 (zh) | 2013-07-04 | 2013-11-11 | 一种基于心跳信号的工业以太网丢包检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310280361.1A CN103490943A (zh) | 2013-07-04 | 2013-07-04 | 一种基于心跳信号的工业以太网丢包检测方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103490943A true CN103490943A (zh) | 2014-01-01 |
Family
ID=49830915
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310280361.1A Pending CN103490943A (zh) | 2013-07-04 | 2013-07-04 | 一种基于心跳信号的工业以太网丢包检测方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN103490943A (zh) |
WO (1) | WO2015000230A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105717820A (zh) * | 2014-11-30 | 2016-06-29 | 中国科学院沈阳自动化研究所 | 一种auv的冗余备份检测方法 |
CN106452978A (zh) * | 2016-11-25 | 2017-02-22 | 深圳怡化电脑股份有限公司 | 一种通信异常的检测方法及装置 |
CN107807629A (zh) * | 2017-11-08 | 2018-03-16 | 江苏驷博电气有限公司 | 可编程控制系统中故障可编程逻辑控制模块的识别方法 |
WO2020125168A1 (zh) * | 2018-12-18 | 2020-06-25 | 杭州光启人工智能研究院 | 基于心跳报文数据发送和接收方法、存储介质及处理器 |
CN114095129A (zh) * | 2021-11-17 | 2022-02-25 | 厦门勇仕网络技术股份有限公司 | 一种移动端游戏网络传输的通信方法及系统 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114024576B (zh) * | 2021-09-29 | 2022-12-23 | 广东电网有限责任公司电力调度控制中心 | 一种低压电力线载波运维管控方法 |
CN114466351B (zh) * | 2022-01-24 | 2023-04-14 | 山东梅格彤天电气有限公司 | 一种通信方法、装置及基站 |
CN115695251B (zh) * | 2022-09-13 | 2024-09-06 | 浪潮云信息技术股份公司 | 自适应的心跳间隔调整方法及系统 |
CN117527638A (zh) * | 2024-01-05 | 2024-02-06 | 未势能源科技有限公司 | 通讯检测方法、装置、电子设备及存储介质 |
CN117827522B (zh) * | 2024-03-04 | 2024-05-14 | 四川零点自动化系统有限公司 | 一种输出模块的故障保护方法、设备和介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101834665A (zh) * | 2010-04-22 | 2010-09-15 | 中兴通讯股份有限公司 | Dwdm系统中以太网业务的丢包检测系统及方法 |
CN201699731U (zh) * | 2010-06-01 | 2011-01-05 | 新峤网络设备(上海)有限公司 | 丢包测试装置 |
CN102811370A (zh) * | 2011-05-31 | 2012-12-05 | 美国博通公司 | 用于流媒体的动态无线信道选择和协议控制 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7606143B2 (en) * | 2007-02-28 | 2009-10-20 | Embarq Corporation | System and method for advanced fail-over for packet label swapping |
CN101234018B (zh) * | 2008-02-26 | 2010-07-14 | 中兴通讯股份有限公司 | 心跳检测方法、系统和中央处理单元 |
CN101345663B (zh) * | 2008-08-22 | 2010-12-08 | 杭州华三通信技术有限公司 | 心跳检测方法和心跳检测设备 |
CN101594268B (zh) * | 2009-06-23 | 2011-11-23 | 中兴通讯股份有限公司 | 链路检测方法 |
CN101980468A (zh) * | 2010-12-06 | 2011-02-23 | 南京恩瑞特实业有限公司 | 网络热备数据传输方法 |
CN102857354B (zh) * | 2011-06-27 | 2018-08-03 | 南京中兴新软件有限责任公司 | 告警信息上报方法、装置及系统 |
-
2013
- 2013-07-04 CN CN201310280361.1A patent/CN103490943A/zh active Pending
- 2013-11-11 WO PCT/CN2013/084401 patent/WO2015000230A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101834665A (zh) * | 2010-04-22 | 2010-09-15 | 中兴通讯股份有限公司 | Dwdm系统中以太网业务的丢包检测系统及方法 |
CN201699731U (zh) * | 2010-06-01 | 2011-01-05 | 新峤网络设备(上海)有限公司 | 丢包测试装置 |
CN102811370A (zh) * | 2011-05-31 | 2012-12-05 | 美国博通公司 | 用于流媒体的动态无线信道选择和协议控制 |
Non-Patent Citations (3)
Title |
---|
FONSECA, N. ; SCI., BOSTON UNIV.; CROVELLA, M.: ""Bayesian packet loss detection for TCP"", 《INFOCOM 2005. 24TH ANNUAL JOINT CONFERENCE OF THE IEEE COMPUTER AND COMMUNICATIONS SOCIETIES》 * |
张世友: ""利用FETCH/WRITE方式实现PC机与S7PLC的直接通讯"", 《安徽冶金》 * |
鄢锋,桂卫华,胡志坤,冯怀成: ""一种网络节点通信控制的心跳模型"", 《信息与控制》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105717820A (zh) * | 2014-11-30 | 2016-06-29 | 中国科学院沈阳自动化研究所 | 一种auv的冗余备份检测方法 |
CN105717820B (zh) * | 2014-11-30 | 2018-08-24 | 中国科学院沈阳自动化研究所 | 一种auv的冗余备份检测方法 |
CN106452978A (zh) * | 2016-11-25 | 2017-02-22 | 深圳怡化电脑股份有限公司 | 一种通信异常的检测方法及装置 |
CN107807629A (zh) * | 2017-11-08 | 2018-03-16 | 江苏驷博电气有限公司 | 可编程控制系统中故障可编程逻辑控制模块的识别方法 |
CN107807629B (zh) * | 2017-11-08 | 2020-07-21 | 江苏驷博电气有限公司 | 可编程控制系统中故障可编程逻辑控制模块的识别方法 |
WO2020125168A1 (zh) * | 2018-12-18 | 2020-06-25 | 杭州光启人工智能研究院 | 基于心跳报文数据发送和接收方法、存储介质及处理器 |
CN114095129A (zh) * | 2021-11-17 | 2022-02-25 | 厦门勇仕网络技术股份有限公司 | 一种移动端游戏网络传输的通信方法及系统 |
CN114095129B (zh) * | 2021-11-17 | 2024-05-17 | 厦门勇仕网络技术股份有限公司 | 一种移动端游戏网络传输的通信方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2015000230A1 (zh) | 2015-01-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103490943A (zh) | 一种基于心跳信号的工业以太网丢包检测方法 | |
KR20040103367A (ko) | 홈 네트워크 시스템 | |
KR100638030B1 (ko) | 네트워크 전기 기기 | |
US20070186011A1 (en) | Industrial protocol and gateway | |
CN106209915A (zh) | 一种实时流媒体无线传输方法及其系统 | |
CN102053935A (zh) | 一种基于modbus串行通讯协议的通讯方法 | |
CN102164427A (zh) | 一种基于无线方式的物联网网关系统 | |
CN113194550B (zh) | 数据通道的构建方法、服务器及数据集群系统 | |
CN112866018A (zh) | 物联网管理系统及方法 | |
CN100534074C (zh) | 家庭网络设备 | |
CN112039791A (zh) | 一种物联网智能网关路由方法及系统 | |
EP2854350A1 (en) | System and method for cross-network data storage | |
JP2003296226A5 (zh) | ||
CN101753486B (zh) | 一种工业自动化现场总线网关设备 | |
CN104991530A (zh) | 基于can总线的通信方法及配电终端 | |
CN115514593B (zh) | 工业控制环网链路中断快速获取链路节点数据的方法 | |
CN107872309A (zh) | 一种网络传输介质和速率的自适应方法、装置及设备 | |
US9762353B2 (en) | Data packet for bidirectional transmission of data packets during data transmission between a first and a second communication appliance, and method for transmitting such a data packet | |
CN1549520A (zh) | 智能家居系统中通用简化的网关设备实现方法 | |
US20080095035A1 (en) | Home Network System | |
CN101895560A (zh) | 一种开放性二级拓扑结构的现场总线dp-net | |
CN204392243U (zh) | 一种基于G.hn标准的WIFI电力线通信模块 | |
CN219627748U (zh) | 一体化电源系统报文转发装置 | |
CN113055271B (zh) | 一种plc跨5g网络的二层转发方法 | |
CN108848099A (zh) | 一种基于反向多连接的端口映射系统及其端口映射方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140101 |
|
RJ01 | Rejection of invention patent application after publication |