基于调度软件的开放式数控系统体系结构的研究*
2014-04-16房立金王国勋
□ 李 丽 □ 房立金 □ 王国勋
1.沈阳城市建设学院 交通与机械工程系 沈阳 110167
2.东北大学 机械工程与自动化学院 沈阳 110819
3.沈阳理工大学 机械工程学院 沈阳 110159
数控系统体系结构是数控技术的关键技术之一。目前多数数控系统普遍存在一些缺点:①系统硬件结构封闭且硬件平台缺乏柔性;②系统软件不开放,可重构性差;③在编程语言方面,仍然使用G/M代码,它只包含刀具运动信息,不包含任何其它信息,无法与CAD/CAM实现集成,无法实现智能化,而且加工代码与其它系统不兼容。为了解决这些缺点,近年来,数控系统体系结构的研究逐渐成为研究热点。李斌[1]对基于构件的开放式数控系统进行了研究。游有鹏[2]、李宏伟[3]、谢经明[4]、Z D Zhou[5]对基于现场总线的开放式数控系统进行了研究。 陈良骥[6]等人对基于PC平台研究了开放式系统的软硬件体系结构。X W Xu[7]提出了一种基于STEP-NC分布式支持互操作的数控系统体系结构。Matthieu Rauch[8]等人针对智能制造过程提出了基于STEP-NC的控制器结构。S H Suh[9]对智能数控系统的框架和数据模型进行了研究。以上研究只针对数控系统本身体系结构,而未考虑开放式数控系统的复杂性问题。
随着STEP-NC标准的制定和日益完善,基于STEP-NC的开放式数控系统能够解决当前数控系统所存在的问题[10],因此,研究基于STEP-NC的开放式数控系统对于数控技术的发展具有重要意义。笔者从数控系统硬件平台、软件结构、加工数据模型3个方面进行了深入研究,提出了一种既兼容STEP-NC标准、又基于调度软件的数控系统体系结构,在满足数控系统开放性需求的同时,简化了数控系统的开发任务。
1 STEP-NC标准简介
STEP-NC(STandard for the Exchange of Product Model Data for Numeric Control),全称为“数控领域的产品模型数据交换标准”,它是产品模型数据交换标准STEP (STandard for the Exchange of Product Model Data)标准向数控领域内的扩展。STEP-NC的目的是实现CAD/CAM与CNC系统之间,以及不同CNC系统之间的信息交换和共享。与G/M代码不同,STEPNC是基于完整描述加工对象和现场加工过程的模型,包括零件信息描述、工件毛坯信息描述、刀具信息描述、加工操作和策略描述等。通过易于理解的、易于智能诊断和控制的描述方式,详细而简洁地描述零件信息及其制造过程。STEP-NC的出现,从根本上改变了数控系统开放式、智能化发展的现状,实现了CAD/CAM/CNC的信息集成。
2 数控系统开放性需求分析
使用G/M代码的数控系统与上游CAD/CAM数据格式不兼容,信息只能实现从CAD/CAM到数控系统的单向流动,而且容易造成数据丢失,无法实现智能加工。而以STEP-NC作为数据模型的控制系统与上游CAD/CAM的STEP格式兼容,设计数据可无损地传输到CNC系统,并且可实现数据的双向交换,满足智能化加工的信息需求。因此,对于开放式智能化的数控系统,必须满足对STEP-NC数据格式的兼容。
要实现数控系统真正的开放,必须在数控系统软件、硬件和加工数据模型3个方面做到真正的开放,需满足以下要求。
(1)系统软件的结构必须具有开放性,并且允许用户通过较简单的方法进行二次开发,以便用户定制自己的特殊功能,同时可减轻设计负担,提高设计效率。
(2)在数据加工模型方面,必须使用一种新的加工数据模型代替传统的G/M代码,实现CAD/CAM/CNC的无缝集成与数据共享,并且为实现数控系统的智能化加工奠定基础。
(3)在数控系统的硬件平台方面,目前比较可行的方法是基于PC平台实现,可以充分利用PC软硬件发展的最新成果,同时具有一定的开放性。
3 基于调度软件的开放式数控系统的构建
▲图1 STEP-NC数控系统层次结构
▲图2 基于调度软件的数控系统层次结构
根据开放式数控系统的需求及特点,本文提出了既兼容STEP-NC标准、又基于调度软件模块的开放式数控系统的体系结构,与传统数控系统不同,兼容STEP-NC标准的开放式数控系统相当于增加了CAPP/CAM系统的部分功能,因此具有更多的模块,且模块与模块之间相互关联,形成复杂的系统结构。在这些模块中,有强实时性模块、弱实时性模块和非实时性模块,系统需对这些模块进行实时任务调度,以实现数控系统的功能,因此系统的控制任务更加繁重。为了减轻系统的控制任务,简化系统设计,本文提出调度软件的概念,负责系统中各模块的实时调度与任务处理。
3.1 软件系统结构
数控系统通常可分为4个层次:智能控制层、运动控制层、设备控制层、物理设备层,如图1所示。其中智能控制层和运动控制层包含插补、加工过程控制、智能控制、轨迹规划等软件模块,设备控制层负责各运动轴伺服控制以及PLC、输入/输出控制等,物理设备层是指数控机床。
在软件模块层和设备控制层之间插入调度软件模块,使软件模块和设备控制层(运动控制模块)、数控机床分离,其结构示意如图2所示。调度软件模块负责管理和调度所有软件模块,并通过运动控制模块控制机床运动完成特定的任务。
调度软件模块的管理及调度功能的实现是通过3个子模块实现的,即任务管理调度模块、软件模块信息库、任务序列库。任务管理调度子模块负责管理和调度各个软件模块;软件模块信息库中保存了本系统中各个软件模块的信息,包括模块名、模块位置信息、输入/输出参数等信息;任务序列库中保存了完成某个具体任务所需的所有软件模块和执行顺序信息。软件模块信息库和任务序列库都由任务管理调度模块访问和维护,当任务管理调度模块接收到外部输入的某一任务时,从任务序列库中提取出任务序列,再从软件模块信息库中提取信息,执行相应的软件模块,完成给定任务,如图3所示。下面分别对3个子模块进行详细论述。
3.1.1 软件模块信息库
▲图3 调度软件功能结构图
软件模块信息库中存储了整个系统中所有软件模块的信息,为了便于查找与调用,每个模块存储格式为名称、IP地址、输入/输出参数、功能说明等。每个软件模块都是独立的,可能来自不同的供应商,软件模块具有两个特征:①可替换性。每个软件模块可被实现相同功能的其它模块代替,如插补模块,使用DDA插补算法的插补模块可被使用Bresenham算法的插补模块替换。②支持网络化调用。软件模块可通过网络被其它系统的调度软件模块调用,为了满足开放式数控系统对于可重构性的需求,软件模块信息库中的软件模块可进行添加、删除、替换等操作。因此,用户可使用已有的软件模块迅速构建出自己的数控系统,大大减少了数控系统开发周期,同时也简化了系统的开发流程。
3.1.2 任务序列库
任务序列库描述了怎样完成操作者或其它系统请求的任务,它描述完成给定任务的所有信息,包括软件模块的调用序列以及与运动控制卡及控制器、操作者的通信等信息。例如,操作者请求了一个零件的加工任务,则任务序列为智能控制软件模块负责加工轨迹规划,运动控制模块负责生成运动指令,运动控制卡负责执行加工程序驱动机床完成加工。
3.1.3 任务管理调度子模块
任务管理调度子模块实现对软件模块的管理、调用、调度等功能,管理功能体现为对软件模块信息库和任务序列库的管理和维护。当系统中添加新的软件模块时,任务调度子模块负责将该模块的信息按照一定的格式添加到软件模块信息库中,方便系统的调用,同时,将与新模块有关的任务序列进行更新或添加到任务序列库中。调用功能和调度功能是任务管理调度子模块的核心功能,分别介绍如下。
(1)调用功能。当系统要完成某项任务时,首先从任务序列库中查找完成该项任务所需的任务序列,然后从任务序列中提取需要执行的软件模块,执行该软件模块,完成所需任务。执行软件模块时,首先从软件模块信息库中查找该软件模块的信息,包括模块名、模块位置、模块输入参数等信息,然后将模块所需的信息传入,软件模块接收到输入参数后开始执行,最后将执行结果返回给任务调度管理子模块,任务调度管理子模块将执行结果输出给其它模块。以插补模块为例对调用过程进行说明,如图4所示。调度软件模块从软件模块信息库中查找插补模块信息后,将任务中的相关要求和参数传给插补模块,例如:模块名为插补,模块位置为10.98.24.2,表示该模块位于IP地址为10.98.24.2的主机上,单位为mm,对精度的要求为(0.1,0.1,0.1),刀具路径为从点(10,10,-10)到(15,15,-10)。插补模块接收到这些信息后开始执行插补运算,并将运算后的插补刀具路径返回给调度软件,调度软件模块将刀具路径信息再传给运动控制模块,运动控制模块驱动机床完成加工任务。
(2)调度功能。调度软件模块除了负责管理各软件模块外,还要完成对各模块的调度任务。任务调度分为两部分:弱实时任务调度和强实时任务调度。强实时任务调度由运动控制卡完成,弱实时任务调度由调度软件模块完成。弱实时任务调度是二级调度,即由调度软件模块对数控系统弱实时任务的优先级进行动态控制,而当任务被加载到PC的处理器后仍由操作系统完成。
3.2 系统硬件结构
传统的数控硬件系统其连接方式固定、封闭,不具备扩展性,且信息传输量小,不利于分布式控制,不能满足开放式数控系统的要求。根据开放式数控系统的要求,硬件结构必须满足以下几个条件:①在结构上采用总线式,方便扩展;②采用基于PC的结构,以方便使用计算机领域内的最新的软硬件技术;③系统配置方便;④具备与其它系统的通信能力,且能够传输较大的信息量。根据这一要求,基于PC的数控系统是目前实现数控系统开放化比较现实的途径,这种方法能够利用计算机的软硬件资源和PC机强大的数据处理能力,来实现数控系统的控制功能。同时,由于PC总线是一种开放性的总线,因此数控系统的硬件体系结构也就具有了一定的开放性、模块化等特点。开放式数控系统的硬件平台采用“工业PC+PMAC”的方式,以工业PC为主计算机,以PMAC运动控制卡为从计算机的主从式双处理器结构。两个处理器间通过PCI总线交换数据,共同管理整个数控系统。PMAC实现前台实时运动控制,负责实时任务,如插补计算、速度规划、实时刀具路径生成等;工业PC机实现后台管理及人机界面接口的各种操作,负责非实时任务,如HMI、任务规划、仿真、故障诊断等。
▲图4 软件模块调用过程
▲图5 开放式数控系统界面
▲图6 基于调度软件的开放式数控系统硬件实物图
4 系统实现
为了验证本文提出的系统结构,使用Visual C#开发了开放式数控系统的原型系统,其界面如图5所示。硬件系统如图6所示。实验中采用SU-15M教学用三轴铣床,图 6(a)显示了实验用机床实物图,图 6(b)显示了机床控制接线图,图6(c)显示了控制系统的接线图。实验结果表明,该系统结构是正确有效的。
5 结论
(1)在分析当前数控系统缺点的基础上,对开放式数控系统体系结构进行了需求分析,进一步提出了兼容STEP-NC标准的开放式数控系统的体系结构,并分别对硬件体系结构、软件体系结构和数据模型进行了详细阐述。
(2)提出了PC+PMAC运动控制卡的数控系统硬件体系结构,具有开放性好、柔性高、易于实现的优点,无需实时操作系统的支持,控制功能稳定、可靠,是目前较理想的开放式数控系统实施方案。
(3)提出了基于调度软件的数控系统软件体系结构,首先将数控系统各任务划分成软件模块,在软件模块和运动控制卡之间构建调度软件,调度软件负责管理和协调各软件模块的运行以及它们与运动控制卡的通信,还负责数控系统与其它系统进行互操作等。调度软件的引入,简化了复杂系统的控制任务,有利于构建出更加稳定、可靠的软件系统。
[1] 李斌.基于构架/构件复用的开放式数控系统研究[D].武汉:华中科技大学,2004.
[2] 游有鹏.开放式数控系统关键技术研究 [D].南京:南京航空航天大学,2001.
[3] 李宏伟.开放式数控系统分布式体系结构及其实现策略的研究[D].天津:天津大学,2005.
[4] 谢经明.基于现场总线的开放式数控系统研究[D].武汉:华中科技大学,2003.
[5] Z D Zhou, J M Xie, Y P Chen,et al.The Development of a Fieldbus-based Open-CNC System [J].International Journal of Advanced Manufacturing Technology,2004,23 (7-8):507-513.
[6] 陈良骥,李慧莹.基于TwinCAT平台的多轴开放体系结构设计与实现[J].机械制造,2013,51(3):6-9.
[7] X W Xu,S T Newman.Making CNC Machine Tools More Open,Interoperable and Intelligent-a Review of the Technologies[J].Computers in Industry,2006,57:141-152.
[8] Matthieu Rauch,RaphaelLaguionie,Jean-YvesHascoet.An Advanced STEP-NC Controller for Intelligent Machining Processes [J].Robotics and Computer-Integrated Manufacturing,2012,28:375-384.
[9] S H Suh,S U Cheon.A Framework for an Intelligent CNC and Data Model [J].International Journal of Advanced Manufacturing Technology,2002,19(10):727-735.
[10]周刚.基于STEP-NC的数控系统体系结构及其关键技术研究[D].杭州:浙江大学,2008.