当前位置: 首页 > 科技观察

基于RT-Linux的开放式数控系统软件平台研究

时间:2023-03-20 01:50:04 科技观察

1引言20世纪90年代以来,数控技术发展的一个重要趋势是数控系统的开放性。目前,开放式控制系统研究方兴未艾,全国都在加紧研究制定开放式数控系统平台标准、规范和相关产品的开发。开放的数控系统允许用户根据需要自由选择和配置标准的硬件和软件模块,实现系统集成,或在开放平台的基础上开发特定的功能模块,形成适合需要的专用系统。OpenCNC系统具有以下基本特性:互操作性:提供标准的数据格式、通信和交互机制;可移植性:系统可以运行在不同的软硬件平台上;可扩展性:允许用户扩展或削减系统;互换性:系统的功能模块可以根据需要进行更换。开放式数控系统不需要依赖特定的软硬件平台,因此选择通用的开放式系统平台是实现数控系统开放性的重要前提。工控机可作为其散热技术和稳定的性能在控制领域得到广泛应用。PC的开放式体系结构也为数控系统提供了良好的开放式硬件平台。数控系统的开发是在工业PC机的基础上进行的。这已成为大家的共识,但在PC平台上,数控系统的多任务特性和实时性要求限制了通用操作系统如DOS、Windows等在数控系统中的应用,而在专用实时操作系统,虽然开发数控系统比较方便,但价格昂贵,不利于数控系统的开放。近年来,随着Linux操作系统的快速发展,其许多优秀的特性得到体现,促使了RT-LinuxRealTime-Linux)的出现,使CNC系统可以建立在real-Time的基础上。timeLinux并保留了Linux的大部分好的特性,稳定性也相当不错,这为现代数控机床的网络化和开放性提供了条件。2国内外系统近年来,世界发达国家纷纷采取措施开发和研究开放式数控(ONC:OpenNumericalControl)系统,世界上许多控制器制造商也推出了自己的开放式数控系统。控制系统,如惠普的OAC500和DelatTau的PMAC-NC等。目前国际上权威的开放架构控制器标准规范有3种:(1)OMAC(OpenModularArchitectureController):由美国克莱斯勒、兆特和通用汽车公司NGC(NextGenerationController,1989)开发)基于联合提案。由于OMAC的成员是控制器的使用者而非开发者,决定了其产品化和实用化的步伐不可能很快。事实上,美国业界认为OMAC是一种设计理念而非控制器的特定标准,其宗旨是“BuyAnywhere,UseAnywhere”。应用OMAC定义的标准API即可实现“即插即用”的功能,只需设计其具体的实现方法即可。从OMAC提出的整体结构分析可以看出,虽然其灵活性高,但由于过于注重功能的分类而不是资源的整合,系统独立性降低,维护困难。(2)OSEC(OpenSystemEnvironmentforController):1994年由东芝机械公司、丰田机械和马扎克三大机床制造商、IBM、三菱电子和SMLInformationSystems共同提出。其宗旨是开发基于PC平台和开放式架构的高性能价格比的新一代数控系统,以适应瞬息万变的市场需求。在硬件方面,OSEC采用PC+控制卡的结构,有利于实现分层、模块化、灵活配置,可充分利用现有PC资源,从而有效缩短产品开发周期,可操作性强.性别。可以说,OSEC采用的是一种比较现实和折衷的方法,因此其体系结构仅限于对数控系统的直接描述,适应性不够强。(3)OSACA(OpenSystemArchitectureforConholwithinAutomation):由欧盟于1992年提出。OSACA的目标之一是使自己成为自动化领域的通用国际标准,因此它涵盖了整个自动化领域从开始。OSACA借鉴了ISO的OSI参考模型,通过对控制系统的详细分析,提出了分层平台+结构功能单元的框架。该标准有利于实现计算机硬件的独立性和操作系统的独立性,但并没有完全解决数控中大量存在的机电设备的独立性。同时,该项目由于规模大、参与者要求高,发展缓慢。以上三种标准规范尚未完全发展到市场,标准本身也还在不断完善和完善的过程中,三者也相互借鉴。与国外企业相比,中国企业在数控方面的研究起步较晚。国内虽然已经有华中Ⅰ、中华Ⅰ、行人Ⅰ、六人Ⅰ等开放式控制系统,但大多是建立在DOS操作系统平台或Windows操作系统平台上,还有一些自主研发的专用实...时间操作系统。从数控系统的发展趋势来看,它们尚不具备开放式数控系统的本质特征。各系统采用的体系结构不一致,仍然自成一体,相互之间缺乏兼容性和互换性,各系统的软硬件不具备可移植性和互操作性。3实时Linux操作系统的结构和实现原理与Windows相同,Linux本身不是实时操作系统,不适用于实时性强的工控环境。但Linux是自由软件,其源代码是开放的,这使得Linux内核可以在保留大部分功能的前提下修改为实时操作系统。到目前为止,世界上主要有两家公司在Linux平台下开发通用实时系统:最干的是美国新墨西哥理工学院开发的Linux实时内核,即RT-Linux,另一个是意大利米兰DIAPM基于RT-Linux开发的基于Linux平台的实时应用接口,即RTAI。RT-Linux操作系统的基本工作原理是:通过保留基本的Linux内核来实现Linux操作系统提供的基本功能;避免大规模的结构改造,只需要以很小的代价重新设计一个实时内核,就可以达到很强的实时性。因此,可以利用Linux系统中丰富的中文图形环境、TCP/IP网络等编程资源,实现CNC设备所需的底层任务创建、底层任务队列响应、中断任务安装等所有实时功能,并中断任务操作。实时Linux系统中断可以分为两组:一组由常规Linux内核控制,另一组由实时内核控制,中断请求首先指向实时内核,过滤;如果中断是实时内核中断,则实时中断处理程序继续执行;如果是常规Linux内核中断,则设置标志位等待处理,只有当没有执行实时中断时,才转入常规Linux中断处理程序。通过这种方式,实时内核可以随时中断传统的Linux操作系统来执行关键的实时任务。此时,常规Linux内核作为实时内核的最高优先级运行。当有更高级的实时任务请求处理时,剥夺常规Linux操作系统的运行权,调用相应的实时任务处理程序。在极端情况下,系统可以切断实时内核与常规Linux操作系统的连接,优先保证系统强大的实时性。RT-Linux提供了两种通信机制:一种是FIFO,另一种是共享内存。非实时应用程序和进程通过FIFO和共享内存访问数据,然后将数据放在另一个FIFO和共享内存中,供RT-Linux应用程序访问。RT-Linux操作系统的结构和通信如图1所示。图1RT-Linux操作系统结构图4基于Linux的开放式数控系统软件结构基于Linux的开放式数控系统符合国家标准《械设备一开放式数控系统一总则》GB/T18759.1-2002)并满足通用规则中数控系统开放性的定义第二层次:控制装置允许以明确固定的拓扑结构更换和添加??数控核心中的特定模块,以满足数控系统的特殊要求用户。(1)ONC系统软件总体结构按照一般原则,CNC软件可分为三个层次:基础软件平台、应用平台和应用程序。系统软件将提供实时多任务API、文件系统、通用网络API、各种设备驱动API等接口。应用平台除了离散点VO控制API、传感器API、位置控制器API等接口外,还可以通过系统软件平台提供的API集成用户自定义的功能组件接口。应用程序层包括过程控制、人机界面和系统集成及组态支持环境三部分。过程控制包括G代码甚至其DNC组件和PLC组件。人机界面部分包括状态显示、文本编辑器、MDI组件、自诊断组件、网络通讯组件、数据通讯操作、通用菜单等组件。系统集成和组态支持环境为用户提供了一个方便易用的数控系统组态和安装环境。基于RT-Linux的数控系统软件结构如图2所示,其应用程序分布在实时区和非实时区。实时任务是一个可以由多个线程组成的内核任务,工作在操作系统核心态的实时区,调用实时核心提供POSIXPoitahle操作系统接口)real-时间标准接口函数和扩展接口服务以获得所需的实时功能。由于实时任务需要使用有限的系统资源,并且要求工作速度快,所以往往进行简单的实时处理。位于非实时区的用户进程可以利用传统Linux操作系统提供的大量资源,如:网络功能(NetworkFunction)、图形功能(GraphicsFunction)、窗口系统(WindowsSystem)、数据分析包((DataAnalysis)Packages)、Linux设备驱动程序(LinuxDeviceDivers)和标准POSIXAPI等。图2基于RT-Linux的开放式CNC系统软件结构图(二)ONC软件模块划分系统ONC系统是一个完全模块化的系统,其结构和模块结构具有互换性、可扩展性、互操作性和可移植性。本研究是在对当前国内外数控系统和数控机床用户进行综合分析的基础上进行的。数控系统软件分为几个基本功能模块:伺服控制模块、人机交互界面模块、代码解释模块、插补模块、PLC控制模块(I/O控制模块)、通讯管理模块和状态监控模块,每个模块都以界面的形式向用户开放。通过界面参数和界面信息提示,用户可以掌握模块的开始、结束和运行过程。不同模块内部采用黑盒封装,对外接口开放。在此基础上,实现了新系统的构建,满足了ONC系统的要求。①伺服控制模块:根据I/O信号和插补运算得到的粗插补信息,控制机床执行机构实现精插补,按照NC指令指定的路径和速度运动。②人机交互界面模块:该模块主要完成系统运行前和运行中的参数设置。如菜单处理、程序编辑、参数设置和文件处理等。③代码解释模块:该模块主要根据输入的数控加工程序的语法规则检查用户编写的零件程序的语法和语义,以及进行解码工作,将NC源码中给出的各种处理信息分离提取成各种状态和数据,然后将处理后的结果存放在缓冲区中,等待其他模块的调用。④插补模块:负责数学预处理、加减速控制、插补、终点判别等,并将轨迹计算后的进给量输出给位置控制器。⑤PLC控制模块(I/O控制模块):该模块主要完成机床的辅助功能和机床的逻辑控制,同时完成机床报警错误、急停等紧急事件的处理。⑥通信管理模块:完成系统间的实时通信和网络通信。⑦状态监控模块:监控主轴转速、压力、切削力等。本文根据开放式控制系统的层次划分,将数控系统的应用软件模块分为应用单元和应用单元两部分。控制单元,如图3所示。在应用方面,元元为用户提供了图形化的应用软件环境和标准的系统功能,包括操作界面操作菜单、人性化显示、参数设置、文件管理、加工编程等)。控制单元相当于一个高效的NC-PLC核心,完成基本的CNC功能,包括译码、数学预处理、插补、I/O处理、实时状态监控等。根据不同的实时要求任务,控制单元分为实时任务和非实时任务。编译、预处理、状态监控等实时性要求不高的任务在非实时域执行,而实时性要求高的部分任务如插值、I/O处理等在实时领域。RT-Linux按照优先级统一调度实时任务和非实时任务。图3开放式数控系统软件模块结构5结语目前,基于RT-Linux的开放式数控系统平台以其优良的实时性、开放性和稳定性,在数控制造领域赢得了越来越多的关注。该研究起步较晚,但前景广阔,进展迅速。如果能够及时开展基于RT-Linux的开放式计算机数控系统的研究,将全面提高我国的??数控技术水平。