欢迎来到天天文库
浏览记录
ID:41087928
大小:21.04 KB
页数:4页
时间:2019-08-16
《基于工控机的数控系统的实时控制设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、基于工控机的数控系统的实时控制设计发表时间:2009-1-26许燕萍杨代华来源:万方数据关键字:工控机数控系统实时控制信息化应用调查在线投稿加入收藏发表评论好文推荐打印文本分析了Windows的定时器原理,设计了一种在Windows平台下执行的实时控制程序,实现了系统微秒级的定时,可满足数控系统运动时对实时性的要求。0概述 计算机数控机床(CNC)是20世纪70年代发展起来的机床控制新技术,它综合了计算机、自动控制、测量技术、机械制造等领域的最新成就,使机器工具的生产效率和加工精度得到了极大提高。数控技术的先进与
2、否直接代表了一个国家的机械工业水平,数控产业对于国家的工业现代化,乃至于国家经济安全和国防安全都具有超越其巨大经济价值的战略意义。 数控系统是先进制造装备实现控制功能的核心部件。国内对数控系统的研究由于起步较晚,在技术上还落后于国外一到两代。目前数控产业的高端市场主要由西门子、发那克、GE等大公司主导,我国每年会进口上万台高档数控机床。因此,加强数控技术的研发,发展自主知识产权的数控系统势在必行。 实时控制是数控系统开发的关键技术之一,数控机床的精度一般可达到微米级,本设计主要用作教学实践用,对精度的要求不用太
3、高,设计时可定为0.01mm,此级精度对于普通的零件加工也是可以满足的。数控机床的速度一般为(2~20)m/min,若要达到0.01姗的定位,系统的响应需达到(0.03~0.3)脚,即需要微秒级的响应。不光是定位,在基于PC机的数控软件中,为了保证对控制对象的实时性处理,包括数据采集、速度处理、插补及位置伺服控制、事件处理等,每一项任务都要在规定的时间内完成。因此,对于底层控制程序的设计是非常重要的。1Windows的定时器原理 Windows是一个消息驱动式的操作系统,Windows消息提供了应用程序与应用程序
4、之间、应用程序与Windows系统之间进行通讯的手段。应用程序要实现的功能由消息来触发,并靠对消息的响应和处理来完成。但由于消息传递是非抢先性的,不论事件消息的急与缓,总是按到达的先后顺序排队,这就使得一些外部实时事件可能得不到及时的处理,容易造成实时系统性能不稳定。对实时控制系统而言,在精确的时间段内及时响应消息是实时系统的根本,如果不能保证系统的实时性,实时控制系统也就失去了实际意义。在计算机数控系统开发中,数据插补是一件实时性很强的工作,它要求在给定的时间段内,必须进行插补工作。插补的品质直接决定了系统的加工速
5、度和加工精度。在Windows环境下如何实现实时中断和控制是计算机数控系统开发中的难点之一。2实时控制解决方案 在各种实时控制系统中,实时时钟的控制都是关键技术。因为各种控制过程、控制任务都由实时时钟来推进。在Windows环境下,常用的实时时钟获取方法有下面几种: a)设置Win32定时器并响应WM_TIMER消息来进行实时处理:这种方法是最简单的一类方法,在Windows环境下,各种可视化开发工具如VC,Delphi,C++Builder等,都提供定时器控件Timer。通过设定控件的属性,并响应WM_TM
6、ER消息,可以实现一定的定时功能。但是由于Windows提供的定时器是建立在D0sICH中断的基础上,该中断每秒钟发生18.2次,即定时周期为54.945ms,该定时精度远不能满足数控系统对实时性的要求。另外,函数SetTimer()中指定的计时周期虽以ms为单位,但这个值要转化为54.945ms的整数倍;定时器发送的WM_TIMER消息的优先级相当低,在应用程序的消息队列里要等高优先级的消息处理完后才能被处理。而且Windows在应用程序的消息队列里只为一个定时器保存一条WM_TIMER消息。因此,WM_TIMER
7、消息的处理带有很大的不确定性和非实时性,在多任务操作系统中,定时器消息往往不能得到及时响应,容易造成系统实时处理的不稳定,不能满足实时控制环境下的应用。因此这种方法只适合实时性要求不高的应用场合。 b)采用Windows多媒体定时器,通过设置回调函数进行实时处理:Win32函数提供的实时多媒体定时器,在多媒体扩展库MMSYSTEM.DLL中提供了高精度的定时服务。定时器的定时精度由多媒体时钟函数TimeBeginPeriod()设置,SetTimeEvent()函数设置定时器定时间隔并启动定时器。但资料表明,定时
8、间隔在20ms以上的定时任务中,精度可保持在1ms左右;定时间隔在(7~20)ms之间,精度要视Windows系统的整体工作量和应用程序的任务而定,误差在(1~3)ms;7ms以下的软件定时一般难以实现,因为Windows系统本身的刷新任务及其消息循环等系统开销需要占用时间。并且这种方法占用了系统大量宝贵的资源,随着程序的运行,系统速度会变慢,
此文档下载收益归作者所有