一种工业控制系统固件在线升级方法与流程
本发明涉及工业控制系统升级,具体是一种工业控制系统固件在线升级方法。
背景技术:
1、在工业控制系统中,主流采用单主多从的架构布局,即由一台主工业控制器统筹管控多台从工业控制器。为解决传统单设备逐一点对点升级效率低的问题,目前行业内普遍采用广播升级模式进行批量固件升级。然而,现有的工业控制系统固件在线升级方案中,当主工业控制器将固件升级数据广播下发至各从工业控制器后,由于缺乏完善的固件升级数据完整性检验机制,导致部分从工业控制器基于残缺或错误的固件升级数据进行更新,从而引发升级失败的风险。
技术实现思路
1、针对上述缺陷,本发明提出了一种工业控制系统固件在线升级方法,目的在于解决现有工业控制系统固件在线升级方案中,当主控器将固件数据下发至各从控器后,由于缺乏固件数据完整性检验机制,导致从控器基于残缺固件数据进行更新,造成升级失败的问题。
2、为达此目标,本发明采用以下技术方案:
3、一种工业控制系统固件在线升级方法,所述工业控制系统包括主工业控制器以及若干从工业控制器,所述方法包括以下步骤:
4、步骤s1:接收主工业控制器下发的bootloader模式指令,并将其以广播方式发送至各从工业控制器,其中,bootloader模式为固件版本更新的底层运行模式;
5、步骤s2:判断当前从工业控制器的固件版本与bootloader模式指令中的目标固件版本是否一致,若一致,则判定当前从工业控制器无需固件升级;若不一致,则将当前从工业控制器划定为待升级从工业控制器;
6、步骤s3:先接收主工业控制器下发的固件分包信息以及固件数据包,再将固件数据包以广播方式发送至各待升级从工业控制器进行解析重组,并将重组后的固件数据包写入对应待升级从工业控制器的flash闪存;
7、步骤s4:分别对各待升级从工业控制器的flash闪存中写入的固件数据包进行本地完整性验证,得到对应的完整性验证结果;
8、步骤s5:接收主工业控制器下发的完整性验证结果轮询指令,并将其以广播方式发送至各待升级从工业控制器,以获取各待升级从工业控制器的完整性验证结果;
9、步骤s6:接收主工业控制器下发的固件版本切换指令,并将其以广播方式发送至完整性验证合格的待升级从工业控制器进行固件版本切换,以完成固件在线升级。
10、优选地,在步骤s3中,将主工业控制器下发的固件数据包发送至各待升级从工业控制器进行解析重组,并将重组后的固件数据包写入对应flash闪存,具体包括以下子步骤:
11、步骤s31:建立各从工业控制器的接收状态表,其中,接收状态表用于记录已接收固件数据包的序列号信息;
12、步骤s32:基于固件数据包的序列号信息,对各待升级从工业控制器接收到的固件数据包进行乱序重排以及连续性检验处理;
13、步骤s33:判断经步骤s32处理后的固件数据包是否填满预设flash页的整页数据量,若是,则将当前累积的固件数据包写入待升级从工业控制器的flash闪存;若否,则不执行写入操作。
14、优选地,在步骤s3中,在将主工业控制器下发的固件数据包发送至待升级从工业控制器过程中,还包括以下步骤:接收主工业控制器下发的文件传输结束指令,并将其以广播方式发送至各待升级从工业控制器进行未填满预设flash页整页的剩余固件数据包写入操作。
15、优选地,在步骤s3中,所述固件分包信息包括固件总crc;在步骤s4中,具体包括以下子步骤:步骤s41:采用crc32标准多项式算法计算得到当前待升级从工业控制器的flash闪存中写入的固件数据包的循环冗余校验值;步骤s42:判断经步骤s41计算得到的循环冗余校验值与固件总crc是否一致,若是,则判定当前待升级从工业控制器接收到的固件数据包是完整无误,即完整性验证合格;若否,则判定当前待升级从工业控制器接收到的固件数据包存在缺失或错误,即完整性验证不合格。
16、优选地,在步骤s6中,将主工业控制器下发的固件版本切换指令发送至完整性验证合格的待升级从工业控制器进行固件版本切换,具体包括以下子步骤:将完整性验证合格的待升级从工业控制器的物理内存起始地址映射切换至flash闪存中用于存放新版本固件的独立存储分区。
17、优选地,还包括以下步骤:接收主工业控制器下发的固件版本轮询指令,并将其发送至已完成固件升级的从工业控制器,以触发其执行固件版本核验。
18、本发明提供的技术方案可以包括以下有益效果:
19、本方案中主工业控制器下发的固件数据先由待升级从工业控制器进行解析重组,并将重组后的固件数据写入其自身flash闪存;随后,对该flash闪存中已写入的固件数据执行本地完整性验证,这样能够有效避免从工业控制器基于残缺或错误的固件数据进行版本切换,从而保障工业控制器固件升级的成功率。
1.一种工业控制系统固件在线升级方法,所述工业控制系统包括主工业控制器以及若干从工业控制器,其特征在于:所述方法包括以下步骤:
2.根据权利要求1所述的一种工业控制系统固件在线升级方法,其特征在于:在步骤s3中,将主工业控制器下发的固件数据包发送至各待升级从工业控制器进行解析重组,并将重组后的固件数据包写入对应flash闪存,具体包括以下子步骤:
3.根据权利要求2所述的一种工业控制系统固件在线升级方法,其特征在于:在步骤s3中,在将主工业控制器下发的固件数据包发送至待升级从工业控制器过程中,还包括以下步骤:
4.根据权利要求1所述的一种工业控制系统固件在线升级方法,其特征在于:在步骤s3中,所述固件分包信息包括固件总crc;
5.根据权利要求1所述的一种工业控制系统固件在线升级方法,其特征在于:在步骤s6中,将主工业控制器下发的固件版本切换指令发送至完整性验证合格的待升级从工业控制器进行固件版本切换,具体包括以下子步骤:
6.根据权利要求1所述的一种工业控制系统固件在线升级方法,其特征在于:还包括以下步骤:
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com