图1 数控系统结构原理图
1 数控系统的硬件结构
- 智能运动控制器
- 智能运动控制器是一个较高性能的伺服运动控制器。每一两块块控制器上有三块或四块控制芯片,每一块芯片独立地控制一个轴的运动,可对芯片进行初始化编程,规定各控制芯片的工作状态:发脉冲的速率,发脉冲的个数。本文采用两块智能运动控制器控制五轴联动。
- 数控系统硬件结构及工作原理
- 该数控系统的控制是在工业控制机(IPC)平台的基础上,采用两块智能运动控制器进行位控。工控机上的CPU 和运动器上的控制芯片构成了主从式处理机构。主机完成粗插补运算,得到每一次各轴需运动的步数及方向,用这些数据去控制智能运动控制器的工作状态:各轴的运动步数、发脉冲速率:再由智能运动控制器完成五轴的精插补。工作台的运行情况通过传感器直接反馈输入智能运动控制器,此信号可由主CPU读入。其结构原理如图1所示。
- 闭环控制系统
- 在这种系统中,主机读入长光栅传感器反馈回的工作台的实际位移量,将此位移量与理想值相比较,得到误差信号并用此误差去控制智能运动控制器,使实际值与理想值趋于重合,从而消除运行误差。该系统如图2所示。
图2 闭环控制系统 - 在这种系统中,主机读入长光栅传感器反馈回的工作台的实际位移量,将此位移量与理想值相比较,得到误差信号并用此误差去控制智能运动控制器,使实际值与理想值趋于重合,从而消除运行误差。该系统如图2所示。
2 数控系统的软件设计
- 数字控制的插补算法
- 保证数控工作台沿着预定的轨迹运行的问题,实质上是如何通过插补运算,实现按一定规律分配进给脉冲,控制伺服电机运动。插补运算是根据数控语言代码提供的轨迹类型选择相应算法,保证在一定精度范围内计算出一段直线或圆弧的一系列中间点的坐标值,并逐次以增量坐标值或脉冲序列形式输出,使伺服电机以一定速度转动,控制工作台按预定的轨迹运动。数控技术中采用的插补算法可归纳为两类:
- 一次插补法 如逐点比较法、数字积分器法等,这类算法,进给速度受到限制,过去的硬件数控系统常常采用。
- 二次插补法 它将插补功能分为粗插补和精插补两部份完成,常用的有扩展数字积分器法和时间分割法。这类算法,在每个插补运算周期里输出的不是单个脉冲,而是一个线段(位置增量坐标数据),因而能显著提高进给速度,在计算机数控系统中得到广泛采用。本系统的插补算法就是采用时间分割法,它根据进给速度计算出每个固定时间内的进给量,进行粗插补运算,求出这个插补周期各联动坐标应移动的位置增量值,然后再通过精插补将该插补周期的各轴位置增量值变换成各坐标方向的均匀运动。
- 保证数控工作台沿着预定的轨迹运行的问题,实质上是如何通过插补运算,实现按一定规律分配进给脉冲,控制伺服电机运动。插补运算是根据数控语言代码提供的轨迹类型选择相应算法,保证在一定精度范围内计算出一段直线或圆弧的一系列中间点的坐标值,并逐次以增量坐标值或脉冲序列形式输出,使伺服电机以一定速度转动,控制工作台按预定的轨迹运动。数控技术中采用的插补算法可归纳为两类:
- 基于扩充内存的时间分割插补法
- 数控系统的加工过程一般要经过插补、输出脉冲、反馈等几个过程。传统的方法是插补一次,发出一个脉冲,检测一次误差。在这种方法下,控制过程是一个顺序过程,其中各个环节环环相扣,互相制约,因此很难实现误差的快速响应。同时,由于DOS系统的寻址能力有限,因此必须考虑存放大量插补数据的方法。为了解决这些问题,本系统采用基于扩充内存的时间分割插补方法:为了提高系统的实时性,控制方法上采用读入运行代码文件后,先在主机完成粗插补运算,并把插补得到的数据放入扩充内存,然后采用中断的方式从扩充内存取数,并与反馈系统检测的误差数据合并处理,再用得到的结果(各轴的位置坐标增量数据)去控制智能运动控制器的工作状态,然后由智能运动控制器完成精插补,它发出序列脉冲去直接控制各个伺服驱动器。放入扩充内存的数据类型定义如下:
- struct emms
- {char complete:
- char dirr[5]:
- char stepp[5]:
- }:
- 其中complete 是定义粗插补数据是否完成的标志,dirr[5]定义五轴的运动方向:000为不动,001为正转,010为反转:stepp[5]定义五轴的运动步数。中断程序从扩充内存读入这些数据后,再与反馈系统检测的误差数据合并处理,并用得到的结果去控制智能运动控制器控制芯片的工作状态,就可完成精插补,实现在相同时间内各轴沿相应方向运动一定的步数。图3 是系统闭环控制程序框图。
图3 闭环控制程序框图- 这里采用的闭环控制方法是在精插补前根据误差补偿数据自动与粗插补数据合并而实现的。例如取得粗插补数据后(各轴应运动的步数及方向),在发给智能运动控制器之前,会根据系统反馈的误差数据重新配置,假设粗插补数据0轴是:dirr[0]=001,stepp[0]=001,而系统反馈情况是上一次反转运行有一步未运行,则精插补数据变为dirr[0]=000,stepp[0]=000,此次0轴电机不运行:如反馈情况是上一次正转有一步未运行,则精插补数据变为dirr[0]=001,step-p[0]=002,此次0轴电机正转运行- 步。经过这样的处理后,位控系统及时地将运行误差在紧邻的一个粗插补数据进行补偿,避免了影响后面的插补运行,提高了反馈补偿的响应速度和精度。而传统的间接控制方法是将误差补偿数据编入插补算法中,这样补偿被人为地滞后,而且如果补偿不到位,将影响后面的插补数据精度,其精度和响应速度都降低了。
- 数控系统的加工过程一般要经过插补、输出脉冲、反馈等几个过程。传统的方法是插补一次,发出一个脉冲,检测一次误差。在这种方法下,控制过程是一个顺序过程,其中各个环节环环相扣,互相制约,因此很难实现误差的快速响应。同时,由于DOS系统的寻址能力有限,因此必须考虑存放大量插补数据的方法。为了解决这些问题,本系统采用基于扩充内存的时间分割插补方法:为了提高系统的实时性,控制方法上采用读入运行代码文件后,先在主机完成粗插补运算,并把插补得到的数据放入扩充内存,然后采用中断的方式从扩充内存取数,并与反馈系统检测的误差数据合并处理,再用得到的结果(各轴的位置坐标增量数据)去控制智能运动控制器的工作状态,然后由智能运动控制器完成精插补,它发出序列脉冲去直接控制各个伺服驱动器。放入扩充内存的数据类型定义如下: