一种通信控制方法、装置及服务端设备与流程

文档序号:19791893发布日期:2020-01-24 14:24阅读:156来源:国知局
一种通信控制方法、装置及服务端设备与流程

本发明涉及网络通信技术领域,具体涉及一种通信控制方法、装置及服务端设备。



背景技术:

随着科学技术不断发展和进步,信息化、数字化和智能化技术在自动控制领域中得到广泛应用,在保证精准度的同时,也给工作质量提供了保障。随着各种数据采集设备、运动控制设备等的多样化,为保证各种设备进行数据交互的高效性,对通信组网也带来了巨大的挑战。

目前工业控制领域中较为普遍的通信组网方式大都采用can、rs232、rs485和以太网等接口加上应用层的协议栈组成。而应用层协议栈也是多种多样的,有采用厂商自定义的协议栈,也有采用全球标准组织规范的标准协议栈。但是这些协议栈各有限制,无法做到适应各种类型的设备。



技术实现要素:

为解决上述问题,本发明提供一种通信控制方法、装置及服务端设备,可以适用于多种类型的设备。

为了实现上述目的,本发明提供以下技术方案:

一种通信控制方法,所述方法包括:

建立通信控制协议栈,以侦听来自客户端的访问,所述通信控制协议栈包括数据列表,所述数据列表记录有服务端与客户端进行交互的数据参数信息,服务端与客户端管理同一张数据列表;

通过线程循环扫描接收缓冲区,解析来自客户端的数据内容;

当完成对该数据内容的解析后,发送应答报文回应所述客户端,并跳转到线程的起始处继续执行该线程,直至处理完接收缓冲区所有的访问报文。

进一步地,所述通过线程循环扫描接收缓冲区,解析来自客户端的数据内容,具体为:

通过线程循环扫描接收缓冲区,判断所述接收缓冲区是否有访问报文;

当扫描到访问报文时,检查所述访问报文对应的客户端是否与服务端的通信地址匹配;

当所述客户端与服务端的通信地址匹配时,对所述访问报文进行数据校验,生成数据校验结果;

当所述数据校验结果为成功时,对所述访问报文的数据内容进行解析。

进一步地,所述方法还包括:

通过所述数据列表将设备的数据参数信息进行映射,其中,所述数据参数信息在数据列表中的位置由索引和子索引标识。

进一步地,所述方法还包括:

通过所述数据参数信息标识所述服务端与客户端的读写属性、数据类型、数据大小、数组长度。

一种通信控制装置,所述装置包括:

访问侦听模块,用于建立通信控制协议栈,以侦听来自客户端的访问,所述通信控制协议栈包括数据列表,所述数据列表记录有服务端与客户端进行交互的数据参数信息,服务端与客户端管理同一张数据列表;

数据内容解析模块,用于通过线程循环扫描接收缓冲区,解析来自客户端的数据内容;

报文应答模块,用于当完成对该数据内容的解析后,发送应答报文回应所述客户端,并跳转到线程的起始处继续执行该线程,直至处理完接收缓冲区所有的访问报文。

进一步地,所述数据内容解析模块具体用于:

通过线程循环扫描接收缓冲区,判断所述接收缓冲区是否有访问报文;

当扫描到访问报文时,检查所述访问报文对应的客户端是否与服务端的通信地址匹配;

当所述客户端与服务端的通信地址匹配时,对所述访问报文进行数据校验,生成数据校验结果;

当所述数据校验结果为成功时,对所述访问报文的数据内容进行解析。

进一步地,所述装置还包括:

数据参数信息映射模块,用于通过所述数据列表将设备的数据参数信息进行映射,其中,所述数据参数信息在数据列表中的位置由索引和子索引标识。

进一步地,所述装置还包括:标识模块,所述标识模块用于通过所述数据参数信息标识所述服务端与客户端的读写属性、数据类型、数据大小、数组长度。

一种服务端设备,所述服务端设备包括:接收器,处理器,发送器;

所述接收器用于建立通信控制协议栈,以侦听来自客户端的访问,所述通信控制协议栈包括数据列表,所述数据列表记录有服务端与客户端进行交互的数据参数信息,服务端与客户端管理同一张数据列表;

所述处理器通过线程循环扫描接收缓冲区,解析来自客户端的数据内容;

所述发送器判断是否完成对该数据内容的解析,当完成对该数据内容的解析后,发送应答报文回应所述客户端,并跳转到线程的起始处继续执行该线程,直至处理完接收缓冲区所有的访问报文。

