CN117707853A - 掉电数据保存方法、装置、设备及可读存储介质 - Google Patents

掉电数据保存方法、装置、设备及可读存储介质 Download PDF

Info

Publication number
CN117707853A
CN117707853A CN202311762342.2A CN202311762342A CN117707853A CN 117707853 A CN117707853 A CN 117707853A CN 202311762342 A CN202311762342 A CN 202311762342A CN 117707853 A CN117707853 A CN 117707853A
Authority
CN
China
Prior art keywords
power
task
state
target program
program task
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202311762342.2A
Other languages
English (en)
Inventor
杨超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Inovance Technology Co Ltd
Original Assignee
Shenzhen Inovance Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Inovance Technology Co Ltd filed Critical Shenzhen Inovance Technology Co Ltd
Priority to CN202311762342.2A priority Critical patent/CN117707853A/zh
Publication of CN117707853A publication Critical patent/CN117707853A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1456Hardware arrangements for backup
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1474Saving, restoring, recovering or retrying in transactions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Power Sources (AREA)

Abstract

本申请公开了一种掉电数据保存方法、装置、设备及可读存储介质,本申请中,在发生掉电后,会先停止调用新的程序任务执行,从而避免新的程序任务被调用执行导致需要保存的掉电数据存在新的变更,且在停止调用新的程序任务后,再确定已执行的目标程序任务的任务状态,若目标程序任务的任务状态均为执行完成,则将保持区中掉电数据保存至非易失性存储区中,从而确保保持区中需要变更的掉电数据在保存到非易失性存储区之前,已经变更完成。故通过上述方式本申请可保证掉电发生后,非易失性存储区中掉电数据的新旧一致性,避免数据错误的情况发生。

Description

掉电数据保存方法、装置、设备及可读存储介质
技术领域
本申请涉及PLC(Programmable Logic Controller,可编程逻辑控制器)技术领域,尤其涉及一种掉电数据保存方法、装置、设备及可读存储介质。
背景技术
在PLC程序运行过程中,产生的部分关键数据要求在重启PLC后,仍然保持上一次运行时的数值,而在通常情况下上一次运行产生的数据都储存在易失性存储器,而易失性存储器断电后,所有数据都会丢失,因此断电重启后,上一次运行时数据也会丢失。针对该问题在目前一些传统的技术方案中,会在掉电后的将需要掉电保持的关键数据写入至非易失性存储器中,以保证断电重启依然可以保留上一次运行时的数据。但是由于掉电的发生是不可预期的,故在掉电瞬间可能会产生新的关键数据,也即保存关键数据时关键数据存在有变更的风险,因此,在传统方案中在掉电后保存的关键数据存在有较大的风险为错误数据。
发明内容
本申请的主要目的在于提供一种掉电数据保存方法,旨在解决传统方案中在掉电后保存的关键数据存在有较大的风险为错误数据的技术问题。
为实现上述目的,本申请提供一种掉电数据保存方法,应用于掉电设备,所述掉电设备包括易失性存储区和非易失性存储区,所述掉电数据保存方法包括:
若掉电设备接收到掉电信号,停止调用新的程序任务;
确定已执行的目标程序任务的任务状态,若各所述目标程序任务的任务状态均为执行完成,将所述目标程序任务对应的掉电数据从所述易失性存储区保存至所述非易失性存储区。
可选地,所述易失性存储区包括数据区和保持区,所述若掉电设备接收到掉电信号,停止调用新的程序任务的步骤包括:
若掉电设备接收到掉电信号,变更控制变量为停止状态,以停止调用新的程序任务对应的正向同步函数,其中,所述正向同步函数用于将所述程序任务对应的掉电数据从所述数据区保存至所述保持区。
可选地,所述确定已执行的目标程序任务的任务状态,若各所述目标程序任务的任务状态均为执行完成,将所述目标程序任务对应的掉电数据从所述易失性存储区保存至所述非易失性存储区的步骤包括:
监测已执行的目标程序任务对应的正向同步函数的状态变量;
基于所述状态变量确定已执行的目标程序任务的任务状态;
若各目标程序任务的任务状态均为执行完成,则将各所述目标程序任务对应的掉电数据从所述保持区保存至所述非易失性存储区中。
可选地,所述基于所述状态变量确定已执行的目标程序任务的任务状态的步骤还包括:
在所述状态变量表征各目标程序任务的整体执行状态的情况下,若所述状态变量为预设初始值,则确定各所述目标程序任务的任务状态均为执行完成;
若所述状态变量不为预设初始值,则确定存在任务状态为执行中的目标程序任务。
可选地,所述基于所述状态变量确定已执行的目标程序任务的任务状态的步骤还包括:
在一个目标程序任务对应一个状态变量的情况下,若各所述状态变量均表征结束状态,则确定各所述目标程序任务的任务状态均为执行完成;
若存在状态变量表征执行状态,则确定存在任务状态为执行中的目标程序任务。
可选地,所述掉电数据保存方法还包括:
监测所述控制变量;
基于所述控制变量控制程序任务的调用执行,并基于所述程序任务的执行情况对所述状态变量进行更新。
可选地,所述基于所述控制变量控制程序任务的调用执行的步骤还包括:
若所述控制变量为停止状态,则停止调用执行新的程序任务;
若所述控制变量为允许状态,则基于预设执行周期调用执行所述程序任务。
可选地,所述基于所述程序任务的执行情况对所述状态变量进行更新的步骤包括:
在所述状态变量表征各目标程序任务的整体执行状态的情况下,对于任意一个目标程序任务,在所述目标程序任务开始执行时,将所述状态变量增加预设数值;
在所述目标程序任务执行完成时,将所述状态变量减去预设数值。
可选地,所述基于所述程序任务的执行情况对所述状态变量进行更新的步骤还包括:
在一个目标程序任务对应一个状态变量的情况下,对于任意一个目标程序任务,在所述目标程序任务开始执行时,更新所述目标程序任务对应的状态变量,以表征执行状态;
在所述目标程序任务执行完成时,更新所述目标程序任务对应的状态变量,以表征结束状态。
可选地,所述掉电数据由应用程序运行时产生,所述掉电数据保存方法还包括:
在所述应用程序编译过程中,对于所述应用程序在运行过程中将要产生的任意一个掉电数据,生成所述掉电数据对应的程序任务;
生成用于控制各程序任务调用执行的控制变量。
为实现上述目的,本申请还提供一种掉电数据保存装置,应用于掉电设备,所述掉电设备包括易失性存储区和非易失性存储区,所述掉电数据保存装置包括:
停止模块,用于若掉电设备接收到掉电信号,停止调用新的程序任务;
保存模块,用于确定已执行的目标程序任务的任务状态,若各所述目标程序任务的任务状态均为执行完成,将所述目标程序任务对应的掉电数据从所述易失性存储区保存至所述非易失性存储区。
为实现上述目的,本申请还提供一种掉电数据保存设备,所述掉电数据保存设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的掉电数据保存程序,所述掉电数据保存程序被所述处理器执行时实现如上述的掉电数据保存方法的步骤。
为实现上述目的,本申请还提供一种可读存储介质,所述可读存储介质上存储有掉电数据保存程序,所述掉电数据保存程序被处理器执行时实现如上述的掉电数据保存方法的步骤。
本申请实施例提出的一种掉电数据保存方法、装置、设备及可读存储介质。应用于掉电设备,且在掉电设备中包括易失性存储区和非易失性存储区,若掉电设备接收到掉电信号,停止调用新的程序任务;确定已执行的目标程序任务的任务状态,若各所述目标程序任务的任务状态均为执行完成,将所述目标程序任务对应的掉电数据从所述易失性存储区保存至所述非易失性存储区。相比于传统保存方案,本申请实施例,在发生掉电后,会先停止调用新的程序任务执行,从而避免新的程序任务被调用执行导致需要保存的掉电数据存在新的变更,且在停止调用新的程序任务后,再确定已执行的目标程序任务的任务状态,若目标程序任务的任务状态均为执行完成,则将保持区中掉电数据保存至非易失性存储区中,从而确保保持区中需要变更的掉电数据在保存到非易失性存储区之前,已经变更完成。故通过上述方式本申请可保证掉电发生后,非易失性存储区中掉电数据的新旧一致性,避免数据错误的情况发生。
附图说明
图1是本申请实施例方案涉及的硬件运行环境的设备结构示意图;
图2为本申请掉电数据保存方法中第一实施例的流程示意图;
图3为本申请掉电数据保存方法中第二实施例的流程示意图;
图4为本申请掉电数据保存方法中第一框架示意;
图5为本申请掉电数据保存方法中第二框架示意;
图6为本申请掉电数据保存方法中的掉电数据保存装置的结构示意图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
如图1所示,图1是本申请实施例方案涉及的硬件运行环境的设备结构示意图。
本申请实施例设备可以是PLC,也可以是PC、智能手机、平板电脑、便携计算机等具有网络通讯功能的电子终端设备。
如图1所示,该设备可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
可选地,设备还可以包括摄像头、RF(Radio Frequency,射频)电路,传感器、音频电路、WiFi模块等等。其中,传感器比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示屏的亮度,接近传感器可在移动终端移动到耳边时,关闭显示屏和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别移动终端姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;当然,移动终端还可配置陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
本领域技术人员可以理解,图1中示出的设备结构并不构成对设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及掉电数据保存程序。
在图1所示的设备中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的掉电数据保存程序,掉电数据保存程序应用于掉电设备,所述掉电设备包括易失性存储区和非易失性存储区,处理器1001可执行以下操作:
若掉电设备接收到掉电信号,停止调用新的程序任务;
确定已执行的目标程序任务的任务状态,若各所述目标程序任务的任务状态均为执行完成,将所述目标程序任务对应的掉电数据从所述易失性存储区保存至所述非易失性存储区。
进一步地,处理器1001可以调用存储器1005中存储的掉电数据保存程序,还执行以下操作:
所述易失性存储区包括数据区和保持区,所述若掉电设备接收到掉电信号,停止调用新的程序任务的步骤包括:
若掉电设备接收到掉电信号,变更控制变量为停止状态,以停止调用新的程序任务对应的正向同步函数,其中,所述正向同步函数用于将所述程序任务对应的掉电数据从所述数据区保存至所述保持区。
进一步地,处理器1001可以调用存储器1005中存储的掉电数据保存程序,还执行以下操作:
所述确定已执行的目标程序任务的任务状态,若各所述目标程序任务的任务状态均为执行完成,将所述目标程序任务对应的掉电数据从所述易失性存储区保存至所述非易失性存储区的步骤包括:
监测已执行的目标程序任务对应的正向同步函数的状态变量;
基于所述状态变量确定已执行的目标程序任务的任务状态;
若各目标程序任务的任务状态均为执行完成,则将各所述目标程序任务对应的掉电数据从所述保持区保存至所述非易失性存储区中。
进一步地,处理器1001可以调用存储器1005中存储的掉电数据保存程序,还执行以下操作:
所述基于所述状态变量确定已执行的目标程序任务的任务状态的步骤还包括:
在所述状态变量表征各目标程序任务的整体执行状态的情况下,若所述状态变量为预设初始值,则确定各所述目标程序任务的任务状态均为执行完成;
若所述状态变量不为预设初始值,则确定存在任务状态为执行中的目标程序任务。
进一步地,处理器1001可以调用存储器1005中存储的掉电数据保存程序,还执行以下操作:
所述基于所述状态变量确定已执行的目标程序任务的任务状态的步骤还包括:
在一个目标程序任务对应一个状态变量的情况下,若各所述状态变量均表征结束状态,则确定各所述目标程序任务的任务状态均为执行完成;
若存在状态变量表征执行状态,则确定存在任务状态为执行中的目标程序任务。
进一步地,处理器1001可以调用存储器1005中存储的掉电数据保存程序,还执行以下操作:
所述掉电数据保存方法还包括:
监测所述控制变量;
基于所述控制变量控制程序任务的调用执行,并基于所述程序任务的执行情况对所述状态变量进行更新。
进一步地,处理器1001可以调用存储器1005中存储的掉电数据保存程序,还执行以下操作:
所述基于所述控制变量控制程序任务的调用执行的步骤还包括:
若所述控制变量为停止状态,则停止调用执行新的程序任务;
若所述控制变量为允许状态,则基于预设执行周期调用执行所述程序任务。
进一步地,处理器1001可以调用存储器1005中存储的掉电数据保存程序,还执行以下操作:
所述基于所述程序任务的执行情况对所述状态变量进行更新的步骤包括:
在所述状态变量表征各目标程序任务的整体执行状态的情况下,对于任意一个目标程序任务,在所述目标程序任务开始执行时,将所述状态变量增加预设数值;
在所述目标程序任务执行完成时,将所述状态变量减去预设数值。
进一步地,处理器1001可以调用存储器1005中存储的掉电数据保存程序,还执行以下操作:
所述基于所述程序任务的执行情况对所述状态变量进行更新的步骤还包括:
在一个目标程序任务对应一个状态变量的情况下,对于任意一个目标程序任务,在所述目标程序任务开始执行时,更新所述目标程序任务对应的状态变量,以表征执行状态;
在所述目标程序任务执行完成时,更新所述目标程序任务对应的状态变量,以表征结束状态。
进一步地,处理器1001可以调用存储器1005中存储的掉电数据保存程序,还执行以下操作:
所述掉电数据由应用程序运行时产生,所述掉电数据保存方法还包括:
在所述应用程序编译过程中,对于所述应用程序在运行过程中将要产生的任意一个掉电数据,生成所述掉电数据对应的程序任务;
生成用于控制各程序任务调用执行的控制变量。
参照图2,本申请掉电数据保存方法的第一实施例,应用于掉电设备,所述掉电数据保存方法包括:
步骤S10,若掉电设备接收到掉电信号,停止调用新的程序任务;
需要说明的是,在本申请中上述掉电是指设备调掉电,例如PLC设备掉电,相应的上述掉电设备则可以是PLC设备,在后续步骤中将PLC设备掉电为例进行说明。在不同的应用场景下,PLC上会运行不同的应用程序,以实现不同的功能,例如,功能可以是记录生产的产品数量,相应的,产品数量则是需要掉电后继续保持的关键数据。可以理解的是,在实际应用中,PLC的易失性存储器中通常会划分出两个区域,一个用户区域也即数据区,可存储应用程序在运行过程中产生的数据,产生的数据中包括有掉电数据(值的注意的是通常情况下会存在有多个掉电数据,且多个掉电数据分布通常较为分散),而上述的程序任务可用于将分散在数据区的掉电数据同步复制到易失性存储器中的另一个区域,也即保持区,从而将掉电数据整合在一起便于保存,其中,程序任务可对应正向同步函数(也即隐式函数)。而在传统保存方案中,掉电信号会立即触发保存保持区中的数据,但是若此时存在有掉电数据正在从数据区复制到保持区且未复制完成,则会导致最终保存到非易失性存储器中的数据为错误数据,例如,假设当前正在将第n个周期产生的多个掉电数据从数据区复制到保持区,其中,部分掉电数据已经复制完成,但另一部分掉电数据正在复制,若此时发生掉电,立即触发将保持区中的掉电数据保存到非易失性存储器中,则此时非易失性存储器保存的掉电数据中部分为第n个周期生成,部分为第n-1个周期产生,故此时非易失性存储器保存的掉电数据相当于是不同周期的数据,也即错误数据,而PLC再次加电启动后,这些新旧不一致的数据可能会导致PLC设备运行异常。针对上述问题,本实施例提出一种掉电数据保存方法,以保证非易失性存储器中掉电数据的新旧一致性。且对于数据的整合(掉电数据从数据区到保持区)以及数据的保存(保持区到非易失性存储区)在实现的过程可分由PLC中不同的程序实现,也可集成在一起实现。
示例性的,在PLC突然断电后会触发产生断电信号,相应的,在掉电设备接收到掉电信号后,将停止调用新的程序任务,以避免易失性存储区中保存的掉电数据发生新的变更,其中,未执行完成的程序任务可继续执行。
步骤S20,确定已执行的目标程序任务的任务状态,若各所述目标程序任务的任务状态均为执行完成,将所述目标程序任务对应的掉电数据从所述易失性存储区保存至所述非易失性存储区。
示例性的,与传统方案不同的是,在发生掉电后避免掉电数据保存错误,本实施例并不会立即将易失性存储区中保存的掉电数据保存至非易失性存储区,而是先确定已执行的目标程序任务的任务状态,其中,任意一个目标程序任务的任务状态可分为执行完成和执行中。在确定各目标程序任务的任务状态均为执行完成后,则可将目标程序任务对应的掉电数据从易失性存储区保存至非易失性存储区,若存在有目标程序任务的任务状态为执行中,则等待各目标程序任务均执行完成后,再将易失性存储区中的掉电数据保存到非易失性存储区。可以理解的是,若目标程序任务均已经执行完成,则表示保持区中的掉电数据不会在发生变更,故此时即可将易失性存储区中的掉电数据保存至非易失性存储器中,实现掉电数据的持久化。
在本实施例中,上述方法应用于掉电设备,且在掉电设备中包括易失性存储区和非易失性存储区,若掉电设备接收到掉电信号,停止调用新的程序任务;确定已执行的目标程序任务的任务状态,若各所述目标程序任务的任务状态均为执行完成,将所述目标程序任务对应的掉电数据从所述易失性存储区保存至所述非易失性存储区。相比于传统保存方案,本申请实施例,在发生掉电后,会先停止调用新的程序任务执行,从而避免新的程序任务被调用执行导致需要保存的掉电数据存在新的变更,且在停止调用新的程序任务后,再确定已执行的目标程序任务的任务状态,若目标程序任务的任务状态均为执行完成,则将保持区中掉电数据保存至非易失性存储区中,从而确保保持区中需要变更的掉电数据在保存到非易失性存储区之前,已经变更完成。故通过上述方式本申请可保证掉电发生后,非易失性存储区中掉电数据的新旧一致性(即同一周期产生的数据),避免数据错误的情况发生。
在一可行的实施方式中,所述易失性存储区包括数据区和保持区,所述若掉电设备接收到掉电信号,停止调用新的程序任务的步骤包括:
步骤S110,若掉电设备接收到掉电信号,变更控制变量为停止状态,以停止调用新的程序任务对应的正向同步函数,其中,所述正向同步函数用于将所述程序任务对应的掉电数据从所述数据区保存至所述保持区。
示例性的,在实际应用中,易失性存储区可划分为数据区和保持区,且通过设置控制变量来控制程序任务的调用。在掉电设备接收到掉电信号后,掉电设备可将控制变量变更为停止状态,从而停止调用新的程序任务对应的正向同函数,而程序任务对应的正向同步函数则用于将程序任务对应的掉电数据从数据去保存至保持区。
在一可行的实施方式中,所述确定已执行的目标程序任务的任务状态,若各所述目标程序任务的任务状态均为执行完成,将所述目标程序任务对应的掉电数据从所述易失性存储区保存至所述非易失性存储区的步骤包括:
步骤S210,监测已执行的目标程序任务对应的正向同步函数的状态变量;
步骤S220,基于所述状态变量确定已执行的目标程序任务的任务状态;
步骤S230,若各目标程序任务的任务状态均为执行完成,则将各所述目标程序任务对应的掉电数据从所述保持区保存至所述非易失性存储区中。
需要说明的是,在本实施例中,对于任意一个正向同步函数,可对应配置一个状态变量用于表征该正向同步函数的执行情况,也即表征该正向同步函数对应程序任务的任务状态,故可通过状态变量确定已执行的目标程序任务的任务状态。在根据状态变量确定各目标程序任务的任务状态均为执行完成,则可将各目标程序对应的掉电数据从保持区保存至非易失性存储区中。
在一可行的实施方式中,所述基于所述状态变量确定已执行的目标程序任务的任务状态的步骤还包括:
步骤S21,在所述状态变量表征各目标程序任务的整体执行状态的情况下,若所述状态变量为预设初始值,则确定各所述目标程序任务的任务状态均为执行完成;
步骤S22,若所述状态变量不为预设初始值,则确定存在任务状态为执行中的目标程序任务。
示例性的,对于状态变量表征目标程序任务不同任务状态的形式,可根据实际需求进行选择。例如,可使用一个状态变量来表征各目标程序任务的整体执行状态,在此情况下,若目标程序任务开始执行,则可将状态变量增加预设数值,反之,若该目标程序任务执行完成,则可将状态变量减少预设数值。因此,若各目标程序任务均执行完成,则状态变量应当是预设初始值。故在确定状态变量为预设初始值的情况下,则可确定整合任务均执行完成。反之,若状态变量不为预设初始值,则可确定存在执行中的整合任务。需要说明的是,由于在本实施方式中,由一个状态变量来表征各目标程序任务的整体执行状态,因此,可能涉及到多个目标程序任务同时更新状态变量的情况,故为避免冲突在更新状态变量时可设置锁,也即“持有”锁的目标程序任务才能更新状态变量,且更新完成后立释放锁,使得其他目标程序任务可占用锁并对状态变量更新。
在一可行的实施方式中,所述基于所述状态变量确定已执行的目标程序任务的任务状态的步骤还包括:
步骤S23,在一个目标程序任务对应一个状态变量的情况下,若各所述状态变量均表征结束状态,则确定各所述目标程序任务的任务状态均为执行完成;
步骤24,若存在状态变量表征执行状态,则确定存在任务状态为执行中的目标程序任务。
示例性的,一个目标程序任务可对应设置一个状态变量,也即一个状态变量仅表征该状态变量对应目标程序任务的执行情况,例如,可设置状态变量为第一状态值(第一状态值表征结束状态),也即表征对应的目标程序任务为执行完成,在状态变量为第二状态值(第二状态值表征执行状态),也即表征对应的目标程序任务为执行中。故在确定目标程序任务是否均执行完成时,需要确定状态变量是否均为第一状态值,若均为第一状态值,则可确定目标程序任务均执行完成,反之,若存在有状态变量为第二状态值,则可确定存在有状态任务为执行中的目标程序任务。
此外,还需要说明的是,若根据状态变量确定存在执行中的目标程序任务,则表征保持区中的掉电数据依然会发生变动。故可返回执行所述基于所述状态变量确定已执行的目标程序任务的任务状态的步骤。直到根据状态变量目标程序任务均执行完成。
参照图3,为基于本申请掉电数据保存方法的第一实施例提出本申请的第二实施例,在本实施例中与上述实施例相同或者相似内容可参考上文介绍,后续不再赘述。所述掉电数据保存方法还包括:
步骤A10,监测所述控制变量;
步骤A20,基于所述控制变量控制程序任务的调用执行,并基于所述程序任务的执行情况对所述状态变量进行更新。
示例性的,上述控制变量用于控制目标程序任务的调用,故对于掉电设备来说,在准备执行目标程序任务之前(例如在达到预设的执行周期后),可以读取一次控制变量,也即对控制变量进行监测。并根据控制变量控制程序任务的调用执行,其中,控制变量可表征目程序任务是否被允许调用。再基于程序任务的执行情况对状态变量进行更新。此外,还需要说明的是,对于任意一个程序任务的状态变量,具体的状态变量的更新方式,可根据状态变量的表现形式来确定,此处不再赘述。
在一可行的实施方案中,所述基于所述控制变量控制程序任务的调用执行的步骤还包括:
步骤A211,若所述控制变量为停止状态,则停止调用执行新的程序任务;
步骤A212,若所述控制变量为允许状态,则基于预设执行周期调用执行所述程序任务。
示例性的,在实际应用中,对于控制变量可设置两种值,即包括第一控制值和第二控制值,第一控制值表征停止状态,第二控制值则表征允许状态。相应的,若监测到控制变量为第一控制值,则禁止新的目标程序任务执行即可,对于执行中的目标程序任务可继续执行,并且在执行中的目标程序任务执行完成后,再更新状态变量,使得状态变量表征目标程序任务均执行完成。反之,若所述控制变量为第二控制值,则正常基于预设执行周期执行目标程序任务即可。
在一可行的实施方式中,所述基于所述程序任务的执行情况对所述状态变量进行更新的步骤包括:
步骤A2211,在所述状态变量表征各目标程序任务的整体执行状态的情况下,对于任意一个目标程序任务,在所述目标程序任务开始执行时,将所述状态变量增加预设数值;
步骤A2212,在所述目标程序任务执行完成时,将所述状态变量减去预设数值。
示例性的,在状态变量表征各目标程序任务的整体执行状态的情况下,对于任意一个目标程序任务,在该目标程序任务开始执行时,则可将状态变量增加预设数值。例如,若设置状态变量的初始值为0,预设数值为1,且当前状态变量的值为0,一个目标程序任务开始执行,将状态变量增加预设数值,也即0+1=1,故状态变量更新后的值为1。若该目标程序任务执行完成,则可将状态变量减去1,例如基于上述例子1-1=0,故状态变量更新后的值为0。可以理解的是,在上述情况下,若目标程序任务均执行完成,则状态变量应当是初始值,反之,若状态变量不是初始值,则表征此时还存在有执行中的目标程序任务。参照图4,为本申请第一框架示意图,如图所述示,数据区中包括掉电数据1至n,相应的,存在目标程序任务1至n分别将掉电数据1至n从数据区复制到保持区,且目标程序任务1至n将分别基于自身的执行情况对一状态变量进行更新,例如将状态变量+1或者-1。
在一可行的实施方式中,所述基于所述程序任务的执行情况对所述状态变量进行更新的步骤还包括:
步骤A221,在一个目标程序任务对应一个状态变量的情况下,对于任意一个目标程序任务,在所述目标程序任务开始执行时,更新所述目标程序任务对应的状态变量,以表征执行状态;
步骤A222,在所述目标程序任务执行完成时,更新所述目标程序任务对应的状态变量,以表征结束状态。
示例性的,在状态变量的另一种表现形式的情况下,也即任意一个目标程序任务对应一个状态变量。在此情况下,每个状态变量也同样可存在两种值,若第一状态值和第二状态值,其中,第一状态值表征执行状态,第二状态值表征结束状态,对于任意一个目标程序任务,在该目标程序任务开始执行时,将该目标程序任务对应的状态变量更新为第一状态值。相应的,在该目标程序任务执行完成后,再将该目标程序任务对应的状态变量更新为第二状态值即可。在实际应用中,各状态变量可组成状态数组,而各状态变量则为状态数组中的元素。参照图5,为本申请第二框架示意图,如图所述示,数据区中包括掉电数据1至n,相应的,存在目标程序任务1至n分别将掉电数据1至n从数据区复制到保持区,且目标程序任务1将基于自身执行情况对状态变量1进行更新,...,目标程序任务n将基于自身执行情况对状态变量n进行更新。
在一可行的实施方式中,所述掉电数据由应用程序运行时产生,所述掉电数据保存方法还包括:
步骤A01,在所述应用程序编译过程中,对于所述应用程序在运行过程中将要产生的任意一个掉电数据,生成所述掉电数据对应的程序任务;
步骤A02,生成用于控制各程序任务调用执行的控制变量。
示例性的,掉电数据由应用程序运行时产生,其中,应用程序为用户程序,用于实现某个具体的功能,可在PLC中运行。在应用程序运行之前需要编译器编译,例如,IDE(Integrated Development Environment,集成开发环境)中的编译器。在编译的过程中,编译器可为应用程序在运行过程中将要产生的任意一个掉电数据,生成将该掉电数据程序任务,以及用于控制各程序任务调用执行的控制变量。此外,还可生成表征各程序任务(或程序任务对应的正向同步函数)的状态变量。值得注意的上述IDE可配置在PLC中,也可以配置在PLC的上位机,本实施例中不进行具体的限制。
此外,参照图6,本申请实施例还提出一种掉电数据保存装置100,应用于掉电设备,所述掉电设备包括易失性存储区和非易失性存储区,所述掉电数据保存装置100包括:
停止模块10,用于若掉电设备接收到掉电信号,停止调用新的程序任务;
保存模块20,用于确定已执行的目标程序任务的任务状态,若各所述目标程序任务的任务状态均为执行完成,将所述目标程序任务对应的掉电数据从所述易失性存储区保存至所述非易失性存储区。
可选地,所述易失性存储区包括数据区和保持区,所述停止模块10还用于:
若掉电设备接收到掉电信号,变更控制变量为停止状态,以停止调用新的程序任务对应的正向同步函数,其中,所述正向同步函数用于将所述程序任务对应的掉电数据从所述数据区保存至所述保持区。
可选地,所述保存模块20还用于:
监测已执行的目标程序任务对应的正向同步函数的状态变量;
基于所述状态变量确定已执行的目标程序任务的任务状态;
若各目标程序任务的任务状态均为执行完成,则将各所述目标程序任务对应的掉电数据从所述保持区保存至所述非易失性存储区中。
可选地,所述保存模块20还用于:
在所述状态变量表征各目标程序任务的整体执行状态的情况下,若所述状态变量为预设初始值,则确定各所述目标程序任务的任务状态均为执行完成;
若所述状态变量不为预设初始值,则确定存在任务状态为执行中的目标程序任务。
可选地,所述保存模块20还用于:
在一个目标程序任务对应一个状态变量的情况下,若各所述状态变量均表征结束状态,则确定各所述目标程序任务的任务状态均为执行完成;
若存在状态变量表征执行状态,则确定存在任务状态为执行中的目标程序任务。
可选地,所述掉电数据保存装置100还包括监测模块30,所述监测模块30用于:
监测所述控制变量;
基于所述控制变量控制程序任务的调用执行,并基于所述程序任务的执行情况对所述状态变量进行更新。
可选地,所述监测模块30还用于:
若所述控制变量为停止状态,则停止调用执行新的程序任务;
若所述控制变量为允许状态,则基于预设执行周期调用执行所述程序任务。
可选地,所述监测模块30还用于:
在所述状态变量表征各目标程序任务的整体执行状态的情况下,对于任意一个目标程序任务,在所述目标程序任务开始执行时,将所述状态变量增加预设数值;
在所述目标程序任务执行完成时,将所述状态变量减去预设数值。
可选地,所述监测模块30还用于:
在一个目标程序任务对应一个状态变量的情况下,对于任意一个目标程序任务,在所述目标程序任务开始执行时,更新所述目标程序任务对应的状态变量,以表征执行状态;
在所述目标程序任务执行完成时,更新所述目标程序任务对应的状态变量,以表征结束状态。
可选地,所述掉电数据保存装置100还包括编译模块40,所述监测模块40用于:
在所述应用程序编译过程中,对于所述应用程序在运行过程中将要产生的任意一个掉电数据,生成所述掉电数据对应的程序任务;
生成用于控制各程序任务调用执行的控制变量。
本申请提供的掉电数据保存装置,采用上述实施例中的掉电数据保存方法,解决了传统方案中在掉电后保存的关键数据存在有较大的风险为错误数据的技术问题。与现有技术相比,本申请实施例提供的掉电数据保存装置的有益效果与上述实施例一提供的掉电数据保存方法的有益效果相同,且该掉电数据保存装置中的其他技术特征与上述实施例方法公开的特征相同,在此不做赘述。
此外,本申请实施例还提出一种掉电数据保存设备,所述掉电数据保存设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的掉电数据保存程序,所述掉电数据保存程序被所述处理器执行时实现如上述的掉电数据保存方法的步骤。
本申请掉电数据保存设备的具体实施方式与上述掉电数据保存方法各实施例基本相同,在此不再赘述。
此外,本申请实施例还提出一种可读存储介质,所述可读存储介质上存储有掉电数据保存程序,所述掉电数据保存程序被处理器执行时实现如上述的掉电数据保存方法的步骤。
本申请介质具体实施方式与上述掉电数据保存方法各实施例基本相同,在此不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是PLC,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (13)

