公司地址:江苏省海安县开发区
联系电话:0513-85250658
联系人:沈先生
手机:13646285454
邮箱:atm@siteatm.com
网址:http://www.jbjabc.com
技术交流

数控剪板机加工程序的译码与诊断

发布时间:2011-4-29

  数控剪板机加工程序输入到程序缓冲器后,将进入数据预处理环节,为后续的插补运算做好准备工作。预处理环节的主要任务是数控加工程序的译码与诊断、运动轨迹的刀具补偿计算及速度处理等。
  1.数控加工程序译码数控加工程序译码就是将输入到数控加工程序缓冲器或MDI缓冲器的数控加工程序翻译成CNC装置能识别的代码形式。译码过程分代码识别和功能码翻译两大部分。其大致步骤是:将数控加工程序缓冲器或MDI缓冲器的数据逐个取出,先识别其属性,然后作相应的处理。即判断其是字母码(通常为地址符)、功能码,还是数字码。若是字母码,则将其后续的数字码送到相应的译码结果缓冲器单元中。若是功能码,则应进一步判断其功能后再处理。
  (1)代码识别通过软件将数控alto程序缓冲器中的内码读出,并判断该数据的属性。l如果是数字码,立即设置代码标志并转存;如果是字母码,则进一步判断该码的具体功能,鼍然后设置代码标志并转入相应的处理。判断字母码功能一般按查询方式进行(逐个比较每个字符),处理速度较慢。由于对译码实时性要求不高,可将译码程序安排为数控系统的后台软件。当然,在保证代码识别功能的前提下,也应采取某些提高识别速度的措施。例如,先根据平时经验将表2.18中字符出现的频率大致排序,按出现频率高低的顺序进行查询;还可将字符码与数字码分开处理,数字码的内码在数值上等于该数字的BCD码。
  有关数控剪板机加工程序译码处理过程中代码识别的部分流程如图2-110所示。
(2)功能码翻译代码识别确立了各功能代码的特征标志,随后将对各功能码进行相应处理。首先建立一个与数控加工程序缓冲器相对应的译码结果缓冲器;其次考虑缓冲器的规模;最后阅读存储格式。不同的CNC装置译码结果缓冲器的规模和存储格式是不一样的,但对某一个具体的CNC装置而言,译码结果缓冲器的规模和存储格式是固定不变的。最简单的办法是在CNC装置的存储器中划出一块存储区,供数控加工程序中可能出现的各个功能代码设置存储单元,存放对应的特征或数值,后续的处理软件根据需要到对应的存储单元取出数控加工程序信息并予以执行。由于ISO标准、EIA标准所规定的字符和代码都很丰富,因此,针对每个字符或代码都设置存储区,将会形成一个庞大的表格。这显然不切合实际,不仅浪费了内存,而且还会影响译码速度。适当控制译码结果缓冲器的规模,对于提高译码速度是非常必要的。
  由数控代码有关标准JB/13208--1999可知,准备功能代码G和辅助功能代码M是两种数量较大的代码簇。其中有些代码的功能属性相同或相近,它们不可能出现在同一个程序段中,也就是说这些代码具有互斥性。那么,依据这一特点,可将G代码、M代码按功能属性分组,
  每一组代码只需要设置一个独立的内存单元即可,并以特征字来区分本组中的不同代码。对于那些尚未定义功能的代码,不必为它设置内存单元,这样就可以大大压缩译码结果存储器的存储规模,使其短小精悍,从而保证了译码的速度和效率。在这里,可将常用的G代码、M代码按功能属性分组,其中G代码分为六组,M代码分为四组。表2.21 常用M代码分组

   其他功能代码,如主轴功能代码s、进给功能代码F、刀具功能代码T等,它们在一个程序段中只可能出现一次。因此,它们在内存中的地址可以指定。事实上,数控系统可以约定在一个数控加工程序段中,最多允许出现三个不同组的M代码,用Mx、My、Mz表示,故只设置三个内存单元来存放同一程序段中的M指令即可。表2.22所列就是一种典型的译码结果缓冲器的格式,其中,N代码和T代码设计为一个字节,并约定使用压缩型BCD码, 故取值范围为00~99。而所有的坐标都采用两字节带符号的二进制数表示。因此,坐标值的取值范围为一32768~+32767b对于s功能和F功能,则用两字节无符号的二进制数表 示,其取值范围为0~65535。一般G代码和M代码中数值范围为00~99,所以,对G代码和M代码的处理相对简单一些,只要在约定的译码结果缓冲器单元中存放相应的数值即可。
  例如,设在某个数控剪板机加工程序段中有一个G90代码。那么首先要确定G90属于Gf组,然后为了区别是Gf组内的哪一个代码时,可在Gf对应的单元中送入一个″90H″作为特征字,代表已编人G90代码。当然,这个特征字并非固定的,只要保证不会相互混淆,且能表明某个代码的有无即可。为了方便起见,可直接将G代码或M代码后面的数字作为特征码放人对应的内存单元中。但对于G00和MOO的特殊情况,可以自行约定一个标志来表示,以防与初始化清零结果相混淆。
