變量與數(shù)學(xué)函數(shù)_第1頁
變量與數(shù)學(xué)函數(shù)_第2頁
變量與數(shù)學(xué)函數(shù)_第3頁
變量與數(shù)學(xué)函數(shù)_第4頁
變量與數(shù)學(xué)函數(shù)_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、第六章 變量與數(shù)學(xué)函數(shù)6.1 變量SINUMERIK數(shù)控系統(tǒng)變量是指系統(tǒng)內(nèi)部已經(jīng)命名和規(guī)劃用途的參數(shù)。學(xué)習(xí)和使用系統(tǒng)變量進(jìn)行編寫加工程序是屬于高級編程階段的內(nèi)容,需要編程者已經(jīng)對西門子數(shù)控系統(tǒng)比較了解,具有一定的加工編程經(jīng)驗(yàn)和系統(tǒng)數(shù)據(jù)調(diào)試經(jīng)驗(yàn)。由于在編程中涉及系統(tǒng)參數(shù)的一些讀取或?qū)懭氩僮?,在?yàn)證所編寫的程序時一定要注意操作安全,并做好數(shù)據(jù)記錄。系統(tǒng)變量的設(shè)計(jì)與規(guī)劃用途的完整情況只能由系統(tǒng)研發(fā)人員作出說明,可能需要非常多的篇幅。僅就828D系統(tǒng)而言,其支持軟件系統(tǒng)有三個主要版本,某些變量又是針對某個版本設(shè)計(jì)規(guī)劃的。本書僅僅就選取出的部分以標(biāo)示符打頭的、常用的變量使用方法進(jìn)行說明,需要讀者在機(jī)床上

2、驗(yàn)證后使用。通過使用變量,特別是計(jì)算機(jī)功能和控制結(jié)構(gòu)的相關(guān)變量,可以使零件程序和循環(huán)的編寫更為靈活。為此,828D系統(tǒng)提供了三種不同類型的變量:系統(tǒng)變量、預(yù)定義用戶變量和用戶定義變量。6.1.1 系統(tǒng)變量系統(tǒng)變量是系統(tǒng)中定義有固定名稱的供用戶使用的一種標(biāo)志符號,它們具有固定的預(yù)設(shè)含義。系統(tǒng)變量的含義中的大部分屬性也是由系統(tǒng)固定預(yù)設(shè)的。用戶只能小范圍地對屬性進(jìn)行重新定義和匹配。本系統(tǒng)中的系統(tǒng)變量分為預(yù)處理變量和主處理變量。1) 預(yù)處理變量。預(yù)處理變量是指在于處理程序狀態(tài)中,即在執(zhí)行設(shè)定了系統(tǒng)變量的零件程序段進(jìn)行編譯時,讀取和寫入的系統(tǒng)變量。2) 主處理變量。主處理變量是指在主運(yùn)行狀態(tài)中,即在執(zhí)行

3、編程了系統(tǒng)變量的零件程序段時,讀取和寫入的系統(tǒng)變量。通過系統(tǒng)變量可在零件程序與循環(huán)中提供當(dāng)前控制系統(tǒng)的參數(shù),例如機(jī)床,控制系統(tǒng)和加工步驟狀態(tài)。3) 變量前綴。系統(tǒng)變量的一個顯著特點(diǎn)是其名稱通常包含一個前綴。該前綴由一個字符、一個或兩個字母以及一條下劃線構(gòu)成。系統(tǒng)規(guī)定:如果數(shù)據(jù)在執(zhí)行期間保持不變,則可以和預(yù)處理同步讀入,為此在機(jī)床數(shù)據(jù)或設(shè)定數(shù)據(jù)的前綴中寫入一個字符。如M。預(yù)處理時讀取或?qū)懭氲南到y(tǒng)變量見表6-1和表6-2。表6-1 預(yù)處理時讀取或?qū)懭氲南到y(tǒng)變量的第一個字符+第1個字母數(shù)據(jù)類型+第1個字母數(shù)據(jù)類型M機(jī)床數(shù)據(jù)CISO固定循環(huán)的循環(huán)變量S設(shè)定數(shù)據(jù),保護(hù)區(qū)域P程序變量,通道專用系統(tǒng)變量T刀

4、具管理參數(shù)RR參數(shù)(計(jì)算參數(shù))。在零件程序和工藝循環(huán)中使用R參數(shù)時,不寫入前綴O選項(xiàng)數(shù)據(jù)表6-2 預(yù)處理時讀取或?qū)懭氲南到y(tǒng)變量的第二個字符+第1個字母變量顯示+第1個字母變量顯示N全局變量A軸專用變量C通用專用變量 前綴系統(tǒng)的特例: $TC_:第2個字母C表示的不是通道專用變量,而是刀架專用系統(tǒng)變量。6.1.2 用戶變量 (1)用戶變量。是用戶自己定義的用于程序編寫中表示某種(個)特定意義的一種標(biāo)志號,系統(tǒng)不確知其含義,也不對其進(jìn)行分析的變量。 1)預(yù)定義用戶變量。預(yù)定義用戶變量是在系統(tǒng)中已經(jīng)定義的變量, 但是用戶還需通過專門的機(jī)床數(shù)據(jù)對其數(shù)量進(jìn)行參數(shù)設(shè)置。例如循環(huán)指令中的變量。 2)用戶定義

5、變量。用戶定義變量是僅由用戶定義的變量,到系統(tǒng)運(yùn)行時才會創(chuàng)建這些變量。它們的數(shù)量、數(shù)據(jù)類型和所有其他屬性都完全由用戶定義。例如用戶自己編制宏程序時設(shè)置的變量。 (2) 用戶變量名稱的定義規(guī)則1)“$”字符預(yù)留給系統(tǒng)變量,用戶所定義的變量不可使用。2)變量名稱必須意義明確。同一名稱不可以用于不同的對象。 3)系統(tǒng)中已定義的或備用的關(guān)鍵子不可以用作名稱。4)變量名稱的長度小于31個字符。允許使用的字符有字母、數(shù)字和下劃線。5)書寫變量名稱,開始的兩個字符必須是字母或下劃線。在單個字符之間不允許有分隔符。 6)預(yù)留的字符組合。7)為了避免出現(xiàn)名稱沖突,在設(shè)定名稱時要注意避免使用下列字符:所有的以CY

6、CLE”、“CUST_”、“GROUP_”或“S_”開始的名稱均用于西門子標(biāo)準(zhǔn)循環(huán)。所有的以“CCS”開始的名稱均用于西門子匯編循環(huán)。 用戶匯編循環(huán)以“CC”開始。名稱“RL”預(yù)留給傳統(tǒng)車床。以“E_”或“F_”開始的名稱預(yù)留給EASYSTEP編程。已經(jīng)被系統(tǒng)使用的指令,標(biāo)志等名稱。8) 建議用戶選擇有區(qū)別的且有一定含義的字符來定義變量名稱,如以“U”(用戶)開始的名稱,因?yàn)橄到y(tǒng)、匯編循環(huán)和西門子循環(huán)不使用這些名稱。也可以方便區(qū)分和記憶所定義的變量。9) 一個程序段中只能定義一種類型的用戶變量, 可以定義同一種用戶變量類型的多個用戶變量。6.1.3 計(jì)算參數(shù)(R)計(jì)算參數(shù)或R參數(shù)是名稱為R的預(yù)

7、定義用戶變量,用字母R加數(shù)字表示,定義為REAL數(shù)據(jù)類型的數(shù)組。由于歷史原因, R參數(shù)既可以帶數(shù)組索引編寫,如 R10,也可不帶數(shù)組索引編寫,如R10。(1)編程格式R<n>R<表達(dá)式>(2) 指令參數(shù)說明 R: 作為預(yù)處理變量使用時的名稱。<n>: R參數(shù)編號,類型為整數(shù)型(INT)。本系統(tǒng)為300個,數(shù)值為0299。<表達(dá)式>:數(shù)組索引。只要可將表達(dá)式結(jié)果轉(zhuǎn)換為數(shù)據(jù)類型INT,則可設(shè)定任意表達(dá)式作為數(shù)組索引。 (3) 參數(shù)值的賦值范圍1) 可以在以下數(shù)值范圍內(nèi)給計(jì)算參數(shù)賦值:0.0000001-9999 9999, 8個數(shù)位,帶符號小數(shù)點(diǎn)。2

8、) 用指數(shù)表示法可以賦值更大的數(shù)值范圍,±(10-300-10300)。指數(shù)值寫在“Ex”行號之后,EX范田為-300+300。Rl=-0.1EX-5;表示R1=-0.000001R2=l.874EX8;表示R2=187 400 000(4) 賦值方法 1) 直接賦值或通過函數(shù)表達(dá)式賦值??梢杂脭?shù)值、算術(shù)表達(dá)式或計(jì)算參數(shù)對Nc地址賦值。一個程序段中可以有多個賦值語句,也可以用計(jì)算表達(dá)式賦值。如: N10 R1=10 R2=20 R3=10*2 R4=R2-R1 R5=SIN(30) 2) 通過參數(shù)變量賦值。通過給Nc地址分配計(jì)算參數(shù)或參數(shù)表達(dá)式,可以增加NC程序的通用性。但對程序段段

9、號N、加工指令G和調(diào)用子程序指令L例外。賦值時在地址符之后寫入字符“=”。賦值語句也可以賦值一個負(fù)號。給坐標(biāo)軸地址(運(yùn)行指令)賦值時,要求有一個獨(dú)立的程序段。(5)編程示例 算數(shù)功能中R參數(shù)的賦值和應(yīng)用。程序代碼 注釋R0=3.5678 ;在預(yù)處理中賦值 R1=-37.3 ;在預(yù)處理中賦值R3=-7 ;在預(yù)處理中賦值R4=-0.1EX-3 ;在預(yù)處理中賦值:R4=-0.1×105(R4=-0.0001) R7=SIN(25.3) ;在預(yù)處理中賦值$R6=l.87EX6 ;在主運(yùn)行中賦值:R6=1.87×106(R6=1870000)RR2=R10 ;通過R參數(shù)間接地址賦值R

10、(Rl+R2)*R3=5 ;通過算術(shù)表達(dá)式間接地址賦值X=(Rl+R2) ;給X軸賦值Z=SQRT(Rl*R1+R2*R2) ;給Z軸賦值,運(yùn)行至通過(R2l+R22)平方根確定位置要使一個零件程序不僅適用于特定數(shù)值下的一次加工,或者在程序運(yùn)行中需要計(jì)算出某些數(shù)值,這兩種情況均可以使用計(jì)算參數(shù)??梢栽诔绦蜻\(yùn)行時由控制器計(jì)算或設(shè)定所需要的數(shù)值;也可以通過操作面板設(shè)定參數(shù)數(shù)值。如果參數(shù)已經(jīng)賦值,可以通過段號尋址變量并對其進(jìn)行操作。6.1.4 定義用戶變量用戶可通過DEF指令定義白己的變量并進(jìn)行賦值。在劃分系統(tǒng)變量時,這些變量被稱為用戶定義變量或用戶變量(User Data)。根據(jù)變量的有效范圍,即

