基于PC的数控运动轨迹并行高速插补策略的研究

2013-09-27 03:26
制造技术与机床 2013年11期
关键词:PC机空间数据缓冲区

李 斌

(福建船政交通职业学院,福建福州 350007)

随着PC软硬件技术和网络信息化技术的发展,研发基于PC满足高速高精的开放式软件型数控系统已成为当今世界数控技术发展的方向[1-2]。基于PC软件型数控系统的优点在于可借助PC丰富的软硬件资源,制造成本低,易于实现开放式结构,主要缺点是受限于目前通用PC机的处理能力,当用于大数据量处理、高速加工时,高速实时插补能力不足,不能满足高实时性要求的场合。现有研究策略[3-5]主要是将主流操作系统改造为实时操作系统(Real-Time Operating System,RTOS),以提升其实时性。RTOS的定时精度一般在几个到几十个微秒,虽然勉强可以满足高速实时插补的周期定时要求,但是高速实时插补带来频繁的实时中断,将CPU的大量时间浪费在实时中断调度上,实际能利用的有效计算时间十分有限,一方面对插补算法提出了苛刻的时间要求,另一方面也难以保证有足够的时间进行其他更多任务的调度,影响了系统的性能。此外,当前RTOS缺乏统一的编程标准,代码可移植性差,所开发的软件系统与操作系统一体化,软件开发难度大,不利于系统的开放。例如美国国家标准和技术研究所(National Institute of Standards and Technology,NIST)主持的增强型运动控制器(Enhanced Machine Controller,EMC)项目[6]。因此,有必要研发一种能充分利用PC软硬件资源的开放式软件型数控系统的高速插补模式,满足高速、大数据量数控加工要求。

1 粗精插补软硬件功能划分和时序关系

对于高速、大数据量数控加工,完全依托单一PC机执行数控运动轨迹的粗精插补计算控制实时周期任务,难以达到预期的控制要求。从粗精两级插补的过程来看,精插补计算严格按照粗插补的采样周期实时执行,而粗插补计算只要能及时提供精插补计算所需的位移量数据即可,它们之间传递的位移量数据并不一定需要进行实时计算,可以采用数据缓冲的方式。本文考虑在PC+I/O接口卡的软件型PC数控系统结构的基础上,采用基于数据采样法的软硬结合粗精两级插补算法,粗插补算法与精插补算法之间相对独立,时序关系上保持协调一致。粗插补由PC机完成,其主要任务是根据进给速度和加减速的要求计算出每根轴每个插补周期的位移量,并将位移量转换为脉冲数Ni送给精插补模块。粗插补基于时间分割法,可以采用各种高速高精度的插补算法,实现从简单的平面直线到复杂空间曲线的插补。精插补计算由I/O接口卡完成,精插补完成的时间必须等于粗插补的采样周期。精插补任务是将Ni均匀的分配到整个插补周期,其算法相对简单,计算输出频率高,实时性强。

2 基于空间数据约束的粗精并行高速插补策略

为保证粗精插补间数据高速传输的可靠性和连续性,笔者设计了一种基于空间数据约束的粗精并行高速插补模式,如图1所示。在粗精两级插补计算间设立缓冲区,将粗、精插补间的时序约束关系转变为空间数据约束关系,实现粗、精插补并行计算,其中精插补严格按照粗插补的采样周期精确定时运行,而粗插补计算则拥有更多自由连续的计算时间,可进行连续的插补运算。采取双缓冲方式,即在PC机和可编程I/O接口卡上各自建立一个FIFO数据缓存区(FIFO是First In First Out的缩写,是一种先进先出的数据缓存器。下文中的FIFO数据缓存区之类的表达均简略为FIFO)。该方法中的粗、精插补间的空间数据约束关系指的是在加工结束前,必须保证卡上的FIFO中的数据不能为空。按“生产者/消费者模式”来看,由于精插补是个定时周期任务,其“消费”数据的速率是恒定的,如果粗插补“生产”数据的平均速率小于精插补“消费”的速率,就会出现“生产”数据不足导致数据中断现象。因此,PC软件粗插补计算出每个插补周期位移数据的平均计算时间必须小于设定采样周期,才能满足粗、精插补间的空间数据约束关系,保证系统整体运动控制的实时性。

该插补策略取消了实时的粗插补计算,避免将CPU大量的时间浪费在实时中断调度上,只要满足粗、精两级插补时的空间数据约束关系,就能使得PC机拥有更多自由连续的计算时间,既有利于提高数据采样插补的频率,实现高速插补,又为轨迹插补算法的选择提供更大的空间和灵活性,有利于实现系统功能可扩展,而且系统软件开发无需建立在RTOS上,可充分利用通用PC机上的丰富的软件资源和各种标准的开发工具,能更好的实现系统的开放。

2.1 双缓冲同步协调机制

在进行粗精插补时,如果I/O接口卡上的FIFO在加工结束前被精插补读空或接收来自PC机的插补数据时出现数据溢出,都会造成机床加工出错。因此为保证粗、精插补的协调运行,需要对双缓存区间数据传输进行同步协调控制。采用基于中断机制来实现PC机和可编程I/O接口卡间交互,通过设定I/O接口卡上的FIFO的数据余量和传输定量数据的方法来实现双缓存区间数据传输的协调同步控制。

