引言
数控编程一直是我国数控机床应用的瓶颈:一般进口数控机床中附带的辅助编程,功能过于单一,很难满足用户的高层次要求;进口的CAD/CAM软件则价格昂贵,硬件环境要求高(一般均要求在工作站以上),需要进行充分地二次开发,且这类软件对员工素质要求高,在我国很难普遍推广应用。本文面向一般数控机床用户,针对机械零件中占90%以上的普通零件,以铣削加工为背景,在Windows98环境下设计了一个自动编程软件,以提高NC编程的效率与质量,改善NC加工环境。
1 需求分析与设计目标
本软件主要是为了减少制造过程中人的参与,进一步提高自动化程度。软件须具有良好的用户界面,操作简单、方便,需要编程员输入的参数应尽可能少,降低数控编程对编程员需要有较高机加工专业知识与经验和计算机编程能力的要求,简化数控编程;另一方面,它需要有强大的计算能力,以满足高精度加工要求;而且,应易实现功能扩充,能对加工过程(NC程序的执行)进行直观模拟,以便调试。
2 总体设计
我们设计的此自动编程软件主要由以下5部分组成:用于加工策略确定的机加工专家系统,以实现根据编程员输入的有关参数与指标,确定各工步及加工参数,即决定工步及M、F、S、T及某些G指令的参数;图形编辑和坐标计算部分实现由编程员输入刀具轨迹,软件系统自动计算全部节点坐标,以形成G00、G01、G02、G03、G8X等指令参数;仿真模拟部分实现对给定NC程序执行过程的模拟,为了简化软件系统的设计,不考虑零件无关细节,由编程员给出与相应NC程序相关的零件外形与尺寸,以单步/自动方式仿真模拟加工过程;NC程序编辑部分,实质是一个普通文本编辑器,允许编程员对NC程序直接进行必要的调整、打印输出等操作;通讯部分则允许通过RS-232接口,把程序直接传送给数控机床,而不必通过磁盘转存或人工输入机床。
3 具体设计中的若干主要问题
3.1 编程语言的选择
由于面向对象方法集抽象性、封装性、继承性、多态性于一体,具有显著的可复用、易修改、易扩充等特性,很容易实现软件功能的修改与扩充,而面向对象的语言中,C++功能强而且发展较成熟,同时考虑到Microsoft公司的Windows系统为应用系统提供了统一的用户界面,很受大家欢迎,本软件采用Microsoft的Visual C++编程语言。但是,它不能合适而有效地表示知识和进行推理,对于本软件的智能部分(机加工专家系统)宜选择面向任务和知识、以知识表示和逻辑推理为目标的人工智能和智能控制用编程语言。由于Prolog语言通过合一、置换、消解、回朔、匹配机制来求解问题,本身就是一个演绎推理机,从而可以极大地简化智能软件的设计,本软件的智能部分选用Prolog语言实现。
3.2 加工策略确定部分的设计
刀具管理功能同时管理刀具数据库和刀库数据库,刀具数据库存该机床所配全部刀具各种参数,刀库数据库存刀库中刀具的信息。专家系统根据编程员输入的材料加工精度要求等,以及刀库数据库刀具信息,在专家知识水平级上确定出合理的加工参数,如选择合适的刀具、适当的进给率、切削速度、主轴转速、及合理的工步流程,需要时,提出调整刀库。由于Prolog语言本身就是一个推理机,这里的主要工作就是建立专家知识库,知识库的组织。
3.3 刀具轨迹输入与坐标计算
本软件设计中一改传统的由点、线、圆等基本图元输入,必要时递归计算坐标的方法,而以在实践中总结出的大量常用图形模式,成组输入图元,尤其针对一些计算较复杂的情况。常规输入时,需人工确定圆1、圆2计算出P1、P2、P3、P4坐标,逐个输入图元;而在本软件中,仅需选定相应图形模式,只给出两个圆心即可,P1、P2、P3、P4坐标计算由软件自动完成,不需人工参与。同时,由于是选定模式输入,此时坐标计算可直接调用既定公式,这样,就极大地简化了输入且提高了计算效率及精度。
3.4 加工过程模拟