本发明的有益效果是:

1、网络管理方便,整个网络所有设备均管理一张数据列表,并且有一个唯一设备地址,相当于整个网络的数据构成一个“图书馆”,网络中所有设备均可对“图书馆”进行范问。客户端只需知道服务端的设备地址以及需访问的数据在数据列表的索引即可,适用于多种类型的设备。

2、扩展性高,数据列表预留索引范围广,设备进行升级时所增加的数据可在现有数据列表末尾继续添加新的索引数据,通信接口的扩展也可以直接增加一个通信接口对象的定义及驱动即可,适用于多种类型的设备。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例一种通信控制方法的流程示意图;

图2是本发明实施例步骤s200的流程示意图;

图3是本发明实施例一种通信控制装置的结构示意图;

图4是本发明实施例服务端设备的一个实施例框图。

具体实施方式

以下将结合实施例和附图对本公开的构思、具体结构及产生的技术效果进行清楚、完整的描述,以充分地理解本公开的目的、方案和效果。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

参考图1,图1为本公开实施例提供的一种通信控制方法,采用客户端—服务端模型的方式进行通信,被访问的设备为服务端,访问服务端的设备为客户端,在初始化时为每个设备分配一个相互独立的通信地址,所述方法包括以下步骤:

步骤s100、建立通信控制协议栈,以侦听来自客户端的访问;

其中,所述通信控制协议栈包括数据列表,所述数据列表记录有服务端与客户端进行交互的数据参数信息,服务端与客户端管理同一张数据列表。

步骤s200、通过线程循环扫描接收缓冲区,解析来自客户端的数据内容。

步骤s300、当完成对该数据内容的解析后,发送应答报文回应所述客户端,并跳转到线程的起始处继续执行该线程,直至处理完接收缓冲区所有的访问报文。

本实施例所述的数据列表由用户移植时建立,数据列表记录有设备的数据参数信息,在初始化时,以ipv4协议为例,对每台设备分配的通信地址对应的子网掩码范围为1~255,其中,地址0为广播地址,所有设备可根据配置选择是否侦听广播报文。

本公开提供的技术方案可方便网络管理,整个网络所有设备均管理一张数据列表,并且有一个唯一设备地址,相当于整个网络的数据构成一个数据库,网络中所有设备均可对数据库进行范问。客户端只需知道服务端的通信地址以及需访问的数据在数据列表的索引即可;同时,具有较高的扩展性,数据列表预留索引范围广,设备进行升级时所增加的数据可在现有数据列表末尾继续添加新的索引数据,通信接口的扩展也可以直接增加一个通信接口对象的定义及驱动即可,适用于多种类型的设备。

参考图2,在一个优选的实施例中,所述步骤s200具体为:

步骤s210、通过线程循环扫描接收缓冲区;

步骤s220、判断所述接收缓冲区是否有访问报文,若否,则跳转到步骤s210,若是,则执行以下步骤;

步骤s230、检查所述访问报文对应的客户端是否与服务端的通信地址匹配,若否,则跳转到步骤s210,若是,则执行以下步骤;

本步骤中,客户端与服务端的通信地址匹配,是指服务端检索的索引表中与所要侦听的目标通信地址相符合,在一个示例中,客户端的通信地址为服务端索引表中的通信地址,则判断客户端与服务端的通信地址匹配。

步骤s240、对所述访问报文进行数据校验,生成数据校验结果;

在一个示例中,对所述访问报文进行数据校验,可通检查客户端访问的目标数据地址是否存在、数据长度是否在设定范围内来判断该访问报文是否正确;

步骤s250、判断所述数据校验结果是否成功,若否,则跳转到步骤s210,若是,则执行以下步骤;

步骤s260、对所述访问报文的数据内容进行解析。

在本步骤中,所述解析的内容包括:读写设备数据列表、执行回调函数。

所述通信控制协议栈还包括通信接口、数据处理内核、回调函数;

在一个实施例中,可以对通信接口进行封装,所述通信接口支持至少一种物理接口(包括但不限于rs232接口、rs485接口、以太网接口、spi接口),每台设备设置有一个或多个通信接口,一个或多个所述通信接口管理同一张数据列表;所述通信接口用于设备与外界进行数据传输;所述通信接口与设备硬件接口相关,底层驱动由用户自行编写定义。

本实施例通过所述数据处理内核对通信报文进行识别、校验及处理,所述通信报文包括访问报文和应答报文。

所述回调函数为所述通信控制协议栈预留的数据处理功能函数;由用户根据需求自行编写定义。

