韩德东 付云忠 韩振宇 刘建康
【摘要】根据数控技术实验教学的现状,提出了实验教学课程与开源数控系统相结合的实验教学方式,开源数控系统可以让学生加强对数控系统底层原理的理解,有利于学生全面巩固和掌握所学知识,培养学生兴趣,提高学生的创新能力与就业能力。
【关键词】数控技术 开源数控系统 交互式学习 实验平台
【中图分类号】G642 【文献标识码】A 【文章编号】2095-3089(2014)11 -0172-03
Experimental Teaching Based on Open Source Numerical Control System
HAN De-dong, FU Yun-zhong, HAN Zhen-yu, LIU Jian-kang
(Mechanical Manufacturing and Automation Department, Harbin Institute of Technology, Harbin 150001, China)
【Abstract】Based on the present situation of experimental teaching of CNC technology, a new experimental teaching method was proposed which combines experiment course with open source numerical control system. Open source numerical control system can enhance students understanding towards underlying theories of numerical control system, and it is beneficial for student to grasp and consolidate corresponding knowledge, to cultivate interest, to promote innovation capacity and employability.
【Key Words】numerical control technology open source NC system interactive learning experiment platform
1 引言
数控机床行业作为国家基础性和战略性产业,在“十二五”规划中,已明确将自主创新战略作为最主要的一个组成部分,着重强调了要以技术创新工程来支撑和引领行业发展。我国数控机床行业的发展必须立足于自主创新,加强关键技术的研究,大力培养创新型人才,力争在数控系统关键性技术攻关上有所突破,提高我国数控系统科技水平[1-2]。而随着社会经济发展,企业对人才的要求不断提高,我国高等教育必须不断深化改革,调整授课方式,以培养新型人才,以满足市场需求。在数控教学方面,需要不断寻求更加创新的教学方式,培养学生的学习兴趣,提高学生的创新能力与就业能力。
数控技术课程是机械类专业学生必修的一门既具有理论性又具有实践性的多学科融合的课程,而现行教学方式多偏重理论讲述,数控实验课内容更是以数控系统的使用为主,停留在G&M加工代码编写、UG等CAM软件的使用层面,导致学生对数控系统内部的插补原理、实时性、运动控制原理等理解不够深入,难以达到大纲要求的教学目的。开源数控系统由于其开放的特性,应用在数控教学中可以使学生更多地了解数控系统内部实现原理。因此,本文对开源数控系统在数控实验教学中的应用进行了探索。
2 基于开源数控系统的新型实验教学模式
为改变传统数控实验教学模式下的种种弊端,各种新型的教学模式不断提出并应用于实践教学中[3],利用开源数控系统可以开展多种新型的开放式实验教学模式[4],以提高学生参与的积极性,提升教学效率。
(1) 交互式学习
传统的教学模式是教师单方面教授知识,而实践证明这种教学模式缺乏教师与学生之间的交流,学生参与积极性不高,学习效率较低[5]。基于开源数控系统的交互式实验教学模式,应针对学生的特点,以学生的自主学习为基准,以学生能力的提高为方向,遵循学生的认知规律,体现由提出问题—分析问题—解决问题—探究创新的认知过程。而且,利用开源数控系统,可以用极小的成本搭建实验平台,可以使更多学生参与动手操作,使学生更多地发现问题,提出问题,并与老师互动,从而解决问题。
(2) 主动式学习
“主动式学习”是学生在学习时表现出来的自觉性、积极性、独立性等特征的总和,是学生从事创造性学习活动的一种心理能动状态。主动学习被视为对传统教学的根本性改进[6]。利用开源数控系统,可以让学生自主探索数控系统内部基本原理,提高学习兴趣,发挥学生主观能动性,认真领悟、主动实践,最终获取知识和能力。根据学生感兴趣的程度,采取从易到难的层次化学习目标,从而实现因材施教,激发他们学习的积极性,发挥主动式模式的优势。
(3) 任务驱动式学习
在传统实验教学中,教师把实验过程中所有具体操作步骤都教授给学生,学生只能按部就班地执行,没有机会去思考。而利用开源数控系统开展“任务驱动”实验教学,教师可以把数控实验教学任务制定一个目标计划体系,然后由学生自主地一步一步去实现这个计划,学生自己思考、寻求解决方法,使学生的积极性得到充分的发挥[7]。在基于“任务驱动”的实验教学平台中,学生是学习活动的主体。学习者既需要有统一的教学目标和要求,又可以根据自己的技术、特点与爱好,确定自己的学习进度与学习步骤,按照教师制定的学习任务书和计划书范例、学习成果“作品”范例进行个性化学习,最后展示自己的个性化学习成果并进行学习评价。
3 开源数控系统与数控实验教学的结合
融合上面所探讨的新型教学模式的理念,根据教学大纲要求,建立数控实验教学体系结构,体现理论与实践相结合的教学理念,以实现其预期的教学效果。
3.1 开源数控系统EMC2简介
开源数控系统在世界范围内开放源代码,任何人都可以从网络上下载其源代码,并进行修改以适合自己的应用需求。常用的开源数控系统有美国ArtSoft公司开发的Mach3、美国NIST开发的EMC2等,由于EMC2具有良好的开放性和完善的社区支持,本文选用EMC2进行数控实验教学。
EMC2衍生自NIST(National Institute of Standards and Technology,美国标准与技术研究院)开发的 EMC(Enhanced Machine Controller,增强型机器控制器)项目,该项目最初目的是为了验证利用 PC 机代替专用 NC 控制器实现数控系统功能的可行性,EMC2可以充分发挥PC机强大的计算能力,并利用PC机丰富的接口实现专用NC控制器的功能,是一套真正意义上的开放式软件数控系统。
由于 EMC2 功能强大,灵活的模块化开发方式,并且开放源码,使之可以方便地利用到数控系统实验教学中来,让学生了解数控系统内部软件架构以及基本原理。
3.2基于开源数控系统的实验教学内容
结合开源数控系统,可以在数控实验教学中开展很多新的教学内容,让学生可以涉足数控系统的更深层次。
(1) 数控系统软硬件架构
传统数控技术教学中,一般仅仅简单介绍一下数控机床的构成:数控系统由信息载体、计算机数控系统、伺服系统和机床四部分构成,但是学生没有一个直观的理解,而数控实验课程中,大多使用商业化数控系统,价格昂贵,一般不会拆开整个数控系统、电气系统给学生看,而且,商业数控系统软件都是封闭的,其内部软件架构无从得知。在这种教学模式下,学生只能学习如何使用数控系统,但不能对数控系统的软硬件结构有一个清楚直观的了解。
EMC2是一个非常灵活的模块化软件系统[8],其模块组成主要有:人机界面、 运动控制模块、任务管理模块、I/O控制模块。人机界面(HMI)模块提供了数控系统的人机接口,可以用来切换机床运动模式、加载编辑G代码或者实时显示机床状态等;运动控制模块(EMCMOT)是EMC2的核心,它负责G代码翻译、插补运算、运动控制等数控系统核心功能,该模块实时性要求较高,需要运行在实时内核中;任务管理模块(EMCTASK)是EMC2的大脑,负责实时任务、非实时任务的协调调度执行;I/O 控制模块(EMCIO)负责执行上位模块发送的I/O控制命令,I/O控制模块的灵活运用可以实现软件PLC的功能。除了上述四大模块外,EMC2 还提供了RS274标准G代码程序接口,以及软件PLC功能,可以编译G&M 代码用作加工数据,还可以编辑、解释 PLC梯形图。
图3-1 EMC2软件结构图
EMC2软件结构层次分明,模块划分清晰,易于理解,让学生可以充分理解数控系统软件架构,从而对数控原理有一个更深层次的理解,并且可以激发学生对知识的探索欲望,作为教师便可以及时引导学生,由开源数控系统结构的理解转化到对商业数控系统结构的探索,带领学生对平常熟悉的FANUC、Siemens等商业品牌数控系统的内部结构进行研究,使学生对商业数控系统的多处理器总线结构、内部通信机制等知识点进行深入了解,拓宽学生视野,增长学生见识。
(2) 数控系统实时性
EMC2数控系统是Linux系统上的一个纯软件数控系统,其实时性由RTAI实时内核保证,所以EMC2实时功能模块的开发要在RTAI实时核内进行,程序开发的灵活性大大降低,为了使实时功能的开发更多的体现模块化思想,EMC2提出了HAL[9](Hardware Abstract Layer)概念。图3-1给出了HAL概念的模型图,HAL中定义了几个抽象术语:引脚(Pin)是HAL模块的对外接口,可以与其它HAL模块之间进行数据交换,引脚有输入、输出之分;信号(signal)是引脚上输出的数据,可以是任何类型的数据;参数(Parameter)也是HAL模块的对外接口,只不过是本模块单独使用的,主要用来对HAL模块内的参数进行设置;函数(Function)是HAL模块的功能执行体,结合输入输出数据用来实现某个特定功能;线程(Thread)是指RTAI实时核内的实时线程,所有HAL模块的函数可以顺序添加到线程内进行执行。
图3-2 HAL示意图
利用HAL硬件抽象层,可以让学生对数控系统内实时性有更深刻的理解,通过带领学生编写HAL脚本文件,可以让学生理解实时线程的意义,HAL实时线程以固定时间周期运行,该时间周期就是数控系统的插补周期,每一个插补周期中,数控系统都进行一次插补运算,计算出下一个周期各个坐标轴所要移动到的坐标值,并利用运动控制算法,将位置指令转化为脉冲信号或者模拟信号,传输给伺服放大器,从而完成各个坐标轴的运动控制。
在Linux命令行中,使用下面的命令运行HAL硬件抽象层:
$ halrun
使用loadrt命令加载运动控制模块EMCMOT,并创建伺服周期创建插补周期为1ms的实时线程,作为伺服线程:
loadrt EMCMOT servo_period_nsec=1000000 num_joints=3
加载运动学逆解模块:
loadrt trivkins
加载并口驱动模块:
loadrt hal_parport cfg="0x0378"
将计算机并口的第2、3个引脚分别作为X轴方向信号、脉冲信号的输出引脚:
net Xstep => parport.0.pin-03-out
net Xdir => parport.0.pin-02-out
这样,通过简单的几条命令,就让学生实现了数控系统内部重要模块的调用,知道了数控系统中程序运行的实时性是怎样实现的,明白了从运动控制到发出脉冲指令信号的流程,不知不觉中就将其中所涉及的数控基本知识融汇贯通了。
(3) 插补原理
由于EMC2的开源特性,所有人都可以对其修改、增添源代码以实现自己想要的功能,使之成为国际上很受欢迎的数控研究平台,例如国内外很多学者就利用EMC2进行NURBS等复杂曲线插补算法的研究,并取得了非凡的成就。将EMC2中插补算法的相关源代码提取出来,供学生研究,与课堂上讲的插补原理进行对照学习,可以让学生对数控插补原理有一个更深入的理解。
EMC2源代码中,实现插补算法的C程序文件在./src/emc/rs274ngc/文件夹下,比如圆弧插补的程序代码就是该文件夹下的interp_cycles.cc文件,其中圆弧插补函数定义如下:
int Interp::convert_cycle_xy(int motion, //!< a g-code between G_81 and G_89, a canned cycle
block_pointer block, //!< pointer to a block of RS274 instructions
setup_pointer settings) //!< pointer to machine settings
C语言是高校理工科学生的必修课程,所以大学生一般都具有一定的编程基础,学生可以对照课堂上老师讲的“时间分割法”插补算法,阅读该程序源代码,从而深入了解插补算法在数控系统中是如何实现的。
这样数控技术实验教学,就不仅仅停留在理论讲述的层面上,也不只是数控系统的使用层面上,而是深入到实践中去体验基础理论的应用,有能力的学生甚至能够自己编程实现各种插补算法,在EMC2开源数控系统实验平台上进行实验验证,真正地实现因材施教,最大限度地发挥数控实验教学课程的作用。
4学生实验平台搭建:
传统数控实验课程中,多使用校友或企业捐赠的老旧数控机床作为实验平台,使用FANUC、西门子或华中数控等商业数控系统,由于商业数控系统的封闭性,只能教学生学习怎样使用数控系统,而不能对数控系统底层的基本原理进行实验教学。而利用开源数控系统EMC2,就可以搭建开放式数控教学实验平台,通过该平台,使学生熟悉数控机床的基本组成、机床的基本操作和基本原理;甚至可以通过添加自己编写的模块,实现相应的数控功能,从而真正理解数控系统的特点,为学生将来的科学研究和实际工作奠定坚实的理论和实践基础。
由于EMC2是一个纯软件数控系统,它可以利用计算机并口输出脉冲信号控制电机转动,所以不需要使用价格昂贵的运动控制卡,仅仅利用廉价的并口接口板,配合伺服电机以及铣床工作台,就可以搭建低成本试验台,供学生数控实验课程使用。实验平台系统框图如图4-1所示,实验平台实物如图4-2所示。并口接口板的作用是对计算机并口输出的脉冲信号、开关量信号进行光耦隔离,起到保护计算机主板的作用,并将并口的3.3V信号转化为伺服驱动器和变频器所需要的24V电平信号。
5 结语
本文结合开源数控系统与先进的交互式、主动式和任务驱动式教学理念,针对传统实验教学授课方式的弊端,重新制定了新型数控实验教学方式,根据数控基本原理对实验课程内容进行了规划,使之能够和数控原理课程很好地进行结合,并开发了数控实验平台。学生可以通过该实验课程,加深对数控系统原理的理解,培养对数控相关课程的学习兴趣,实现自主、任务驱动式学习,增强其学习的积极性和主动性。通过教学实践验证,基于开源数控系统的新型实验教学方式具有良好的教学效果,可以作为数控原理教学的有效教学手段。
参考文献:
[1] 李玉忠, 罗海鸥. 从“制造大国”迈向“制造强国”过程中的数控创新人才培养模式研究[J]. 广东技术师范学院学报, 2009 (9): 1-5.
[2] 李玉忠. 我国的“制造强国”战略与数控创新人才培养的模式研究[J]. 科技创新导报, 2008 (18): 153-154.
[3] 韩德东. 数控原理的网络教学系统开发[J]. 实验室研究与探索, 2010, 7: 019.
[4] 王晓娜, 余桂英, 郭天太, 等. 以提高学习能力为导向的开放式实验教学[J]. 实验室研究与探索, 2010, 29(7): 97-100.
[5] 李长萍. 论交互性教学的内涵及特征[J]. 教育理论与实践,2007,04:45-47.
[6] 吴美玉. 自主式课堂教学模式的探索与研究[J]. 青海教育, 2007 (12): 31-32.
[7] 沈利民. 基于“任务驱动”网络教学模式的平台设计[J]. 江苏广播电视大学学报, 2006, 16(6): 35-37.
[8] 李鹏. 基于STEP-NC的开放式智能数控系统架构及其关键技术研究[D]. 山东大学, 2011.
[9] The EMC Team. HAL Manual 2.4[Z]. October 9, 2010
基金项目:
国家科技重大专项资助项目(No. 2013ZX04013011)。