《CNC装置的软件结构.doc》由会员分享,可在线阅读,更多相关《CNC装置的软件结构.doc(33页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-dateCNC装置的软件结构CNC装置的软件结构CNC装置的软件结构从逻辑上讲,这些任务可看成一个个功能模块,模块之间存在着偶合关系;从时间上讲,各功能模块之间存在一个时序配合问题。在设计CNC装置的软件时,如何组织和协调这些这些功能模块,使之满足一定的时序和逻辑关系,就是CNC装置软件结构要考虑的问题。 一、CNC装置软件和硬件的功能界面CNC装置是由软件和硬件组成的,硬件
2、为软件的运行提供支持环境。在信息处理方面,软件与硬件在逻辑上是等价的,即硬件能完成的功能从理论上讲也可以由软件来完成。但,硬件和软件在实现这些功能时各有不同的特点:硬件处理速度快,但灵活性差,实现复杂控制的功能困难。软件设计灵活,适应性强,但处理速度相对较慢。如何确定合理确定软硬件的功能分担是CNC装置结构设计的重要任务。这就是所谓软件和硬件的功能界面划分的概念。划分准则是系统的性价比。 图1 CNC软件系统功能框图图1是CNC装置功能界面的几种划分方法。这几种功能界面是CNC装置不同时期不同产品的划分。其中后面两种是现在的CNC系统常用的方案。反映出软件所承担的任务越来越多,硬件承担的任务越
3、来越少。一是因为计算机技术的发展,计算机运算处理能力不断增强,软件的运行效率大大提高,这为用软件实现数控功能提供了技术支持。二是数控技术的发展,对数控功能的要求越来越高,若用软件来实现这些功能,不仅结构复杂,而且柔性差,甚至不可能实现。而用软件实现则具有较大的灵活性,且能方便实现较复杂的处理和运算。因而,用相对较少且标准化程度较高的硬件,配以功能丰富的软件模块CNC系统是当今数控技术的发展趋势。二、CNC装置的数据转换流程 CNC系统软件的主要任务之一是如何将零件加工程序表达的加工信息,变换成各进给轴的位移指令、主轴转速指令和辅助动作指令。其数据转换的过程如图2所示。 图2 共享存储器结构CN
4、C系统硬件结构(一) 译码(解释)译码程序的主要功能是将文本格式(ASCII码)表达的零件加工程序,以程序段为单位转换成后续程序所要求的数据结构(格式)。该数据结构用来描述一个程序段解释后的数据信息。包括:X、Y、Z、等坐标值;进给速度;主轴转速;G代码;M代码;刀具号;子程序处理和循环调用处理等数据或标志的存放顺序和格式。一个译码缓冲区数据结构的例子如下:Struct PROG_BUFFER Char buf_state; /指定缓冲区的状态,0表示缓冲区为空;1表示缓冲区准备好。 int block_num; /以BCD码的形式存放本段的程序段号。 double COOD20; /以二进制
5、的形式存放X、Y、Z、I、J、K、R、A、B等尺寸指令的 数值,单位为um。 int F,S; /以二进制的形式存放进给速度F(mm/min)和主轴转速S(r/min)。 char G0; /以标志形式存放G指令。例如: D7D6D5D4D3D2D1D0 G00 0:无该指令;1:有该指令。 G01G02G03G33; G90/G91 0:G90; 1: G91 char G1; /根据G指令的个数设置字符变量的个数。 char M0; /以标志的形式存放M指令。存放形式同G代码。 char M1; /根据M指令的个数设置字符变量的个数。 char T; /以BCD码的形式存放本段换刀的刀具号
6、。 Char D; /以BCD码的形式存放刀具补偿的刀具半径值。在程序中一般有由若干个由这种结构组成的程序缓冲区组,当前程序段译码后的数据信息存入缓冲区组中空闲的一个。后续程序从该缓冲区中获取数据信息进行工作。下面以一个程序段为例来简要说明译码过程: N06 G90 G01 X200 Y300 F200 ; 译码程序以程序段为单位进行解释,解释中,从零件程序存储区中逐一读出指令:读出:N06 解释:将06 转换为BCD码00000110BCD存入译码缓冲区中的 “block_num” G90 将译码缓冲区中的“G0”的“D6”位置“0” G01 将译码缓冲区中的“G0”的“D1”位置“1” X
7、200 将200转换为二进制码11001000B存入译码缓冲区中的“COOR1” Y300 将300转换为二进制码100101100B存入译码缓冲区中的“COOR2” F200 将200转换为二进制码11001000B存入译码缓冲区中的“F” ; 程序段读完,译码结束。进入下一程序段的解释工作,直至整个缓冲区组被填满,然后,译码程序进入休眠状态。当缓冲区组中有若干个缓冲区置空,系统将再次激活译码程序,按此方式重复进行,直到整个加工程序解释完毕(读到M02或M30)为止。(二) 刀补处理(计算刀具中心轨迹)将零件轮廓变换为刀具中心轨迹,并进行相应的坐标变换,主要工作是:(1)根据绝对坐标(G90
8、)或相对坐标(G91)计算零件轮廓的终点坐标值;(2)根据刀具半径、刀具半径补偿的方向(G41/G42)和零件轮廓的终点坐标值,计算刀具中心轨迹的终点坐标值。(3)根据本段和前段的关系,进行段间连续处理。经刀补处理程序转换的数据存放在刀补缓冲区中,以供后续程序之用。刀补缓冲区与译码缓冲区的结构相似。(三) 速度预处理主要功能是根据加工程序给定的进给速度,计算在每个插补周期内的合成移动量。供插补程序使用。主要完成一下几步计算:(1)计算本段总位移量直线:计算合成位移量L圆弧:计算总角位移量供插补程序判断减速起点或终点判断之用。(2)计算每个插补周期内的合成进给量 L=Ft/60 (m)式中,F进
9、给速度值(mm/min); t数控系统的插补周期(ms)。经速度处理程序转换的数据存放在插补缓冲区中,以供插补程序之用。(四) 插补计算以系统规定的插补周期t定时运行,主要功能是:(1)根据操作面板上“进给修调”开关的设定值。计算本次插补周期的实际合成位移量: L1=L*修调值(2)将L1按插补的线形和本插补点所在的位置分解到各个进给轴,作为各进给轴的位置控制指令(xi,yi)。经插补计算后的数据存放在运行缓冲区中,以供位置控制程序之用。(五) 位置控制 位置控制数据转换流程如图3所示。主要进行各进给轴跟随误差(x3,y3)的计算,并进行调节处理,输出速度控制指令(vx,vy)。 图3 CNC
10、装置数据转换流程示意图 位置控制完成一下几步计算:(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的任务:管理任务:程序管理、显示、诊断、人机交互、 控制任务:译码、刀
11、具补偿、速度预处理、插补运算、位置控制、上述任务不是顺序执行的,而需要多个任务并行处理,如:(1)当机床正在加工时(执行控制任务),CRT要实时显示加工状态(管理任务)。控制与管理并行。(2)当加工程序送入系统(输入)时,CRT实时显示输入内容(显示)。管理任务之间的并行。(3)为了保证加工的连续性,译码、刀具补偿、速度处理、插补运算、位置控制必须同时不间断的执行。控制任务之间的并行。2 基于并行处理的多任务调度技术 并行处理是指软件系统在同一时刻或同一时间间隔内完成两个或两个以上任务处理的方法。采用并行处理技术的目的是为了提高CNC装置资源的利用率和系统处理速度。并行处理的实现方式与CNC系
12、统硬件结构密切相关,常采用以下方法: (1)资源分时共享:对单CPU装置。采用“分时”来实现多任务的并行处理。其方法是:在一定的时间长度(常称时间片)内,根据各任务的实时性要求程度,规定它们CPU的时间,是它们按规定的顺序和规则分时共享系统的资源。 解决各任务CPU(资源)时间的分配原则。主要有两个问题:其一,各任务何时占用CPU,即任务的优先级分配问题。其二,各任务占用CPU的时间长度,即时间片的分配问题。图4 各任务占用CPU时间示意图单CPU的CNC装置中,通常采用循环调度和优先抢占调度相结合的方法来解决上述问题的。图4是一个典型的多任务分时共享CPU的时间分配图。循环调度:若干个任务(
13、显示、译码、刀补、I/O、)在一个时间片内顺序轮流执行;优先抢占调度:将任务按实时性要求的程度,分为不同的优先级,优先级别高的任务优先执行(优先),优先级别高的任务可随时中断优先级别底的任务的运行(抢占)。假定某CNC装置软件将其功能仅分为三个任务:位置控制、插补运算和背景程序(包含若干任务循环调度运行)。位置控制优先级别最高,规定4ms执行一次,由定时中断激活;插补运算次之,规定8ms执行一次,由定时中断激活;插补背景程序最低,当位置控制和插补运算都不执行时执行。运行过程是:在初始化后,自动进入背景程序,轮流反复执行各子任务。当位置控制和插补运算需要执行时,随时中断循环调度中运行的程序(背景
14、程序),位置控制可随时中断插补运算。各任务运行占用CPU时间如图4所示。可以看出:在任何时刻只有一个任务占用CPU;从一个时间片(8或16ms)来看,CPU并行执行了三个任务。即资源分时共享的并行处理是宏观意义上的,微观上还是各个任务顺序执行的。(3)并发处理和流水处理:在多CPU结构的CNC装置中,根据各任务间的关联程度,可采用两种策略实现多任务并行处理。其一,如果任务之间的关联程度不高。则将各任务分别安排一个CPU,使其同时执行,这就是所谓的“并发处理”;其二,如果各任务之间的关联程度较高,即一个任务的输出是另一任务的输入,则采用流水处理的方法。它是利用重复的资源,将一个大任务分成若干个彼
15、此关联的子任务(如将插补准备分为:译码、刀补处理、速度预处理三个子任务),然后按一定顺序安排每个资源执行一个任务。如:CPU1执行译码、CPU2执行刀补处理、CPU3执行速度预处理,t1:CPU1执行第一个程序段的译码;t2:CPU2执行第一个程序段的刀补处理,同时CPU1执行第二个程序段的译码;t3:CPU3执行第一个程序段的速度预处理并输出第一个程序段插补预处理后的数据,同时,CPU2执行第二个程序段的刀补处理,CPU1执行第三个程序段的译码,t4:CPU3执行第二个程序段的速度预处理并输出第二个程序段插补预处理后的数据,同时,CPU2执行第三个程序段的刀补处理,CPU1执行第四个程序段的
16、译码;。这个处理过程与生产线上分不同工序加工零件的流水作业一样。可以大大缩短两个程序段之间输出的间隔时间。可以看出,在任何时刻均有两个或两个以上的任务在并发执行。流水处理的关键是时间重叠,以资源重复为代价换取时间上的重叠,以空间复杂性换取时间上的快速性。(二)实时性和优先抢占调度机制实时性:指某任务的执行有严格的时间要求,即必须在系统的规定时间内完成,否则将导致执行结果错误和系统故障。1 实时性任务的分类从各任务对实时性要求的角度看,基本上可分为:强实时性任务:(1)实时突发性任务:特点是任务的发生具有随机性和突发性,是一种异步中断事件,往往有很强的实时性要求。如:故障中断(急停、机械限位、硬
17、件故障)、机床PLC中断。(2)实时周期性任务:任务是按一定的事件间隔发生的。如:插补运算、位置处理。为保证加工精度和加工过程的连续性,这类任务的实时性是关键。这类任务,除系统故障外,不允许被其他任务中断。弱实时性任务:任务的实时性相对较弱,只需要在某一段时间内得以运行即可。在系统设计时,安排在背景程序中或根据重要性设置为级别较低的优先级由调度程序进行合理的调度。如:显示、加工程序编辑、插补预处理等。2 优先抢占调度机制为了满足CNC装置实时任务的要求,系统的调度机制必须具有能根据外界的实时信息以足够快的速度进行任务调度的能力。优先抢占调度机制使是系统具有这一能力的调度技术。它是基于实时中断技
18、术的任务调度机制。中断技术是计算机响应外部事件的一种处理技术,特点是能按任务的重要程度和轻重缓急对其进行响应,而CPU也不必为其开销过多的时间。优先抢占调度机制有两个功能:优先调度:在CPU空闲时,若同时有多个任务请求执行,优先级别高的任务将优先执行。抢占方式:在CPU正在执行某任务时,若另一优先级更高的任务请求执行,CPU将立即终止正在执行的任务,转而响应优先级别更高的任务的请求。优先抢占调度机制是由硬件和软件共同实现的,硬件主要产生中断请求信号,由提供中断功能的芯片和电路组成(中断管理芯片:8259;定时计数器:8263、8254)。软件主要完成:硬件芯片的初始化、任务优先级定义方式、任务
19、切换处理(断点的保护与恢复、中断向量的保持与恢复)等。四、CNC装置软件结构模式 结构模式:软件的组织管理方式,即任务的划分方式、任务调度机制、任务间的信息交换机制、系统集成方法。解决的问题是:如何协调各任务的执行,使满足一定的时序配合要求和逻辑关系,以满足CNC装置的各种控制要求。结构模式有:(一) 前后台型结构模式 任务划分方式: 前台程序:强实时性任务,包括:插补运算、位置控制、故障诊断等任务; 后台程序:弱实时性任务,包括:显示,加工程序的编辑和管理、系统的输入和输出、插补预处理等。任务调度机制:前台程序为中断服务程序,采用优先抢占调度机制。 后台程序为循环运行程序,采用顺序调度机制。 在运行中,后台程序不断地定时被前台中断程序所打断。信息交换:通过缓冲区实现。(二) 中断型结构模式任务划分方式:除初始化程序外,所有任务按实时性强弱,分别划分到不同优先级别的中断服务程序中。任务调度机制:采用优先抢占调度机制,由中断管理系统对各级中断服务程序进行管理。信息交换:通过缓冲区实现。整个软件是一个大的中断管理系统。系统实时性好,但模块关系复杂、偶合度大、不利于系统的维护与扩充。-
限制150内