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