一种Socket通讯检测方法与流程

文档序号:25086474发布日期:2021-05-18 19:42阅读:127来源:国知局
一种Socket通讯检测方法与流程
一种socket通讯检测方法
技术领域
1.本发明属于通讯检测技术领域,具体涉及一种socket通讯检测方法。


背景技术:

2.现今工业自动化环境下,工业以太网已成为自动化设备的标配通讯方式。虽然都是基于以太网的设备,但各品牌厂商开发出的以太网通讯协议具有较大差别,具有不同的通讯规约。各个厂商之间也比较保守,不具备简单的互通性。厂商在考虑到市场推广和成本控制的情况下,并不是所有设备均具有较全面的工业以太网协议。且工业自动化环境下,各厂商的产品线存在百花齐放的情形。
3.设备原始制造商在购买不同厂商的产品进行设备集成,遇到数据交换的情形时,若双方产品是不同的工业以太网协议,在通讯时不能互相以常规的方式添加为设备。但由于大部分工业以太网协议网络层均基于tcp/ip或udp/ip,因此主流厂商在考虑到设备信息交换时,加入了此种方式的支持。
4.tcp/ip或udp/ip统称为socket通讯,只能以收发ascii码的方式,进行简单的数据交换。常规的socket通讯过程分为几个部分,一是建立连接过程,创建socket接口

接受socket

打开socket连接;二是读取或写入过程,读取过程为读取请求

检测超时

接受数据

数据解析,发送过程为数据打包

发送请求

发送数据

检测超时,一般来说读取与发送可同时进行。
5.但socket通讯中,读取数据与发送数据是开环的,一方发送数据成功并不会去检测另一方接收状态,一方接收数据成功也不会告诉另一方已完成接收。在现实使用中,存在潜在风险。


技术实现要素:

6.本发明所要解决的技术问题是针对上述现有技术的不足,提供一种socket通讯检测方法,适用于可编程逻辑控制器(plc)和支持tcp/ip设备之间的以太网通讯,通过信号心跳检测,判断是否建立有效通讯的方式,适用于大部分工业以太网环境,兼容大部分二层或三层交换机。
7.为实现上述技术目的,本发明采取的技术方案为:
8.一种socket通讯检测方法,包括:
9.步骤1、发送端:设置发送区域,发送区域内预先录入的固定字符;
10.步骤2、接收端:设置接收区域,形式同发送端的发送区域;
11.接收端进行心跳信号检测,根据等待时间内是否接收到发送端发送的固定字符判断是否为故障状态。
12.为优化上述技术方案,采取的具体措施还包括:
13.上述的发送端从上电开始,每隔一个时间,周期发送固定的字符。
14.上述的接收端每隔一段时间,周期清空接收区域。
15.上述的接收端,当接收到固定字符时,重置等待时间,清空接收区域。
16.上述的接收端,在等待时间内,接收区域为空时,判断为发送端与接收端之间通讯故障,输出为故障状态并保持;
17.当接收到固定字符时,重置通讯故障。
18.上述的接收端进行心跳信号检测,具体为:
19.判断等待时间内是否接收到发送端发送的固定字符,若是,则重置等待时间以及重置故障状态为0,并重新判断等待时间内是否接收到发送端发送的固定字符,否则计时等待时间并保持故障状态为1,故障状态为0表示无通讯故障,故障状态为1表示通讯故障。
20.本发明具有以下有益效果:
21.本发明提供了一种检测socket通讯连接稳定性的方法,支持此类通讯的可编程逻辑控制器主流品牌一般有罗克韦尔、西门子、施耐德、三菱,从小型机到大型机基本都支持,其编程软件里,一般内置了socket通讯指令或功能块,所以不用担心开发的问题。同时支持tcp/ip的现场设备一般都有手册说明,会具体说明数据打包形式以及数据解析方法。
附图说明
22.图1为本发明方法流程图;
23.图2为本发明接收端心跳信号检测逻辑。
具体实施方式
24.以下结合附图对本发明的实施例作进一步详细描述。
25.参见图1,一种socket通讯检测方法,包括:
26.步骤1、发送端:设置发送区域,发送区域内预先录入的固定字符;
27.步骤2、接收端:设置接收区域,形式同发送端的发送区域;
28.接收端进行心跳信号检测,根据等待时间内是否接收到发送端发送的固定字符判断是否为故障状态。
29.实施例中,所述发送端从上电开始,每隔一个时间,周期发送固定的字符。
30.实施例中,所述接收端每隔一段时间,周期地清空接收区域。
31.实施例中,所述接收端,当接收到固定字符时,初始化等待时间t,清空接收区域。
32.实施例中,所述接收端,在经过等待时间t后,若接收区域为空,判断为发送端与接收端之间通讯故障,将故障状态f置为1并保持;
33.当接收到固定字符时,判断通讯恢复,将故障状态f置为0。
34.参见图2,实施例中,接收端进行心跳信号检测,具体为:
35.接受端实时接收字符,如果接收到发送端发送的固定字符,则初始化等待时间,并将故障状态置为0,并进行下一周期的判断,经过等待时间后判断是否接收到发送端发送的固定字符,若接收到了固定字符,则通讯恢复,若未接收到固定字符,则有通讯故障。
36.故障状态f为0表示无通讯故障,故障状态f为1表示有通讯故障。
37.本发明提供了一种检测socket通讯连接稳定性的方法,支持此类通讯的可编程逻辑控制器主流品牌一般有罗克韦尔、西门子、施耐德、三菱,从小型机到大型机基本都支持,其编程软件里,一般内置了socket通讯指令或功能块,所以不用担心开发的问题。同时支持
tcp/ip的现场设备一般都有手册说明,会具体说明数据打包形式以及数据解析方法。
38.以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1