11、變量可見范圍,用戶變量可分為以下幾個類別:1) 局部用戶變量(LUD)。局部用戶變量(LUD)是執(zhí)行時在調(diào)用零件程序時創(chuàng)建,并在零件程序結(jié)束或者NC復(fù)位時刪除。而不是在主程序的零件程序中定義的變量。此變量只能在定義LUD的零件程序中存取該LUD。2) 程序全局用戶變量(PUD)。程序全局用戶變量(PUD)是在作為主程序的零件程序中定義的變量。此變量在零件程序開始時創(chuàng)建,在零件程序結(jié)束或NC復(fù)位時刪除??稍谥鞒绦蚣八凶映绦蛑写嫒UD。3) 全局用戶變量(GUD)。全局用戶變量(GUD)是在數(shù)據(jù)塊(SGUD,MGUD,UGUD, GUD4,GUD9)中定義的 NC或通道全局變量,此變量通電后依

12、然保留??稍谒辛慵绦蛑写嫒UD。在使用(讀/寫)用戶變量前對其進(jìn)行定義時必須遵循以下規(guī)則:GUD必須在定義文件如_N_DEF_DIR/_M_SGUD_DEF中定義。PUD和LUD必須在零件程序的定義段中定義。必須在單獨(dú)的程序段中進(jìn)行數(shù)據(jù)定義。每次數(shù)據(jù)定義只能使用一種數(shù)據(jù)類型 。 每次數(shù)據(jù)定義可以定義多個相同數(shù)據(jù)類型的變量。(1)編程格式 系統(tǒng)中定義的編程格式非常完整,規(guī)定的編程格式為: DEF<范圍><類型><預(yù)處理停止><初始化時間><物理單位><限值><存取權(quán)限><名稱><值_l&g

13、t;,<值_2>,<值_3>=<初始化值>在實(shí)際使用中, 編程格式可以為:DEF <類型><名稱><值_1>,<值_2>,<值_3>=<初始化值>(2)指令參數(shù)說明DEF:用于定義用戶變量GUD、PUD、LUD的指令。<類型>:數(shù)據(jù)類型INT:帶正負(fù)號的整數(shù)值。REAL:實(shí)數(shù)型數(shù)值。B00L:真值=TRUE(1)/假值=FALSE(0)。CHAR:ASCII一字符。STRING<最大長度>:定義長度的字符串。AXIS:進(jìn)給軸或主軸標(biāo)志符。FRAME: 靜態(tài)坐標(biāo)轉(zhuǎn)換

14、的幾何設(shè)定。<名稱>:變量名稱。規(guī)定與用戶定義變量名稱相同。<值_l>,<值_2>,<值_3>:設(shè)定1維至3維(最大)數(shù)組變量的數(shù)組長度(可選)。<初始化值>:初始化值(可選)。 (3)編程示例 程序全局和局部用戶變量(PUD/LUD)的定義。程序代碼 注釋PROC MAIN ;主程序DEF INT VARl ;程序全局用戶變量PUD定義一個名稱為“VARl”整型變量VAR1=30 ;名稱為VARl的變量更式初始值為30.SUB2 ;調(diào)用子程序.M30PROC SUB2 ;子程序SUB2DEF INT VAR2 ;局部用戶變量LUD定

15、義.IF(VAR1=1) ;程序全局用戶變量PUD讀取VARl =VARl+l ;程序全局用戶變量PUD讀取與寫入VAR2 = l ;局部用戶變量LUD寫入ENDIFSUB3 ;調(diào)用子程序.M17PROC SUB3 ;子程序SUB3 .IF(VAR1=1) ;程序全局用戶變量PUD讀取VARl =VARl+l ;程序全局用戶變量PUD讀取與寫入VAR2 = l ;錯誤:SUB3中的局部用戶變量LUD未知ENDIF.M17 提示:當(dāng)設(shè)置了以下機(jī)床數(shù)據(jù)時,在主程序中定義的程序局部用戶變量(PUD)同樣在子程序中可見。MD11120MN_LUD_EXTENDED_SCOPE=1設(shè)置MD11120=0

16、時,在主程序中定義的程序局部用戶變量只在主程序中可見。6.2 系統(tǒng)變量、用戶變量和 NC語言指令的重新定文 (REDEF)(1) 指令功能 在編寫程序中,使用 REDEF指令可對系統(tǒng)變量、用戶變量和 NC語言指令的屬性進(jìn)行更改。重新定義的前提條件是必須在相應(yīng)的定義后進(jìn)行。在重新定義中不能同時對多個屬性進(jìn)行更改。必須為每個需要更改的屬性編寫單獨(dú)的 REDEF指令。如果編寫的多個屬性更改之間有沖突,則最后進(jìn)行的更改有效。提示:不能對局部用戶變量(PUD/LUD)進(jìn)行重新定義。(2) 編程格式REDEF<名稱> <預(yù)處理停止>REDEF<名稱> <限值>

17、;REDEF<名稱> <初始化時間>REDEF<名稱> <初始化時間> <初始化值>(3) 指令參數(shù)說明REDEF: 用于重定義系統(tǒng)變量、用戶變量和NC語言指令的特定屬性的指令。<名稱>:已定義的變量或 NC語言指令的名稱。<限值>:下限或上限。如果在重新定義一個用戶變量的極限值時,當(dāng)前實(shí)際值超出了新的定義范圍,系統(tǒng)會輸出報警,而不接收該極限值。因此,在重新定義用戶變量的極限值時,請注意值(極限值、實(shí)際值和初始化值)的修改應(yīng)保持一致。<初始化時間>:變量重新初始化的時間。INIP0:通電。INIRE

18、:主程序結(jié)束,NC復(fù)位或上電。INICF:重新配置或主程序結(jié)束,NC復(fù)位或通電。 PRLOC:主程序結(jié)束,本地更改后 NC復(fù)位或通電。<初始化值>:初始化值。在定義初始化值時,必須設(shè)定初始化時間。提示:系統(tǒng)變量不可進(jìn)行重新定義,也不可以刪除已設(shè)定數(shù)據(jù)。6. 3存取權(quán)限(APR, APW, APRP, APWP, APRB,APWB)對系統(tǒng)變量的讀取與寫入操作是一件非常嚴(yán)肅和認(rèn)真的工作, 來不得半點(diǎn)馬虎。為了保證數(shù)據(jù)讀取和寫入工作的嚴(yán)肅性和安全性, 系統(tǒng)提出了嚴(yán)格的操作密級規(guī)定。沒有一定操作密級的密鑰則無法進(jìn)行相應(yīng)的操作。指令中的 R表示“讀”,指令中的W表示“寫”。1)存取權(quán)限對應(yīng)

