多軸加工重復循環及其在VERICUT中的實現
一、前言
西門子SINUMERIK 840D系統作為一個高端的數控系統,指令豐富,功能強大,被廣泛應用到各類加工中心上。該系統的宏指令(@代碼)編程方式既是對標準編程指令集的補充,又極大地擴充了系統的編程指令,同時也極大地方便了用戶的使用。用戶完全可以根據自身的需要,去編制簡潔、實用、優化以及有針對性的程序,以實現各種功能。
產品零件的多軸加工,在這里我們主要是指應用4~5軸的加工方式實現對零件的加工。實際工作中通常都使用標準的編程指令去編制程序,但有時我們也會碰到一些結構上比較有特點的零件,比如圖1、圖2所示的葉輪類的零件,這類零件的每一個葉片和流道只是在某個旋轉軸上相差一個角度,如果將所有的加工輪廓都編制出來,顯然是很不經濟,也使得程序冗長。相反只編制一個葉片和流道的加工輪廓,通過重復循環的方式去實現整個葉輪的加工,這樣的零件加工程序簡潔,結構才更加合理。這種重復循環編程方式通過宏指令完全可以實現,在我們工廠里早已應用。但是我們以前程序中所使用的某些宏指令在VERICUT軟件中不起作用,無法實現完整的程序仿真。經過對西門子SINUMERIK 840D系統標準編程指令、宏指令以及VERICUT軟件本身的研究,我最終找到了即能被數控系統接受,又能在VERICUT軟件中實現重復循環功能的方式。以下就該數控系統的多軸加工重復循環問題以及如何在VERICUT中去實現的問題介紹一下我的處理方式,重點介紹數控系統和VERICUT軟件都接受的方式。
二、西門子SINUMERIK 840D數控系統常用的多軸加工重復循環
西門子SINUMERIK 840D系統是開放式的數控系統,可以通過數據通道實現系統變量和外部R參數之間的相互傳遞,因此比較容易通過宏指令去實現重復循環的功能。西門子SINUMERIK 840D系統中提供了程序分支和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-code setting中的Job Tables里的有關設置是不支持變量的,如圖2所示,因此也就不支持西門子SINUMERIK 840D系統中使用的@430或@432宏指令。雖然對于前述的增量值編程方式是支持的,但實際工作中,更多、更方便的是使用絕對值編程方式。因此,找到VERICUT軟件所接受的多軸加工重復循環方式是有現實意義的。
經過試驗,在西門子SINUMERIK 840D系統中提供的標準編程指令中,零點偏移指令G54~G57配合可編程零點偏移指令G58/G59也能實現加工軌跡的旋轉。而且這種方式是VERICUT軟件所接受的。下面參照5軸加工的部分程序段具體介紹。
(1)在主程序中的調用
L200 R26=0 R27=17 R28=0001 R29=1;(R27:循環次數 R28:子程序號 )
(2)子程序SPF 200
@714
R49=0 ;(加工軌跡旋轉角度的初值)
R26=360/R27;(旋轉角度的均分值)
N300 @126 R29 R27 K375 ;(當R29 L=R28 ;(調用子程序)
R49=R29*R26;(加工軌跡旋轉角度的賦值)
@714
@620 R29 ;(R29= R29+1)
@100 K-300 ;(無條件跳轉執行前面的N300程序段)
N375 G17 M17
(3)子程序SPF0001
G00 G55 G64 G90
G58C=R49
G00 X_ Y_ B_ C_
…..
G58C0
M17
其中通用子程序SPF200利用程序分支結構實現重復循環和賦給參數R49的不同的值,子程序SPF0001中調用參數R49實現了具體加工軌跡的旋轉,且該子程序的加工軌跡絕對值/增量值編程方式都是適用的。從上面的程序可以看出,程序本身并不復雜,易于掌握。如左圖所示,上述的方式我在VERICUT軟件中已經成功的實現了重復循環和整個程序的完整仿真。
四、結束語
通過前面的介紹,有效地利用數控系統的宏指令編程,為我們的實際工作到來了極大的方便。凡在西門子系統中具有相關指令的都可以很好地實現這種重復循環的功能,根據這種編程思想,我在FANUC 0iMD系統中也成功實現了4軸加工的重復循環功能,相信這種編程方式同樣也完全可以擴展到其他數控系統中去。另一方面,通過試驗也能提高對VERICUT軟件功能的認識和應用。本文也旨在通過宏指令的應用以及VERICUT軟件對重復循環的處理方式的介紹,將這種編程思想和對VERICUT軟件的應用更好地用到實際的工作中去,同時去開發更多功能為我們服務
一、前言
西門子SINUMERIK 840D系統作為一個高端的數控系統,指令豐富,功能強大,被廣泛應用到各類加工中心上。該系統的宏指令(@代碼)編程方式既是對標準編程指令集的補充,又極大地擴充了系統的編程指令,同時也極大地方便了用戶的使用。用戶完全可以根據自身的需要,去編制簡潔、實用、優化以及有針對性的程序,以實現各種功能。
產品零件的多軸加工,在這里我們主要是指應用4~5軸的加工方式實現對零件的加工。實際工作中通常都使用標準的編程指令去編制程序,但有時我們也會碰到一些結構上比較有特點的零件,比如圖1、圖2所示的葉輪類的零件,這類零件的每一個葉片和流道只是在某個旋轉軸上相差一個角度,如果將所有的加工輪廓都編制出來,顯然是很不經濟,也使得程序冗長。相反只編制一個葉片和流道的加工輪廓,通過重復循環的方式去實現整個葉輪的加工,這樣的零件加工程序簡潔,結構才更加合理。這種重復循環編程方式通過宏指令完全可以實現,在我們工廠里早已應用。但是我們以前程序中所使用的某些宏指令在VERICUT軟件中不起作用,無法實現完整的程序仿真。經過對西門子SINUMERIK 840D系統標準編程指令、宏指令以及VERICUT軟件本身的研究,我最終找到了即能被數控系統接受,又能在VERICUT軟件中實現重復循環功能的方式。以下就該數控系統的多軸加工重復循環問題以及如何在VERICUT中去實現的問題介紹一下我的處理方式,重點介紹數控系統和VERICUT軟件都接受的方式。
二、西門子SINUMERIK 840D數控系統常用的多軸加工重復循環
西門子SINUMERIK 840D系統是開放式的數控系統,可以通過數據通道實現系統變量和外部R參數之間的相互傳遞,因此比較容易通過宏指令去實現重復循環的功能。西門子SINUMERIK 840D系統中提供了程序分支和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-code setting中的Job Tables里的有關設置是不支持變量的,如圖2所示,因此也就不支持西門子SINUMERIK 840D系統中使用的@430或@432宏指令。雖然對于前述的增量值編程方式是支持的,但實際工作中,更多、更方便的是使用絕對值編程方式。因此,找到VERICUT軟件所接受的多軸加工重復循環方式是有現實意義的。
經過試驗,在西門子SINUMERIK 840D系統中提供的標準編程指令中,零點偏移指令G54~G57配合可編程零點偏移指令G58/G59也能實現加工軌跡的旋轉。而且這種方式是VERICUT軟件所接受的。下面參照5軸加工的部分程序段具體介紹。
(1)在主程序中的調用
L200 R26=0 R27=17 R28=0001 R29=1;(R27:循環次數 R28:子程序號 )
(2)子程序SPF 200
@714
R49=0 ;(加工軌跡旋轉角度的初值)
R26=360/R27;(旋轉角度的均分值)
N300 @126 R29 R27 K375 ;(當R29 L=R28 ;(調用子程序)
R49=R29*R26;(加工軌跡旋轉角度的賦值)
@714
@620 R29 ;(R29= R29+1)
@100 K-300 ;(無條件跳轉執行前面的N300程序段)
N375 G17 M17
(3)子程序SPF0001
G00 G55 G64 G90
G58C=R49
G00 X_ Y_ B_ C_
…..
G58C0
M17
其中通用子程序SPF200利用程序分支結構實現重復循環和賦給參數R49的不同的值,子程序SPF0001中調用參數R49實現了具體加工軌跡的旋轉,且該子程序的加工軌跡絕對值/增量值編程方式都是適用的。從上面的程序可以看出,程序本身并不復雜,易于掌握。如左圖所示,上述的方式我在VERICUT軟件中已經成功的實現了重復循環和整個程序的完整仿真。
四、結束語
通過前面的介紹,有效地利用數控系統的宏指令編程,為我們的實際工作到來了極大的方便。凡在西門子系統中具有相關指令的都可以很好地實現這種重復循環的功能,根據這種編程思想,我在FANUC 0iMD系統中也成功實現了4軸加工的重復循環功能,相信這種編程方式同樣也完全可以擴展到其他數控系統中去。另一方面,通過試驗也能提高對VERICUT軟件功能的認識和應用。本文也旨在通過宏指令的應用以及VERICUT軟件對重復循環的處理方式的介紹,將這種編程思想和對VERICUT軟件的應用更好地用到實際的工作中去,同時去開發更多功能為我們服務