论文部分内容阅读
本课题是四川省科技攻关项目(03GG006-013-1)“开放式软件数控系统开发与应用”的子项目,课题名称“基于RTLinux的全软件数控系统设计与开发”,课题致力于构建一个Linux平台下的数控系统原型。 随着信息技术的飞速发展,开放式数控系统正进入一个崭新的发展阶段——全软件数控(亦称软件数控或软数控)。全软件数控是指CNC系统的各项功能,包括插补,位控和PLC,均由软件模块来实现。软件实现的灵活性有利于数控系统实现更高层次的开放性。 “基于PC”是目前实现CNC开放化比较现实而明确的途径。PC平台上的主流操作系统(如Windows、Linux等)是一种通用(general-purpose)操作系统,其软实时特性不适合直接作为软数控系统的开发平台。本课题以Linux为开发平台,解决实时性问题的办法是采用RTLinux实时扩展。 软件开发是软数控系统开发的核心和关键。本课题以C语言为主要开发语言,系统图形用户界面的开发采用Tcl/Tk脚本语言。通过对数控系统功能需求及多任务间数据依赖关系的分析,结合Linux+RTLinux平台上实时应用软件的结构特点,本课题的软数控系统采用分层结构,自上而下分别为:界面层、管理层和控制层,界面层之上是用户,控制层之下是硬件。每一层又分为若干个模块及子模块,同层模块相互配合共同完成该层的任务。通过UNIX信号机制和半双工管道实现管理层与界面层的通信,通过RTLinux提供的内核实时管道实现管理层与控制层的通信。 软数控系统的实时控制功能由控制层中的软CNC模块和软PLC模块完成。其中软CNC模块由四个子模块组成,分别是插补准备子模块、插补子模块、位控子模块和输出子模块。在系统实现上四个子模块体现为四个实时线程,按流