基于改进任务调度机制的多任务断点调试方法技术

技术编号:20285159 阅读:22 留言:0更新日期:2019-02-10 17:46
本发明专利技术提供基于改进任务调度机制的多任务断点调试方法,包括步骤:a)根据多运算任务间的协调管理需求,定义一级任务控制块,一个或多个一级任务控制块组成一级任务控制队列;b)根据单个运算任务的运行需求、断点信息存储需求,定义二级任务控制块;c)建立多运算任务间的一级任务管理机制;d)依据断点调试功能的类别,针对每类调试指令,建立相应的指令预处理机制,实现调试指令到结构化的任务控制描述的转化并添加到二级任务控制块;e)定义运算任务的多个运行状态,实现运算任务不同运行态之间的转换。本发明专利技术最大限度地保证了高优先级运算任务的执行及处理器资源的充分利用,实现了控制逻辑的断点调试功能。

Multitask Breakpoint Debugging Method Based on Improved Task Scheduling Mechanism

The invention provides a multi-task breakpoint debugging method based on an improved task scheduling mechanism, including steps: a) according to the coordination management requirements of multi-operation tasks, a first-level task control block is defined, one or more first-level task control blocks form a first-level task control queue; b) according to the operation requirements of a single operation task and the storage requirements of breakpoint information, a second-level task control block is defined; Level 1 task management mechanism between multi-operation tasks; d) According to the category of breakpoint debugging function, corresponding instruction preprocessing mechanism is established for each type of debugging instructions to realize the transformation from debugging instructions to structured task control descriptions and add them to Level 2 task control blocks; e) Define multiple operation states of operation tasks, and realize the transformation between different operation states of operation tasks. The invention maximizes the execution of high priority computing tasks and the full utilization of processor resources, and realizes the breakpoint debugging function of control logic.

