三轴数控铣床半实物仿真实验系统设计
2016-1-22 来源:哈尔滨工程大学工程训练中心 电工程学院 作者:朱晓明 李欣 李霞
摘要: 为了充分发挥四轴运动控制开发平台的功能潜力,以其为研究对象,开发了三轴数控铣床半实物仿真实验系统。该系统通过库函数将软件功能与硬件控制相结合,实现了通过软件来控制硬件的控制方式。基于 OpenGL 图形库和内置定时器实现了路径仿真和加工仿真功能。该系统既可进行单机路径仿真,也可联机控制电机运行及实际路径仿真,以适应不同的实验场合。经过测试,证明该半实物仿真实验系统能有效挖掘实验设备的潜在功能,有助于培养学生对数控系统的设计能力。
关键词: 数控系统; 四轴开发平台; 半实物仿真
0 前言
运动控制系统设计是机电类及相关专业本科学生的一门重要的实践创新课程。该课程以机电自动化实用控制技术和运动控制技术为核心内容,在相关实验平台上,通过实时操作为学生提供综合创新、实践训练机会,以提高学生的工程意识,培养学生的专业能力、工程实践能力和创新能力。
在众多的相关实验设备中,四轴运动控制开发平台具有很强的代表性。它是许多机电一体化系统的微缩模型,它采用开放式结构设计,对于运动控制和机电一体化系统的教学和科研具有普遍意义。然而,在一些运动控制系统设计中,由于设备实验面板上只有4 个电机轴转动,无法通过 4 个轴的运行查看控制对象 (比如数控机床的加工刀具) 轨迹运动的空间效果。因此,为了充分发挥四轴运动控制开发平台的功能潜力,结合 TRIZ 系统理论中的分割原则,提出了在四轴平台上开发三轴数控铣床的仿真实验系统,充分利用电机编码器的反馈信息设计虚拟刀具,完成一个半实物仿真数控系统的设计与开发,使学生在实验中了解数控系统的运行过程与设计方法,这样培养了学生的实践能力。
1 实验系统组成
整个实验系统的组成分为两大部分: 实验设备机械本体与硬件控制平台。机械本体如图 1 所示。机械本体包括 4 个控制轴的测试转盘、电机及其驱动器。面板上 4 个转盘周围标有刻度,通过转盘可以观察电机的转动角度。4 个电机包括两个步进电机和两个交流伺服电机。同时面板下面为每个轴配备了伺服报警、正负限位、原点触发按钮,用于完成对应的运动控制测试功能。面板下方还安装了 16 个 LED灯,用于完成系统的输出功能设计。LED 灯下方安装了 16 个输入开关,用于完成系统的输入功能设计。
图 1 实验设备机械本体
硬件控制平台采用模块化结构,使用了上下位机结构。上位机使用通用计算机,用于设计人机界面等非实时功能。下位机采用深圳固高公司的运动控制器(型号 GT400- SV),利用 PCI 总线与计算机连接,完成路径规划、轨迹控制等实时功能。运动控制器通过端子板与实验设备连接。
2 实验系统功能分析和训练目标
文中所提出的三轴数控铣床实验仿真系统,是一种半实物仿真系统,主要是利用实验设备已有的可控电机完成实际的运动轨迹控制,同时利用库函数取得电机编码器脉冲值,并通过参数转换变为移动坐标值,导入到计算机中的虚拟三维环境,形成虚拟刀具的运动轨迹,从而完成同步轨迹仿真。同时,利用路径仿真信息完成加工效果仿真,验证加工结果的正确性。通过这种设计模式,既可以充分利用设备的控制功能,又可以利用虚拟设计弥补其缺乏控制对象(刀具) 的缺点,对设备是一种有效的功能扩展,发挥了其潜能。根据数控系统的功能特点,主要功能设计包括读取数控 G 代码、译码、电机控制、位置反馈与路径仿真、加工结果仿真等。
根据实验教学要求,系统的训练目标主要包括:(1) 功能设计,包括多轴 (3 轴) 多段连续轨迹的位置控制、位置监控设计、数控加工 G 代码的译码设计。(2) 编程设计,包括基于 VC ++ 环境下三维建模设计、动态路径仿真设计、定时器设计、字符串string 类使用、C ++ 下大规模数组的使用菜单栏工具栏设计。
3 系统软件功能设计
3. 1 开发环境
开发所使用的操作系统平台为微软公司的 Win-dows2000Pro 版,开发平台为微软公司的 VC + + 6. 0软件开发环境。同时,控制器厂商固高公司还给用户提供了配套的运动控制器库函数。用户可通过调用库函数,给运动控制器发送控制命令。而运动控制器通过相应的控制策略,将控制指令转换为控制信号,通过驱动器的放大,控制电机转动,最终完成相应的轨迹控制任务。通过不同库函数的组合设计,用户可以完成特定功能的设计,进行系统定制。
3. 2 译码功能设计
为了减少学习难度,译码模块只识别直线控制指令及其控制参数,即 x、y、z 坐标。为了增加趣味性,数控系统的加工 G 代码生成,没有采用专业的Pro/E、UG 软件,而是采用了艺术造型软件 ArtCAM,可轻松生成漂亮有趣的三维图形加工 G 代码。译码模块的流程如图 2 所示。通过该流程处理,可以将数控 G 代码中的控制信息存入控制指令数组,以便转为控制指令库函数。通过译码模块,可将多段 G 代码文件转为相同指令容量的字符指令数组,作为控制指令生成的数据源。
3. 3 电机轨迹控制与位置反馈设计
对于固高运动控制器的轨迹控制方式,分为单段轨迹与多段连续轨迹两种控制方式。由于三轴数控铣床的加工代码包括成百上千段指令,因此属于多段连续轨迹控制。运动控制器的多段轨迹控制原理是在控制器上设计了一个 8 KB 的环形队列缓冲区,用户将部分控制指令先存入缓冲区,并执行这些缓冲区指令,既提高了通讯效率,又提高了运行特性。
控制器对缓冲区中运动命令的具体处理机制如下: 用户首先不断向缓冲区发送运动命令,直到缓冲区满。缓冲区满时,运动控制器拒绝接收用户输入的命令,并返回缓冲区满的信息。此时启动缓冲区的命令队列,随着命令的执行,缓冲区会有新的空间释放出来,用户可以继续发送更多的命令。直到所有指令都存入缓冲区 (不是所有指令都执行完),就可以关闭缓冲区,完成缓冲区指令模式。对于三轴数控系统,存入缓冲区的控制指令主要使用固高的三坐标运动控 制 库 函 数: GT _ LnXYZ ( double x,double y,double z)。其中 (x,y,z) 值是刀具从当前点以直线插补的方式运动的目标点。至于具体的插补算法和控制指令发送,则由运动控制器自动完成,使用户可以把主要精力放到系统功能设计。
位置反馈功能的设计主要有两个作用: (1) 使用户通过虚拟仪表了解当前刀具的位置; (2) 在联机路径仿真时确定虚拟刀具的空间位置。
位置反馈主要使用了功能库函数: GT_GetAtlPos(long& pos)。其中长整数指针类型自变量 pos 存储了从脉冲编码器返回的当前轴的脉冲形式位置。而在虚拟环境中用户的坐标单位为 mm,因此需要进行系数转换。由于设备面板上轴 1 和轴 2 的编码器分辨率为4 000,轴 3 的编码器分辨率为 10 000,设虚拟环境下的滚珠丝杠的螺距为 5 mm,则由位置的脉冲量到用户坐标单位的转换系数为:
(1) 1 和 2 轴 4 000/5 =800,(2) 3 轴10 000/5 =2 000。也就是说从编码器反馈的脉冲值分别除以上述换算系数可以转换为虚拟环境下的用户坐标值。
3. 4 路径仿真设计
路径仿真可使用户在三维环境下由虚拟刀具的轨迹查看控制效果,实验效果直观。该系统的路径仿真设计了两种模式: 联机仿真与单机仿真。联机仿真时控制系统与四轴运动控制开发平台连接,直接控制电机运动,并通过编码器的反馈,显示为虚拟刀具的空间位置,保持与实际电机同步运行。单机仿真则是控制系统运行在单台计算机上、通过定时器周期性更新每段指令的刀具终点位置。下面主要介绍联机路径仿真设计。
路径仿真主要采用 VC ++ 6. 0 内置的 OpenGL 图形库完成路径的动态绘制。主要分为环境设置、位置采集与已有路径绘制。
在 VC ++6. 0 中进行三维路径绘制之前需要复杂的环境设置,主要包括创建设备描述表和像素格式描述表以及环境参数设置。像素格式明确了 OpenGL 绘制平面的特性,如象素缓冲区是单缓冲还是双缓冲,数据是 RGBA 方式还是 Color Index 方式等。每个OpenGL 显示设备一般用名为PIXELFORMATDE-SCRIPTOR的结构来表示像素格式,这个结构包含 26个属性信息。环境参数设置则主要包括光源的个数、性质、阴影模式、深度缓存、颜色混合模式、线宽、清屏颜色、多边形显示方式。这些参数的设置需要逐个测试才能获得较好的显示效果。
位置采集是实现虚拟刀具与实际电机同步的关键环节,需保证采集数据的实时性与准确性。其中准确性主要是利用前述库函数 GT_GetAtlPos(long& pos)与单位换算来实现。而实时性则主要是采用了短时间间隔的内置定时器来完成。通过定时器的消息处理函数OnTimer 每一次触发,实现了电机脉冲数据采集、单位换算、三维坐标存入路径点数组。定时器中的另一个重要设计是更新画面,利用函数 InvalidateRect(NULL,false)失效当前客户端界面,从而导致重新绘制最新路径。在开始联机仿真时通过 SetTimer (1,10,NULL) 启动定时器,定时器的调用周期为 10ms,保证了虚拟刀具轨迹仿真过程的流畅性。
仿真中路径绘制的设计方法是将每次采集的三维电机位置存入路径点数组,然后将数组中所有点依次用直线连接,形成一条首尾相连的加工路径,最后将窗口背景进行颜色清除,重新绘制整条路径并进行双缓冲区显示。随着路径不断更新,就会产生路径的动态同步效果。为了实现画面更新不闪烁,采用了双缓冲技术,通过 OpenGL 的图形功能函数 SwapBuffers(wglGetCurrentDC()),在视图类的 OnDraw(CDC*pDC)函数中实现。
整个系统中最为重要的路径显示设计采用了OpenGL 里面的空间绘图函数,其关键实现代码如下:glBegin(GL_LINE_STRIP);for (int i = 0 ;i < m_atlPt. size();i ++ ){tp = m_atlPt[i] ;glVertex3d(tp. x,tp. y,tp. z);}glEnd();)其中模式参数 GL_LINE_STRIP 的作用是将所有的空间点依次连成一条折线。
4 联机控制测试
为了测试三轴数控铣床的控制系统译码、位置控制及轨迹显示的稳定性以及准确性,将其与四轴运动控制平台进行联机测试。其中加工 G 代码生成采用英国 Deltau 公司的 ArtCAM 2008 软件。它是复杂立体三维浮雕设计、珠宝、装饰设计和加工的首选 CAD/CAM 软件解决方案,可快速将二维图形转换成三维艺术产品。此次测试利用一个二维蜥蜴图片生成三维空间立体图形,然后后置生成三维加工 G 代码。在测试之前,需要对其进行处理,只保留 G00,G01 指令代码,经检测,最后生成 G 代码 38 644 行,加工范围 70 mm × 120 mm × 5 mm。所设计的虚拟毛坯尺寸为 150 mm ×150 mm ×10 mm,采用直径 1. 5 mm 球头刀。经过联机电机控制后,生成的联机加工路径仿真图如图 3 所示。刀具加工轨迹与虚拟毛坯求交后形成的加工效果仿真图如图 4 所示。对比两图可知,者保持了一致性,证明该系统设计合理,运行稳定可靠。
5 结论
实验设备是实践教学课程中的重要载体,其利用和开发的程度将直接影响着教学效果。随着各种先进教学模式的不断产生,各种开放式的实验设备走进了课堂。如何对其进行有效开发和融入实践教学成为一个重要的课题。文中介绍的基于开放结构的四轴运动控制开发平台就属于此类设备。开发者可利用该开放式结构,设计功能任意的运动控制系统。由于该设备的实验面板只有 4 个电机作为控制对象,无执行机构 (如滚珠丝杠和加工刀具)。因此用户无法直接观察执行机构三维空间的轨迹控制效果(如刀具的运动轨迹)。基于这种不足,设计了三轴数控铣床实验系统,通过在三维环境下的虚拟执行机构,可直接查看三维空间执行结构的轨迹控制效果,解决了该问题,最大限度地发挥了实验设备的潜力。根据这种设计思想,可以基于该实验设备,设计更多的实验控制系统,实现多种场合的运动控制系统功能,充分挖掘其功能,并给学生更多的学习与锻炼机会。
参考文献:略
投稿箱:
如果您有机床行业、企业相关新闻稿件发表,或进行资讯合作,欢迎联系本网编辑部, 邮箱:skjcsc@vip.sina.com
如果您有机床行业、企业相关新闻稿件发表,或进行资讯合作,欢迎联系本网编辑部, 邮箱:skjcsc@vip.sina.com
更多相关信息