冯 宁
(广东机电职业技术学院,广东 广州 510515)
面向分布式数控系统的自适应调度框架研究
冯 宁
(广东机电职业技术学院,广东 广州 510515)
提出了一种“面向分布式数控系统的自适应调度框架”,该调度框架综合利用“数控系统任务优先级动态设定”和“数控系统任务的周期自适应调整”。在“数控系统任务的周期自适应调整”中采用动态设定数据信息流缓冲区的上溢、下溢警戒区,并且通过“时间系列”模型预测任务周期观测时间“t”,能够很好地预防数据信息流的上溢和下溢,使系统在很短时间内收敛到稳定状态,有效地提高了数控系统的加工速度和加工质量。
分布式数控;自适应调度框架;信息流;时间系列模型
在传统数控系统调度模型下,系统的可调度性取决于每一个任务在最坏情况下的执行时间,这种调度易于实现,但因为系统是固定地考虑任务在最坏情况下的时间需求,CPU的利用率比较低,不能充分发挥系统的性能。当前有一些文献讨论了数控系统的自适应调度方法,这些方法大致可归结为两类,一类是调度周期的自适应研究,另一类是任务优先级自适应动态调整的研究。对于第一类研究存在的缺陷是由于数控系统的数据信息流的相互依赖性,即使调度周期根据负载情况自适应调整,仍然存在下游任务等待上游任务数据的情况,导致系统加工速度不平稳。对于第二类研究,优先级自适应动态调整能够改善系统的可调度性,但因为任务调度周期是固定的,则在负载过重时任务丢失率过高,负载过低时CPU利用率过低。
本文设计了一种面向分布式数控系统的调度框架,该框架根据数控系统任务的实时情况自适应动态调整任务优先级和调度周期,能够有效防止数控系统数据信息流的数据等待和数据丢失,最大限度地提高CPU的利用率,有效提高系统的性能。
图1是数控系统的数据信息流模型,系统针对的是一种分布式数控系统,系统从加工程序到粗插补在主控制器内完成,各个轴的精插补到轴的驱动在各轴的智能控制器内完成。主控制器与各个智能控制器之间通过现场总线相连进行通信。
上述数控系统的数据信息流由译码、刀补处理、插补等若干环节组成,各个环节通过缓冲区相连,上游环节产生的数据信息存入缓冲区,下游环节所要消费的数据信息从缓冲区读出,上游环节的输出作为下游环节的输入。只要缓冲区不发生上溢或下溢,数据加工就会正常进行。而一旦发生缓冲区下溢,就会使某一环节出现数据等待,数控加工就会中断,导致加工不平稳,影响加工质量。一旦发生缓冲区上溢,就会导致部分数据丢失,数控加工就会失真。
对于图1所示数控系统数据信息流,精插补处理、位置控制、速度控制环节在各个智能控制器中进行,精插补产生的数据存放于运行缓冲区,每一个精插补数据的消费与位置控制、速度控制在时序上需要严格的匹配。精插补数据的消费速度相对固定,是由加工速度的快慢决定。译码、刀补处理、速度预处理、粗插补环节是在主控制器内进行。主控制器除了要处理这些任务以外,还要处理一些弱实时任务、非实时任务和突发任务,这些任务的消费速度是变化和未知的。同时粗插补缓冲区消费数据的速度也是变化的,当所加工段为直线,每一段插补的区间就长,消费的速度就低。当所加工段为曲线,每一段插补的区间就短,消费的速度就高。以上各种因素就导致各个缓冲区数据产生与消费的速度处在一个不断变化的过程中,如果数据产生与消费的速度长期不匹配,就有可能产生数据溢出。
2.1 数控系统任务模型和缓冲区模型描述
将数控系统信息流上的周期任务用5元组表示为TPi=(C,P0,T0,Pi,Ti)。式中,C表示任务TPi的上游缓冲区,P0表示任务TPi的初始优先级,T0表示任务TPi的初始周期,Pi表示任务TPi的当前优先级,Ti表示任务TPi的当前周期。任务的初始优先级由任务在数控系统信息流上的位置决定,越靠近加工末端位置优先级越高,最高优先级规定为0。任务的初始周期由设定的加工速度决定。任务的当前优先级和当前周期根据实际情况自动动态调整。任务TPi、TPi+1、TPi+2及缓冲区i和缓冲区i+1的位置关系如图2所示。
数控系统信息流上各缓冲区的模型如图3所示。每个缓冲区由Ci、Cit、Cil、Cih这4个参数决定,其中Ci表示缓冲区i的容量,Cit表示缓冲区i的当前已占容量,Cil表示缓冲区iv的下溢警戒区容量,Cih表示缓冲区i的上溢警戒区容量。
2.2 缓冲区警戒容量的确定
根据缓冲区的模型,可以得知在任一时刻缓冲区的剩余容量ΔCi=Ci-Cit。
(1)缓冲区上溢警戒区容量的确定
定义1 上溢:对于某一缓冲区,若其上游产生数据的速度大于下游消费数据的速度,在某一段时间内,上游产生数据量与下游消费数据量之差超过缓冲区剩余容量ΔCi,导致上游产生的部分数据丢失的现象称作上溢。
Cih=Ci-B/Tk
(1)
式中:Tk为缓冲区i上游任务的执行周期,ti为任务TPi的无中断执行时间。
(2)缓冲区下溢警戒区容量的确定
定义2 下溢:对于某一缓冲区,若其下游消费数据的速度大于上游产生数据的速度,在某一段时间内,下游消费数据量与上游产生数据量之差超过缓冲区当前容量Cit,导致缓冲区下游任务在一段时间内没有数据消费而处于等待状态的现象称作下溢。
Cil=B′/Tf
(2)
式中:Tf为缓冲区i下游任务的执行周期,ti为任务TPi的无中断执行时间。
2.3 数控系统任务优先级的动态设定
在图1所示数控系统数据信息流中,因为缓冲区下游任务更接近数控系统的执行端,下游任务的初始优先级比上游任务初始优先级高。当某缓冲区i到达下溢警戒线时,有可能会发生下溢危险。此时若该缓冲区下游任务优先级高于上游任务,有可能因为上游任务优先级较低而不能立即执行,如果系统中有优先级高于该缓冲区上游任务而低于下游任务的任务存在,则会导致上游任务较长时间处于等待状态,而下游任务将该缓冲区的数据完全消费光。因为下游任务的优先级高于上游任务,从而使下游任务因无数据消费而长期处于等待状态,而上游任务因优先级较低而得不到执行权,导致系统处于中断状态,在这种情况下应该调整系统缓冲区上下游任务的优先级,使上游任务的优先级暂时高于下游任务的优先级,从而增加缓冲区上游任务数据的产生量。如果此时下游任务优先级已经低于上游任务,则启动周期调整程序。
当某缓冲区i到达上溢警戒线时,有可能会发生上溢危险,此时应该减少缓冲区i上游任务数据产生的速度,增大缓冲区下游任务数据消费的速度。其方法为:
(1)检查缓冲区i下游任务的优先级是否高于上游任务的优先级,如果不是调整缓冲区上下游任务的优先级,使缓冲区下游任务的优先级高于上游任务的优先级。
(2)如果下游任务的优先级已经高于上游任务的优先级,则检查上一缓冲区i+1的上游任务优先级是否高于下游任务的优先级,目的是暂时将数据流拦截在缓冲区i+1,减少缓冲区i的数据来量,如果不是则调整缓冲区i+1上下游任务的优先级,使缓冲区i+1上游任务的优先级高于下游任务的优先级。
(3)如果缓冲区i+1不需要调整,则启动周期调整程序。
任务优先级动态调整算法:
缓冲区i下游任务优先级为Pi,缓冲区i上游任务优先级为Pi+1,上一缓冲区i+1下游任务的优先级为Pi+1,上一缓冲区i+1上游任务的优先级为Pi+2,任务总数N。
Function_Adjust()
{
for( i=0; i { If(Cit { If(Pi>Pi+1) {调整缓冲区i上下游任务优先级,使Pi else {启动周期调整程序;} } If(Cit>Cih):到达上溢警戒线 { If(Pi {调整缓冲区i上下游任务优先级,使Pi>Pi+1;} else { If(Pi+1> Pi+2) {调整缓冲区i+1上下游任务优先级,使Pi+1< Pi+2;} else {启动周期调整程序;} } } } 2.4 数控系统的任务周期自适应调整 调整任务周期的目的是预防缓冲区溢出,保证加工的正常进行。对于数控系统而言,在一次加工的过程中加工速度往往相对稳定,所以数控系统信息流的末端消费数据的速率相对稳定。任何一个缓冲区,上游任务离数控系统信息流的末端更远,所以调节上游任务的周期比调节下游任务的周期更有利于保证数控系统的稳定加工。 (3) (4) 在上述周期调整公式中,所选取的观测时间段t越短越安全。但t取值太小则一次调整的幅度过大,则会频繁启动任务周期调整,系统开销过大。若所取观测时间段t太长,则有可能会在时间t内发生溢出的危险。理想状态是所选取的时间t正好使缓冲区不发生溢出。但实际情况下数控系统的一些任务是不确定的,所以不可能算出t的精确值。一种较好的解决途径是采用统计的方法来确定观测时间t,因为根据数控系统的特点,引起数控系统负载波动的主要原因是随机突发任务,因此观测时间t也是一种随机变量。 利用时间系列模型可以较好地根据已经发生的K个时序变量预测下一个时序变量,因此利用时间系列模型来确定观测时间t,根据已经实际发生的一系列周期调整间隔时间t,预测下一个观测时间。实践证明,利用时间系列模型可以达到比较好的效果。时间系列模型建模及预测步骤如图4所示。 2.5 周期自适应调整算法的验证 对数控系统周期自适应调整算法进行仿真验证,在验证中将CPU的利用率上限Up设定为95%。验证方法为:在数控系统正常任务的基础上,每隔100ms触发一个突发实时任务,每隔5ms采样一次CPU的利用率,每隔100ms统计一次在该100ms时段内数据发生上溢和下溢的次数,结果表明CPU每次触发突发任务后15ms内利用率就能够快速收敛稳定到85%左右(见表1),到了0.5s以后就基本不会发生数据的上溢和下溢(见表2)。 表1 CPU利用率统计表 时刻/ms05101520253035CPU利用率/%6586958986848586时刻/ms100105110115120125130135CPU利用率/%9591868584868685时刻/ms200205210215220225230235CPU利用率/%9490878584868585 表2 数据溢出统计表 时刻/ms100200300400500600700800上溢次数04311000下溢次数05311000 (1)自适应调度框架动态设定系统任务优先级和任务的执行周期,有效地提高了系统CPU的利用率,提高了数控系统的加工速度和质量。 (2)采用数据缓冲区的结构,使数控系统各环节的任务不必严格按照固定的时序执行,降低了整个系统实时性的要求,也不会因为某一个环节的数据中断而导致加工过程的停止。采用“时间系列”模型预测任务周期观测时间“t”,能够较好地预防数据信息流的上溢和下溢,使系统在很短时间内收敛到稳定状态。 [1]郭伟.基于全分布式数控系统的自治式控制单元及关键技术研究[D].上海:上海交通大学,2008. [2]周刚,邬义杰,潘晓弘.数控系统软件模块实时调度方法[J].机械工程学报,2009(1):162-166. [3]梁宏斌,王永章.基于Windows的开放式数控系统实时问题研究[J].计算机集成制造系统,2003(5):403-406. [4]谢经明,周祖德,陈幼平,等.基于现场总线的开放式数控系统体系结构研究[J].华中科技大学学报,2002(4): 1-4. [5]姚鑫骅,潘雪增,傅建中,等.数控系统的混合任务模型及其最优调度算法研究[J].浙江大学学报:工学版,2006(8):1315-1319. [6]郑飞,王时龙,简毅.可重构分布式数控系统的设计与实现[J]. 计算机集成制造系统,2008(4):637-643. 如果您想发表对本文的看法,请将文章编号填入读者意见调查表中的相应位置。 Research on adaptive scheduling framework for distributed NC system FENG Ning (Guangdong Vocational College of Mechanical & Electrical Technology, Guangzhou 510515, CHN) An “adaptive scheduling framework for distributed CNC system” is proposed. The scheduling framework utilizes comprehensively "CNC system task dynamic priority setting" and "CNC system task period adaptive adjustment". In " CNC system task period adaptive adjustment", data stream buffer overflow and underflow warning area are set dynamically, "time series model" is used to predict the observation period of time "t", it can well prevent flow data overflow and underflow, enables the system to converge to stable state in a short period of time, and effectively improves the machining speed and quality of the CNC system. distributed CNC system; adaptive scheduling framework; information flow; time series model TH29 A 10.19287/j.cnki.1005-2402.2016.12.029 冯宁,男,1971年,硕士研究生,讲师,工程师,专业主任,主要研究方向为数控系统、机电一体化技术,已发表论文6篇,著作3部。 (编辑 李 静) 2016-05-10) 1612373 结语