19、了在編程時給定的保護(hù)等級。最終用戶口令密切一般設(shè)為 “CUSTOMER”。2) 用戶變量的定義(DEF)??梢远x以下變量的存取權(quán)限(APR/APW):全局用戶數(shù)據(jù)(GUD)。3) 重新定義(REDEF)系統(tǒng)和用戶變量??梢灾匦露x以下變量的存取權(quán)限(APR/APW)。系統(tǒng)數(shù)據(jù):機(jī)床數(shù)據(jù)、設(shè)定數(shù)據(jù)、FRAME、過程數(shù)據(jù)、主軸螺距誤差補(bǔ)償(EEC)、垂度補(bǔ)償(CEC)、象限誤差補(bǔ)償(QEC)、刀庫數(shù)據(jù)、刀具數(shù)據(jù)、保護(hù)區(qū)、可定向刀梁、運(yùn)動整、3D保護(hù)區(qū)、工作區(qū)域限制、IS0刀具數(shù)據(jù)等。用戶數(shù)據(jù): R參數(shù)、EPS參數(shù)、刀具數(shù)據(jù)OEM、刀庫數(shù)據(jù)OEM、全局用戶變量(GUD)等。在重新定義時可以自由確定

20、變量的存取權(quán)限,這些變量處于最低保護(hù)等級7和自有保護(hù)等級如1(機(jī)床制造商)之問。HMI本地存取權(quán)限在修改系統(tǒng)數(shù)據(jù)的存取權(quán)限時必須注意,該權(quán)限必須和 HMI裝置上定義的存取權(quán)限一致。6.4 定文和初始化數(shù)組變量(DEF, SET, REP)6.4.1 基本使用方法(1)指令功能一個用戶變量可以定義為1-3維數(shù)組。用戶變量可以定又為以下類型的數(shù)組: B00L、CHAR、INT、REAL、STRING、AXIS、FRAME數(shù)組元素的賦値。可以在以下時間為數(shù)組元素賦值: l)定義數(shù)組時(初始化值)。2) 在程序執(zhí)行過程中可以通過以下方法賦值:顯式(編寫時直接)指定一個數(shù)組元素(DEF)。顯式指定一個數(shù)

21、組元素為起始元素并給出值列表(SET)。顯式指定一個數(shù)組元素為起始元素并給出值列表以及重復(fù)的頻率(REP)。說明:不能向FRAME數(shù)據(jù)類型的用戶變量分配初始化之值。(2) 編程格式1維數(shù)組: DEF<數(shù)據(jù)美型> <變量名稱><n>2維數(shù)組: DEF<數(shù)據(jù)類型> <變量名稱><n>,<m>3維數(shù)組: DEF<數(shù)據(jù)類型> <變量名稱><n>,<m>,<o>字行型(STRING)數(shù)據(jù)類型的用戶變量可以最大定義為2維數(shù)組。1) 編程格式1(DEF)定義數(shù)組元素

22、。DEF<數(shù)據(jù)類型><變量名稱><n>,<m>,<o> DEF STRING<字符串長度><變量名稱><n>,<m>2) 編程格式2 (DEF=SET)使用值列表。定義時:DEF<數(shù)據(jù)類型><變量名稱> <n>,<m>,<o>=SET(<值1>,<值2>,)DEF<數(shù)據(jù)類型><變量名稱> <n>,<m>,<o>=(<值1>,<值

23、2>,)在通過值列表進(jìn)行初始化時, 可以選擇給定 SET。賦值時: <變量名稱> <n>,<m>,<o>=SET(<值1>,<值2>,)3) 編程格式3 (DEF=REP)使用重復(fù)值。定義時:DEF<數(shù)據(jù)類型><變量名稱><n>,<m>,<o>=REp(<值>)DEF<數(shù)據(jù)類型><變量名稱><n>,<m>,<o>=REP(<值>,<數(shù)量_數(shù)組元素>)賦值時:<

24、;變量名稱><n>,<m>,<o>=REP(<值>)<變量名稱><n>,<m>,<o> =REP(<值>,<數(shù)量_數(shù)組元素>)(3) 指令參數(shù)說明DEF:變量定義指令。<數(shù)據(jù)類型>:變量數(shù)據(jù)類型。取值范圍:對于系統(tǒng)變量:B00L、CHAR、INT、REAL、STRING、AXIS。對于GUD或LUD變量: B00L、 CHAR、 INT、 REAL、 STRING、 AXIS、 FRAME。<字符串長度>:STRING數(shù)據(jù)類型下允許的最大字符數(shù)。

25、<變量名稱>:變量名稱。<n>,<m>,<o>:數(shù)組長度或數(shù)組索引。<n>:1維的數(shù)組長度或數(shù)組索引。類型:INT(對于系統(tǒng)變量也為AXIS);取值范圍:最大數(shù)組長度(65535);數(shù)組索引:0n65534。<m>:2維的數(shù)組長度或數(shù)組索引。其余同上。<o>:3維的數(shù)組長度或數(shù)組索引。其余同上。SET:通過給出的值列表賦值。(<值1>,<值2>,):值列表。REP:通過給出的<值>賦值。<值>:數(shù)組元素在帶REP的初始化時具有的數(shù)值。<數(shù)量_數(shù)組元素>

