楊 超 謝劍剛
基于區位碼字典對數控程序進行中文注釋
楊 超 謝劍剛
當前數控機床系統中,數控程序可讀性差,可查找性弱,不利于重復使用;并且由于數控設備存儲空間較小,軟件功能較弱,無法使用拼音、五筆的普通漢字輸入法。為解決這些缺點,特提出一種利用區位碼互譯字典和區位輸入法的中文注釋方法,即向數控程序中輸入一串區位碼字符串,通過轉換成對應GB碼,找到漢字庫中的點陣送給LCD顯示,使得在數控程序中加入了中文注釋。為避免數控程序在加入中文注釋之后,數控機床在加工時產生錯誤,特借鑒C語言的編程注釋和轉義字符的方法。在數控編程語句行中,一串區位碼注釋的開頭和結尾加入“*”,用以屏蔽注釋,保護加工程序。在模擬運行時,數控系統將區位碼字符串翻譯并顯示為中文,在不影響數控機床加工的前提下,提高了數控程序的可讀性和可查找性,便于程序的修改和重復使用。
數控編程是把零件的圖形尺寸、工藝過程、工藝參數、機床的運動以及刀具位移等內容,按照數控機床的編程格式和能識別的語言記錄在程序單上的全過程。程序編制的方法主要有自動編程和手工編程兩類。近年來數控技術發展十分迅速,數控機床的普及越來越高,CAD/CAM集成技術編制數控加工程序為主流。自動編程具有十分顯著的優點:編程速度快、易于加工復雜型腔和表面、不易出錯。但自動編程的程序代碼因為是利用三維軟件自動生成的,其可讀性差,不能完全了解內部的程序,難于看懂和修改,并且軟件價格十分昂貴。手工編程需要花費大量時間且容易出錯,但價格便宜,在加工要求不高的一些中小型企業仍然被廣泛采用。不管是自動編程還是手工編程,對編制后的復雜、大型的程序,事后要想看懂每段程序的含義是十分困難的。特提出一種在數控程序中加入以“*”開頭和結尾的中文注釋的方法。“*”的主要作用是屏蔽注釋內容,保護加工程序的可執行性,以免數控機床加工時出現錯誤。
目前的數控機床系統中,只有三種字符的輸入和顯示形式,即英文大寫字母、數字和特殊字符(%)。所以想要在數控程序中加入中文注釋,需要利用區位輸入法。在實現區位輸入法之前,需要先準備區位碼互譯字典。該字典為中文與區位碼互譯字典,即既可以將漢字翻譯成區位碼,又可以將區位碼翻譯成漢字。該字典安裝在數字設備中,將所有常用漢字和漢字區位碼一一對應,存儲在數字設備的存儲器中,以便數字設備能夠直接準確搜索到漢字的區位碼。
將漢字、字母和數字組成的原字符串輸入到字典的編輯框中,利用數字設備的搜索能力,直接將一個一個漢字翻譯成其對應的區位碼,形成一串數字字符。原字符串中的非漢字字符不被翻譯,直接在其前后冠以轉義字符“/”,以便保留原字符串中的字母和數字,以免與翻譯出來的漢字區位碼產生混淆。為便于清楚看到每個漢字對應的區位碼,采用逐字分格,數字設備能自動將新字符串按照4位數字為一個漢字區位碼進行分格,如圖1所示。

圖1 區位碼互譯字典
區位碼翻譯成漢字
在數控機床中輸入,并且數控系統讀入區位碼字符串之后,數控系統能自動將區位碼翻譯成對應的漢字。這個過程與上述相反,但原理相同,不再贅述。

圖2 數控程序中輸入區位碼字符串

圖3 轉換后的數控程序和注釋
自動編程
在自動編程生成程序文本之后,一旦程序脫離了三維軟件,程序語句含義必然十分難懂。因為計算機軟件功能強大,可在軟件模擬運行的同時,在程序語句行中直接加入中文注釋,但為了保護程序的可執行性,要加入以“*”開頭和結尾的轉義字符。加入了中文注釋后的自動編程的程序文本,在導入數控機床之前,被嵌入了區位碼互譯字典的三維軟件能自動將中文注釋翻譯成區位碼字符串,輸入到數控機床中。再由數控機床模擬運行,系統自動按照每4位數字進行分割、讀取,存入寄存器之中。
手工編程
利用上述區位碼互譯字典,在準備好的數控程序和區位碼字符串后,開始輸入。為避免數控系統在分割數字字符串時產生混淆,出現錯誤,需要在非漢字區位碼字符前后加入轉義字符“/”,保護并在屏幕中顯示出轉義字符“/”內的非漢字字符。在進行數控編程時,數控顯示界面左側正常輸入數控程序,右側的同一行中輸入以“*”開頭的注釋部分,連續輸入一串字符串,例如圖1中的“2212 306328512504/3/448547632246/ABO/”;輸入完成之后再以“*”結尾。若一行之中內容較長,需要兩行顯示,則需要加入換行轉義字符“”。在輸入換行轉義字符“”后,顯示界面的輸入光標自動與上一行的“*”對齊,用以銜接注釋部分的內容,而不影響左側數控程序的輸入。例如輸入圖2之中的內容。
在輸入完成之后,一般需要模擬運行調試程序,在模擬運行的時候,輸入的區位碼字符串,被讀入ROM,數控系統自動將“*”內的區位碼串按照每4位數字進行分割、讀取。若行中存在換行轉義字符“”,系統自動銜接“”前后的內容,并仍然按照每4位數字進行分割、讀取,存入寄存器之中。
系統讀取寄存器之中的漢字區位碼后,通過轉換成GB碼,在經過查找它所對應的漢字庫中的點陣,送給LCD顯示。“*”用以屏蔽注釋,保護程序,直接保留、顯示。兩個“/”之間的非漢字字符,將直接刪除“/”后被顯示出來。換行轉義字符“”也被刪除。圖2中的內容被轉換之后,顯示如圖3所示。
本文提出一種區位碼互譯字典,可以將漢字和區位碼互譯,而非漢字字符不翻譯,直接在其前后分別冠以轉義字符“/”,加以保護。
本文利用漢字區位輸入法,將以“*”開頭和結尾的區位碼字符串,經過數控系統的翻譯、轉換和LED顯示,最終在數控界面中顯示出中文注釋加入了中文注釋后的程序,不僅有了中文文件名注釋,提高了程序的可查找性;還在關鍵語句中加入了注釋,解決了數控程序含義難懂的問題,提高了程序的可讀性,便于修改和重復使用。
10.3969/j.issn.1001-8972.2015.17.019