您现在的位置: |
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) 停机诊断。停机诊断是指在系统开始运行前,或发生故障(包括故障先兆)系统停止运行后,利用计算机进行诊断。它一般是用软件控制进行阶段性的运行,如传送数据或模拟进行单项的控制动作。逐项检查硬件线路的功能,有选择地查找故障部位。这种诊断程序可以与运行用的系统程序分开,在须要进行诊断时再输入计算机。必要时,还可冲掉部分系统程序而装入内存。 |