Window s平台下的软件化数控系统研究*

2010-08-07 02:28陈光胜梅雪松
制造技术与机床 2010年1期
关键词:驱动程序实时性数控系统

陈光胜 陶 涛 梅雪松"

(!西安交通大学机械工程学院,陕西西安7l0049;"西安交大机械制造系统工程国家重点实验室,陕西西安7l0049)

目前,传统PC机(或PCl04)加运动控制卡的数控系统硬件结构方式仍然在国内普遍采用。但这种结构下,数控系统硬件开发难度大,软件开发水平要求高,容易引起系统性能不稳定。而国产高档数控系统与国外同类产品相比还有相当大的差距,其中稳定性不高是重要原因。Windows操作系统(Windows NT/2000/XP)非常成熟且具有丰富的应用支持软件和廉价高效的软件开发工具。美国制造数据公司开发的Open CNC、美国Soft Servo System公司的Servo Works CNC以及德国Power Automation公司的PA8000都是基于PC机以Windows为平台的软件化数控系统[l]。开发软件化数控系统具有硬件开发难度低,开放性、可靠性高以及人机界面友好等明显优点,为提高数控系统的可靠性与稳定性提供了保证。

国内对基于Windows的纯软件数控系统的研究起步较晚。山东大学的武洪恩[2]提出了基于 Windows具有WOAP结构的纯软件数控系统,哈尔滨工业大学林喆[3]以及沈阳化工学院王雅娜等[4]对 Windows的实时性能进行了研究,并提出提高Windows实时性能的途径,但至今仍未见基于Windows的纯软件数控产品的报导。本文通过开发嵌入Windows平台内核的具有实时性能的驱动程序为核心对Windows环境下的软件化数控系统的实现展开研究。

1 Windows系统的实时性分析

Windows是一个多任务的非实时操作系统,由于采取基于对象访问控制权限和软件分层的措施[6],即将整个操作系统分为内核模式( Kernel/Privileged)和用户模式(User/Normal)。一般用户程序只能在用户模式下运行,用户模式运行在微处理器的Ring3用户层,用户层无权对硬件直接操作。这样就可以避免对操作系统代码的破环,这也是实时性不能保证的主要原因。内核模式运行在微处理器的Ring0核心层,其拥有与操作系统相同的级别;Windows 2000利用这个特性将操作系统和其他关键组件保护在内核模式下,只有通过开发驱动程序实现对内核资源的控制。

1.1 Windows系统的实时性能考核原理

Windows系统的实时性能,可以从以下4个方面来考核:

(l)在用户模式下,系统对事件的响应时间。Windows对于事件的响应是基于消息循环的,事件发生后,Windows产生消息加入消息队列,处理程序从消息队列中依次取出消息,消息队列中消息的多少及传递路径的长短将对响应时间产生影响。为了测试用户模式下的响应时间,可以使用系统定时器,VC下用SetTimer函数初始化设定,PC机系统实时时钟按指定时间间隔周期性触发事件,记录下由事件触发的回调函数入口处的机器时间,通过计算每次入口处时间间隔来评价响应时间及确定性。

(2)多媒体定时器的定时精度。多媒体定时器在用户模式下使用,可理解为软中断,其定时精度比(l)方式要准确,是Windows下实现较精确定时的常用方法。评价响应速度方式及原理同(l)。

(3)内核模式下硬件中断的响应速度。中断是实时系统的最基本保证。在Windows 2000下访问硬件或进行中断处理,务必从Ring3用户层跳到Ring0核心层才可以访问硬件或进行中断处理,要处理硬件中断必须先安装一个中断服务例程(ISR)[7]。通过截获ISA总线0号中断系统定时器,安装中断服务例程,设定中断控制器8253使系统定时器产生定时,程序在ISR入口读出系统时间,就可以通过计算每次入口处时间间隔来评价服务例程对周期性中断信号响应的时间精度和确定性。

(4)用户模式与内核模式通讯时间。用户模式下应用程序与内核之间的通讯通过事件方式完成,比如事件的异步完成、事件通知、事件共享等方式[8]。以事件通知为例,当中断事件发生后,调用ISR,为了尽可能减少中断占用时间,ISR设计要尽可能短小,大量的工作要在DPC(延迟过程序调用)中完成,即会产生DPC延迟,当内核与应用程序通信时(反之亦然),产生一个内核事件来通知应用程序,应用程序感知到事件做出响应,这一过程也需要时间,这些延迟都会影响到用户程序与内核的通讯时间。把每次中断时取得的系统时间存入FIFO存储器,同时产生一个事件通知,在应用程序感知到事件通知后,记录当前系统时间,通过与FIFO内取出的时间相比较,可获得应用程序与内核通讯延迟时间。

1.2 实时性能实验测试

在运动控制系统中,最苛刻的定时一般在几百微秒,如位置控制周期,而常用的非实时性周期如显示刷新周期则达到在几十毫秒,因此在测试实验中,(2)(3)项选取测试定时周期均为2ms,而(l)项为l0ms。为得到各响应时间,编制了测试程序,测试程序由testtime.exe和驱动程序 intrdemo.sys两部分组成,testtime.exe由 VC++6.0开发,是基于 MFC的应用程序,提供测试界面,同时还包含一个系统定时回调子程和两个子线程:系统定时回调子程用于测试Windows下的系统定时器,一子线程用于测试多媒体时间响应,另一子线程用于测试应用程序对内核事件的感知时间响应。INTRDEMO.sys是使用DriverWorks工具软件开发的WDM式驱动程序。作用是截获ISA总线0号实时时钟中断,以此产生周期性时间事件,调用ISR中断服务例程,ISR记录下入口处的系统时间并存入FIFO存储器。

应用程序testtime.exe记录下测试时间内每次响应时间,其极限响应时间结果如图l。

为了测试前三类响应的准确性及在不同运行环境下的准确性,分别对三类响应在系统空闲(testtime.exe前台运行,后台无其它任务)和系统忙碌(前台任务:网络电影播放器PPLIVE,testtime.exe后台运行,其它后台任务:office2000、matlab6.0等)环境下进行测试,各测试周期的频数统计直方图如图2。

实验结果显示,在用户模式下,系统对事件的响应确定性很差,精度在ms级以下,对于l0 ms的定时,其响应最迟达到523 ms,在系统忙碌时甚至达到800 ms。多媒体定时器定时精度虽然瞬时最大误差达到了2000%,但其平均误差均在5%以内,最大时间延迟没有超过30 ms,有一定的实时性。而对于内核模式下的对中断事件响应准确性和实时性最强,不论系统空闲与忙碌,最大瞬时误差不超过±2.5%,经统计,误差超过±l%的概率不大于l%,具有极强的实时性和确定性。ring0层和ring3层通讯时间的最短时间20 ms,而最长达到了l45 ms,有一定的延时,必须通过有效方法来弥补。

2 Windows环境下软件化数控系统实现

2.1 Windows下数控系统构建方案

数控系统包含的任务有控制和管理两大类[9]。其中控制类可以分为运动控制和逻辑控制。运动控制包括有插补运算、误差补偿、速度控制、位置控制等。而逻辑控制包括外部IO的控制等。系统管理主要包括系统配置与重构、参数设置、加工程序输入与编辑、故障诊断、加工信息等显示以及与外部通讯等任务。这些任务对实时性的要求各不相同。如运动控制中的位置控制对时间要求苛刻,属强实时类任务,一般周期在毫秒级,有些高速的系统甚至可能是几十微秒,其它实时性任务如轨迹插补运算较位置控制稍弱,一般工作周期在几毫秒至十几毫秒,属弱实时类任务。而系统管理类任务对实时性要求不高,工作周期在十几毫秒以上,可以认为是非实时任务。

Windows是抢占式多任务系统,通过对运动控制系统实时性要求分析和以上对Windows的实验结果对比可以看出,只要任务分配合理,实现Windows下纯软件数控系统是可能的。以下是提出的Windows下的运动控制系统软件方案。

2.l.l 任务分配

强实时性的运动控制任务由内核模式下的驱动程序来完成,强实时模块由系统中断触发(系统时钟或外部信号等),由中断触发的服务程序(ISR)在运行时实时性高,具有确定性,能够满足位置控制等强实时任务的要求。在高精度位置控制时,为避免ISR执行最大±2.5%的时间误差影响,ISR的运行可由外部定时信号触发。但ISR的任务不能过于繁重,否则将影响Windows的效率甚至引起系统的崩溃。

对于有实时性要求,但并不严苛的任务如速度规划、插补运算等,可以安排在用户模式下的多媒体定时任务中。

多媒体定时延时和用户模式与内核模式通讯延迟是完成数控任务必须解决的问题。为避免强实时任务出现数据饥饿,在插补任务和底层位置控制任务间开辟数据缓冲区,在预处理阶段把数据缓冲区充满,然后再进行位置控制运算。这样,只要选取与位置控制相匹配的插补速度以及足够深的缓冲区,就能保证强实时任务不会出现数据饥饿。缓冲区的存在会使进给速度的修调产生延迟,而速度的修调是由人工来控制的,不超过l45 ms的延迟对于操作者来说微不足道。

对于没有实时性要求的任务如加工状态图形显示、故障诊断等可由一般系统任务来完成,在此不再一一赘述。

2.l.2 多总线的数控系统体系结构

基于现场总线的系统结构是为满足高档数控系统高速高精、多轴多通道功能的新型数控系统结构。目前流行的高档数控系统如西门子、发那科均采用了现场总线方式。本文将系统划分为 HMI、NCK和 PLC功能模块,采用了多总线体系结构。如图3所示伺服数字总线是用于联接NCK中位置控制模块和数字伺服电动机,对用户开放,内部高速总线是HMI、NCK和PLC三模块间数据传输总线,而多点接口总线用于连接外部人机接口设备如键盘、操作面板,手轮等。

总线结构的实现使每个设备(或模块)成为总线中的一个结点,有利于实现系统的模块化、标准化,提高系统的扩展性,为数控系统实现多轴、高速、高精、多通道的功能提供可能。

图4为Windows下运动控制系统软件结构,采用模块化设计方式,分为人机交互、运行监控、PLC逻辑控制、运动控制模块(又分为G代码解释、前瞻处理、速度规划、插补、位置控制等子模块)和其它辅助模块等组成。

2.2 具体应用实例及实验结果分析

为验证Windows下实现数控系统方案的可行性,搭建如图5实验平台,分为硬件和软件两部分。控制系统硬件部分由工业PC、研华数字模拟输入输出接口卡(外购)及安川交流伺服电动机组成,控制对象为高精度X-Y工作台。工作平台的面积为300 mm×300 mm,带有平台的X轴安装在Y轴上,从而构成2轴2联动。轴的驱动是通过与滚珠丝杠直接相连的3相交流伺服电动机和放大器来实现的,研华采集卡与工业PC通过PCI总线相连接,其两路模拟电压输出作为位置控制模块的速度环输出信号。与伺服电动机直接连接的增量式码盘被用于速度环的反馈,位置反馈信号则来自于两个安装在工作台上的分辨率为0.5!m直线光栅,通过研华采集卡的两路数字差动信号输入作为位置反馈信号进入位置环。实验控制系统软件部分由用户模式的应用程序和内核驱动程序组成,应用程序完成简易圆指令G代码的译码、S曲线加减速控制和数据采样法的圆弧插补运算,同时数据采集子程序完成位置反馈数据的记录。位置控制模块采用了PID控制算法,由内核驱动程序完成。

圆运动是检验CNC机床工作台、数控系统性能的基本实验运动[l0]。通过圆运动实验,即 X和Y轴的运动指令分别是正弦和余弦,记录下 X、Y轴的实际位置。通过走半径 0.05 m,最大合成进给速度为3 m/min的顺圆实验得出实验结果。图6是X、Y轴的指令合成速度规划图,图7是X、Y轴在图6所示指令速度下的实际位置轨迹误差放大图。结果显示,该实验系统完成了运动控制系统必须的S曲线加减速控制、插补模块通过FIFO缓冲区与底层位置控制模块的准确通讯、位置控制模块实时控制等基本任务,X、Y轴合成轨迹除象限拐点外误差不超过±5!s,达到中档数控系统精度水平[ll]。通过优化位置控制PID参数以及采用更先进控制算法以及添加误差补偿环节可进一步提高运动精度。工作平台已成功应用于数控加工实验平台。

3 结语

实验结果表明,本研究采用的内核模式驱动编制与用户模式编程相结合的方法,纠正了Windows环境下无法完成实时性任务的缺点,通过合理任务调配,在Windows下构建软件化的运动控制系统是完全可能的。基于本文提出的软硬件结构的数控系统实验平台已搭建完成,并成功应用于实验教学。这一方案的实现,大大降低了运动控制系统对特殊硬件的依赖性,使系统更易于开发。同时,软件化系统将有利于提高系统稳定性、灵活性,是高档数控系统的重要发展方向。

l 段建中.开放式纯软件数控系统Open-CNC应用与实现的总体方案[J].制造技术与机床,2005(l):94 ~96

2 武洪恩.基于Windows开放结构控制平台及应用研究[D]:[学位论文].济南:山东大学.2007:l0 ~l5

3 林喆,姚郁,张淑琪等.基于Windows平台的高精度定时的实现[J].自动化技术与应用.2003,22( 8):55 ~57

4 王雅娜,樊天放,曾碚凯.基于Windows系统的实时控制系统[J].计算机与现代化,2006(l2):9l ~93

5 SUNGSIK Park· Sun-Ho Kim · Hyunbo Cho.Kernel software for efficiently building,re-configuring,and distributing an open CNC controlle[r J].Int JAdv Manuf Technol2006(27):788-796

6 陈宗雨,郭伟,王立峰等.基于WindowsNT与实时扩展的开放式数控系统的研究.计算机集成制造系统,2006(4):568 ~572

7 Art Bnaker,Jery Lazano.Windows2000设备驱动程序设计指南[M].北京:机械工业出版社,200l:l20~l23

8 武安河,邰名,于洪涛.Windows2000/XPWDM设备驱动程序开发[M].北京:电子工业出版社,2003:20l ~2l5

9 王永章.机床数字控制技术[M].哈尔滨:哈尔滨工业大学出版社,2002:l38 ~l58

l0 MEI,Xuesong Masaomi Tsutsumib,Tao Tao etc.Study on the compensation of error by stick-slip for high-precision tabl[e J].International Journal of Machine Tools&Manufacture.2004,44:503-5l0

ll ZHANG Haojiong,Landers,R.G.Precision Motion Control Methodology for Complex Contour[s J].American Control Conference,2007.ACC'079-l3 July 2007 Pag(e s):4333-4338

猜你喜欢
驱动程序实时性数控系统
阻止Windows Update更新驱动程序
计算机硬件设备驱动程序分析
基于FANUC 32i A数控系统的外部测量设计
西门子840D sl数控系统在SC125大型车铣镗床技术改造中的应用
基于FANUC Oi mate TD数控系统的手动功能开发
数控系统中GUI软件平台设计和实现
航空电子AFDX与AVB传输实时性抗干扰对比
计算机控制系统实时性的提高策略
一种车载Profibus总线系统的实时性分析
妙用鼠标驱动