一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于控制系统的用户程序增量下载方法和控制系统与流程

2023-02-04 11:48:19 来源:中国专利 TAG:


1.本技术属于工业控制技术领域,具体涉及一种基于控制系统的用户程序增量下载方法、控制系统。


背景技术:

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


技术实现要素:

7.(一)要解决的技术问题
8.鉴于现有技术的上述缺点、不足,本技术提供一种基于控制系统的用户程序增量下载方法、控制系统。
9.(二)技术方案
10.为达到上述目的,本技术采用如下技术方案:
11.第一方面,本技术提供一种基于控制系统的用户程序增量下载方法,该方法包括:
12.控制站将待下载的增量目标程序划分为预设长度的数据包,将每个数据包分别发送至控制器,所述增量目标程序包括一页或多页用户程序;
13.所述控制器接收所述数据包,将各数据包的数据在内存中的备份缓存单元中进行缓存;同时对所述备份缓存单元中接收完成的每页用户程序进行校验;
14.所述控制器在校验通过后基于接收到的每页用户程序对闪存中存储的相应的用户程序进行更新,得到更新后的目标程序;其中,所述闪存中存储每个用户程序的用户程序
存储空间由预设数量的页存储单元组成,每页用户程序采用按页存储单元对齐的方式更新。
15.可选地,基于接收到的每页用户程序对闪存中存储的相应的用户程序进行更新,包括:
16.当当前页的用户程序用于对闪存中存储的相应的用户程序进行修改时,若当前页程序长度未超过所述用户程序存储空间的剩余容量时,则每页用户程序采用按页存储单元对齐的方式更新后存储于所述用户程序存储空间中,若超过所述用户程序存储空间的剩余容量,则释放该用户程序存储空间,将修改后的该页用户程序存储到其他各用户程序的末尾;
17.当当前页的用户程序为新增用户程序时,则按页存储单元对齐顺序扫描闪存中为用户程序分配的存储空间,若扫描到的未使用空间大于当前页的用户程序的大小时,则将当前页的用户程序存入未使用空间中;否则,将当前页的用户程序存放到各用户程序的末尾。
18.可选地,该方法还包括:所述控制器对更新后的目标程序进行顺序回读并与所述备份缓存单元中缓存的目标程序进行对比校验,校验通过后将所述备份缓存单元中缓存的目标程序拷贝到运行区,由控制器调度运行。
19.可选地,所述备份缓存单元基于所述页存储单元的大小进行网格划分,每个网格设置有擦除状态标识和数据状态标识,所述擦除状态标识包括擦除状态与非擦除状态,用于写闪存时标识是否对网格所在扇区进行擦除操作;所述数据状态标识包括数据无效、数据新、数据旧和数据回写,用于判断何时对网格数据执行写操作。
20.可选地,基于接收到的每页用户程序对闪存中存储的相应的用户程序进行更新,包括:
21.基于所述网格的擦除状态标识对闪存中用户程序存储空间相关的扇区进行擦除;
22.将接收到的用户程序存储到相应扇区中的用户程序存储空间中;
23.基于所述备份缓存单元存储的数据对相应扇区中其他擦除的数据进行更新。
24.可选地,当用户程序对应网格地址跨扇区之后或所有用户程序下载完毕后,基于所述备份缓存单元存储的数据对相应扇区中其他擦除的数据进行更新。
25.第二方面,本技术提供一种工业控制系统,包括控制站和控制器,所述控制站对修改或新增的用户程序编译后下载至所述控制器的闪存中时,执行上述第一方面任一所述的基于控制系统的用户程序增量下载方法的步骤。
26.第三方面,本技术提供一种控制器,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上第一方面任一项所述的基于控制系统的用户程序增量下载方法的步骤。
27.第四方面,本技术提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上第一方面任一项所述的基于控制系统的用户程序增量下载方法的步骤。
28.(三)有益效果
29.本技术的有益效果是:本技术提出了一种基于控制系统的用户程序增量下载方法、工业控制系统。该方法包括:控制站将增量目标程序划分为预设长度的数据包,将每个
数据包分别发送至控制器;控制器接收数据包,将各数据包的数据在内存中的备份缓存单元中进行缓存;同时对备份缓存单元中接收完成的每页用户程序进行校验,并在校验通过后基于每页用户程序对闪存中相应的用户程序进行更新;其中,闪存中存储每个用户程序的用户程序存储空间由预设数量的页存储单元组成,每页用户程序采用按页存储单元对齐的方式更新。本技术方法是一种基于控制系统的用户程序增量下载方法,该方法在不扩大控制器flash存储空间前提下,能够避免频繁回读和擦写flash操作,既能保证flash空间利用率,又能很大程度提高控制器用户程序增量下载效率,同时也降低了 flash的磨损,减小控制器运行负荷,延长控制器使用寿命。
附图说明
30.本技术借助于以下附图进行描述:
31.图1为本技术实施例一中的基于控制系统的用户程序增量下载方法流程示意图;
32.图2为本技术实施例二中的控制器用户程序下载流程示意图;
33.图3为本技术实施例二中的增量下载前后用户程序在存储空间的地址分配示意图;
34.图4为本技术实施例二中的flash数据更新流程示意图;
35.图5为本技术实施例三中的工业控制系统的系统架构示意图
36.图6为本技术实施例四中的控制器架构示意图。
具体实施方式
37.为了更好的解释本发明,以便于理解,下面结合附图,通过具体实施方式,对本发明作详细描述。可以理解的是,以下所描述的具体的实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合;为了便于描述,附图中仅示出了与发明相关的部分。
38.实施例一
39.图1为本技术实施例一中的基于控制系统的用户程序增量下载方法流程示意图,如图1所示,该方法包括:
40.s10、控制站将待下载的增量目标程序划分为预设长度的数据包,将每个数据包分别发送至控制器,增量目标程序包括一页或多页用户程序;
41.s20、控制器接收数据包,将各数据包的数据在内存中的备份缓存单元中进行缓存;同时对备份缓存单元中接收完成的每页用户程序进行校验;
42.s30、控制器在校验通过后基于接收到的每页用户程序对闪存中存储的相应的用户程序进行更新,得到更新后的目标程序;其中,闪存中存储每个用户程序的用户程序存储空间由预设数量的页存储单元组成,每页用户程序采用按页存储单元对齐的方式更新。
43.通过本技术的基于控制系统的用户程序增量下载方法,控制器用户程序下载和flash更新操作可以异步并发处理互不干扰,且不受flash扇区大小的限制,使得用户程序下载效率更高;同时,通过在内存中设置备份缓存单元,不扩大控制器flash存储空间前提下,能够避免频繁回读和擦写flash操作,既能保证flash空间利用率,同时也降低了flash的磨损,减小控制器运行负荷,延长控制器使用寿命。
44.为了使得本领域技术人员更加理解本公开实施例提供的基于控制系统的用户程序增量下载方法,下面对上述各步骤进行详细说明。
45.本实施例中,控制系统可以是分布式控制系统(distributed controlsystem,dcs)中。dcs系统通常由五部分组成:过程站、i/o单元、操作站和工程师站、通讯网络、操作控制软件。控制站是控制系统上位机,本实施例中为工程师站,用于创建、修改和编译用户程序;过程站一般又称为控制器,控制器为控制系统下位机,是用户程序运行的载体。主要担负的功能有:各种信号的处理和计算、各种控制算法的计算和实现、逻辑功能的计算和实现;网络功能的实现、报警信息的处理、历史数据的处理等等。
46.需要说明的是,控制系统也可以是其他类型的控制系统,本实施例对控制系统的具体类型不做限定。
47.在步骤s10中,增量目标程序可以是一页用户程序,也可以是多页用户程序,一页用户程序为一个用户控制逻辑,不同页的用户程序可独立运行。
48.在步骤s20中,备份缓存单元与闪存中每个用户程序的用户程序存储空间同等设置,即控制器内部对应用户程序在内存中按1:1设置一个用户程序的备份缓存,不同页用户程序在备份缓存和flash中的的相对位置完全一致。
49.在步骤s30中,用户程序存储空间由预设数量的页存储单元 (pagesize)组成。控制站在下载每页用户程序时都会指定该页程序运行的起始地址,备份缓存单元中不同页程序起始地址是按pagesize对齐的,相应的用户程序存储在控制flash空间也是按pagesize对齐的,单页程序分配空间是pagesize整数倍。每页用户程序长度是变化的,每页程序运行起始地址也是按pagesize对齐,pagesize的大小由设计者定义。
50.实施例二
51.本实施例在实施例一的基础上对基于控制系统的用户程序增量下载方法进行进一步的说明。
52.图2为本技术实施例二中的控制器用户程序下载流程示意图,如图2 所示,控制器用户程序下载过程包括:下载、校验、更新flash、flash 校验和运行内存更新。
53.增量用户程序在控制站完成编译,然后控制站将目标程序文件按一定长度分多包下发给控制器。控制器先将下发的用户程序存入备份缓存单元,当收到一页程序后并开始校验,校验通过后,控制器回复控制站该页程序下载成功,随后控制站继续下发下一页程序,控制器同步接收,接收同时控制器开始更新前面已存入备份缓存单元的用户程序至flash,直到所有的程序页下载完毕且写入flash后,控制器回读flash的数据并与备份缓冲区的数据对比校验,所有数据校验通过后再将备份缓存单元的数据拷贝到内存中的用户程序运行区开始运行。
54.图3为本技术实施例二中的增量下载前后用户程序在存储空间的地址分配示意图,如图3所示,控制器更新前面已存入备份缓存单元的用户程序至flash,具体包括:
55.当当前页的用户程序用于对闪存中存储的相应的用户程序进行修改时,若当前页程序长度未超过用户程序存储空间的剩余容量时,则每页用户程序采用按页存储单元对齐的方式更新后存储于用户程序存储空间中,若超过用户程序存储空间的剩余容量,则释放该用户程序存储空间,将修改后的该页用户程序存储到其他各用户程序的末尾,在整体程序的末尾按pagesize对齐申请新的空间;上述这种空间分配方式可以避免增量下载过程
中,未变化的程序页在内存空间发生整体偏移,从而需要大面积重新下载或更新;
56.当当前页的用户程序为新增用户程序时,则按页存储单元对齐顺序扫描闪存中为用户程序分配的存储空间,若扫描到的未使用空间大于当前页的用户程序的大小时,则将当前页的用户程序存入未使用空间中;否则,将当前页的用户程序存放到各用户程序的末尾。
57.本实施例中,备份缓存单元基于pagesize的大小进行网格划分,每个网格在下载过程中通过独立的变量维护其擦写状态和数据更新状态。具体地,每个网格设置有擦除状态标识和数据状态标识,擦除状态标识包括擦除状态与非擦除状态,用于写闪存时标识是否对网格所在扇区进行擦除操作;数据状态标识包括数据无效、数据新、数据旧和数据回写,用于判断何时对网格数据执行写操作。
58.图4为本技术实施例二中的flash数据更新流程示意图,如图4所示,基于接收到的每页用户程序对闪存中存储的相应的用户程序进行更新,包括:
59.a1、扫描备份缓存网格的数据状态;
60.a2、判断网格地址是否跨扇区:
61.若是,则备份缓存按需回写;
62.若否,则判断网格是否已擦除:
63.若否,则基于网格的擦除状态标识对闪存中用户程序存储空间相关的扇区进行擦除;
64.若是,将网格数据写到flash中的相应pagesize中;
65.a3、判断所有网格是否更新完毕:
66.若否,则指向下一网格,返回步骤a2;
67.若是,则基于备份缓存单元存储的数据对相应扇区中其他擦除的数据进行回写。
68.以下对flash数据更新做进一步说明。
69.控制站下载用户程序以页为单位,而flash更新用户程序时以 pagesize为单位。flash擦除操作并不是每次下载完一页用户程序之后产生,而是根据网格擦除状态来决定是否擦除;用户程序下载过程中会更新备份缓存中对应网格的数据状态,flash数据更新时会扫描所有网格的数据状态来决定是否更新该网格数据,然后进行写操作;由于增量下载过程中,数据的更新并不连续,下载完一页程序并校验通过后便开始异步更新flash数据;更新flash数据时并不是每次下载完一页用户程序之后开始回写,而是判断下载用户程序对应网格地址跨扇区之后或所有用户程序下载完毕之后进行数据回写。更新flash扇区内的局部数据对其他数据回写时直接从备份缓冲单元回读取数。
70.由于控制站下载用户程序时,下发的数据首先更新到备份缓存中;然后再从备份缓存更新到flash对应的位置,这一点保证的了备份缓存的数据永远比flash数据更新,当需要局部更新flash数据时,就不必从flash 先回读数据然后再回写,而是直接把flash中已擦除但备份缓存未更新的部分回写即可。
71.本实施例中,用户程序更新至flash后,对flash数据进行顺序回读并与用户程序备份缓存进行对比校验,校验通过后再拷贝至用户程序运行区,由控制器调度运行。
72.本实施例针对用户程序增量下载过程中需要对flash数据进行扇区内局部非连续更新或者跨扇区更新,提出一种基于控制系统的用户程序增量下载方法,通过在内存中设
置备份缓存,可以大大减少flash的频繁重复擦写和回读操作,提高flash数据更新效率的同时也减少flash磨损,提高控制器使用寿命。
73.实施例三
74.本技术第二方面提供一种工业控制系统,该系统包括控制站和控制器,控制站对修改或新增的用户程序编译后下载至控制器的闪存中时,执行上述任一实施例的基于控制系统的用户程序增量下载方法的步骤。
75.本实施例中的工业控制系统为dcs系统,图5为本技术实施例三中的工业控制系统的系统架构示意图,如图5所示,该系统通常由五部分组成:过程站、i/o单元、操作站和工程师站、通讯网络、操作控制软件。
76.本实施例中,工程师站作为控制站,过程站作为控制器。过程站是自动化控制系统中的核心部件。主要担负的功能有:各种信号的处理和计算、各种控制算法的计算和实现、逻辑功能的计算和实现;网络功能的实现、报警信息的处理、历史数据的处理等等。
77.实施例四
78.本技术第三方面通过实施例四提供了一种控制器,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,计算机程序被处理器执行时实现如上实施例中任意一项所述的基于控制系统的用户程序增量下载方法的步骤。
79.图6为本技术实施例四中的控制器的架构示意图。
80.图6所示的控制器可包括:至少一个处理器101、至少一个存储器 102、至少一个网络接口104和其他的用户接口103。控制器中的各个组 件通过总线系统105耦合在一起。可理解,总线系统105用于实现这些 组件之间的连接通信。总线系统105除包括数据总线之外,还包括电源 总线、控制总线和状态信号总线。但是为了清楚说明起见,在图6中将 各种总线都标为总线系统105。
81.其中,用户接口103可以包括显示器、键盘或者点击设备(例如,鼠标,轨迹球(trackball)或者触感板等。
82.可以理解,本实施例中的存储器102可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,rom)、可编程只读存储器 (programmable rom,prom)、可擦除可编程只读存储器(erasableprom,eprom)、电可擦除可编程只读存储器(electrically eprom, eeprom)或闪存。易失性存储器可以是随机存取存储器(random accessmemory,ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(static ram,sram)、动态随机存取存储器(dynamic ram,dram)、同步动态随机存取存储器(synchronous dram,sdram)、双倍数据速率同步动态随机存取存储器(double data rate sdram,ddrsdram)、增强型同步动态随机存取存储器(enhanced sdram,esdram)、同步连接动态随机存取存储器 (synch link dram,sldram)和直接内存总线随机存取存储器(directrambus ram,drram)。本文描述的存储器62旨在包括但不限于这些和任意其它适合类型的存储器。
83.在一些实施方式中,存储器102存储了如下的元素,可执行单元或者数据结构,或者他们的子集,或者他们的扩展集:操作系统1021和应用程序1022。
84.其中,操作系统1021,包含各种系统程序,例如框架层、核心库层、驱动层等,用于
实现各种基础业务以及处理基于硬件的任务。应用程序 622,包含各种应用程序,例如工业控制设备运行管理系统,用于实现各种应用业务。实现本发明实施例方法的程序可以包含在应用程序1022中。
85.在本发明实施例中,处理器101通过调用存储器102存储的程序或指令,具体的,可以是应用程序1022中存储的程序或指令,处理器101 用于执行第一方面所提供的方法步骤。
86.上述本发明实施例揭示的方法可以应用于处理器101中,或者由处理器101实现。处理器101可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器101中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器101可以是通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(fieldprogrammable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件单元组合执行完成。软件单元可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器102,处理器101读取存储器102中的信息,结合其硬件完成上述方法的步骤。
87.另外,结合上述实施例中的基于控制系统的用户程序增量下载方法,本发明实施例可提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上方法实施例中的任意一种基于控制系统的用户程序增量下载方法。
88.可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspdevice,dspd)、可编程逻辑设备(pld)、现场可编程门阵列 (fpga)、通用处理器、控制器、微控制器、微处理器、用于执行本技术所述功能的其它电子单元或其组合中。
89.对于软件实现,可通过执行本文所述功能的单元来实现本文所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
90.在本技术公开的上述实施例中,应该理解到,所揭露的设备和方法,也可以通过其它的方式实现。以上所描述的设备和方法实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本公开的多个实施例的方法、设备和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
91.应当注意的是,在权利要求中,不应将位于括号之间的任何附图标记理解成对权利要求的限制。词语“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的词语“一”或“一个”不排除存在多个这样的部件。此外,需要说明的是,在本说明书的描述中,术语“一个实施例”、“一些实施例”、“实施例”、“示例”、“具体示例”或“一些示例”等的描述,是指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。
92.尽管已描述了本发明的优选实施例,但本领域的技术人员在得知了基本创造性概念后,则可对这些实施例作出另外的变更和修改。所以,权利要求应该解释为包括优选实施例以及落入本发明范围的所有变更和修改。
93.显然,本领域的技术人员可以对本发明进行各种修改和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也应该包含这些修改和变型在内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献