亚洲狠狠婷婷综合久久蜜桃,午夜精品久久久久蜜桃,一级片免费播放,欧美图亚洲色另类美足

機(jī)床網(wǎng)
誰(shuí)說(shuō)宏程序沒(méi)用?那是因?yàn)槟悴粫?huì)編!
2023-10-13 15:09:00

現(xiàn)在很多數(shù)控技術(shù)人員都不懂宏程序,他們認(rèn)為有了自動(dòng)編程軟件,就不需要學(xué)習(xí)宏程序了。事實(shí)上,宏程序的功能非常強(qiáng)大,比如編寫一些批量、重復(fù)的程序,使用宏程序就只需要改動(dòng)幾個(gè)數(shù)據(jù)就可以了,沒(méi)有必要進(jìn)行大量重復(fù)的編程,可極大簡(jiǎn)化操作,大幅度提高工作效率。

宏程序可以使用變量進(jìn)行算術(shù)運(yùn)算、邏輯運(yùn)算和函數(shù)的混合運(yùn)算,還提供了循環(huán)語(yǔ)句、分支語(yǔ)句和子程序調(diào)用語(yǔ)句。

一般來(lái)說(shuō):宏程序適合圖形一樣,只是尺寸不同的系列零件的編程;適合工藝路徑一樣,只是位置參數(shù)不同的系列零件的編程;適合拋物線、橢圓、雙曲線等沒(méi)有插補(bǔ)指令的曲線編程。

1

變量的表示和使用

一、變量表示

#I(I=1,2,3,…)或#[<式子>]

例:#5,#109,#501,#[#1+#2-12]

二、變量的使用

1. 地址字后面指定變量號(hào)或公式

格式: <地址字>#I

這里的“I”代表變量號(hào)

例:F#103,設(shè)#103=15 則為F15

Z-#110,設(shè)#110=250 則為Z-250

X[#24+#18*COS[#1]]

2. 變量號(hào)可用變量代替

例:#[#30],設(shè)#30=3 則為#3

3. 變量不能使用地址O,N,I

例:下述方法下允許

O#1;

I#2 6.00×100.0;

N#3 Z200.0;

4. 變量號(hào)所對(duì)應(yīng)的變量,對(duì)每個(gè)地址來(lái)說(shuō),都有具體數(shù)值范圍

例:#30=1100時(shí),則M#30是不允許的

5. #0為空變量,沒(méi)有定義變量值的變量也是空變量

6. 變量值定義:

程序定義時(shí)可省略小數(shù)點(diǎn),例:#123=149


2

變量的種類

1697180776294780.jpg

1. 局部變量#1~#33

一個(gè)在宏程序中局部使用的變量,其運(yùn)算結(jié)果其他程序不可使用。

例: A宏程序 B宏程序

… …

#10=20 X#10 不表示X20

… …

斷電后清空,調(diào)用宏程序時(shí)代入變量值

2. 公共變量#100~#199,#500~#999

各用戶宏程序內(nèi)公用的變量 ,其運(yùn)算結(jié)果任何程序調(diào)用都相同。

例:上例中#10改用#100時(shí),B宏程序中的

X#100表示X20

#100~#149 斷電后清空

#500~#531保持型變量(斷電后不丟失)

3. 系統(tǒng)變量

固定用途的變量,其值取決于系統(tǒng)的狀態(tài)

例:#2001值為1號(hào)刀補(bǔ)X軸補(bǔ)償值

#5221值為X軸G54工件原點(diǎn)偏置值

入時(shí)必須輸入小數(shù)點(diǎn),小數(shù)點(diǎn)省略時(shí)單位為μm


3

運(yùn)算指令

運(yùn)算式的右邊可以是常數(shù)、變量、函數(shù)、式子

式中#j,#k也可為常量

式子右邊為變量號(hào)、運(yùn)算式

一、定義

#I=#j

二、 算術(shù)運(yùn)算

#I=#j+#k

#I=#j-#k

#I=#j*#k

#I=#j/#k

三、邏輯運(yùn)算

#I=#JOK#k

#I=#JXOK#k

#I=#JAND#k

四、函數(shù)

1697180846458234.jpg

#I=SIN[#j] 正弦

#I=COS[#j] 余弦

#I=TAN[#j] 正切

#I=ATAN[#j] 反正切

#I=SQRT[#j] 平方根

#I=ABS[#j] 絕對(duì)值

#I=ROUND[#j] 四舍五入化整

#I=FIX[#j] 上取整

#I=FUP[#j] 下取整

#I=BIN[#j] BCD→BIN(二進(jìn)制)

#I=BCN[#j] BIN→BCD

1) 角度單位為度

