CN108280030A - 一种寄存器地址的分配方法、系统及相关装置 - Google Patents
一种寄存器地址的分配方法、系统及相关装置 Download PDFInfo
- Publication number
- CN108280030A CN108280030A CN201810030803.XA CN201810030803A CN108280030A CN 108280030 A CN108280030 A CN 108280030A CN 201810030803 A CN201810030803 A CN 201810030803A CN 108280030 A CN108280030 A CN 108280030A
- Authority
- CN
- China
- Prior art keywords
- configuration information
- register
- equipment
- tcp
- address
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L2012/40208—Bus networks characterized by the use of a particular bus standard
- H04L2012/40228—Modbus
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Small-Scale Networks (AREA)
Abstract
本申请公开了一种寄存器地址的分配方法,包括:获取启用的不同种类设备的配置信息;将配置信息按预设数据信息排布方式依次计算得到每种设备数据信息存入TCP/ModBus寄存器中的起始地址;根据配置信息占用的TCP/ModBus寄存器数量和各起始地址生成配置信息表;按照TCP/ModBus寄存器地址信息列表的先后顺序,从首地址开始先存入配置信息表再存入各类设备的数据信息,直至所有所述数据信息均存放完毕。使得数据传输过程中占用网络带宽更小、服务器资源消耗更少、数据处理效率更高。本申请还同时公开了一种寄存器地址的分配系统、设备及计算机可读存储介质,具有上述有益效果。
Description
技术领域
本申请涉及TCP/ModBus协议领域,特别涉及一种寄存器地址的分配方法、系统、装置及计算机可读存储介质。
背景技术
目前市面上的大多数电源设备监控采集器,主要通过TCP/ModBus协议向监控管理服务器进行数据传输。
TCP/ModBus协议普遍采用固定寄存器地址的方式,即将设备的数据信息存放于固定的寄存器中,由于一台设备监控主机会监控不同类型的设备,每种类型设备又同时支持多台监控(例如一台采集器支持监控2台不间断电源、3台电池管理主机、4台配电柜)。这样,采集器采集到的设备的数据信息在寄存器列表上的排列顺序会成循环排列方式,直至到下种新类型的设备。当管理主机需要读取采集器设备信息时,发送读取命令,获取设备的实时参数。
基于TCP/ModBus协议形成的现有技术存在以下问题:由于TCP/ModBus协议一次只能读取连续的地址寄存器,若采用一次性将所有寄存器中的数据信息全部读出的方式,会将大量处于未启用状态的设备的数据信息一并读出,不仅占用带宽,且消耗服务器资源;若采取每次只读取处于启用状态的设备的数据信息的方式,由于这些数据信息在寄存器地址信息列表上成间断排列,需要发送多条轮询命令去才能读取得到目标数据信息。
综上,上述两种不同的数据信息读取方式在使用过程中均存在各种缺陷,尤其在监控的采集器数量较多时,会严重降低系统性能,实际使用效果不好。
因此,如何克服现有基于TCP/ModBus协议进行设备数据信息存储和读取方面存在的各项技术缺陷,提供一种数据传输过程中占用网络带宽更小、服务器资源消耗更少、数据处理效率更高的寄存器地址分配机制是本领域技术人员亟待解决的问题。
发明内容
本申请的目的是提供一种寄存器地址的分配方法,基于TCP/ModBus协议,其只将处于启用状态的设备的数据信息存入TCP/ModBus寄存器当中,根据TCP/ModBus协议的连续读取原则动态计算得到不同种类设备的数据信息应存入TCP/ModBus寄存器中的位置,去除了原先依旧存入TCP/ModBus寄存器中的无效或处于未启用状态的设备的数据信息,占用网络带宽更小、服务器资源消耗更少、数据处理效率更高。
本申请的另一目的在于提供了一种寄存器地址的分配方法系统、装置及计算机可读存储介质。
为实现上述目的,本申请提供一种寄存器地址的分配方法,基于TCP/ModBus协议,包括:
获取存储于数据库中的配置信息记录,并根据所述配置信息记录得到处于启用状态的不同种类设备的配置信息;其中,所述配置信息包括每种设备的数量及数据信息占用的TCP/ModBus寄存器的数量;
将所述配置信息按预设数据信息排布方式依次计算得到每种设备数据信息存入所述TCP/ModBus寄存器中的起始地址;
根据所述配置信息占用的TCP/ModBus寄存器数量和各所述起始地址生成配置信息表;
将所述配置信息表从TCP/ModBus寄存器地址信息列表中的首地址依次进行数据存放;
在所述配置信息表的数据存放完成后,将所有种类设备的数据信息按所述配置信息表依次存入处于空闲状态的TCP/ModBus寄存器中,直至所有所述数据信息均存放完毕。
可选的,将所述配置信息按预设数据信息排布方式依次计算得到每种设备数据信息存入所述TCP/ModBus寄存器中的起始地址,包括:
当处于所述启用状态的设备仅有一种时,按照唯一类数据信息的寄存器存放起始地址=所述首地址+所述配置信息表占用的TCP/ModBus寄存器数量,计算得到所述唯一类数据信息的寄存器存放起始地址;
当处于所述启用状态的设备的种类存在N类时,N≥2,且分别对应第一类设备至第N类设备,其中,所述第一类设备对应有第一类数据信息和第一寄存器占用数量、所述第N类设备对应有第N类数据信息和第N寄存器占用数量;
按照所述第一类数据信息的寄存器存放起始地址=所述首地址+所述配置信息表占用的TCP/ModBus寄存器数量,计算得到所述第一类设备数据信息的寄存器存放起始地址;
所述第N类数据信息的寄存器存放起始地址=第N-1类数据信息的寄存器存放起始地址+第N-1类设备的数量×第N-1寄存器占用数量,计算得到所述第N类数据信息的寄存器存放起始地址;
其中,所有数据信息连续的存放在相邻的TCP/ModBus寄存器当中。
可选的,该分配方法还包括:
当新增处于所述启用状态的设备时,将新增设备的设备种类信息以及配置信息更新至所述数据库中的配置信息记录,并发出启用更新信号;
根据所述启用更新信号重新执行所述配置信息表的生成操作,以根据新生成的配置信息表重新进行数据信息的存放操作。
可选的,该分配方法还包括:
从所述配置信息表中提取得到每种设备的数据信息存入所述TCP/ModBus寄存器中的起始地址;
根据各所述起始地址设置相应种类设备的数据信息查询方式,以提升目标种类设备数据信息的查询效率。
为实现上述目的,本申请还提供了一种寄存器地址的分配系统,基于TCP/ModBus协议,该分配系统包括:
配置信息获取单元,用于获取存储于数据库中的配置信息记录,并根据所述配置信息记录得到处于启用状态的不同种类设备的配置信息;其中,所述配置信息包括每种设备的数量及数据信息占用的TCP/ModBus寄存器的数量;
起始地址计算单元,用于将所述配置信息按预设数据信息排布方式依次计算得到每种设备数据信息存入所述TCP/ModBus寄存器中的起始地址;
配置信息表生成单元,用于根据所述配置信息占用的TCP/ModBus寄存器数量和各所述起始地址生成配置信息表;
配置信息表存放单元,用于将所述配置信息表从TCP/ModBus寄存器地址信息列表中的首地址依次进行数据存放;
数据信息存放单元,用于在所述配置信息表的数据存放完成后,将所有种类设备的数据信息按所述配置信息表依次存入处于空闲状态的TCP/ModBus寄存器中,直至所有所述数据信息均存放完毕。
可选的,所述起始地址计算单元包括:
唯一类启用设备数据信息起始存放地址计算子单元,用于在处于所述启用状态的设备仅有一种时,按照唯一类数据信息的寄存器存放起始地址=所述首地址+所述配置信息表占用的TCP/ModBus寄存器数量,计算得到所述唯一类数据信息的寄存器存放起始地址;
当处于所述启用状态的设备的种类存在N类时,N≥2,且分别对应第一类设备至第N类设备,其中,所述第一类设备对应有第一类数据信息和第一寄存器占用数量、所述第N类设备对应有第N类数据信息和第N寄存器占用数量;
第一类启用设备数据信息起始存放地址计算子单元,用于按照所述第一类数据信息的寄存器存放起始地址=所述首地址+所述配置信息表占用的TCP/ModBus寄存器数量,计算得到所述第一类设备数据信息的寄存器存放起始地址;
第N类启用设备数据信息起始存放地址计算子单元,用于所述第N类数据信息的寄存器存放起始地址=第N-1类数据信息的寄存器存放起始地址+第N-1类设备的数量×第N-1寄存器占用数量,计算得到所述第N类数据信息的寄存器存放起始地址;
其中,所有数据信息连续的存放在相邻的TCP/ModBus寄存器当中。
可选的,该分配系统还包括:
更新单元,用于将新增设备的设备种类信息以及配置信息更新至所述数据库中的配置信息记录,并发出启用更新信号;
初始化计算单元,用于根据所述启用更新信号重新执行所述配置信息表的生成操作,以根据新生成的配置信息表重新进行数据信息的存放操作。
可选的,该分配系统还包括:
起始地址提取单元,用于从所述配置信息表中提取得到每种设备的数据信息存入所述TCP/ModBus寄存器中的起始地址;
轮询方式设置单元,用于根据各所述起始地址设置相应种类设备的数据信息查询方式,以提升目标种类设备数据信息的查询效率。
为实现上述目的,本申请还提供了一种基于TCP/ModBus协议的寄存器地址分配装置,该寄存器地址分配装置包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述内容所描述的寄存器地址的分配方法的步骤。
为实现上述目的,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述内容所描述的寄存器地址的分配方法的步骤。
本申请所提供的一种寄存器地址的分配方法,基于TCP/ModBus协议,获取存储于数据库中的配置信息记录,并根据所述配置信息记录得到处于启用状态的不同种类设备的配置信息;将所述配置信息按预设数据信息排布方式依次计算得到每种设备数据信息存入所述TCP/ModBus寄存器中的起始地址;根据所述配置信息占用的TCP/ModBus寄存器数量和各所述起始地址生成配置信息表;将所述配置信息表从TCP/ModBus寄存器地址信息列表中的首地址依次进行数据存放;在所述配置信息表的数据存放完成后,将所有种类设备的数据信息按所述配置信息表依次存入处于空闲状态的TCP/ModBus寄存器中,直至所有所述数据信息均存放完毕。
显然,本申请所提供的技术方案,其只将处于启用状态的设备的数据信息存入TCP/ModBus寄存器当中,根据TCP/ModBus协议的连续读取原则动态计算得到不同种类设备的数据信息应存入TCP/ModBus寄存器中的位置,去除了原先依旧存入TCP/ModBus寄存器中的无效或处于未启用状态的设备的数据信息,占用网络带宽更小、服务器资源消耗更少、数据处理效率更高。本申请同时还提供了一种寄存器地址的分配方法系统、装置及计算机可读存储介质,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例所提供的一种寄存器地址的分配方法的流程图;
图2为本申请实施例所提供的寄存器地址的分配方法中一种各种类设备数据信息的寄存器存放起始地址的计算方式的流程图;
图3为本申请实施例所提供的寄存器地址的分配方法中一种新增启用设备时对应处理方式的流程图;
图4为本申请实施例所提供的寄存器地址的分配方法中一种查询目标设备数据信息的流程图;
图5为本申请实施例所提供的一种寄存器地址的分配系统的结构框图;
图6为一个实际例子下传统寄存器地址分配方式与本申请所提供的寄存器分配地址方式的对比示意图;
图7为本申请实施例所提供的在新增启用设备时一种寄存器地址重新分配的对比示意图;
图8为一个实际例子下监控主机与监控服务器进行通讯的时序图;
图9为一个实际例子下监控采集器工作的流程图;
图10为一个实际例子下监控服务器工作的流程图。
具体实施方式
本申请的核心是提供一种寄存器地址的分配方法、系统、装置及计算机可读存储介质,基于TCP/ModBus协议,其只将处于启用状态的设备的数据信息存入TCP/ModBus寄存器当中,根据TCP/ModBus协议的连续读取原则动态计算得到不同种类设备的数据信息应存入TCP/ModBus寄存器中的位置,去除了原先依旧存入TCP/ModBus寄存器中的无效或处于未启用状态的设备的数据信息,占用网络带宽更小、服务器资源消耗更少、数据处理效率更高。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
以下结合图1,图1为本申请实施例所提供的一种寄存器地址的分配方法的流程图。
其具体包括以下步骤:
S101:获取存储于数据库中的配置信息记录,并根据配置信息记录得到处于启用状态的不同种类设备的配置信息;其中,配置信息包括每种设备的数量及数据信息占用的TCP/ModBus寄存器的数量;
本步骤旨在获取到记录有所有处于启用状态下的设备的配置信息,且这些均处于启用状态的设备有可能包含多个种类,同时每次更新得到的新配置信息通常都存储在数据库的配置信息记录当中,即该配置信息记录中包括每次配置信息更改后生成的新配置信息以及历史数据。具体的,在实际情况下该数据为的实体为监控服务器的一部分。
其中,该配置信息中存储多种信息,包括设备种类数、每种设备的数量、每个设备的数据信息具体会占用多少个TCP/ModBus寄存器等。
具体的,如何获取到该配置信息的方式多种多样,例如根据预设的信息读取地址从目标地址中读取,或其它可行的手段,此处并不做具体限定,可以根据实际情况选择最为合适的方案。
S102:将配置信息按预设数据信息排布方式依次计算得到每种设备数据信息存入TCP/ModBus寄存器中的起始地址;
在S101的基础上,本步骤旨在根据该配置信息和预设的数据信息排布方式来计算每种设备数据信息存入TCP/ModBus寄存器中的起始地址,该TCP/ModBus寄存器为基于TCP/ModBus协议建立的监控服务器下拥有的所有寄存器。
由于这些寄存器对应的地址信息通常连续表列,据此生成了TCP/ModBus寄存器地址信息列表,因此本步骤目的为:寻找到每种设备的数据信息具体从TCP/ModBus寄存器地址信息列表中哪个地址对应的寄存器开始存入,即本步骤所说的存入TCP/ModBus寄存器中的起始地址。
之所以需要计算得到每种设备的数据信息存入TCP/ModBus寄存器中的起始地址,是由于该TCP/ModBus协议普遍采用固定寄存器地址的方式,将设备的数据信息存放于这些固定的寄存器中,在监控多种设备且每种设备又存在多台时,这些设备的数据信息在寄存器地址信息列表的排列顺序会循环排列,直至将同一种类设备的数据信息存入完毕,才进行下一种类设备数据信息的存放。
计算得到各种类设备的数据信息存入的起始地址,一方面方便在实际数据信息的存入过程中有所依照,另一方面可以在监控服务器从采集器读取目标设备的数据信息根据该起始地址以最大效率获取到目标数据信息。
其中,由于存在固定规定的数据信息存入方式,该预设的数据信息排布方式也应遵循该方式得到,后续实施例会进行详细说明。
S103:根据配置信息占用的TCP/ModBus寄存器数量和各起始地址生成配置信息表;
在S102的基础上,本步骤旨在将配置信息自身占用的TCP/ModBus寄存器数量作为一个参数和计算得到的各种类设备数据信息对应的起始地址一并生成配置信息表。
之所以将获知该配置信息自身所占用的TCP/ModBus寄存器数量,是为便于管理服务器获知每台监控采集器监控下处于启用状态的设备数量,还需要将该配置信息也一并存入TCP/ModBus寄存器当中,且通常存放在整个TCP/ModBus寄存器地址信息列表中的最顶部,以方便获取。
S104:将配置信息表从TCP/ModBus寄存器地址信息列表中的首地址依次进行数据存放;
在S103的基础上,本步骤旨在将配置信息表从TCP/ModBus寄存器地址信息列表中的首地址依次存放,直至配置信息表存放完毕。通常情况下,该首地址为0x0000,按照连续的原则一一存入对应的TCP/ModBus寄存器中。
S105:在配置信息表的数据存放完成后,将所有种类设备的数据信息按配置信息表依次存入处于空闲状态的TCP/ModBus寄存器中,直至所有数据信息均存放完毕。
在S104配置信息表存放完毕的基础上,本步骤旨在将所有种类设备的数据信息按配置信息表依次存入处于空闲状态的TCP/ModBus寄存器中,直至所有数据信息均存放完毕。通常情况下,存放数据的TCP/ModBus寄存器在地址上为连续的,数据的先后存入方式应遵循TCP/ModBus寄存器地址信息列表的排列。在由于在S102中根据配置信息获知了有多少种设备、每种设备的启用数量,并据此计算得到了各种设备数据信息存入TCP/ModBus寄存器中的起始地址,此时只需在已经存入配置信息表的基础上,与该配置信息表的数据相邻排列存放在连续的TCP/ModBus寄存器中即可。
基于上述技术方案,本申请实施例提供的一种寄存器地址的分配方法,基于TCP/ModBus协议,其只将处于启用状态的设备的数据信息存入TCP/ModBus寄存器当中,根据TCP/ModBus协议的连续读取原则动态计算得到不同种类设备的数据信息应存入TCP/ModBus寄存器中的位置,去除了原先依旧存入TCP/ModBus寄存器中的无效或处于未启用状态的设备的数据信息,占用网络带宽更小、服务器资源消耗更少、数据处理效率更高。
以下结合图2,图2为本申请实施例所提供的寄存器地址的分配方法中一种各种类设备数据信息的寄存器存放起始地址的计算方式的流程图。
本实施例是针对上一实施例中S102如何具体计算得到每种设备存入TCP/ModBus寄存器中的起始地址所做出的一个具体限定,其它步骤与上一实施例大体相同,相同部分可参见上一实施例相关部分,在此不再赘述。其具体包括以下步骤:
S201:判断处于启用状态的设备种类数;
S202:当处于启用状态的设备仅有一种时;
S203:按照唯一类数据信息的寄存器存放起始地址=首地址+配置信息表占用的TCP/ModBus寄存器数量,计算得到唯一类数据信息的寄存器存放起始地址;
S202和S203是建立在S201的判断结果为处于启用状态的设备种类数仅有一种的基础上,因此从首地址开始存储完配置信息表所占用的TCP/ModBus寄存器数量后,就会得到唯一的一类设备的数据信息的寄存器存放地址。
S204:当处于启用状态的设备的种类存在N类时,N≥2;
其中,这N类设备分别为第一类设备至第N类设备,第一类设备对应有第一类数据信息和第一寄存器占用数量、第N类设备对应有第N类数据信息和第N寄存器占用数量。所说的第几类数据信息表示的是该类设备对应的数据信息,是区别于其它种类设备的数据信息,所说的第几寄存器占用数量表示的是为完全存放该类设备数据信息需要占用的TCP/ModBus寄存器数量。
S205:按照第一类数据信息的寄存器存放起始地址=首地址+配置信息表占用的TCP/ModBus寄存器数量,计算得到第一类设备数据信息的寄存器存放起始地址;
S206:第N类数据信息的寄存器存放起始地址=第N-1类数据信息的寄存器存放起始地址+第N-1类设备的数量×第N-1寄存器占用数量,计算得到第N类数据信息的寄存器存放起始地址。
S204、S205以及S206建立在S201的判断结果为处于启用状态的设备种类数大于1种的基础上,即N的范围为≥2。其中,第一类设备对应的第一类数据信息的寄存器存放起始地址与S203的方式一致,区别在于从第二类设备对应的第二类数据信息的寄存器存放起始地址开始的计算方式,是建立在前一类设备所有数据信息均存放完成的基础上,因此采用如S206所写明的公式进行计算。
以下假定存在三种不同类别的设备,采用最具体的例子进行说明:
这三种类别的设备分别为第一类设备、第二类设备以及第三类设备,且第一类设备对应第一类数据信息和第一寄存器占用数量、第二类设备对应第二类数据信息和第二寄存器占用数量、第三类设备对应第三类数据信息和第三寄存器占用数量;
按照第一类数据信息的寄存器存放起始地址=首地址+配置信息表占用的TCP/ModBus寄存器数量,计算得到第一类设备数据信息的寄存器存放起始地址;
即先将配置信息表的数据先存入TCP/ModBus寄存器地址信息列表中首地址对应的寄存器中,并依据其占用的TCP/ModBus寄存器数量,直至存入完毕后才轮到第一类设备的数据信息存放。
第二类数据信息的寄存器存放起始地址=第一类数据信息的寄存器存放起始地址+第一类设备的数量×第一寄存器占用数量,计算得到第二类数据信息的寄存器存放起始地址;
相同的,第一类数据信息的存放也需要将所有数量的第一类设备的数据信息存入完毕才行。
第三类数据信息的寄存器存放起始地址=第二类数据信息的寄存器存放起始地址+第二类设备的数量×第二寄存器占用数量,计算得到第三类数据信息的寄存器存放起始地址;其中,所有数据信息连续的存放在相邻的TCP/ModBus寄存器当中。
以下结合图3,图3为本申请实施例所提供的寄存器地址的分配方法中一种新增启用设备时对应处理方式的流程图。
本实施例是基于其它实施例对新增启用设备时进行的一个补充说明,其它步骤与上一实施例大体相同,相同部分可参见上一实施例相关部分,在此不再赘述。
S301:当新增处于启用状态的设备时,将新增设备的设备种类信息以及配置信息更新至数据库中的配置信息记录,并发出启用更新信号;
S206:根据启用更新信号重新执行配置信息表的生成操作,以根据新生成的配置信息表重新进行数据信息的存放操作;
由于本申请区别于现有技术所提供的数据信息存入方式,并未将处于未启用状态的设备的数据信息存入TCP/ModBus寄存器当中,因此,在出现新增启用设备时,就需要根据新的配置信息重新计算得到新的各种类设备数据信息存入TCP/ModBus寄存器的起始地址,并相应的重新进行数据信息的存放。
以下结合图4,图4为本申请实施例所提供的寄存器地址的分配方法中一种查询目标设备数据信息的流程图。
本实施例是基于其它实施例对如何进行目标设备的数据信息进行快速、指向性强的查询所进行的一个补充说明,其它步骤与上一实施例大体相同,相同部分可参见上一实施例相关部分,在此不再赘述。
S401:从配置信息表中提取得到每种设备的数据信息存入TCP/ModBus寄存器中的起始地址;
S402:根据各起始地址设置相应种类设备的数据信息查询方式,以提升目标种类设备数据信息的查询效率。
本实施例提供了一种优选的数据信息轮询方式,由于首先将配置信息表存入了TCP/ModBus寄存器地址信息列表顶部地址对应的寄存器当中,且其中包含了各种类设备数据信息存入TCP/ModBus寄存器的起始地址,只需要在获知想要查询目标设备的种类和数量标号时,可以精准的、以最高效率的得到目标设备的数据信息。当然,具体的查询方式与背景技术部分说明的一次性方式或多次的方式,可以根据实际情况灵活选择最合适的方式。
基于上述技术方案,本申请实施例提供的一种寄存器地址的分配方法,基于TCP/ModBus协议,其只将处于启用状态的设备的数据信息存入TCP/ModBus寄存器当中,根据TCP/ModBus协议的连续读取原则动态计算得到不同种类设备的数据信息应存入TCP/ModBus寄存器中的位置,去除了原先依旧存入TCP/ModBus寄存器中的无效或处于未启用状态的设备的数据信息,占用网络带宽更小、服务器资源消耗更少、数据处理效率更高。
因为情况复杂,无法一一列举进行阐述,本领域技术人员应能意识到根据本申请提供的基本方法原理结合实际情况可以存在很多的例子,在不付出足够的创造性劳动下,应均在本申请的保护范围内。
下面请参见图5,图5为本申请实施例所提供的一种寄存器地址的分配系统的结构框图。
该系统可以包括:
配置信息获取单元100,用于获取存储于数据库中的配置信息记录,并根据配置信息记录得到处于启用状态的不同种类设备的配置信息;其中,配置信息包括每种设备的数量及数据信息占用的TCP/ModBus寄存器的数量;
起始地址计算单元200,用于将配置信息按预设数据信息排布方式依次计算得到每种设备数据信息存入TCP/ModBus寄存器中的起始地址;
配置信息表生成单元300,用于根据配置信息占用的TCP/ModBus寄存器数量和各起始地址生成配置信息表;
配置信息表存放单元400,用于将配置信息表从TCP/ModBus寄存器地址信息列表中的首地址依次进行数据存放;
数据信息存放单元500,用于在配置信息表的数据存放完成后,将所有种类设备的数据信息按配置信息表依次存入处于空闲状态的TCP/ModBus寄存器中,直至所有数据信息均存放完毕。
其中,起始地址计算单元200包括:
唯一类启用设备数据信息起始存放地址计算子单元,用于在处于启用状态的设备仅有一种时,按照唯一类数据信息的寄存器存放起始地址=首地址+配置信息表占用的TCP/ModBus寄存器数量,计算得到唯一类数据信息的寄存器存放起始地址;
当处于启用状态的设备的种类存在N类时,N≥2,且分别对应第一类设备至第N类设备,其中,第一类设备对应有第一类数据信息和第一寄存器占用数量、第N类设备对应有第N类数据信息和第N寄存器占用数量;
第一类启用设备数据信息起始存放地址计算子单元,用于按照第一类数据信息的寄存器存放起始地址=首地址+配置信息表占用的TCP/ModBus寄存器数量,计算得到第一类设备数据信息的寄存器存放起始地址;
第N类启用设备数据信息起始存放地址计算子单元,用于第N类数据信息的寄存器存放起始地址=第N-1类数据信息的寄存器存放起始地址+第N-1类设备的数量×第N-1寄存器占用数量,计算得到第N类数据信息的寄存器存放起始地址;
其中,所有数据信息连续的存放在相邻的TCP/ModBus寄存器当中。
进一步的,该分配系统还可以包括:
更新单元,用于将新增设备的设备种类信息以及配置信息更新至数据库中的配置信息记录,并发出启用更新信号;
初始化计算单元,用于根据启用更新信号重新执行配置信息表的生成操作,以根据新生成的配置信息表重新进行数据信息的存放操作。
以及:起始地址提取单元,用于从配置信息表中提取得到每种设备的数据信息存入TCP/ModBus寄存器中的起始地址;
轮询方式设置单元,用于根据各起始地址设置相应种类设备的数据信息查询方式,以提升目标种类设备数据信息的查询效率。
以上各单元可以应用于以下的一个具体的实际例子中,可参见图6至图10。
在监控采集器在上电或者设备配置信息更改时,根据存储于数据库中的配置信息记录,动态初始化TCP/ModBus服务器的寄存器地址信息列表。以一台采集器支持监控2台UPS(不间断电源)、3台电池管理主机、4台配电柜为例,将TCP/ModBus协议的寄存器地址划分为配置信息和设备数据信息两部分。配置信息的主要目的是告知管理服务器当前已启用的设备数量,以及读取各设备信息所需要的寄存器起始地址和数据长度,UPS的配置信息包括设备数量(高8位为支持设备数,低8位为启用设备数)、读取UPS数据信息的起始地址、UPS数据信息的寄存器数量。电池管理主机、配电柜的配置信息与UPS类似,但是各数据信息的起始地址、寄存器数量不同。设备数据信息的寄存器地址遵循如下算法:
当前种类设备数据信息起始地址=上一种类设备起始地址+上一种类设备启用数量×上一种类设备数据信息寄存器数量。
第一个设备的数据信息寄存器的起始地址同样存储与配置在寄存器中,这里假设0x0200为设备数据信息的起始寄存器。因此每个已启用设备的信息可在TCP/ModBus寄存器地址信息列表上连续排序,较传统TCP/ModBus地址分配方式,未启用的无效设备信息将不体现在寄存器地址信息列表中,监控服务器及网络将不必另外消耗资源处理这些无效数据,可参见图6,图6为一个实际例子下传统寄存器地址分配方式与本申请所提供的寄存器分配地址方式的对比示意图。
当配置信息变更,即新增或去除某些启用设备时,采集器将重新初始化地址信息列表,可参见图7,图7为本申请实施例所提供的在新增启用设备时一种寄存器地址重新分配的对比示意图。
本实施例提供的一个各类设备数据信息存入TCP/ModBus寄存器的过程如下,其过程时序图可参见图8。
(1)监控采集器初始化系统,申请TCP/ModBus线程空间;读取数据库的配置信息;
(2)将设备当前的配置信息从地址0x0000存入TCP/ModBus寄存器中,其依据的公式为:当前种类设备数据信息起始地址=上一种类设备起始地址+上一种类设备启用数量×上一种类设备数据信息寄存器数量,并将各类设备的数据信息依次顺序排列于配置信息之后;
(3)监控服务器第一帧TCP/ModBus信息为读取监控采集的配置信息,并根据配置信息设置设备信息的轮询模式,设置完成后,发送设备信息轮询命令,读取数据信息;
(4)当监控服务器向任意监控采集器请求数据时,第一帧首先读取该采集器的配置信息,根据相应采集器的配置信息,初始化对应采集器的数据轮询模式。当采集器设置信息被修改时,将修改信息上报至监控服务器。
同时,可根据以上内容得到如图9和图10所分别提供监控采集器工作的流程图和监控服务器工作的流程图。
依据本实施例,可以使每个监控采集器的通讯信息根据实际启用设备的不同进行优化动态调整,同时监控服务器在进行数据采集时,信息查询方式随之动态改变。在同一个系统内,不同的采集器配置方式体现为不同通讯协议,每种通讯协议都是针对该采集器的优化的通讯方式。由于在配置信息变更后,监控采集器会根据配置信息更新本地的TCP/ModBus寄存器地址信息列表,并通知监控服务器重新读取监控采集器的配置信息,因此监控服务器会根据新的配置信息调整对监控采集器的信息查询指令。
基于上述实施例,本申请还提供了一种基于TCP/ModBus协议的寄存器地址分配装置,可以包括存储器和处理器,其中,该存储器中存有计算机程序,该处理器调用该存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然该寄存器地址分配装置还可以包括各种必要的网络接口、电源以及其它零部件等。
本申请还提供了一种计算机可读存储介质,其上存有计算机程序,该计算机程序被执行终端或处理器执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random AccessMemory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (10)
1.一种寄存器地址的分配方法,基于TCP/ModBus协议,其特征在于,包括:
获取存储于数据库中的配置信息记录,并根据所述配置信息记录得到处于启用状态的不同种类设备的配置信息;其中,所述配置信息包括每种设备的数量及数据信息占用的TCP/ModBus寄存器的数量;
将所述配置信息按预设数据信息排布方式依次计算得到每种设备数据信息存入所述TCP/ModBus寄存器中的起始地址;
根据所述配置信息占用的TCP/ModBus寄存器数量和各所述起始地址生成配置信息表;
将所述配置信息表从TCP/ModBus寄存器地址信息列表中的首地址依次进行数据存放;
在所述配置信息表的数据存放完成后,将所有种类设备的数据信息按所述配置信息表依次存入处于空闲状态的TCP/ModBus寄存器中,直至所有所述数据信息均存放完毕。
2.根据权利要求1所述的分配方法,其特征在于,将所述配置信息按预设数据信息排布方式依次计算得到每种设备数据信息存入所述TCP/ModBus寄存器中的起始地址,包括:
当处于所述启用状态的设备仅有一种时,按照唯一类数据信息的寄存器存放起始地址=所述首地址+所述配置信息表占用的TCP/ModBus寄存器数量,计算得到所述唯一类数据信息的寄存器存放起始地址;
当处于所述启用状态的设备的种类存在N类时,N≥2,且分别对应第一类设备至第N类设备,其中,所述第一类设备对应有第一类数据信息和第一寄存器占用数量、所述第N类设备对应有第N类数据信息和第N寄存器占用数量;
按照所述第一类数据信息的寄存器存放起始地址=所述首地址+所述配置信息表占用的TCP/ModBus寄存器数量,计算得到所述第一类设备数据信息的寄存器存放起始地址;
所述第N类数据信息的寄存器存放起始地址=第N-1类数据信息的寄存器存放起始地址+第N-1类设备的数量×第N-1寄存器占用数量,计算得到所述第N类数据信息的寄存器存放起始地址;
其中,所有数据信息连续的存放在相邻的TCP/ModBus寄存器当中。
3.根据权利要求2所述的分配方法,其特征在于,还包括:
当新增处于所述启用状态的设备时,将新增设备的设备种类信息以及配置信息更新至所述数据库中的配置信息记录,并发出启用更新信号;
根据所述启用更新信号重新执行所述配置信息表的生成操作,以根据新生成的配置信息表重新进行数据信息的存放操作。
4.根据权利要求3所述的分配方法,其特征在于,还包括:
从所述配置信息表中提取得到每种设备的数据信息存入所述TCP/ModBus寄存器中的起始地址;
根据各所述起始地址设置相应种类设备的数据信息查询方式,以提升目标种类设备数据信息的查询效率。
5.一种寄存器地址的分配系统,基于TCP/ModBus协议,其特征在于,包括:
配置信息获取单元,用于获取存储于数据库中的配置信息记录,并根据所述配置信息记录得到处于启用状态的不同种类设备的配置信息;其中,所述配置信息包括每种设备的数量及数据信息占用的TCP/ModBus寄存器的数量;
起始地址计算单元,用于将所述配置信息按预设数据信息排布方式依次计算得到每种设备数据信息存入所述TCP/ModBus寄存器中的起始地址;
配置信息表生成单元,用于根据所述配置信息占用的TCP/ModBus寄存器数量和各所述起始地址生成配置信息表;
配置信息表存放单元,用于将所述配置信息表从TCP/ModBus寄存器地址信息列表中的首地址依次进行数据存放;
数据信息存放单元,用于在所述配置信息表的数据存放完成后,将所有种类设备的数据信息按所述配置信息表依次存入处于空闲状态的TCP/ModBus寄存器中,直至所有所述数据信息均存放完毕。
6.根据权利要求5所述的分配系统,其特征在于,所述起始地址计算单元包括:
唯一类启用设备数据信息起始存放地址计算子单元,用于在处于所述启用状态的设备仅有一种时,按照唯一类数据信息的寄存器存放起始地址=所述首地址+所述配置信息表占用的TCP/ModBus寄存器数量,计算得到所述唯一类数据信息的寄存器存放起始地址;
当处于所述启用状态的设备的种类存在N类时,N≥2,且分别对应第一类设备至第N类设备,其中,所述第一类设备对应有第一类数据信息和第一寄存器占用数量、所述第N类设备对应有第N类数据信息和第N寄存器占用数量;
第一类启用设备数据信息起始存放地址计算子单元,用于按照所述第一类数据信息的寄存器存放起始地址=所述首地址+所述配置信息表占用的TCP/ModBus寄存器数量,计算得到所述第一类设备数据信息的寄存器存放起始地址;
第N类启用设备数据信息起始存放地址计算子单元,用于所述第N类数据信息的寄存器存放起始地址=第N-1类数据信息的寄存器存放起始地址+第N-1类设备的数量×第N-1寄存器占用数量,计算得到所述第N类数据信息的寄存器存放起始地址;
其中,所有数据信息连续的存放在相邻的TCP/ModBus寄存器当中。
7.根据权利要求6所述的分配系统,其特征在于,还包括:
更新单元,用于将新增设备的设备种类信息以及配置信息更新至所述数据库中的配置信息记录,并发出启用更新信号;
初始化计算单元,用于根据所述启用更新信号重新执行所述配置信息表的生成操作,以根据新生成的配置信息表重新进行数据信息的存放操作。
8.根据权利要求7所述的分配系统,其特征在于,还包括:
起始地址提取单元,用于从所述配置信息表中提取得到每种设备的数据信息存入所述TCP/ModBus寄存器中的起始地址;
轮询方式设置单元,用于根据各所述起始地址设置相应种类设备的数据信息查询方式,以提升目标种类设备数据信息的查询效率。
9.一种基于TCP/ModBus协议的寄存器地址分配装置,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至4任一项所述的寄存器地址的分配方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至4任一项所述的寄存器地址的分配方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810030803.XA CN108280030B (zh) | 2018-01-12 | 2018-01-12 | 一种寄存器地址的分配方法、系统及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810030803.XA CN108280030B (zh) | 2018-01-12 | 2018-01-12 | 一种寄存器地址的分配方法、系统及相关装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108280030A true CN108280030A (zh) | 2018-07-13 |
CN108280030B CN108280030B (zh) | 2020-11-10 |
Family
ID=62803453
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810030803.XA Active CN108280030B (zh) | 2018-01-12 | 2018-01-12 | 一种寄存器地址的分配方法、系统及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108280030B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110032523A (zh) * | 2019-03-29 | 2019-07-19 | 陕西柴油机重工有限公司 | 柴油机装配试验基于地址位动态定义的寄存器存储方法 |
CN111800524A (zh) * | 2020-07-10 | 2020-10-20 | 河北科瑞达仪器科技股份有限公司 | Modbus报文中多路数据原地址的解析方法 |
CN114070732A (zh) * | 2021-11-17 | 2022-02-18 | 远景智能国际私人投资有限公司 | 基于物联网的数据处理方法、装置、设备及介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2077503A1 (en) * | 1995-05-11 | 2009-07-08 | Panasonic Corporation | Interrupt control device of small hardware size which deals with much interrupt processing flexibility |
CN101873257A (zh) * | 2010-06-04 | 2010-10-27 | 华为技术有限公司 | 一种接收报文的方法及系统 |
CN102638451A (zh) * | 2012-03-14 | 2012-08-15 | 江苏斯菲尔电气股份有限公司 | Modbus通讯协议的寄存器列表数据的动态重组方法 |
CN102820959A (zh) * | 2011-06-10 | 2012-12-12 | 哈尔滨工业大学 | 在Modbus主站与从站之间进行大数据量通信的方法 |
CN104125169A (zh) * | 2013-04-26 | 2014-10-29 | 联发科技股份有限公司 | 链表处理装置、链表处理方法及相关网络交换机 |
CN105527881A (zh) * | 2014-09-30 | 2016-04-27 | 上海安川电动机器有限公司 | 一种指令处理方法及装置 |
-
2018
- 2018-01-12 CN CN201810030803.XA patent/CN108280030B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2077503A1 (en) * | 1995-05-11 | 2009-07-08 | Panasonic Corporation | Interrupt control device of small hardware size which deals with much interrupt processing flexibility |
CN101873257A (zh) * | 2010-06-04 | 2010-10-27 | 华为技术有限公司 | 一种接收报文的方法及系统 |
CN102820959A (zh) * | 2011-06-10 | 2012-12-12 | 哈尔滨工业大学 | 在Modbus主站与从站之间进行大数据量通信的方法 |
CN102638451A (zh) * | 2012-03-14 | 2012-08-15 | 江苏斯菲尔电气股份有限公司 | Modbus通讯协议的寄存器列表数据的动态重组方法 |
CN104125169A (zh) * | 2013-04-26 | 2014-10-29 | 联发科技股份有限公司 | 链表处理装置、链表处理方法及相关网络交换机 |
CN105527881A (zh) * | 2014-09-30 | 2016-04-27 | 上海安川电动机器有限公司 | 一种指令处理方法及装置 |
Non-Patent Citations (1)
Title |
---|
费远鹏等: "基于Modbus 协议的交流采样测量系统的实现", 《微计算机信息》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110032523A (zh) * | 2019-03-29 | 2019-07-19 | 陕西柴油机重工有限公司 | 柴油机装配试验基于地址位动态定义的寄存器存储方法 |
CN111800524A (zh) * | 2020-07-10 | 2020-10-20 | 河北科瑞达仪器科技股份有限公司 | Modbus报文中多路数据原地址的解析方法 |
CN111800524B (zh) * | 2020-07-10 | 2022-10-14 | 河北科瑞达仪器科技股份有限公司 | Modbus报文中多路数据原地址的解析方法 |
CN114070732A (zh) * | 2021-11-17 | 2022-02-18 | 远景智能国际私人投资有限公司 | 基于物联网的数据处理方法、装置、设备及介质 |
CN114070732B (zh) * | 2021-11-17 | 2024-01-05 | 远景智能国际私人投资有限公司 | 基于物联网的数据处理方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108280030B (zh) | 2020-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103262498B (zh) | 用于发布及预订环境中服务器连接优化的方法和系统 | |
CN108280030A (zh) | 一种寄存器地址的分配方法、系统及相关装置 | |
CN101676890B (zh) | 一种动态调整带宽分配的总线仲裁方法及仲裁器 | |
CN110138732A (zh) | 访问请求的响应方法、装置、设备及存储介质 | |
CN108810192A (zh) | 一种静态ip配置方法、装置、设备及可读存储介质 | |
CN104536965B (zh) | 一种大数据条件下的数据查询展示系统及方法 | |
CN104079614A (zh) | 用于分布式发布订阅系统消息有序获取的方法和系统 | |
CN108762686A (zh) | 数据一致性校验流控方法、装置、电子设备及存储介质 | |
CN106933836A (zh) | 一种基于分表的数据存储方法和系统 | |
CN104615684A (zh) | 一种海量数据通信并发处理方法及系统 | |
CN111666344B (zh) | 异构数据同步方法及装置 | |
CN109669915A (zh) | 一种计算机任务管理方法、装置及相关设备 | |
CN104484167B (zh) | 任务处理方法及装置 | |
CN108989399A (zh) | 一种集群公共数据查询方法、系统、装置及可读存储介质 | |
CN106453557A (zh) | 一种IaaS服务中的双时间尺度用户动态竞价和资源管理算法 | |
CN113347046B (zh) | 网络接入方法及装置 | |
JP7271742B2 (ja) | 自動車教習所の教習のインテリジェントスケジューリング方法、装置、電子デバイス、記憶媒体、及びプログラム | |
CN103595800B (zh) | 一种数据实时分发处理装置及方法 | |
CN109190946A (zh) | 营收数据确定方法、装置、电子设备及存储介质 | |
CN108762684A (zh) | 热点数据迁移流控方法、装置、电子设备及存储介质 | |
CN101695081A (zh) | 一种网络服务的可信任务调度方法 | |
CN117294652A (zh) | 流量控制方法、服务器、电子设备及计算机可读存储介质 | |
CN107526650A (zh) | 一种tcam错误扫描与修复的方法 | |
CN103929378A (zh) | 跨域数据传输的通信链路分配及跨域数据传输方法和系统 | |
CN108833174A (zh) | 一种交换机即插即用的方法、系统及相关装置 |
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 | ||
CB02 | Change of applicant information |
Address after: 361000 Skirt Building, North Building, 65 Wanghai Road, Xiamen Software Park, Fujian Province Applicant after: XIAMEN KECAN INFORMATION TECHNOLOGY CO., LTD. Applicant after: Kehua Hengsheng Co., Ltd. Address before: 361000 Skirt Building, North Building, 65 Wanghai Road, Xiamen Software Park, Fujian Province Applicant before: XIAMEN KECAN INFORMATION TECHNOLOGY CO., LTD. Applicant before: Xiamen Kehua Hengsheng Co., Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |