一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于Modbus协议的数据采集方法、系统、装置及介质与流程

2022-05-06 08:27:50 来源:中国专利 TAG:

一种基于modbus协议的数据采集方法、系统、装置及介质
技术领域
1.本发明涉及数据采集技术领域,更具体地,涉及一种基于modbus协议的数据采集方法、系统、装置及介质。


背景技术:

2.当前,在推进工业制造数字化升级、实施智能制造的过程中,其关键问题之一就是如何通过物联网技术,将分布在产线上的大量设备都连接到物联网平台上,采集其在生产制造过程中所产生的数据,在平台上对这些数据进行数据挖掘分析,与生产流程集成,并通过下发命令对设备进行反向控制,从而实现生产制造过程的透明化,增强可预测性,并对其进行实时监控运维。
3.在构建机联网的过程中,虽然已经有比较多的针对智能设备的协议被提出,并在某些领域应用,但是,对于大量工业企业来说,modbus协议仍然是一种被广泛使用的设备通信协议,modbus协议基于master/slave的架构,对于采用modbus协议设备的数据采集,需要通过master服务器对slave节点(设备)的主动轮询才能够采集到设备的实时数据。在实际的轮询过程中,master服务器往往会根据点位表进行轮询,如下表1所示为一个点位表:
4.表1点位表
5.点位名称点位编码数据类型转发地址偏移量任务申请i0r1rwidword001dh1任务状态i0w0rwztidword001eh1合同号i0w0htidstring421fh4任务单号i0w0rwidstring422dh4
6.在这个表中,每一行表示的就是一个点位,代表了从设备上所能采集到的一个数据值,不同的数据类型,所存放的物理位置和长度(偏移量)都各不相同。每次采集时,master节点需要指定读取设备上哪些地址位(转发地址)的数据,在master节点上需要根据点位表中的转发地址和偏移量对各个点位进行解析,转换成实际的数据值。一次读取的过程称为一次通信交互,基于modbus协议的通信交互具有以下特点:
7.1、每次交互只能读取连续地址位的数据;
8.2、地址位不连续的点位,需要通过多次通信交互读取才能采集到点位数据;
9.3、数据类型不同(float、string等)的点位,必须分开读取。
10.在基于modbus协议的数据采集中,通信交互的次数往往是制约master服务器轮询性能的关键因素,交互次数越多,对每台设备每次数据采集所需要的轮询时间就会非常长,从而影响了数据采集的实时性。
11.减少轮询次数的一种可能方法是每次读取时读取一片连续地址位的数据(包含多个点位数据),然后在master服务器上再根据各个点位的转发地址和偏移量进行解释。这种方法的前提是各个点位的地址位是连续的,而在实际工程应用中,点位表中点位的地址往往是不连续的,而且在实际使用过程中,点位是会持续增加或删除的,这会进一步导致点位
地址不连续的现象,故而在实际使用中是无法通过读取连续地址位的方式来读取数据的,而是变成了逐个点位进行轮询读取的方式来获取点位数据,所以随着点位数据的增多,设备数据的实时采集就成了一个瓶颈。现有的做法往往都是通过限制点位个数以及master节点所轮询设备台数的方式来规避这个问题。


技术实现要素:

12.本发明旨在克服上述现有技术的至少一种缺陷,提供一种基于modbus协议的数据采集方法、系统、装置及介质,提高设备的轮询效率,提高数据采集的实时性。
13.本发明采取的技术方案是,一种基于modbus协议的数据采集方法,包括:
14.输入点位表,所述点位表中设有多个点位,每个所述点位对应一个需要采集的设备数据;
15.根据所述设备数据的第一数据类型预设所述点位的轮询频率,所述第一数据类型为根据所述设备数据的轮询时间需求而预设的;
16.根据所述设备数据的第二数据类型,确定所述第二数据类型对应的指定地址区间,所述第二数据类型为根据所述设备数据所代表的业务内容而预设的;
17.根据所述设备数据所属设备的物理空间,在所确定的所述指定地址区间,确定所述设备数据对应的所述点位的地址;
18.根据所述点位的所述轮询频率和所述地址,生成所述点位表对应的调度点位表;
19.根据所述调度点位表对设备进行轮询采集得到所述设备数据。
20.在modbus协议中,本发明通过调度点位表对点位进行轮询采集,每个点位对应一个设备数据,首先对设备数据进行分类后,根据第一数据类型预设设备数据对应点位的轮询频率,按照不同的轮询频率进行轮询,满足了物联网平台对设备数据不同紧急程度的采集要求,提高了数据采集的实时性,消除了设备数据轮询的性能瓶颈;再根据第二数据类型确定设备数据对应点位的指定地址区间,并且根据设备的物理空间,在指定地址区间内确定点位对应的地址,可以实现对地址连续的点位进行批量读取,从而减少了服务器对设备的轮询次数,提高了轮询效率,也有利于加大服务器能够加入的设备数量,降低物联网平台建设实施费用。
21.进一步地,所述第一数据类型包括设备状态数据、设备实时事件及告警事件数据、设备实时采集数据和服务器下发到设备的数据,
22.所述根据所述设备数据的第一数据类型预设所述点位的轮询频率之前,还包括:
23.过滤掉第一数据类型为所述服务器下发到设备的数据对应的所述点位。
24.针对目前工业企业设备数据的特点,可以将设备数据的第一数据类型分为四类:设备状态数据、设备实时事件及告警事件数据、设备实时采集数据、服务器下发到设备的数据。在实际工程应用中,服务器下发到设备的数据是不需要进行轮询采集的,但是这类数据却往往是点位最多的,因此服务器下发到设备的数据会增加了通信交互的次数。本发明在生成调度点位表时,会将服务器下发到设备的数据的点位进行过滤,不存放在调度点位表中,减少通信交互的次数,极大地加快轮询效率。
25.进一步地,所述根据所述设备数据的第一数据类型预设所述点位的轮询频率,包括:
26.将第一数据类型分别为所述设备状态数据、所述设备实时事件及告警事件数据、所述设备实时采集数据对应的所述点位的轮询频率,预设为不同的轮询频率。
27.对于不同第一数据类型的设备数据,其采集频率是不同的,因此针对不同设备数据的实时性要求,分别将三种不同第一数据类型,也即是设备状态数据、设备实时事件及告警事件数据、设备实时采集数据对应的点位预设为不同的轮询频率。
28.进一步地,所述设备状态数据对应的所述点位的轮询频率小于所述设备实时采集数据对应的所述点位的轮询频率,所述设备实时采集数据对应的所述点位的轮询频率小于所述设备实时事件及告警事件数据对应的所述点位的轮询频率。
29.由于第一数据类型的三种不同的设备数据的实时性要求不同,其中,设备实时事件及告警事件及告警事件数据的实时性要求最高,设备实时采集数据和设备状态数据次之,因此,将三种设备数据对应的点位的轮询频率大小依次设置为:设备状态数据对应的点位的轮询频率小于设备实时采集数据对应的点位的轮询频率小于设备实时事件及告警事件数据对应的点位的轮询频率,从而保证设备实时事件及告警事件数据对应点位的轮询采集实时性最高,设备实时采集数据对应的点位的轮询采集实时性次之,设备状态数据对应的点位的轮询采集实时性最低。
30.并且当出现两个轮询频率的轮询时间点刚好重合时,也即是,当出现设备状态和设备实时事件及告警事件数据(和/或设备实时采集数据)轮询时间点刚好重合时,先轮询设备实时事件及告警事件数据(和/或设备实时采集数据),再轮询设备状态数据;当出现设备实时事件及告警事件数据和设备实时采集数据轮询时间点刚好重合时,先轮询设备实时事件及告警事件数据,再轮询设备实时采集数据,从而保证服务器能顺利对设备数据进行轮询。
31.进一步地,所述根据所述点位的所述轮询频率和地址,生成所述点位表对应的调度点位表,包括:所述调度点位表包括若干条调度记录,将轮询频率相同的所述点位合并在同一条所述调度记录。
32.将原始输入的点位表通过本发明预设的规则进行分析后生成对应的调度点位表,调度点位表包括若干条调度记录,根据预设的点位的轮询频率,在生成的调度点位表中轮询频率相同的点位会被合并在同一条调度记录中,形成点位集中的表结构,根据不同轮询频率需求对点位进行轮询采集设备数据时,能够在调度点位表快速找到要轮询的点位,启动相应点位的轮询线程,对符合轮询频率的点位进行轮询,大大加快了轮询采集的处理时间。
33.进一步地,所述根据所述点位的所述轮询频率和所述地址,生成所述点位表对应的调度点位表,包括:每条所述调度记录包括若干条地址轮询记录,将一条所述调度记录中地址连续的所述点位合并在同一条所述地址轮询记录,并根据所合并的所述点位的地址设置所述地址轮询记录的起始地址和结束地址。
34.根据确定的点位的地址,在生成的调度点位表中,地址连续的点位的地址会被合并在同一条地址轮询记录中,同一条地址轮询记录中的点位的地址设置在地址轮询记录的起始地址和结束地址,当对点位进行轮询采集设备数据时,同一起始地址和结束地址区间内的点位的地址是连续的,因此在每次读取时只需要进行一次读取即可获取该起始地址和结束地址区间内的全部点位,减少了轮询次数,大大提高了轮询效率。
35.进一步地,所述第二数据类型包括生产控制指令、设备状态、生产控制内容、设备实时事件及告警事件、管理数据、生产业务数据、品控数据、设备工艺参数。
36.针对工业企业设备数据的特点,本发明还可以将设备数据划分为多个第二数据类型,本发明具体划分为八类:生产控制指令、设备状态、生产控制内容、设备实时事件及告警事件、管理数据、生产业务数据、品控数据、设备工艺参数。再根据这八种第二数据类型确定每种类型对应的指定地址区间,实现了在指定地址区间内,可以根据设备的物理空间对应确定设备数据点位的地址。
37.本发明采取的另一种技术方案是,一种基于modbus协议的数据采集系统,包括:
38.点位输入模块,用于输入点位表,所述点位表中设有多个点位,每个所述点位对应一个需要采集的设备数据;
39.轮询频率模块,用于根据所述设备数据的第一数据类型预设所述点位的轮询频率,所述第一数据类型为根据所述设备数据的轮询时间需求而预设的;
40.地址区间模块,用于根据所述设备数据的第二数据类型,确定所述第二数据类型对应的指定地址区间,所述第二数据类型为根据所述设备数据所代表的业务内容而预设的;
41.地址确定模块,用于根据所述设备数据所属设备的物理空间,在所确定的所述指定地址区间,确定所述设备数据对应的所述点位的地址;
42.调度生成模块,用于根据所述点位的所述轮询频率和所述地址,生成所述点位表对应的调度点位表;
43.轮询采集模块,用于根据所述调度点位表对设备进行轮询采集得到所述设备数据。
44.在modbus协议中,本发明通过调度生成模块中的调度点位表对点位进行轮询采集,每个点位对应一个设备数据,首先通过点位轮询频率模块对设备数据进行分类后,根据第一数据类型预设设备数据对应点位的轮询频率,按照不同的轮询频率进行轮询,满足了物联网平台对设备数据不同紧急程度的采集要求,提高了数据采集的实时性,消除了设备数据轮询的性能瓶颈;再通过地址确定模块实现根据第二数据类型确定设备数据对应点位的指定地址区间,并且根据设备的物理空间,在指定地址区间内确定点位对应的地址,可以实现对地址连续的点位进行批量读取,从而减少了服务器对设备的轮询次数,提高了轮询效率,也有利于加大服务器能够加入的设备数量,降低物联网平台建设实施费用。
45.本发明采取的另一种技术方案是,一种数据采集装置,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现所述的基于modbus协议的数据采集方法的步骤。
46.本发明采取的另一种技术方案是,一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现所述的基于modbus协议的数据采集方法的步骤。
47.与现有技术相比,本发明的有益效果在于:本发明一种基于modbus协议的数据采集方法、系统、装置及介质,根据第一数据类型预设设备数据对应点位的轮询频率,按照不同的轮询频率进行轮询,满足了物联网平台对设备数据不同紧急程度的采集要求,提高了数据采集的实时性,消除了设备数据轮询的性能瓶颈;再根据第二数据类型确定设备数据对应点位的指定地址区间,并且根据设备的物理空间,在指定地址区间内确定点位对应的
地址,可以实现对地址连续的点位进行批量读取,从而减少了服务器对设备的轮询次数,提高了轮询效率,也有利于加大服务器能够加入的设备数量,降低物联网平台建设实施费用。
附图说明
48.图1为本发明一种基于modbus协议的数据采集方法的流程图。
49.图2为本发明实际应用中轮询采集设备数据的架构图。
50.图3为本发明一种基于modbus协议的数据采集系统的结构图。
具体实施方式
51.本发明附图仅用于示例性说明,不能理解为对本发明的限制。modbus协议是一个master/slave架构的串行协议,有一个节点是master节点,其他使用modbus协议参与通信的节点是slave节点,每一个slave设备都有一个唯一的地址,地址值在1到247之间。在本发明中,master节点指的是master服务器,slave节点指的是接入master服务器的多个设备,在物联网领域中,基于modbus协议采集设备数据时,master服务器按照点位表对设备进行主动轮询,进而采集到设备的实时数据。
52.目前基于modbus协议的通信交互需要通过点位表对点位进行逐一交互读取才能采集到设备数据,从而导致轮询次数多,采集所需要的轮询时间长,影响数据采集的实时性,并且随着点位的增多,设备数据的实时采集性能下降,使得基于modbus协议采集数据的局限性大。因此,为了突破现有技术的缺陷,本发明对现有点位表进行改进,生成对应的调度点位表,服务器通过调度点位表对点位进行集中和批量化轮询,可以减少服务器对设备的轮询次数,提高了轮询效率和数据采集的实时性能。
53.实施例1
54.请参阅图1,图1所示为本发明实施例一种基于modbus协议的数据采集方法的流程图,其方法包括以下步骤:
55.s100、输入点位表,所述点位表中设有多个点位,每个所述点位对应一个需要采集的设备数据;
56.如背景技术中表1所示的点位表,每一行表示的就是一个点位,每个点位代表从设备上采集到的设备数据,并且点位表中包括点位名称、点位编码、数据类型、转发地址和偏移量,服务器根据点位表对设备数据进行采集时,一般通过指定读取哪些转发地址的点位,再根据转发地址和偏移量对点位进行解析,转换成实际的设备数据值。
57.s110、根据所述设备数据的第一数据类型预设所述点位的轮询频率,所述第一数据类型为根据所述设备数据的轮询时间需求而预设的;
58.优选地,所述第一数据类型包括设备状态数据、设备实时事件及告警事件数据、设备实时采集数据和服务器下发到设备的数据,
59.所述根据所述设备数据的第一数据类型预设所述点位的轮询频率之前,还包括:过滤掉第一数据类型为所述服务器下发到设备的数据对应的所述点位。
60.所述根据所述设备数据的第一数据类型预设所述点位的轮询频率,包括:将第一数据类型分别为所述设备状态数据、所述设备实时事件及告警事件数据、所述设备实时采集数据对应的所述点位的轮询频率,预设为不同的轮询频率。
61.具体地,所述设备状态数据对应的所述点位的轮询频率小于所述设备实时采集数据对应的所述点位的轮询频率,所述设备实时采集数据对应的所述点位的轮询频率小于所述设备实时事件及告警事件数据对应的所述点位的轮询频率。
62.本实施例按照工业企业设备数据的特点,也即是按照第一数据类型将设备数据划分为四大类:设备状态数据(status)、设备实时事件及告警事件数据(event_data)、设备实时采集数据(real_time_data)、服务器下发到设备的数据(general_data),其中,设备状态数据(status)表示的是设备的实时状态数据;设备实时事件及告警事件数据(event_data)表示的是由设备实时产生的需要上层应用实时处理的事件或者设备告警数据;设备实时采集数据(real_time_data)表示设备实时采集到的相关数据,如温度、湿度等等;服务器下发到设备的数据(general_data)表示由上层应用下发给设备的数据,如生产过程的一些业务数据及控制信息等等。
63.对于上述四种不同类型的设备数据,其采集频率是不同的,设备实时事件及告警事件数据(event_data)实时性要求最高;设备状态数据(status)和设备实时采集数据(real_time_data)次之;而服务器下发到设备的数据(general_data)是不需要轮询读取的,并且在实际工程应用中,服务器下发到设备的数据(general_data)的点位最多,变化最为频繁,导致了通信交互的次数增多。因此,在预设不同类型的设备数据对应的点位的轮询频率之前,首先将服务器下发到设备的数据(general_data)进行过滤,过滤掉的服务器下发到设备的数据(general_data)不会存放在对应生成的调度点位表中,使得服务器根据调度点位表进行轮询采集时,大大减少点位轮询的次数,提高轮询的效率和数据采集的实时性。
64.过滤掉服务器下发到设备的数据(general_data)后,根据设备实时事件及告警事件数据(event_data)、设备状态数据(status)和设备实时采集数据(real_time_data)三种设备数据不同的实时性要求,预设对应的三种轮询频率;并且根据实时性的大小,预设设备数据对应的点位的轮询频率的大小关系,具体为:设备状态数据(status)对应的点位的轮询频率小于设备实时采集数据(real_time_data)对应的点位的轮询频率,设备实时采集数据(real_time_data)对应的点位的轮询频率小于设备实时事件及告警事件数据(event_data)对应的点位的轮询频率,从而保证设备实时事件及告警事件数据(event_data)对应的点位的轮询采集实时性最高,设备实时采集数据(real_time_data)对应的点位的轮询采集实时性次之,设备状态数据(status)对应的点位的轮询采集实时性最低。
65.针对master/slave架构下设备通信的限制,即同一时刻一台设备只能被一个服务器读取数据,因此在不同轮询频率下,当两个轮询频率的轮询时间点刚好重合,同时对同一台设备进行轮询时,就会出现轮询失败的情况。为了应对这种情况,本实施例设定了当出现两个或多个不同类型的点位的轮询频率的轮询时间点刚好重合时,也即是当出现设备状态和设备实时事件及告警事件数据(和/或设备实时采集数据)轮询时间点刚好重合时,先轮询设备实时事件及告警事件数据(和/或设备实时采集数据),再轮询设备状态数据;当出现设备实时事件及告警事件数据和设备实时采集数据轮询时间点刚好重合时,先轮询设备实时事件及告警事件数据,再轮询设备实时采集数据,从而保证服务器能顺利对设备数据进行轮询。
66.根据以上说明和工业设备数据采集频率的需求,本实施例提出了一种示例性定
义,对设备状态数据(status)、设备实时事件及告警事件数据(event_data)、设备实时采集数据(real_time_data)三种数据类型分别定义了如下表2的轮询频率:
67.表2三种设备数据的轮询频率
68.数据类别轮询频率(ms)设备状态60000设备实时事件及告警事件数据500设备实时采集数据2000
69.因此,本实施例通过第一数据类型对设备数据进行分类为四种类型,首先过滤掉服务器下发到设备的数据,减少服务器轮询次数,提高数据采集的实时性,再预设设备实时事件及告警事件数据、设备状态数据和设备实时采集数据对应点位的轮询频率,使得三种设备数据对应的点位按照不同的轮询频率进行轮询,实现对数据轮询的精细化控制,满足了不同物联网平台对设备数据不同紧急程度的要求,提高了数据采集的实时性,消除了设备数据轮询的性能瓶颈。
70.s120、根据所述设备数据的第二数据类型,确定所述第二数据类型对应的指定地址区间,所述第二数据类型为根据所述设备数据所代表的业务内容而预设的;
71.s130、根据所述设备数据所属设备的物理空间,在所确定的所述指定地址区间,确定所述设备数据对应的所述点位的地址;
72.具体地,所述第二数据类型包括生产控制指令、设备状态、生产控制内容、设备实时事件及告警事件、管理数据、生产业务数据、品控数据、设备工艺参数。
73.本实施例按照另一种工业企业设备数据的特点,也即是按照第二数据类型将设备数据划分为八大类:生产控制指令、设备状态、生产控制内容、设备实时事件及告警事件、管理数据、生产业务数据、品控数据、设备工艺参数。
74.在划分为八大类设备数据后,再根据这八个第二数据类型确定对应的指定地址区间,本实施例由此提出了一种示例性定义,如下表3所示,对以下八类设备数据进行具体划分,
75.表3八类设备数据
76.[0077][0078]
表4数据类型编码长度
[0079][0080]
根据表3所示,首先将设备数据划分为八类,并指定每一类对应的指定地址区间,比如:指定设备数据类型为生产控制指令对应的指定地址区间为0000-9999,指定设备数据类型为设备状态对应的指定地址区间为41000-41099,指定设备数据类型为生产控制内容对应的指定地址区间为41100-41799,其它设备数据类型对应的指定地址区间具体可参照表3内容。
[0081]
其次,在点位表输入和设置时,对于相同数据类别的点位,根据点位对应的设备数据所属的设备的物理空间,在指定地址区间内确定点位对应的地址,从而获得在相同数据类别的多个点位的地址为连续地址,比如:假设在设备数据类型为生成控制指令这一数据类别中,包括多个点位,其中根据具体设备的物理空间确定出点位对应的地址,这些地址落在指定地址区间0000-9999,因此产生多个连续的地址,并且根据表3和表4可知,八个数据类别的数据类型为do、float、word、string,每类数据类别的数据类型都是相同的,其长度(字节)也是相同的,因此,每个数据类别内产生的多个连续的地址的长度(字节)是相同的,后续可以通过一次性批量轮询读取这些连续的地址,来识别对应的设备数据。
[0082]
因此,本实施例根据第二数据类型将设备数据划分为八个数据类别,通过八个数据类别确定设备数据对应点位的指定地址区间,并且根据设备的物理空间,在指定地址区间内确定多个点位连续的地址,实现对地址连续的点位进行批量读取,从而减少了服务器对设备的轮询次数,提高了轮询效率,也有利于加大服务器能够加入的设备数量,降低物联网平台建设实施费用。
[0083]
s140、根据所述点位的所述轮询频率和所述地址,生成所述点位表对应的调度点位表;
[0084]
s150、根据所述调度点位表对设备进行轮询采集得到所述设备数据。
[0085]
优选地,所述根据所述点位的所述轮询频率和所述地址,生成所述点位表对应的调度点位表,包括:所述调度点位表包括若干条调度记录,将轮询频率相同的所述点位合并在同一条所述调度记录。
[0086]
优选地,所述根据所述点位的所述轮询频率和所述地址,生成所述点位表对应的调度点位表,包括:每条所述调度记录包括若干条地址轮询记录,将一条所述调度记录中地址连续的所述点位合并在同一条所述地址轮询记录,并根据所合并的所述点位的地址设置所述地址轮询记录的起始地址和结束地址。
[0087]
在本实施例中,通过预设点位的轮询频率和确定点位的地址后,基于轮询频率和地址,生成点位表对应的调度点位表,本实施例对此作出调度点位表的示例性定义,具体见表5所示:
[0088]
表5调度点位表
[0089][0090]
根据表5所示,在调度点位表中,调度点位表包括若干条调度记录,每条调度记录包括若干条地址轮询记录,首先,轮询频率相同的点位会被合并在同一条调度记录,其次,在相同轮询频率下的所有点位,也即是同一条调度记录中,地址位连续的点位合并在同一条所述地址轮询记录,所合并的点位的地址会被合并在地址轮询记录的起始地址和结束地址中,该调度点位表会被存放在存储介质上,如数据库。
[0091]
其中,对于标注为服务器下发到设备的数据(general_data)的点位会被直接过滤掉,不存放在调度点位表中,减少轮询次数,加快轮询采集的时间。
[0092]
其中,根据预设的点位的轮询频率,在生成的调度点位表中轮询频率相同的点位会被合并在同一条轮询记录中,形成点位集中的表结构,根据不同轮询频率需求对点位进行轮询采集设备数据时,能够在调度点位表快速找到要轮询的点位,启动相应点位的轮询线程,对符合轮询频率的点位进行轮询,大大加快了轮询采集的处理时间。
[0093]
其中,根据确定的点位的地址,在生成的调度点位表中,地址连续的点位的地址会被合并在同一条地址轮询记录中,同一条地址轮询记录中的点位的地址设置在地址轮询记录的起始地址和结束地址中,当对点位进行轮询采集设备数据时,同一起始地址和结束地址区间内的点位的地址是连续的,因此在每次读取时只需要进行一次读取即可获取该起始地址和结束地址区间内的全部点位,减少了轮询次数,大大提高了轮询效率。
[0094]
另外地,根据调度点位表对设备进行轮询采集得到所述设备数据的过程,具体为:首先,会按照不同轮询频率的需求,在不同时间节点,启动相应的点位轮询线程,对符合该轮询频率的点位进行轮询。其次,在对具体点位轮询时,对于起始地址和结束地址区间内的连续地址的点位,会通过批量读取的方式,只发送一条指令,获取多个连续地址的点位;对
于非连续的地址,则会逐个点位发送轮询指令,进行点位读取。
[0095]
请参阅图2,图2为在实际工程应用中,用户、物联网平台和设备实现轮询采集数据的整体架构图,根据图2说明本实施例方法的具体实现过程为:
[0096]
第一,一个物联网平台会连接多个master服务器,一个master服务器连接多个slave节点(也即是设备);
[0097]
第二,用户在物联网平台上输入点位表,根据本实施例所述方法对点位表进行分析,生成对应的调度点位表,并将调度点位表存在在数据库;
[0098]
第三,在master服务器中,当其启动或者调度点位表发送修改时,点位表装载功能自动从物联网平台将调度点位表装载到master服务器中;
[0099]
第四,基于调度点位表,master服务器按照两种方式进行调度,首先,会按照不同轮询频率的需求,在不同时间节点,启动相应的点位轮询线程,对符合该轮询频率的点位进行轮询。其次,在对具体点位轮询时,对于起始地址和结束地址区间内的连续地址的点位,会通过批量读取的方式,只发送一条指令,获取多个连续地址的点位;对于非连续的地址,则会逐个点位发送轮询指令,进行点位读取;
[0100]
第五,对获取到的点位,根据调度点位表所设置的各个点位的类型、地址以及偏移量进行数据解析,并将16进制数据转换为实际的数据值,得到设备数据;
[0101]
第六,将轮询到的设备数据发送到物联网平台中。
[0102]
实施例2
[0103]
请参阅图3,图3为本发明一种基于modbus协议的数据采集系统的结构图,本实施例是实施例1所述方法通过模块或系统实现其功能的系统,具体原理可参照实施例1方法,其系统包括以下模块:
[0104]
点位输入模块300,用于输入点位表,所述点位表中设有多个点位,每个所述点位对应一个需要采集的设备数据;
[0105]
轮询频率模块310,用于根据所述设备数据的第一数据类型预设所述点位的轮询频率,所述第一数据类型为根据所述设备数据的轮询时间需求而预设的;
[0106]
优选地,所述第一数据类型包括设备状态数据、设备实时事件及告警事件数据、设备实时采集数据和服务器下发到设备的数据,
[0107]
所述根据所述设备数据的第一数据类型预设所述点位的轮询频率之前,还包括:过滤掉第一数据类型为所述服务器下发到设备的数据对应的所述点位。
[0108]
所述根据所述设备数据的第一数据类型预设所述点位的轮询频率,包括:将第一数据类型分别为所述设备状态数据、所述设备实时事件及告警事件数据、所述设备实时采集数据对应的所述点位的轮询频率,预设为不同的轮询频率。
[0109]
具体地,所述设备状态数据对应的所述点位的轮询频率小于所述设备实时采集数据对应的所述点位的轮询频率,所述设备实时采集数据对应的所述点位的轮询频率小于所述设备实时事件及告警事件数据对应的所述点位的轮询频率。
[0110]
地址区间模块320,用于根据所述设备数据的第二数据类型,确定所述第二数据类型对应的指定地址区间,所述第二数据类型为根据所述设备数据所代表的业务内容而预设的;
[0111]
地址确定模块330,用于根据所述设备数据所属设备的物理空间,在所确定的所述
指定地址区间,确定所述设备数据对应的所述点位的地址;
[0112]
具体地,所述第二数据类型包括生产控制指令、设备状态、生产控制内容、设备实时事件及告警事件、管理数据、生产业务数据、品控数据、设备工艺参数。
[0113]
调度生成模块340,用于根据所述点位的所述轮询频率和所述地址,生成所述点位表对应的调度点位表;
[0114]
轮询采集模块350,用于根据所述调度点位表对设备进行轮询采集得到所述设备数据。
[0115]
优选地,所述调度生成模块340,包括:所述调度点位表包括若干条调度记录,将轮询频率相同的所述点位合并在同一条所述调度记录。
[0116]
优选地,所述调度生成模块340,包括:每条所述调度记录包括若干条地址轮询记录,将一条所述调度记录中地址连续的所述点位合并在同一条所述地址轮询记录,并根据所合并的所述点位的地址设置所述地址轮询记录的起始地址和结束地址。
[0117]
实施例3
[0118]
本发明采取的另一种技术方案是,一种数据采集装置,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现所述的基于modbus协议的数据采集方法的步骤。
[0119]
实施例4
[0120]
本发明采取的另一种技术方案是,一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现所述的基于modbus协议的数据采集方法的步骤。
[0121]
显然,本发明的上述实施例仅仅是为清楚地说明本发明技术方案所作的举例,而并非是对本发明的具体实施方式的限定。凡在本发明权利要求书的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献