西門子SINUMERIK840D數控系統的多軸加工重復循環及其在VERICUT中的實現
一、前言
西門子SINUMERIK840D系統作為一個高端的數控系統,指令豐富,功能強大,被廣泛應用到各類加工中心上。該系統的宏指令(@代碼)編程方式既是對標準編程指令集的補充,又極大地擴充了系統的編程指令,同時也極大地方便了用戶的使用。用戶完全可以根據自身的需要,去編制簡潔、實用、優化以及有針對性的程序,以實現各種功能。
產品零件的多軸加工,在這里我們主要是指應用4~5軸的加工方式實現對零件的加工。實際工作中通常都使用標準的編程指令去編制程序,但有時我們也會碰到一些結構上比較有特點的零件,比如圖1、圖2所示的葉輪類的零件,這類零件的每一個葉片和流道只是在某個旋轉軸上相差一個角度,如果將所有的加工輪廓都編制出來,顯然是很不經濟,也使得程序冗長。相反只編制一個葉片和流道的加工輪廓,通過重復循環的方式去實現整個葉輪的加工,這樣的零件加工程序簡潔,結構才更加合理。這種重復循環編程方式通過宏指令完全可以實現,在我們工廠里早已應用。但是我們以前程序中所使用的某些宏指令在VERICUT軟件中不起作用,無法實現完整的程序仿真。經過對西門子SINUMERIK840D系統標準編程指令、宏指令以及VERICUT軟件本身的研究,我最終找到了即能被數控系統接受,又能在VERICUT軟件中實現重復循環功能的方式。以下就該數控系統的多軸加工重復循環問題以及如何在VERICUT中去實現的問題介紹一下我的處理方式,重點介紹數控系統和VERICUT軟件都接受的方式。
二、西門子SINUMERIK840D數控系統常用的多軸加工重復循環
西門子SINUMERIK840D系統是開放式的數控系統,可以通過數據通道實現系統變量和外部R參數之間的相互傳遞,因此比較容易通過宏指令去實現重復循環的功能。西門子SINUMERIK840D系統中提供了程序分支和R參數到系統內存的數據傳輸以及算術功能的宏指令,我們通過@12X這種IF-THEN-ELSE指令或者@13X這種WHILE指令以及@100這種GOTO指令去實現多次的循環和程序的跳轉,通過@430零點偏移輸入指令或@432可編程零點偏移輸入指令將程序分支中的相應R參數調入去實現加工軌跡的旋轉,最終實現多軸加工的重復循環功能。這種方式對絕對值/增量值編程方式都是適用的。另外,實際上對于增量值編程方式,完全可以不使用@430或@432宏指令,而只是通過在加工軌跡的第一個絕對值定位程序段中給相應的旋轉軸地址碼賦一個R變量參數,該R參數同樣是在程序分支中賦給不同的值以實現完整的重復循環。例如,G00X._Y_Z_B=R100或者G00X._Y_Z_B_C=R100,值得注意的是這樣的方式必須要求在定位程序段后面所有的加工軌跡程序段中都使用增量。
三、VERICUT軟件接受的多軸加工重復循環方式
VERICUT作為一個高端的校驗、仿真、優化軟件,能夠很好地支持各種數控系統的G代碼文件。在西門子系統中對@12X和@100等部分宏指令是完全支持的,但是該軟件在G-codesetting中的JobTables里的有關設置是不支持變量的,如圖2所示,因此也就不支持西門子SINUMERIK840D系統中使用的@430或@432宏指令。雖然對于前述的增量值編程方式是支持的,但實際工作中,更多、更方便的是使用絕對值編程方式。因此,找到VERICUT軟件所接受的多軸加工重復循環方式是有現實意義的。
經過試驗,在西門子SINUMERIK840D系統中提供的標準編程指令中,零點偏移指令G54~G57配合可編程零點偏移指令G58/G59也能實現加工軌跡的旋轉。而且這種方式是VERICUT軟件所接受的。下面參照5軸加工的部分程序段具體介紹。
(1)在主程序中的調用
L200R26=0R27=17R28=0001R29=1;(R27:循環次數R28:子程序號)
(2)子程序SPF200
@714
R49=0;(加工軌跡旋轉角度的初值)
R26=360/R27;(旋轉角度的均分值)
N300@126R29R27K375;(當R29