CN111741143B - 一种电测仪表Modbus地址在线分配的方法、装置 - Google Patents
一种电测仪表Modbus地址在线分配的方法、装置 Download PDFInfo
- Publication number
- CN111741143B CN111741143B CN202010834687.4A CN202010834687A CN111741143B CN 111741143 B CN111741143 B CN 111741143B CN 202010834687 A CN202010834687 A CN 202010834687A CN 111741143 B CN111741143 B CN 111741143B
- Authority
- CN
- China
- Prior art keywords
- address
- modbus
- measuring instrument
- modbus address
- upper computer
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5038—Address allocation for local use, e.g. in LAN or USB networks, or in a controller area network [CAN]
-
- 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)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Remote Monitoring And Control Of Power-Distribution Networks (AREA)
- Small-Scale Networks (AREA)
Abstract
本申请涉及一种电测仪表Modbus地址在线分配的方法、装置。所述方法包括:上位机在信道中广播地址协商命令,多个电测仪表与所述信道连接;所述电测仪表根据所述地址协商命令判断是否已经分配Modbus地址;如果所述电测仪表未分配Modbus地址,向所述上位机发送Modbus地址分配请求;所述上位机根据所述Modbus地址分配请求,将当前已分配的Modbus地址加预设值生成最新Modbus地址,并向所述电测仪表发送。采用本方法能够提高电测仪表Modbus地址分配的效率。
Description
技术领域
本申请涉及通信技术领域,特别是涉及一种电测仪表Modbus地址在线分配的方法、装置。
背景技术
Modbus是一种串行通信协议,已经成为工业领域通信协议的业界标准,是工业电子设备之间常用的连接方式,也是现在电测仪表普遍采用的通讯协议,由于其易于部署和维护,并且对供应商来说修改移动本地的比特或字节没有很多限制。Modbus协议规定消息帧的地址域包含两个字符(ASCII),即可能的从设备地址是0~247,对于电测仪表作为从设备,通讯地址只能为0~247,但批量生产的电测仪表的数量远大于248,且无法预知现场生产的电测仪表接入总线时如何分配,因此生产时无法将通讯地址准确的预置到电测仪表内。目前通用的做法是电测仪表在批量生产时,将通讯地址统一预置为0,并提供按键设置地址功能,现场实施时再根据仪表接入总线的分布情况人工分配通讯地址,并通过按键设置。
然而,现有基于Modbus协议通信的电测仪表,无法在生产时实现大数量的设备地址的自动分配。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高电测仪表Modbus地址分配效率的电测仪表Modbus地址在线分配的方法、装置。
一种电测仪表Modbus地址在线分配的方法,所述方法包括:
上位机在信道中广播地址协商命令,多个电测仪表与所述信道连接;
所述电测仪表根据所述地址协商命令判断是否已经分配Modbus地址;
如果所述电测仪表未分配Modbus地址,向所述上位机发送Modbus地址分配请求;
所述上位机根据所述Modbus地址分配请求,将当前已分配的Modbus地址加预设值生成最新Modbus地址,并向所述电测仪表发送。
在其中一个实施例中,所述电测仪表Modbus地址在线分配的方法还包括:所述上位机在向信道中广播地址协商命令后,等待预定时间;如果在所述预定时间内,所述上位机接收到所述Modbus地址分配请求,则在所述预定时间重复在信道中广播地址协商命令;如果在所述预定时间内,所述上位机未接收到所述Modbus地址分配请求,则停止在信道中广播地址协商命令。
在其中一个实施例中,所述电测仪表根据所述地址协商命令判断是否已经分配Modbus地址,包括:判断所述电测仪表本地的Modbus地址的值是否为0;如果所述电测仪表本地的Modbus地址的值为0,则所述电测仪表未分配Modbus地址。
在其中一个实施例中,所述如果所述电测仪表未分配Modbus地址,向所述上位机发送Modbus地址分配请求,包括:如果所述电测仪表未分配Modbus地址,根据所述电测仪表的识别码数据采用线性同余法计算随机数;计算所述随机数与预定时间间隔的乘积,得到延时时间;所述电测仪表根据所述延时时间向所述上位机发送Modbus地址分配请求。
在其中一个实施例中,所述Modbus地址分配请求包括所述电测仪表的识别码:所述上位机根据所述Modbus地址分配请求,将当前已分配的Modbus地址加预设值生成最新Modbus地址,并向所述电测仪表发送,包括:所述上位机根据所述电测仪表的识别码,查询数据库中是否存在所述识别码;如果所述识别码不存在,所述上位机根据所述Modbus地址分配请求,将当前已分配的Modbus地址加预设值生成最新Modbus地址,并向所述电测仪表发送。
在其中一个实施例中,在所述上位机根据所述电测仪表的识别码,查询数据库中是否存在所述识别码之后,包括:如果所述识别码存在,所述上位机获取所述识别码对应的Modbus地址,并向所述电测仪表发送。
在其中一个实施例中,在所述上位机根据所述Modbus地址分配请求,将当前已分配的Modbus地址加预设值生成最新Modbus地址,并向所述电测仪表发送之后,包括:所述电测仪表根据所述最新Modbus地址进行Modbus地址设置,并向所述上位机返回Modbus地址设置成功信息;所述上位机根据所述Modbus地址设置成功信息,将所述识别码与所述最新Modbus地址关联存储至所述数据库。
一种电测仪表Modbus地址在线分配的装置,所述装置包括:
协商命令广播模块,用于上位机在信道中广播地址协商命令,多个电测仪表与所述信道连接;
分配地址判断模块,用于所述电测仪表根据所述地址协商命令判断是否已经分配Modbus地址;
分配请求发送模块,用于如果所述电测仪表未分配Modbus地址,向所述上位机发送Modbus地址分配请求;
分配地址发送模块,用于所述上位机根据所述Modbus地址分配请求,将当前已分配的Modbus地址加预设值生成最新Modbus地址,并向所述电测仪表发送。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
上位机在信道中广播地址协商命令,多个电测仪表与所述信道连接;
所述电测仪表根据所述地址协商命令判断是否已经分配Modbus地址;
如果所述电测仪表未分配Modbus地址,向所述上位机发送Modbus地址分配请求;
所述上位机根据所述Modbus地址分配请求,将当前已分配的Modbus地址加预设值生成最新Modbus地址,并向所述电测仪表发送。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
上位机在信道中广播地址协商命令,多个电测仪表与所述信道连接;
所述电测仪表根据所述地址协商命令判断是否已经分配Modbus地址;
如果所述电测仪表未分配Modbus地址,向所述上位机发送Modbus地址分配请求;
所述上位机根据所述Modbus地址分配请求,将当前已分配的Modbus地址加预设值生成最新Modbus地址,并向所述电测仪表发送。
上述电测仪表Modbus地址在线分配的方法、装置、计算机设备和存储介质,通过广播的方式发送广播地址协商命令,能够让所有的电测仪表都能够查询是否分配了Modbus地址,并且电测仪表在根据广播地址协商命令查询自身未分配Modbus地址时,向上位机发送Modbus地址分配请求,上位机能够根据当前已分配的Modbus地址加预设值生成最新Modbus地址,从而对电测仪表分配新的Modbus地址,使得Modbus地址分配不重复,并且能够对每个电测仪表进行Modbus地址分配,提高了Modbus地址分配效率。
附图说明
图1为一个实施例中电测仪表Modbus地址在线分配的方法的应用环境图;
图2为一个实施例中电测仪表Modbus地址在线分配的方法的流程示意图;
图3为一个具体实施例中电测仪表Modbus地址在线分配的方法的流程示意图;
图4为一个实施例中电测仪表Modbus地址在线分配的装置的结构框图;
图5为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的电测仪表Modbus地址在线分配的方法,可以应用于如图1所示的应用环境中。其中,电测仪表104通过RS485总线与上位机102进行通信。上位机102在信道中广播地址协商命令,多个电测仪表104与所述信道连接;所述电测仪表104根据所述地址协商命令判断是否已经分配Modbus地址;如果所述电测仪表104未分配Modbus地址,向所述上位机102发送Modbus地址分配请求;所述上位机102根据所述Modbus地址分配请求,将当前已分配的Modbus地址加预设值生成最新Modbus地址,并向所述电测仪表104发送。其中,上位机102还包括数据库、地址协商模块和Modbus通讯模块。其中,上位机102可以用独立的服务器或者是多个服务器组成的服务器集群来实现,电测仪表104可为电能表、水表、燃气表等。
在一个实施例中,如图2所示,提供了一种电测仪表Modbus地址在线分配的方法,包括以下步骤:
S110,上位机在信道中广播地址协商命令,多个电测仪表与所述信道连接。
其中,采用RS485总线作为通信信道的媒介,在通信信道中连接了的上位机和电测仪表,采用总线型的通信结构。地址协商命令的数据帧结构参考DLT645协议:
其中,数据帧头用于判断数据帧的起始位置,表中的地址为上位机广播命令时的广播地址,其他命令采用电测仪表识别码作为通讯地址,控制码和校验位用于对数据进行校验,帧尾用于判断数据帧的结束位置,数据内容是控制地址协商的内容,根据此内容电测仪表能够检验自身是否存在Modbus地址。
其中,上位机与电测仪表进行数据通讯时,通过Modbus通讯模块从数据库中读取对应的Modbus地址进行通讯。
S120,所述电测仪表根据所述地址协商命令判断是否已经分配Modbus地址。
其中,Modbus地址在电测仪表批量生产时,初始值设置为0。可以通过判断Modbus地址是否为0来判断所述电测仪表是否分配了Modbus地址。当然,Modbus地址的初始值也可为其它值,在此不作限定。
S130,如果所述电测仪表未分配Modbus地址,向所述上位机发送Modbus地址分配请求。
其中,所述Modbus地址分配请求包括所述电测仪表的识别码,识别码是所述电测仪表的唯一标识,电测仪表在厂内批量生产时将电表唯一识别码内置表内。Modbus地址分配请求用于向所述上位机请求Modbus地址。
S140,所述上位机根据所述Modbus地址分配请求,将当前已分配的Modbus地址加预设值生成最新Modbus地址,并向所述电测仪表发送。
其中,当前已分配的Modbus地址是指上位机在当前时间之前最后一次给电测仪表分配的Modbus地址,Modbus地址的分配是递增的,已经分配过的地址不能再重复分配,在当前已分配的Modbus地址加预设值生成最新Modbus地址,能够包括当前电测仪表的Modbus地址与其它电测仪表的Modbus地址不重复。其中,预设值可以根据需要设置,可选的,所述预设值为1。
上述电测仪表Modbus地址在线分配的方法中,通过广播的方式发送广播地址协商命令,能够让所有的电测仪表都能够查询是否分配了Modbus地址,并且电测仪表在根据广播地址协商命令查询自身未分配Modbus地址时,向上位机发送Modbus地址分配请求,上位机能够根据当前已分配的Modbus地址加预设值生成最新Modbus地址,从而对电测仪表分配新的Modbus地址,使得Modbus地址分配不重复,并且能够对每个电测仪表进行Modbus地址分配,提高了Modbus地址分配效率。
在其中一个实施例中,所述电测仪表Modbus地址在线分配的方法,还包括:所述上位机在向信道中广播地址协商命令后,等待预定时间;如果在所述预定时间内,所述上位机接收到所述Modbus地址分配请求,则在所述预定时间重复在信道中广播地址协商命令;如果在所述预定时间内,所述上位机未接收到所述Modbus地址分配请求,则停止在信道中广播地址协商命令。
其中,预定时间可以根据需要设置,例如,预定时间为6秒。上位机根据预定时间内是否接收到所述Modbus地址分配请求,来判断是否再次向信道中发送广播地址协商命令。如果在预定时间内是否接收到所述Modbus地址分配请求,则可能信道中还存在未进行Modbus地址分配的电测仪表,因此需要再次发送广播地址协商命令;如果在预定时间内未收到所述Modbus地址分配请求,则表示所述信道中不存在未进行Modbus地址分配的电测仪表,此时不再进行广播地址协商命令发送。本实施例中,通过预设时间内Modbus地址分配请求的判断机制,能够减少上位机在电测仪表都进行了地址分配的情况下,再次向信道中广播地址协商命令,能够减少信道冲突。
在其中一个实施例中,所述电测仪表根据所述地址协商命令判断是否已经分配Modbus地址,包括:判断所述电测仪表本地的Modbus地址的值是否为0;如果所述电测仪表本地的Modbus地址的值为0,则所述电测仪表未分配Modbus地址。本实施例中,通过判断Modbus地址的值是否为0来对电测仪表是否进行Modbus地址,所采用方法简单易实现。
在其中一个实施例中,所述如果所述电测仪表未分配Modbus地址,向所述上位机发送Modbus地址分配请求,包括:如果所述电测仪表未分配Modbus地址,根据所述电测仪表的识别码数据采用线性同余法计算随机数;计算所述随机数与预定时间间隔的乘积,得到延时时间;所述电测仪表根据所述延时时间向所述上位机发送Modbus地址分配请求。
其中,预定时间间隔可以根据需要进行设置,例如,预定时间间隔设置为100。具体的,采用电测仪表自身的识别码作为种子,通过线性同余法得到随机数d(0~500),延时d*100秒后向所述上位机发送Modbus地址分配请求。
其中,电测仪表的识别码是唯一的,则随机数也是唯一的,通过随机数计算延迟时间,能够避免电测仪表在向上位机发送Modbus地址分配请求造成信道冲突。
在其中一个实施例中,所述Modbus地址分配请求包括所述电测仪表的识别码。所述上位机根据所述Modbus地址分配请求,将当前已分配的Modbus地址加预设值生成最新Modbus地址,并向所述电测仪表发送,包括:所述上位机根据所述电测仪表的识别码,查询数据库中是否存在所述识别码;如果所述识别码不存在,所述上位机根据所述Modbus地址分配请求,将当前已分配的Modbus地址加预设值生成最新Modbus地址,并向所述电测仪表发送。
在其中一个实施例中,在所述上位机根据所述电测仪表的识别码,查询数据库中是否存在所述识别码之后,包括:如果所述识别码存在,所述上位机获取所述识别码对应的Modbus地址,并向所述电测仪表发送。本实施例中,在电测仪表已经分配Modbus地址情况下,能够将已经分配Modbus地址向电测仪表进行发送,避免重复分配Modbus地址。
在其中一个实施例中,在所述上位机根据所述Modbus地址分配请求,将当前已分配的Modbus地址加预设值生成最新Modbus地址,并向所述电测仪表发送之后,包括:所述电测仪表根据所述最新Modbus地址进行Modbus地址设置,并向所述上位机返回Modbus地址设置成功信息;所述上位机根据所述Modbus地址设置成功信息,将所述识别码与所述最新Modbus地址关联存储至所述数据库。
其中,电测仪表根据最新Modbus地址,进行自身的Modbus地址配置。本实施例中,通过在电测仪表Modbus地址分配成功后,通知上位机对上述电测仪表的识别码与对应的Modbus地址进行存储,方便下次查询。
在一个具体的实施例中,如图3所示,一种电测仪表Modbus地址在线分配的方法包括:上位机的地址协商模块向电测仪表广播发送地址协商命令,其中,地址协商模块从此刻还是计算随机延迟时间;电测仪表在接收到地址协商命令后,查询自身是否存在Modbus地址,如果自身不存在Modbus地址,向地址协商模块返回确认帧(Modbus地址分配请求),如果自身存在Modbus地址,则不作处理;地址协商模块在接收到确认帧后,向仪表信息管理数据库验证电测仪表是否已经分配过Modbus地址,如果所述电测仪表未分配过Modbus地址,则从仪表信息管理数据库获取最大的Modbus地址(当前已分配的Modbus地址);地址协商模块将最大的Modbus地址加预设值生成最新Modbus地址,然后生成Modbus地址设置帧,并发送至电测仪表;电测仪表根据Modbus地址设置帧,对自身的Modbus地址进行设置;电测仪表在Modbus地址设置完成后,向地址协商模块发送设置成功信息,地址协商模块根据设置成功信息,将所述识别码与所述最新Modbus地址关联存储至所述仪表信息管理数据库。
应该理解的是,虽然图2-3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-3中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图4所示,提供了一种电测仪表Modbus地址在线分配的装置,包括:协商命令广播模块210、分配地址判断模块220、分配请求发送模块230和分配地址发送模块240,其中:
协商命令广播模块210,用于上位机在信道中广播地址协商命令,多个电测仪表与所述信道连接。
分配地址判断模块220,用于所述电测仪表根据所述地址协商命令判断是否已经分配Modbus地址。
分配请求发送模块230,用于如果所述电测仪表未分配Modbus地址,向所述上位机发送Modbus地址分配请求。
分配地址发送模块240,用于所述上位机根据所述Modbus地址分配请求,将当前已分配的Modbus地址加预设值生成最新Modbus地址,并向所述电测仪表发送。
在其中一个实施例中,所述电测仪表Modbus地址在线分配的装置,还包括:信息发送等待模块,用于所述上位机在向信道中广播地址协商命令后,等待预定时间;所述协商命令广播模块210,还用于如果在所述预定时间内,所述上位机接收到所述Modbus地址分配请求,则在所述预定时间重复在信道中广播地址协商命令;停止命令发送模块,用于如果在所述预定时间内,所述上位机未接收到所述Modbus地址分配请求,则停止在信道中广播地址协商命令。
在其中一个实施例中,所述分配地址判断模块220包括:判断单元,用于判断所述电测仪表本地的Modbus地址的值是否为0;其中,如果所述电测仪表本地的Modbus地址的值为0,则所述电测仪表未分配Modbus地址。
在其中一个实施例中,所述分配请求发送模块230包括:随机数计算单元,用于如果所述电测仪表未分配Modbus地址,根据所述电测仪表的识别码数据采用线性同余法计算随机数;延时时间计算单元,用于计算所述随机数与预定时间间隔的乘积,得到延时时间;请求发送单元,用于所述电测仪表根据所述延时时间向所述上位机发送Modbus地址分配请求。
在其中一个实施例中,所述Modbus地址分配请求包括所述电测仪表的识别码:所述分配地址发送模块240包括:识别码查询单元,用于所述上位机根据所述电测仪表的识别码,查询数据库中是否存在所述识别码;地址发送单元,用于如果所述识别码不存在,所述上位机根据所述Modbus地址分配请求,将当前已分配的Modbus地址加预设值生成最新Modbus地址,并向所述电测仪表发送。
在其中一个实施例中,所述分配地址发送模块240还包括:所述地址发送单元,还用于如果所述识别码存在,所述上位机获取所述识别码对应的Modbus地址,并向所述电测仪表发送。
在其中一个实施例中,所述电测仪表Modbus地址在线分配的装置,还包括:成功信息发送模块,用于所述电测仪表根据所述最新Modbus地址进行Modbus地址设置,并向所述上位机返回Modbus地址设置成功信息;存储模块,用于所述上位机根据所述Modbus地址设置成功信息,将所述识别码与所述最新Modbus地址关联存储至所述数据库。
关于电测仪表Modbus地址在线分配的装置的具体限定可以参见上文中对于电测仪表Modbus地址在线分配的方法的限定,在此不再赘述。上述电测仪表Modbus地址在线分配的装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储识别码与Modbus地址数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种电测仪表Modbus地址在线分配的方法。
本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
上位机在信道中广播地址协商命令,多个电测仪表与所述信道连接;
所述电测仪表根据所述地址协商命令判断是否已经分配Modbus地址;
如果所述电测仪表未分配Modbus地址,向所述上位机发送Modbus地址分配请求;
所述上位机根据所述Modbus地址分配请求,将当前已分配的Modbus地址加预设值生成最新Modbus地址,并向所述电测仪表发送。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:所述上位机在向信道中广播地址协商命令后,等待预定时间;如果在所述预定时间内,所述上位机接收到所述Modbus地址分配请求,则在所述预定时间重复在信道中广播地址协商命令;如果在所述预定时间内,所述上位机未接收到所述Modbus地址分配请求,则停止在信道中广播地址协商命令。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
上位机在信道中广播地址协商命令,多个电测仪表与所述信道连接;
所述电测仪表根据所述地址协商命令判断是否已经分配Modbus地址;
如果所述电测仪表未分配Modbus地址,向所述上位机发送Modbus地址分配请求;
所述上位机根据所述Modbus地址分配请求,将当前已分配的Modbus地址加预设值生成最新Modbus地址,并向所述电测仪表发送。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:所述上位机在向信道中广播地址协商命令后,等待预定时间;如果在所述预定时间内,所述上位机接收到所述Modbus地址分配请求,则在所述预定时间重复在信道中广播地址协商命令;如果在所述预定时间内,所述上位机未接收到所述Modbus地址分配请求,则停止在信道中广播地址协商命令。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (7)
1.一种电测仪表Modbus地址在线分配的方法,其特征在于,所述方法包括:
上位机在信道中广播地址协商命令,多个电测仪表与所述信道连接;
所述电测仪表根据所述地址协商命令判断是否已经分配Modbus地址;
如果所述电测仪表未分配Modbus地址,向所述上位机发送Modbus地址分配请求;
所述上位机根据所述Modbus地址分配请求,将当前已分配的Modbus地址加预设值生成最新Modbus地址,并向所述电测仪表发送;
所述如果所述电测仪表未分配Modbus地址,向所述上位机发送Modbus地址分配请求,包括:
如果所述电测仪表未分配Modbus地址,根据所述电测仪表的识别码数据采用线性同余法计算随机数;
计算所述随机数与预定时间间隔的乘积,得到延时时间;
所述电测仪表根据所述延时时间向所述上位机发送Modbus地址分配请求;
所述Modbus地址分配请求包括所述电测仪表的识别码:
所述上位机根据所述Modbus地址分配请求,将当前已分配的Modbus地址加预设值生成最新Modbus地址,并向所述电测仪表发送,包括:
所述上位机根据所述电测仪表的识别码,查询数据库中是否存在所述识别码;所述电测仪表的识别码以及与所述识别码关联的Modbus地址,在所述上位机收到Modbus地址设置成功信息后,存储至所述数据库;
如果所述识别码不存在,所述上位机根据所述Modbus地址分配请求,将当前已分配的Modbus地址加预设值生成最新Modbus地址,并向所述电测仪表发送;
如果所述识别码存在,所述上位机获取所述识别码对应的Modbus地址,并向所述电测仪表发送。
2.根据权利要求1所述的方法,其特征在于,还包括:
所述上位机在向信道中广播地址协商命令后,等待预定时间;
如果在所述预定时间内,所述上位机接收到所述Modbus地址分配请求,则在所述预定时间重复在信道中广播地址协商命令;
如果在所述预定时间内,所述上位机未接收到所述Modbus地址分配请求,则停止在信道中广播地址协商命令。
3.根据权利要求1所示的方法,其特征在于,所述电测仪表根据所述地址协商命令判断是否已经分配Modbus地址,包括:
判断所述电测仪表本地的Modbus地址的值是否为0;
如果所述电测仪表本地的Modbus地址的值为0,则所述电测仪表未分配Modbus地址。
4.根据权利要求1所述的方法,其特征在于,在所述上位机根据所述Modbus地址分配请求,将当前已分配的Modbus地址加预设值生成最新Modbus地址,并向所述电测仪表发送之后,包括:
所述电测仪表根据所述最新Modbus地址进行Modbus地址设置,并向所述上位机返回Modbus地址设置成功信息;
所述上位机根据所述Modbus地址设置成功信息,将所述识别码与所述最新Modbus地址关联存储至所述数据库。
5.一种电测仪表Modbus地址在线分配的装置,其特征在于,所述装置包括:
协商命令广播模块,用于上位机在信道中广播地址协商命令,多个电测仪表与所述信道连接;
分配地址判断模块,用于所述电测仪表根据所述地址协商命令判断是否已经分配Modbus地址;
分配请求发送模块,用于如果所述电测仪表未分配Modbus地址,向所述上位机发送Modbus地址分配请求;
分配地址发送模块,用于所述上位机根据所述Modbus地址分配请求,将当前已分配的Modbus地址加预设值生成最新Modbus地址,并向所述电测仪表发送;
所述如果所述电测仪表未分配Modbus地址,向所述上位机发送Modbus地址分配请求,包括:
如果所述电测仪表未分配Modbus地址,根据所述电测仪表的识别码数据采用线性同余法计算随机数;
计算所述随机数与预定时间间隔的乘积,得到延时时间;
所述电测仪表根据所述延时时间向所述上位机发送Modbus地址分配请求;
所述Modbus地址分配请求包括所述电测仪表的识别码:
所述上位机根据所述Modbus地址分配请求,将当前已分配的Modbus地址加预设值生成最新Modbus地址,并向所述电测仪表发送,包括:
所述上位机根据所述电测仪表的识别码,查询数据库中是否存在所述识别码;所述电测仪表的识别码以及与所述识别码关联的Modbus地址,在所述上位机收到Modbus地址设置成功信息后,存储至所述数据库;
如果所述识别码不存在,所述上位机根据所述Modbus地址分配请求,将当前已分配的Modbus地址加预设值生成最新Modbus地址,并向所述电测仪表发送;
如果所述识别码存在,所述上位机获取所述识别码对应的Modbus地址,并向所述电测仪表发送。
6.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4中任一项所述方法的步骤。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述的方法的步骤。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2020104939226 | 2020-06-03 | ||
CN202010493922 | 2020-06-03 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111741143A CN111741143A (zh) | 2020-10-02 |
CN111741143B true CN111741143B (zh) | 2020-12-08 |
Family
ID=72658579
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010834687.4A Active CN111741143B (zh) | 2020-06-03 | 2020-08-19 | 一种电测仪表Modbus地址在线分配的方法、装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111741143B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113437998B (zh) * | 2021-06-24 | 2022-11-04 | 国网北京市电力公司 | 运维调试方法、系统、非易失性存储介质及处理器 |
CN114301729A (zh) * | 2021-12-22 | 2022-04-08 | 北京海林自控科技股份有限公司 | 一种基于ntc的总线通信地址分配方法及系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101477506A (zh) * | 2008-01-04 | 2009-07-08 | 鸿富锦精密工业(深圳)有限公司 | 主设备对从设备的定址系统及其方法 |
US8700747B2 (en) * | 2011-04-19 | 2014-04-15 | Schneider Electric It Corporation | System and method for automatically addressing devices in a multi-drop network |
CN102325201B (zh) * | 2011-10-27 | 2013-10-09 | 珠海派诺科技股份有限公司 | 在Modbus通信网络中为从节点设备分配网络地址的方法 |
CN108737590B (zh) * | 2018-05-15 | 2022-02-25 | 浙江正泰电器股份有限公司 | 一种地址自动分配的方法、系统、Modbus主站、Modbus从站 |
CN109450662B (zh) * | 2018-09-30 | 2023-09-15 | 浙江正泰电器股份有限公司 | 自组网通讯管理机及组网方法、自组网通讯系统 |
-
2020
- 2020-08-19 CN CN202010834687.4A patent/CN111741143B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111741143A (zh) | 2020-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111741143B (zh) | 一种电测仪表Modbus地址在线分配的方法、装置 | |
CN111540190B (zh) | 基于双芯智能电表的数据分发方法、装置和计算机设备 | |
CN112311628B (zh) | 网络测速方法、系统、网络设备和存储介质 | |
CN112272243B (zh) | 地址分配方法 | |
CN114553592B (zh) | 一种设备身份验证的方法、设备及存储介质 | |
CN111813699B (zh) | 基于智能电表的数据路由测试方法、装置和计算机设备 | |
EP4087206A1 (en) | Internet-of-things device registration method and apparatus, device and storage medium | |
CN110430276B (zh) | 基于docker的通信控制方法、装置、通信控制设备和存储介质 | |
CN110933192A (zh) | 局域网ip地址分配方法、装置、系统、计算机设备 | |
CN110659272A (zh) | 数据清洗方法和系统 | |
CN110933194B (zh) | 地址自动分配方法、设备及系统 | |
CN113938351A (zh) | 数据采集方法、系统及计算机可读存储介质 | |
CN109862134B (zh) | 一种ip地址的租约时间配置方法和系统及dhcp客户端 | |
CN111930482A (zh) | 基于节点集群的任务处理方法、装置、设备及存储介质 | |
CN109104506B (zh) | 域名解析规则的确定方法、装置和计算机可读存储介质 | |
CN115486033B (zh) | 物联网中的设备接入方法、装置、计算机设备及存储介质 | |
CN104320455A (zh) | 一种数据分发方法、服务器及系统 | |
CN113472823B (zh) | 一种服务器访问方法、装置、智能终端及存储介质 | |
CN113839783A (zh) | 一种任务处理方法、装置及设备 | |
CN113472846A (zh) | 消息处理方法、装置、设备和计算机可读存储介质 | |
CN109361716B (zh) | 一种ip地址的获取方法、装置、终端设备和存储介质 | |
CN115314864A (zh) | 通信系统、方法及设备 | |
CN111314492A (zh) | 空调器及其数据传输方法和计算机可读存储介质 | |
CN113362196B (zh) | 电网监控系统前置调度服务的低时延寻址方法 | |
CN112714020B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |