控制器程序在线更新方法及装置制造方法及图纸

技术编号:38090734 阅读:14 留言:0更新日期:2023-07-06 09:02
本申请提出的一种控制器程序在线更新方法及装置,控制器程序包括一个或多个任务,任务包括一个或多个程序组织单元,所述方法包括:响应于更新信号,中断当前执行的任务;在更新结束的情况下,根据所述控制器程序的运行信息确定处于执行中断状态的任务;确定所述处于执行中断状态的任务中的未运行的程序组织单元;补运行所述未运行的程序组织单元。本申请提出的方案在控制器程序更新前以程序组织单元为粒度,快速实现任务线程的中断执行,在控制器程序更新后再次运行时,能够判断任务在控制器程序更新前的中断位置,并补运行,提升了控制器程序在线更新的效率,确保了更新的安全性和可靠性。性和可靠性。性和可靠性。

【技术实现步骤摘要】
控制器程序在线更新方法及装置


[0001]本申请涉及控制器程序领域,尤其是涉及一种控制器程序在线更新方法及装置。

技术介绍

[0002]可编程控制器是一种数字运算操作的电子系统,专门在工业环境下应用而设计,用来在执行存储逻辑运算和顺序控制、定时、计数和算术运算等操作的指令,并通过数字或模拟的输入输出接口控制各种类型的机械设备或生产过程。可编程控制器已被广泛应用于各种生产机械和生产过程的自动控制中,成为一种最重要、最普及、应用场合最多的工业控制装置之一。
[0003]现有的控制器程序进行在线增量更新时,通常以任务为单位进行切换,通常的做法是等待当前运行的任务完整运行后才能取消或停止。当前的方法存在问题主要包括:如果低优先级任务的运行周期较长,则在增量更新时会导致等待时间占用多个周期,无法实现无扰切换;增量更新后任务重新启动,从头到尾顺次执行,会导致不同任务不是在同一个断面下运行,从而导致数据一致性问题。因此,需要一种能够实现增量更新前任务快速退出,更新后能够准确判断更新前中断的任务并对任务补运行的方法。

技术实现思路