这种同步控制过程如图2所示,假设可编程I/O接口卡上的FIFO的容量为M+N个数据单元,其中N为数据单元余量值,M为每次传输的定量数据单元值。由于每次传输的数据量都是一定的,而对同一台PC机来说其每次中断响应时间也是相近的,所以PC机每次响应中断并传输定量数据的总时间可以认为是一个定值。设精插补计算的定时运行周期为T,每当I/O接口卡上的FIFO被其读取到设定的余量值N时产生中断,PC机响应中断传输M个数据单元到I/O接口卡上的FIFO内,耗时设为t,可推算出I/O接口卡上的FIFO在新数据到达前,其数据量应为N-t/T,若N-t/T>0,即N>t/T时,则可保证缓冲区的数据不会被读空;新数据到达后,缓冲区数据量为M+N-t/T,必小于其容量M+N,因此数据一定不会溢出。另外,PC机发送完数据后,其插补数据缓冲区有空闲,粗插补计算自动唤醒运行,直到计算出的数据写满缓冲区后,进入休眠等待。

2.2 数据缓冲区M、N值大小的选取分析

根据上述同步工作机制,粗精插补协调运行时,相关的时序关系如图3所示,并有如下关系式:

式中:tn为PC机响应中断并传输数据的总时间;tm为I/O接口卡上FIFO从满到余量等于N的运行时间;td为唤醒粗插补线程运行的调度响应时间;tc为粗插补线程运行并将PC机FIFO写满的时间。

从时序关系图3和式(1)可知,如果N值太小,I/O接口卡上的FIFO会在加工结束前出现被读空的状态,造成加工出错,所以应设置足够大的N值,但是过大的N值也会造成缓冲区空间的浪费。M值的大小会直接影响系统的性能,如果M值设置的太小时,会导致粗插补计算调度过于频繁,降低系统的运行效率;相反,M值设置的越大,tm也越大,意味着系统软件具有更多的时间进行数据处理,系统可以从容地进行轨迹插补处理和其他任务的调度,可适应高速、高精度和复杂曲面大数据量加工的运动控制要求。但是值的注意的是,M值设置的过大可能会使数控系统出现明显的延迟。因此,应根据系统的实际需求,合理地设置M和N的值。

为验证上述的协调同步控制方法的有效性,在PC(标准的Linux2.6系统)+带FPGA芯片的I/O接口卡的软件型数控平台上进行测试,设定粗插补采样周期为2 ms,即精插补的定时运行周期为2 ms,I/O接口卡上FIFO容量设定2048×32 bit,其余量值N为48×32 bit,传输的定量数据M为2 000×32 bit(注:一个数据单元的大小为32 bit)。实际测试结果显示,对于复杂曲面高速加工大数据量加工,该软硬件系统运行良好,取得较好的运动轨迹控制效果。

3 结语

针对基于PC的软件型数控系统研究一种基于空间数据约束的粗精并行高速插补算法,无需实时粗插补计算,只要PC软件粗插补计算出每个插补周期位移数据的平均计算时间小于设定采样周期,合理的选取数据缓冲区的M、N值,就能满足粗、精插补间的空间数据约束关系,实现系统整体的实时运动控制。该插补策略使得PC软件数控可建立在主流的通用操作系统上,既能适应高速高精的运动控制方面的要求,又减低软件数控对PC机操作系统实时性的依赖,有利于软件数控开放性的实现。目前该插补控制方法已在自行开发的基于Linux的软件型开放式数控系统中得到应用,验证了其有效性。

[1]徐宁,杨秀云.数控系统的现状及发展趋势[J].机械设计与制造,2006,4:132 -134.

[2]王成元,常国祥,郭雨梅.开放式数控系统的发展现状及其趋势[J].沈阳工业大学学报,2007,29(1):61 -64.

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

[4]梁宏斌,王永章.基于Windows的开放式数控系统实时问题研究[J].计算机集成制造系统,2003,4(9):403 -406.

[5]朱达宇,李彦.基于RTLinux的全软件数控系统[J].计算机集成制造系统,2004,12(10):1571 -1576.

[6]Shackleford W P,Proctor F M.Use of open source distribution for a machine tool controller[EB/OL].[2008 - 05 - 24].http://www.isd.mel.nist.gov/documents/s hackleford/4191_05.pdf.

猜你喜欢
PC机空间数据缓冲区
GIS空间数据与地图制图融合技术
串行连续生产线的可用度与缓冲库存控制研究*
基于ARC的闪存数据库缓冲区算法①
基于三菱FXPLC的感应淬火机床与PC机的串行通信实现
VC.NET下实现dsPIC单片机与PC机的通信
基于单片机与PC机的电气量采集系统设计
初涉缓冲区
VIVID3彩色超声仪结构原理及维修
网格化存储的几项关键技术分析
多目标缓冲区生成算法