韓德東 付云忠 韓振宇 劉建康
【摘要】根據數控技術實驗教學的現狀,提出了實驗教學課程與開源數控系統相結合的實驗教學方式,開源數控系統可以讓學生加強對數控系統底層原理的理解,有利于學生全面鞏固和掌握所學知識,培養學生興趣,提高學生的創新能力與就業能力。
【關鍵詞】數控技術 開源數控系統 交互式學習 實驗平臺
【中圖分類號】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)。