1. 引言
目前,3D打印技术是国内制造业发展的一个潮流方向。虽然3D打印加工技术先进,操作简单,但是目前国内的3D打印系统存在打印数据处理缓慢、打印精度低、打印稳定性差的问题 [1] 。特别是在数控系统性能等方面和国外相比还有很大的差距。目前,国内的一些3D打印厂家在核心技术和零部件生产上仍需借鉴国外的技术,或是直接购买进口产品。
在比较国内外同类3D打印机后发现:由于打印控制的复杂性,在打印高精度异型零件时,国外由于控制系统先进,控制经验丰富,加工精度好;而国内在控制系统性能、控制经验等方面较为落后,为保证一定的打印精度而不得不采取整机进口或购买国外数控系统设计来组装的方式。这样不仅价格昂贵,也使得国内3D打印产业整体处于被动地位 [2] 。因此,开发一套具有自主知识产权的3D打印机数控系统,可以大大提高国产3D打印技术的竞争力。本文3D数控系统采用国际上较先进的开放式结构,以PMAC运动控制器为核心,以伺服电机为主驱动元件,目的在于全面提高该类3D打印机的控制效果。
2. 数控系统的硬件设计
3D打印数控系统的硬件组成是保证系统精度、可靠性和实时性的重要因素 [3] 。在本系统中,采用主从式控制体系结构,即“IPC + 运动控制器”结构的开放式数控系统结构,如图1所示。运动控制器通常以高速DSP作为CPU,具有很强的运动控制和PLC控制能力,它本身就是一个数控系统,可以单独使用。它开放的函数库可供用户在Windows平台下自行开发构造所需的控制系统。

Figure 1. The block diagram of the system structure
图1. 系统结构框图
本系统硬件主要包括:工控机——研华610型工控机,运动控制卡——Clipper (Turbo PMAC2-Eth-Lite)运动控制卡、DTC-8B四通道转接接口板、PMAC附件ACC34 I/0板,伺服系统——松下A4系列交流伺服电机等 [4] 。在运动控制卡的控制下,3D打印机识取三维模型数据并转换成自身系统的运动代码。然后控制进给驱动系统,以控制伺服电机工作状态的方式来控制3D打印平台的X、Y、Z轴的运动情况,再协同打印喷头完成打印工作。
根据3D系统的控制轴数,选PMAC2 Clipper运动控制器作为下位机,其主要功能及特点如下:
1) 标准的PID,优化PID和极点配置伺服算法。
2) 动态的多程序段的提前计算,可以达到任意速度下的精确轨迹,能够有效的提高3D打印效率。
3) 48位的浮点和整数计算 [5] 。
4) 强大的倒退和原轨迹返回能力。
5) 二维和三维坐标系的转换,直角和极坐标系的旋转功能 [6] 。
通过插补运算看出,打印喷头和X、Y、Z轴的运动加工实际为四轴插补。其运动控制精度直接影响了产品打印精度,幅值精度影响产品的尺寸误差,相位精度影响产品的形状误差。跟踪精度由伺服系统的动态特性决定,由于3D打印机机械传动部分的惯量很小,所以选用小惯量伺服电机就可以得到较好的控制效果。整个硬件系统控制连接如图2。
3. 数控系统的软件设计
系统的软件是整个数控系统的核心,是关系到系统的精度、稳定性、可靠性和实时性的最重要的因素之一 [7] [8] 。因此,在设计中必须采用合理的开发平台和优化的算法来进行设计。以达到减少设计工作量、提高系统运行性能的目的,使系统具有开放性、多任务的特点,同时要有利于系统的升级换代。在本设计中,所采用的是基于Windows平台的VC++6.0开发环境,在VC++6.0中开发基于MFC的应用程序,具有开放性和多任务性,程序代码相对较少,运行可靠。限于篇幅,在这里仅对系统的软件结构进行介绍,如图3所示。
1) 文件管理:对零件打印程序进行编辑、程序导入、导出,以及STL文件转换成G代码程序等功能进行管理。
2) 参数设置:对打印参数进行管理与设置。包括打印速度参数、打印温度参数。
3) 机床设置:设置3D打印机打印时所需的参数数值。主要包括X、Y、Z轴运动速度、热床升降速度和打印喷头的走丝速度等。
4) 程序处理:对模型切片数据进行检错并翻译成运动控制卡能够直接识别和使用的代码。

Figure 2. The connection diagram of hardware
图2. 硬件连接图

Figure 3. The structure diagram of software
图3. 软件结构图
5) 系统调试:主要用于3D打印机的现场连接调试、性能测试等。
6) 系统管理:完成各种报警信号的清除。包括:伺服驱动器报警及各运动轴行程超出等情况处理。同时要对系统的紧急异常情况做出实时的处理,保证3D打印机和操作人员的安全。
7) 打印管理:对打印坐标进行实时显示,并以图形化形式实时显示打印路线。
8) 打印控制:读取打印程序信息与相关参数,输出信号控制各坐标轴完成打印工作,同时完成各PLC输出元件控制。
9) 故障与系统监控:对3D系统的运行状态进行实时监控,实时提取系统的错误信息和各种异常信息,便于系统的自我调整,保证产品打印精度和整个打印系统安全。
10) 电源控制:按照上位机软件设置好的脉冲电源参数传输给脉冲电源。在打印过程中,接收脉冲电源发送过来的间隙电压,从而判断打印过程中是否出现短路或者开路现象。
11) 通信程序:在硬件部分,PC与PMAC控制卡的连接是通过以太网来进行连接的 [9] 。软件部分,系统软件与PMAC控制卡的通讯是在Pcomm32驱动软件的支持下,通过编写通讯程序,利用Pcomm32函数库所提供的通讯函数从而实现了软件与PMAC控制卡之间的信息通讯。以下为部分软件与PMAC的通讯程序:
//******初始化PMAC控制卡******
OpenRuntimeLink();
//默认0号设备
dwDevice =0;
if (dwDevice >= 0 && dwDevice <= 7)
{
if (OpenPmacDevice(dwDevice))
{
m_bDriverOpen = 1;
}
}

Table 1. The performance parameters of 3D printing system
表1. 3D打印系统性能参数

Table 2. Comparison of print data between two printing systems
表2. 两种打印系统打印数据对比
4. 3D打印系统整体性能参数
根据上述对3D打印系统硬件和软件的选择和调试,设计出一套3D打印系统,其各项性能参数如表1所示。
5. 实验结果
为了验证该3D数控系统在性能上的优越性,实验将该系统与一台现在市场上常见的MicroMake打印机进行了打印对比,打印对象长 × 宽 × 高 = 3 cm × 3 cm × 6 cm的兔子模型。表2为两个系统打印数据的对比。
通过表格可以看出,本系统在打印过程中极大地缩短了打印时间,热床的温度波动幅度也降低为MicroMake的12.5%,模型的精度也提高到了MicroMake的三倍多,整体性能有了很大的提高。
6. 总结
本文着重论述了具有高性能的3D打印机数控系统的设计方法,给出了在硬件和软件上的设计模型。经过连机调试,该系统达到了设计目的,符合现在3D打印市场的要求。在电子技术迅速发展的今天,运用嵌入式系统体系结构重新设计该系统,以求得更高精度、可靠性、实时性和更高性能的数控系统。