1.一种掉电数据保存方法,应用于掉电设备,所述掉电设备包括易失性存储区和非易失性存储区,其特征在于,所述掉电数据保存方法包括:
若掉电设备接收到掉电信号,停止调用新的程序任务;
确定已执行的目标程序任务的任务状态,若各所述目标程序任务的任务状态均为执行完成,将所述目标程序任务对应的掉电数据从所述易失性存储区保存至所述非易失性存储区。
2.如权利要求1所述的掉电数据保存方法,其特征在于,所述易失性存储区包括数据区和保持区,所述若掉电设备接收到掉电信号,停止调用新的程序任务的步骤包括:
若掉电设备接收到掉电信号,变更控制变量为停止状态,以停止调用新的程序任务对应的正向同步函数,其中,所述正向同步函数用于将所述程序任务对应的掉电数据从所述数据区保存至所述保持区。
3.如权利要求2所述的掉电数据保存方法,其特征在于,所述确定已执行的目标程序任务的任务状态,若各所述目标程序任务的任务状态均为执行完成,将所述目标程序任务对应的掉电数据从所述易失性存储区保存至所述非易失性存储区的步骤包括:
监测已执行的目标程序任务对应的正向同步函数的状态变量;
基于所述状态变量确定已执行的目标程序任务的任务状态;
若各目标程序任务的任务状态均为执行完成,则将各所述目标程序任务对应的掉电数据从所述保持区保存至所述非易失性存储区中。
4.如权利要求3所述的掉电数据保存方法,其特征在于,所述基于所述状态变量确定已执行的目标程序任务的任务状态的步骤还包括:
在所述状态变量表征各目标程序任务的整体执行状态的情况下,若所述状态变量为预设初始值,则确定各所述目标程序任务的任务状态均为执行完成;
若所述状态变量不为预设初始值,则确定存在任务状态为执行中的目标程序任务。
5.如权利要求3所述的掉电数据保存方法,其特征在于,所述基于所述状态变量确定已执行的目标程序任务的任务状态的步骤还包括:
在一个目标程序任务对应一个状态变量的情况下,若各所述状态变量均表征结束状态,则确定各所述目标程序任务的任务状态均为执行完成;
若存在状态变量表征执行状态,则确定存在任务状态为执行中的目标程序任务。
6.如权利要求3所述的掉电数据保存方法,其特征在于,所述掉电数据保存方法还包括:
监测所述控制变量;
基于所述控制变量控制程序任务的调用执行,并基于所述程序任务的执行情况对所述状态变量进行更新。
7.如权利要求6所述的掉电数据保存方法,其特征在于,所述基于所述控制变量控制程序任务的调用执行的步骤还包括:
若所述控制变量为停止状态,则停止调用执行新的程序任务;
若所述控制变量为允许状态,则基于预设执行周期调用执行所述程序任务。
8.如权利要求6所述的掉电数据保存方法,其特征在于,所述基于所述程序任务的执行情况对所述状态变量进行更新的步骤包括:
在所述状态变量表征各目标程序任务的整体执行状态的情况下,对于任意一个目标程序任务,在所述目标程序任务开始执行时,将所述状态变量增加预设数值;
在所述目标程序任务执行完成时,将所述状态变量减去预设数值。
9.如权利要求6所述的掉电数据保存方法,其特征在于,所述基于所述程序任务的执行情况对所述状态变量进行更新的步骤还包括:
在一个目标程序任务对应一个状态变量的情况下,对于任意一个目标程序任务,在所述目标程序任务开始执行时,更新所述目标程序任务对应的状态变量,以表征执行状态;
在所述目标程序任务执行完成时,更新所述目标程序任务对应的状态变量,以表征结束状态。
10.如权利要求1至9任意一项所述的掉电数据保存方法,其特征在于,所述掉电数据由应用程序运行时产生,所述掉电数据保存方法还包括:
在所述应用程序编译过程中,对于所述应用程序在运行过程中将要产生的任意一个掉电数据,生成所述掉电数据对应的程序任务;
生成用于控制各程序任务调用执行的控制变量。
11.一种掉电数据保存装置,其特征在于,应用于掉电设备,所述掉电设备包括易失性存储区和非易失性存储区,所述掉电数据保存装置包括:
停止模块,用于若掉电设备接收到掉电信号,停止调用新的程序任务;
保存模块,用于确定已执行的目标程序任务的任务状态,若各所述目标程序任务的任务状态均为执行完成,将所述目标程序任务对应的掉电数据从所述易失性存储区保存至所述非易失性存储区。
12.一种掉电数据保存设备,其特征在于,所述掉电数据保存设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的掉电数据保存程序,所述掉电数据保存程序被所述处理器执行时实现如权利要求1至10中任一项所述的掉电数据保存方法的步骤。
13.一种可读存储介质,其特征在于,所述可读存储介质为计算可读存储介质,所述可读存储介质上存储有掉电数据保存程序,所述掉电数据保存程序被处理器执行时实现如权利要求1至10中任一项所述的掉电数据保存方法的步骤。
CN202311762342.2A 2023-12-19 2023-12-19 掉电数据保存方法、装置、设备及可读存储介质 Pending CN117707853A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311762342.2A CN117707853A (zh) 2023-12-19 2023-12-19 掉电数据保存方法、装置、设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311762342.2A CN117707853A (zh) 2023-12-19 2023-12-19 掉电数据保存方法、装置、设备及可读存储介质

