呂德凱,鐘建琳,陳秀梅,李樹春
(北京信息科技大學(xué) 機(jī)電學(xué)院,北京 100192)
長(zhǎng)期以來(lái),數(shù)控加工一直采用基于ISO6983[1](G/M代碼)標(biāo)準(zhǔn)的編程方式,這種標(biāo)準(zhǔn)規(guī)定下的數(shù)控加工程序是通過指定機(jī)床軸的運(yùn)動(dòng),實(shí)現(xiàn)加工。隨著CAD/CAM 系統(tǒng)和CNC 系統(tǒng)性能的提高,ISO6983 協(xié)議日益暴露出其不可克服的缺點(diǎn)[2],如G/M 代碼只定義了機(jī)床的運(yùn)動(dòng)和開關(guān)動(dòng)作,不包含產(chǎn)品數(shù)據(jù)的其他信息,現(xiàn)場(chǎng)編程和修改非常困難,廠商之間不同控制系統(tǒng)不兼容等等。這已成為制約數(shù)控技術(shù)智能化、集成化、網(wǎng)絡(luò)化發(fā)展的“瓶頸”。
國(guó)際標(biāo)準(zhǔn)化組織ISO 于1984 年提出的產(chǎn)品數(shù)據(jù)的交換標(biāo)準(zhǔn)STEP(standard exchange of product data model),是一種不依賴具體系統(tǒng),能夠描述產(chǎn)品全生命周期數(shù)據(jù)的中性機(jī)制,在產(chǎn)品的全生命周期做到信息共享。STEP 標(biāo)準(zhǔn)定義了CAD 設(shè)計(jì)數(shù)據(jù)標(biāo)準(zhǔn)(包括幾何工件數(shù)據(jù)、設(shè)計(jì)特征),STEP-NC 標(biāo)準(zhǔn)通過定義CAD 工藝規(guī)劃與NC 控制系統(tǒng)的接口,將STEP 數(shù)據(jù)格式擴(kuò)展到制造領(lǐng)域,即STEPNC 是用于為數(shù)控(NC)設(shè)備定義數(shù)據(jù)而擴(kuò)充的STEP 標(biāo)準(zhǔn)。與采用G/M 代碼編寫的程序相比,基于STEP-NC 的程序可大幅度地減少傳統(tǒng)的CAD/CAM 系統(tǒng)加工零件的時(shí)間,消除了在加工制造過程中所需的后處理器,并且能夠支持將在今后出現(xiàn)的更快、更安全、更加智能的加工設(shè)備。
STEP-NC 程序文件按照ISO-10303-21 標(biāo)準(zhǔn)規(guī)定的文件格式編寫,文件以“ISO-10303-21;”開始,以“END-ISO-10303-21;”結(jié)束。其文件格式也同STEP 一樣,從結(jié)構(gòu)上主要分為:文件頭和數(shù)據(jù)段兩部分。1)頭文件用關(guān)鍵詞“HEADER”標(biāo)注,主要用來(lái)說明文件描述、文件名、文件模式等信息;2)數(shù)據(jù)段用關(guān)鍵詞“DATA”標(biāo)注,是程序的主體部分,包含了加工零件所需的有關(guān)幾何形狀、特征以及制造任務(wù)的所有信息。每個(gè)STEP-NC 程序的數(shù)據(jù)段都以工程(PROJECT)為切入點(diǎn),并且規(guī)定每個(gè)STEP-NC 的加工程序中有且只有一個(gè)工程。程序以工程為入口,自上而下繼承開來(lái),描述了工件狀況和主要工作計(jì)劃,接著具體分成三部分進(jìn)行描述:加工計(jì)劃與可執(zhí)行操作(workplan and executables)、幾何信息描述(geometry description)、工藝信息描述(technology description)。STEP-NC 程序結(jié)構(gòu)如圖1 所示。
STEP-NC 文件是用EXPRESS 語(yǔ)言來(lái)描述的,但EXPRESS 本身并不是計(jì)算機(jī)編程語(yǔ)言,用它定義的數(shù)據(jù)模型,不能直接進(jìn)行程序設(shè)計(jì)。因此,信息提取是STEP-NC實(shí)現(xiàn)首要解決的關(guān)鍵技術(shù)問題,STEP-NC 研究中,提出了多種信息提取方法,如可以使用STIX(STEP Index)庫(kù)中的函數(shù)處理文件數(shù)據(jù)。
圖1 STEP-NC 程序結(jié)構(gòu)圖
本文從STEP-NC 程序的結(jié)構(gòu)特點(diǎn)分析信息提取方法,將采用EXPRESS 語(yǔ)言描述的實(shí)體、類型、模式等映射到程序設(shè)計(jì)語(yǔ)言。程序的關(guān)鍵部分?jǐn)?shù)據(jù)段以“DATA”開始,按“實(shí)體標(biāo)識(shí)=實(shí)體名(屬性值);”的格式列出,如“#2=WORKPLAN(’’,(#10,#11),&);”,其中“#2”是實(shí)體標(biāo)識(shí);“WORKPLAN”即實(shí)體名來(lái)源于EXPRESS 語(yǔ)言定義,并且在STEP-NC 中都有唯一的實(shí)體標(biāo)識(shí);“(’’,(#10,#11),&)”屬性值可以是簡(jiǎn)單數(shù)據(jù)支或結(jié)構(gòu)類型數(shù)據(jù),也可以是嵌入式的實(shí)體,屬性之間有嚴(yán)格的順序,多個(gè)屬性之間用“,”分隔。
STEP-NC 程序中的結(jié)構(gòu)實(shí)體主要包括:工程(PROJECT),工作計(jì)劃(WORKPLAN),工件(WORKPIECE),加工步驟(WORKSTEP),工藝描述、幾何特征。工程(PROJECT)包含工作計(jì)劃和工件信息,是程序起點(diǎn);工作計(jì)劃(WORKPLAN)包含可執(zhí)行操作,可執(zhí)行操作啟動(dòng)機(jī)床動(dòng)作,有三類可執(zhí)行操作:加工步驟(WORKSTEP),程序結(jié)構(gòu)和NC 功能。STEP-NC 用可執(zhí)行操作的順序給出制造操作的執(zhí)行順序;加工步驟代表制造任務(wù)的主要成分,每個(gè)加工步驟描述用一種切削刀具的一個(gè)單一制造操作,包含零件的幾何特征和制造特征;NC 功能包括工件坐標(biāo)系和安全面設(shè)定、程序停止和選擇停機(jī)等輔助命令。
因此,以實(shí)體定義為基礎(chǔ)的STEP-NC 程序,通過實(shí)體屬性與限制的標(biāo)識(shí)引用,將各實(shí)體聯(lián)系起來(lái),最終達(dá)到描述產(chǎn)品信息的目的。因此,信息提取的基本內(nèi)容與原則即為將實(shí)體標(biāo)識(shí)、實(shí)體名、實(shí)體屬性按順序提取并保存。
STEP-NC 程序文件是用EXPRESS 語(yǔ)言描述的,文件的信息都是以實(shí)體為核心來(lái)定義的。信息提取就是將程序中以實(shí)體及其屬性來(lái)描述的產(chǎn)品所有信息提取出來(lái),并映射為計(jì)算機(jī)能直接運(yùn)行的語(yǔ)言。因此,本文選擇同樣是面向?qū)ο蟮腃++語(yǔ)言進(jìn)行映射,STEP-NC 程序中實(shí)體與C++的映射對(duì)應(yīng)關(guān)系如圖2 所示,信息提取過程如圖3 所示。
STEP-NC 頭文件主要描述了程序的一些通用信息,這部分包含了三個(gè)實(shí)體:文件描述、文件名、文件的模式。這三個(gè)實(shí)體名的屬性值中包含了文件名、編程者、日期和注釋等信息。通過對(duì)實(shí)例頭文件信息的提取可得到如圖4所示的結(jié)果。
圖4 頭文件信息提取圖
數(shù)據(jù)段部分是整個(gè)STEP-NC 程序的主體部分,包含了加工所需的加工計(jì)劃、特征信息、工藝信息、刀具信息等各種信息。它們之間的關(guān)系主要是實(shí)體嵌套引用,可以采用序列樹形式顯示。
STEP-NC 程序文件數(shù)據(jù)段部分的標(biāo)準(zhǔn)格式為“#整形數(shù)字標(biāo)識(shí)符=關(guān)鍵詞(屬性1,屬性2,(聚合性屬性31,聚合性屬性32,...),...);”。該實(shí)例程序包含了一個(gè)主要工作計(jì)劃#2 和工件#4,如“#1=PROJECT ('EXECUTE EXAMPLE1',#2,(#4),$,$,$);”表示實(shí)體,“#2=WORKPLAN ('MAIN WORKPLAN',(#10,#11,#12,#13,#14),$,#8,$);”表示工作計(jì)劃、可執(zhí)行對(duì)象順序(#10,#11,#12,#13,#14),“#4=WORKPIECE('SIMPLE WORKPIECE',#6,0.010,$,$,$,(#66,#67,#68,#69));”表示工件、零件材料#6、零件公差0.010、工件表面夾具設(shè)備的位置(#66,#67,#68,#69)。實(shí)體之間是遍歷引用的關(guān)系,由此可得到如下的程序結(jié)構(gòu)樹如圖5 所示。
圖5 程序結(jié)構(gòu)樹
STEP-NC 標(biāo)準(zhǔn)的出現(xiàn)對(duì)現(xiàn)有數(shù)控技術(shù)發(fā)展是一項(xiàng)巨大的進(jìn)步,不僅能夠完全取代G/M 代碼的編程方式,而且還有其固有的優(yōu)勢(shì)。但當(dāng)今國(guó)際上關(guān)于STEP-NC 的研究還處于起步階段,各項(xiàng)標(biāo)準(zhǔn)制定需完善。程序信息提取是STEP-NC 數(shù)控系統(tǒng)的核心部分,其功能是對(duì)STEP-NC 程序文件進(jìn)行讀取、分析、對(duì)加工所需的信息進(jìn)行提取,并依據(jù)各實(shí)體的關(guān)系將其映射為計(jì)算機(jī)能識(shí)別的語(yǔ)言。本文給出了STEP-NC 程序信息提取的一種方法,并驗(yàn)證了其可行性,為今后數(shù)控系統(tǒng)的開發(fā)奠定了基礎(chǔ)。
[1]朱曉明,富宏亞,王永章,等.STEP-NC 數(shù)控系統(tǒng)若干關(guān)鍵實(shí)現(xiàn)技術(shù)研究[J].計(jì)算機(jī)集成制造系統(tǒng),2009(6):1122-1124.
[2]夏鏈,胡靜,趙韓,M Wosnik,P Klemm.基于STEP-NC 的數(shù)控新標(biāo)準(zhǔn)[J].合肥工業(yè)大學(xué)學(xué)報(bào)(自然科學(xué)版),2008(1):134-134.
[3]陳偉雄,姚錫凡.基于STEP-NC 的CAD/CAPP/CNC 系統(tǒng)集成及應(yīng)用研究[J].機(jī)械設(shè)計(jì)與制造,2010(1):79-80.
[4]張禮兵,吳婷.基于STEP-NC 數(shù)控編程方法的研究[J].煤礦機(jī)械,2009(12):207-209.
[5]孫軍,張曉磊,王軍,等.基于STEP-NC 車削解釋器及刀具軌跡生成器的研究[J].機(jī)械設(shè)計(jì)與制造,2009(10):246-248.