呂德凱,鐘建琳,陳秀梅,李樹春
(北京信息科技大學 機電學院,北京 100192)
長期以來,數控加工一直采用基于ISO6983[1](G/M代碼)標準的編程方式,這種標準規定下的數控加工程序是通過指定機床軸的運動,實現加工。隨著CAD/CAM 系統和CNC 系統性能的提高,ISO6983 協議日益暴露出其不可克服的缺點[2],如G/M 代碼只定義了機床的運動和開關動作,不包含產品數據的其他信息,現場編程和修改非常困難,廠商之間不同控制系統不兼容等等。這已成為制約數控技術智能化、集成化、網絡化發展的“瓶頸”。
國際標準化組織ISO 于1984 年提出的產品數據的交換標準STEP(standard exchange of product data model),是一種不依賴具體系統,能夠描述產品全生命周期數據的中性機制,在產品的全生命周期做到信息共享。STEP 標準定義了CAD 設計數據標準(包括幾何工件數據、設計特征),STEP-NC 標準通過定義CAD 工藝規劃與NC 控制系統的接口,將STEP 數據格式擴展到制造領域,即STEPNC 是用于為數控(NC)設備定義數據而擴充的STEP 標準。與采用G/M 代碼編寫的程序相比,基于STEP-NC 的程序可大幅度地減少傳統的CAD/CAM 系統加工零件的時間,消除了在加工制造過程中所需的后處理器,并且能夠支持將在今后出現的更快、更安全、更加智能的加工設備。
STEP-NC 程序文件按照ISO-10303-21 標準規定的文件格式編寫,文件以“ISO-10303-21;”開始,以“END-ISO-10303-21;”結束。其文件格式也同STEP 一樣,從結構上主要分為:文件頭和數據段兩部分。1)頭文件用關鍵詞“HEADER”標注,主要用來說明文件描述、文件名、文件模式等信息;2)數據段用關鍵詞“DATA”標注,是程序的主體部分,包含了加工零件所需的有關幾何形狀、特征以及制造任務的所有信息。每個STEP-NC 程序的數據段都以工程(PROJECT)為切入點,并且規定每個STEP-NC 的加工程序中有且只有一個工程。程序以工程為入口,自上而下繼承開來,描述了工件狀況和主要工作計劃,接著具體分成三部分進行描述:加工計劃與可執行操作(workplan and executables)、幾何信息描述(geometry description)、工藝信息描述(technology description)。STEP-NC 程序結構如圖1 所示。
STEP-NC 文件是用EXPRESS 語言來描述的,但EXPRESS 本身并不是計算機編程語言,用它定義的數據模型,不能直接進行程序設計。因此,信息提取是STEP-NC實現首要解決的關鍵技術問題,STEP-NC 研究中,提出了多種信息提取方法,如可以使用STIX(STEP Index)庫中的函數處理文件數據。

圖1 STEP-NC 程序結構圖
本文從STEP-NC 程序的結構特點分析信息提取方法,將采用EXPRESS 語言描述的實體、類型、模式等映射到程序設計語言。程序的關鍵部分數據段以“DATA”開始,按“實體標識=實體名(屬性值);”的格式列出,如“#2=WORKPLAN(’’,(#10,#11),&);”,其中“#2”是實體標識;“WORKPLAN”即實體名來源于EXPRESS 語言定義,并且在STEP-NC 中都有唯一的實體標識;“(’’,(#10,#11),&)”屬性值可以是簡單數據支或結構類型數據,也可以是嵌入式的實體,屬性之間有嚴格的順序,多個屬性之間用“,”分隔。
STEP-NC 程序中的結構實體主要包括:工程(PROJECT),工作計劃(WORKPLAN),工件(WORKPIECE),加工步驟(WORKSTEP),工藝描述、幾何特征。工程(PROJECT)包含工作計劃和工件信息,是程序起點;工作計劃(WORKPLAN)包含可執行操作,可執行操作啟動機床動作,有三類可執行操作:加工步驟(WORKSTEP),程序結構和NC 功能。STEP-NC 用可執行操作的順序給出制造操作的執行順序;加工步驟代表制造任務的主要成分,每個加工步驟描述用一種切削刀具的一個單一制造操作,包含零件的幾何特征和制造特征;NC 功能包括工件坐標系和安全面設定、程序停止和選擇停機等輔助命令。
因此,以實體定義為基礎的STEP-NC 程序,通過實體屬性與限制的標識引用,將各實體聯系起來,最終達到描述產品信息的目的。因此,信息提取的基本內容與原則即為將實體標識、實體名、實體屬性按順序提取并保存。
STEP-NC 程序文件是用EXPRESS 語言描述的,文件的信息都是以實體為核心來定義的。信息提取就是將程序中以實體及其屬性來描述的產品所有信息提取出來,并映射為計算機能直接運行的語言。因此,本文選擇同樣是面向對象的C++語言進行映射,STEP-NC 程序中實體與C++的映射對應關系如圖2 所示,信息提取過程如圖3 所示。