[0004]针对现有技术中存在的问题,本申请提供了一种控制器程序在线更新方法及装置。本申请提出的方法在控制器程序更新前以程序组织单元为粒度,快速实现任务线程的中断执行,在控制器程序更新后再次运行时,能够判断任务在控制器程序更新前的中断位置,并补运行中断任务。
[0005]根据本申请的第一个方面,提出一种控制器程序在线更新方法,所述控制器程序包括一个或多个任务,所述任务包括一个或多个程序组织单元,所述方法包括:
[0006]响应于更新信号,中断当前执行的任务;
[0007]在更新结束的情况下,根据所述控制器程序的运行信息确定处于执行中断状态的任务;
[0008]确定所述处于执行中断状态的任务中的未运行的程序组织单元;
[0009]补运行所述未运行的程序组织单元。
[0010]根据一些实施例,所述运行信息包括名称信息和计数信息,所述名称信息包括任务名称,所述计数信息包括和任务名称相对应的任务启动执行次数和任务结束执行次数。
[0011]根据一些实施例,所述根据所述控制器程序的运行信息确定处于执行中断状态的任务,包括:
[0012]在任一任务启动执行次数大于对应的任务结束执行次数的情况下,确定所述任务处于执行中断状态。
[0013]根据一些实施例,所述根据所述控制器程序的运行信息确定处于执行中断状态的任务,包括:
[0014]在任一任务启动执行次数为零,且对应的任务结束执行次数大于零的情况下,确定所述任务处于执行中断状态。
[0015]根据一些实施例,所述名称信息还包括程序组织单元名称,所述计数信息还包括程序组织单元执行次数。
[0016]根据一些实施例,所述确定所述处于执行中断状态的任务中的未运行的程序组织单元包括:
[0017]在所述程序组织单元执行次数小于所述处于执行中断状态的任务启动执行次数的情况下,确定所述程序组织单元未运行。
[0018]根据一些实施例,所述确定所述处于执行中断状态的任务中的未运行的程序组织单元还包括:
[0019]在所述处于执行中断状态的任务启动执行次数为零,并且所述程序组织单元执行次数大于零的情况下,确定所述程序组织单元未运行。
[0020]根据本申请的第二个方面,提出一种控制器程序在线更新装置,包括中断模块、中断筛选模块、未运行筛选模块和补运行模块,其中:
[0021]所述中断模块用于响应于更新信号,中断当前执行的任务;
[0022]所述中断筛选模块用于在更新结束的情况下,根据所述控制器程序的运行信息确定处于执行中断状态的任务;
[0023]所述未运行筛选模块用于确定所述处于执行中断状态的任务中的未运行的程序组织单元;
[0024]所述补运行模块用于补运行所述未运行的程序组织单元。
[0025]根据本申请的第三个方面,提出一种电子设备,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本申请第一个方面所述的方法。
[0026]根据本申请的第四个方面,提出一种计算机可读存储介质,其特征在于,其存储用于电子数据交换的计算机程序,其中,所述计算机程序使得计算机执行如本申请第一个方面所述的方法。
[0027]本申请提出的一种控制器程序在线更新方法及装置,在控制器程序更新前以程序组织单元为粒度记录运行信息,并根据运行信息快速实现任务线程的中断执行,在控制器程序更新后再次运行时,能够判断任务在控制器程序更新前的中断位置,并补运行中断任务中未运行的程序组织单元。本申请提出的方案提升了控制器程序在线更新的效率,确保更新前后数据断面和程序逻辑的一致性,提升了更新的安全性和可靠性。
附图说明
[0028]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图,而并不超出本申请要求保护的范围。
[0029]图1为本申请的控制器程序在线更新方法的步骤示意图;
[0030]图2为本申请的控制器程序在线更新装置的结构示意图;
[0031]图3为本申请的控制器程序更新后首次运行时的流程图;
[0032]图4为本申请的一种电子设备的结构图。
具体实施方式
[0033]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0034]图1为本申请的控制器程序在线更新方法的步骤示意图。
[0035]步骤S101,响应于更新信号,中断当前执行的任务。
[0036]在一些具体实施例中,控制器程序包括一个或多个任务。在一些具体实施例中,任一任务包括一个或多个程序组织单元。在一些具体实施例中,每个程序组织单元包括与之对应的程序组织单元运行函数。在一些具体实施例中,当前执行的任务可以为一个,也可以为多个。
[0037]在一些具体实施例中,任务执行过程包括在任务线程里执行程序组织单元运行函数。在一些具体实施例中,响应于对控制器程序的更新信号,中断当前执行的任务。在一些具体实施例中,在接收到更新信号的情况下,结束当前调用的程序组织单元运行函数,退出任务线程,中断任务。
[0038]步骤S102,在更新结束的情况下,根据所述控制器程序的运行信息确定处于执行中断状态的任务。
[0039]在一些具体实施例中,控制器程序记录其自身的运行信息。在一些具体实施例中,运行信息包括名称信息和计数信息。在一些具体实施例中,名称信息包括任务名称和程序组织单本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种控制器程序在线更新方法,所述控制器程序包括一个或多个任务,所述任务包括一个或多个程序组织单元,所述方法包括:响应于更新信号,中断当前执行的任务;在更新结束的情况下,根据所述控制器程序的运行信息确定处于执行中断状态的任务;确定所述处于执行中断状态的任务中的未运行的程序组织单元;补运行所述未运行的程序组织单元。2.如权利要求1所述的方法,其特征在于,所述运行信息包括名称信息和计数信息,所述名称信息包括任务名称,所述计数信息包括和任务名称相对应的任务启动执行次数和任务结束执行次数。3.如权利要求2所述的方法,其特征在于,所述根据所述控制器程序的运行信息确定处于执行中断状态的任务,包括:在任一任务启动执行次数大于对应的任务结束执行次数的情况下,确定所述任务处于执行中断状态。4.如权利要求2所述的方法,其特征在于,所述根据所述控制器程序的运行信息确定处于执行中断状态的任务,包括:在任一任务启动执行次数为零,且对应的任务结束执行次数大于零的情况下,确定所述任务处于执行中断状态。5.如权利要求2所述的方法,其特征在于,所述名称信息还包括程序组织单元名称,所述计数信息还包括程序组织单元执行次数。6.如权利要求5所述的方法,其特征在于,所述确定所述处于执行中断状态的任务中的未运行的程序组织单元...

【专利技术属性】
技术研发人员:李响陈宏君曾凯周强侯先栋文继锋李广华徐深
申请(专利权)人:南京南瑞继保工程技术有限公司
类型:发明
国别省市:

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

1