一种控制器掉电保持数据方法与流程

文档序号:37178273发布日期:2024-03-01 12:33阅读:24来源:国知局
一种控制器掉电保持数据方法与流程

本发明涉及plc控制器应用领域,尤其涉及一种控制器掉电保持数据方法。


背景技术:

1、在工业控制现场,控制器作为控制核心,需要长时间连续稳定运行,但不可避免的会出现一些重启的情况,如短时停电,一旦出现重启而过程数据无法保存,将会给企业效益甚至人的生命安全造成巨大损失。所以目前的控制器需要使用掉电保持技术,来保证控制器安全连续运行。行业应用中一般通过额外接入一块nvram(非易失内存)芯片来确保控制器的过程数据能够掉电保持。即在正常运行中,控制器的过程数据即时存入到nvram中。但由于掉电保持方案的不足,往往会出现价格高,容量小,掉电数据丢失的问题。因此亟需设计一种全新的方法解决该问题。

2、中国专利文献cn103631677a公开了“一种plc设备数据掉电保持的方法”。步骤采用了:步骤1、plc设备正常运行时,擦除掉电保持存储空间的一个未使用扇区作为plc设备下一次异常掉电的备份扇区;步骤2、plc设备异常掉电后,将当前的更新序号加1后将掉电数据打包处理成掉电数据包并存入步骤1得到的备份扇区,存有掉电数据包的备份扇区变为保持扇区,该掉电数据包至少包括保持数据、更新序号、保持扇区信息和md5校验码;步骤3、plc设备上电恢复后,读取掉电保持存储空间的数据,利用md5校验码逐个校验各保持扇区内是否存在正确数据,若不存在正确数据,则判定为第一次启动,作掉电保持存储空间初始化处理,若存在正确数据,则plc设备启动时加载更新序号最大的保持扇区内的掉电数据包作为恢复数据,并将该更新序号作为当前的更新序号,返回步骤1重新执行。但是该专利采用微处理器来解决设备掉电保持,同时微处理器存储空间小,且没有冗余设计,安全性差。


技术实现思路

1、本发明主要解决原有设备掉电数据保持成本高、容量较小的技术问题,提供一种控制器掉电保持数据方法,在控制器正常进行运作时,掉电保持程序周期性地同步控制器中的数据,将其存储到文件系统中并生成冗余掉电保持文件,若控制器出现掉电重启的情况,掉电保持程序将其存储在文件系统中的完整数据或者冗余掉电保持文件映射至控制器中确保控制器在掉电重启后能够进行正常的运作。

2、本发明的上述技术问题主要是通过下述技术方案得以解决的:本发明步骤包括

3、s1:控制器正常运行时,掉电保持程序周期性同步本地控制器中的数据;

4、s2:掉电重启时,将同步的数据合并成完成文件映射至控制器掉电数据内存区实现控制器掉电保持数据。

5、在现有的工业控制现场,控制器能够保证生产和控制的连续性,需要使用大量的掉电保持存储变量,以达到掉电前和掉电后变量的值保持一致。若不能够确保控制器在掉电前后变量的一致,会使得控制器无法控制工业现场进行正常的生产,致使工作进度停滞,无法正常地推进。为了降低掉电对控制器的影响,实际行业应用中一般是通过额外接入一块nvram芯片实时存储控制器的数据来实现掉电保持。nvram芯片作为控制器数据存储区域,能够使得控制器碰到意外掉电的情况时,控制器数据在nvram芯片处留有备份,当控制器进入掉电重启步骤后,可以将nvram芯片内存储的数据同步至控制器内,使得控制器在掉电重启后能够尽快回复至掉电前的工作状态并对工业现场进行正常的控制。但是使用nvram芯片存储存在以下问题:1.额外接入nvram芯片,硬件电路设计复杂;2.nvram芯片成本高,容量小;3.非nvram方案重复擦写flash,导致flash寿命大大缩减。因此本专利采用一种新的掉电保持程序在大容量低成本的前提下实现掉电保持。当控制器在正常运作时,掉电保持程序每隔一段时间将控制器内的数据同步并存储到文件系统中,同时还会生成冗余文件作为备份;当控制器碰到掉电后进入掉电重启时,掉电保持程序会比较控制器内数据的md5值和文件系统内数据的md5值,两者相同便将文件系统内的数据文件映射至控制器的掉电数据内存区,若两者不相同则读取冗余的掉电数据文件。通过软件控制的方式无需外加硬件设备即可实现控制器的掉电保持,既能够降低数据掉电保持成本,同时软件能够划分存储区域存储大量控制器数据,又能够通过分块冗余的方式确保数据能够准确存储。

6、作为优选,所述步骤s1中控制器正常运行时,掉电保持程序工作步骤如下:

7、s11:读取掉电保持内存区域内的数据;

8、s12:分割数据并进行序号标记;

9、s13:计算分割后每块数据的md5值并进行数据读取;

10、s14:将读取到的所有md5值不同的数据块写入掉电存储区域的文件系统中。

11、当控制器在正常运作时,由于控制器在持续不断地进行工作,虽然控制器产生的数据总量很大,但是生成数据的方式是分段式的,因此若想通过一次性的方式同步存储控制器内的数据根本无法实现,同时也存在单次存储数据过大导致同步数据效率较低、难度较大。掉电保持程序在读取同步控制器数据时,会将所需要读取数据分割成多个数据块并对每块数据进行序号标记,对比时仅需要确认掉电保持程序的文件系统内是否存在与所需对比数据块的md5值相同的部分即可。若两者不同则将该数据块同步至文件系统内,若两者相同则跳过该数据块,进行下一数据块的md5值计算与比较,重复该步骤直至整个数据读取完成后将整体数据文件的md5值存储至文件系统中便于和后续生成数据的md5值进行比较。分割数据并进行序号标记的方式能够将大块的数据分成若干小块数据,将小块数据与文件系统内已存储的数据进行对比能够减小对比时间,并能够滤除相同的数据部分,加快数据同步效率,同时也能够减少数据同步的量,实现精确快捷的数据同步。

12、作为优选,所述步骤s13中,计算每块分割后数据的md5值后与掉电存储区域已存储的数据块的md5值进行比较,若本地控制器中存在md5值不同的数据块,则将该数据块存储至本地控制器的文件系统中,若掉电存储区域中数据中存在与读取数据块的md5值完全一致的部分,则跳过该部分数据块进行下一块数据的md5值比较以及读取。

13、作为优选,所述步骤s14中,当所有数据块写入文件系统后,更换掉电保持区域内冗余的掉电保持文件并重新执行步骤s11。在控制器正常运作过程中,掉电保持程序会同步控制器生成的数据,并会将文件系统内的已经存储的数据生成冗余掉电保持文件,该冗余掉电保持文件会随着文件系统内存储数据的更新更同步进行更新变化,该冗余掉电保持文件作为文件系统内存储数据的同步备份,既能够在文件系统内存储数据不完全时补充文件系统内不完整的数据,又能够确保有一份完整的数据文件在控制器掉电重启后能够映射至控制器的掉电数据内存区内。冗余掉电保持文件既可以作为控制器数据备份,也能够作为掉电保持过程中直接读取的完整文件。

14、作为优选,所述步骤s2中掉电重启时,掉电保持程序具体实施步骤如下:

15、s21:将文件系统中存储的数据合并为完整文件;

16、s22:计算整体文件的md5值;

17、s23:比较计算文件获得的md5值和控制器中存储的md5值并更换控制器掉电数据内存区内的数据。

18、掉电重启时,控制器内由于突然断电,掉电数据内存区数据存在不完整的情况,掉电保持程序将存储的数据映射至控制器中,将控制器恢复至掉电之前的状态,尽快让控制器恢复到断电之前的状态,控制器越快恢复至掉电前的状态便能越快控制整个工业现场恢复正常工作。

19、作为优选,所述步骤s23中,若计算文件的md5值与控制器中存储的md5值相同,则将该文件映射至控制器的掉电数据内存区;若计算文件的md5值与控制器中存储的md5值不相同,则读取冗余的掉电保持数据文件并重复步骤s21。

20、作为优选,所述步骤s1中,当控制器在正常运行过程中,掉电保持程序周期性地读取控制器运行产生中的数据,读取完善掉电存储区域内存储的数据并生成冗余文件,冗余文件相当于控制器工作生成数据的备份。

21、作为优选,所述步骤s14中将分割成若干数据块后,将分割后的数据进行比较,剔除掉未发生变化的数据块,将产生变化的数据块同步至文件系统中。控制器产生的数据文件大小不一,而存储该数据的flash大小是固定,flash存储饱和后便无法继续进行使用了,即flash的使用寿命终止。因此若一次性将控制器内产生的所有数据全部同步至flash中,非常容易出现flash频繁擦写的情况,严重缩短flash的使用寿命长度,本专利通过数据分割的方式将控制器掉电保存区域内的数据分切成若干个小块数据块,减小每次读取数据的大小,而每段数据块对应的md5值是固定的,对比已缓存数据中是否存在和每个数据块中的md5值不同部分,若两者md5值不同,则说明该数据块部分中的数据发生更新,将该数据块更新同步至掉电保持程序的文件系统内;若两者md5值相同,则说明该数据块部分中的数据未发生更新,则无需读取该数据块,减小对flash的擦写次数,延长flash的使用寿命。

22、本发明的有益效果是:本发明通过设置掉电保持程序,在控制器正常运作时分割读取控制器内的数据并进行存储,当控制器掉电重启时,掉电保持程序将控制器内缺失的数据补充完整恢复至掉电前的状态,协助控制器尽快回复恢复正常状态控制工业现场进行正常运作,不需要任何额外元器件,即可实现低成本、大容量的掉电保持数据,同时在掉电保持过程中,分块分割数据并进行冗余存储,提高了数据掉电保持的安全性。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1