【技术实现步骤摘要】
基于改进任务调度机制的多任务断点调试方法
本专利技术属于工业自动化控制领域,特别提供了基于改进任务调度机制的多任务断点调试方法,用于工业过程控制系统中分布式控制器的软件内核设计。
技术介绍
随着工业生产过程对自动化水平的要求不断提高,DCS/PLC控制系统在各个领域得到了广泛的应用。在工艺复杂、控制实时性和精确性要求较高的场合,分布式控制器(以下简称控制器)不仅要有常规的控制功能,而且需要支持多个周期运算任务,以满足同一系统不同对象的控制要求。应用场景的复杂度直接导致了控制器控制逻辑复杂度的增大,这给逻辑调试带来了诸多不便。常规的逻辑调试方法仅能通过逻辑的运算结果判断逻辑的正确性,而无法获取逻辑运算过程中的断面数据,因此调试效率低下,逻辑漏洞查找困难。为解决上述问题,需要在控制器中集成断点调试功能,以实现对运算任务运行的人为控制。而现有工控厂家往往并不支持该功能或支持的断点调试功能单一。对于DCS/PLC控制系统而言,断点调试,指在控制逻辑的调试过程中,为了找到控制逻辑的错误或漏洞,在控制逻辑的某最小运算单元处设置一个断点,在调试状态下,控制逻辑运算到断点处则停止执行,所有数据保持当前状态。通过设置多个断点或使用诸如逐步、逐页、逐块的虚拟断点,一步一步跟踪控制逻辑的运算过程,根据控制逻辑停止时的断面数据,定位控制逻辑的错误或漏洞。断点调试通过控制逻辑中的断点干预控制器运算任务的运行过程,其中涉及到控制器对控制逻辑的执行机制。目前控制器对于控制逻辑的处理,一般分为两类,即解释执行机制和编译执行机制。采用解释执行机制的控制器,其内核对算法逻辑边解释边执行。而采用编译执行机制的控制器,其内核执行的是由算法逻辑语言编译形成的机器指令码。如果在采用编译执行机制的控制器上实现调试功能,需要维护算法组态和目标程序之间的编译信息,而采用解释执行机制,则可以简化调试过程。
技术实现思路
有鉴于此,本专利技术提供了基于改进任务调度机制的多任务断点调试方法,该方法属于解释执行机制的范畴,整个控制逻辑由若干逻辑组态页组成,每个逻辑组态页由若干个实例化了的算法单元通过输入输出的连接组成。每个算法单元实例对象通过全局唯一的页号和块号组合进行定位标记。在此基础上,实现控制器对多周期逻辑运算任务的支持,以及对控制逻辑的断点调试功能。从而提高控制逻辑的调试效率,更快捷地定位控制逻辑错误或漏洞。本专利技术提供的基于改进任务调度机制的多任务断点调试方法,包括如下步骤:a)根据多运算任务间的协调管理需求,定义一级任务控制块,一个或多个一级任务控制块组成一级任务控制队列;b)根据单个运算任务的控制需求、断点信息存储需求及运算任务中断后恢复运行所需的必要信息,定义二级任务控制块;c)在满足多运算任务基本调度需求且多优先级运算任务的周期及负荷相互之间不影响、不受限的条件下,建立多运算任务间的一级任务管理机制,实现在不同时间片内,控制多个运算任务根据优先级的高低顺序依次执行,并将相关控制信息通过一级任务控制块发送到二级任务控制块;d)依据断点调试功能的类别,针对每类调试指令,建立相应的指令预处理机制,实现调试指令到结构化的任务控制描述的转化并添加到二级任务控制块;e)定义运算任务的多个运行状态,根据二级任务控制块中的控制信息,实现运算任务不同运行态之间的转换。其中步骤a)中的一级任务控制块进一步包含运算任务的运算周期、时间计数、运算权需求标记及该运算任务所对应的二级任务控制块入口;一级任务控制块按运算周期由小到大的顺序形成一级任务控制队列。其中步骤b)中的二级任务控制块进一步包含断点信息列表、控制信息及状态信息三部分;定义断点信息列表,存储多类别可结构化的调试指令信息并设置每个断点信息的生命周期,列表元素包含一级页号和二级块号,采用有序存储;定义控制信息,存储运算任务与一级任务控制过程及调试指令预处理过程交互的信号量;定义状态信息,存储表征运算任务当前运行状态的信息。其中步骤c)中设置不同运算周期之间的最小步长时间,该时间也是控制器所支持的最小运算周期。其中步骤c)中多周期运算任务的优先级以周期大小为依据,运算周期越小优先级越高。其中步骤d)所述的断点调试功能包含以下类别:调试模式设置及取消、继续运算、逐步运算、逐页运算、逐块运算、断点设置、断点删除、断点全部删除。其中步骤e)所述的运算任务运行状态包括:不存在态、初始化态、运行态、结束态、挂起态、阻塞态、终止态。其中步骤e)所述的运算任务运行态之间的转换,均由运算任务本身通过二级任务控制块控制信息自行实现,运算任务对外只保留创建和销毁接口。与现有技术相比,本专利技术的优点是:在支持多周期运算任务的同时,最大限度地保证了高优先级运算任务的执行及处理器资源的充分利用;实现了对控制逻辑的断点调试功能;支持多类型的调试指令并允许设定断点信息的生命周期;断点信息以结构体列表形式存放,采用一级页号加二级块号的有序存放机制,可减少断点查找时间,提高断点判断的执行效率。附图说明图1一级任务控制块及队列示意图;图2二级任务控制块示意图;图3一级任务控制流程图;图4运算权分配流程图;图5调试指令预处理流程图;图6运算任务状态转换示意图;图7运算任务运行流程图;图8断点列表处理流程图。具体实施方式为使本专利技术的上述内容、特征和优点能够更加清晰易懂,下面结合附图对本专利技术的详细实施步骤做具体的说明。本专利技术基于面向对象的软件开发理念,将控制器的核心运算任务与其他任务解耦。采用中间层语言实现解释执行机制,实现了多周期运算任务运行的控制策略,并支持多类别多数量的调试指令。整个方案主要包含四部分内容,即建立任务控制块结构、建立一级任务控制过程、建立调试指令预处理过程及建立支持断点调试功能的二级任务控制过程。一、建立任务控制块结构首先根据多运算任务间的协调管理需求,定义一级任务控制块,一个或多个一级任务控制块组成一级任务控制队列。一级任务控制块至少包含本运算任务的运算周期、时间计数、运算权需求标记及二级任务控制块入口。以一个实施例来说明,一级任务控制块及队列的结构示意图如图1所示,其中包含的信息主要有:(1)任务周期,表征该运算任务的扫描周期,是一级任务控制过程设置运算权需求标记的依据之一;同时也表征了本运算任务的优先级,任务周期越小,优先级越高,进而决定了本一级任务控制块在队列中的位置。(2)时间计数,记录运算任务在当前周期内已流逝的时间,时间计数与任务周期相等时表示本周期结束;时间计数大于任务周期时表示新周期的开始,需要将时间计数重置为初始值,并设置运算权需求标记。(3)运算权需求标记,表征该运算任务是否需要运算权,任务周期开始时设置该标记,运算任务主动释放运算权后清除该标记。(4)二级任务控制块入口,该运算任务对应的二级任务控制块首地址,用于向二级任务控制块发送控制信息或读取运算任务运行状态。其次,根据单个运算任务的控制需求、断点信息存储需求及运算任务中断后恢复运行所需的必要信息,定义二级任务控制块。以一个实施例来说明,二级任务控制块的结构示意图如图2所示,主要包含断点信息列表、控制信息、状态信息三部分,分别描述如下:(1)断点信息列表,由若干个断点信息节点组成,每个断点信息节点包含下述信息:页号,断点运算单元所在页的页号;块号,断点本文档来自技高网
...

【技术保护点】
1.基于改进任务调度机制的多任务断点调试方法,其特征是,包含步骤:a)根据多运算任务间的协调管理需求,定义一级任务控制块,一个或多个一级任务控制块组成一级任务控制队列;b)根据单个运算任务的控制需求、断点信息存储需求及运算任务中断后恢复运行所需的必要信息,定义二级任务控制块;c)在满足多运算任务基本调度需求且多优先级运算任务的周期及负荷相互之间不影响、不受限的条件下,建立多运算任务间的一级任务管理机制,实现在不同时间片内,控制多个运算任务根据优先级的高低顺序依次执行,并将相关控制信息通过一级任务控制块发送到二级任务控制块;d)依据断点调试功能的类别,针对每类调试指令,建立相应的指令预处理机制,实现调试指令到结构化的任务控制描述的转化,并添加到二级任务控制块;e)定义运算任务的多个运行状态,根据二级任务控制块中的控制信息,实现运算任务不同运行态之间的转换。

【技术特征摘要】
1.基于改进任务调度机制的多任务断点调试方法,其特征是,包含步骤:a)根据多运算任务间的协调管理需求,定义一级任务控制块,一个或多个一级任务控制块组成一级任务控制队列;b)根据单个运算任务的控制需求、断点信息存储需求及运算任务中断后恢复运行所需的必要信息,定义二级任务控制块;c)在满足多运算任务基本调度需求且多优先级运算任务的周期及负荷相互之间不影响、不受限的条件下,建立多运算任务间的一级任务管理机制,实现在不同时间片内,控制多个运算任务根据优先级的高低顺序依次执行,并将相关控制信息通过一级任务控制块发送到二级任务控制块;d)依据断点调试功能的类别,针对每类调试指令,建立相应的指令预处理机制,实现调试指令到结构化的任务控制描述的转化,并添加到二级任务控制块;e)定义运算任务的多个运行状态,根据二级任务控制块中的控制信息,实现运算任务不同运行态之间的转换。2.如权利要求1所述的基于改进任务调度机制的多任务断点调试方法,其特征是:所述步骤a)中的一级任务控制块包括运算任务的运算周期、时间计数、运算权需求标记及该运算任务所对应的二级任务控制块入口;一级任务控制块按运算周期由小到大的顺序形成一级任务控制队列。3.如权利要求1所述的基于改进任务调度机制的多任务断点调试方法,其特征是:所述步骤b)中的二级任务控制块包括断点信息列表、控制信息及状态信息三部分;...

【专利技术属性】
技术研发人员:卢海松吴波牛洪海徐卫峰臧峰
申请(专利权)人:南京南瑞继保电气有限公司南京南瑞继保工程技术有限公司
类型:发明
国别省市:江苏,32

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

1