例:90度30分為90.5度

2) ATAN函數(shù)后的兩個(gè)邊長(zhǎng)要用“/ ”隔開(kāi)

例:#1=ATAN[1]/[-1]時(shí),#1為了35.0

3) ROUND用于語(yǔ)句中的地址,按各地址的最小設(shè)定單位進(jìn)行四舍五入

例:設(shè)#1=1.2345,#2=2.3456,設(shè)定單位1μm

G91 X-#1;X-1.235

X-#2 F300;X-2.346

X[#1+#2];X3.580

未返回原處,應(yīng)改為

X[ROUND[#1]+ROUND[#2]];

4) 取整后的絕對(duì)值比原值大為上取整,反之為下取整

例:設(shè)#1=1.2,#2=-1.2時(shí)

若#3=FUP[#1]時(shí),則#3=2.0

若#3=FIX[#1]時(shí),則#3=1.0

若#3=FUP[#2]時(shí),則#3=-2.0

若#3=FIX[#2]時(shí),則#3=-1.0

5) 指令函數(shù)時(shí),可只寫開(kāi)頭2個(gè)字母

例:ROUND→RO

FIX→FI

6) 優(yōu)先級(jí)

函數(shù)→乘除(*,1,AND)→加減(+,-,OR,XOR)

例:#1=#2+#3*SIN[#4];

7) 括號(hào)為中括號(hào),最多5重,括號(hào)用于注釋語(yǔ)句

例:#1=SIN[[[#2+#3]*#4+#5]*#6];(3重)


4

轉(zhuǎn)移與循環(huán)指令

1. 無(wú)條件的轉(zhuǎn)移

格式:GOTO n;

無(wú)條件地轉(zhuǎn)移到程序段n去

n:程序段號(hào)(1-99999)

n也可用變量或表達(dá)式來(lái)代替

GOTO10;

GOTO #10;

2. 條件轉(zhuǎn)移

IF  [<條件表達(dá)式>]    GOTO  n;

若滿足<條件表達(dá)式>,下步操作轉(zhuǎn)移到程序段號(hào)為n的程序段去。

若不滿足,執(zhí)行下個(gè)程序段。

IF  [<條件表達(dá)式>]    THEN  … ;

若滿足<條件表達(dá)式>,執(zhí)行THEN后的宏程序語(yǔ)句,只執(zhí)行一個(gè)語(yǔ)句。

IF[#1EQ #2] THEN #3=0;

條件式:

1697180896472742.png

#j 和#k也可用<表達(dá)式>來(lái)代替

例:IF[#1 GT 10] GOTO 100;

N100 G00 G91 X10;

例:求1到10之和

O9500;

#1=0

#2=1

N1 IF [#2 GT10] GOTO 2

#1=#1+#2;

#2=#2+1;

GOTO 1

N2 M30

3. 循環(huán)

格式:WHILE[<條件式>]DO m;(m=1,2,3)

ENDm

1.條件滿足時(shí),執(zhí)行DOm到ENDm,則從DOm的程序段

不滿足時(shí),執(zhí)行ENDm后面的程序段

2.省略WHILE語(yǔ)句只有DOm…ENDm,則從DOm到ENDm之間形成死循環(huán)

3.嵌套

4.EQ NE時(shí),空和“0”不同

其他條件下,空和“0”相同

例:求1到10之和

O0001;

#1=0;

#2=1;

WHILE [#2LE10] DO1;

#1=#1+#2;

#2=#2+#1;

END1;

M30;


轉(zhuǎn)載請(qǐng)標(biāo)注來(lái)源158機(jī)床網(wǎng)