PC端与远程设备实现通讯的方法、系统及可读存储介质与流程

文档序号:19484623发布日期:2019-12-21 03:41阅读:205来源:国知局
PC端与远程设备实现通讯的方法、系统及可读存储介质与流程

本发明涉及通信技术领域,尤其是涉及一种pc端与远程设备实现通讯的方法、系统及可读存储介质。



背景技术:

tcp/ip:传输控制协议/互联网协议,也称为互联网协议套件,它使每个通过网络连接的设备能够按照这个协议同时与其他所有此类设备进行通信。

socket:网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。

现有自动化设备控制过程中,经常使用pc控制程序和机器人等远程设备通过tcp/ip进行网络通讯交互,实现动作及逻辑控制。基于现有技术,开发人员在pc控制程序作为控制中枢的开发过程中,经常需要针对每一种远程设备,在pc控制程序软件端实现各种远程设备的tcp/ip网络通讯的服务端/客户端创建、互相连接、发送数据、接收数据、连接断开重连机制、命令并行处理等定制化开发,开发过程复杂,对开发人员能力要求比较高,并且所开发出来的软件都是针对特定设备的定制化产品,通用性不高。



技术实现要素:

本发明旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本发明的一个目的是提供一种通信模块与多个远程设备实现通讯的方法及相关设备,将pc控制程序软件端的多种功能封装成一个通讯模块,能够提供给开发人员一种简单易用的方式,实现对各种各样基于tcp/ip网络的通讯交互。

本发明所采用的技术方案是:

第一方面,本发明提供一种pc端与远程设备实现通讯的方法,所述pc端包括服务端,所述服务端包括第一服务端端口,所述方法包括以下步骤:

所述第一服务端端口接受所述远程设备的连接,与所述远程设备进行点对点通讯,以使得所述服务端与所述远程设备之间接收、发送数据;

所述服务端根据预定义分组对接收到的数据进行匹配分组,并按照远程设备编号和数据分组编号的方式进行存储;

所述服务端对所述数据进行处理后,按照远程设备编号和数据分组编号的方式发送处理后的数据给对应的远程设备。

进一步地,所述服务端还包括第二服务端端口,所述方法还包括以下步骤:

所述第二服务端端口接收所述远程设备的连接,与所述远程设备进行点对点通讯,以使得所述服务端与所述远程设备之间接收、发送数据;

所述服务端根据预定义分组对接收到的数据进行匹配分组,并按照远程设备编号和数据分组编号的方式进行存储;

所述服务端对所述数据进行处理后,按照远程设备编号和数据分组编号的方式发送处理后的数据给对应的远程设备。

进一步地,所述第一服务端端口、所述第二服务端端口用于接收不同频段、不同通讯内容长度的数据。

进一步地,所述pc端还包括客户端,所述方法还包括以下步骤:

所述客户端向所述远程设备发起连接,与所述远程设备进行点对点通讯,以使得所述服务端与所述远程设备之间接收、发送数据;

所述客户端根据预定义分组对接收到的数据进行匹配分组,并按照远程设备编号和数据分组编号的方式进行存储;

所述客户端对所述数据进行处理后,按照远程设备编号和数据分组编号的方式发送处理后的数据给对应的远程设备。

进一步地,所述服务端、所述客户端在接收到的数据中查找结束符和换行符,根据所述结束符和换行符截取数据作为实际接收到的数据。

进一步地,所述处理后的数据也包括结束符,所述远程设备根据所述结束符接收所述处理后的数据。

进一步地,所述第一服务端端口、所述第二服务端端口、所述客户端与所述远程设备之间均通过tcp/ip网络通讯协议进行点对点通讯。

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

对所述预定义分组进行增加或删除操作。

第二方面,本发明提供一种pc端与远程设备实现通讯的系统,包括pc端和远程设备,所述pc端包括服务端,所述服务端包括第一服务端端口;

所述第一服务端端口用于接收所述远程设备的连接,与所述远程设备进行点对点通讯,以使得所述服务端与所述远程设备之间接收、发送数据;

