基于Modbus协议的同步通信方法、系统及终端设备技术方案

技术编号:26031051 阅读:47 留言:0更新日期:2020-10-23 21:08
本发明专利技术适用于通信技术领域,提供了一种基于Modbus协议的同步通信方法、系统及终端设备,上述方法包括:当第一线程接收到同步通信任务时,封锁同步闸门;比较当前时刻与上一次同步通信任务的完成时刻的时间间隔是否大于或等于预设间隔时间;若时间间隔大于或等于预设间隔时间,则初始化回调对象,回调对象用于监听是否有回调消息注入;将请求报文发送至接收设备;当回调对象监听到回调消息注入时,打开同步闸门,回调消息包括接收设备接收到请求报文后反馈的响应报文。本发明专利技术可以实现基于Modbus协议的同步通信,解决异步串行通信存在的信息不匹配的问题,能够实现请求报文和响应报文的一一匹配。

【技术实现步骤摘要】
基于Modbus协议的同步通信方法、系统及终端设备
本专利技术属于通信
,尤其涉及一种基于Modbus协议的同步通信方法、系统及终端设备。
技术介绍
Modbus协议是一种串行通信协议,已经成为工业领域通信协议的业界标准,并且现在是工业电子设备之间常用的连接方式。目前,基于Modbus的通信方式通常是异步通信,但是,由于异步通信的请求报文和响应报文无法精确匹配,导致异步串行通信存在信息不匹配的问题。
技术实现思路
有鉴于此,本专利技术实施例提供了一种基于Modbus协议的同步通信方法、系统及终端设备,以解决现有技术中由于异步通信的请求报文和响应报文无法精确匹配,导致异步串行通信存在信息不匹配的问题。本专利技术实施例的第一方面提供了一种基于Modbus协议的同步通信方法,包括:当第一线程接收到同步通信任务时,封锁同步闸门;比较当前时刻与上一次同步通信任务的完成时刻的时间间隔是否大于或等于预设间隔时间;若时间间隔大于或等于预设间隔时间,则初始化回调对象,回调对象用于监听是否有回调消息注入;将请求报文发送至接收设备;当回调对象监听到回调消息注入时,打开同步闸门,回调消息包括接收设备接收到请求报文后反馈的响应报文。本专利技术实施例的第二方面提供了一种基于Modbus协议的同步通信系统,包括:同步闸门封锁模块,用于当第一线程接收到同步通信任务时,封锁同步闸门;比较模块,用于比较当前时刻与上一次同步通信任务的完成时刻的时间间隔是否大于或等于预设间隔时间;初始化模块,用于若时间间隔大于或等于预设间隔时间,则初始化回调对象,回调对象用于监听是否有回调消息注入;发送模块,用于将请求报文发送至接收设备;同步闸门打开模块,用于当回调对象监听到回调消息注入时,打开同步闸门,回调消息包括接收设备接收到请求报文后反馈的响应报文。本专利技术实施例的第三方面提供了一种终端设备,包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现如第一方面所述基于Modbus协议的同步通信方法的步骤。本专利技术实施例的第四方面提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被一个或多个处理器执行时实现如第一方面所述基于Modbus协议的同步通信方法的步骤。本专利技术实施例与现有技术相比存在的有益效果是:本专利技术实施例在第一线程接收到同步通信任务时,封锁同步闸门,用于限制多线程的多请求任务在同一时刻智能完成依次同步闭环请求,即多个线程在同一时刻只有一个线程能够完成同步通信任务,从而保障请求报文和响应报文的一致性;通过比较当前时刻与上一次同步通信任务的完成时刻的时间间隔是否大于或等于预设间隔时间,若是,则继续执行接下来的任务,可以进一步保证请求报文和响应报文的一致性;另外,通过回调对象监听是否有回调消息注入,若有,则打开同步闸门,以便于其它线程可以执行同步通信任务,通过本专利技术实施例提供的方法,可以实现基于Modbus协议的同步通信,解决异步串行通信存在的信息不匹配的问题,能够实现请求报文和响应报文的一一匹配。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术一实施例提供的基于Modbus协议的同步通信方法的实现流程示意图;图2是本专利技术一实施例提供的基于Modbus协议的同步通信系统的结构示意图;图3是本专利技术一实施例提供的终端设备的结构示意图。具体实施方式以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本专利技术实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本专利技术。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本专利技术的描述。为了说明本专利技术所述的技术方案,下面通过具体实施例来进行说明。图1是本专利技术一实施例提供的基于Modbus协议的同步通信方法的实现流程示意图,为了便于说明,仅示出了与本专利技术实施例相关的部分。本专利技术实施例的执行主体可以是终端设备,终端设备可以是发送信息的发送设备,终端设备向接收设备发送请求报文,在接收到接收设备的响应报文之后才会再次发送下一条请求报文,从而实现同步通信。当客户端向服务器发送请求报文时,终端设备为客户端,接收设备为服务器;当服务器向客户端发送请求报文时,终端设备为服务器,接收设备为客户端。如图1所示,上述基于Modbus协议的同步通信方法可以包括如下步骤:S101:当第一线程接收到同步通信任务时,封锁同步闸门。在本专利技术实施例中,第一线程可以是任意一个线程。当第一线程接收到同步通信任务时,封锁同步闸门。同步闸门可以用于限制多线程的多请求任务在同一时刻只能完成一次同步闭环请求,保障请求和响应的报文一致性,即保障了多线程下同一时刻只能完成一次同步请求。当执行同步通信任务时,封锁同步闸门,当同步通信任务执行完毕后,打开同步闸门。S102:比较当前时刻与上一次同步通信任务的完成时刻的时间间隔是否大于或等于预设间隔时间。其中,预设间隔时间可以根据实际需求进行设置,例如可以设置为200毫秒。在本专利技术实施例中,计算当前时刻与上一次同步通信任务的完成时刻的时间间隔。通过比较该时间间隔与预设间隔时间的大小来确定是否继续执行同步通信任务。具体地,在每次同步通信任务完成时,均会计算同步通信任务完成时刻的时间戳,以便于之后用于计算时间间隔。若首次执行同步通信任务,则默认时间间隔大于或等于预设间隔时间。可选地,在S102的执行过程中,可以引入一个同步间隔代理器的抽象接口,可以根据实际情况,将时间间隔代理相关的操作,通过本地或中间代理实现,使用中间代理的方式,可以实现进程、容器或服务器以上的隔离,保证时间戳的稳定性。在本专利技术的一个实施例中,在上述S102之后,上述基于Modbus协议的同步通信方法还可以包括如下步骤:若时间间隔小于预设间隔时间,则将第一线程挂起,直至时间间隔大于或等于预设间隔时间,将第一线程唤醒。在本专利技术实施例中,若时间间隔小于预设间隔时间,则将第一线程挂起,暂不执行同步通信任务,等到时间间隔大于或等于间隔时间时,将第一线程唤醒,继续执行同步通信任务,可以进一步保证请求报文和响应报文的一致性。S103:若时间间隔大于或等于预设间隔时间,则初始化回调对象,回调对象用于监听是否有回调消息注入。在本专利技术实施例中,若时间间隔大于或等于预设间隔时间,则初始化一个回调对象,用来监听是否有回调消息注入。其中,回调消息包括接收设备接收到请求报文后反馈的响应报文。可选地,回调对本文档来自技高网...

