您好,欢迎来到中国机床网   请 登录免费注册
服务热线:
当前位置:首页 >> 资讯频道 >> > 技术应用 >> 基于RTLinux的全软件数控系统

基于RTLinux的全软件数控系统

时间:2017-7-19 14:34:00   来源:本网   添加人:admin

  目前,开放式数控系统主要有三种结构即专用CNC+PC、通用PC+运动控制器和全软件PC型。

  其中,全软件PC型结构是一种新型数控系统,其主要特征是用软件实现硬件控制器所完成的所有实时控制功能,而数控系统与伺服系统及机床辅助机构的接口采用标准化通用接口,整个数控系统以一个PC上应用软件的形式出现。由于处理器性能的日新月异和操作系统技术的不断进步,这种/硬件功能软件化“不仅不会导致任何系统性能的损失,而且软件实现的灵活性和硬件平台无关性将有利于系统实现更深层次的开放性和系统性。目前己有国外厂商推出了基于PC的软数控产品,例如:SoftServo公司的产品AML,MDSI公司的OpenCNC等5.这些产品都主要基于Windows平台,以运行于PC机上的数控软件替代运动控制器和可编程逻辑控制器研究机构也对软数控系统的某些关键问题进行了研究。本文结合全软件数控系统开发实例,给出了一种在Linux平台上构建全软件数控系统的方案,并详细介绍其中的关键实现技术。

  1系统整体结构数控系统是一个实时多任务系统。开发全软件数控系统首先要选择一个合适的实时软件平台。获得基于PC的实时软件平台有多种方法,一种合理有效的方法是对通用分时操作系统进行实时扩展,使标准分时内核作为一个最低优先级任务运行于实时内核中,这类产品较著名的有Windws下的RTX及Linux下的RTLinux等。在这类平台上进行系统开发不仅有实时性支持,而且可以利用通用操作系统提供的强大服务,如网络、图形用户界面和数据库等。尤其是Linux与RTLinux的组合,以其出色的硬实时性和稳定性在工业控制领域获得了广个模块及子模块,同层模块相互配合共同完成该层的任务,各层及各模块间的数据传递如所示。

  理层和控制层三层,每-层又分为若干个系统从总控模块启动,由总控模块加载控制层和泛的应用111,12.Linux提供了一个环境优越、界面友好、支持所有通用Internet协议且开发自主的操作平台,与其他操作系统相比,它具有稳定、开放、网络负载力强、占用内存小以及运行费用低等特点。RTLinux是由美国FSMLabs公司推出的基于Linux的32位硬实时操作系统,它在Linux内核和硬件之间构筑一个小而高效的实时内核,使Linux内核作为优先级最低的任务运行于实时内核。对于普通的X86平台,其最大中断延迟时间不超过15Ls,最大任务切换误差小于35Lsl13.Linux与RTnux均是通用公共许可协议(GeneralPubliccense,GPL)下的自由软件,其源代码完全公开,这对于开发拥有自主知识版权的高性能数控系统具有重要意义。

  4.20+RTLin-ux3.2作为系统的实时软件平台,以PC或IPC作为系统的硬件平台,数控系统与伺服系统及机床辅助机构的接口采用多功能接口卡。该卡一方面将上位控制器输出的位置速度指令转化为相应的脉冲串,驱动伺服系统;另一方面完成开关量信号的输入输出。系统整体结构如所示。

  2系统软件层次结构全软件数控系统是一个复杂的系统软件,合理的层次结构及模块划分对系统的开放性甚至对整个系统的性能,都具有重要意义。通过分析数控系统功能需求及多任务间数据依赖关系,结合Linux+RTLinux平台上实时应用软件的结构特点,把系统分为界面层、界面层界面层(也称脚本层)为用户提供直观的操作界面及各种加工信息,等待接收用户的操作请求,并将操作请求及相关数据传递到管理层。

  用户在界面层的操作主要有文件管理、模拟运行、自动运行、手动控制、PLC设置和参数设置等。界面层选用脚本语言Tcl/Tk编写。该语言语法简单,调试方便(不用编译即可运行),编程效率高;同时,Tcl/Tk的命令解释器可以很容易地嵌入到C程序中(本系统的管理层和控制层均用C语言编写),方便为C程序添加图形界面。但脚本语言在数据处理上的执行效率不如编译语言(如C,C++),所以本系统的图形界面只负责图形显示和数据传递,不进行数据处理。数据处理和系统参数的管理均在管理层或控制层中进行。

  管理层管理层(也称非实时层)是整个系统的入口和管理中枢,控制着界面层和控制层。管理层由总控模块及若干功能模块构成,功能模块由总控模块调用。功能模块完成某一特定的非实时任务(包括实时任务的预处理),如文件管理、系统参数管理、译码、刀具补偿和PLC中间代码生成等。整界面层,并进入事件循环,等待界面层的操作请求。

  根据来自界面层的不同请求,总控模块调用相应的功能模块进行实际数据处理,处理结果存入相应的数据结构中。若操作请求涉及实时控制(如进给轴运动),则总控模块将进一步启动控制层中的实时任务。同时总控模块轮询来自控制层的反馈信息,并据此作相应的处理。

  (3)控制层控制层(也称实时层)完成对机床的实时控制,它主要由软CNC模块、软PLC模块和接口驱动模块构成。前者分别完成机床进给轴伺服控制和机床辅助机构的逻辑控制,其中软CNC模块又由多个子模块构成,如插补子模块、位控子模块等。控制层等待管理层的控制命令和控制数据,当接收到控制命令时,启动软CNC模块或软PLC模块,并以指定的微小时间间隔作周期运行。软CNC模块和软PLC模块通过接口驱动模块完成对接口卡的数据读写。接口驱动模块以提供应用程序接口(ApplicationProgrammingInterface,API)的形式供软CNC模块和软PLC模块调用,从而屏蔽了实际接口卡寄存器操作细节。另外,控制层中的软CNC模块和软PLC模块均有一些数据需要反馈到管理层,这些数据由管理层中的总控模块轮询。

  在上述软件层次结构中,层与层之间的数据交换是系统设计的一个重点,同时控制层中软CNC模块与软PLC模块的工作原理与实现方法更是软数控系统的核心,现详加阐述。

  3系统各层间的通信3.1管理层与界面层的通信管理层与界面层的通信包括:i用户在图形界面下的操作信息及相关数据,需要传递到管理层中作进一步处理;④系统运行过程中的各种状态信息,需要传递到界面层显示给用户。第一类通信可以通过自定义命令过程,为Tcl解释器扩展特定于应用的脚本命令来实现。这些扩展命令过程仅完成数据传递,实际数控功能由管理层中的功能模块和控制Tcl/Tk的C库函数。描述了管理层与界面层的