一、CNC系统软硬件组合类型
CNC系统是由软件和硬件组成的,硬件为软件的运行提供了支持环境。CNC系统中实时性要求最高的任务就是插补和位控,即在一个采样周期中必须完成控制策略的计算,而且还要留有一定的时间去做其他的事。CNC系统的插补器既可面向软件也可面向硬件。归结起来,主要有以下三种类型:
(1) 不用软件插补器,插补完全由硬件完成的CNC系统。
(2) 由软件插补器完成粗插补,由硬件插补器完成精插补的CNC系统。
(3) 带有完全用软件实施的插补器的CNC系统。
图3-7明了三种典型CNC系统的软硬件界面关系。
图3-7 三种典型软硬件界面
二、CNC系统的控制软件结构特点
CNC系统是一个专用的实时多任务计算机系统,在它的控制软件中融合了当今计算机软件技术中的许多先进技术,其中最突出的是多任务并行处理和多重实时中断。下面分别加以介绍。
1、多任务并行处理
(1) CNC系统的多任务性。CNC系统通常作为一个独立的过程控制单元用于工业自动化生产中,因此它的系统软件必须完成管理和控制两大任务。系统的管理部分包括输入、I/O处理、显示和诊断。系统的控制部分包括译码、刀具补偿、速度处理、插补和位置控制。在许多情况下,管理和控制的某些工作必须同时进行。例如,当CNC系统工作在加工控制状态时,为了使操作人员能及时地了解CNC系统的工作状态,管理软件中的显示模块必须与控制软件同时运行。当CNC系统工作在NC加工方式时,管理软件中的零件程序输入模块必须与控制软件同时运行。而当控制软件运行时,其本身的一些处理模块也必须同时运行。例如,为了保证加工过程的连续性,即刀具在各程序段之间不停刀,译码、刀具补偿和速度处理模块必须与插补模块同时运行,而插补又必须与位置控制同时进行。
下面给出CNC系统的任务分解图(图3-10(a))和任务并行处理关系图(图3-10(b))。在图3-10(b)中,双向箭头表示两个模块之间有并行处理关系。
(2) 并行处理的概念。并行处理是指计算机在同一时刻或同一时间间隔内完成两种或两种以上性质相同或不相同的工作。并行处理最显著的优点是提高了运算速度。拿n位串行运算和n位并行运算来比较,在元件处理速度相同的情况下,后者运算速度几乎提高为前者的n倍。这是一种资源重复的并行处理方法,它是根据“以数量取胜”的原则大幅度提高运算速度的。但是并行处理还不止于设备的简单重复,它还有更多的含义。如时间重叠和资源共享。所谓时间重叠是根据流水线处理技术,使多个处理过程在时间上相互错开,轮流使用同一套设备的几个部分。而资源共享则是根据“分时共享”的原则,使多个用户按时间顺序使用同一套设备。目前在CNC系统的硬件设计中,已广泛使用资源重复的并行处理方法,如采用多CPU的系统体系结构来提高系统的速度。而在CNC系统的软件设计中则主要采用资源分时共享和资源重叠的流水线处理技术。
(3) 资源分时共享。在单CPU的CNC系统中,主要采用CPU分时共享的原则来解决多任务的同时运行。一般来讲,在使用分时共享并行处理的计算机系统中,首先要解决的问题是各任务占用CPU时间的分配原则,这里面有两方面的含义:其一是各任务何时占用CPU;其二是允许各任务占用CPU的时间长短。在CNC系统中,对各任务使用CPU是用循环轮流和中断优先相结合的方法来解决。图3-10(c)是一个典型CNC系统各任务分时共享CPU的时间分配图。系统在完成初始化以后自动进入时间分配环中,在环中依次轮流处理各任务。而对于系统中一些实时性很强的任务则按优先级排队,分别放在不同中断优先级上,环外的任务可以随时中断环内各任务的执行。每个任务允许占有CPU的时间受到一定限制,通常是这样处理的,对于某些占有CPU时间比较多的任务,如插补准备,可以在其中的某些地方设置断点,当程序运行到断点处时,自动让出CPU,待到下一个运行时间里自动跳到断点处继续执行。
(4) 资源重叠流水处理。当CNC系统处在NC工作方式时,其数据的转换过程将由零件程序输入、插补准备(包括译码、刀具补偿和速度处理)、插补、位置控制4个子过程组成。如果每个子过程的处理时间分别为 , , , ,那么一个零件程序段的数据转换时间将是t= + + + 如果以顺序方式处理每个零件程序段,即第一个零件程序段处理完以后再处理第二个程序段,依此类推,这种顺序处理时的时间空间关系如图3-11(a)所示。从图上可以看出,如果等到第一个程序段处理完之后才开始对第二个程序段进行处理,那么在两个程序段的输出之间将有一个时间长度为t的间隔。同样在第二个程序段与第三个程序段的输出之间也会有时间间隔,依此类推。这种时间间隔反映在电机上就是电机的时转时停,反映在刀具上就是刀具的时走时停。不管这种时间间隔多么小,这种时走时停在加工工艺上都是不允许的。消除这种间隔的方法是用流水处理技术。采用流水处理后的时间空间关系如图3-11(b)所示。流水处理的关键是时间重叠,即在一段时间间隔内不是处理一个子过程,而是处理两个或更多的子过程。从图3-11(b)可以看出,经过流水处理后从时间 开始,每个程序段的输出之间不再有间隔,从而保证了电机转动和刀具移动的连续性。从图3-11(b)中可以看出,流水处理要求没一个处理子程序的运算时间相等。而在CNC系统中每一个子程序所需的处理时间都是不相等的,解决的办法是取最长的子程序处理时间为处理时间间隔。这样当处理时间较短的子程序时,处理完成之后就进入等待状态。
(a) 顺序处理
(b) 流水处理
图3-11 资源重叠流水处理 在单CPU的CNC装置中,流水处理的时间重叠只有宏观的意义,即在一段时间内,CPU处理多个子程序,但从微观上看,各子程序分时占用CPU时间。
2、实时中断处理
CNC系统控制软件的另一个重要特征是实时中断处理。CNC系统的多任务性和实时性决定了系统中断成为整个系统必不可少的重要组成部分。CNC系统的中断管理主要靠硬件完成,而系统的中断结构决定了系统软件的结构。其中断类型有外部中断、内部定时中断、硬件故障中断以及程序性中断等。
(1) 外部中断。主要有纸带光电阅读机读孔中断、外部监控中断(如紧急停、量仪到位等)和键盘操作面板输入中断。前两种中断的实时性要求很高,通常把这两种中断放在较高的优先级上,而键盘和操作面板输入中断则放在较低的中断优先级上。在有些系统中,甚至用查询的方式来处理它。
(2) 内部定时中断。主要有插补周期定时中断和位置采样定时中断。在有些系统中,这两种定时中断合二为一。但在处理时,总是先处理位置控制,然后处理插补运算。
(3) 硬件故障中断。它是各种硬件故障检测装置发出的中断,如存储器出错、定时器出错、插补运算超时等。
(4) 程序性中断。它是程序中出现的各种异常情况的报警中断,如各种溢出、清零等。
三、CNC系统的控制软件及其工作过程
控制软件是为完成特定CNC(或MNC)系统各项功能所编制的专用软件,又称为系统软件(或系统程序)。因为CNC(或MNC)系统的功能设置与控制方案各不相同,各种系统软件在结构和规模上差别很大。系统程序的设计与各项功能的实现及其将来的扩展有最直接的关系,是整个CNC(或MNC)系统研制工作中关键性的和工作量最大的部分。
前面曾提到,系统软件一般由输入、译码、数据处理(预计算)、插补运算、速度控制、输出控制、管理程序及诊断程序等部分构成。下面分别加以介绍。
1、输入
CNC系统中一般通过纸带阅读机、磁带机、磁盘及键盘输入零件程序,且其输入大都采用中断方式。在系统程序中有相应的中断服务程序,如纸带阅读机中
断服务程序及键盘中断服务程序等。当纸带阅读机读入一个字符至接口中时,就向主机发出中断,由中断服务程序将该字符送入内存。同样,每按一个键则表示向主机申请一次中断,调出一次键盘服务程序,对相应的键盘命令进行处理。
从阅读机及键盘输入的零件程序,一般是经过缓冲器以后,才进入零件程序存储器的。零件程序存储器的规模由系统设计员确定。一般有几K字节,可以存放许多零件程序。例如7360系统的零件程序存储器为5K,可存放20多个零件程序。
键盘中断服务程序负责将键盘上打入的字符存入MDI缓冲器,按一下键就是向主机申请一次中断。其框图如图3-16所示。
图3-16 键盘中断服务程序
2、译码
由前面的讨论可知,经过输入系统的工作,已将数据段送入零件程序存储器。下一步就是由译码程序将输入的零件程序数据段翻译成本系统能识别的语言。一个数据段从输入到传送至插补工作寄存器需经过以下几个环节,如图3-17所示。
图3-17 一个数据段经历之过程
从原理和本质上说,软件译码与硬件译码相同。对于8单位的纸带程序,一个字符占8位。在16位字长的缓冲器中,一个字可存放两个字符。数据段长的则占的字数多。译码程序按次序将一个个字符和相应的数字进行比较,若相等了,则说明已输入了该字符。它就好像在硬件译码线路中,一个代码输入时只打开相应的某一个与门一样。所不同的是译码程序是串行工作的,即一个一个地比较,一直到相等时为止。而硬件译码线路则是并行工作的,因而速度较快。以ISO码为例,M为 ,即M为八进制的 ,S为 ,T为 ,F为 ,……,因此,在判定数据段中是否已编入M,S,T或F字时,就可以将输入的字符和这些八进制数相比较,若相等了,则说明相应的字符已输入,立即设立相应的标志。
某一个字符输入以后的处理过程包括:
(1) 建立格式标志。如果是位格式,则每个字符所占的格式字的位数不同。
(2) 根据输入字符的不同,确定相应的存放数值的地址。例如,M码的值存放在1000H,S码的值存放在1002H,……;有的系统则对于各专用地址码(如N,X,Y,G,M,F等)在存放区域中都有一个位移量,该区域的首址加上地址码所对应的位移量,就可得到该地址码所存放的区域。
(3)确定调用“数码转换程序”的次数。一个代码后总有数字相接,例如M02,S11,X1000000,……。M码的值最多为2位,是码最多为2位(或3位),X码的值最多为7位等。各个系统不尽相同。但对某一个具体系统而言,有一个规定值。如果某一个代码,它的值得最多为2位,那么只需调用数码转换程序两次。所谓数码转换,即把输入的字符(如ASCII码)转换成二进制码在内存中存放。
将不同字符的处理器程序合并起来需要一张信息表。该表中没一个字符均有相应的一栏。栏中内容包括地址偏移量、在格式标志字中的位数及调用数码转换程序的次数。经过一次的算术和逻辑运算即可以完成译码工作。在进行译码的同时,系统要对零件程序作语法检查,如输入的数字个数是否大于允许值,不允许带负号的地址码是否带了负号等。
译码的结果存放在规定的存储区内,存放译码结果的地方叫做译码结果存储器。译码结果存储器以规定的次序存放各代码的值(二进制),且包括一个程序格式标志单元,在该格式标志单元中某一位为1,即表示指定的代码(例如F、S、M……)已经被编入。为了使用方便,有时对G码、M码的每一个值或几个值单独建立标志字。例如,对关于插补方式的G00,G01,G02,G03建立一个标志字,该标志字为0时代表已编入了G00,为1时代表婊入了G01……。
图3-18 译码程序流程图
3、预计算
为了减轻插补工作的负担,提高系统的实时处理能力,常常在插补运算前先进行数据的预处理,例如,确定圆弧平面、刀具半径补偿的计算等。当采用数字积分法时,可预先进行左移规格化的处理和积分次数的计算等,这样,可把最直接、最方便形式的数据提供给插补运算。
数据预处理即预计算,通常包括刀具长度补偿、刀具半径补偿计算、象限及进给方向判断、进给速度换算和机床辅助功能判断等。在第二章中已对刀具半径补偿计算的方法作了介绍。下面仅叙述速度计算及控制。
进给速度的控制方法与系统采用的插补算法有关,也因不同的伺服系统而有所不同。在开环系统中,常常采用基准脉冲插补法,其坐标轴的运动速度控制是通过控制插补运算的频率,进而控制向步进电机输出脉冲的频率来实现的,速度计算的方法是根据编程F值来确定这个频率值。通常有程序延时法和中断法两种。
(1) 程序延时法。程序延时法又称为程序计时法。这种方法先根据系统要求的进给频率,计算出两次插补运算之间的时间间隔,用CPU执行延时子程序的方法控制两次插补之间的时间。改变延时子程序的循环次数,即可改变进给速度。
(2) 中断方法。中断方法或称为时钟中断法,是指每隔规定的时间向CPU发中断请求,在中断服务程序中进行一次插补运算并发出一个进给脉冲。因此,改变中断请求信号的频率,就等于改变了进给速度。中断请求信号可通过F指令设定的脉冲信号产生,也可通过可编程计数器/定时器产生。如采用Z80CTC作定时器,由程序设置时间常数,每定时到,就向CPU发中断请求信号,改变时间常数 就可以改变中断请求脉冲信号的频率。所以,进给速度计算与控制的关键就是如何给定CTC的时间常数 。
在半闭环和闭环系统中,则是采用时间分割的思想,根据编程的进给速度F值将轮廓曲线分割为采样周期,即迭代周期的进给量——轮廓步长的方法。速度计算的任务是:当直线插补时,计算出各坐标轴的采样周期的步长;当插补圆弧时,为插补程序计算好步长分配系数(有时也称之为角步距)。另外,在进给速度控制中,一般也都有一个升速、恒速(匀速)和降速的过程,以适应伺服系统的工作状态,保证工作的稳定性。此内容将在第五章中详细介绍。
4、插补计算
插补计算是CNC系统中最重要的计算工作之一。在传统的NC装置中,采用硬件电路(插补器)来实现各种轨迹的插补。为了在软件系统中计算所需的插补轨迹,这些数字电路必须由计算机的程序来模拟。利用软件来模拟硬件电路的问题在于:三轴或三轴以上联动的系统具有三个或三个以上的硬件电路(如每轴一个数字积分器),计算机是用若干条指令来实现插补工作的。但是计算机执行每条指令都须要花费一定的时间,而当前有的小型或微型计算机的计算速度难以满足NC机床对进给速度和分频率的要求。因此,在实际的CNC系统中,常常采用粗、精插补相结合的方法,即把插补功能氛围软件插补和硬件插补两部分,计算机控制软件把刀具轨迹分为若干段,而硬件电路再在段的起点和终点之间进行数据的“密化”,使刀具轨迹在允许的误差之内,即软件实现初插补,硬件实现精插补。下面以三坐标直线插补为例予以说明。
5、输出
输出程序的功能是:
(1) 进行伺服控制。如上所述。
(2) 当进给脉冲改变方向时,要进行反向间隙补偿处理。若某一轴由正向变成负向运动,则在反向前输出Q个正向脉冲;反之,若由负向变成正向运动,则在反向前输出Q个负向脉冲(Q为反向间隙值,可由程序预置)。
(3) 进行丝杠螺距补偿。当系统具有绝对零点时,软件可显示刀具在任意位置上的绝对坐标值。若预先对机床各点精度进行测量,作出其误差曲线,随后将各点修正量制成表格存入数控系统的存储器中。这样,数控系统在运行过程中就可对各点坐标位置自动进行补偿,从而提高了机床的精度。
(4) M,S,T等辅助功能的输出。在某些程序段中须要启动机床主轴、改变主轴速度、换刀等,因此要输出M,S,T代码,这些代码大多数是开、关控制,由机床强电执行。但哪些辅助功能是在插补输出之后才执行,哪些辅助功能必须在插补输出前执行,需要在软件设计前预先确认。
6、管理与诊断软件
一般CNC(MNC)系统中的管理软件只涉及两项,即CPU管理和外部设备管理。由于数控机床的加工是以单个零件为对象的,一个零件程序可以分成若干程序段。每个程序段的执行又分成数据分析、运算、走刀控制、其他动作的控制等步骤。通常情况下,这些加工步骤之间多是顺序关系,因此实际的过程就是这些预定步骤的反复执行。在实际系统中,通常多是采用一个主程序将整个加工过程串起来,主控程序对输入的数据分析判断后,转入相应的子程序处理,处理完毕后再返回对数据的分析、判断、运算……。在主控程序空闲时(如延时),可以安排CPU执行预防性诊断程序,或对尚未执行程序段的输入数据进行预处理等。
在CNC系统中,中断处理部分是重点,工作量也比较大。因为大部分实时性较强的控制步骤如插补运算、速度控制、故障处理等都要由中断处理来完成。有的机床将行程超程和报警、阅读机请求、插补等分为多级中断,根据其优先级决定响应的次序。有的机床则只设一级中断,只是在中断请求同时存在时,才用硬件排队或软件询问的方法来定一个顺序。
对于单CPU数控系统而言,常见的软件结构有两种,即前后台型和中断型。
在前后台型结构的CNC系统中,整个控制软件分为前台程序和后台程序。前台程序是一个实时中断服务程序,它几乎承担了全部的实时功能,如插补、位置控制、机床相关逻辑和监控等。后台程序是指实现输入、译码、数据处理及管理功能的程序,亦称背景程序,如图3-25所示。背景程序是一个循环运行程序,
在其运行过程中,前台实时中断程序不断插入,与背景程序相配合,共同完成零件的加工任务。
图3-25 前后台结构
中断型结构的特点是,除了初始化程序之外,系统软件中所有的各种任务模块分别安排在不同级别的中断服务程序中。整个软件就是一个大的中断系统。其管理的功能主要通过各级中断程序之间的相互通信来解决。
能够方便地设置各种诊断程序也是CNC和MNC系统的特点之一。有了较完善
的诊断程序可以防止故障的发生或扩大。在故障出现后可以迅速查明故障的类型和部位,减少故障停机时间。各种CNC(MNC)系统设置诊断程序的情况差别也很大。诊断程序可以包括在系统运行过程中进行检查和诊断;也可以作为服务性程序,在系统运行前或故障停机后进行诊断,查找故障的部位。国外一些公司的CNC系统还可以进行通信(海外)诊断,由通信诊断中心指示系统或操作者进行某些试运行,以查找故障隐患或故障部位。
(1) 运行中的诊断。在普通NC系统中已包含有在运行中进行诊断的萌芽,如纸带输入时的横向与纵向(水平与垂直)奇偶校验,同步孔丢失校验,非法指令码检查等。此外还有超程报警等措施。在CNC和MNC系统中做这些工作更加方便。而且还可以用打字机指示各种项目诊断的结果和用统一编号表示的故障部位。一般来说,运行中进行诊断的程序比较零散,常包含在主控程序及中断处理程序分支中。常见的手段有:
① 用代码和检查内存:此法只能对程序中那些不变区域进行检查,而且必须是在恢复系统程序的初态后进行的。
② 格式检查:此法一般用在纸带输入时,对零件加工源程序进行检查,包括奇偶校验、非法指令代码(本系统中不使用的指令代码)、数据超限等。
③ 双向传送数据校验:此法常用在间接型CNC系统或群控系统中。手动数据输入也可用此法校验。
④ 清单校验:即利用所配备的打印设备打印程序清单及某些中间数据,综合性地诊断主机、接口及软件的故障。
(2) 停机诊断。停机诊断是指在系统开始运行前,或发生故障(包括故障先兆)系统停止运行后,利用计算机进行诊断。它一般是用软件控制进行阶段性的运行,如传送数据或模拟进行单项的控制动作。逐项检查硬件线路的功能,有选择地查找故障部位。这种诊断程序可以与运行用的系统程序分开,在须要进行诊断时再输入计算机。必要时,还可冲掉部分系统程序而装入内存。
(3) 通信诊断。通信诊断是由用户经电话线路与通信诊断中心联系,由该中心的计算机给用户的计算机发送诊断程序,程序指示CNC系统进行某种运行,同时收集数据,分析系统的状态。将系统状态与存储的应有工作状态以至某些极限参数作比较,以确定系统的工作状态是否正常,故障的部位及故障的趋势。可见,通信诊断既可用作诊断异常状态的工具,又可用作预防性检修的手段。因为用户与通信诊断中心之间可使用跨洋电话系统,故又被称为海外诊断。 |