RS485总线下设备升级方法、设备升级系统以及采集器与流程

文档序号:32124270发布日期:2022-11-09 07:41阅读:461来源:国知局
RS485总线下设备升级方法、设备升级系统以及采集器与流程
rs485总线下设备升级方法、设备升级系统以及采集器
技术领域
1.本发明涉及数据传输领域,尤其涉及一种rs485总线下智能设备、设备升级系统以及采集器。


背景技术:

2.rs485是一个定义平衡数字多点系统中的驱动器和接收器的电气特性的标准,该标准由电信行业协会和电子工业联盟定义。使用该标准的数字通信网络能在远距离条件下以及电子噪声大的环境下有效传输信号。rs-485使得连接本地网络以及多支路通信链路的配置成为可能。
3.在现场应用时,因为rs485总线的特性,一路rs485总线上,可能会接多台甚至30台左右的智能设备;如需要升级,一般情况下,均是采用人工控制升级工具使用rs485通讯对智能设备进行升级。
4.由于rs485总线是半双工通讯,为了保证升级的成功率,升级过程中,基本上是采用一问一答的通讯方式进行升级。因此,每次是将完整的升级文件单独发送给每个待升级智能设备。这样的升级方法的传输时间是每台智能设备的传输时间*台数,当待升级智能设备台数较多时,传输所需时间长。而且,当网络不稳定时,这样的升级方法无法连续传输完一个完整文件,所以,当遇到网络不稳定的情况,传统的升级方法是报错,或者放弃升级。甚至当升级文件较大时,会频繁报错,无法升级,严重影响智能设备的升级进度。


技术实现要素:

