I/O控制器是开放式数控系统的一部分,考虑到整个数控系统结构层次化和模块化的特点,构造了基于RCS设计方法的I/O控制器。文章简述了RCS 方法的主要思想及数控系统中I/O控制器的主要功能和组成,详细阐述一个基于RCS方法的I/O控制器的设计和实现过程。最后总结了基于RCS 设计方法的I/O控制器的优缺点。
0 前言
基于PC机丰富的软硬件资源开发具有开放式体系结构的数控系统已经成为当今数控系统研发的潮流。开放式体系结构使数控系统有更好的通用性、柔性、适应性、可扩展性和可移植性。数控系统是一个强实时、多任务的复杂控制系统。为了更好的解决它的实时性问题,人们进行了很多的理论研究,RCS(Real - Time Control System) 设计方法就是由美国国家技术与标准委员会(NIST)的智能系统部(ISD)在多年的控制系统研发过程中,形成的一套完整的用于实现复杂的层次及分布式实时控制系统的一套设计方法及软件库,多年来,RCS 方法在国外已经在多个领域得到试验和应用 。
1 RCS设计方法
RCS设计方法的基本原理就是将复杂的控制系统分解成一些简单的、独立的、小规模的、易于用传统的控制方法来实现的子系统,而分解之后的这些子系统可以运行于不同的系统环境中,甚至分布在网络的不同节点。然后根据分解的结果,采用由下至上对各层的模块分别进行定义的方法来定义控制系统的层次结构,RCS 将这些子系统按照层次结构组织起来,每一层节点都有各自的任务,组成一个层次结构。最后确定系统中各模块的任务分配和模块间共享的信息,同时定义关于命令和状态信息的词汇,完成控制系统的设计工作。这样大大地减少了实时控制系统的复杂度。
2 I/O控制器在数控系统中的作用
2.1 开放式数控系统的软件结构
本系统用蓝天NC-200 作为系统的硬件平台,采用RTLinux实时操作系统作为操作平台。整个数控系统由控制单元、CRT单元、机床操作站三个单元组成。
CNC 系统是一个专用的实时多任务计算机系统,它通常作为一个独立的过程控制单元用于生产过程中,因此它的系统软件必须完成管理和控制两大任务。系统的管理部分包括输入输出、I/O处理、显示、诊断。系统的控制部分包括译码、刀具补偿、速度处理、差补和位置控制。这样根据CNC系统软件的功能要求和RCS设计方法层次化结构设计的特点,整个数控系统软件就可以设计成一个层次化的结构模型,如图1所示。在这个结构中主要有四个功能模块,分别是为图形用户界面(GUI),任务控制器,运动控制器和I/O控制器。
图1 数控系统软件软件层次结构
2. 2 I/O控制器在数控系统中的作用
I/O 控制器是数控系统中执行I/O操作的中心,它主要处理来自任务控制器的针对I/O系统的指令。对于数控系统而言,这些I/O设备主要有刀具,主轴,冷却部件,润滑器以及急停开关等一些辅助操作。这些针对I/O 的操作都是一些开关量控制,所以又称为离散型I/O控制器。I/O控制器根据来自任务控制器的控制指令,按照控制对象进行任务拆分,发送到对应的目的I/O设备中。I/O控制器是数控系统中的重要组成部分,是控制外部设备的中心。
3 I/O控制器的结构设计
I/O操作对实时性的要求比运动控制要求低,它与任务控制器之间的通信采用NML 机制。
3.1 I/O控制器与任务控制器的接口
通信接口在数控系统总体的层次化结构模型中,I/O控制器位于任务控制器的下层,它与任务控制器之间有三条用于通信的NML 通道,分别是命令通道、状态通道和错误信息通道。而在任务控制器中,有一个专门的接口模块taskintf ,它定义了所有发送到其下级运动控制器和I/O控制器的控制命令。I/O控制器与任务控制器的接口如图2 所示。
图2 I/O控制器与任务控制器
I/O控制器的任务主要有: I/O初始化、停止、关闭、急停开关、主轴正转、反转、停止、冷却液开关、润滑初始化与开关、刀具准备、上刀下刀和刀具表管理等等。下面是刀具部分的接口定义。
cncToolPrepare(int tool) ;
cncToolLOAd() ;
cncToolUnload() ;
cncToolLoadToolTable(const char 3 file) ;
cncToolSetOffset (int tool , double length , double diameter) ;
3.2 I/O控制器的内部结构设计
基于RCS设计思想设计一个I/O控制器, 它可以对任务控制器发送给I/O控制器的命令进行分类整理, 即在I/O控制器内把任务划分为若干个模块,即为:与刀具相关、与主轴相关、与润滑相关、与冷却相关和其他与辅助操作相关的五个子任务模块。同时在I/O控制器顶层设定一个I/O接口模块,用于总体把握I/O控制器的状态和任务分发。模块之间的通信利用NML通信机制。具体的I/O控制器的内部结构如图3所示。
图3 I/O控制器结构示意图
如图所示,I/O接口、刀具控制、主轴控制、冷却处理、润滑处理和辅助加工分别作为一个独立的模块存在。I/O接口模块位于其他五个模块的上层,作为I/O控制器和任务控制器的接口,接收所有来自任务控制器送往I/O 部分的任务,它将接收的任务进一步划分,并按照任务的分类分别送往刀具、主轴、冷却,润滑和辅助几个模块进行执行。底层的五个模块作为执行任务的最终节点,具体执行细化任务,不再有子模块。
3.3 I/O控制器和任务控制器以及I/O控制器内部各模块之间的通信
I/O控制器和任务控制器之间,以及I/O控制器内部各模块之间的通信是通过NML通道来完成的。系统定义了两种类型的NML通道:一是命令通道,用于传递上层模块对下层模块的命令信息;二是状态通道,用于上级从下级读取状态信息;在这里,NML通道采用共享内存的方式实现,所有的数据要经过共享内存进行中转。I/O内部模块间也是按照共享内存的方式进行通信的,因此系统中设立了相应的共享内存缓冲区用于内部模块间通信。例如用于I/O接口与刀具间的缓冲区toolCmd和toolSts ; 用于I/O接口与主轴间的缓冲区spindleCmd 和spindleSts , 用于I/O接口与冷却间的缓冲区coolandCmd 和coolandSts ,用于I/O接口与辅助操作间的缓冲区auxCmd 和auxSts ,用于I/O接口与润滑间的缓冲区lubeCmd 和lubeSts。
4 I/O控制器的执行
I/O控制器内部由I/O接口、刀具、主轴、冷却、润滑和辅助操作五个模块组成。每个模块都有其模块内部执行过程, 目的在于完成上下级模块间通信及本模块的任务处理。在构造I/O控制器的时候,可将五个模块在控制器内部循环执行。由于I/O接口在上层,所以循环次序为I/O接口→刀具→主轴→冷却→润滑→辅助操作。每一个循环为控制器的一个执行周期,那么五个模块共同消耗这个执行周期。每个模块在执行时都对自己的执行时间进行统计,设定模块的最大和最小执行时间。I/O控制器在开始时定义五个模块如下:
图4 I/O控制器内部执行流程图
CNC IO MODULE 3 iointf ;
CNC TOOL MODULE 3 tool ;
CNC SPINDLE MODULE 3 spindle ;
CNC COOLANT MODULE 3 coolant ;
CNC AUX MODULE 3 aux ;
CNC LUBE MODULE 3 lube ;
I/O控制器内部的执行过程如图4 所示。由流程图可见:总体来说整个执行过程是一个while 主循环,并且可以通过系统中断信号随时中止循环。同时利用RCS 库提供的RCS TIMER类的对象同步系统时钟,由成员函数RCS TIMER: :wait ( ) 实现这一功能。在每一个采样周期内,规定任务执行结束后可能还有剩余时间,wait () 函数就是保证等到下一采样周期到来时才执行下一个循环操作。比如一个采样周期是100ms ,运行所有控制所需时间是60ms ,那么wait 函数将使进程处于睡眠状态40ms ,之后才继续运行下一循环。
5 结论
基于RCS 设计方法,设计数控系统中的I/O控制器是一种很成功的方法。这样的I/ O 控制器具有如下特点:优点:
1) 层次化、模块化结构设计,使系统易更改,可扩展性好,大大提高了系统的灵活性。
2) 对于不同的I/O板卡等硬件可以使用专门的读写函数,实现底层操作。故使I/O控制器可适用于不同的硬件平台。缺点:
I/O控制器只实现了对I/O的离散控制,因此它只实现了解决开关量的逻辑运算,以及计时、计数等几种有限的功能控制,难以实现复杂的逻辑运算,算术运算,数据处理以及数控机床所需要的许多特殊功能。
核心关注:拓步ERP系统平台是覆盖了众多的业务领域、行业应用,蕴涵了丰富的ERP管理思想,集成了ERP软件业务管理理念,功能涉及供应链、成本、制造、CRM、HR等众多业务领域的管理,全面涵盖了企业关注ERP管理系统的核心领域,是众多中小企业信息化建设首选的ERP管理软件信赖品牌。
转载请注明出处:拓步ERP资讯网http://www.toberp.com/