一种数控车仿真软件中数控程序代码解释的介绍

2015-01-28 01:49长江职业学院夏伯融
河北农机 2015年11期
关键词:数组圆弧命令

长江职业学院 夏伯融

21世纪的第二个十年已经过半,运用计算机仿真模拟实际操作已经成为一种重要的训练模式,数控机床仿真已成为我国各级学校数控教学的一种重要手段。下面将一种数控车仿真软件在C#环境中对数控程序代码解释的方法做一定介绍。

数控仿真软件的主要功能是数控程序的图形模拟。当我们输入数控代码后,计算机根本不能识别这些数控代码,所以必须要编译程序来识别代码。为此本人的思路是先建立一个类,这个类中的方法或子程序和需要使用的数控代码相对应。由于数控车图形模拟时主要就是使用G00、G01、G02、G03、G32这几个基础代码,循环代码也只不过是这几个基础代码的组合。而其他G代码和M代码功能是设置机床参数,或是机床屏幕管理和自身检测等,无法在仿真中实现。所以解释代码时只需要针对几个关键的基本代码编译即可。在此只解释这几个代码以及代码后的X、Z坐标数值。本文中的做法是当输入的数控代码被计算机读入内存以后,由程序中的解释部分对其逐行编译,然后把变换后的信息存入一个结构体中,这样数控代码信息就存放到了相应的结构体中了。在此译码系统读进各种字符和数值,根据不同的字符类型做出不同的处理。遇到机床功能代码G、M等,则将其之后的两位数值转换为整型,并把他们存储到相应的规定地方。若是尺寸代码字X、Y等则将他们后面的数值转换为浮点型数值并储存于相对应的单元。不管是功能信息还是坐标信息都会传递到这个结构体中。这时数组里面拥有了数控加工使用的所有信息。此结构体有如下一些结构组成:

StructDoc//结构体名称;

{

intGdaima;//G代码命令类型,存放G代码,如G00其值为0;

intLineNumber;//代码行号,存入行号数值;

intassitantcode;//辅助功能字,存放M代码命令,如M03值为3;

doublerx;//X轴当前绝对位置;

doublerz;//Z轴当前绝对位置;

doubletx;//X轴到达绝对位置;

doubletz;//Z轴到达绝对位置;

doubleRradius;//圆弧插补半径值;

doubleFspeed;//进给速度值,存放进给速度;

intpeed;//主轴转速值,存放主轴转速;

...............................

}

而这个数组中的所有信息都会成为各个代码图形模拟实现中的函数的参数,模拟图形时就会调用这些函数和数组中的信息。

本软件从数控代码中读取有效程序段并提取相应的命令和数据。执行错误检查后,逐行读入G、M等代码和从字符行中提取有效信息,把所有代码命令和相应的参数信息放在前面所定义的Doc结构体中。然后用代码模块对语句逐行解释,这样整个数控程序就转化为我们仿真软件所能识别的代码了。仿真软件中分别为G00、G01、G02、G03、G32等设置相应的方法,在各自方法中实现走直线或圆弧等功能。这些方法可以从信息数组中获取G代码中的位置信息完成所需要的插补图形模拟。在获取了数控代码信息后,就调用这些方法,使所有的动作命令全部都转化为圆弧插补和直线插补这两种形式。而其他的功能指令也都存放在相应的标志位中,帮助完成图形模拟。

总之,我们通过使用词法检查、语法检查模块检查代码基本错误,然后提取代码中的命令和数据。最后使用具体命令把数据转变为圆弧和直线插补。本文抛砖引玉,希望能对大家有所帮助。

其流程如图1所示。

图1 代码解释流程图

[1]韩向利,肖田元,古月,阮建兴.虚拟加工环境的开发与研究 [J].计算机应用,2000,20(8)增刊:234-237.

[2]崔丽华,杨文通,李富萍,吴喜文.NC代码翻译器检错模块的设计[J].组合机床与自动化加工技术,2003年第9期:42-43.

[3]赵东林,方凯,钱伟.数控系统G 代码解释器的设计与实现[J].制造业自动化,第28卷第1期2006-01:43-45.

猜你喜欢
数组圆弧命令
只听主人的命令
JAVA稀疏矩阵算法
浅析圆弧段高大模板支撑体系设计与应用
JAVA玩转数学之二维数组排序
外圆弧面铣削刀具
移防命令下达后
六圆弧齿廓螺旋齿轮及其啮合特性
Excel数组公式在林业多条件求和中的应用
这是人民的命令
寻找勾股数组的历程