首页
/
每日頭條
/
科技
/
宏程序代碼編程入門
宏程序代碼編程入門
更新时间:2025-12-02 23:00:22

現在很多數控技術人員都不懂宏程序,他們認為有了自動編程軟件,就不需要學習宏程序了。事實上,宏程序的功能非常強大,比如編寫一些批量、重複的程序,使用宏程序就隻需要改動幾個數據就可以了,沒有必要進行大量重複的編程,可極大簡化操作,大幅度提高工作效率。

宏程序可以使用變量進行算術運算、邏輯運算和函數的混合運算,還提供了循環語句、分支語句和子程序調用語句。

一般來說:宏程序适合圖形一樣,隻是尺寸不同的系列零件的編程;适合工藝路徑一樣,隻是位置參數不同的系列零件的編程;适合抛物線、橢圓、雙曲線等沒有插補指令的曲線編程。

01

變量的表示和使用

一、變量表示

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

1. 局部變量#1~#33

一個在宏程序中局部使用的變量,其運算結果其他程序不可使用。

例: A宏程序 B宏程序

… …

#10=20 X#10 不表示X20

… …

斷電後清空,調用宏程序時代入變量值

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

各用戶宏程序内公用的變量 ,其運算結果任何程序調用都相同。

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

X#100表示X20

#100~#149 斷電後清空

#500~#531保持型變量(斷電後不丢失)

3. 系統變量

固定用途的變量,其值取決于系統的狀态

例:#2001值為1号刀補X軸補償值

#5221值為X軸G54工件原點偏置值

入時必須輸入小數點,小數點省略時單位為μm

03

運算指令

運算式的右邊可以是常數、變量、函數、式子

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

式子右邊為變量号、運算式

一、定義

#I=#j

二、 算術運算

#I=#j #k

#I=#j-#k

#I=#j*#k

#I=#j/#k

三、邏輯運算

#I=#JOK#k

#I=#JXOK#k

#I=#JAND#k

四、函數

宏程序代碼編程入門(這些知識必不可少)1

#I=SIN[#j] 正弦

#I=COS[#j] 餘弦

#I=TAN[#j] 正切

#I=ATAN[#j] 反正切

#I=SQRT[#j] 平方根

#I=ABS[#j] 絕對值

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

#I=FIX[#j] 上取整

#I=FUP[#j] 下取整

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

#I=BCN[#j] BIN→BCD

1) 角度單位為度

例:90度30分為90.5度

2) ATAN函數後的兩個邊長要用“/ ”隔開

例:#1=ATAN[1]/[-1]時,#1為了35.0

3) ROUND用于語句中的地址,按各地址的最小設定單位進行四舍五入

例:設#1=1.2345,#2=2.3456,設定單位1μm

G91 X-#1;X-1.235

X-#2 F300;X-2.346

X[#1 #2];X3.580

未返回原處,應改為

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

4) 取整後的絕對值比原值大為上取整,反之為下取整

例:設#1=1.2,#2=-1.2時

若#3=FUP[#1]時,則#3=2.0

若#3=FIX[#1]時,則#3=1.0

若#3=FUP[#2]時,則#3=-2.0

若#3=FIX[#2]時,則#3=-1.0

5) 指令函數時,可隻寫開頭2個字母

例:ROUND→RO

FIX→FI

6) 優先級

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

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

7) 括号為中括号,最多5重,括号用于注釋語句

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

04

轉移與循環指令

1. 無條件的轉移

格式:GOTO n;

無條件地轉移到程序段n去

n:程序段号(1-99999)

n也可用變量或表達式來代替

GOTO10;

GOTO #10;

2. 條件轉移

IF [<條件表達式>] GOTO n;

若滿足<條件表達式>,下步操作轉移到程序段号為n的程序段去。

若不滿足,執行下個程序段。

IF [<條件表達式>] THEN … ;

若滿足<條件表達式>,執行THEN後的宏程序語句,隻執行一個語句。

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

條件式:

宏程序代碼編程入門(這些知識必不可少)2

#j 和#k也可用<表達式>來代替

例: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. 循環

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

ENDm

1.條件滿足時,執行DOm到ENDm,則從DOm的程序段

不滿足時,執行ENDm後面的程序段

2.省略WHILE語句隻有DOm…ENDm,則從DOm到ENDm之間形成死循環

3.嵌套

4.EQ NE時,空和“0”不同

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

例:求1到10之和

O0001;

#1=0;

#2=1;

WHILE [#2LE10] DO1;

#1=#1 #2;

#2=#2 #1;

END1;

M30;

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
等離子電視如何保養
等離子電視如何保養
散熱大功率産生的高溫可以看作是等離子電視的頭号大敵,所以在使用中要特别注意等離子電視的散熱,并且不要長時間的暴露在射燈和太陽下。屏幕灼傷因為長時間播放固定靜止畫面而使屏幕局部受到灼傷産生畫面殘影,這是等離子電視本身特性所決定的。電壓有條件的情況下應為等離子電視提供獨立的供電線路,或者再增加一個穩定電...
2025-12-02
冰箱不制冷
冰箱不制冷
說到了冰箱這種家電,不得不說冰箱對于我們的日常生活是非常重要的一種家電之一。而冰箱的主要作用就是最大限度地制冷并且起到保持食物新鮮度的作用,但是很多朋友都會發現冰箱不制冷的現象是非常普遍的,而且還會經常遇到過冰箱不制冷的現象。那麼到底冰箱不制冷怎麼辦呢?應該怎麼解決這些問題呢?其實導緻冰箱不制冷的原...
2025-12-02
微波爐的使用
微波爐的使用
說起微波爐,它的功能可真是不少,煮飯、熱菜、做蛋糕等等,因此很多朋友都想要家裡可以擁有一台微波爐。不過也有的朋友會擔心使用的時候會産生輻射,給自己的身體帶來傷害,其實如果是您正确的使用微波爐的話,輻射是不會給您的身體帶來什麼緻癌的影響的,這一點您可以放心。不過怎樣才算是正确的使用微波爐呢?這一點恐怕...
2025-12-02
燃氣熱水器不打火
燃氣熱水器不打火
現在的家庭裡,隻要是安裝天然氣的,家裡的熱水器都不會使用耗電的熱水器,畢竟電費要比燃氣費貴出很多。不過在使用燃氣熱水器的時候,很容易出現一種問題,比較讓人惱火,就是燃氣熱水器不打火的情況。為了幫你解決這個問題,在這裡就為您介紹一下燃氣熱水器不打火的可能性。燃氣熱水器不打火是非常常見的一種問題,而導緻...
2025-12-02
VCD機常見故障的處理
VCD機常見故障的處理
1、開機後不能正常播放①、碟片髒。可用VCD清潔劑或用軟棉布沾純淨蒸餾水擦拭清洗碟片,幹淨後再試用。②、機内碟片重疊、卡住或滑出槽外。應打開機殼擺正碟片或取出多餘碟片。③、環境溫度低而失常,可以邊加熱邊試機,待正常時立即停止加熱。④、激光頭上有異物。可用VCD機專用清潔劑清潔,或打開機殼,用軟棉布沾...
2025-12-02
Copyright 2023-2025 - www.tftnews.com All Rights Reserved