基于控制系统的用户程序增量下载方法和控制系统技术方案

技术编号:36603693 阅读:14 留言:0更新日期:2023-02-04 18:22
本申请属于工业控制技术领域,涉及一种基于控制系统的用户程序增量下载方法、控制系统。该方法包括:控制站将增量目标程序划分为预设长度的数据包,将每个数据包分别发送至控制器;控制器接收数据包,将各数据包的数据在内存中的备份缓存单元中进行缓存;同时对备份缓存单元中接收完成的每页用户程序进行校验,并在校验通过后基于每页用户程序对闪存中相应的用户程序进行更新;其中,闪存中存储每个用户程序的存储空间由预设数量的页存储单元组成,每页用户程序采用按页存储单元对齐的方式更新。该方法在不扩大控制器闪存存储空间前提下,既保证闪存空间利用率,又能提高用户程序增量下载效率,同时降低了闪存的磨损,延长控制器使用寿命。控制器使用寿命。控制器使用寿命。

【技术实现步骤摘要】
基于控制系统的用户程序增量下载方法和控制系统


[0001]本申请属于工业控制
,具体涉及一种基于控制系统的用户程序增量下载方法、控制系统。

技术介绍

[0002]控制系统运行过程中,当用户控制逻辑需要变更或者需要引入新的控制逻辑时,相应的需要在控制站修改或新增用户程序,编译后下载后存储到控制器的闪存(Flash EEPROM Memory,Flash)中,然后在控制器内部运行。用户程序以页为单位,每页长度不固定,每页运行逻辑相互独立,根据控制逻辑复杂程度,单个控制站的用户程序有几页至几百页。
[0003]在控制器内部,Flash擦除以扇区大小(Sector Size)为单位。用户程序增量下载过程中,需要对Flash存储数据进行局部修改,局部修改的数据位置和长度不定,所以数据的擦除空间和数据变化的空间不对等,Flash 更新的区域往往是非连续的,跨扇区的,这将使得下载过程中往往需要对Flash重复回读、擦除和回写,用户程序下载的效率很低。因此通常采用程序增量下载的方法。现有的程序增量下载有以下几种方法:
[0004]方法一、各页用户程序紧凑对齐,用户程序更改时顺序下载,控制器Flash顺序擦写。缺点:单页用户程序长度变化会造成数据整体偏移,相关用户程序即使未修改也需重新下载,总体下载效率低。
[0005]方法二、各页用户程序按扇区对齐,用户程序更改时各页程序擦除和下载相互独立,互不影响。缺点:扇区尺寸越大,Flash的空间利用率越低,当用户程序规模较大时,Flash需要更大空间,增加硬件成本或受硬件制约。
[0006]以上问题是现有工业控制系统中程序下载时亟待解决的技术问题。

技术实现思路

