CNC装置的软件结构

   2023-06-15 互联网2980
核心提示:CNC装置的软件是一个典型又复杂的实时系统,它的许多控制任务,如零件程序的输入与译码、刀具半径补偿、插补运算、位置控制以及

CNC装置的软件是一个典型又复杂的实时系统,它的许多控制任务,如零件程序的输入与译码、刀具半径补偿、插补运算、位置控制以及精度补偿都是由软件实现的。从逻辑上讲,这些任务可看成一个个功能模块,模块之间存在着偶合关系;从时间上讲,各功能模块之间存在一个时序配合问题。在设计CNC装置的软件时,如何组织和协调这些这些功能模块,使之满足一定的时序和逻辑关系,就是CNC装置软件结构要考虑的问题。

一、CNC装置软件和硬件的功能界面

CNC装置是由软件和硬件组成的,硬件为软件的运行提供支持环境。在信息处理方面,软件与硬件在逻辑上是等价的,即硬件能完成的功能从理论上讲也可以由软件来完成。但,硬件和软件在实现这些功能时各有不同的特点:

硬件处理速度快,但灵活性差,实现复杂控制的功能困难。

软件设计灵活,适应性强,但处理速度相对较慢。

如何确定合理确定软硬件的功能分担是CNC装置结构设计的重要任务。这就是所谓软件和硬件的功能界面划分的概念。划分准则是系统的性价比。

图1 CNC软件系统功能框图

图1是CNC装置功能界面的几种划分方法。

这几种功能界面是CNC装置不同时期不同产品的划分。其中后面两种是现在的CNC系统常用的方案。反映出软件所承担的任务越来越多,硬件承担的任务越来越少。一是因为计算机技术的发展,计算机运算处理能力不断增强,软件的运行效率大大提高,这为用软件实现数控功能提供了技术支持。二是数控技术的发展,对数控功能的要求越来越高,若用软件来实现这些功能,不仅结构复杂,而且柔性差,甚至不可能实现。而用软件实现则具有较大的灵活性,且能方便实现较复杂的处理和运算。因而,用相对较少且标准化程度较高的硬件,配以功能丰富的软件模块CNC系统是当今数控技术的发展趋势。

二、CNC装置的数据转换流程

CNC系统软件的主要任务之一是如何将零件加工程序表达的加工信息,变换成各进给轴的位移指令、主轴转速指令和辅助动作指令。其数据转换的过程如图2所示。

图2 共享存储器结构CNC系统硬件结构

(一) 译码(解释)

译码程序的主要功能是将文本格式(ASCII码)表达的零件加工程序,以程序段为单位转换成后续程序所要求的数据结构(格式)。该数据结构用来描述一个程序段解释后的数据信息。包括:X、Y、Z、…等坐标值;进给速度;主轴转速;G代码;M代码;刀具号;子程序处理和循环调用处理等数据或标志的存放顺序和格式。一个译码缓冲区数据结构的例子如下:

Struct PROG_BUFFER

Char buf_state; //指定缓冲区的状态,0表示缓冲区为空;1表示缓冲区准备好。

int block_num; //以BCD码的形式存放本段的程序段号。

double COOD[20]; //以二进制的形式存放X、Y、Z、I、J、K、R、A、B等尺寸指令的

数值,单位为um。

int F,S; //以二进制的形式存放进给速度F(mm/min)和主轴转速S(r/min)。

char G0; //以标志形式存放G指令。例如:

D7 D6 D5 D4 D3 D2 D1 D0

G00 0:无该指令;1:有该指令。

G01G02G03G33;

G90/G91 0:G90; 1: G91

char G1; //根据G指令的个数设置字符变量的个数。

char M0; //以标志的形式存放M指令。存放形式同G代码。

char M1; //根据M指令的个数设置字符变量的个数。

char T; //以BCD码的形式存放本段换刀的刀具号。

Char D; //以BCD码的形式存放刀具补偿的刀具半径值。

在程序中一般有由若干个由这种结构组成的程序缓冲区组,当前程序段译码后的数据信息存入缓冲区组中空闲的一个。后续程序从该缓冲区中获取数据信息进行工作。

下面以一个程序段为例来简要说明译码过程:

N06 G90 G01 X200 Y300 F200 ;

译码程序以程序段为单位进行解释,解释中,从零件程序存储区中逐一读出指令:

读出:N06 解释:将06 转换为BCD码—00000110BCD存入译码缓冲区中的 “block_num”

G90 将译码缓冲区中的“G0”的“D6”位置“0”

G01 将译码缓冲区中的“G0”的“D1”位置“1”

X200 将200转换为二进制码11001000B存入译码缓冲区中的“COOR[1]”

Y300 将300转换为二进制码100101100B存入译码缓冲区中的“COOR[2]”

F200 将200转换为二进制码11001000B存入译码缓冲区中的“F”

; 程序段读完,译码结束。

进入下一程序段的解释工作,直至整个缓冲区组被填满,然后,译码程序进入休眠状态。当缓冲区组中有若干个缓冲区置空,系统将再次激活译码程序,按此方式重复进行,直到整个加工程序解释完毕(读到M02或M30)为止。

(二) 刀补处理(计算刀具中心轨迹)

将零件轮廓变换为刀具中心轨迹,并进行相应的坐标变换,主要工作是:

(1)根据绝对坐标(G90)或相对坐标(G91)计算零件轮廓的终点坐标值;

(2)根据刀具半径、刀具半径补偿的方向(G41/G42)和零件轮廓的终点坐标值,计算刀具中心轨迹的终点坐标值。

(3)根据本段和前段的关系,进行段间连续处理。

经刀补处理程序转换的数据存放在刀补缓冲区中,以供后续程序之用。刀补缓冲区与译码缓冲区的结构相似。

(三) 速度预处理

主要功能是根据加工程序给定的进给速度,计算在每个插补周期内的合成移动量。供插补程序使用。主要完成一下几步计算:

(1)计算本段总位移量

直线:计算合成位移量L

圆弧:计算总角位移量

供插补程序判断减速起点或终点判断之用。

(2)计算每个插补周期内的合成进给量

ΔL=FΔt/60 (μm)

式中,F—进给速度值(mm/min);

Δt—数控系统的插补周期(ms)。

经速度处理程序转换的数据存放在插补缓冲区中,以供插补程序之用。

(四) 插补计算

以系统规定的插补周期Δt定时运行,主要功能是:

(1)根据操作面板上“进给修调”开关的设定值。计算本次插补周期的实际合成位移量:

ΔL1=ΔL*修调值

(2)将ΔL1按插补的线形和本插补点所在的位置分解到各个进给轴,作为各进给轴的位置控制指令(Δxi,Δyi……)。

经插补计算后的数据存放在运行缓冲区中,以供位置控制程序之用。

(五) 位置控制

位置控制数据转换流程如图3所示。主要进行各进给轴跟随误差(Δx3,Δy3)的计算,并进行调节处理,输出速度控制指令(vx,vy)。

图3 CNC装置数据转换流程示意图

位置控制完成一下几步计算:

(1)计算新的位置指令坐标值:

x1新=x1旧+Δx1

y1新=y1旧+Δy1

(2)计算新的位置实际坐标值:

x2新=x2旧+Δx2

y2新=y2旧+Δy2

(3)计算跟随误差:

Δx3=x1新-x2新

Δy3=y1新-y2新

(4)计算速度指令值:

vx=f(Δx3);vy=f(Δy3)

这里,f(.)是位置调节环的控制算法。

三、CNC装置的软件系统特点

(一) 多任务性与并行处理技术

任务—可并行执行的程序在一个数据集合上的运行过程。CNC的功能可定义CNC的任务。

1. CNC装置的多任务性

CNC的任务:管理任务:程序管理、显示、诊断、人机交互、……

控制任务:译码、刀具补偿、速度预处理、插补运算、位置控制、……

上述任务不是顺序执行的,而需要多个任务并行处理,如:

(1)当机床正在加工时(执行控制任务),CRT要实时显示加工状态(管理任务)。控制与管理并行。

(2)当加工程序送入系统(输入)时,CRT实时显示输入内容(显示)。管理任务之间的并行。

(3)为了保证加工的连续性,译码、刀具补偿、速度处理、插补运算、位置控制必须同时不间断的执行。控制任务之间的并行。

2. 基于并行处理的多任务调度技术

并行处理是指软件系统在同一时刻或同一时间间隔内完成两个或两个以上任务处理的方法。采用并行处理技术的目的是为了提高CNC装置资源的利用率和系统处理速度。并行处理的实现方式与CNC系统硬件结构密切相关,常采用以下方法:

(1)资源分时共享:对单CPU装置。采用“分时”来实现多任务的并行处理。其方法是:在一定的时间长度(常称时间片)内,根据各任务的实时性要求程度,规定它们CPU的时间,是它们按规定的顺序和规则分时共享系统的资源。

解决各任务CPU(资源)时间的分配原则。主要有两个问题:

其一,各任务何时占用CPU,即任务的优先级分配问题。

其二,各任务占用CPU的时间长度,即时间片的分配问题。

图4 各任务占用CPU时间示意图

单CPU的CNC装置中,通常采用循环调度和优先抢占调度相结合的方法来解决上述问题的。图4是一个典型的多任务分时共享CPU的时间分配图。

循环调度:若干个任务(显示、译码、刀补、I/O、……)在一个时间片内顺序轮流执行;


 
举报收藏 0打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  隐私政策  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  RSS订阅