tft每日頭條

 > 生活

 > 宏程序編程詳細教程

宏程序編程詳細教程

生活 更新时间:2025-02-24 22:11:48

宏程序編程詳細教程?1.1 概述(1)宏程序的分類,接下來我們就來聊聊關于宏程序編程詳細教程?以下内容大家不妨參考一二希望能幫到您!

宏程序編程詳細教程(宏程序基礎)1

宏程序編程詳細教程

1.1 概述

(1)宏程序的分類

首先我們來講一下宏程序的分類,A類和B類。首先在數控車系統比較老的時候,我們系統裡面有A類宏,A類宏格式為G65格式,現在已經基本淘汰。随着科技發達,系統的升級優化,現在的數控系統大多支持B類宏程序,總體而言,現在B類宏是一個主流發展趨勢,所以接下來我們的實例講解都以B類宏程序為例。

(2)宏程序的概念

簡單來理解宏程序是什麼?可以這樣理解,宏程序就是利用數學公式,函數等計算方式,配合數控系統中的G代碼編制出的一種程序,主要加工一些像橢圓,曲線,各類大螺距螺紋和刀具路線相識的一些零件。随着科技發達,像橢圓,抛物線,等線性零件,用軟件或則系統自代G代碼可以完成加工,而大螺距異型螺紋這類零件,軟件還沒達到成熟,所以我們學會宏程序在加工中可以起到一個非常大的作用。可以彌補多年來數控車對大螺距螺紋的編程難的一個提高。

(3)宏程序的特征

1.賦值

在宏程序中我們通常用法最多的就是變量,比如:

#1=1 它就是一個變量。我們把這一過程,稱為賦值。也就是說,我們把等号後面的數值1,賦值給#1。而現在#1的值就等于1,也可以理解為#1就是一個代号,用來代替數值1。

2.變量和應用

比如:#1=2(把數值2賦值給#1)

#2=1(把數值1賦值給#2)

#2=#1(程序從上往下執行,思考一下現在#2的值等于多少?)

解: 當程序執行第一步的時候#1的值等于2,當執行第二步的時候#2的值等于1,當執行第三步的時候這裡要注意了,剛才講過賦值過程,是等号後面的值賦值給等号前面,所以當#1在第一步賦值以後,#1已經等于2了,所以在執行第三步的時候#2的值應該等于2,不在是第二步的1了。從這裡我們可以看出,當程序中有相同的變量#的時候,後面的#号代替前面的#号。

比如:#1=2

#1=3

最後結果#1的值因該是等于3的。所以說後面的代替前面的。

(4)變量的取值範圍

1.局部變量(#1-#33)

什麼叫局部變量,局部變量就是在局部或則可以理解為在單個程序中有效。斷電以後系統自動清零。

2.公共變量(#100-#199,#500-#999)

公共變量和局部變量的區别在于,局部變量是在局部,或則單個程序中有效,而公共變量是指如果一個程序同時擁有主程序和子程序的情況下,在主程序中如果已經賦值,在子程序中可以不用從新賦值,可以共用。而#100-#199和#500-#999的區别在于,前者斷電清零,而後者不會清零會一直保存在系統内部。比如:

#500=TAN[15]

#500一旦賦值就将保存在系統内部,下次可以直接調用#500使用。

3.系統變量(#1000-#17200)

系統變量是用于我們機床系統儲存一些刀補數據參數等等的東西,我們可以不用管它,不會用的,慎用)

總結:一般情況下我們寫程序用#1-#33,當有子程序的時候我們用#100-#199.

(5)宏程序中常用的計算

1.加法運算

例如:#1=2

#1=#1 3 那麼#1的值等于2 3=5

2.減法運算

例如:#1=3

#1=#1-1 那麼經過計算我們的#1的值等于3-1=2

3.乘法運算

程序中用*号來代替乘法

例如:#1=5

#2=#1*2 那麼計算出來#2的值等于5*2=10

4.除法運算

程序中用 / 号來代替除法運算

例如:#1=10

#1=#1/2 那麼經過計算#1的值等于10/2=5

(6)常用三角函數運算

1.TAN(正切)

例如#1=2*TAN[20] 中括号裡面是角度

2.SIN(正玄)

例如#1=3*SIN[3] 同上

3.COS(餘玄)

例如#1=COS[15]

4.ASIN、ACOS、ATAN(反三角)

5.SQRT(數學中的開平方的意思,和數學中根号一樣)

例如#1=SQRT[9] 那麼計算出來#1的值等于3

(7)宏程序的常用符号和含義

GT(大于)

GE(大于或等于)

LT(小于)

LE(小于或等于)

EQ(等于)

NE(不等于)

ABS(絕對值)

AND(與)

OR(或者)

(8)常用的語法和應用

1.無條件轉移 GOTOn(n表示數值)

例如:GOTO01 此程序段的意思是當程序中執行到這一程序段的時候無條件跳轉到程序段中N1的地方,執行N1後面的程序段。

M3S500G99

T101M08

GOTO10(當程序執行到這裡的時候,直接跳轉到N10那個程序段執行M30,跳過了G0那一步,所以這叫做無條件跳轉,和我們一般程序中跳段功能一樣)

G0X100.Z100.

N10M30

2.有條件跳轉 IF[條件表達式]GOTOn

例如:IF[#1GT15]GOTO10 從這段程序當中,我們這樣理解,如果中括号裡面的條件滿足,那麼就執行後面的GOTO跳轉語句,如果中括号裡面條件不滿足,那麼不執行後面的GOTO跳轉,執行後面一個程序段。

我們簡單來寫一個程序:

M3S500G99

T101M08

N10#1=30(把數值30賦值給#1)

IF[#1LT50]GOTO10(首先判斷中括号是不是滿足條件,如果滿足執行跳轉,不滿足執行下一步)

M30

從這個程序中我們可以發現當#1=30的時候,我們執行條件判斷,我們來判斷一下,#1現在等于30,那麼重括号裡面就可以理解為30小于50,現在條件滿足。所以他會執行後面GOTO跳轉語句,跳轉到N10地方繼續執行)

3.強制賦值語句 IF[條件表達式]THEN(執行語句)

例如:IF[#1GT20]THEN#1=20 (我們這樣來理解這個語句,如果#1大于20,那麼#1等于20,也就是說和上面一樣,中括号裡面條件滿足的話,執行後面THEN語句,如果不滿足,不執行後面then語句。)

寫一段簡單程序:

#1=3(把數值3賦值給#1)

#1=#1-5(把#1-5計算出來的值從新賦值給#1,也就是3-5=-2,現在#1=-2)

IF[#1LT0]THEN#1=0(強制賦值,如果#1小于0,那麼強制讓#等于0)

M30

我們來分析一下上面程序段,當我們#1執行完減法運算以後#1的值已經等于-2,那麼我們在執行強制賦值語句的時候我們來判斷一下中括号裡面條件是不是滿足,-2小于0,條件滿足,所以執行後面THEN語句,如果不滿足的時候不執行THEN語句)

4.條件判斷語句 WHILE[表達式]DOn(n為數值,取值範圍1-99)

ENDn(n與開頭n的數值對應)

例如:WHILE[#12GT50]DO1

END1

下面寫一個程序段:

#1=60

WHILE[#1GT50]DO1

G0X#1

G1Z-20.F0.2

G0U1.Z1.

END1

M30

這個程序當條件判斷語句裡面中括号裡面條件滿足的時候執行DO1和END1中間的程序段,如果條件不滿足,執行END1後面的程序段M30。

以上介紹的語法格式用法,以FANUC oi系列,廣數,三菱系統為例。西門子,寶源,新代等系統以說明書為準!!

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved