掌桥专利:专业的专利平台
掌桥专利
首页

一种工业物联网的数据通信系统、方法

文献发布时间:2023-06-19 13:27:45


一种工业物联网的数据通信系统、方法

技术领域

本发明涉及一种工业物联网的数据通信系统、方法,属于物联网数据通信技术领域。

背景技术

随着科学技术的不断进步,工业生产逐渐形成以设备为主,以人为辅的局势,大大增加出产速度,提高了效率。通过操作人员和机械设备相结合的方式可以确保设备的正常运行和设备数据的准确监测,每个生产工人只需要负责一部分工作,大大降低了对工人的素质要求,降低了人工成本。

然而,现有的生产流水线往往未与互联网之间相互联系,只是单一的操作人员与机械设备的结合,流水线上采集的数据可在机械设备的显示屏上读取,但非现场操作人员的管理人员或者上层领导等无法随时随地的获取流水线数据信息。而且,现有的生产流水线中的部分功能还是依赖操作人员的现场操作,操作人员无法对机械设备进行远程监控,也无法利用互联网下达控制指令控制设备,工业生产的自动化程度有限,可控性、生产效率等得不到进一步提高,成本无法进一步降低。此外,工业生产中历史数据的存储与调取也是至关重要的,大量的历史运行数据需要严苛的存储条件,现有的机械设备的内存不足以储存海量数据,无法满足工业生产升级需求。

因此,将工业生产设备与互联网连接形成工业物联网,是工业生产的重要发展方向。

发明内容

为了解决现有技术中工业生产自动化程度有限、无法实现远程监控的问题,本发明提出了一种工业物联网的数据通信系统、方法,在物联网框架下通过服务器实现工业设备端与web端的数据交互和数据存储,实现工业设备的远程控制,提高工业生产的自动化程度和效率。

为解决上述技术问题,本发明采用了如下技术手段:

第一方面,本发明提出了一种工业物联网的数据通信系统,包括工业设备端、服务器前端、服务器后端、web端和MySQL数据库,其中:

工业设备端用于采集工业设备运行数据,并对工业设备进行参数配置和运行控制;

web端用于显示工业设备运行数据、运行状态和故障状态,还用于生成数据查询请求和指令数据;

服务器前端用于获取web端的数据查询请求,并根据数据查询请求调取MySQL数据库中的历史运行数据;

服务器后端用于接收和转发工业设备运行数据和web端的指令数据;

MySQL数据库用于存储工业设备运行数据、指令数据和服务器后端的解析数据。

结合第一方面,进一步的,所述指令数据包括配置指令、控制指令、协议切换指令、查询指令。

结合第一方面,进一步的,服务器前端进程包括主线程和服务线程,其中,主线程用于获取web端的数据查询请求;服务线程用于根据数据查询请求读取MySQL数据库中的历史运行数据,并对历史运行数据进行数据解析和格式转换后返回web端。

结合第一方面,进一步的,服务器前端与web端通过HTTP协议进行数据交互,web端的数据格式为JSON格式。

结合第一方面,进一步的,服务器后端采用软件状态机,所述软件状态机包括初始化状态和工作状态;服务器后端进程包括主线程和MQTT线程,其中,主线程用于控制软件状态机的状态跳转;MQTT线程用于接收工业设备运行数据,对工业设备运行数据进行解析、处理和封装,将封装后的工业设备运行数据发送至web端和MySQL数据库,MQTT线程还用于接收web端的指令数据,将指令数据解析、封装成工业设备可识别的通信协议数据后发送至工业设备端和MySQL数据库。

结合第一方面,进一步的,服务器后端与工业设备端之间通过MQTT协议进行数据交互。

结合第一方面,进一步的,MQTT协议的消息主题包括消息方向、设备id、web端的client id和数据类型,其中,消息方向用于区分消息接收方,设备id用于区分不同的工业设备端,client id用于区分不同的web端,数据类型包括data、config、action和status。

结合第一方面,进一步的,MySQL数据库通过数据表格存储数据,MySQL数据库包括设备配置表、设备状态表、设备临时数据表、设备历史数据表、当前告警记录表、告警历史记录表和用户表。

第二方面,本发明提出了一种工业物联网的数据通信方法,包括如下步骤:

服务器后端通过MQTT协议接收工业设备运行数据;

服务器后端对工业设备运行数据进行解析处理,获得工业设备的运行状态和故障状态;

服务器后端将工业设备运行数据、运行状态和故障状态封装成JSON格式后发送至web端,并存储到MySQL数据库;

Web端对工业设备运行数据、运行状态和故障状态进行显示;

服务器后端通过MQTT协议接收web端的指令数据;

服务器后端将指令数据解析、封装成工业设备可识别的通信协议数据后发送至工业设备端,并存储到MySQL数据库;

工业设备端根据通信协议数据对工业设备进行参数配置或运行控制;

服务器前端通过HTTP协议获取web端的数据查询请求;

服务器前端根据数据查询请求调取MySQL数据库中的历史运行数据,并将历史运行数据以JSON格式发送到web端。

结合第二方面,进一步的,所述方法还包括如下步骤:

Web端根据工业设备的故障状态生成告警信息并显示。

采用以上技术手段后可以获得以下优势:

本发明提出了一种工业物联网的数据通信系统、方法,通过互联网连接多功能数据处理服务器、工业设备和web端,形成工业物联网,并在工业物联网中通过服务器实现数据中转、数据处理、指令下发等功能。web端可以通过服务器实时获取并显示工业设备的各项运行数据,还可以通过指令远程设置工业设备的工作参数、控制工业设备的运行状态,实现对工业设备的远程监控和远程操作,提高工业生产的自动化程度和效率。

在本发明中,MySQL数据库可以实现数据的海量存储和快速调取功能,为工业生产中获取和显示数据提供基础。服务器后端可以通过指令切换与工业设备之间的协议类型,解析多种设备可识别通信协议,提高数据通信的适应性和通信效率。

附图说明

图1为本发明一种工业物联网的数据通信系统的结构示意图;

图2为本发明实施例中服务器前端的进程示意图;

图3为本发明实施例中服务器后端的进程示意图;

图4为本发明实施例中MySQL数据库的操作流程图;

图5为本发明一种工业物联网的数据通信方法的步骤流程图;

图6为本发明实施例中服务器后端采集并上报工业设备运行数据的流程图;

图7为本发明实施例中服务器后端给工业设备端下发指令数据的流程图。

具体实施方式

下面结合附图对本发明的技术方案作进一步说明:

本发明提出了一种工业物联网的数据通信系统、方法,特别涉及一种服务器端软件对工业设备进行数据存储和指令控制的关键技术,可以对不同通信协议的工业设备进行连接管理、数据存储、运行管理和告警管理等。

本发明提出了一种工业物联网的数据通信系统,如图1所示,主要包括工业设备端、服务器、web端和MySQL数据库,其中,服务器又分为服务器前端和服务器后端。工业设备端可通过有线或无线网络与服务器和web端连接,服务器与工业设备端可以通过MQTT协议进行通信,web端也可以通过MQTT协议与工业设备端通信。

工业设备端设置在工业生产流水线的机械工业设备处,其用于按照设置的采样频率采集工业设备运行数据,同时还用于根据服务器下方的指令对工业设备进行参数配置和运行控制,实现工业设备的远程监控。

