APP下载

基于VC6.0的数控仿真系统中数控代码翻译模块研究

2013-08-11王贤虎安徽水利水电职业技术学院机械工程系安徽合肥231603

长江大学学报(自科版) 2013年34期
关键词:程序段链表坐标值

王贤虎,郭 微 (安徽水利水电职业技术学院机械工程系,安徽 合肥231603)

近十几年来,数控技术的发展非常迅猛。利用计算机完成从产品设计、工艺设计、数控代码 (NC代码)仿真到加工装配等所有环节,不仅可以大大缩短产品研发周期,还大大降低了生产成本[1]。为此,笔者对数控仿真系统中NC代码的处理问题进行了研究,以便实现数控代码的快速、高效翻译过程。

1 数控代码翻译模块总体设计

数控代码翻译模块包括NC代码读入、分析和执行3个子模块。首先,将编辑好的数控程序读入到仿真系统中,然后对代码进行分析,包括词法分析、语义分析等,如果没有发现代码错误,则数控程序可以进入实施阶段。

机床加工过程中主要运动形式包括直线运动和圆弧运动[2]。如果能得到刀具轨迹上各断点的坐标值,就能实现直线运动或圆弧运动。其中起始点的坐标值在语义分析完成后就能够得到,轨迹上其他点坐标值需要通过插补运算来得到。对于上述坐标值可采用队列的形式存储。当产生新的坐标值时,在队列尾部增加节点来存储这些数据。当然不是将整个程序所得到的坐标值一起存储在一个队列中,而是按照程序段进行存储,一个程序段对应一个队列,若队列中为空,意味着机床在此没有产生运动,可以继续执行后续的程序段,直至整个程序执行完成。

在完成NC代码的翻译之后,将获得的机床运行相关信息输出到运动仿真模块,从而驱动模型进行数控加工过程的仿真。数控代码处理过程如图1所示。

图1 数控代码处理流程图

2 数控代码翻译模块设计

2.1 NC代码读入子模块

数控程序采取逐行执行的方式,也就是执行完一行程序段再去执行下行程序段,直至整个数控程序结束。为此选择一个单向链表结构来存储数控代码的各个程序段,链表中的一个节点对应一行程序段。下面为一个列表的具体结构:

2.2 NC代码分析子模块

通过NC代码读入子模块,可以将数控程序文件中的内容存储在一个单向链表中。其中,链表中的每一个字符串对应数控程序的一行程序段。然后分析每个字符中的内容,也就是要将每行程序段指令字后的数值单独取出后为程序执行阶段所用。具体可以通过以下方式完成:

考虑到上述数据在程序执行阶段会被经常使用,可以选择双向链表来存储取出的指令字后的数值,具体内容如下:

其中tool_center_x、tool_center_y、tool_center_z存储每个程序段刀具中心位置坐标。

2.3 NC代码执行子模块

利用NC代码分析子模块可以得到存储各指令字后数值的双向链表line_data,但链表中并没有存储刀具轨迹路径上其他断点的坐标值。要获得相应坐标值,需要通过插补运算的方法来获得,具体过程如下:数控程序经过读入阶段和分析阶段后,可以得到每个程序段指令字、起始点坐标值、刀具中心坐标值等相关信息,从而能够做出象限的判断、终点判别等操作,并为后续的插补运算提供所需信息。插补运算的算法较多,笔者选择了逐点比较法[3],其具体内容如下:

以上定义的单向链表是用来存储各个节点的插补指令、各节点的坐标平面代码值、当前节点的象限值。其中2个联合是为了实现终点判别和象限转换。因为在数控加工过程中,各轴的进给方向是根据后一点相对于当前点所处的象限来确定的。由于空间中有很多象限,这样在每个象限都需要进行插补运算判别,这样较为繁琐,同时效率不高。为此采用直线插补的方式建立如下函数,并将函数值赋予变量quad[4]:

图2 正在加工的数控仿真车床图

其中x_start,y_start,x_end,y_end分别为前后程序段中的刀心的插补起、终点坐标值。

3 仿真结果

以VC6.0编程软件为基础,探讨了数控仿真系统中NC代码的处理问题并实现了数控加工过程的仿真 (见图2)。由于数控仿真系统的应用可以大大降低产品试制次数,从而缩短产品上市周期。因此,对于数控仿真系统中的数控代码翻译模块的研究具有重要的现实意义。

[1]王太勇 .基于动态四叉树的数控铣削加工仿真的研究 [J].机床与液压,2006(9):21-23.

[2]严蔚敏,吴伟民 .数据结构 [M].北京:清华大学出版社,1997.

[3]王贤虎 .数控车削仿真系统的研究 [D].合肥:合肥工业大学,2006.

[4]张幸儿 .计算机编译原理 [M].北京:科学出版社,1999.

猜你喜欢

程序段链表坐标值
基于WinCC的物料小车控制系统设计与仿真
数控系统手轮回退功能的研究与实现*
基于二进制链表的粗糙集属性约简
跟麦咭学编程
基于NC程序段的提高数控加工监控阈值与信号同步的方法*
基于二分法迭代的凸模数控铣削加工编程*
基于链表多分支路径树的云存储数据完整性验证机制
数控铣床FANUC 0i 系统刀具半径补偿系统参数设置解析
基于宏程序的数控车削加工应用
链表方式集中器抄表的设计