background image

图 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 ;

     

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