下面以前面采用ISO代码编写的数控加工程序段为例说明译码程序的工作过程。首先从数控加工程序缓冲器中读人一个字符,判断是否是该程序段的第一个字符N,如是则设立标志。接着去取其后紧跟的数字,应该是2位的BCD码,并将它们进行合并,在检查没有错误的情况下将其存入译码结果缓冲器中N代码对应的内存单元。再取下一个字符(G代码),
  同样先设立相应标志,接着分两次取出G代码后面的二位数码(90)。判别出属于Gf组,则在译码结果缓冲器Gf对应的内存单元置入″90H″即可O继续再读人下一字符仍是G代码,并根据其后的数字(01)判断出应属于Ga组,这样只要在Ga对应的内存单元中置入″01H″即可。接着读入的代码是X代码和Y代码及其后紧跟的坐标值,这时需将这些坐标值内码进行拼接,并转换成二进制数,同时检查无误后将其存入X或Y对应的内存单元中。
如此重复进行,一直读到结束字符LF后,才进行有关的结果处理,并返回主程序。这样经过上述译码程序处理后,一个完整的数控加工程序段中的所有功能代码连同它们后面的数字码,都被依次对应地存入到相应的译码结果缓冲器中,从而得到如图2-1II所示的译码结果。这里假设零件程序段内码的首地址为2000H,标准代码的首地址为4000H。
2.数控加工程序的诊断
  数控加工程序的诊断是指CNC装置在程序输入或译码过程中,对不规范的指令格式进行检查、监控及处理的服务操作,其目的在于防止错误代码读入。例如,采用阅读机读人数控加工程序时,诊断程序对阅读机读入的每一个字符实施诊断,判断其是否为错误代码、注销代码,以便进一步处理。这种诊断是针对每一字符或整个程序而言的。在译码过程中,诊断程序将对数控加工程序的语法和逻辑错误进行集中检查,只允许合法的程序段进入后续处理。对检测出的错误作相应的标记,并报警提示。所谓语法错误,是指程序段格式或程序字格式不规范的错误,如T代码后的刀具号不合法,F代码所设置的主轴转速超过了CNC系统规定的取值范围等;所谓逻辑错误则是指整个数控加工程序或一个程序段中功能代码之间互相排斥、互相矛盾的错误。如在同一个数控加工程序段中先后出现两个或两个以上的同组G代码(数控系统约定,同组G代码具有互斥性,同一程序段中不允许出现多个同组G代码)。
3.软件设计
  数控加工程序输入、译码和诊断是CNC装置必须进行的操作,也是数控系统软件的重要组成部分。由于译码结果缓冲器对某种CNC装置来说是固定不变的,因此可采用变址寻址的方式来确定译码结果在内存中存放的地址。为进一步方便寻址,还可在ROM中设置一个译码结果缓冲器表格,并规定每种类型功能代码在该表中的位置(相对表头地址偏移量),以及该功能字的字节数、数据格式等。依据译码结果缓冲器的结构特点,以及译码方法和诊断原则,即可设计数控加工程序在输人过程中的译码与诊断软件。图2—112所示为其程序流程框图。

图2-112译码与诊断程序流程


分享到: