最新新闻
我要投稿
联系电话:027-87592219/20/21转188
投稿邮箱:tb@e-works.net.cn
您所在的位置:首页 > 智库 > 智能生产

NC代码译码的设计及在数控技术中的应用

发布时间:2013-07-10 作者:游达章 张道德 苏旭武  来源:万方数据
关键字:数控 NC 程序 
在单片机作为微处理器的经济型数控系统中,采用PC作为上位机来发送控制信息给单片机。为了提高单片机对信息的识别和处理的效率和速度,根据NC代码的特点设计了一种NC代码向二进制代码转换的规则,将数控程序转换成二进制编码,并将二进制数据按一定的格式组成帧,通过串口通信将帧数据发送给下位机。

  1.2 帧格式设计

  根据上文可以知道,NC程序中指令、数据虽然很多,但不是每个都需要传送,相反每次都只有很少的几类指令和数据需通过串口传送到下位机。三类的直接控制指令是必须要发送的,NC程序最终都要转化为这三类数据,所以设计帧格式如表2,说明如下。

表2 帧格式

  1)G指令和M代码:G指令和M代码各100条,分别用一个字节来表达G或M功能;

  2)坐标类:X、Z、R,这些坐标均用三个字节表示,可表示的增量坐标范围为:一2”一+223(一8 131一+8 m);

  3)主轴、进给、刀具:S、F、T用单字节表示,可以有2S=256种不同的值。

  4)在帧的控制数据之前,设置一个帧头,占一个字节,以作信息位。

  1.2.1 设置帧头

  NC指令中许多是模态代码,即在下一段程序中可能不出现上段程序中相同的指令,为方便处理,用帧头的8个位来标识帧中各项数据的有无,如表3。帧头中每位对应帧格式中的直接控制指令的数据类型,用于标识本帧数据中是否存在该项,若所标识的对象数据存在并要发送,则标识位置“1”,否则清“0”。另外,如果下段NC程序段中G、M、X、Z、I、K、F、S、T的数据没有改变,则可认为该帧中不存在对应项(无变化不发送),所以帧的长度是不固定的,帧的长度可以从帧头得知,帧字节最长为15个。

表3 帧头及各位所标识的对象

  1.2.2 G、M指令编码

  G指令和M指令各100条,而一个字节8位能表示256种情况,所以分别用一个字节来表示G指令和M代码。直接用二进制数字对应字地址G和M的地址值。如G90对应编码为0101 1010。

  1.2.3 实例

  例:对如下数控代码进行转换:
G00,G90,G42,X35000,Z160000,F50,S07,T33,M03,LF

  该行代码中带下画线的指令为直接控制指令,地址值是要发送的数据,其余是间接控制指令,需要在PC机中先行处理,其中G90为绝对坐标编程,计算时要转化为相对增量,假设刀具前一位置在原点,增量即为35 000和160 000;G42是右刀补,假设刀具半径为5000个单位,则实际上X增量为35000+5 000=40 000,Z增量为160 000 4-5 000=165 000。


  1)确定要发送的数据:G、M、X、Z、F、S、T;

  2)确定帧头:0XF7(1111 0111 B),这就是帧的首字节;

  3)第二、三字节为G:OX00(coo);M:0X03(M03);

  4)第四、五、六字节为X:OX00 0X9c 0X40(40 000的二进制码);

  5)第七、八、九字节为Z:0X02 0X84 0X88(165 000的二进制码);

  6)第十、十一、十二字节为FST:0X32 OX07 0X21。本行代码成帧后为:F7 00 03 00 9e 40 02 8488 32 07 21共十二字节。

2 译码在数控技术中的应用

  根据设计的译码方案,在PC机中使用VC++等开发工具来实现,将每段NC程序段转化为数据帧,利用串口发送给以单片机作主控芯片的数控系统,单片机接收到数据后,根据帧头,判别各项数据的有无,并取出数据放到相应的存储单元中,做插补计算和控制的源数据用。在通信之前,先做好通信协议,规定握手协议、校验方式、波特率等。采用数据校验,可增加数据传输的可靠性,但也因为采用校验,增加了帧的长度,本文未讨论数据校验,有关校验的问题可参考相关文献。数据的发送以帧为单位采用握手方式一帧一帧进行,保证译码数据准确传到单片机。

3 总结

  本文阐述了一种NC代码转化通信编码的译码方案,能有效地将数控程序转化到固定帧格式的二进制数据,易于单片机的识别和处理。单片机接收到数据后,根据协议规则,反向处理,很容易得到插补的类型、坐标、速度等数据,从而实现插补。本文创新之处在于摒弃传统的编码方法,根据NC自身特点,设计专门的译码方案,能提高数控系统对数控程序编译和解释的效率。 

2
本文为授权转载文章,任何人未经原授权方同意,不得复制、转载、摘编等任何方式进行使用,e-works不承担由此而产生的任何法律责任! 如有异议请及时告之,以便进行及时处理。联系方式:editor@e-works.net.cn tel:027-87592219/20/21。