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