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

基于Windows CE的数控软件开发与实现

发布时间:2014-06-20 作者:雷鸣 刘其洪 黎鹏 徐文斌  来源:万方数据
关键字:Windows CE 数控软件 
本文介绍了嵌入式Windows CE 系统在数控加工应用领域的平台定制,提出了在Windows CE 下的嵌入式数控加工系统的软件架构,探讨了嵌入式数控软件主要功能模块及其关键实现技术。

3 主要功能模块及其关键实现技术

  3.1 人机界面模块

  人机界面模块是用户与数控加工平台交互的接口。人机界面包括如下操作:加工代码的编辑和保存;各种系统参数的设定;加工过程的同步动态仿真;获取数控设备的位置,速度,故障信息,反馈给用户;文件操作等。

  Windows CE出于精简内核的需要,对传统的WIN32 图形库改动较大,较多图形类API被移除。在实际开发中为满足图形显示需要,需要自写绘图函数。数控仿真用到的绘图函数主要有:曲线绘图类(圆弧,抛物线绘制)、绘图区动态缩放、图形的保存与重绘。可将以上函数通过测试后封装成库,在主程序中调用。

  3.2 加工指令编译模块

  数控加工指令主要是由完成各种准备功能的G 代码和辅助功能的M 代码组成。译码器的作用是读入已编辑好的数控代码,对指令进行词法和语法检查,提取刀位特征,生成刀位文件,最终转换为驱动加工模型运动的数据。译码的方式可分为两类:解释模式和编译模式。

  解释模式:将G 代码分割为若干小段,每段包括3-4行。以段为单位,解释完本段G代码后,随即调用刀具补偿模块,完成刀具补偿。之后把这段经过处理的代码发送下位机,进行插补控制。解释模式具有简单、易行的特点,能够方便地在加工过程中动态插入指定代码。其不足之处在于译码效率较低,代码的串行发送又极大地限制了加工效率,而且人为地分割G 代码也破坏了代码原有的统一性。

  编译模式:预先对整个G代码文件进行编译,生成临时代码文件。之后将整个代码文件发送到下位机。在下位机上调用刀具补偿模块,对代码进行刀具补偿。编译模式能够较好地解决固定循环指令,子程序以及各种跳转指令的问题,维护代码自身的统一性[2]。由于是统一编译,统一执行,加工效率也比解释模式高,故译码器的设计上采用编译模式。译码器的编译流程如图3 所示。

  (1)词法分析:扫描NC 程序,判别是否有不可识别字符。如果有,则给出错误信息。

 上/下位机软件模块划分

图 3 译码器编译流程图

  (2)语法分析:规则与匹配的问题。针对数控程序特点,检查输入代码合理性。若检查出错误组合,则给出错误信息。若检查出无效组合,则设定其无效。例如:F 指令只对G01,G02,G03有效,对G00 无效。

  (3)语义分析和译码:设计一个加工信息类CDrawInfo,用于保存译码得到的数据。为了保存整个代码信息,还需要设计一个链表类CListInfo。CDrawInfo 类的设计如下:

  class CDrawInfo: public CObject{
  public:
  CDrawInfo();
  virtual ~CDrawInfo();
  UINT m_SerialNum; //加工序号
  CPoint m_ptPrev; //前一点坐标
  CPoint m_ptNext; //后一点坐标
  CPoint m_ptCenter; //圆心坐标
  UINT m_gcodeFun; //G 代码类型
  CDrawInfo& perator=(CDrawInfo&); //赋值运算符重载
  };

  译码程序执行时,首先建立一个CDrawInfo 类的临时对象drawtemp。而后逐行提取代码的数据信息,并将其赋值到drawtemp 对象中。本行读取完毕,再把drawtemp保存到链表CListInfo。CListInfo 的声明如下:
  CList listinfo;

  如此循环操作,直至所有的NC代码都被提取出来并添加到链表listinfo中。

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