5.为了克服现有技术的不足,本发明提出一种rs485总线下设备升级方法、智能终端以及存储介质,通过预定义广播升级命令对rs485总线上的智能设备进行广播升级,并实时记录升级日志和升级结果,从而能够实现对智能设备的批量升级,节省了升级维护所消耗的人力和时间,并且能够保证版本升级的准确性,避免了升级异常的出现,也能够对智能设备升级进度进行监督,提升了广播升级的可靠性。
6.为解决上述问题,本发明采用的一个技术方案为:一种rs485总线下设备升级方法,所述rs485总线下设备升级方法包括:s101:采集器扫描rs485总线上的智能设备,获取版本信息;s102:根据输入的指令执行升级操作,基于升级操作采用预定义广播升级命令升级智能设备,所述预定义广播升级命令包括被升级的智能设备的型号、地址、以及目标版本;s103:根据被升级的智能设备反馈的升级信息向所述智能设备发送升级内容,实时更新升级日志和输出升级结果。
7.进一步地,所述采集器扫描rs485总线上的智能设备,获取版本信息的步骤具体包括:获取所述智能设备的地址区间,根据所述地址区间扫描rs485总线上的智能设备,获取每个智能设备上的版本信息。
8.进一步地,所述根据所述地址区间扫描rs485总线上的智能设备,获取每个智能设备上的版本信息的步骤具体包括:根据所述地址区间下发读取智能设备信息的指令,判断
接收到的智能设备响应信息是否符合预设条件;若是,解析所述智能设备响应信息,根据解析结果更新智能设备信息列表;若否,则根据所述地址区间扫描下一个智能设备。
9.进一步地,所述根据输入的指令执行升级操作的步骤具体包括:展示智能设备的信息,并根据输入的指令配置版本信息、获取固件文件以及校验固件文件。
10.进一步地,所述校验固件文件的步骤具体包括:判断所述固件是否正常;若是,则基于升级操作信息采用预定义广播升级命令升级智能设备;若否,则提示异常,重新配置版本信息。
11.进一步地,所述基于升级操作采用预定义广播升级命令升级智能设备的步骤包括:基于所述升级操作获取固件以及被升级的智能设备的信息,将所述信息放入预定格式的预定义广播升级命令中,通过rs485总线发送所述预定义广播升级命令。
12.进一步地,所述基于升级操作采用预定义广播升级命令升级智能设备的步骤还包括:获取待升级的智能设备数量,根据所述智能设备数量设置所述预定义广播升级命令中的从站地址,接收预定义广播升级命令的智能设备根据预定义广播升级命令中被升级的智能设备的型号、地址以及目标版本以及从站地址进行智能设备升级。
13.进一步地,所述根据被升级的智能设备反馈的升级信息向所述智能设备发送升级内容的步骤具体包括:轮询指定要求响应的被升级的智能设备,根据反馈的升级信息判断所述被升级的智能设备是否升级完毕;若是,则逐个确认被升级的智能设备的升级结果;若否,则对所述被升级的智能设备进行升级内容的断点续传,并根据断点续传次数判断所述被升级的智能设备是否异常。
14.基于相同的发明构思,本发明还提出一种基于rs485总线的设备升级系统,所述基于rs485总线的设备升级系统包括采集器、rs485总线以及至少一个智能设备,所述采集器通过所述rs485总线与所述智能设备通信连接,所述基于rs485总线的设备升级系统通过所述采集器、rs485总线、智能设备实现如上所述的rs485总线下设备升级方法。
15.基于相同的发明构思,本发明还提出一种采集器,所述采集器包括处理器、存储器,所述存储器存储有计算机程序,所述处理器与所述存储器通信连接,根据所述存储器中的计算机程序执行如上所述的rs485总线下设备升级方法。
16.相比现有技术,本发明的有益效果在于:通过预定义广播升级命令对rs485总线上的智能设备进行广播升级,并实时记录升级日志和升级结果,从而能够实现对智能设备的批量升级,节省了升级维护所消耗的人力和时间,并且能够保证版本升级的准确性,避免了升级异常的出现,也能够对智能设备升级进度进行监督,提升了广播升级的可靠性。
附图说明
17.图1为本发明rs485总线下设备升级方法一实施例的流程图;
18.图2为本发明rs485总线下设备升级方法中智能设备扫描一实施例的流程图;
19.图3为本发明rs485总线下设备升级方法中执行升级操作一实施例的流程图;
20.图4为本发明rs485总线下设备升级方法中单播模式下升级一实施例的示意图;
21.图5为本发明rs485总线下设备升级方法中广播模式下升级一实施例的示意图;
22.图6为本发明rs485总线下设备升级方法中采集器的升级逻辑一实施例的流程图;
23.图7为本发明rs485总线下设备升级方法中智能设备的升级逻辑一实施例的流程
图;
24.图8本发明基于rs485总线的设备升级系统一实施例的结构图;
25.图9为本发明采集器一实施例的结构图。
具体实施方式
26.以下通过特定的具体实例说明本技术的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本技术的其他优点与功效。本技术还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本技术的精神下进行各种修饰或改变。需说明的是,通常在此处附图中描述和示出的各本公开实施例在不冲突的前提下,可相互组合,其中的结构部件或功能模块可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
27.在本技术公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
28.请参阅图1-7,其中,图1为本发明rs485总线下设备升级方法一实施例的流程图;图2为本发明rs485总线下设备升级方法中智能设备扫描一实施例的流程图;图3为本发明rs485总线下设备升级方法中执行升级操作一实施例的流程图;图4为本发明rs485总线下设备升级方法中单播模式下升级一实施例的示意图;图5为本发明rs485总线下设备升级方法中广播模式下升级一实施例的示意图;图6为本发明rs485总线下设备升级方法中采集器的升级逻辑一实施例的流程图;图7为本发明rs485总线下设备升级方法中智能设备的升级逻辑一实施例的流程图。结合图1-7对本发明rs485总线下设备升级方法作详细说明。
29.在本实施例中,应用rs485总线下设备升级方法的系统为基于rs485总线的设备升级系统,其中,该设备升级系统包括采集器、rs485总线、智能设备的,采集器通过rs485总线与多个智能设备连接。智能设备为具有rs485总线端口,且能够加载固件和根据传输的固件进行升级的器件,采集器可以为电脑、单片机、plc以及能够通过rs485总线向智能设备传输固件以及升级命令的智能终端。
30.在本实施例中,rs485总线下设备升级方法包括:
31.s101:采集器扫描rs485总线上的智能设备,获取版本信息。
32.在本实施例中,采集器通过一条rs485总线,通过手拉手的方式连接n台(一般最大32台)设备,现场使用modbusrtu协议进行通讯。在其他实施例中,采集器也可以通过多条rs485总线与多台智能设备连接,每条rs485总线上配制不同数量或相同数量的智能设备。
33.采集器扫描rs485总线上的智能设备,获取版本信息的步骤具体包括:获取智能设备的地址区间,根据地址区间扫描rs485总线上的智能设备,获取每个智能设备上的版本信息。
34.其中,根据地址区间扫描rs485总线上的智能设备,获取每个智能设备上的版本信
息的步骤具体包括:根据地址区间下发读取智能设备信息的指令,判断接收到的智能设备响应信息是否符合预设条件;若是,解析智能设备响应信息,根据解析结果更新智能设备信息列表;若否,则根据地址区间扫描下一个智能设备。其中,采集器按照标准modbusrtu报文03h读功能码,下发读取,下发读取设备信息通用信息寄存器的指令,根据智能设备反馈的智能设备通用信息寄存器的信息获取智能设备的信息。
35.具体的,在标准modbusrtu协议中,能够通过智能设备的通用信息寄存器的功能码获取智能设备的型号、版本等信息,其中,不同的功能码对应的信息如表一所示:
[0036][0037][0038]
表一、寄存器
[0039]
在一个具体的实施例中,用户通过采集器的web配置页面(升级页面)设置地址扫描区间(如设置搜索起始地址startaddr、搜索结束地址endaddr),点击开始搜索,采集器逐个搜索设备,并在搜索时判断当前的搜索起始地址是否大于搜索结束地址,若是,确定搜索结束,展示最终扫描结果,若否,则根据当前的搜索起始地址请求设备报文,并在设备报文对应的格式正确时,解析设备信息和更新设备信息列表,并在完成后,更换当前的搜索起始地址,以搜索下一个地址对应的设备。
[0040]
其中,采集器在搜索设备地址n时,按照标准modbusrtu报文03h读功能码
(modbusrtu协议有标准的功能码的。03h功能码是用于读寄存器的功能码,本发明是利用modbusrtu协议的03h读寄存器功能码,读取设备的通用信息),下发读取设备信息通用信息寄存器(下发读取设备信息的指令),如果有接收到设备响应信息,则进行报文解析,判定一下特殊标识寄存器(下发完读取设备通用信息的指令以后,会接收设备针对该指令的响应,如果设备进行了响应,我们会判别响应的格式是否是正确。如果正确,采集器比较一下厂商特定标识寄存器中的值,是不是预设的厂家特定的标识内容,如果是,才认为是需要搜索的设备,解析各种版本号、否则认为是其他厂家的设备,不做记录),根据判定结果判断是否是我司的特定内容,如果是,则认为是扫描到了智能设备,并根据解析内容更新智能设备信息列表,将其软件版本号、硬件版本号以及sn号信息更新到设备信息列表中;如果没有接收到正确的设备响应,则进行下一个设备的搜索,直到搜索完地址区间中所有的预设搜索地址。
[0041]
s102:根据输入的指令执行升级操作,基于升级操作采用预定义广播升级命令升级智能设备,预定义广播升级命令包括被升级的智能设备的型号、地址、以及目标版本。
[0042]
在本实施例中,根据输入的指令执行升级操作的步骤具体包括:展示智能设备的信息,并根据输入的指令配置版本信息、获取固件文件以及校验固件文件。
[0043]
其中,校验固件文件的步骤具体包括:判断固件是否正常;若是,则基于升级操作信息采用预定义广播升级命令升级智能设备;若否,则提示异常,重新配置版本信息。
[0044]
在一个具体的实施例中,采集器通过web页面展示搜索的智能设备的信息的,根据用户的指令配置版本信息(设置智能设备升级前的版本信息以及需升级成的目标版本)、设置待升级的智能设备的型号(仪表型号),接收用户上传的固件,校验该固件包是否正常。若否,则提示异常,请用户再次确认,返回配置版本信息的步骤,若是,则显示“升级”按键,用户点击“升级”按键,采集器开始升级。
[0045]
在本实施例中,基于升级操作采用预定义广播升级命令升级智能设备的步骤包括:基于升级操作获取固件以及被升级的智能设备的信息,将信息放入预定格式的预定义广播升级命令中,通过rs485总线发送所述预定义广播升级命令。
[0046]
其中,基于升级操作采用预定义广播升级命令升级智能设备的步骤还包括:获取待升级的智能设备数量,根据智能设备数量设置所述预定义广播升级命令中的从站地址,接收预定义广播升级命令的智能设备根据预定义广播升级命令中被升级的智能设备的型号、地址以及目标版本以及从站地址进行智能设备升级。
[0047]
具体的,modbus国标中规定,用户能够定义功能码,其中,modbus协议中有两个用户定义功能码的区域,即十进制的65~72和100~110,用户无需modbus组织的任何批准就可以选择一个区域实现一个功能码的定义。因此,我们选用固件下发功能码十进制的67进行定义。通过表二、表三、表四对预定义广播升级命令中下发的固件文件中(功能码67)的具体定义进行说明。
[0048][0049]
表二、通讯交互的资料格式
[0050][0051][0052]
表三、升级固件包裹格式
[0053][0054]
表四、升级固定响应包裹格式
[0055]
通过上述预定格式的广播升级命令和智能设备的响应实现升级固件的下发与固件升级。上述固件升级方式的好处如下:
[0056]
1、既支持单个设备升级,又支持设备广播升级。
[0057]
2、设备升级时,增加了型号确认、目标设备版本确认,可支持在总线中对于不同型号设备、不同目标版本针对升级的确认,避免不必要的升级异常。
[0058]
3、升级固件包中增加了固件校验信息,保证了升级固件的安全,避免中间出现干扰或者被篡改。
[0059]
4、广播升级时,采用轮询指定设备进行响应的机制,提高了升级过程中对于单个设备升级进度监督的时效性,同时也提升了广播升级的可靠性。其中,在单播模式下升级时,采集器预定格式的指令中将从站地址设置为具体要升级的那台智能设备的地址(有效地址为1-247),智能设备在确定该地址为本设备地址时,根据指令进行升级。广播模式下升级时,设置从站地址为0,即接收到广播升级指令的所有设备均升级,接收指令的智能设备根据从站地址的信息判断是否接收升级固件包。
[0060]
在本实施例中,采集设备下发广播报文,从站地址设置为0,那整个总线上的所有设备均能接收到该升级报文。如果接收到该升级报文的设备确定升级报文中的设备类型与自身不一致或设备的当前版本与自身不一致时,则默认忽略。如果升级请求包(升级报文)中,设备类型、设备的当前版本都匹配时,则该设备需要执行预定义广播升级指令。特别的,对于升级指令中要求回复的那台智能设备,需要按格式进行升级响应。
[0061]
s103:根据被升级的智能设备反馈的升级信息向智能设备发送升级内容,实时更新升级日志和输出升级结果。
[0062]
采集器升级时,是根据之前获取到的升级列表,每下发一条升级请求包,就切换一个设备,要求对应的设备进行升级响应。该步骤贯穿了整个升级过程,升级过程中可以清晰地看到具体的升级状态。
[0063]
在本实施例中,根据被升级的智能设备反馈的升级信息向智能设备发送升级内容的步骤具体包括:轮询指定要求响应的被升级的智能设备,根据反馈的升级信息判断被升级的智能设备是否升级完毕;若是,则逐个确认被升级的智能设备的升级结果;若否,则对
被升级的智能设备进行升级内容的断点续传,并根据断点续传次数判断被升级的智能设备是否异常。
[0064]
在本实施例中,如果在广播升级过程中,如果某个设备因为现场干扰或者其他原因,导致未完成固件完整接收,从而在升级途中暂停接收了。为避免需要从头开始升级该设备,特设计获取升级信息接口。其中,获取设备升级信息接口对应的功能码为功能码68。具体的,功能码68在采集器的写寄存器包裹格式以及智能设备的响应格式中设置如表五所示:
[0065][0066]
表五、功能码68的格式设置
[0067]
其中,设备类型为当前升级的设备的名称,用作设备验证,防止升级错误的设备。固件总长度为上一次未完成升级的固件的固件总长度,如果智能设备未升级或与升级报文中的固件与设备上次接收的固件不一致(如果刚开始升级,或者因为采集器的固件发生切换,是需要重新开始升级的。所以回复已下载长度为0,这样采集器升级底下智能设备,就会从固件的偏移地址0处重新开始升级),填0,如果当前设备中的固件与要升级的固件完全一致,则填当前固件的总长度。固件校验码为上一次未完成的升级固件包的固件校验码,如智能设备未升级或接收的升级报文中的固件与智能设备上次接收的固件不一致,填0,如果当前设备中的固件与要升级的固件完全一致,则填当前固件的固件校验码。当前已下载长度表示上一次未完成全部下载的升级固件包的已下载长度。如果智能设备未升级或升级报文中的固件与设备上次接收的固件不一致,填0。如果当前设备中的固件与要升级的固件完全一致,则填当前固件的总长度。通过智能设备的升级固件响应包裹格式实现固件的断点续传。
[0068]
本升级方法的优点如下:
[0069]
1.既支持单个设备升级,又支持设备广播升级,大大缩短了批量升级所用的时间(假如需要给设备进行批量升级。一路rs485总线中,接24台设备,如果固件升级一台设备升级大约要5分钟左右的时间,按以往的方式(对一条总线的设备逐个进行升级),就需要2个小时的时间,按本发明优化以后,一条总线上批量升级仅需要5~6分钟,大大降低了维护过程所花费的人力与时间)。
[0070]
2.设备升级时,增加了型号确认、目标设备版本确认,可支持在总线中对于不同型号设备、不同目标版本针对升级的确认,避免不必要的升级异常。
[0071]
3.升级固件包中增加了固件校验信息,保证了升级固件的安全,避免中间出现干扰或者被篡改。
[0072]
4.广播升级时,采用轮询指定设备进行响应的机制,提高了升级过程中对于单个设备升级进度监督的时效性,同时也提升了广播升级的可靠性。
[0073]
5.本升级方法支持升级断点续传,从上次升级异常处继续升级,大大提高了升级效率。
[0074]
基于相同的发明构思,本发明还提出一种基于rs485总线的设备升级系统,请参阅图8,其中,图8为本发明基于rs485总线的设备升级系统一实施例的结构图。结合图8对本发明基于rs485总线的设备升级系统进行详细说明。
[0075]
在本实施例中,基于rs485总线的设备升级系统包括采集器、rs485总线以及至少一个智能设备,采集器通过rs485总线与智能设备通信连接,基于rs485总线的设备升级系统通过采集器、rs485总线、智能设备实现如上述实施例所述的rs485总线下设备升级方法。
[0076]
基于相同的发明构思,本发明还提出一种采集器,请参阅图9,图9为本发明采集器一实施例的结构图,结合图9对本发明的采集器进行说明。
[0077]
在本实施例中,采集器包括处理器、存储器,存储器存储有计算机程序,处理器与所述存储器通信连接,根据存储器中的计算机程序执行如上述实施例所述的rs485总线下设备升级方法。
[0078]
在一些实施例中,存储器可能包括但不限于高速随机存取存储器、非易失性存储器。例如一个或多个磁盘存储设备、闪存设备或其他非易失性固态存储设备。处理器可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(digital signal processing,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现场可编程门阵列(field-programmable gate array,简称fpga)或者其他可编程功能器件、分立门或者晶体管功能器件、分立硬件组件。
[0079]
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
[0080]
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1