Publications (1)

Publication Number Publication Date
CN117707853A true CN117707853A (zh) 2024-03-15

Family

ID=90162095

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311762342.2A Pending CN117707853A (zh) 2023-12-19 2023-12-19 掉电数据保存方法、装置、设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN117707853A (zh)

Similar Documents

Publication Publication Date Title
US8468514B2 (en) System and method for updating unified extensible firmware interface setting information
US20140047256A1 (en) Terminal device and method for operating the same
CN109064538B (zh) 视图渲染方法、装置、存储介质及智能终端
CN107291481B (zh) 一种组件更新方法、装置和系统
WO2020206691A1 (zh) 应用程序的处理方法、装置、存储介质及电子设备
CN107577472B (zh) 软件安装方法、装置及计算机可读存储介质
US20130054951A1 (en) Software execution method and electronic device using the same
CN107861766B (zh) 应用启动方法、装置及计算机可读存储介质
CN113728312A (zh) 用于控制应用的执行的方法、电子装置及其存储介质
EP3819758A2 (en) Instruction executing method and apparatus, electronic device, and computer-readable storage medium
CN117707853A (zh) 掉电数据保存方法、装置、设备及可读存储介质
WO2023130866A1 (zh) 操作系统的切换方法及装置、电子设备、存储介质
US20120047358A1 (en) Method and system for accelerating booting process
CN113747043B (zh) 图像处理器启动方法、电子设备和存储介质
CN115509531A (zh) 基于前端技术的微前端实现方法、装置、终端及存储介质
CN114968010A (zh) 协处理芯片的启动方法、装置、存储介质及电子装置
US7191443B2 (en) Digital device, task management method and program therefor
KR101077832B1 (ko) 보조 프로세서의 내장 ui 구현 방법
CN114116035B (zh) Windows下的BIOS设置方法、装置及存储介质
CN115291975A (zh) 安卓系统开发方法、相关设备及计算机可读存储介质
CN112328472B (zh) 硬件仿真方法及装置、电子设备及存储介质
JP2002297402A (ja) デジタル機器、タスク管理方法及びそのプログラム
CN109408160B (zh) 自订开机画面的方法
CN115344310A (zh) 摄像头自适应方法、装置、设备及计算机可读存储介质
CN116708915A (zh) 一种显示设备系统重启方法及显示设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination