您好,歡迎訪問東莞市東銓智能科技有限公司官網(wǎng)!
大家都在問宏程序~其實(shí)說起來宏就是用公式來加工零件的,比如說橢圓,如果沒有宏的話,我們要逐點(diǎn)算出曲線上的點(diǎn),然后慢慢來用直線逼近,如果是個(gè)光潔度要求很高的工件的話,那么需要計(jì)算很多的點(diǎn),可是應(yīng)用了宏后,我們把橢圓公式輸入到系統(tǒng)中然后我們給出Z坐標(biāo)并且每次加10um那么宏就會(huì)自動(dòng)算出X坐標(biāo)并且進(jìn)行切削,實(shí)際上宏在程序中主要起到的是運(yùn)算作用..宏一般分為A類宏和B類宏.A類宏是以G65 Hxx P#xx Q#xx R#xx的格式輸入的,而B類宏程序則是
以直接的公式和語言輸入的和C語言很相似在0i系統(tǒng)中應(yīng)用比較廣.由于現(xiàn)在B類宏程序的大量使
用很多書都進(jìn)行了介紹這里我就不再重復(fù)了,但在一些老系統(tǒng)中,比如法蘭克OTD系統(tǒng)中由于它的MDI鍵盤上沒有公式符號(hào),連最簡(jiǎn)單的等于號(hào)都沒有,為此如果應(yīng)用B類宏程序的話就只能在計(jì)算機(jī)上編好再通過RSN-32接口傳輸?shù)?/span>數(shù)控系統(tǒng)中,可是如果我們沒有PC機(jī)和RSN-32電纜的話怎么辦呢,那么只有通過A類宏程序來進(jìn)行宏程序編制了,下面我介紹一下A類宏的引用;
A類宏是用G65 Hxx P#xx Q#xx R#xx或G65 Hxx P#xx Qxx Rxx格式輸入的xx的意思就是數(shù)值,是以u(píng)m級(jí)的量輸入的,比如你輸入100那就是0.1MM~~~~~.#xx就是變量號(hào),關(guān)于變量號(hào)是什么意思再不知道的的話我也就沒治了,不過還是教一下吧,變量號(hào)就是把數(shù)值代入到一個(gè)固定的地址中,固定的地址就是變量,一般OTD系統(tǒng)中有#0~~~#100~#149~~~#500~#531關(guān)閉電源時(shí)變量#100~#149被初始化成“空”,而變量#500~#531保持?jǐn)?shù)據(jù).我們?nèi)绻f#100=30那么現(xiàn)在#100地址內(nèi)的數(shù)據(jù)就是30了,就是這么簡(jiǎn)單.好現(xiàn)在我來說一下H代碼,大家可以看到A類宏的標(biāo)準(zhǔn)格式中#xx和xx都是數(shù)值,而G65表示使用A類宏,那么這個(gè)H就是要表示各個(gè)數(shù)值和變量號(hào)內(nèi)的數(shù)值或者各個(gè)變量號(hào)內(nèi)的數(shù)值與其他變量號(hào)內(nèi)的數(shù)值之間要進(jìn)行一個(gè)什么運(yùn)算,可以說你了解了H代碼A類宏程序你基本就可以應(yīng)用了,好,現(xiàn)在說一下H代碼的各個(gè)含義:
以下都以#100和#101和#102,及數(shù)值10和20做為例子,應(yīng)用的時(shí)候別把他們當(dāng)格式就行,
基本指令:
H01賦值;格式:G65H01P#101Q#102:把#102內(nèi)的數(shù)值賦予到#101中
G65H01P#101Q#10:把10賦予到#101中
H02加指令;格式G65 H02 P#101 Q#102 R#103,把#102的數(shù)值加上#103的數(shù)值賦予#101
G65 H02 P#101 Q#102 R10
G65 H02 P#101 Q10 R#103
G65 H02 P#101 Q10 R20
上面4個(gè)都是加指令的格式都是把Q后面的數(shù)值或變量號(hào)內(nèi)的數(shù)值加上R后面的數(shù)
值或變量號(hào)內(nèi)的數(shù)值然后等于到P后面的變量號(hào)中.
H03減指令;格式G65 H03 P#101 Q#102 R#103,把#102的數(shù)值減去#103的數(shù)值賦予#101
G65 H03 P#101 Q#102 R10
G65 H03 P#101 Q10 R#103
G65 H03 P#101 Q20 R10
上面4個(gè)都是減指令的格式都是把Q后面的數(shù)值或變量號(hào)內(nèi)的數(shù)值減去R后面的數(shù)
值或變量號(hào)內(nèi)的數(shù)值然后等于到P后面的變量號(hào)中.
H04乘指令;格式G65 H04 P#101 Q#102 R#103,把#102的數(shù)值乘上#103的數(shù)值賦予#101
G65 H04 P#101 Q#102 R10
G65 H04 P#101 Q10 R#103
G65 H04 P#101 Q20 R10
上面4個(gè)都是乘指令的格式都是把Q后面的數(shù)值或變量號(hào)內(nèi)的數(shù)值乘上R后面的數(shù)
值或變量號(hào)內(nèi)的數(shù)值然后等于到P后面的變量號(hào)中.
H05除指令;格式G65 H05P#101 Q#102 R#103,把#102的數(shù)值除以#103的數(shù)值賦予#101
G65 H05 P#101 Q#102 R10
G65 H05 P#101 Q10 R#103
G65 H05 P#101 Q20 R10
上面4個(gè)都是除指令格式都是把Q后面的數(shù)值或變量號(hào)內(nèi)的數(shù)值除以R后面的數(shù)
值或變量號(hào)內(nèi)的數(shù)值然后等于到P后面的變量號(hào)中.(余數(shù)不存,除數(shù)如果為0的話會(huì)出現(xiàn)112報(bào)警)
三角函數(shù)指令:
H31 SIN正玄函數(shù)指令:格式G65 H31 P#101 Q#102 R#103;含義Q后面的#102是三角形的斜邊R后面的#103內(nèi)存的是角度.結(jié)果是#101=#102*SIN#103,也就是說可以直接用這個(gè)求出三角形的另
一條邊長(zhǎng).和以前的指令一樣Q和R后面也可以直接寫數(shù)值.
H32 COS余玄函數(shù)指令:格式G65 H32 #101 Q#102 R#103;含義Q后面的#102是三角形的斜邊
R后面的#103內(nèi)存的是角度.結(jié)果是#101=#102*COS#103,也就是說可以直接用這個(gè)求出三角形的
另一條邊長(zhǎng).和以前的指令一樣Q和R后面也可以直接寫數(shù)值.
H33和H34本來應(yīng)該是TAN 和ATAN的可是經(jīng)過我使用得數(shù)并不準(zhǔn)確,希望有知道的人能夠告訴我是為什么?
開平方根指令:
H21;格式G65 H21 P#101 Q#102 ;意思是把#102內(nèi)的數(shù)值開了平方根然后存到#101中(這個(gè)指令是非常重要的如果在車橢圓的時(shí)候沒有開平方跟的指令是沒可能用宏做到的.
無條件轉(zhuǎn)移指令:
H80;格式:G65 H80 P10 ;直接跳到第10程序段
有條件轉(zhuǎn)移指令:
H81 H82 H83 H84 H85 H86 ,分別是等于就轉(zhuǎn)的H81;不等于就轉(zhuǎn)的H82;小于就轉(zhuǎn)的H83;大于就轉(zhuǎn)的H84;小于等于就轉(zhuǎn)的H85;大于等于就轉(zhuǎn)的H86;
格式:G65 H8x P10 Q#101 R#102;將#101內(nèi)的數(shù)值和#102內(nèi)的數(shù)值相比較,按上面的H8x的碼帶入H8x中去,如果條件符合就跳到第10程序段,如果不符合就繼續(xù)執(zhí)行下面的程序段.
用 戶 宏 程 序
能完成某一功能的一系列指令像子程序那樣存入存儲(chǔ)器,用一個(gè)總指令來它們,使用時(shí)只需給出這個(gè)總指令就能執(zhí)行其功能。
l 所存入的這一系列指令——用戶宏程序
l 調(diào)用宏程序的指令————宏指令
l 特點(diǎn):使用變量
一. 變量的表示和使用
?。ㄒ唬?變量表示
?。(I=1,2,3,…)或#[<式子>]
例:#5,#109,#501,#[#1+#2-12]
?。ǘ?變量的使用
1. 地址字后面指定變量號(hào)或公式
格式:?。嫉刂纷郑荆
<地址字>-#I
?。嫉刂纷郑綶<式子>]
例: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è)地址來說,都有具體數(shù)值范圍
例:#30=1100時(shí),則M#30是不允許的
5. #0為空變量,沒有定義變量值的變量也是空變量
6. 變量值定義:
程序定義時(shí)可省略小數(shù)點(diǎn),例:#123=149
MDI鍵盤輸一. 變量的種類
1. 局部變量#1~#33
一個(gè)在宏程序中局部使用的變量
例: A宏程序 B宏程序
… …
?。?0=20 X#10 不表示X20
… …
斷電后清空,調(diào)用宏程序時(shí)代入變量值
2. 公共變量#100~#149,#500~#531
各用戶宏程序內(nèi)公用的變量
例:上例中#10改用#100時(shí),B宏程序中的
X#100表示X20
?。?00~#149 斷電后清空
?。?00~#531保持型變量(斷電后不丟失)
3. 系統(tǒng)變量
固定用途的變量,其值取決于系統(tǒng)的狀態(tài)
例:#2001值為1號(hào)刀補(bǔ)X軸補(bǔ)償值
?。?221值為X軸G54工件原點(diǎn)偏置值
入時(shí)必須輸入小數(shù)點(diǎn),小數(shù)點(diǎn)省略時(shí)單位為μm
一. 運(yùn)算指令
運(yùn)算式的右邊可以是常數(shù)、變量、函數(shù)、式子
式中#j,#k也可為常量
式子右邊為變量號(hào)、運(yùn)算式
1. 定義
?。=#j
2. 算術(shù)運(yùn)算
?。=#j+#k
?。=#j-#k
#I=#j*#k
?。=#j/#k
3. 邏輯運(yùn)算
?。=#JOK#k
#I=#JXOK#k
?。=#JAND#k
4. 函數(shù)
?。=SIN[#j] 正弦
#I=COS[#j] 余弦
?。=TAN[#j] 正切
?。=ATAN[#j] 反正切
#I=SQRT[#j] 平方根
#I=ABS[#j] 值
?。=ROUND[#j] 四舍五入化整
#I=FIX[#j] 下取整
?。=FUP[#j] 上取整
?。=BIN[#j] BCD→BIN(二進(jìn)制)
?。=BCN[#j] BIN→BCD
1. 說明
1) 角度單位為度
例:90度30分為90.5度
2) ATAN函數(shù)后的兩個(gè)邊長(zhǎng)要用“1”隔開
例:#1=ATAN[1]/[-1]時(shí),#1為了35.0
3) ROUND用于語句中的地址,按各地址的最小設(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) 取整后的值比原值大為上取整,反之為下取整
例:設(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í),可只寫開頭2個(gè)字母
例:ROUND→RO
FIX→FI
6) 優(yōu)先級(jí)
函數(shù)→乘除(*,1,)→加減(+,-,,XOR)
例:#1=#2+#3*SIN[#4];
7) 括號(hào)為中括號(hào),最多5重,園括號(hào)用于注釋語句
例:#1=SIN[[[#2+#3]*#4+#5]*#6];(3重)
一. 轉(zhuǎn)移與循環(huán)指令
1.無條件的轉(zhuǎn)移
格式: GOTO 1;
GOTO #10;
2.條件轉(zhuǎn)移
格式: IF[<條件式>] GOTO n
條件式:
#j EQ#k 表示=
?。 NE#k 表示≠
?。 GT#k 表示>
#j LT#k 表示<
?。 GE#k 表示≥
?。 LE#k 表示≤
例: IF[#1 GT 10] GOTO 100;
…
N100 G00 691 X10;
例:求1到10之和
O9500;
?。?=0
#2=1
N1 IF [#2 GT10] GOTO 2
?。?=#1+#2;
?。?=#2+1;
GOTO 1
N2 M301.循環(huán)
格式:WHILE[<條件式>]DO m;(m=1,2,3)
…
…
…
ENDm
說明:1.條件滿足時(shí),執(zhí)行DOm到ENDm,則從DOm的程序段
不滿足時(shí),執(zhí)行DOm到ENDm的程序段
2.省略WHILE語句只有DOm…ENDm,則從DOm到ENDm之間形成死循環(huán)
3.嵌套
4.EQ NE時(shí),空和“0”不同
其他條件下,空和“0”相同
例:求1到10之和
O0001;
#1=0;
?。?=1;
WHILE [#2LE10] DO1;
?。?=#1+#2;
?。?=#2+#1;
END1;
M30; 這是簡(jiǎn)單的拋物線程序! G99
S800M3
T0101
G0 X30. .Z10.
#1=0
N10 #2=SQRT[2*#1]
G1X[2*#2]Z-#1F0.05
#1=#1+0.1
IF [#1 LE 50] GOTO 10
G0X30
Z100
M5
M30
地址
東莞市長(zhǎng)安鎮(zhèn)烏沙社區(qū)興發(fā)
南路東一街D棟105號(hào)
電話
董先生:138-8862-8927
郵箱
dqzn001@dqzn.net