计算机数控机床(CNC)是20世纪70年代发展起来的机床控制新技术,它综合了计算机、自动控制、测量技术、机械制造等领域的最新成就,使机器工具的生产效率和加工精度得到了极大提高。数控技术的先进与否直接代表了一个国家的机械工业水平,数控产业对于国家的工业现代化,乃至于国家经济安全和国防安全都具有超越其巨大经济价值的战略意义。
数控系统是先进制造装备实现控制功能的核心部件。国内对数控系统的研究由于起步较晚CONTROL ENGINEERING China版权所有,在技术上还落后于国外一到两代。目前数控产业的高端市场主要由西门子、发那克、GE等大公司主导控制工程网版权所有,我国每年会进口上万台高档数控机床。因此,加强数控技术的研发,发展自主知识产权的数控系统势在必行。
实时控制是数控
1 Windows的定时器原理
Windows是一个消息驱动式的操作系统,Windows消息提供了应用程序与应用程序之间、应用程序与Windows系统之间进行通讯的手段。应用程序要实现的功能由消息来触发,并靠对消息的响应和处理来完成。但由于消息传递是非抢先性的,不论事件消息的急与缓,总是按到达的先后顺序排队,这就使得一些外部实时事件可能得不到及时的处理,容易造成实时系统性能不稳定。对实时控制系统而言,在精确的时间段内及时响应消息是实时系统的根本,如果不能保证系统的实时性,实时控制系统也就失去了实际意义。在计算机数控系统开发中,数据插补是一件实时性很强的工作控制工程网版权所有,它要求在给定的时间段内,必须进行插补工作。插补的品质直接决定了系统的加工速度和加工精度。在Windows环境下如何实现实时中断和控制是计算机数控系统开发中的难点之一。
2 实时控制解决方案
在各种实时控制系统中,实时时钟的控制都是关键技术。因为各种控制过程、控制任务都由实时时钟来推进。在Windows环境下,常用的实时时钟获取方法有下面几种:
a)设置Win32定时器并响应WM_TIMER消息来进行实时处理:这种方法是最简单的一类方法,在Windows环境下,各种可视化开发工具如VC,Delphi,C++ Builder等,都提供定时器控件Timer。通过设定控件的属性,并响应WM_TMER消息,可以实现一定的定时功能。但是由于Windows提供的定时器是建立在D0sICH中断的基础上,该中断每秒钟发生18.2次控制工程网版权所有,即定时周期为54.945ms控制工程网版权所有,该定时精度远不能满足数控系统对实时性的要求。另外,函数SetTimer()中指定的计时周期虽以ms为单位,但这个值要转化为54.945ms的整数倍;定时器发送的WM_TIMER消息的优先级相当低,在应用程序的消息队列里要等高优先级的消息处理完后才能被处理。而且Windows在应用程序的消息队列里只为一个定时器保存一条WM_TIMER消息。因此,WM_TIMER消息的处理带有很大的不确定性和非实时性,在多任务操作系统中,定时器消息往往不能得到及时响应,容易造成系统实时处理的不稳定,不能满足实时控制环境下的应用。因此这种方法只适合实时性要求不高的应用场合。
b)采用Windows多媒体定时器,通过设置回调函数