技術文章
數控學習文檔(一),數控*!!
閱讀:911 發布時間:2017-2-22我精心為大家搜集的學習數控的*知識,以方便參加數控培訓的同學進行學習。
一.什么是宏程序?
什么是數控加工宏程序?簡單地說,宏程序是一種具有計算能力和決策能力的數控程序。宏程序具有如下些特點:
1.使用了變量或表達式(計算能力),例如:
(1)G01 X[3+5] ;有表達式3+5
(2)G00 X4 F[#1] ;有變量#1
(3)G01 Y[50*SIN[3]] ;有函數運算
2.使用了程序流程控制(決策能力),例如:
(1)IF #3 GE 9 ;有選擇執行命令
……
ENDIF
(2)WHILE #1 LT #4*5 ;有條件循環命令
……
ENDW
二.用宏程編程有什么好處?
1.宏程序引入了變量和表達式,還有函數功能,具有實時動態計算能力,可以加工非圓曲線,如拋物線、橢圓、雙曲線、三角函數曲線等;
2.宏程序可以完成圖形一樣,尺寸不同的系列零件加工;
3.宏程序可以完成工藝路徑一樣,位置不同的系列零件加工;
4.宏程序具有一定決策能力,能根據條件選擇性地執行某些部分;
5.使用宏程序能極大地簡化編程,精簡程序。適合于復雜零件加工的編程。
一.宏變量及宏常量
1.宏變量
先看一段簡單的程序:
G00 X25.0
上面的程序在X軸作一個快速定位。其中數據25.0是固定的,引入變量后可以寫成:
#1=25.0 ;#1是一個變量
G00 X[#1] ;#1就是一個變量
宏程序中,用“#”號后面緊跟1~4位數字表示一個變量,如#1,#50,#101,……。變量有什么用呢?變量可以用來代替程序中的數據,如尺寸、刀補號、G指令編號……,變量的使用,給程序的設計帶來了極大的靈活性。
使用變量前,變量必需帶有正確的值。如
#1=25
G01 X[#1] ;表示G01 X25
#1=-10 ;運行過程中可以隨時改變#1的值
G01 X[#1] ;表示G01 X-10
用變量不僅可以表示坐標,還可以表示G、M、F、D、H、M、X、Y、……等各種代碼后的數字。如:
#2=3
G[#2] X30 ;表示G03 X30
例1 使用了變量的宏子程序。
%1000
#50=20 ;先給變量賦值
M98 P1001 ;然后調用子程序
#50=350 ;重新賦值
M98 P1001 ;再調用子程序
M30
%1001
G91 G01 X[#50] ;同樣一段程序,#50的值不同,X移動的距離就不同
M99
2.局部變量
編號#0~ #49的變量是局部變量。局部變量的作用范圍是當前程序(在同一個程序號內)。如果在主程序或不同子程序里,出現了相同名稱(編號)的變量,它們不會相互干擾,值也可以不同。
例
%100
N10 #3=30 ;主程序中#3為30
M98 P101 ;進入子程序后#3不受影響
#4=#3 ;#3仍為30,所以#4=30
M30
%101
#4=#3 ;這里的#3不是主程序中的#3,所以#3=0(沒定義),則:#4=0
#3=18 ;這里使#3的值為18,不會影響主程序中的#3
M99
3.全局變量
編號#50~ #199的變量是全局變量(注:其中#100~#199也是刀補變量)。全局變量的作用范圍是整個零件程序。不管是主程序還是子程序,只要名稱(編號)相同就是同一個變量,帶有相同的值,在某個地方修改它的值,所有其它地方都受影響。
例
%100
N10 #50=30 ;先使#50為30
M98 P101 ;進入子程序
#4=#50 ;#50變為18,所以#4=18
M30
%101
#4=#50 ; #50的值在子程序里也有效,所以#4=30
#50=18 ;這里使#50=18,然后返回
M99
為什么要把變量分為局部變量和全局變量?如果只有全局變量,由變量名不能重復,就可能造成變量名不夠用;全局變量在任何地方都可以改變它的值,這是它的優點,也是它的缺點。說是優點,是因為參數傳遞很方便;說是缺點,是因為當一個程序較復雜的時候,一不小心就可能在某個地用了相同的變量名或者改變了它的值,造成程序混亂。局部變量的使用,解決了同名變量沖突的問題,編寫子程序時,不需要考慮其它地方是否用過某個變量名。
什么時候用全局變量?什么時候用局部變量?在一般情況下,你應優先考慮選用局部變量。局部變量在不同的子程序里,可以重復使用,不會互相干擾。如果一個數據在主程序和子程序里都要用到,就要考慮用全局變量。用全局變量來保存數據,可以在不同子程序間傳遞、共享、以及反復利用。
刀補變量(#100~#199)。這些變量里存放的數據可以作為刀具半徑或長度補償值來使用。如
#100=8
G41 D100 ;D100就是指加載#100的值8作為刀補半徑。
注意:
上面的程序中,如果把D100寫成了D[#100],則相當于D8,即調用8號刀補,而不是補償量為8。
4.系統變量
#300以上的變量是系統變量。系統變量是具有特殊意義的變量,它們是數控系統內部定義好了的,你不可以改變它們的用途。系統變量是全局變量,使用時可以直接調用。
#0~#599是可讀寫的,#600以上的變量是只讀的,不能直接修改。
其中,#300 ~#599是子程序局部變量緩存區。這些變量在一般情況下,不用關心它的存在,也不推薦你去使用它們。要注意同一個子程序,被調用的層級不同時,對應的系統變量也是不同的。#600~#899是與刀具相關系統變量。#1000~#1039坐標相關系統變量。#1040~#1143參考點相關系統變量。#1144~#1194系統狀態相關系統變量。(詳見:2.華中數控系統系統變量一覽)
有時候需要判斷系統的某個狀態,以便程序作相應的處理,就要用到系統變量。
5.常量
PI 表示圓周率, TRUE 條件成立(真), FALSE 條件不成立(假) 。