26、:使用給定<值>的數(shù)組元素的數(shù)量。其他的數(shù)組元素取決于不同時間點(diǎn): 數(shù)組定義時初始化:剩下的數(shù)組元素賦值為零。在程序運(yùn)行過程中賦值:數(shù)組元素的當(dāng)前值保持不變。如果沒有定義該參數(shù),所有的數(shù)組元素都會分配到<值>。如果參數(shù)為零,則取決于不同的時間點(diǎn):數(shù)組定義時初始化:所有元素預(yù)定為零。在程序運(yùn)行過程中賦值:數(shù)組元素的當(dāng)前值保持不變。6.4.2 數(shù)組索引在使用航列表(SET)或使用值重復(fù)(REP)的賦值中,通過數(shù)組素引從右向左的循環(huán)構(gòu)成數(shù)組元素的隱式順序。例l 某3維數(shù)組的初始化,數(shù)組有24個元素。程序代碼 注釋DEF INT FELD2,3,4=REP(1,24) ;相當(dāng)于

27、對下列24個 數(shù)組元素分別賦值FELD0,0,0=1 ;第1個數(shù)組元素FELD0,0,1=1 ;第2個數(shù)組元素FELD0,0,2=1 ;第3個數(shù)組元素FELD0,0,3=1 ;第4個數(shù)組元素FELD0,1,0=1 ;第5個數(shù)組元素FELD0,1,1=1 ;第6個數(shù)組元素.FELD0,2,3=1 ;第12個數(shù)組元素FELD1,0,0=1 ;第13個數(shù)組元素FELD1,0,1=1 ;第14個數(shù)組元素.FELD1,2,3=1 ;第24個數(shù)組元素也可以使用計(jì)數(shù)循環(huán)語句(FOR···ENDFOR)進(jìn)行數(shù)組初始化賦值。程序代碼FOR n=0 T0l FOR m=0 T02 F

28、OR o=0 T03FELDn,m,o =1ENDFORENDFORENDFOR例2 如圖6_l所示,按當(dāng)前占用情況初始化整個變量數(shù)組。1,2N10:定義時的初始化N20/N30:使用相同數(shù)值初始化N40/N50: 使用相各種數(shù)値初始化01201201200001001001000121101112100100100-10-11-122202020100100100-20-20-203303030100100100-300044040401001001000-40-405000-100-100-100-50-60-706000-100-100-100-100-100-1007000-100-1

29、00-100-100-100-1008000-100-100-100-1008.18.29000-100-100-1009.09.19.2數(shù)值單元5,1-9,2已使用默認(rèn)值(0,0)初始化數(shù)值單元3,l-4,0已 使用默認(rèn)值(0,0)初始化 數(shù)值單元6,0-8,0沒有變化圖6-l 按規(guī)定位置賦值的三維數(shù)數(shù)之索引:程序代碼 注釋定義時對數(shù)組初始化Nl0DEFREALFELD110,3=SET(0,0,0,10,11,12,20,20,20,30,30,30,40,40,40,) ;對變量數(shù)組單元0,04,2進(jìn)行賦值 使用相同數(shù)值初始化N20 FELDl0,0= REP(l00) ;從數(shù)組單元0,

30、0起賦值100N30 FELDl5,0= REP(-l00) ;從數(shù)組單元5,0起賦值-100 使用不同數(shù)值初始化N40 FELDl0,0=SET(0,l,2,-10,-1l,-12,-20,-20,-20,-30,-40,-40,-50,-60,-70) ;從數(shù)組單元0,0起賦值,其中3,14, 0賦值0N50 FELDl8,l=SET(8.1,8.2,9.0,9.1,9.2) ;從數(shù)組單元8,1起賦值6.4.3定義和 初始化數(shù)組變量(SET,REP)說明1)使用值列表(SET)在定義時進(jìn)行初始化。從第l個數(shù)組元素開始,按照值列表中的值和寫入的元素?cái)?shù)量進(jìn)行初始化。值列表中沒有顯式指定值的數(shù)組

31、元素(數(shù)值表中的空自)自動成值為0。對于AXIS數(shù)據(jù)類型的變量,值列表中不允許出現(xiàn)空白。如果值列表包含的值大于數(shù)組元素的數(shù)量,則顯示報警。 2)使用值列表(SET)在程序執(zhí)行中賦值。以上說明的定義規(guī)則同樣適用于程序執(zhí)行中的賦值,此外還有以下方法: 表達(dá)式也允許用作值列表的元素。從編程的數(shù)組索引開始賦值。從而根據(jù)需要對部分?jǐn)?shù)組賦值。 3)使用值列表(SET)的編程示例。DEFINTFELD5,5 ;數(shù)組定義FELD0,0 =SET(l,2,3,4,5) ;對前5個數(shù)組元素進(jìn)行賦值0,0 0,4進(jìn)行空隙的賦值,數(shù)組元素 0,2和0,3=0FELD2,3=SET(VARIABLE,45.6) ;帶變

32、量和表達(dá)式的賦值,自數(shù)組索引 2,3起:2,3=VARIABLE2,4=4× 5.6=22.44)使用重復(fù)值(REP)在定義時進(jìn)行初始化所有或指定數(shù)量的數(shù)組元素都會以給定值(常量)進(jìn)行初始化。FRAME數(shù)據(jù)類型的變量無法進(jìn)行初始化 。編程示例:程序代碼 注釋DEF REAL VARNAME10=REP(3,5,4) ;定義數(shù)組,數(shù)組元素03以值 3.5初始化5)使用重復(fù)值(REP)在程序執(zhí)行中賦值。以上說明的定義規(guī)則同樣適用于程序執(zhí)行中的賦值。此外,還可以使用以下方法:表達(dá)式也允許用作值列表的元素。從編程的數(shù)組索引開始賦值。從而根據(jù)需要賦值部分?jǐn)?shù)組 。6)使用重復(fù)值(REP)的編程示