STEP-NC 頭文件主要描述了程序的一些通用信息,這部分包含了三個實體:文件描述、文件名、文件的模式。這三個實體名的屬性值中包含了文件名、編程者、日期和注釋等信息。通過對實例頭文件信息的提取可得到如圖4所示的結果。

圖4 頭文件信息提取圖
數據段部分是整個STEP-NC 程序的主體部分,包含了加工所需的加工計劃、特征信息、工藝信息、刀具信息等各種信息。它們之間的關系主要是實體嵌套引用,可以采用序列樹形式顯示。
STEP-NC 程序文件數據段部分的標準格式為“#整形數字標識符=關鍵詞(屬性1,屬性2,(聚合性屬性31,聚合性屬性32,...),...);”。該實例程序包含了一個主要工作計劃#2 和工件#4,如“#1=PROJECT ('EXECUTE EXAMPLE1',#2,(#4),$,$,$);”表示實體,“#2=WORKPLAN ('MAIN WORKPLAN',(#10,#11,#12,#13,#14),$,#8,$);”表示工作計劃、可執行對象順序(#10,#11,#12,#13,#14),“#4=WORKPIECE('SIMPLE WORKPIECE',#6,0.010,$,$,$,(#66,#67,#68,#69));”表示工件、零件材料#6、零件公差0.010、工件表面夾具設備的位置(#66,#67,#68,#69)。實體之間是遍歷引用的關系,由此可得到如下的程序結構樹如圖5 所示。

圖5 程序結構樹
STEP-NC 標準的出現對現有數控技術發展是一項巨大的進步,不僅能夠完全取代G/M 代碼的編程方式,而且還有其固有的優勢。但當今國際上關于STEP-NC 的研究還處于起步階段,各項標準制定需完善。程序信息提取是STEP-NC 數控系統的核心部分,其功能是對STEP-NC 程序文件進行讀取、分析、對加工所需的信息進行提取,并依據各實體的關系將其映射為計算機能識別的語言。本文給出了STEP-NC 程序信息提取的一種方法,并驗證了其可行性,為今后數控系統的開發奠定了基礎。
[1]朱曉明,富宏亞,王永章,等.STEP-NC 數控系統若干關鍵實現技術研究[J].計算機集成制造系統,2009(6):1122-1124.
[2]夏鏈,胡靜,趙韓,M Wosnik,P Klemm.基于STEP-NC 的數控新標準[J].合肥工業大學學報(自然科學版),2008(1):134-134.
[3]陳偉雄,姚錫凡.基于STEP-NC 的CAD/CAPP/CNC 系統集成及應用研究[J].機械設計與制造,2010(1):79-80.
[4]張禮兵,吳婷.基于STEP-NC 數控編程方法的研究[J].煤礦機械,2009(12):207-209.
[5]孫軍,張曉磊,王軍,等.基于STEP-NC 車削解釋器及刀具軌跡生成器的研究[J].機械設計與制造,2009(10):246-248.