[0007](一)要解决的技术问题
[0008]鉴于现有技术的上述缺点、不足,本申请提供一种基于控制系统的用户程序增量下载方法、控制系统。
[0009](二)技术方案
[0010]为达到上述目的,本申请采用如下技术方案:
[0011]第一方面,本申请提供一种基于控制系统的用户程序增量下载方法,该方法包括:
[0012]控制站将待下载的增量目标程序划分为预设长度的数据包,将每个数据包分别发送至控制器,所述增量目标程序包括一页或多页用户程序;
[0013]所述控制器接收所述数据包,将各数据包的数据在内存中的备份缓存单元中进行缓存;同时对所述备份缓存单元中接收完成的每页用户程序进行校验;
[0014]所述控制器在校验通过后基于接收到的每页用户程序对闪存中存储的相应的用户程序进行更新,得到更新后的目标程序;其中,所述闪存中存储每个用户程序的用户程序
存储空间由预设数量的页存储单元组成,每页用户程序采用按页存储单元对齐的方式更新。
[0015]可选地,基于接收到的每页用户程序对闪存中存储的相应的用户程序进行更新,包括:
[0016]当当前页的用户程序用于对闪存中存储的相应的用户程序进行修改时,若当前页程序长度未超过所述用户程序存储空间的剩余容量时,则每页用户程序采用按页存储单元对齐的方式更新后存储于所述用户程序存储空间中,若超过所述用户程序存储空间的剩余容量,则释放该用户程序存储空间,将修改后的该页用户程序存储到其他各用户程序的末尾;
[0017]当当前页的用户程序为新增用户程序时,则按页存储单元对齐顺序扫描闪存中为用户程序分配的存储空间,若扫描到的未使用空间大于当前页的用户程序的大小时,则将当前页的用户程序存入未使用空间中;否则,将当前页的用户程序存放到各用户程序的末尾。
[0018]可选地,该方法还包括:所述控制器对更新后的目标程序进行顺序回读并与所述备份缓存单元中缓存的目标程序进行对比校验,校验通过后将所述备份缓存单元中缓存的目标程序拷贝到运行区,由控制器调度运行。
[0019]可选地,所述备份缓存单元基于所述页存储单元的大小进行网格划分,每个网格设置有擦除状态标识和数据状态标识,所述擦除状态标识包括擦除状态与非擦除状态,用于写闪存时标识是否对网格所在扇区进行擦除操作;所述数据状态标识包括数据无效、数据新、数据旧和数据回写,用于判断何时对网格数据执行写操作。
[0020]可选地,基于接收到的每页用户程序对闪存中存储的相应的用户程序进行更新,包括:
[0021]基于所述网格的擦除状态标识对闪存中用户程序存储空间相关的扇区进行擦除;
[0022]将接收到的用户程序存储到相应扇区中的用户程序存储空间中;
[0023]基于所述备份缓存单元存储的数据对相应扇区中其他擦除的数据进行更新。
[0024]可选地,当用户程序对应网格地址跨扇区之后或所有用户程序下载完毕后,基于所述备份缓存单元存储的数据对相应扇区中其他擦除的数据进行更新。
[0025]第二方面,本申请提供一种工业控制系统,包括控制站和控制器,所述控制站对修改或新增的用户程序编译后下载至所述控制器的闪存中时,执行上述第一方面任一所述的基于控制系统的用户程序增量下载方法的步骤。
[0026]第三方面,本申请提供一种控制器,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上第一方面任一项所述的基于控制系统的用户程序增量下载方法的步骤。
[0027]第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上第一方面任一项所述的基于控制系统的用户程序增量下载方法的步骤。
[0028](三)有益效果
[0029]本申请的有益效果是:本申请提出了一种基于控制系统的用户程序增量下载方法、工业控制系统。该方法包括:控制站将增量目标程序划分为预设长度的数据包,将每个
数据包分别发送至控制器;控制器接收数据包,将各数据包的数据在内存中的备份缓存单元中进行缓存;同时对备份缓存单元中接收完成的每页用户程序进行校验,并在校验通过后基于每页用户程序对闪存中相应的用户程序进行更新;其中,闪存中存储每个用户程序的用户程序存储空间由预设数量的页存储单元组成,每页用户程序采用按页存储单元对齐的方式更新。本申请方法是一种基于控制系统的用户程序增量下载方法,该方法在不扩大控制器Flash存储空间前提下,能够避免频繁回读和擦写Flash操作,既能保证Flash空间利用率,又能很大程度提高控制器用户程序增量下载效率,同时也降低了 Flash的磨损,减小控制器运行负荷,延长控制器使用寿命。
附图说明
[0030]本申请借助于以下附图进行描述:
[0031]图1为本申请实施例一中的基于控制系统的用户程序增量下载方法流程示意图;
[0032]图2为本申请实施例二中的控制器用户程序下载流程示意图;
[0033]图3为本申请实施例二中的增量下载前后用户程序在存储空间的地址分配示意图;
[0034]图4为本申请实施例二中的Flash数据更新流程示意图;
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于控制系统的用户程序增量下载方法,其特征在于,该方法包括:控制站将待下载的增量目标程序划分为预设长度的数据包,将每个数据包分别发送至控制器,所述增量目标程序包括一页或多页用户程序;所述控制器接收所述数据包,将各数据包的数据在内存中的备份缓存单元中进行缓存;同时对所述备份缓存单元中接收完成的每页用户程序进行校验;所述控制器在校验通过后基于接收到的每页用户程序对闪存中存储的相应的用户程序进行更新,得到更新后的目标程序;其中,所述闪存中存储每个用户程序的用户程序存储空间由预设数量的页存储单元组成,每页用户程序采用按页存储单元对齐的方式更新。2.根据权利要求1所述的方法,其特征在于,基于接收到的每页用户程序对闪存中存储的相应的用户程序进行更新,包括:当当前页的用户程序用于对闪存中存储的相应的用户程序进行修改时,若当前页程序长度未超过所述用户程序存储空间的剩余容量时,则每页用户程序采用按页存储单元对齐的方式更新后存储于所述用户程序存储空间中,若超过所述用户程序存储空间的剩余容量,则释放该用户程序存储空间,将修改后的该页用户程序存储到其他各用户程序的末尾;当当前页的用户程序为新增用户程序时,则按页存储单元对齐顺序扫描闪存中为用户程序分配的存储空间,若扫描到的未使用空间大于当前页的用户程序的大小时,则将当前页的用户程序存入未使用空间中;否则,将当前页的用户程序存放到各用户程序的末尾。3.根据权利要求1所述的方法,其特征在于,该方法还包括:所述控制器对更新后的目标程序进行顺序回读并与所述备份缓存单元中缓存的目标程序进行对比校验,校验通过后将所述备份缓存单元中缓存的目标程序拷贝到运行区,由控制器调...

【专利技术属性】
技术研发人员:胡一智邱奇杨振国焦旭芬
申请(专利权)人:浙江中控技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1