33、例。 程序代碼 注釋DEF REAL VARNAME10 ;數(shù)組定義 VARNAME5=REP(4.5,3) ;數(shù)組元素57=4.5R10=REP(2.4,3) ;R參數(shù)表中R10R12=2.4 DEF FRAME FRM10 ;數(shù)組定義FRM5=REP(CTRANS(X,5) ;數(shù)組元素59=CTRANS(X,5)6.5 間接編程6.5.1 間接編程地址在間接編程地址時,擴(kuò)展的地址(索引)由一個合適的變量類型替代。但在下列情況中,不能間接編程地址:N(程序段段號)。 L(子程序)。 可調(diào)用地址。例如,X1代替X1是不允許的。(1)編程格式<地址><索引 (2)指令參數(shù)說明&

34、lt;地址>.:帶擴(kuò)展名(索引)的固定地址。<索引>:變量,例如主軸編號、軸等。(3)編程示例 例l 間接編程一個主軸編號。直接編程:程序代碼 注釋S1=300 ;主軸轉(zhuǎn)速300r/min,編號為1間接編程: 程序代碼 注釋DEFINT SPINU=1 ;定義 INT型變量和賦值SSPINU=300 ;主軸轉(zhuǎn)速300r/min,其編號保存 在變量SPINU中(在示例中,編號為1)例2 間接編程一個軸。直接編程: 程序代碼 注釋$AA_MMX ;讀取軸的側(cè)頭-測量值(MKS)“X”間接編程: 程序代碼 注釋DEF AXIS AXVAR3=X ;定義一個AXIS型變量和賦值$AA

35、_MMAXVAR3 ;為讀取測頭-測量值(MKS),其名稱保 存在變量AXVAR3中例3 間接編程數(shù)組元素。直接編程: 程序代碼 注釋DEF INT DATA_14,5 ;定義數(shù)組 DATA_1間接編程: 程序代碼 注釋DEFINE DIMl AS 4 ;定義數(shù)組維數(shù),必須將數(shù)組(維數(shù))大小 設(shè)定為固定值;DEFINE DIM2 AS 5 ;定義數(shù)組維數(shù)DEF INT DATA_1DIMl,DIM2 ;定義數(shù)組 DATA_1DATA_lDIMl-1,DIM2_1 =5 ;對數(shù)組単元3 ,4 賦值5例4 間接調(diào)用子程序。程序代碼 注釋CALL“L”<<R10 ;調(diào)用其編號在R10中的

36、程序(字符串級 聯(lián))6.5.2 同接編程G指令通過間接編程G指令,可以進(jìn)行有效的循環(huán)編程。(l)編程格式 G<組 =<編號>(2) 指令參數(shù)說明 G.:帶擴(kuò)展名(索引)的G指令。<組>:索引參數(shù)G功能組,類型為INT。<編號>:用于G指令績號編號的變量,類型為INT或MAL。通常只能間接編程非編程格式定義的G指令。編程格式定義的G指令中只有G功能組1可采用間接編程而G功能組2、3和4中的編輯格式定義的G指令則不可以。在間接G指令編程中不允許進(jìn)行算術(shù)計(jì)算。必須在G指令間接編程前,在一個自身的零件程序行中進(jìn)行必要的G指令編號計(jì)算。(3) 編程示例 可設(shè)定的

37、零點(diǎn)偏移(G功能組8)程序代碼 注釋N10l0 DEF INT INT_VAR ;定義整型數(shù)值變量N1020 INT_VAR=2 ;對已定義的整型數(shù)值變量賦值.N1090 G8=INT_VAR Gl X0 Y0 ;間接表示:使用G54可設(shè)定工件坐標(biāo) Nl100 INT_VAR= INT_VAR+1 ;G指令計(jì)算Nll10 G8 =INT_VAR G1 X0 Y0;間接表示:使用G55可設(shè)定工件坐標(biāo) 6.6常用的系統(tǒng)變量編程格式6.6.l幾何位置變量編程格式及示例系統(tǒng)變量可以為幾個部分(以三軸立式銑床為例說明): 1)讀取加工平面參數(shù)數(shù)據(jù)-選擇G17、G18、G19。$P_GG6=1 (當(dāng)前所選

38、平面為G17)。$P_GG6=2 (當(dāng)前所選平面為 G18)。$P_GG6=3 (當(dāng)前所選平面為Gl9)。SINUMERIK數(shù)控系統(tǒng)強(qiáng)調(diào)加工平面的概念,不僅是指出當(dāng)前加工的平面位置,也包括了數(shù)控系統(tǒng)對坐標(biāo)系其他概念的描述。例如,G17平面指XY平面,半徑長度在 XY平面中,同時也指明刀具軸是Z軸,包括指明刀具長度1指的是在Z軸方向的長度。同理, G18平面指ZX平面,半徑長度在ZX平面中,(三軸立式,銑床中)刀具軸仍是Z軸,但Gl8平面中的長度1指的是在Y軸方向的長度 。2)讀取在機(jī)床坐標(biāo)系(MCS)中的(軸)位置數(shù)據(jù)指令。機(jī)床坐標(biāo)系中X軸的當(dāng)前坐標(biāo)值: $AA_IMX。機(jī)床坐標(biāo)系中Y軸的當(dāng)前

39、坐標(biāo)值: $AA_IMY。機(jī)床坐標(biāo)系中Z軸的當(dāng)前坐標(biāo)值: $AA_IMZ。例1R1=$AA_IMXR1=$AA_IMYR1=$AA_IMZR1=$AA_IMA運(yùn)行上述指令后,可在系統(tǒng)“0FFSET”功能區(qū)的“R參數(shù)”界面中看到機(jī)床各個坐標(biāo)軸的當(dāng)前位置數(shù)據(jù)。3)讀取在工件坐標(biāo)系(WCS)位置的數(shù)據(jù)值指令。工件坐標(biāo)系中X軸的當(dāng)前坐標(biāo)值: $AA_IWX。工件坐標(biāo)系中Y軸的當(dāng)前坐標(biāo)值: $AA_IWY。工件坐標(biāo)系中Z軸的當(dāng)前坐標(biāo)值: $AA_IWZ。工件坐標(biāo)系中A軸的當(dāng)前坐標(biāo)值: $AA_IWA。 4)讀取在基準(zhǔn)坐標(biāo)系(BCS)位置的數(shù)據(jù)值指令。工件坐標(biāo)系中X軸的基本坐標(biāo)值:$AA_IBX 工件坐標(biāo)

40、系中Y軸的基本坐標(biāo)值:$AA_IBY工件坐標(biāo)系中Z軸的基本坐標(biāo)值:$AA_IBZ工件坐標(biāo)系中A軸的基本坐標(biāo)值:$AA_IBA 5)讀寫可設(shè)定的零點(diǎn)偏移指令。讀取或?qū)懭肟稍O(shè)定的零點(diǎn)偏移(工件坐標(biāo)系原點(diǎn))的數(shù)據(jù)值指令(不含擴(kuò)展零點(diǎn)偏移地址)見表6-3。 表6-3 讀取或?qū)懭肟稍O(shè)定的零點(diǎn)偏移的數(shù)據(jù)值指令可設(shè)定零點(diǎn)偏移 X坐標(biāo) Y坐標(biāo) Z坐標(biāo) A軸坐標(biāo)G500$P_GG8=1$P_UIFR0,X,TR$P_UIFR0,Y,TR$P_UIFR0,Z,TR$P_UIFR0,A,TRG54$P_GG8=2$P_UIFR1,X,TR$P_UIFR1,Y,TR$P_UIFR1,Z,TR$P_UIFR1,A,TR

41、G55$P_GG8=3$P_UIFR2,X,TR$P_UIFR2,Y,TR$P_UIFR2,Z,TR$P_UIFR2,A,TRG56$P_GG8=4$P_UIFR3,X,TR$P_UIFR3,Y,TR$P_UIFR3,Z,TR$P_UIFR3,A,TRG57$P_GG8=5$P_UIFR4,X,TR$P_UIFR4,Y,TR$P_UIFR4,Z,TR$P_UIFR4,A,TRG58$P_GG8=6$P_UIFR5,X,TR$P_UIFR5,Y,TR$P_UIFR5,Z,TR$P_UIFR5,A,TRG59$P_GG8=7$P_UIFR6,X,TR$P_UIFR6,Y,TR$P_UIFR6,Z,

42、TR$P_UIFR6,A,TR注:$P_UIFR0,TR變量在程序運(yùn)行中是生效的,但是程序結(jié)束或復(fù)位之后就被清除了。例2 讀取G55中Y偏移值到計(jì)算參數(shù)R8中。R8=$P1_UIFR2,Y,TR例3 要設(shè)定(寫入)G54中的X偏移值R1=-70、Y軸的偏移值R2=_50、z軸的偏移值R3=-30、A軸的偏移值R4=120°,具體編程指令如下:$ P_UIFR1,X,TR=-70$ P_UIFR1,Y,TR=-50$ P_UIFR1,Z,TR=-30$ P_UIFR1,A,TR=120或者用下面的指令寫入:$P_UIFR1=CTRANS(X,R1, Y,R2,Z,R3,A,R4)運(yùn)行上

43、述指令后,可在系統(tǒng)“0FFSET”功能區(qū)的“零點(diǎn)偏移”界面中的 G54一欄中看到以上數(shù)據(jù)。 6)讀取程序運(yùn)行后的設(shè)定點(diǎn)編程值指令。工件坐標(biāo)系中X軸的基本坐標(biāo)值: $P_EPX。工件坐標(biāo)系中Y軸的基本坐標(biāo)值: $P_EPY。工件坐標(biāo)系中Z軸的基本坐標(biāo)值: $P_EPZ。工件坐標(biāo)系中A軸的基本坐標(biāo)值: $P_EPA。 例4 R4=$P-EPX。運(yùn)行上述指令后,可在系統(tǒng)“OFFSET”功能區(qū)“R參數(shù)”界面中看到程序上一次運(yùn)行后的最后一個X軸編程值。6.6.2 刀具幾何數(shù)據(jù)變量編程格式及示例 1)讀取刀具相關(guān)信息 。$P_T00LN0 ;當(dāng)前(有效)刀具號(T號)$P_T00L ;當(dāng)前(有效)刀具號的

44、(有效)刀沿號(D號)$P_T00LP ;最后一次編程的刀具號 $P_T00LLn ;作用的刀具長度,n=1,2,3 上面這些指令一般只可在程序中進(jìn)行讀取信息,不能寫人數(shù)據(jù)。將其編寫在加工工序中,可與機(jī)床實(shí)際的數(shù)據(jù)對比作出判斷,以保證加工程序運(yùn)行的安全性。編程示例:變成代碼 注釋 R5=$P_T00LN0 ;査驗(yàn)當(dāng)前已經(jīng)激活的刀具號(T號)R6=$P_T00L ;查驗(yàn)當(dāng)前已經(jīng)激活的刀具的刀沿號(D號)R7=$P_T00LP ;査驗(yàn)運(yùn)行程序中最后一個編程的刀具號(T號) R8=$P_T00LLl ;查驗(yàn)當(dāng)前已經(jīng)激活的刀具第一長度值 運(yùn)行上述指令后,可在系統(tǒng)“0FFSET”功能區(qū)的“R參數(shù)”界面中