【技术保护点】
1.一种基于Modbus协议的同步通信方法,其特征在于,包括:/n当第一线程接收到同步通信任务时,封锁同步闸门;/n比较当前时刻与上一次同步通信任务的完成时刻的时间间隔是否大于或等于预设间隔时间;/n若所述时间间隔大于或等于所述预设间隔时间,则初始化回调对象,所述回调对象用于监听是否有回调消息注入;/n将请求报文发送至接收设备;/n当所述回调对象监听到回调消息注入时,打开所述同步闸门,所述回调消息包括接收设备接收到所述请求报文后反馈的响应报文。/n

【技术特征摘要】
1.一种基于Modbus协议的同步通信方法,其特征在于,包括:
当第一线程接收到同步通信任务时,封锁同步闸门;
比较当前时刻与上一次同步通信任务的完成时刻的时间间隔是否大于或等于预设间隔时间;
若所述时间间隔大于或等于所述预设间隔时间,则初始化回调对象,所述回调对象用于监听是否有回调消息注入;
将请求报文发送至接收设备;
当所述回调对象监听到回调消息注入时,打开所述同步闸门,所述回调消息包括接收设备接收到所述请求报文后反馈的响应报文。


2.根据权利要求1所述的基于Modbus协议的同步通信方法,其特征在于,在所述初始化回调对象之后,还包括:
创建超时监听器,所述超时监听器用于若在预设时间内,所述回调对象未监听到回调消息注入,则向所述回调对象中注入超时对象。


3.根据权利要求2所述的基于Modbus协议的同步通信方法,其特征在于,在所述将请求报文发送至接收设备之后,还包括:
若所述回调对象监听到超时对象注入,则跳转至所述将请求报文发送至接收设备的步骤循环执行,直至所述回调对象监听到回调消息注入或所述回调对象监听到超时对象注入的次数达到预设次数;
若所述回调对象监听到超时对象注入的次数达到所述预设次数,则打开所述同步闸门。


4.根据权利要求1所述的基于Modbus协议的同步通信方法,其特征在于,在所述比较当前时刻与上一次同步通信任务的完成时刻的时间间隔是否大于或等于预设间隔时间之后,还包括:
若所述时间间隔小于所述预设间隔时间,则将所述第一线程挂起,直至所述时间间隔大于或等于所述预设间隔时间,将所述第一线程唤醒。


5.根据权利要求1所述的基于Modbus协议的同步通信方法,其特征在于,当所述回调对象处于监听状态时,所...

【专利技术属性】
技术研发人员:陈闽洪林琛强蒙珊珊
申请(专利权)人:厦门科灿信息技术有限公司科华恒盛股份有限公司
类型:发明
国别省市:福建;35

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

1