改编自:《新一代智能化数控系统》(作者:陈吉红,杨建中,周会成)
1)开放式数控系统定义
目前,开放式数控系统还没有公认的统一定义。IEEE对其定义为“开放式数控系统应提供这样的能力:来自不同厂商的,在不同操作平台上运行的应用程序都能够在系统上实现,并且该系统能够和其他应用系统协调工作。”本文作者根据自身的研究工作,并结合本书内容,对开放式数控系统给出如下定义:开放式数控系统本质一个具备软件平台化、功能模块化、界面组态化内部属性和可移植性、可伸缩性、互操作性外部特征,支持用户根据需求进行数控系统二次开发,并提供用户应用软件的运行、管理平台。因此,开放式数控系统的核心是支持用户根据需求进行二次开发,增加定制化功能,提升机床的性能。
2)开放式数控系统的内部属性
要实现数控系统的开放,使其具备良好通用性、互换性,并且使用户无需深入到底层硬件集成、操作系统调度等专业性要求很强的开发任务中,数控系统需具备软件层次化、功能模块化、界面组态化的内部属性。这些内部属性是数控系统厂商为实现数控系统的开放而对数控系统体系内部架构的设计。
(1)软件层次化
数控系统软件不仅包含解释、插补及运动控制等功能的实现,还需具备设备驱动、实时内核及进程调度等基础功能。但是,用户进行数控系统二次开发目的是改进现有功能或增加新功能,其工作并不需要涉及硬件读写、内核管理等基础功能。因此,需要对软件进行层次化划分,使用户进行二次开发时只需要关注其所需功能的接口层,不需要了解基础功能的实现和系统调度等任务,在降低用户开发难度的同时,在一定程度上保障系统的可靠和稳定。
为了实现系统软件的分层,首先需要把软件从硬件中分离出来,降低硬件的可靠性受用户加入功能的影响的可能,于是需要建立驱动层。其次,数控系统软件随着功能增多,变得越来越复杂,为了不让用户陷入到底层软件的开发当中,将软件层次进一步划分出内核层和应用层,用户只需要通过应用层的接口进行二次开发,不需要直接在内核的层面进行开发。
综上所述,可以将数控系统软件平台从技术层面分为3个层次:驱动层、内核层、应用层,如图1所示。
图1 开放式数控系统软件平台架构
a.驱动层:驱动层一般由硬件抽象层(HAL)、板级支持包(BSP)和驱动程序组成,是数控系统软件中不可或缺的重要部分,它的作用是为上层程序提供外部设备的操作接口,并且实现设备的驱动程序。上层程序在进行硬件操作时,不需要了解设备的具体细节,只需要调用驱动的接口即可。
b.内核层:内核层即嵌入NC内核的操作系统层,包含实时内核、进程调度、NC内核功能模块、文件系统、图形用户接口和网络系统等。在嵌入式系统中工作的操作系统称为EOS(Embedded Operating System,嵌入式操作系统),EOS在数控系统中主要作用是处理由内部或者外部事件引发的中断、设备驱动层的激活以及执行任务的调度,它并不执行具体的应用功能,如运动控制、界面显示等具体功能是由应用层的应用软件实现的。
c.应用层:应用层软件主要指多个相对独立的应用任务,每个应用任务完成特定的工作,如I/O任务、计算任务、通信任务、人机界面等,由操作系统调度各个任务的进行。它由基于操作系统的应用程序组成,用来完成对被控制对象的控制功能。应用层是面向被控制对象和用户的,为了方便用户的操作,往往需要友好的人机界面。应用程序运行在操作系统之上,通过对操作系统的接口函数的调用,实现系统如采集诊断、运动控制等具体的应用功能。各种任务以应用程序的形式集合在应用层,服务于不同的功能模块。在操作系统的支持下,每个任务都被分配到一个优先级,根据优先级别的高低,动态切换任务,以保证实时性的要求。此外,操作系统根据每个任务的要求,进行资源管理,合理分配资源,实现消息管理、任务调度和异常处理等任务。
数控系统是一个专用性很强的多任务调度运行系统,按照任务运行实时性强弱的划分方法,一般将数控系统的任务划分为管理任务和控制任务两大类。如图2所示,其中控制类任务的工作与数控加工直接相连,对实时性要求高,而管理类任务的工作对实时性的要求相对较低。系统的控制任务又可细分为位置控制、轨迹插补、指令译码、I/O控制、误差控制、状态实时监控与故障诊断等子任务;系统的管理任务则包括人机交互管理、显示管理、数据管理、通信管理和网络管理等子任务。而且,在实际的开发设计中可根据需要对各个子任务进行进一步细分,形成一个任务集合,任务集合中的任务都必须根据外部事件及时被激活运行,同时结合具体的加工情况,由操作系统统一调度,动态地对任务进行优先级控制,以适应不同加工任务的要求。当有高优先级的任务进入任务列表时,内核通过优先级抢占调度方式切换到高优先级的任务;当同等优先级的多个任务进入任务列表时,内核通过时间片轮转调度法实现多任务的并发控制。操作系统具体的多任务调度机制以在上一小节给出详细解释。
图2 数控系统应用层任务划分
通过系统软件的分层可以实现“高内聚”和“低耦合”,每层间功能上独立,减少依赖关系,扩展性、可维护性增强。另外每层之间实现指定功能,与其他层之间通过指定接口建立联系,可移植性大大提升。
(2)功能模块化
对数控系统的功能进行模块化开发,使其基础软件模块具有可重用性,提高系统的可维护性、可扩充性是开放式数控系统实现开放的必要条件。数控系统功能模块化也称软件芯片化,是指采用面向对象的技术,对数控系统的功能划分,把一些通用模块做成独立的可重用的对象类,建立类似于硬件芯片的数控系统软件芯片库。当开发新的数控系统时,只需从软件芯片库中取出相应的模块加以组合即可,必要时加以扩充,而无需从头开发整个系统, 这样便改变数控系统的封闭式设计,提高了整个系统的灵活性,实现了数控系统开放性设计、资源得到重用。利用软件芯片构建数控系统的过程如图3所示。
图3 基于软件芯片库的数控系统的构建过程
a.软件芯片的特点:内部黑箱封装;接口标准规范化;多态性及继承性。
b.功能模块的划分:人机交互界面模块;编码译码模块;刀补预处理模块;轨迹插补模块;轴伺服控制模块;I/O模块。上述几个基本模块具有互操作性、可移植性和可扩展性,且是构成CNC系统最小的配置模块,可作为数控功能的基本划分,作为最基本的CNC软件芯片,此外还有刀具管理、数据库管理等芯片,软件芯片的功能与数量的定义是动态的,随着应用需求的变化和CNC技术的发展,可能需要增加新的软件芯片。软件芯片之间协作关系如图4所示。
图4 开放式数控系统软件芯片对象协作关系
(3)界面组态化
人机界面是人与数控系统之间传递、交换信息的媒介,是数控系统的重要组成部分,人机界面的二次开发是大部分用户完成可视化内容的个性化定制及开发的重要手段。目前,数控系统的通用人机界面已经具备了比较通用、完备的功能,能够实现监控、诊断、编程、设置等操作。但是,这种标准化的人机界面不能满足用户对特定加工工艺的个性化定制需求,另外,用户提出新功能,数控系统厂家开发需要一定的开发周期往往不能及时响应市场需求。因此,需要开发一种数控系统人机界面二次开发平台,不仅满足用户对数控系统的专业化、个性化需求,而且满足开放式数控系统的便于扩展、对用户开放等需求。
对于这种需求,人们提出了组态的概念,组态的核心思想就是以图形可视化方式将人机界面以功能组件的形式,通过特定的方式配置组织起来,实现人机界面灵活地、可扩展地开发。组态技术可以以图形可视化的方式,通过功能组件的组合配置,以组态的形式快速灵活地构建具有高可扩展性的人机界面。总的来说人机界面的组态技术主要有两个特点:
一是图形化的界面构建能力:组态化界面开发是以图形可视化的方式添加和配置界面图元来构建完成的。组态要求部署后的组态界面应该和开发过程中的组态界面保持“静态的一致性”,以实现所见即所得的界面开发理念。
二是组件式的功能配置:组态人机界面应该由独立的功能单元组合而成,这些功能单元组件可以是图元、设备或者功能模块等,通过“配置”的形式将这些功能单元的组合即可完成人机界面构建,同时这些功能单元之间的组合形式应该是低耦合,可扩展的。一般来说,组成数控人机界面的主要元素有图形、控件、变量、设备、数据库、逻辑命令,为了实现数控人界面组态过程中的灵活性,降低各个组件和元素之间的耦合性及HMI 结构的复杂性,对数控人机界面进行模块化划分。以功能性为划分依据,采用软件设计中常用的 MVC 系统框架(model-view-control 框架),将组成计算机软件的数据、图形以及逻辑控制部分抽象剥离出来,以到达降低系统耦合性和提升扩展性的目的。最终,将人机界面的基本元素划分为数据,图形和交互控制三个模块。其中数据模块对应于人机界面的各种数据源,为视图的显示提供数据, 主要包括机床运行与加工过程中的各种数据。图形就是数控 HMI 在屏幕上的表示形式,主要包括构成人机界面的基本图形即常用组件等;交互控制则主要负责人机界面运行过程中的逻辑控制及用户交互。
组件化是对组成人机界面功能单元进行相应的处理,将相同或相似的功能单元进行提炼与抽象,转化为具有标准接口、可复用的功能组件的过程。如图5所示,组件化的步骤主要包括单元识别、单元聚类以及单元集概括抽象和组件封装。基本单元识别即将组成系统的基本单元,依据功能、逻辑和结构方面的差异,通过相应的识别方法,按照一定划分粒度,将具有独立功能且与其他基本单元低耦合的功能单元提取出来。在功能单元的识别过程中,划分粒度对最终人机界面的灵活性和扩展性起着决定性作用。粒度过大将导致单元组件可配置性差,组态界面的整体灵活性不高;而粒度过小,则会导致界面系统过于复杂,可维护性性不够。因此划分粒度应根据功能单元的特点及经验进行选择。
图5人机界面组件化基本过程
基本功能单元识别完成后,将一些在功能、结构上或逻辑上具有一定相似性的单元进行分类,构成能够实现特定功能的单元集,提升单元集内元素的联系性,降低单元集之间元素的相似性和耦合性,这个过程便称为单元聚类。单元聚类后,利用面向对象软件开发中类的思想,对这些单元集进行概括和总结,抽象成为单元“类”,并提炼出单元类的根本属性,并将其参数化,添加用于组件组合的外部接口,最后封装成具有特定功能,可复用且具有标准可配置参数与组合接口的单元组件。
以上两部分对封闭式和开放式数控系统的内部属性进行了分析,从用户的角度来讲,封闭式和开放式数控系统在特征上也有所区别。表2给出了封闭式和开放式数控系统的具体特征的详细对比。
表2 封闭式和开放式数控系统的外部特征
通过以上对比分析,我们可以知道传统封闭式数控系统具有可靠性高、成本较低的优点,对于典型量大面广的场合还是以传统数控系统的应用为主。但是,随着科技的进步和其它相关支撑技术的发展,开放式数控系统取得了长足发展,传统封闭式数控系统的这些优势已经不再明显。开放式数控系统允许用户根据自己的实际需求进行选配、集成、更改或者扩展系统的功能以快速适应不同的应用场合。
一般来说,开放式数控系统应具有以下基本特征:
(1)开放性:提供标准化环境的基础平台,允许不同功能和不同开发商的软、硬件模块介入。
(2)可移植性:不同的应用程序可运行于不同生产商提供的系统平台,同样的,系统软件也可以运行于不同特性的硬件平台。通过标准的设备接口,各功能模块能够正常运行在不同的硬件平台上。
(3)可伸缩性:增添或减少系统的功能仅表现为特定功能模块的装载或卸载。允许用户结合实际需要进行二次开发,甚至允许用户将自行设计的标准功能模块集成到数控系统内部,从而实现深层的二次开发。
(4)互换性:不同性能、不同可靠性和不同能力的功能模块可以相互替代,而不影响系统的协调运行。
(5)相互操作性:提供标准化的接口、通信和交互模型。不同的应用程序模块通过标准化的应用程序接口运行于系统平台之上,不同的模块之间保持平等的相互操作能力,协调工作。标准化的接口既包含硬件接口,如RS232、USB、VGA、以太网等接口;也包含软件接口,即通信协议,如数控系统与伺服的总线协议NCUC、EtherCAT、Profinet IRT、Sercos III等,以及不同类型数控系统之间通信语言,如NC-Link协议。
全部0条评论
快来发表一下你的评论吧 !