陳強(qiáng) 楊爽
摘要:針對(duì)手工編制數(shù)控程序教學(xué)過程中,學(xué)生易在關(guān)鍵字詞法、參數(shù)使用等方面犯錯(cuò)的實(shí)際情況,我們開發(fā)了一套教學(xué)輔助編輯器。編輯器能在編程時(shí)進(jìn)行實(shí)時(shí)詞法分析,顯示報(bào)警語句,約束學(xué)生規(guī)范書寫格式,加深對(duì)關(guān)鍵字的理解,有利于學(xué)生課外獨(dú)立練習(xí),達(dá)到提升教學(xué)效果的目的。
關(guān)鍵詞:數(shù)控加工編程 編輯器 教學(xué)
手工編制數(shù)控加工程序是數(shù)控技術(shù)專業(yè)學(xué)生必須掌握的核心技能,一般采用項(xiàng)目化教學(xué),通常由教師宣講數(shù)控系統(tǒng)編程規(guī)則、常用程序代碼,然后指導(dǎo)學(xué)生規(guī)劃加工工藝,進(jìn)行程序?qū)崿F(xiàn),最后帶領(lǐng)學(xué)生仿真驗(yàn)證、試切、真實(shí)加工。項(xiàng)目化教學(xué)由于案例真實(shí),能引起學(xué)生的興趣,知識(shí)點(diǎn)模塊化,能幫助學(xué)生系統(tǒng)地學(xué)習(xí),但是在操作過程中,仍存在如下問題,影響教學(xué)效率和質(zhì)量。
一是學(xué)習(xí)初期,或因?qū)Υa撰寫規(guī)則不熟,或輸入筆誤,學(xué)生常犯詞法錯(cuò)誤,如循環(huán)指令“WHILE”,漏寫字母;指令“GO(0、1、2之0)”,誤輸入為“GO(0、P、Q之O)”。二是常犯語法錯(cuò)誤,如法拉克系統(tǒng)程序開頭漏寫程序號(hào),結(jié)尾漏寫百分號(hào)。三是常犯語義錯(cuò)誤,如不同平面的圓弧指令,亂用、混用I、J、K、R參數(shù);不同的數(shù)控系統(tǒng),混用特定指令等。四是學(xué)生易犯工藝錯(cuò)誤,如使用了不合適的主軸轉(zhuǎn)速、進(jìn)給速度等等。
上述問題往往只有在使用仿真軟件驗(yàn)證或上機(jī)調(diào)試時(shí)才能發(fā)現(xiàn)。而仿真和上機(jī)調(diào)試,雖有報(bào)警,但有時(shí)報(bào)警內(nèi)容過于簡略,加上漢化翻譯原因,字面意思與原文本意相差甚遠(yuǎn),使得初始階段的學(xué)生不能理解問題之所在。而且報(bào)警提示經(jīng)常不能定位到具體哪段程序存在問題,進(jìn)一步加大了排除難度。如頻繁查閱相關(guān)資料,則大量時(shí)間被用于程序譯讀、詞法、語法核查上,學(xué)生不能將更多的精力用于鍛煉工藝規(guī)劃能力;花費(fèi)大量精力編制的程序,如頻頻報(bào)警,也打擊了學(xué)生興趣。而且參數(shù)誤用易產(chǎn)生安全隱患,導(dǎo)致事故。過多精力被用于幫助學(xué)生解決上述問題,也不利于教師更關(guān)注于提升教學(xué)質(zhì)量。
目前市場(chǎng)上雖有面向企業(yè)用戶的商用類編輯器,能對(duì)詞法、語法問題用顏色標(biāo)示,但不能針對(duì)學(xué)生群體情況,對(duì)各種問題分門別類地報(bào)警提示,無法提升學(xué)生的程序編輯能力。且在學(xué)校時(shí),手工編程時(shí)普遍使用的還是文本編輯器。
一、數(shù)控程序輔助編輯器設(shè)計(jì)
1.編輯器功能
針對(duì)上述問題,以法拉克數(shù)控系統(tǒng)銑削為模板,開發(fā)了一套數(shù)控程序輔助編輯器,其功能目標(biāo)為:識(shí)別常用關(guān)鍵字詞法規(guī)則,對(duì)輸入數(shù)據(jù)不符合規(guī)則情況,即報(bào)出對(duì)應(yīng)警示信息;在滿足詞法規(guī)則的前提下,能判斷輸入數(shù)據(jù)是否處于合理范圍;同時(shí),編輯器具備定制、擴(kuò)展能力,為兼顧更多類型數(shù)控系統(tǒng)預(yù)留接口。編輯器詳細(xì)功能如下。
(1)數(shù)字機(jī)能A-Z。字母后可跟任意有理數(shù),如XIO、X-10.2,可跟參數(shù),如X#10。當(dāng)不是上述數(shù)據(jù)時(shí),立即報(bào)警提示。數(shù)字可設(shè)定區(qū)間范圍,超范圍報(bào)警。如設(shè)定X軸移動(dòng)范圍為-200~200,如輸入“X200.1”,報(bào)警。設(shè)定“#”參數(shù)#300~#400可用,輸入“X#401”時(shí),報(bào)警。
(2)準(zhǔn)備機(jī)能G。字母后可跟00~99中任一數(shù)字,首個(gè)數(shù)字“0”可省略,如GO、GOO、GOI、G1。可跟正分?jǐn)?shù),如G10.1、G54.1??筛鷧?shù),如G#10。不是上述數(shù)據(jù)時(shí),即報(bào)警提示??芍贫ㄖ付C(jī)床G代碼清單,輸入代碼不在清單內(nèi)即報(bào)警。如A機(jī)床識(shí)別G20,但B機(jī)床不識(shí)別,則可針對(duì)A機(jī)床和B機(jī)床定制G代碼清單?!?”參數(shù)可定制范圍。
(3)輔助機(jī)能M。字母后可跟00~99中任一數(shù)字,首個(gè)數(shù)字“0”可省略,如MO、MOO、M98??筛鷧?shù),如M#10??芍贫ㄖ付C(jī)床M代碼清單,輸入代碼不在清單內(nèi)即報(bào)警?!?”參數(shù)可定制范圍。
(4)主軸機(jī)能S。進(jìn)給機(jī)能F:S字母后可跟零和正整數(shù),如S10、S1000。F字母后可跟零和正整數(shù)、正分?jǐn)?shù),如F100、F100.5。可跟參數(shù),如S#10,F(xiàn)#100。數(shù)字可設(shè)定區(qū)間范圍,超范圍報(bào)警。如設(shè)定主軸轉(zhuǎn)速不能超過3000,當(dāng)檢輸入“S3001”時(shí),報(bào)警?!?”參數(shù)亦可設(shè)定范圍??稍O(shè)定主軸S和進(jìn)給F之間的比例關(guān)系,超比例報(bào)警提示。
(5)語義分析功能。可檢測(cè)固定循環(huán)代碼所需參數(shù)是否齊全或多余??蓹z測(cè)刀具號(hào)、長度補(bǔ)償號(hào)、半徑補(bǔ)償號(hào)是否在設(shè)定范圍,防止誤用。
2.編輯器構(gòu)架思路
根據(jù)數(shù)控系統(tǒng)要求歸納常用關(guān)鍵字書寫規(guī)則,形成詞法規(guī)則庫。編輯器運(yùn)行時(shí),首先讀取規(guī)則庫,存入緩存?zhèn)溆?。詞法規(guī)則庫可根據(jù)數(shù)控系統(tǒng)單獨(dú)定制,使編輯器具備一定的兼容能力。
當(dāng)編輯器輸入頁面接收到字符輸入信號(hào)時(shí),即在規(guī)則庫中搜索,判斷該字符是否為數(shù)控系統(tǒng)具備的關(guān)鍵字首字符。如為否,則在信息欄彈出報(bào)警提示信息。如為是,則輸入界面每接收到一個(gè)輸入字符,便在規(guī)則庫中檢索數(shù)字、公式規(guī)則,判斷是否滿足規(guī)范,并依規(guī)彈出報(bào)警信息,直至鍵入另一個(gè)關(guān)鍵字首字符或空格,結(jié)束判斷。如此循環(huán)直至整個(gè)數(shù)控代碼撰寫完畢。
3.編輯器實(shí)現(xiàn)
編程平臺(tái)使用VS2015,新建為多文檔項(xiàng)目,可創(chuàng)建出輸入界面,由輸入界面接受鍵盤鍵入字符信息。添加對(duì)話框作為報(bào)警信息欄,與用戶進(jìn)行信息交互。使用CView類中OnChar函數(shù),響應(yīng)鍵入字符行為,并開始詞法分析。
二、編輯器應(yīng)用和使用效果
1.編輯器應(yīng)用
編輯器可用于“數(shù)控機(jī)床編程與操作”類課程的全過程教學(xué)階段,尤其是在初始階段使用,更能發(fā)揮作用。應(yīng)用可分以下幾個(gè)步驟。
教學(xué)準(zhǔn)備:教師針對(duì)特定機(jī)床定制編輯器規(guī)則庫。
教學(xué)初始階段:講授工藝規(guī)劃、編程規(guī)則,以簡單案例作為實(shí)訓(xùn)內(nèi)容,安排學(xué)生實(shí)訓(xùn)。在實(shí)訓(xùn)過程中要求學(xué)生根據(jù)編輯器報(bào)警提示,完成編程工作。
教學(xué)中期階段:學(xué)生已有編程基礎(chǔ),教師以更復(fù)雜的工件案例,講授更高層次的代碼使用規(guī)則。要求學(xué)生以文本文檔編寫程序,編寫后導(dǎo)入輔助編輯器,查看報(bào)警內(nèi)容,加深學(xué)生理解記憶。
教學(xué)末期階段:教師給出實(shí)訓(xùn)案例,學(xué)生根據(jù)己學(xué)知識(shí),在輔助編輯器的幫助下,自學(xué)部分內(nèi)容,完成工藝規(guī)劃、程序編制、加工。教師觀察整個(gè)過程,適時(shí)指導(dǎo)。
2.編輯器使用效果
以筆者班級(jí)學(xué)生為例,從時(shí)間跨度約半學(xué)期的使用經(jīng)歷來看,編輯器在以下幾個(gè)方面能起到較好的輔助教學(xué)作用。
(1)在程序編輯初始階段,盡可能降低了安全風(fēng)險(xiǎn)。由于編輯器可根據(jù)現(xiàn)場(chǎng)實(shí)際機(jī)床定制一些工藝要求,約束程序表達(dá)的機(jī)床行為,因此可識(shí)別安全隱患,不合理的工藝參數(shù)并報(bào)警。如根據(jù)機(jī)床、刀具等數(shù)據(jù),可約束Z軸加工時(shí)的行程范圍。當(dāng)學(xué)生使用了錯(cuò)誤的長度補(bǔ)償號(hào)時(shí)導(dǎo)致Z軸行程超限時(shí)報(bào)警,可避免撞刀。還可約束主軸轉(zhuǎn)速和進(jìn)給速度間的比例關(guān)系,當(dāng)輸入不匹配的兩個(gè)數(shù)據(jù)時(shí)報(bào)警,可避免粘刀、刀具快速磨損等現(xiàn)象發(fā)生。
(2)學(xué)生程序編輯時(shí)間明顯縮短。由于不用擔(dān)心詞法、語法、部分工藝問題,因此給予了學(xué)生編制程序的信心,且能將更多精力用于工藝規(guī)劃上。程序在機(jī)床上運(yùn)行一次通過率高,也讓學(xué)生較快地獲得成就感,大大提升了學(xué)習(xí)興趣。
(3)由于初始階段已對(duì)安全隱患進(jìn)行了初步排查,因此降低了教師擔(dān)心安全事故的壓力。且編輯器己幫助學(xué)生解決大部分常犯、易犯錯(cuò)誤,教師的精力被節(jié)約出來,可用于與學(xué)生探討更復(fù)雜零件的加工工藝、機(jī)床操作方面更深層次的技術(shù)手段等問題,最終提升了整個(gè)課程的教學(xué)質(zhì)量和效率。
三、小結(jié)
據(jù)統(tǒng)計(jì),與切削過程相比,數(shù)控程序編制時(shí)間占了整個(gè)數(shù)控加工過程的大部分比例。確定工藝路線、工藝準(zhǔn)備、程序編制、仿真試切削是數(shù)控加工的幾大工作內(nèi)容,因此縮短程序編制時(shí)間,尤其避免詞法、語法類低級(jí)錯(cuò)誤,具有較大意義。教學(xué)中使用輔助編輯器,能幫助學(xué)生快速進(jìn)入工藝設(shè)計(jì)狀態(tài),避免陷入無用的查錯(cuò)過程,幫助學(xué)生樹立信心,最終提升教學(xué)質(zhì)量。
參考文獻(xiàn):
[1]覃海,開放式數(shù)控系統(tǒng)宏程序編程平臺(tái)的研究開發(fā)[D].南寧:廣西大學(xué),2005.
[2]韓向春,數(shù)控系統(tǒng)程序編輯器的設(shè)計(jì)與實(shí)現(xiàn)[J].制造業(yè)自動(dòng)化,2004(26).
[3]鄭阿奇.Visual C++實(shí)用教程[M].北京:電子工業(yè)出版社,2017.
(作者單位:樂山職業(yè)技術(shù)學(xué)院)