当设备作为客户端访问服务端时,该通信控制协议栈对应答报文进行识别及校验,以及处理写访问应答数据,不对读访问应答数据进行处理,对于读访问应答数据的处理由用户在协议栈预留的回调函数中进行。

在一个改进的实施例中,所述方法还包括:

通过所述数据列表将设备的数据参数信息进行映射,其中,所述数据参数信息在数据列表中的位置由索引和子索引标识。

本实施例提供的技术方案实现成本低,数据映射采用指针方式实现,无需重新定义设备数据或参数,直接将源码添加到现有工程中,并实现数据列表的映射、通信接口的驱动,最后初始化协议栈即可;数据映射自由,用户可根据需要,对同一数据进行多次映射,避免客户端设备访问不同索引数据发送多条访问报文的情况,导致不必要的网络带宽浪费;

在一个改进的实施例中,所述方法还包括:

通过所述数据参数信息标识所述服务端与客户端的读写属性(只读、只写、可读写)、数据类型(变量或数组)、数据大小(以字节为单位)、数组长度(数组长度为变量时,将该值设为1)。

参考图3,本公开实施例还提供一种通信控制装置,所述装置包括:

访问侦听模块100,用于建立通信控制协议栈,以侦听来自客户端的访问。

其中,所述通信控制协议栈包括数据列表,所述数据列表记录有服务端与客户端进行交互的数据参数信息,服务端与客户端管理同一张数据列表;

数据内容解析模块200,用于通过线程循环扫描接收缓冲区,解析来自客户端的数据内容;

报文应答模块300,用于当完成对该数据内容的解析后,发送应答报文回应所述客户端,并跳转到线程的起始处继续执行该线程,直至处理完接收缓冲区所有的访问报文。

在一个改进的实施例中,所述数据内容解析模块200具体用于:

通过线程循环扫描接收缓冲区,判断所述接收缓冲区是否有访问报文;

当扫描到访问报文时,检查所述访问报文对应的客户端是否与服务端的通信地址匹配;

当所述客户端与服务端的通信地址匹配时,对所述访问报文进行数据校验,生成数据校验结果;

当所述数据校验结果为成功时,对所述访问报文的数据内容进行解析。

在一个改进的实施例中,所述装置还包括:数据参数信息映射模块400,所述数据参数信息映射模块400,用于通过所述数据列表将设备的数据参数信息进行映射,其中,所述数据参数信息在数据列表中的位置由索引和子索引标识。

在一个改进的实施例中,所述装置还包括:标识模块500,所述标识模块500用于通过所述数据参数信息标识所述服务端与客户端的读写属性、数据类型、数据大小、数组长度。

参考图4,本公开实施例还提供一种服务端设备,所述服务端设备包括:接收器1,处理器2,发送器3;

所述接收器1用于建立通信控制协议栈,以侦听来自客户端的访问。

其中,所述通信控制协议栈包括数据列表,所述数据列表记录有服务端与客户端进行交互的数据参数信息,服务端与客户端管理同一张数据列表;

所述处理器2通过线程循环扫描接收缓冲区,解析来自客户端的数据内容;

所述发送器3判断是否完成对该数据内容的解析,当完成对该数据内容的解析后,发送应答报文回应所述客户端,并跳转到线程的起始处继续执行该线程,直至处理完接收缓冲区所有的访问报文。

在一个改进的实施例中,所述处理器2还用于:

通过线程循环扫描接收缓冲区,判断所述接收缓冲区是否有访问报文;

当扫描到访问报文时,检查所述访问报文对应的客户端是否与服务端的通信地址匹配;

当所述客户端与服务端的通信地址匹配时,对所述访问报文进行数据校验,生成数据校验结果;

当所述数据校验结果为成功时,对所述访问报文的数据内容进行解析。

在一个改进的实施例中,所述接收器1还用于:通过所述数据列表将设备的数据参数信息进行映射,其中,所述数据参数信息在数据列表中的位置由索引和子索引标识。

在一个改进的实施例中,所述接收器1还用于:通过所述数据参数信息标识所述服务端与客户端的读写属性、数据类型、数据大小、数组长度。

应当理解,上述装置可以预先设置在设备中,也可以通过下载等方式而加载到设备中。本公开采用客户端—服务端模型的方式进行通信,被访问的设备为服务端,访问服务端的设备为客户端,上述装置中的相应模块单元可以与客户端设备中的模块单元相互配合以实现本申请的通信方案。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。

应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1