基于windows xp平台的数控车铣软件控制策略研究
随着windows系统的发展与普及,开发windo论文联盟http://ws环境下的数控系统己经成为广大cnc系统开发商和cnc用户的共识。近年来,国内已有不少厂家开发出了基于dos的数控系统。这些控制系统虽各有优点,但从数控系统发展的趋势来看,仍有许多需要改进之处:首先,系统软件没有构筑在windows等通用操作系统平台上:其次,软件开发思想与技术落后,还处于结构化程序设计的水平,没有充分利用软件工程中的新理论和新技术;再次,数控系统设计时存在设计不规范,没有采用统一的数控系统体系结构规范协议,系统的互换性、可扩展性和可维护性差。本数控系统是一个多任务的计算机实时控制系统。
而基于pc的开放式数控系统由于构筑在通用的软硬件平台基础上可以融合许多软件技术中的先进思想,其开放性使得在它的控制软件比较突出的就是多任务并行处理和实时控制。编程选用vc++6.0,vc++6.0一种面向对象的可视化编程语言,提供了功能丰富的mfc (微软基础类库)供开发应用软件时调用。
1 多任务并行处理
windows xp是一个多任务的系统,多任务是指windows xp可以同时执行几个任务,它可以在还未执行完一个任务时又执行另一项任务。在一个多任务处理环境下,只有当其它程序认可时,一个运行程序才可获得处理机时间。每一个应用程序必须协同地放弃对处理器的控制,以便其它应用程序运行。并行性指的是两个或两个以上的事件或活动在同一时刻发生。WwW.133229.COM在多道程序环境下,并行性使多个程序同一时刻可在不同cpu上同时执行。主要有时间重叠、资源重复、资源共享三种形式。
从执行程序的角度看,并行性等级从低到高可分为:
①指令内部并行:是指指令内部的微操作之间的并行。
②指令级并行(instruction level parallel,ilp):两条或多条指令同时执行,就是指令之间的并行。
③线程级并行:指的是并发执行多个线程,通常是以一个进程内控制派生的多个线程为调度单位。
④任务级或过程级并行:并行执行两个或多个过程或任务(程序段)。
⑤作业或程序级并行:多个作业或程序间的并行处理。
在单处理机系统中,这种并行性升到某一级别后(如任务、作业级并行),则要通过软件(如中的进程管理、作业管理)来实现。而在多处理机系统中,由于已有了完成各个任务或作业的处理机,其并行性是由硬件来实现的。
数控车铣系统装置通常作为一个独立的过程控制单元用于工业自动化的生产过程中,其系统软件应该完成管理功能和控制功能。管理功能部分包括输入、i/0处理、显示和诊断等;控制功能部分则包括译码、刀具补偿、速度处理、插补运算和位控等。在cnc系统的实际运行过程中,常常有若干个任务需要同时进行。为了使数控车铣系统软件能在windows环境下执行多任务处理,可采用多线程技术来实现多任务控制.线程是操作系统的基本调度单元,将各管理和控制模块置于独立的线程中,操作系统按优先级的高低依次给每个线程分配时间片,同时,每个线程的优先级可以动态的调节,实时性要求高的线程,其优先级可以设置得高一些。
这样,从理论上讲,微观上每个时刻只有一个线程(即任务)在执行,每个任务都有机会得到系统时间片;而宏观上却有多个任务在同时执行,任务的执行顺序与其优先级有关。本数控软件中建立了主控制线程、运动控制线程、显示/面板操作线程、自动加工线程等。
2 实时处理
实时系统主要用于过程控制、事务处理等有实时要求的领域。实时处理系统往往是一个由多台计算机组成的耦合度较高的分布式处理系统。它的目标是为了提高系统的响应时间,对随机发生的外部事件做出及时响应并对其进行处理。
它分为:实时控制系统、实时信息处理系统。实时控制系统是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统作出快速响应,并控制所有实时任务协调一致运行的操作系统。主要用于生产过程的自动控制,实验数据自动采集,包括卫星自动控制、汽车自动驾驶、导弹的制导系统等等。
实时信息处理系统将数据获取、处理和成果输出集为一体,快速而及时完成的数据处理系统。主要用于实时信息处理,比如火车订票系统、信息检索系统等等。实时系统要求响应时间短,在一定范围之内,系统可靠性高。采用实时系统的意义就在于能够及时处理各种突发的事件,即处理各种中断,主要就是多任务调度,任务间的同步和进程间通信机制。数控车铣系统软件在工业自动化的实际应用中,为了满足生产实际和工艺设计的要求,这就要求数控车铣软件必须具有实时性,为了达到这一目的我们必须采用中断的方式对实时性强的任务进行控制。由于中断发生的随机性,所以中断服务程序必须在固定代码段中。
而windows xp是一种占先式的多任务操作系统,其消息队列是接受程序的唯一方法,因此应用程序的调用就可以通过消息循环机制从应用程序消息队列中获取输入消息,并把它发送给相应的窗口,然后对该消息内容进行处理。从理论上讲用户的键盘、鼠标及定时器输入都是硬件中断,这就需要系统提供为设备驱动的中断服务程序。在ems内存配置中,只有一种类型的代码能保证任何时刻可进行此类中断服务,那就是微软公司在微软视窗操作系统中实现共享函数库概念的动态连接库(dynamic link library,简称dll)中的固定代码段中的代码。因此可采用dll来实现中断。当程序执行时,利用链接信息加载dll函数代码并在内存中将其链接入调用程序的执行空间中,实现了系统的硬件中断,运行可靠。在软件设计中自动加工线程主要完成打开数控(numerical control 简称:nc)文件、语法检查、译码、刀具补偿、插补运算,产生加工数据。其中插补运算是必须要求实时完成的,因而采用中断服务程序来实现。其中断服务程序流程如图1所示。
3 结语
在软件设计的时候,考虑到系统的可扩展性,利用面向对象的思考方式,开放式、模块化软件设计方案,达到软件的开放性和易于扩展性,可以提高软件的通用性,有利于软件的进一步升级;利用windows的多线程和中断机制解决数控软件的实时多任务处理,提高了软件的实用性,有利于数控车铣系统的性能提高。本数控软件中建立了主控制线程、运动控制线程、显示/面板操作线程、自动加工线程等,提高了软件在实时性方面的需求,同时采用中断的方式对实时性强的任务进行控制,满足了生产和工艺的要求,有利于数控车铣系统的进一步改进和升级。