web端可以通过服务器获取并显示工业设备运行数据、运行状态和故障状态,web端还可以根据需求生成数据查询请求和指令数据。web端的数据格式为JSON格式,JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于ECMAScript(欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。JSON格式的数据易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

web端可以采用多种方法显示工业设备的实时数据,一种方法是轮询法,即web端每隔一段时间发送请求至服务器,轮询查找是否有数据更新;另一种方法是web端只要作为MQTT的client,工业设备主动上报给web端,web端直接把数据显示出来,这种方法的优点是可以实时地显示数据。在本发明中,服务器主要采用第二种方法处理工业设备端上报的数据,可以从设计层面解耦web端和工业设备端,极大提高web端的工作效率和稳定性能,解决web端负载重的问题,同时也缓解通信模块的压力。

指令数据包括配置指令、控制指令、协议切换指令、查询指令等。配置指令用于配置工业设备的各项参数,控制指令用于控制工业设备动作,协议切换指令用于切换工业设备端的通信协议,查询指令用于获取服务器或者工业设备端返回的消息。

服务器前端主要是与web端交互,执行web端的请求,其可以获取web端的数据查询请求,并根据数据查询请求调取MySQL数据库中的历史运行数据。如图2所示,服务器前端进程包括主线程和服务线程,其中,主线程用于获取web端的数据查询请求;服务线程用于根据数据查询请求读取MySQL数据库中的历史运行数据,并对历史运行数据进行数据解析和格式转换,将历史运行数据组织成JSON格式返回给web端。服务器前端与web端通过HTTP协议进行数据交互,web页面需要实现页面设置功能,比如设备运行数据显示、运行状态显示、故障状态信息显示等,这时需要通过http协议向服务器前端进程发送请求,服务器前端进程中的服务线程从数据库中提取数据,并发送应答信息,完成数据的交互。

服务器后端采用软件状态机,软件状态机包括初始化状态和工作状态;服务器后端进程包括主线程和MQTT线程,其中,主线程负责状态机的跳转,MQTT线程负责消息的处理。如图3所示,服务器后端通过主线程控制软件状态机的状态跳转,然后通过MQTT线程接收工业设备运行数据,对工业设备运行数据进行解析、处理和封装,将封装后的工业设备运行数据发送至web端和MySQL数据库,服务器后端还可以通过MQTT线程接收web端的指令数据,将指令数据解析、封装成工业设备可识别的通信协议数据后发送至工业设备端和MySQL数据库。服务器后端可以解析多个协议的数据格式,如modbus协议、OPC协议、OPCUA协议等。

MQTT线程一般情况下会接收到3种消息,第一种是来自web端的的配置请求消息,与配置指令关联,此消息用来请求工业设备的基本配置,例如工业设备端采样频率等,其数据格式为TLV格式;第二种是来自工业设备端的设备数据上报消息,其数据格式是设备的通信协议或者程式,MQTT线程需要对工业设备端上报的工业设备运行数据进行解析;第三种是来自web端的查询/操作结果上报消息,与查询指令关联,其数据格式是工业设备的通信协议,MQTT线程同样需要对查询指令进行解析。MQTT线程可以把接收到的数据(如工业设备运行数据)组织成JSON格式,发送给web端,web端可以快速方便的解析出相关数据并显示;同样,web端把数据(如指令数据)组织成JSON格式发送给MQTT线程,MQTT线程就能快速方便解析、处理和封装数据。

MySQL数据库用于存储工业设备运行数据、指令数据和服务器后端的解析数据。为了方便查询管理数据,MySQL数据库中设置有多个数据表格,包括设备配置表、设备状态表、设备临时数据表、设备历史数据表、当前告警记录表、告警历史记录表、用户表、程式管理表和用户操作记录表等,图4展示了设备配置表、设备临时数据表和设备历史数据表的操作流程。

设备配置表用来存储与工业设备相关的各种配置参数,设备配置表中的字段包括设备id、逻辑id、采样频率、运行模式、温度、湿度等,当工业设备端给服务器发送数据后,服务器到设备配置表中遍历查找设备id,如果没有查到设备id则说明该设备是首次连接,需要创建新的表,如果在设备配置表中找到该设备id,则直接根据工业设备运行数据更新设备配置表中的字段。

设备状态表用来记录工业设备与服务器的连接状态,其中的设备连接状态字段指工业设备通过通信模块连接到服务器的状态,可能是未连接,连接,掉线等状态。

设备临时数据表用于存储短时间内的工业设备运行数据,服务器后端接收到新的工业设备运行数据后可以在设备临时数据表中查找对应设备id已存的数据量,当已存数据量大于数据量设定值时删除旧的一条数据,再插入新的一条数据,当小于数据量设定值时,直接插入数据。设备临时数据表为web端图表显示服务,其中的数据不存盘,服务器前端在收到web端的数据查询请求后可以直接从设备临时数据表中查找相关数据,也可以从设备历史数据表中查询相关数据。

设备历史数据表用来存储工业设备的长期运行数据,其程序设计逻辑与设备配置表相同;当前告警记录表只存储当前没有消除的告警信息,不存盘;告警历史记录表用于存储工业物联网中出现过的所有告警信息,其包括告警时间、告警内容、告警级别、告警动作等字段,告警动作字段有分为产生告警和清除告警,二者都要存盘,方便历史查询。

在本发明中,服务器后端与工业设备端之间主要通过MQTT协议进行数据交互,MQTT是一种基于发布/订阅(publish/subscribe)模式的“轻量级”通讯协议,其消息主题设计十分重要,一个好的消息主题,能够简化编程模型。

本发明设计的MQTT协议的消息主题包括消息方向、设备id、web端的client id和数据类型,其中,消息方向用于区分消息接收方,随着接收方的不同,消息主题也需要相应改变,比如发给服务器用to_server,发给工业设备用to_device,发给 web端用to_browser;设备id用于区分不同的工业设备端,当存在多个工业设备连接服务器时,服务器可以选择特定的工业设备进行数据传输;client id用于区分不同的web端;数据类型用来区分服务器对工业设备下达的操作指令类型,数据类型包括data、config、action和status,data表示设备实时数据、config表示配置数据、action表示对设备的控制动作、status表示查询相关信息。

服务器后端订阅/to_server/data 、/to_server/config 、/to_server/action、/to_server/status等主题,服务器和web端都可以通过/to_server主题接收到工业设备端采集的工业设备运行数据,并将采集到的数据存入数据库中。

服务器发布 / to_device / device_id / config、/ to_device / device_id /action、/to_device/device_id/status等主题,远程配置工业设备运行参数、控制工业设备的运行状态和设置工业设备的运行数据,其中,如果device_id是一个数字,那么就是发给特定设备的消息内容,如果device_id是全f,例如0xffffffff,则是发送给所有的设备的消息,所有设备都可以收到该消息内容。当工业设备端完成对工业设备的控制后,服务器会接收到/to_server/ status主题的消息,服务器会接收到操作执行后的反馈结果。

本发明中服务器拥有指定终端通信协议的功能,当服务器向/to_device/protocol主题发送切换通信协议消息,工业设备端收到该消息后执行协议切换操作,将通信协议切换到指定协议,并向/to_server/ status主题发送数据、反馈协议切换结果。

在本发明中,服务器前端和web端之间数据的交互是由HTTP协议完成的,HTTP协议通过请求和应答完成,一般分为建立连接、发送请求信息、发送响应信息、关闭连接四个过程。Web端需要实现页面设置功能,比如设备运行数据显示、运行状态显示、故障状态信息显示等,因此需要通过HTTP协议向服务器前端发送请求,服务器从MySQL数据库中提取历史运行数据,并发送应答信息。具体的,服务器发布/to_browser/client_id/data、/to_browser/client_id/config、/to_browser/client_id /action、/to_browser/client_id/status等消息主题,其中client_id为web端浏览器的id,浏览器订阅消息主题获得JSON格式的数据消息并在页面上将数据显示出来。

本发明还提出了一种工业物联网的数据通信方法,主要包括工业设备运行数据通信、工业设备控制数据通信和数据查询,如图5~7所示,具体包括如下步骤:

(1)服务器后端通过MQTT协议接收工业设备运行数据。

(2)服务器后端对工业设备运行数据进行解析处理,获得工业设备的运行状态和故障状态。

(3)服务器后端将工业设备运行数据、运行状态和故障状态封装成JSON格式后发送至web端,并存储到MySQL数据库。

(4)Web端对工业设备运行数据、运行状态和故障状态进行显示.

服务器可以订阅工业设备端发布的实时数据,将该实时数据解析出来后存储到MySQL数据库中,然后将解析好的数据组织成JSON格式发布出去,web端订阅服务器后端发布的数据,收到解析后的数据并显示出来。

(5)服务器后端通过MQTT协议接收web端的指令数据,包括配置指令、控制指令、协议切换指令、查询指令等。

(6)服务器后端将指令数据解析、封装成工业设备可识别的通信协议数据后发送至工业设备端,并存储到MySQL数据库。

(7)工业设备端根据通信协议数据对工业设备进行参数配置或运行控制。

web端利用消息主题下发指令数据,该数据是以JSON格式封装,服务器后端订阅该消息主题,根据指令数据解析提取相应的配置、控制、切换、查询数据,并把数据存入MySQL数据库,然后将web端下发的数据封装成工业设备可识别的通信协议数据,最后通过消息主题发布。当工业设备订阅消息主题,收到特定的通信协议数据后,可根据通信协议数据对工业设备进行控制,并利用消息主题发布控制结果,服务器将解析返回的结果数据并将它组装成JSON格式,发布给web端。web端接收到JSON格式数据的结果,并将数据结果显示出来。

(8)服务器前端通过HTTP协议获取web端的数据查询请求。

(9)服务器前端根据数据查询请求调取MySQL数据库中的历史运行数据,对历史运行数据进行数据解析和格式转换,并将历史运行数据以JSON格式发送到web端。

(10)基于预设的告警条件,服务器后台可以通过工业设备运行数据判断工业设备的故障状态,Web端可以根据工业设备的故障状态生成告警信息并显示,以便操作人员处理故障。

本发明系统和方法可以通过互联网连接多功能数据处理服务器、工业设备和web端,形成工业物联网,并在工业物联网中通过服务器实现数据中转、数据处理、指令下发等功能,通过工业设备端、服务器、web端和MySQL数据库的配合可以实现对工业设备的远程监控和远程操作,提高工业生产的自动化程度和效率。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

技术分类

06120113679136