一种基于ModBus数据服务功能的通信方法及系统技术方案

技术编号:25192846 阅读:26 留言:0更新日期:2020-08-07 21:19
本发明专利技术公开了一种基于ModBus数据服务功能的通信方法及系统,应用于工业自动化控制技术领域;该方法包括:客户端发送连接请求,对ModBus数据服务器分配地址空间,同时创建一个异步监听套接字函数和一个无效客户套接字函数;开启ModBus服务器,新建一个线程;客户端通过ModBus数据服务器与服务端进行数据交换和处理;客户端发送的连接请求通过所述ModBus服务器与所述服务端连接进行通信。数据传输是安全的,不会对GUS控制系统造成额外的影响,运行稳定,数据响应快速;对GUS的系统资源开销合理,不存在过多的资源浪费;在项目开发中,将开发任务降低到只负责业务逻辑的处理,提升了开发效率。

【技术实现步骤摘要】
一种基于ModBus数据服务功能的通信方法及系统
本专利技术属于工业自动化控制
,具体涉及一种基于ModBus数据服务功能的通信方法及系统。
技术介绍
由于计算技术的进步,在与仅几年前的基本类似的商务相比,当今的商务能够更有效地运行。例如,网络使得公司的职员能够通过邮件即时地通信、快速地将数据文件转移给不同职员、处理数据文件、共享与项目有关的数据以减少工作成果中的重复等。此外,技术的进步使得工厂应用变得部分或完全自动化。例如,曾经需要工作者亲身接近重型机械和其它各种危险环境的操作如今可在距其安全的距离处完成。随着工业信息化的发展,机械手常需要与工厂MES(ManufacturingExecutionSystem,制造执行系统以下简称MES)系统对接,为MES提供信息服务。而机械手除了使用IO信号来获取外部信息,利用网络通信获取信息也是常见且可靠方式。在机械手与MES的交互中,ModBus协议作为工业信息交互的重要协议被广泛的使用。在MES与机械手运动控制系统通信中,运动控制系统常常作为服务端,为MES提供例如当前产量、当前运动状态、报警信息、轴运动速度等各种数据信息。Modbus服务端对于MES的连接,要提供数据读取、写入的交互功能。在运动控制系统中,为了避免影响运动控制的工作线程,需要将ModBus数据服务放在单独的线程内通信,而服务器往往是针对多个客户端开发的,多个客户端对于资源有限的嵌入式系统来将,无疑是比较耗费资源的做法。因此,如何提供一种通信方法及系统,限制服务端的资源使用,节省运动控制器内部资源消耗,并为ModBus数据写入、读出提供多线程环境下的安全访问是本领域技术人员亟需解决的问题。
技术实现思路
有鉴于此,本专利技术提供了一种基于ModBus数据服务功能的通信方法及系统。为了实现上述目的,本专利技术采用如下技术方案:一种基于ModBus数据服务功能的通信方法,所述方法包括:S1:客户端发送连接请求,对ModBus数据服务器分配地址空间(创建一个异步监听套接字函数和一个无效客户套接字函数);S2:开启ModBus服务器,新建一个线程;S3:客户端通过ModBus数据服务器与服务端进行数据交换和处理。优选的,所述步骤S2中,采用一个以退出线程标识为条件的while循环处理线程中所有监听和通信。优选的,所述以退出线程标识为条件的while循环包括以下步骤:W1:while结束条件判断,若满足退出条件,则结束通信,退出线程;若不满足退出条件,则进入步骤W2;W2:退出事件判断,若满足退出条件,则结束通信,退出线程;若不满足退出条件,则进入步骤W3;W3:客户套接字有效性判断,若客户套接字有效,则进入步骤W4;若客户套接字无效,则进入步骤W31;W31:获取客户端连接,进行客户套接字设置,然后进入步骤W4;W4:等待时间相应,判定时间相应时间是否超过设定阈值,若未超时,事件响应进入W5;若连接超时,事件无响应,则进入W6;W5:IO事件枚举,当事件为FD_READ时,即代表服务端有可读事件发生,客户套接字开始接收数据并交给协议层,协议层获取数据后,开始解析协议,操作内存数据或者返回数据状态至服务端,服务端将返回的数据再次发送给客户端,进入W1进行推出条件判断;当事件为FD_CLOSE时,即代表服务端无可读事件发生,进入步骤W7;W6:确认连接状态,若连接未关闭,则连接有效,发送心跳包至W1,再次确认连接响应;若连接关闭,则连接失效,进入步骤W7;W7:重置客户套接字,进入监听套字函数,继续等待客户端的连接请求,进入步骤W1,再次确认连接响应。优选的,所述步骤W6中,连接状态确认有三种方式,WASEventselect的FD_CLOSE事件响应确认方式、select事件模型确认方式和心跳包的计次响应确认方式。优选的,所述步骤S1中所述连接请求包括:长连接和短连接,所述长连接为一旦连接建立,需保持稳定的连接状态,所述短连接为每一次通信完成,则结束连接,下次请求连接时再次建立连接。一种基于ModBus数据服务功能的通信系统,包括客户端、服务端和ModBus服务器;所述客户端发送的连接请求通过所述ModBus服务器与所述服务端连接进行通信;所述客户端负责发送连接请求、控制服务端操作、处理服务端返回数据;所述ModBus服务器根据连接请求,新建一个线程,实现所述客户端和所述服务端通信,其中,所述线程的所有监听和通信处理位于一个以退出线程标识为条件的while循环中;所述服务端接收所述客户端发送的控制信息,按照控制信息进行相关操作,同时将所述服务端相关操作信息返回到所述客户端。优选的,所述ModBus服务器的协议层与通信数据操作结合,将网络层与协议层和数据操作分离,可使所述客户端直接操作数据。经由上述的技术方案可知,与现有技术相比,本专利技术提供了一种基于ModBus数据服务功能的通信方法及系统,ModBus服务在单独的线程内,数据传输是安全的,不会对GUS控制系统造成额外的影响,运行稳定,数据响应快速;对GUS的系统资源开销合理,不存在过多的资源浪费;在项目开发中,将开发任务降低到只负责业务逻辑的处理,提升了开发效率。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为本专利技术ModBus服务器通信流程图;图2为本专利技术通信系统结构示意图;具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。实施例1参见附图1所示,一种基于ModBus数据服务功能的通信方法,所述方法包括:S1:客户端发送连接请求,对ModBus数据服务器分配地址空间(创建一个异步监听套接字函数和一个无效客户套接字函数);S2:开启ModBus服务器,新建一个线程;S3:客户端通过ModBus数据服务器与服务端进行数据交换和处理。在一个具体实施例中,步骤S2中,采用一个以退出线程标识为条件的while循环处理线程中所有监听和通信。在一个具体实施例中,以退出线程标识为条件的while循环包括以下步骤:W1:while结束条件判断,若满足退出条件,则结束通信,退出线程;若不满足退出条件,则进入步骤W2;W2:退出事件判断,若满足退出条件,则结束通信,退出线程;若不满足退出条件,则进入步骤W3;W3:客户本文档来自技高网
...

【技术保护点】
1.一种基于ModBus数据服务功能的通信方法,其特征在于,所述方法包括:/nS1:客户端发送连接请求,对ModBus数据服务器分配地址空间,同时创建一个异步监听套接字函数和一个无效客户套接字函数;/nS2:开启ModBus服务器,新建一个线程;/nS3:客户端通过ModBus数据服务器与服务端进行数据交换和处理。/n

【技术特征摘要】
1.一种基于ModBus数据服务功能的通信方法,其特征在于,所述方法包括:
S1:客户端发送连接请求,对ModBus数据服务器分配地址空间,同时创建一个异步监听套接字函数和一个无效客户套接字函数;
S2:开启ModBus服务器,新建一个线程;
S3:客户端通过ModBus数据服务器与服务端进行数据交换和处理。


2.根据权利要求1所述的一种基于ModBus数据服务功能的通信方法,其特征在于,所述步骤S2中,采用一个以退出线程标识为条件的while循环处理线程中所有监听和通信。


3.根据权利要求2所述的一种基于ModBus数据服务功能的通信方法,其特征在于,所述以退出线程标识为条件的while循环包括以下步骤:
W1:while结束条件判断,若满足退出条件,则结束通信,退出线程;若不满足退出条件,则进入步骤W2;
W2:退出事件判断,若满足退出条件,则结束通信,退出线程;若不满足退出条件,则进入步骤W3;
W3:客户套接字有效性判断,若客户套接字有效,则进入步骤W4;若客户套接字无效,则进入步骤W31;
W31:获取客户端连接,进行客户套接字设置,然后进入步骤W4;
W4:等待时间相应,判定时间相应时间是否超过设定阈值,若未超时,事件响应进入W5;若连接超时,事件无响应,则进入W6;
W5:IO事件枚举,当事件为FD_READ时,即代表服务端有可读事件发生,客户套接字开始接收数据并交给协议层,协议层获取数据后,开始解析协议,操作内存数据或者返回数据状态至服务端,服务端将返回的数据再次发送给客户端,进入W1进行推出条件判断;当事件为FD_CLOSE时,即代表服务端无可读事件发生,进入步骤W7;
W6:确认连接...

【专利技术属性】
技术研发人员:云杰姚科
申请(专利权)人:宁波伟立机器人科技股份有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1