所述服务端用于根据预定义分组对接收到的数据进行匹配分组,并按照远程设备编号和数据分组编号的方式进行存储,对所述数据进行处理后,按照远程设备编号和数据分组编号的方式发送处理后的数据给对应的远程设备。

第三方面,本发明提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行上述的方法。

本发明的有益效果是:

本发明通过pc端控制程序针对服务端/客户端创建、pc端与远程设备的互相连接/发送数据/接收数据、对接收的数据分组等功能进行封装,成为一个封装的通讯模块,提供给开发人员一种简单易用的方式,从而实现了该通讯模块的服务端与远程设备之间的数据接收、发送及对接收的数据进行分组、存储,开发过程简单,通用性高。

附图说明

图1是本发明中一种pc端与远程设备实现通讯的系统的一实施例的结构示意图;

图2是本发明中一种pc端与远程设备实现通讯的方法的一实施例的流程示意图;

图3是本发明中一种pc端与远程设备实现通讯的方法的另一实施例的流程示意图;

图4是本发明中一种pc端与远程设备实现通讯的方法的又一实施例的流程示意图。

具体实施方式

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

实施例一

本实施例提供了一种pc端与远程设备实现通讯的系统,如图1所示,包括pc端和远程设备,pc端和远程设备可双向通讯。pc端包括服务端和客户端,pc端控制程序针对服务端/客户端创建、pc端与远程设备的互相连接/发送数据/接收数据、对接收的数据等功能进行封装,成为一个封装的通讯模块。该通讯模块提供服务端配置文件,使用人员可以设置pc端的ip地址和两个服务端端口,作为通讯模块的服务端,每个服务端端口可以接受来自用户自定义数量的客户端连接,满足相应通讯需求。在通讯模块底层有一个指令储存区,能够连接数据请求端与动作执行端,能够无限量储存请求端的任务指令,在执行端实现自定义任务的分配、复制及管理。本系统基于tcp/ip网络通讯协议实现了该通讯模块的两个服务端端口和不限数量的客户端与远程设备之间的数据接收、发送及对接收的数据进行分组、存储。

实施例二

本实施例提供了一种pc端与远程设备实现通讯的方法,pc端包括服务端,服务端包括第一服务端端口。如图2所示,该方法包括以下步骤:

s100.第一服务端端口接受远程设备的连接,与远程设备进行点对点通讯,以使得服务端与远程设备之间接收、发送数据;

s200.服务端根据预定义分组对接收到的数据进行匹配分组,并按照远程设备编号和数据分组编号的方式进行存储;

s300.服务端对数据进行处理后,按照远程设备编号和数据分组编号的方式发送处理后的数据给对应的远程设备。

进一步地,服务端还包括第二服务端端口。如图3所示,该方法还包括以下步骤:

s400.第二服务端端口接收远程设备的连接,与远程设备进行点对点通讯,以使得服务端与远程设备之间接收、发送数据;

s500.服务端根据预定义分组对接收到的数据进行匹配分组,并按照远程设备编号和数据分组编号的方式进行存储;

s600.服务端对数据进行处理后,按照远程设备编号和数据分组编号的方式发送处理后的数据给对应的远程设备。

以服务端包括服务端端口1、服务端端口2为例,对上述步骤进行说明:

步骤s100和步骤s400:

1)使用人员在配置文件中配置好pc端的ip地址和服务端端口1、服务端端口2;

2)通讯模块读取设置好的pc端的ip地址及服务端端口1、服务端端口2;

3)服务端端口1执行步骤:

(1)通讯模块基于pc端的ip地址及服务端端口1创建socket1;

(2)socket1开始监听,启动远程设备连接检测功能;

(3)socket1开始接受远程设备通过tcp/ip网络通讯的连接;

(4)socket1接收到远程设备连接请求;

(5)通讯模块创建一个新的socket3和远程设备实现点对点通讯;

(6)通讯模块开启线程,使用socket3接收远程设备发送来的数据,同时socket1继续接受远程设备连接请求;

4)服务端端口2执行步骤:

(1)通讯模块基于pc端的ip地址及服务端端口2创建socket2;

(2)socket2开始监听,启动远程设备连接检测功能;