45、看到上述信息。2)讀取或?qū)懭氲毒叩膸缀螖?shù)據(jù)。在編寫NC程序時,刀具數(shù)據(jù)分別由T和D兩個參數(shù)號代表選擇的刀具和被直接分配給刀具的刀沿。程序段中的編寫格式為: $TC_DPXTD。指令參數(shù)說明:DPx:表示刀具參數(shù)編號,角標(biāo)X表示DP變量的序號。T,D:T表示刀具號,D表示刀沿號。補(bǔ)償存儲器DPlDP25的各個參數(shù)值可通過程序的系統(tǒng)變量讀寫。所有其他的參數(shù)被保留。刀且參數(shù)$TC_DP6DTC_DP8、$TC_DP10、$TC_DP11、$TC_DP15$TC_DP17、$TC_DP19和$TC_DP20視刀具類型一不同會有其他含義,見表6-4。表6-4 刀具的幾何數(shù)據(jù)變量名稱定義變量名稱 定義$T

46、C_DP1T,D 刀具類型,見第4章$TC_DP2T,D刀沿位置, 僅用于車刀 $TC_DP3T,D刀具長度1的幾何尺寸 $TC_DP4T,D刀具長度2的幾何尺寸 $TC_DP5T,D刀具長度3的幾何尺寸 $TC_DP6T,D刀具半徑的幾何尺寸 直徑d(切槽鋸片)$TC_DP7T,D圓錐形銑刀的轉(zhuǎn)角半徑(銑刀)切槽鋸片拐角半徑(切槽鋸片) $TC_DP8T,D銑刀的倒圓半徑1 (銑刀) 突出長度k(切槽鋸片)$TC_DP9T,D備用$TC_DP10T,D刀具端面角度1 (最小極限角度) (圓錐形銑刀) $TC_DP11T,D刀具端面角度2 (最小極限角度) (圓錐形銑刀)$TC_DP12T,D

47、刀具長度1的磨損值補(bǔ)償 $TC_DP13T,D刀具長度2的磨損值補(bǔ)償 $TC_DP14T,D刀具長度3的磨損值補(bǔ)償 $TC_DP15T,D刀具半徑的磨損值補(bǔ)償 ( 銑 刀) 直徑d的磨損值補(bǔ)償(切糟鋸片) $TC_DP16T,D圓錐形銑刀的轉(zhuǎn)角半徑,拐角半徑的磨損值補(bǔ)償槽寬b的磨損值補(bǔ)償(切槽鋸片)$TC_DP17T,D銑刀的倒圓半徑的磨損值補(bǔ)償(銑削3D端銑)超出長度k的磨損值補(bǔ)償(切槽鋸片) $TC_DP18T,D備用$TC_DP19T,D刀具端面角度l(最小極限角度的磨損量)的磨損值補(bǔ)償(圓錐形銑刀)$TC_DP20T,D刀具端面角度2(最小極限角度的磨損量)的磨損值補(bǔ)償(圓錐形銑刀)$

48、TC_DP21T,D長度1適配器,長度補(bǔ)償$TC_DP22T,D長度2適配器,長度補(bǔ)償$TC_DP23T,D長度3適配器,長度補(bǔ)償$TC_DP24T,D后角,僅用于車刀 $TC_DP25T,D備用3) 基本值和磨損值的關(guān)系。幾何尺寸(例如長度1或者半徑)存在多個記錄組成部分。這些部分相加得出的尺寸即為有效尺寸。也就是說,得出的總和尺寸分別由基本值和磨損值計(jì)得出,例如用于半徑的$TC_DP6+$TC_DP15。此外,將基本尺寸($TC_DP21$TC_DP23)加到第一個刀沿的刀具長度。不需要的長度可以用零覆蓋。 所有磨損尺寸的符號都反向。這既作用于刀具長度上,也作用于其他尺寸,比如刀具半徑、導(dǎo)

49、圓角半徑等。如果輸入一個正的磨損尺寸值,則借此使得刀具“變短”和“變薄”。此外,所有其他尺寸都影響該刀具長度,對于傳統(tǒng)刀具,這些尺寸還可能影響有效刀具長度,如通配器、可定向的刀架、設(shè)定數(shù)據(jù)。極限角度1和2分別以刀沿終點(diǎn)到刀沿參考點(diǎn)的矢量為參照,并以逆時針方向計(jì)數(shù)。6.6.3 獲取刀具號的管理函數(shù) (GETT)在828D系統(tǒng)中,可以通過編寫加工程序的方法實(shí)現(xiàn)對刀具幾何尺寸進(jìn)行讀取和賦值。這類指令(也可以稱為函數(shù))有很多,經(jīng)常使用的指令或函數(shù)有 GETT(n,m)。一般情況下,可將“m”值直接寫為“1”。讀取或更改刀具參數(shù)不能直接對$TC_DP6T,D(刀具半徑)或$TC_DP3T,D(刀具長度)

50、等系統(tǒng)變量進(jìn)行操作。首先要借助自定義變量或R參數(shù),使用刀具管理中的函數(shù)GETT(n,m)指令獲取當(dāng)前刀具號(將刀具表中的刀具名稱轉(zhuǎn)換為一個常量,操作者無須關(guān)心這個常量值的含義),再將獲取刀具號的變量名稱或R參數(shù)名稱城寫在系統(tǒng)變量$TC_ DP6T,D中的“T”位置處, 就可以對刀具的刀沿半徑值等系統(tǒng)變量進(jìn)行讀、寫操作了。編程示例刀具表中已經(jīng)定義有刀具:鉆頭“DRILL10”,球頭移定刀“l(fā)”和立銑刀“CUT_20”。已經(jīng)輸入的刀具的半徑值和長度值數(shù)據(jù)。例1程序代碼 注釋R5=GETT(“1”,l) ;讀取刀具名稱為“1”的刀具編號 Rl5=$TC_DP6R5 ,2 ;讀取刀具名稱為“1”的2號刀沿半徑值數(shù)據(jù)例2程序代碼 注釋R6= GETT(DRILL10”,l) ;讀取刀具名稱為“ DRILLl0”的刀具編號R16=TC_DP3

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論