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

基于线程技术的PC数控软件设计

发布时间:2013-09-14 作者:王洪刚 傅建中  来源:万方数据
关键字:线程 数控 PC 
阐述了PC机数控系统的特点,介绍了一种利用线程技术实现PC机数控系统,并分析了在数控加工中数据的结构以及算法的实现。该系统已经在实际的车床数控系统中得到应用。

1 引言

  随着制造业发展,对数控机床的柔性和通用性提出了更高的要求,同时伴随着计算机技术的迅速发展,开放式数控系统应运而生,并已经成为当前研究的热点。此类系统分为“PC嵌入NC”结构、“PC嵌入NC”结构、全软件型结构。第一种系统硬件结构较复杂,系统价格十分昂贵。第二种,采用运动控制卡+PC机构成。最后一种,所有的数控功能全部都由计算机软件来实现。

  本文采用NC嵌入PC的开放式数控结构形式,由运动控制器完成数控实时响应和控制,PC完成数控人机界面功能。在人机界面的处理中采用了多线程技术。

  本系统所采用的数控系统结构图如图1所示。用研华公司的运动控制卡+PC机,以JZ位的Whdows98/NT 4.0/Win-dows2000操作系统为开发平台;并采用支持可视化编程的集成环境Visual C++6.0作为算法语言和界而设计上具,利用封装性,继承性和可重用性作为特征的而向对象的编程技术。

 数控系统结构示意图
图1 数控系统结构示意图

2 数控加土过程的控制

  机床的数控系统是以程序指令为依据来控制机床的运动。首先就要对程序指令进行检查,并进行预处理转化为刀具的运行轨迹。

  2.1 数据结构

  由于数控加上程序是由程序段组成,每一个程序段又由各个指令构成,所以用一个链表结构来存储、管理这些代码比较有效。

  1)用DotList表示点数据。首先用从CObject派生的CDot类记录程序指令信息。采用链表结构记录程序加上点的数据,选用MFC的数据结构CTypedPtrList模板类定义一个点的链表类DotList}链表结构易于遍历和插入操作,可以提高效率。

  2)用SubFuncList栈类进行子程序调用。在数控加上时,用子程序编写经常重复进行的加上,比如某一确定的轮廓形状。子程序位于卞程序中适当的地方,在需要时进行调用。栈的特点就是后进先出,正好符合子程序,所以采用链式栈SubFuncList来表示。栈的每个元素('SubFuncInfo由四部分构成:

  CString szSubFuncName//子程序名

  int iSubFuncAddress;//子程序的起始位置

  int iSubFuncRetAddress;//子程序返回卞程序的位置

  int iLoopNum;//子程序循环次数

  考虑到Windows操作系统并不是一个严格意义上的实时操作系统,为了提高实时响应速度,本系统首先对程序指令进行翻译,全部转换成最后加上的点的信息,既先对程序指令扫描一边记录下信息,再进行扫描一边,把子程序调用插入到第一次扫描的结果中而得到最后的扫描结果。图2所示是第1次扫描的流程图。

程序指令读入流程图
图2 程序指令读入流程图

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