针对3D打印机无法识别加工G代码程序,种类繁多、底层相对封闭,在进行3D打印系统设计时不得不针对不同运动控制器设计不同加工代码转换程序,通用性差且设计难度大等缺陷。本文介绍了面向运动控制器通用代码转换组件的实现过程,着重从系统组成与软件设计方面给出软件的实现方法。 In accordance with common practice, 3D printers cannot recognize the processing multifarious G code program and has poor versatility. Furthermore, bottom layers are relatively closed. When de-signing 3D printing system. We have to design different conversion programs of processing code for different motion controllers. It has great difficulties in system design. This article focuses on providing the method of software implementation from system composition and software design, facing the implementation process of the universal code conversion component for motion con-troller.
赵文磊,李泽良,李文海,潘盛湖
西南石油大学机电工程学院,四川 成都
收稿日期:2018年8月17日;录用日期:2018年9月4日;发布日期:2018年9月11日
针对3D打印机无法识别加工G代码程序,种类繁多、底层相对封闭,在进行3D打印系统设计时不得不针对不同运动控制器设计不同加工代码转换程序,通用性差且设计难度大等缺陷。本文介绍了面向运动控制器通用代码转换组件的实现过程,着重从系统组成与软件设计方面给出软件的实现方法。
关键词 :运动控制器,代码转换,组件
Copyright © 2018 by authors and beplay安卓登录
This work is licensed under the Creative Commons Attribution International License (CC BY).
http://creativecommons.org/licenses/by/4.0/
运动控制器是开放式3D打印系统的核心部件,其多样化直接影响着开放式3D打印系统的设计难度。因此,现代3D打印系统的模块化和通用化发展对运动控制器控制程序的设计质量、成本和效率提出了越来越高的要求 [
本3D打印系统采用国际上较先进的开放式结构,以PMAC运动控制器为核心,通过设计用户控制程序实现对机床控制功能。结合以前其它类型运动控制器控制程序设计过程分析后发现:运动控制器无法识别G代码加工程序,需要设计人员设计专门转换程序;种类繁多且各个类型之间底层代码不具有通用性,即所设计的转换程序无法在不同运动控制器平台间移植;国内在运动控制器G代码转换程序方面研究有一定经验,但没有考虑不同运动控制器之间通用性,也未考虑不同编程平台之间可移植性 [
本组件设计目的在于提高开放式3D打印系统的开发效率与运行稳定性。根据模块化设计思想及现代软件设计方法理论,结合运动控制器代码转换的特殊要求,将软件各个子功能按模块划分,即G代码输入接口、加工图形输入接口、G代码转换、底层词法数据库、G代码检错、仿真加工、应用参数设置、底层代码输出等几个主要模块,并由主程序进行统一管理和调度,如图1所示。
G代码输入与图形输入主要完成G代码文件或CAD图形文件读入、文件内容预处理;G代码转换将对正确的G代码文件或CAD图形文件按照转换规则转换成运动控制器底层加工程序;底层词法数据
图1. 系统硬件结构图
库建立G代码与运动控制器底层加工程序转换规则,不同运动控制器类型建立不同的转换单元,集成与同一数据库,以满足转换要求,转换单元可以增加、修改、删除;G代码检错用于对G代码词法、语法等正确性进行检查,可以知道G代码是否正确、是否需要进行修改等;仿真加工用于对加工程序模拟加工,可以知道加工过程是否正确、是否需要进行修改等;应用参数设置用于设置当前控制器类型,可以保证所调用的转换规则与控制器相对应等;底层代码输出完成转换后数控加工文件按照控制器要求的文件格式与语法生成并输出。
由于组件功能复杂,其其转换过程必须考虑在不同类型运动控制器兼容性 [
本组件的设计重点在与开放式3D打印系统设计思想保持高度一致,结合运动控制器特点设计加工文件格式,并能够输出正确的底层加工程序。因此该组件必须能够嵌入用不同编程语言设计3D打印系统中,作为一重要子模块。因此,本组件结构采用国际较为流行Microsoft COM组件模式,COM组件生成后可以在不同编程语言平台之间进行移植。图3所示为该组件嵌入3D打印3D打印系统实现G代码到PMAC运动控制器底层加工程序转换。
友好的用户界面能够提高系统的使用效率,方便操作,便于数控产品的推广。在Visual C++6.0的Microsoft Developer Studio环境中,使用应用程序向导(App Wizard)生成Windows GUI应用程序基本框架。
图2. 组件工作流程图
在资源编辑器中编辑对话框和控件,生成了一个非常友好的Windows风格的用户界面,利用VC 6.0中动态链接库技术完成各个子模块的设计 [
本模块集中基本参数配置、G代码显示、转换后底层程序显示、G代码修改与优化等功能于一体。基本参数设置正确后,当需要修改G代码时,根据组件G代码分析结果提示信息,对其中部分代码进行适当调整,并在显示中实时刷新显示,有利与提高代码修改、转换的效率。
本模块是一个集NC数据处理和NC图形仿真于一体的图形仿真校验系统,由数控数据输入、数控程序数据处理、仿真计算和仿真显示等模块组成。
模块设计利用OpenGL技术和计算机动画技术,实现了数控加工过程的二维模拟仿真,可以观察零件加工过程,同时把一些重要的加工信息自动生成报表,其磨削仿真的用户界面,如图4所示。
图3. 组件显示界面
图4. 模拟仿真界面
着重论述了面向运动控制器通用代码转换组件的设计方法和设计过程,给出在模型建立和软件设计上的设计模型。经过实际应用调试,该组件达到了设计目的,符合市场的要求。在运动控制技术迅速发展的今天,运动控制器的发展日新月异,因此,在以后的设计应用中,可以考虑用更先进的控制器底层兼容的办法以求得更高性能通用性。
西南石油大学校重点开放项目支持。
赵文磊,李泽良,李文海,潘盛湖. 基于运动控制器通用3D打印代码转换组件开发 The Development of the Universal Code Conversion Component for Motion Controller[J]. 动力系统与控制, 2018, 07(04): 262-266. https://doi.org/10.12677/DSC.2018.74029