CN109769001A - 一种物联网数据传输方法及系统 - Google Patents
一种物联网数据传输方法及系统 Download PDFInfo
- Publication number
- CN109769001A CN109769001A CN201910208477.1A CN201910208477A CN109769001A CN 109769001 A CN109769001 A CN 109769001A CN 201910208477 A CN201910208477 A CN 201910208477A CN 109769001 A CN109769001 A CN 109769001A
- Authority
- CN
- China
- Prior art keywords
- equipment end
- cloud server
- data
- websocket
- control instruction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明实施例提供了一种物联网数据传输方法及系统,方法包括:设备端接收云端服务器通过websocket连接池以广播方式发往所有设备端的控制指令,若判断获知所述控制指令是用于指示本地仪器执行操作,则控制所述本地仪器执行与所述控制指令对应的操作,并获得执行结果;设备端基于所述设备端与所述云端服务器之间建立的websocket连接通道,向所述云端服务器上报所述执行结果和本地仪器定时采集的数据。本发明实施例将数据报送和指令下达的通道分开,一方面,可以提高容错能力。另一方面,可以减轻设备端的连接负担。再一方面,由于云端服务器对所有设备端发送广播,因此有助于协调各设备端统一工作,对于需要跨设备端的操作,有助于提升操作的同步性能。
Description
技术领域
本发明实施例涉及物联网技术领域,具体涉及一种物联网数据传输方法及系统。
背景技术
仪器设备数据通信已被广泛用在物联网的各个环节,通过物联网系统来对工业生产的各环节进行监控。物联网系统一般涉及设备端、云端、客户端三个主体。目前物联网系统的网络架构一般采用基于websocket服务器的网络架构形式。
目前基于websocket服务器的网络架构的一般处理方式为:在云端服务器建立websocket服务,每一个设备端和云端服务器建立自己的websocket连接通道,通过定时报送数据,并通过同一通道接收服务器返回指令,将执行结果再次通过同一通道返回。
上面的处理方式存在如下缺点:
(一)这种处理方式的容错性较差,例如一旦指令执行中出现错误,会造成数据报送也无法成功,从而影响正常工作。
(二)这种处理方式由于设备数据报送和指令下达基于一个连接,且由于websocket长连接有默认的超时时间,就是超过一定的时间没有发送任何消息,连接会自动断开,为了维持云端服务器对设备端的控制,需要设备端每隔一定时间(要小于超时时间)发送一个心跳给云端,对于数据报送不频发的设备,单纯为了维持控制,就需要设备不停发送数据到云端,造成大量连接负担。
发明内容
针对现有技术中的问题,本发明实施例提供一种物联网数据传输方法及系统。
第一方面,本发明实施例提供了一种物联网数据传输方法,包括:
设备端接收云端服务器通过websocket连接池以广播方式发往所有设备端的控制指令,若判断获知所述控制指令是用于指示本地仪器执行操作,则控制所述本地仪器执行与所述控制指令对应的操作,并获得执行结果;
基于所述设备端与所述云端服务器之间建立的websocket连接通道,向所述云端服务器上报所述执行结果;其中,所有设备端中每个设备端均各自建立有与所述云端服务器之间的websocket连接通道;
其中,所述设备端还用于基于所述设备端与所述云端服务器之间建立的websocket连接通道,向所述云端服务器上报本地仪器定时采集的数据。
第二方面,本发明实施例还提供了一种物联网数据传输方法,包括:
云端服务器通过websocket连接池以广播方式向所有设备端发送控制指令,以使所有设备端在判断获知所述控制指令为用于指示本地仪器执行操作的控制指令时,将所述操作指令发送给本地仪器进行执行以获得执行结果;
所述云端服务器接收设备端通过设备端与所述云端服务器之间建立的websocket连接通道发送的所述执行结果;其中,所有设备端中每个设备端均各自建立有与所述云端服务器之间的websocket连接通道;
所述云端服务器还用于接收设备端通过设备端与所述云端服务器之间建立的websocket连接通道发送的由本地仪器定时采集的数据。
第三方面,本发明实施例还提供了一种物联网数据传输系统,包括设备端和云端服务器;
所述云端服务器通过websocket连接池以广播方式向所有设备端发送控制指令;
所述设备端接收所述云端服务器发送的控制指令,并在判断获知所述控制指令是用于指示本地仪器执行操作时,控制所述本地仪器执行与所述控制指令对应的操作,并获得执行结果;
所述设备端基于所述设备端与所述云端服务器之间建立的websocket连接通道,向所述云端服务器上报所述执行结果;其中,所有设备端中每个设备端均各自建立有与所述云端服务器之间的websocket连接通道;
所述设备端还用于基于所述设备端与所述云端服务器之间建立的websocket连接通道,向所述云端服务器上报本地仪器定时采集的数据。
由上述技术方案可知,本发明实施例提供的物联网数据传输方法及系统,由于云端通过建立好的面向所有设备端的websocket连接池进行指令广播,而设备端通过设备端建立的与云端服务器的websocket连接通道进行采集数据的报送和执行结果的报送,因此,本发明实施例实现了将数据报送和指令下达的通道分开,这样处理的好处是:一方面,由于数据报送和指令下达基于不同的连接通道,因此即便指令执行中出现错误,也不会影响数据报送的正常工作。另一方面,设备端按照其本身数据采集需要的频率发送数据,对于数据采集周期比较长的设备(长于维持长连接默认时间),由于不受维持websocket长连接影响,从而降低了websocket数据传输频率,减轻了设备端的连接负担。再一方面,由于云端服务器对所有设备端发送广播,因此有助于协调各设备端统一工作,对于需要跨设备端的操作,有助于提升操作的同步性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的物联网数据传输方法的流程图;
图2是本发明实施例提供的物联网数据传输方法的工作原理和网络架构示意图;
图3是现有技术中物联网数据传输方法的工作原理和网络架构示意图;
图4是本发明另一实施例提供的另一种物联网数据传输方法的流程图;
图5是本发明实施例提供的设备端的处理流程示意图;
图6是本发明实施例提供的云端服务器的处理流程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在介绍本发明实施例提供的物联网数据传输方法之前,先介绍下本发明实施例的应用背景以及其中出现的一些名词的具体含义。
随着物联网的普及和发展,物联网系统在工业生产中的作用也越来越大。通过物联网系统来对工业生产的各环节进行监控,从而保证工业生产的正常运行。在物联网系统中,一般包括三个主体,分别为设备端、云端和客户端。
其中,设备端一般指工控机(可以指电脑,也可以是其他智能设备),工控机具有多个串口,可以连接很多仪器(如称重器件、仓库抬杆、图像采集器件、报警装置、红外设备等)。每个设备端均可以连接多个本地仪器,这些本地仪器用于定期采集本仪器的一些工作数据发送给设备端,并由设备端转发至云端进行存储,以供客户端通过访问云端获取这些采集数据。此外,每个设备端还可以接收云端转发的控制指令(用户通过客户端下发指令给云端),并将相应的控制指令发送给对应的仪器进行执行,以及将执行结果反馈给云端进行存储,以供客户端通过访问云端获取相应的执行结果。
其中,客户端一般指用户端,用于用户指令的下达、执行结果的查询以及设备端各仪器定时采集的数据的查询等。
其中,云端一般指服务器,用于负责接收用户下发的控制指令,并将指令转发给设备端,再由设备端转发给设备端连接的本地仪器,由相关仪器执行后再将执行结果转发给云端,进而由云端进行存储,以供客户端进行执行结果的查询。此外,所述云端还用于存储各设备端定期发送的采集数据,这些采集数据是由相应设备端的本地仪器定期采集的。
图1示出了本发明一实施例提供的物联网数据传输方法的流程图,如图1所示,本发明实施例提供的物联网数据传输方法,应用于设备端,具体包括如下内容:
步骤101:设备端接收云端服务器通过websocket连接池以广播方式发往所有设备端的控制指令,若判断获知所述控制指令是用于指示本地仪器执行操作,则控制所述本地仪器执行与所述控制指令对应的操作,并获得执行结果。
在本步骤中,设备端并不是接收云端通过设备端与云端服务器的websocket连接通道发送的控制指令,而是接收云端通过websocket连接池广播的控制指令。
在本步骤中,与现有技术不同的是,云端服务器建立了面向所有设备端的websocket连接池,进而在云端需要进行指令下达时,可以通过建立的websocket连接池将指令广播到所有设备端,从而将云端服务器的控制指令下达通道与设备端的数据报送通道分开,进而避免了云端和设备端之间的控制指令下达和数据报送采用同一通道而带来的容错性差以及设备端存在连接负担等各种问题。其中,所述容错性差的缺点是指:一旦指令执行中出现错误,会造成数据报送也无法成功,或,数据报送出现错误,也会耽误指令的正常下达,从而影响正常工作。所述设备端存在连接负担的缺点是指:由于设备数据报送和指令下达基于一个连接,且websocket长连接有默认的超时时间,就是超过一定的时间没有发送任何消息,连接会自动断开,为了维持云端服务器对设备端的控制,需要设备端每隔一定时间(要小于超时时间)发送一个心跳给云端,对于数据报送不频发的设备,单纯为了维持控制,就需要设备不停发送数据到云端,造成大量连接负担。
在本步骤中,由于云端服务器建立了面向所有设备端的websocket连接池,因此云端在接收到客户端发送的控制指令后,可以将所述控制指令通过所述websocket连接池广播到所有设备端,这样不但可以避免由于云端和设备端之间的数据报送和指令下达均采用设备端和云端之间建立的websocket连接通道而带来的冲突问题,而且由于云端服务器对所有设备端发送广播,因此有助于协调各设备端的统一工作,对于需要跨设备端的操作,有助于提升操作的同步性能。比如,业务场景要求同时打开仓库抬杠和红外监控设备(假设仓库抬杠和红外监控设备连接在不同的设备端上),传统方式由于抬杠和红外设备分别各自维持自己的长连接,很难保证同步发送自己的轮询数据,从而同步接收到云端指令,而广播的方式可以有效保证指令的同时下达到两个不同设备端。
在本步骤中,需要说明的是,由于云端服务器是通过websocket连接池向所有设备端广播控制指令,因此,指令中必须要带有指令执行主体,设备端在接收到云端服务器广播的控制指令后,根据控制指令中携带的执行主体判断该指令是否应该由设备端的本地仪器执行,若是,则使相应的本地仪器执行所述控制指令,并将执行结果通过设备端与云端服务器的websocket连接通道报送至云端服务器,否则丢弃该指令。
步骤102:基于所述设备端与所述云端服务器之间建立的websocket连接通道,向所述云端服务器上报所述执行结果;其中,所有设备端中每个设备端均各自建立有与所述云端服务器之间的websocket连接通道。
步骤103:所述设备端还用于基于所述设备端与所述云端服务器之间建立的websocket连接通道,向所述云端服务器上报本地仪器定时采集的数据。
在本实施例中,需要说明的是,每个设备端(工控机)均需要建立设备端与云端服务器的websocket连接通道,用于向云端进行采集数据报送和执行结果报送。
在本实施例中,设备端在向云端返回执行结果以及设备端向云端服务器上报本地仪器定时采集的数据时,均是通过设备端与云端服务器的websocket连接通道发送的,也即设备端与云端服务器的websocket连接通道可以用于做两类事情,一类是将设备端的本地仪器采集的工作数据报送至云端服务器,另一类是将设备端的本地仪器执行指令完后的执行结果报送至云端服务器。
在本实施例中,需要说明的是,由于步骤103涉及本地仪器定时采集数据报送的问题,因此,步骤103与步骤101和102之间并不具有顺序约定关系,例如,步骤103可以在步骤101之前、在步骤101与步骤102之间,或在步骤102之后执行。
由上述技术方案可知,本发明实施例提供的物联网数据传输方法及系统,由于云端通过建立好的面向所有设备端的websocket连接池进行指令广播,而设备端通过设备端建立的与云端服务器的websocket连接通道进行采集数据的报送和执行结果的报送,因此,本发明实施例实现了将数据报送和指令下达的通道分开,这样处理的好处是:一方面,由于数据报送和指令下达基于不同的连接通道,因此即便指令执行中出现错误,也不会影响数据报送的正常工作。另一方面,设备端按照其本身数据采集需要的频率发送数据,对于数据采集周期比较长的设备(长于维持长连接默认时间),由于不受维持websocket长连接影响,从而降低了websocket数据传输频率,减轻了设备端的连接负担。再一方面,由于云端服务器对所有设备端发送广播,因此有助于协调各设备端统一工作,对于需要跨设备端的操作,有助于提升操作的同步性能。
基于上述实施例的内容,在本实施例中,所述方法还包括:
在每次需要上报执行结果或在每次需要上报定时采集的数据时,动态建立所述设备端与所述云端服务器之间的websocket连接通道,并在将所述执行结果或定时采集的数据上报至所述云端服务器之后,关闭所述设备端与所述云端服务器之间的websocket连接通道。
在本实施例中,每次需要利用所述设备端与所述云端服务器之间的websocket连接通道时,动态建立所述设备端与所述云端服务器之间的websocket连接通道,这样处理的好处是即使此次连接建立失败,比如此刻云端服务器发生错误,下一次重新建立连接也能恢复,仅仅损失一次的数据。
与上述实施例不同的是,在另一个实施例中,所述方法还包括:
在所述设备端启动时建立所述设备端与所述云端服务器之间的websocket连接通道,并在每次需要上报执行结果或在每次需要上报定时采集的数据时,复用所述设备端与所述云端服务器之间的websocket连接通道。
在本实施例中,为了避免设备端每次传输数据都重新建立websocket连接而带来的连接损耗问题,故采用了先建立连接,然后在设备端需要执行数据传输任务时,复用该连接(不需要重新建立连接),这样的好处是可以提高性能。
需要说明的是,虽然先建立连接,然后再复用连接的方式可以提高性能,但是该处理方式也存在一定的问题,例如一旦连接崩溃,后续数据传输全部受到影响。为进一步解决该问题,下面提供的实施例设计了设备端的一种错误恢复机制。
基于上面实施例的内容,在本实施例中,所述方法还包括:
在所述设备端启动时建立主进程和守护进程,在所述设备端与所述云端服务器之间的websocket连接通道发生连接失败的问题时,所述主进程向所述守护进程发送信号以使所述守护进程重新启动所述设备端以再次建立所述设备端与所述云端服务器之间的websocket连接通道直至所述设备端与所述云端服务器之间的websocket连接通道恢复正常。
可见,在本实施例中,设备端先建立连接,然后不关闭该连接,而是在需要时复用连接,由于最耗费性能的是建立连接和关闭连接的过程(需要3-4次握手过程),因此,先建立连接,不关闭,然后在需要时复用连接,就可以提高性能。但是这种处理方式的问题是,若建立的连接坏掉了(比如云端出问题了),此时就会影响后面的数据传输,为解决该问题,本实施例进一步设置了错误恢复机制,以确保即使云端发生故障,设备端的进程也不会消失,一旦云端恢复,设备端立刻恢复连接。
基于上述实施例的内容,在本实施例中,设备端将设备端的本地仪器定时采集的数据,按照预设数据格式打包后,通过设备端与云端服务器的websocket连接通道将打包后的数据报送至云端服务器;其中,所述预设数据格式为:至少包括依次设置的仪器ID、采集的数据、产生数据的操作指令、时间戳和错误处理相关数据。
类似地,所述设备端接收云端通过websocket连接池广播的控制指令的数据格式为:至少包括依次设置的控制指令对象、指令集、时间戳和错误处理相关数据。
类似地,设备端将执行结果按照预设数据格式打包后通过设备端与云端服务器的websocket连接通道报送至云端服务器;其中,所述预设数据格式为:至少包括依次设置的仪器ID、执行结果、产生数据的操作指令、时间戳和错误处理相关数据。
在本实施例中,错误处理相关数据可以为一个error字段,里面列出错误信息,比如端口没有打开,仪器本身的各种故障信息等。其中,在指令下达时一般没有错误信息,就置空,但是仪器上报数据时,若发生错误,则会通过error字段体现具体的错误信息。
在本实施例中,指令集中包含有指令信息,例如可以为重启、称重、拍照、读取rfid标签等。
在本实施例中,在采集数据报送时,产生数据的操作指令可以为一些预设的数据定时采集任务;在执行结果报送时,产生数据的操作指令可以为重启,读取rfid标签,称重等,具体根据仪器而定。
可见,在本实施例中,严格规范了数据报送和指令下达的数据格式。其中,设备端上报的数据需要至少包含:仪器ID、采集的数据或执行结果、产生数据的操作指令、时间戳和错误处理相关数据,以此保障上报数据即使在串口连接错误、网路错误时,仍能准确识别数据源、产生数据的操作、数据顺序、事件时间等。此外,云端下达指令时,至少包含指令下达对象(即发给哪个或哪些仪器执行)、指令集、时间戳、错误处理相关数据,以此保证指令以广播形式下达,设备端能够自我识别指令执行主体、执行时间、内容,从而根据程序设定决定是否执行等。
为了更清楚的对本发明实施例进行说明,现结合图3所示的现有技术中物联网数据传输方法的工作原理和网络架构示意图和图2所示的本发明实施例提供的物联网数据传输方法的工作原理和网络架构示意图,来对本发明实施例进行详细阐述。
如图3所示,在现有技术中,每一个设备端和云端服务器建立自己的websocket连接通道,设备端向云端报送数据以及云端向设备端下发指令都是通过这个websocket连接通道完成,这种方式存在的问题是:一、容错性较差,例如一旦指令执行中出现错误,会造成数据报送也无法成功,从而影响正常工作。二、这种处理方式,由于设备数据报送和指令下达基于一个连接,且websocket长连接有默认的超时时间,就是超过一定的时间没有发送任何消息,连接会自动断开,为了维持云端服务器对设备端的控制,需要设备端每隔一定时间(要小于超时时间)发送一个心跳给云端,对于数据报送不频发的设备,单纯为了维持控制,就需要设备不停发送数据到云端,造成大量连接负担。
参见图2所示的本实施例提供的物联网数据传输方法的工作原理和网络架构示意图,与图3不同的是,本实施例提供的物联网数据传输方法,将设备端向云端服务器的数据报送通道和云端向设备端的控制指令下达通道分开,这样,一方面,由于数据报送和指令下达基于不同的连接通道,因此即便指令执行中出现错误,也不会影响数据报送的正常工作。另一方面,设备端按照其本身数据采集需要的频率发送数据,对于数据采集周期比较长的设备(长于维持长连接默认时间),由于不受维持websocket长连接影响,从而降低了websocket数据传输频率,减轻了设备端的连接负担。再一方面,由于云端服务器对所有设备端发送广播,因此有助于协调各设备端统一工作,对于需要跨设备端的操作,有助于提升操作的同步性能。比如,业务场景要求同时打开仓库抬杠和红外监控设备(假设仓库抬杠和红外监控设备连接在不同的设备端上),传统方式由于抬杠和红外设备分别各自维持自己的长连接,很难保证同步发送自己的轮询数据,从而同步接收到云端指令,而广播的方式可以有效保证指令的同时下达到两个不同设备。
基于相同的发明构思,本发明另一实施例提供了另一种物联网数据传输方法,应用于云端,参见图4,该方法包括如下内容:
步骤201:云端服务器通过websocket连接池以广播方式向所有设备端发送控制指令,以使所有设备端在判断获知所述控制指令为用于指示本地仪器执行操作的控制指令时,将所述操作指令发送给本地仪器进行执行以获得执行结果。
步骤202:所述云端服务器接收设备端通过设备端与所述云端服务器之间建立的websocket连接通道发送的所述执行结果;其中,所有设备端中每个设备端均各自建立有与所述云端服务器之间的websocket连接通道。
步骤203:所述云端服务器还用于接收设备端通过设备端与所述云端服务器之间建立的websocket连接通道发送的由本地仪器定时采集的数据。
在本实施例中,需要说明的是,由于步骤203涉及设备端本地仪器定时采集数据报送的问题,因此,步骤203与步骤201和202之间并不具有顺序约定关系,例如,步骤203可以在步骤201之前、在步骤201与步骤202之间,或在步骤202之后执行。
由于本实施例提供的物联网数据传输方法与上述实施例提供的物联网数据传输方法的工作原理和有益效果类似,故此处不再详述,具体内容可参见上面实施例的介绍。
基于上述实施例的内容,在本实施例中,所述将所述控制指令通过所述websocket连接池广播到所有设备端,包括:
将所述控制指令按照预设指令格式进行打包,并将打包后的控制指令通过所述websocket连接池广播到所有设备端;
其中,所述预设指令格式为:至少包括依次设置的控制指令对象、指令集、时间戳和错误处理相关数据。
在本实施例中,严格规范了指令下达的数据格式。云端下达指令时,至少包含指令下达对象(即发给哪个或哪些仪器执行)、指令集(称重、抬杆、拍照等)、时间戳、错误处理相关数据,以此保证指令以广播形式下达,设备端能够自我识别指令执行主体、执行时间、内容,从而根据程序设定决定是否执行等。
基于上述实施例的内容,在本实施例中,所述方法还包括:
云端将接收到的执行结果以仪器ID加指令名称为键存储到键值对数据库中以便于为客户端提供执行结果查询服务。
在本实施例中,增加了执行结果的缓存,现有技术中的架构由于指令通过websocket通道下达后,在得到执行结果后,基于原websocket通道直接返回,因此并不必须将执行结果持久化存储。而本实施例由于指令通过指令广播通道(云端面向所有设备端建立的websocket连接池)下达,设备端执行完毕的结果通过数据报送通道(设备端建立的设备端和云端服务器的websocket连接通道)上传,因此指令下达和获取结果数据是异步的,云端必须以结果数据中的仪器ID、指令名称(产生数据的操作指令)为键,将结果数据缓存,在外部查询时,按照仪器ID和指令名称,将最近一次的操作结果返回,这一结果也就是设备端执行完操作后的最新状态。
基于上述实施例的内容,在本实施例中,所述方法还包括:
云端服务器建立面向客户端的RPC调用接口,用于接收客户端的控制指令;
相应地,云端在接收到客户端发送的执行结果查询指令时,从所述键值对数据库中查询相应结果,并将查询到的结果发送至客户端。
在本实施例中,需要说明的是,现有技术包含客户端登录注册流程;本实施例将这一流程充分解耦,仅涉及数据传输和指令下达,可以和任意登录注册组合使用,增加了技术方案的灵活性。此外,现有技术的数据用于web浏览器展示,而本实施例针对客户端提供RPC调用接口,客户端既可以是web浏览器,也可以是其他平台(如其他系统模块后台)。
基于上述实施例的内容,在本实施例中,所述方法还包括:
云端服务器建立面向客户端的websocket连接池,并通过建立的websocket连接池为客户端提供采集数据的调用接口。
在本实施例中,需要说明的是,现有技术在建立客户端和云端连接后,云端服务器的采集数据是从数据库中查询出来的,而本发明在建立客户端和云端服务器的连接后,采集数据是由云端到设备端的另外一个websocket管道转接入的,无需磁盘存储环节,因而实时性更强;同时由于避免了数据库读写操作,在大规模数据接入时,性能更强。
基于上述实施例的内容,在一种可选实施方式中,所述每个设备端获取设备端的本地仪器定时采集的数据,包括:
每个设备端针对设备端的每个本地仪器开启子进程,子进程执行预设的定时任务,相应地,设备端打开与每个本地仪器对应的串口,接收相应本地仪器的采集数据。
在本实施例中,通过对设备端的每个本地仪器开启子进程,由子进程执行预设的定时任务,进而由设备端通过打开与每个本地仪器对应的串口的方式,接收相应本地仪器的采集数据。
基于上述实施例的内容,在一种可选实施方式中,所述方法还包括:
云端监听设备端报送的采集数据,并将接收到的采集数据存储到日志文件中。
在本实施例中,云端监听设备端报送的采集数据,并将接收到的采集数据存储到日志文件中,从而一方面便于客户端通过访问云端服务器的方式读取这些数据,另一方面也便于相关人员通过所述日志文件进行相关仪器工作状态的监测、故障排查、事故追溯留底等。
下面分别从设备端的错误恢复流程、设备端连接和数据报送流程、设备端的数据报送流程、设备端的控制指令执行流程、云端指令广播流程和云端数据服务流程六个方面对本实施例提供的物联网数据传输方法进行详细说明。
1设备端的错误恢复流程(具体参见图5)
1.1开启设备端守护进程;
1.2守护进程定时检查工作进程的工作状态,在出现异常的时候重启工作进程,在无异常的时候持续循环检查。
2设备端连接和数据报送流程(具体参见图5)
2.1每个设备端建立和云端服务器的websocket连接通道;
2.2一个设备端可以连接多个仪器,将设备端数据报送流程接收的数据,通过统一的websocket连接通道上报到云端;需要说明的是,一个设备端与云端服务器建立一条websocket通道,该设备端上连接的所有仪器采集的数据都通过这条websocket通道发送给云端。具体实现时所述设备端就是一个工控机,工控机具有多个串口,可以连接很多仪器。
3设备端的数据报送流程(具体参见图5)
3.1设备端针对连接设备端的每个设备开启子进程,子进程执行定时任务,打开串口,接收采集数据;
3.2将采集数据按照仪器ID、采集到的数据、产生数据的控制指令(此时数据指令统一为report)、时间戳、错误处理数据(没有为空)的规范字段打包发送到云端。
4设备端的控制指令执行流程(具体参见图5)
4.1从云端服务器广播中接收指令,按照标准规范从指令中找到指令的执行人,鉴别是否归属于设备端本地仪器执行,如果不属于,则忽略;
4.2属于设备端所属仪器执行的控制指令,调用串口执行该指令,并将执行结果通过设备端的数据报送流程报送至云端服务器。
5云端指令广播流程(具体参见图6)
5.1建立面向设备端的websocket连接池;
5.2在没有外部调用时,监听设备端数据报送,注意此处不用像传统方式为了维持连接发送心跳数据;
5.3在有调用的情况下,按照指令对象(即发给哪个或那些仪器执行)、指令集(如重启、开始称重、设备缓存清除等)、时间戳、错误处理数据规范打包数据,通过5.1的连接池广播控制指令到设备端,进入到设备端的执行指令流程。
6云端数据服务流程(具体参见图6)
6.1从5.2中监听设备端的数据报送,并将所有数据存储到日志文件,将仪器调用的执行结果,以仪器ID+指令名称为键,存储到键值对数据库;
6.2建立面向客户端的RPC调用接口,在接收到调用指令时,进入5.3指令打包发送;在接收到执行结果查询指令时,从6.1的存储中查询结果,返回查询结果到客户端;
6.3建立面向客户端的websocket连接池,将6.1接收的数据,通过连接池提供采集数据的调用接口。
基于相同的发明构思,本发明另一实施例提供了一种物联网数据传输系统,包括:设备端和云端服务器;
所述云端服务器通过websocket连接池以广播方式向所有设备端发送控制指令;
所述设备端接收所述云端服务器发送的控制指令,并在判断获知所述控制指令是用于指示本地仪器执行操作时,控制所述本地仪器执行与所述控制指令对应的操作,并获得执行结果;
所述设备端基于所述设备端与所述云端服务器之间建立的websocket连接通道,向所述云端服务器上报所述执行结果;其中,所有设备端中每个设备端均各自建立有与所述云端服务器之间的websocket连接通道;
所述设备端还用于基于所述设备端与所述云端服务器之间建立的websocket连接通道,向所述云端服务器上报本地仪器定时采集的数据。
由于本发明实施例提供的物联网数据传输系统,可以用于执行上述实施例所述的物联网数据传输方法,其工作原理和有益效果类似,故此处不再详述,具体内容可参见上述实施例的介绍。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (12)
1.一种物联网数据传输方法,其特征在于,包括:
设备端接收云端服务器通过websocket连接池以广播方式发往所有设备端的控制指令,若判断获知所述控制指令是用于指示本地仪器执行操作,则控制所述本地仪器执行与所述控制指令对应的操作,并获得执行结果;
基于所述设备端与所述云端服务器之间建立的websocket连接通道,向所述云端服务器上报所述执行结果;其中,所有设备端中每个设备端均各自建立有与所述云端服务器之间的websocket连接通道;
其中,所述设备端还用于基于所述设备端与所述云端服务器之间建立的websocket连接通道,向所述云端服务器上报本地仪器定时采集的数据。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在每次需要上报执行结果或在每次需要上报定时采集的数据时,动态建立所述设备端与所述云端服务器之间的websocket连接通道,并在将所述执行结果或定时采集的数据上报至所述云端服务器之后,关闭所述设备端与所述云端服务器之间的websocket连接通道。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述设备端启动时建立所述设备端与所述云端服务器之间的websocket连接通道,并在每次需要上报执行结果或在每次需要上报定时采集的数据时,复用所述设备端与所述云端服务器之间的websocket连接通道。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
在所述设备端启动时建立主进程和守护进程,在所述设备端与所述云端服务器之间的websocket连接通道发生连接失败的问题时,所述主进程向所述守护进程发送信号以使所述守护进程重新启动所述设备端以再次建立所述设备端与所述云端服务器之间的websocket连接通道直至所述设备端与所述云端服务器之间的websocket连接通道恢复正常。
5.根据权利要求1所述的方法,其特征在于,所述控制指令的数据格式为:至少包括依次设置的控制指令对象、指令集、时间戳和错误处理相关数据。
6.根据权利要求1所述的方法,其特征在于,所述执行结果的数据格式为:至少包括依次设置的仪器ID、执行结果、产生数据的操作指令、时间戳和错误处理相关数据。
7.根据权利要求1所述的方法,其特征在于,所述设备端在向云端服务器上传本地仪器定时采集的数据时采用的数据格式为:至少包括依次设置的仪器ID、采集的数据、产生数据的操作指令、时间戳和错误处理相关数据。
8.一种物联网数据传输方法,其特征在于,包括:
云端服务器通过websocket连接池以广播方式向所有设备端发送控制指令,以使所有设备端在判断获知所述控制指令为用于指示本地仪器执行操作的控制指令时,将所述操作指令发送给本地仪器进行执行以获得执行结果;
所述云端服务器接收设备端通过设备端与所述云端服务器之间建立的websocket连接通道发送的所述执行结果;其中,所有设备端中每个设备端均各自建立有与所述云端服务器之间的websocket连接通道;
所述云端服务器还用于接收设备端通过设备端与所述云端服务器之间建立的websocket连接通道发送的由本地仪器定时采集的数据。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
云端服务器建立面向客户端的websocket连接池,并通过建立的websocket连接池为客户端提供采集数据的调用接口。
10.根据权利要求8所述的方法,其特征在于,所述方法还包括:
云端将接收到的执行结果以仪器ID加指令名称为键存储到键值对数据库中。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
云端服务器建立面向客户端的RPC调用接口,用于接收客户端的控制指令;
相应地,云端在接收到客户端发送的执行结果查询指令时,从所述键值对数据库中查询相应结果,并将查询到的结果发送至所述客户端。
12.一种物联网数据传输系统,其特征在于,包括设备端和云端服务器;
所述云端服务器通过websocket连接池以广播方式向所有设备端发送控制指令;
所述设备端接收所述云端服务器发送的控制指令,并在判断获知所述控制指令是用于指示本地仪器执行操作时,控制所述本地仪器执行与所述控制指令对应的操作,并获得执行结果;
所述设备端基于所述设备端与所述云端服务器之间建立的websocket连接通道,向所述云端服务器上报所述执行结果;其中,所有设备端中每个设备端均各自建立有与所述云端服务器之间的websocket连接通道;
所述设备端还用于基于所述设备端与所述云端服务器之间建立的websocket连接通道,向所述云端服务器上报本地仪器定时采集的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910208477.1A CN109769001B (zh) | 2019-03-19 | 2019-03-19 | 一种物联网数据传输方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910208477.1A CN109769001B (zh) | 2019-03-19 | 2019-03-19 | 一种物联网数据传输方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109769001A true CN109769001A (zh) | 2019-05-17 |
CN109769001B CN109769001B (zh) | 2022-02-11 |
Family
ID=66459674
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910208477.1A Active CN109769001B (zh) | 2019-03-19 | 2019-03-19 | 一种物联网数据传输方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109769001B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110430216A (zh) * | 2019-08-16 | 2019-11-08 | 微位(深圳)网络科技有限公司 | 区块链节点间的通信方法及装置 |
CN110704467A (zh) * | 2019-10-12 | 2020-01-17 | 上海智引信息科技有限公司 | 基于b/s架构实现数据实时更新处理的系统及其方法 |
CN111031059A (zh) * | 2019-12-23 | 2020-04-17 | 河南派亚尼尔自动化设备有限公司 | 一种基于WebSocket的物联网大屏监控系统及方法 |
CN111245927A (zh) * | 2020-01-09 | 2020-06-05 | 济南邦德激光股份有限公司 | 一种激光切割设备的远程控制方法及系统 |
CN111770157A (zh) * | 2020-06-24 | 2020-10-13 | 广东浪潮大数据研究有限公司 | 一种业务处理方法、装置及电子设备和存储介质 |
CN112039899A (zh) * | 2020-09-01 | 2020-12-04 | 深圳创维数字技术有限公司 | 虚拟现实系统控制方法、系统和存储介质 |
CN112911022A (zh) * | 2021-03-25 | 2021-06-04 | 北京数字磐石科技有限公司 | 本地服务器和云服务器的数据同步方法和装置 |
CN113093670A (zh) * | 2021-03-25 | 2021-07-09 | 北京嘉联优控科技有限公司 | 一种仪控状态监控方法、系统及监控平台 |
CN113497829A (zh) * | 2021-06-02 | 2021-10-12 | 江苏小牛电子科技有限公司 | 一种基于websocket控制电子班牌的方法 |
CN115190334A (zh) * | 2022-06-01 | 2022-10-14 | 阿里巴巴(中国)有限公司 | 一种状态沟通方法、装置、控制设备及可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103607423A (zh) * | 2013-10-23 | 2014-02-26 | 深圳海联讯科技股份有限公司 | 一种基于WebSocket协议的分布式广播系统 |
CN108616606A (zh) * | 2018-08-01 | 2018-10-02 | 湖南恒茂高科股份有限公司 | 一种物联网通信方法及装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103491179B (zh) * | 2013-09-27 | 2017-01-18 | 百视通网络电视技术发展有限责任公司 | 基于Web的多屏互动方法及系统 |
CN103945003B (zh) * | 2014-05-06 | 2017-06-06 | 北京邮电大学 | 一种WebRTC客户端连接动态自适应选择的方法 |
WO2016077716A1 (en) * | 2014-11-13 | 2016-05-19 | Convida Wireless, Llc | Communication sessions at a coap protocol layer |
CN107040798A (zh) * | 2016-02-04 | 2017-08-11 | 深圳市光息谷科技发展有限公司 | 互动展示控制方法、系统、服务器、控制终端及播放终端 |
CN106874126A (zh) * | 2017-01-24 | 2017-06-20 | 厦门天锐科技股份有限公司 | 一种软件开发中主进程异常检测方法 |
CN107018147B (zh) * | 2017-05-09 | 2020-09-08 | 南京云岸信息科技有限公司 | 一种物联网通信方法及系统、网关模块 |
-
2019
- 2019-03-19 CN CN201910208477.1A patent/CN109769001B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103607423A (zh) * | 2013-10-23 | 2014-02-26 | 深圳海联讯科技股份有限公司 | 一种基于WebSocket协议的分布式广播系统 |
CN108616606A (zh) * | 2018-08-01 | 2018-10-02 | 湖南恒茂高科股份有限公司 | 一种物联网通信方法及装置 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110430216A (zh) * | 2019-08-16 | 2019-11-08 | 微位(深圳)网络科技有限公司 | 区块链节点间的通信方法及装置 |
CN110704467A (zh) * | 2019-10-12 | 2020-01-17 | 上海智引信息科技有限公司 | 基于b/s架构实现数据实时更新处理的系统及其方法 |
CN111031059A (zh) * | 2019-12-23 | 2020-04-17 | 河南派亚尼尔自动化设备有限公司 | 一种基于WebSocket的物联网大屏监控系统及方法 |
CN111245927A (zh) * | 2020-01-09 | 2020-06-05 | 济南邦德激光股份有限公司 | 一种激光切割设备的远程控制方法及系统 |
WO2021258753A1 (zh) * | 2020-06-24 | 2021-12-30 | 广东浪潮智慧计算技术有限公司 | 一种业务处理方法、装置及电子设备和存储介质 |
CN111770157A (zh) * | 2020-06-24 | 2020-10-13 | 广东浪潮大数据研究有限公司 | 一种业务处理方法、装置及电子设备和存储介质 |
CN111770157B (zh) * | 2020-06-24 | 2023-04-18 | 广东浪潮大数据研究有限公司 | 一种业务处理方法、装置及电子设备和存储介质 |
CN112039899A (zh) * | 2020-09-01 | 2020-12-04 | 深圳创维数字技术有限公司 | 虚拟现实系统控制方法、系统和存储介质 |
CN112911022A (zh) * | 2021-03-25 | 2021-06-04 | 北京数字磐石科技有限公司 | 本地服务器和云服务器的数据同步方法和装置 |
CN113093670A (zh) * | 2021-03-25 | 2021-07-09 | 北京嘉联优控科技有限公司 | 一种仪控状态监控方法、系统及监控平台 |
CN113497829A (zh) * | 2021-06-02 | 2021-10-12 | 江苏小牛电子科技有限公司 | 一种基于websocket控制电子班牌的方法 |
CN113497829B (zh) * | 2021-06-02 | 2024-02-13 | 江苏小牛电子科技有限公司 | 一种基于websocket控制电子班牌的方法 |
CN115190334A (zh) * | 2022-06-01 | 2022-10-14 | 阿里巴巴(中国)有限公司 | 一种状态沟通方法、装置、控制设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109769001B (zh) | 2022-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109769001A (zh) | 一种物联网数据传输方法及系统 | |
CN106790595B (zh) | 一种Docker容器主动负载均衡装置及方法 | |
DE19836347C2 (de) | Fehlertolerantes Computersystem | |
CN109327351B (zh) | 日志数据的实时采集方法、装置、电子设备及存储介质 | |
CN107391276B (zh) | 分布式监听方法、监听控制装置及系统 | |
CN103262044A (zh) | 虚拟机失效转移管理的方法及其支持系统 | |
CN103856392A (zh) | 消息推送方法及其外发服务器和外发服务器系统 | |
CN109597723A (zh) | 用于地铁综合监控系统的双机热备冗余实现系统及方法 | |
CN101965691B (zh) | 电缆冗余以及联网系统 | |
CN112506702B (zh) | 数据中心容灾方法、装置、设备及存储介质 | |
JP5331585B2 (ja) | フォールトトレラントコンピュータシステムおよびフォールトトレラントコンピュータシステムにおける方法 | |
CN110941665A (zh) | 节点间的数据同步方法、数据同步装置及数据同步设备 | |
CN102497498A (zh) | 一种广播电视播出控制方法、装置及系统 | |
RU2431174C1 (ru) | Комплекс резервируемых программно-аппаратных средств автоматизации контроля и управления | |
CN1988477A (zh) | 具有高可用性特征的网络管理系统 | |
CN117762474A (zh) | 一种数据库高可用软件管理方法、装置及系统 | |
WO2019240274A1 (ja) | オーケストレーション装置、vnfm装置、管理方法及びプログラム | |
CN107038094A (zh) | 一种数据备份方法及装置 | |
CN101000572A (zh) | 机箱管理系统及方法 | |
CN111181766B (zh) | 一种冗余fc网络系统及其实现交换机动态配置的方法 | |
CN100547560C (zh) | 一种机群监控系统和方法 | |
CN107395478A (zh) | 一种用于高速卷烟包装设备的网络控制系统以及网络通信模块 | |
CN106921746A (zh) | 一种数据同步系统及数据同步方法 | |
JP7013326B2 (ja) | 情報処理システム、情報処理装置、および情報処理システムの制御方法 | |
JP7442751B1 (ja) | 制御プログラム、監視制御システム、ゲートウェイ装置及び制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |