本篇内容主要讲解“Linux的实现原理是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux的实现原理是什么”吧!
1 引言
90年代以来,数控技术发展的一个重要趋势是数控系统的开放化。目前,关于开放式控制系统的研究方兴米艾,全国都在抓紧进行开放式数控系统平台标准和规范的研究制定以及相关产品的开发。开放式数控系统允许用户根据需要自由选择和配置标准的硬件和软件模块,实现系统积本式”的集成,或者在开放平台基础上开发特定的功能模块,形成适合需要的专用系统。开放式数控系统具有如卜的基本特征:
互操作性:提供标准的数据格式、通信及交互机制;
可移植性:系统可运行不同的软硬件平台之上;
可扩充性:允许用户对系统进行扩展或裁减;
互换性:系统的各功能模块可以根据需要进行替换。
开放式数控系统要求不依赖于特定的软硬件平台,因此选择通用的开放系统平台是实现数控系统开放化的重要前提。工业PC以其成热的技术和稳定的性能已经在控制领域得到了泛应用,PC机开放的体系结构也为数控系统提供了一个很好的开放的硬件平台,在工业PC的基础上进行数控系统的开发已经成为大家的共识,但是在PC平台上,数控系统的多任务特性和实时性要求却限制了通用操作系统如DOS, Windows等在数控系统中的应用,而在专用实时操作系统上,虽然开发数控系统比较方便,但价格昂贵,并且不利于实现数控系统的开放化。近年来,随着Linux操作系统的迅猛发展,它的诸多优秀的特性得到体现,这促使了RT-Linux Real Time-Linux)的出现,这样数控系统就可以建立在实时Linux基础之上并且保留Linux绝大部分好的特点,稳定性相当好,这给现代数控机床的网络化、开放化提供了条件。
2 国内外系统的研究现状与趋势
近几年I日_界发达国家纷纷采取措施,进行开放式数控(ONC: Open Numerical Control)系统的开发和研究,世界上的许多控制器生产商也纷纷推出自己的开放式控制系统,如Hewlett-Packard的OAC500以及 Delat Tau公司的PMAC-NC等等。目前世界上具有权威性开放式结构控制器的标准规范卞要有三种:
(1)OMAC(Open Modular Architecture Controller):由美国克莱斯勒、招特和通用三大汽车公司在NGC (NextGeneration Controller,1989年)的基础上联合提出的。由于OMAC的成员是控制器的用户而不是开发商,从而也就决定了它产品化、实用化步伐不可能很快。事实上美国工业界认为OMAC是一种设计理念,而不是一种控制器的具体标准,其宗旨是“Buy Anywhere, Use Anywhere”。应用OMAC所定义的标准API可以实现节“plug & play”的功能,只须设计其具体的实现方法即可。从OMAC提出的整体式结构分析可知,虽然其灵话性较高,可是由于其过分注重功能的分类而非资源的整合,导致其系统独立性卜降,而且维护较困难。
(2)OSEC (Open System Environment for Controller):由日本东芝机器公司、丰田机器厂和Mazak公司三家机床制造商和IBM、三菱电子及SML信息系统公司于1994年共同提出的。其目的是开发基于PC机平台的、具有高性能价格比的开放式体系结构的新一代数控系统,以适应迅速变化的市场需求。在硬件方面,OSEC采用PC+控制卡的结构,有利于层次化、模块化、灵话配置的实现,可以充分利用现有PC机资源,从而有力地缩短产品的研发周期,具有较强的可操作性。可以说,OSEC采用的是一种较现实和折中的方式,所以它的系统结构只是局限于数控系统的直接描述,适应性不够强。
(3)OSACA(Open System Architecture for Conhol withinAutomation):由欧盟于1992年提出的。OSACA的目标之一,是使自己成为自动化领域的通用国际标准,故开始它就将研究范围涵盖了整个自动化领域。OSACA借鉴ISO的OSI参考模型,通过对控制系统的详细分析,提出分层平台+结构功能单元的架构。该标准有利于实现计算机硬件的独立性和与操作系统的无关性,可是对于数控中大量存在的机电设备的独立性的解决并不彻底。同时,该计划由于过于庞大,对于参与者要求过高,一直发展较慢。上述三种标准规范至今还未有完全成热的产品推向市场,而标准本身还在不断的改进与完善之中,且三者之间也相互借鉴。
相对于酉方国家的企业来说,我国企业关于数控方面的研究起步较晚,尽答目前国内已拥有开放性控制系统华中I型、中华I型、航人I型和流人I型,但大多是建立在DOS操作系统平台上或Windows操作平台,以及其他一些自行开发的专用实时操作系统之上,从数控系统发展的趋势来看,它们还不具备开放式数控系统的本质特征。各系统所采用的体系结构并不一致,仍是自成体系,相互之间缺乏兼容性和互换性,各系统软硬件不具备可移植性和互操作性。
3 实时Linux操作系统的结构与实现原理
和Windows一样,Linux本身不是一个实时操作系统,它不适用于实时性强的工业控制环境。但Linux是自由软件,它的源代码开放,这使得Linux内核在保留本身大部分功能的前提卜,可被修改成为一个实时操作系统。到目前为止,全球在Linux平台下开发通用实时系统主要有2家:最旱的是美国新墨西哥理工学院开发的Linux实时内核,即RT-Linux,另一个是意大利米兰DIAPM在RT-Linux的基础上开发的基于Linux平台的实时应用接口,即RTAI。
RT-Linux操作系统的基本工作原理是:通过保留Linux基本内核实现Linux操作系统提供的基本功能;避免大规模的结构改造,仅用较小的代价重新设计一个实时内核,以实现强实时性。因而可利用Linux系统中诸如中文图形环境、TCP/IP网络等丰富的编程资源,同时实现包括底层任务创建、底层任务队列答理、中断任务安装、中断任务运行等数控设备所需的全部实时功能。
实时Linux系统中断可划分为两组:一组由常规Linux内核控制,另一组则由实时内核控制,同时设置使中断请求首先从定向到实时内核中并加以过滤;如果该中断实时是实时内核中断,则由实时中断处理例程继续执行;如果是常规Linux内核中断则设置标志位等待处理,仅当没有实时中断被执行时,才转向常规Linux中断处理例程。通过这种方法,使实时内核可以随时中断常规Linux操作系统以执行关键实时任务。此时常规Linux内核作为实时内核的一个***优先级运行,当有任何更高级的实时任务请求处理时,就剥夺常规Linux操作系统的运行权,而转入相应的实时任务处理程序。在极端情况卜,系统可以切断实时内核与常规Linux操作系统的联系而优先保证系统的强实时性。
RT-Linux提供了两种通讯机制:一种是FIFO,另一种是共享内存。非实时应用程序和进程通过FIFO和共享内存访问数据,然后把数据放在另一个FIFO和共享内存中,供RT-Linux应用程序访问,RT-Linux操作系统结构及通讯如图1所示。
图1RT-Linux操作系统结构图
4 基于Linux的开放式数控系统软件结构
基于Linux的开放式数控系统符合《械设备一开放式数控系统一总则》GB/T 18759.1-2002)的国家标准,达到了总则对数控系统的开放程度定义了第二个层次:控制装置在明确固定的拓扑结构卜允许替换、增加NC核心中的特定模块以满足用户的特殊要求。
(1)ONC系统软件整体构架
根据总则,数控软件可分为基础软件平台、应用平台与应用程序三个层次。系统软件将提供实时多任务API、文件系统、通用网络API、各类设备驱动程序API等接口。应用平台除了包含离散点vo控制API、传感器API,位置控制器API等接口外,还可以集成用户更具系统软件平台提供的API自定义的功能组件接口。应用程序这一层含有过程控制、人机界面及系统集成与配置支持环境等三部分。过程控制包含G代码即使其DNC组件及PLC组件。人机界面部分包含状态泉示、文本编辑器、MDI组件、自诊断组建、网络通信组建、数据通信操作、通用菜单等组建。系统集成与配置支持环境给用户提供一个方便易用的数控系统配置与安装环境。基于RT-Linux的数控系统软件结构如图2所示,其应用程序分布在实时和非实时两个区域。实时任务是一种可由多个线程构成的内核任务,工作在操作系统核心态的实时区,调用实时核心提供POSIX Poitahle Operating System Interface}可移植操作系统界面)实时标准界面函数以及扩展接口服务来获得所需的实时功能。由于实时任务需利用的系统资源有限,且要求工作速度快,往往进行一邺简单的实时处理。而位于非实时区的用户进程可利用常规Linux操作系统提供的大量资源,例如:网络功能(Network Function)、图形功能(Graphics Function),窗口系统(Windows System)、数据分析程序包((Data Analysis Packages), Linux设备驱动程序(Linux Device Divers)以及标准的POSIX API等。
图2 基于RT-Linux的开放式数控系统软件结构图
(2)ONC系统的软件模块划分
ONC系统是全模块化的系统结构,模块组建具有互换性、伸缩性、互操作性和可移植性。本研究在对目前国内外若干数控系统和数控机床用户的需求进行全面分析的基础上,在应用程序层上又将数控系统软件划分为以卜几个基本的功能模块:伺服控制模块、人机交互界面模块、代码解释模块、插补模块、PLC控制模块I/O控制模块)、通讯答理模块和状态监控模块,各模块以界面的方式向用户开放,通过接口参数和界面信息的提示,用户可掌握模块的启动、结束和运作过程。不同模块的内部为黑箱封装,外部接口开放,并在此基础上实现新系统的构建,满足了ONC系统的要求。
①伺服控制模块:在由I/O信弓及插补运算得到的粗插补信息前提卜,控制机床执行机构实现精插补,按NC指令指定的路径和速度运动。
②人机交互界面模块:此模块主要完成系统运行前和运行中的参数设定。如菜单的答理、程序的编辑、参数的设定和文件答理等工作。
③代码解释模块:该模块主要根据输入的数控加工程序的语法规则对用户编写的零件程序进行语法、语义检查,并进行译码工作,将数控源代码中给出的各种加工信息进行分离提取,变成各种状态和数据,再将处理的结果存入缓冲区,等待其它模块的调用。
④插补模块:负责数学预处理、加减速的控制、插
补、终点判别等工作,向位置控制器输出通过轨迹运算后的进给量。
⑤ PLC控制模块I/O控制模块):该模块主要完成机床的辅助功能和机床的逻辑控制,同时也完成机床报警出错、紧急停止等突发事件的处理。
⑥通讯管理模块:完成系统间的实时通讯和网络通讯的答理。
⑦状态监控模块:监控主轴转速、压力、切削力等。
本文按照开放式控制系统的层次划分,把数控系统的应用程序软件模块分为应用单元和控制单元两大部分,如图3所示。应用中一元向用户提供了图形化的应用软件环境和标准的系统功能函数,包括操作界面操作菜单,人卜标泉示、参数设置、文件答理、加工编程等)。控制单元相当于一个高效的NC-PLC内核,完成基本的数控功能,包括译码、数学预处理、插补、I/O处理、实时状态监控等。按任务实时性要求的不同,控制单元又划分为实时任务和非实时任务,对于实时性要求不高的任务如编译、预处理、状态监控等在非实时域执行,而对于实时性要求比较高的任务如插补、I/O处理等则在实时域执行。RT-Linux 对实时任务和非实时任务按优先级统一调度。
图3 开放式数控系统的软件模块结构
到此,相信大家对“Linux的实现原理是什么”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。