(3)socket2开始接受远程设备通过tcp/ip网络通讯的连接;

(4)socket2接收到远程设备连接请求;

(5)通讯模块创建一个新的socket4和远程设备实现点对点通讯;

(6)通讯模块开启线程,使用socket4接收远程设备发送来的数据,同时socket2继续接受远程设备连接请求。

步骤s200和步s500:

服务端端口1、服务端端口2针对所有与其连接的远程设备的远程设备号均预定义了不同的分组,优选地,分组数与远程设备数一致,实际情况下可根据远程设备数设置新的数量的分组。例如:1号远程设备预定义的分组为a组,a组内设置有多个数据名称,若服务端端口1接收到的数据x的数据名称与a组内的其中一个数据名称对应,则将数据x按照“1号+a组”(远程设备编号+数据分组编号)的方式存储到a组。可以想到的是,服务端端口1、服务端端口2收到任意一台远程设备发送的数据后,都可以将收到的数据和分组进行匹配,按照远程设备编号+数据分组编号的方式进行存储。不同的是,服务端端口1、服务端端口2可接收不同频段、不同通讯内容长度的数据,满足不同频次、不同通讯内容长度的通讯需求,良好的分工保证了接收数据的完整性。

步骤s300和步骤s600:

服务端端口1、服务端端口2对数据进行处理后,按照“1号+a组”(远程设备编号+和数据分组编号)的方式发送处理后的数据给对应的远程设备,即1号远程设备,1号远程设备获取处理后的数据后即可实现自动化控制。

实施例三

在实施例二的基础上,本实施例中,pc端还包括客户端,如图4所示,pc端与远程设备实现通讯的方法还包括以下步骤:

s700.客户端向远程设备发起连接,与远程设备进行点对点通讯,以使得服务端与远程设备之间接收、发送数据;

s800.客户端根据预定义分组对接收到的数据进行匹配分组,并按照远程设备编号和数据分组编号的方式进行存储;

s900.客户端对数据进行处理后,按照远程设备编号和数据分组编号的方式发送处理后的数据给对应的远程设备。

步骤s700中,客户端与服务端的不同在于:客户端可以主动发起与远程设备的连接,而服务端只能被动接受远程设备的连接。客户端与远程设备一对一连接,设置n个客户端则可以实现与n个远程设备的连接。

步骤s800和步骤s900中数据分组、存储和数据处理、发送的过程与服务端相同,此处不再赘述。

另外,由于客户端可以主动发起与远程设备的连接,因此客户端可以检测pc端与远程设备的连接是否断开。若检测到断开,则自动重连。

结合实施例二和实施例三,因为服务端和客户端对数据的存储、发送都是基于分组进行的,对其他远程设备或分组的数据没有影响,确保了pc控制程序通过通讯模块对所有远程设备发送的数据进行并行操作。

实施例四

当有多条密集数据同时达到服务端和客户端,为了保证接收数据的正确性和完整性,本实施例中,服务端、客户端会自动在接收到的数据中查找结束符和换行符,根据结束符和换行符对数据进行截取,获取正确的数据,截取后的剩余数据将会合并到下一条数据,然后同样按照结束符和换行符对下一条数据进行截取。具体地,通讯模块内部设置全局缓冲变量作为接收数据过渡容器,socket接收到远程设备发送过来的数据,在接收到的数据中查找结束符和换行符,将结束符和换行符前的所有数据截取出来,将截取到的数据追加到全局缓冲变量中,提取全局缓冲变量中的数据作为接收到的实际数据,清空全局缓冲变量中的数据,如果结束符和换行符后还有其他数据,将其追加到全局缓冲变量中。

实施例五

本实施例中,服务端和客户端对数据进行处理后,同样会自动附加结束符,方便远程设备接收数据时根据结束符进行分割,获取正确、完整的数据。

实施例六

本实施例中,通讯模块提供了对预定义分组进行增加或删除的功能,使用人员可以根据实际需要对预定义分组进行增加或删除操作。

实施例七

本实施例提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令用于使计算机执行如实施例二至实施例六所述的通讯方法。

以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。

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