華中數控與FANUC宏程序的區別,一文全讀懂

2021-02-24 數控編程教學

點擊上方,關注我哈

(文章底部可以評論,歡迎對文章進行點評和知識補充)

大家都在問宏程序。其實所謂宏就是用公式來加工零件的。比如說橢圓,如果沒有宏程序的話,我們要逐點算出曲線上的點,然後慢慢用直線或曲線逼近,如果是個光潔度要求很高的工件,那麼需要計算的點就會很多,可是應用了宏後,我們把橢圓公式輸入到系統中,然後我們給出Z坐標或X坐標並且每次加一個很小的數值,那麼宏就會自動算出X坐標或Z坐標,並且進行切削。實際上宏在程序中主要起到的是運算作用。


一、FANUC系統宏程序


宏一般分為A類宏和B類宏.A類宏是以G65HxxP#xxQ#xxR#xx的格式輸入的,而B類宏程序則是:

以直接的公式和語言輸入的和C語言很相似在0i系統中應用比較廣。由於現在B類宏程序的大量使用,很多書都進行了介紹這裡我就不再重複了,但在一些老系統中,比如法蘭克OTD系統中由於它的MDI鍵盤上沒有公式符號,連最簡單的等於號都沒有,為此如果應用B類宏程序的話就只能在計算機上編好再通過RSN-32接口傳輸的數控系統中,可是如果我們沒有PC機和RSN-32電纜的話怎麼辦呢,那麼只有通過A類宏程序來進行宏程序編制了,下面我介紹一下A類宏的引用。

A類宏是用G65HxxP#xxQ#xxR#xx或G65HxxP#xxQxxRxx格式輸入的xx的意思就是數值,是以um級的量輸入的,比如你輸入100那就是0.1MM~#xx就是變量號,關於變量號是什麼意思再不知道的的話我也就沒治了,不過還是教一下吧,變量號就是把數值代入到一個固定的地址中,固定的地址就是變量,一般OTD系統中有#0~#100~#149~#500~#531關閉電源時變量#100~#149被初始化成「空」,而變量#500~#531保持數據。我們如果說#100=30那麼現在#100地址內的數據就是30了,就是這麼簡單。

1、用戶宏程序

能完成某一功能的一系列指令像子程序那樣存入存儲器,用一個總指令來它們,使用時只需給出這個總指令就能執行其功能。

所存入的這一系列指令——用戶宏程序

調用宏程序的指令————宏指令

特點:使用變量

1)變量的表示和使用

變量表示

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

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

變量的使用

地址字後面指定變量號或公式

格式:<地址字>#I

<地址字>-#I

<地址字>[<式子>]

例:F#103,設#103=15則為F15

Z-#110,設#110=250則為Z-250

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

2)變量號可用變量代替

例:#[#30],設#30=3則為#3

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

例:下述方法下允許

O#1;

I#26.00×100.0;

N#3Z200.0;

4)變量號所對應的變量,對每個地址來說,都有具體數值範圍

例:#30=1100時,則M#30是不允許的

5)#0為空變量,沒有定義變量值的變量也是空變量

6)變量值定義:

程序定義時可省略小數點,例:#123=149

MDI鍵盤輸一.變量的種類

①局部變量#1~#33

一個在宏程序中局部使用的變量

例:A宏程序B宏程序

……

#10=20X#10不表示X20

……

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

②公共變量#100~#149,#500~#531

各用戶宏程序內公用的變量

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

X#100表示X20

#100~#149斷電後清空

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

③系統變量

固定用途的變量,其值取決於系統的狀態

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

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

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

運算指令

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

式中#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

⑸函數

#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」隔開

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

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

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

G91X-#1;X-1.235

X-#2F300;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重)

2、轉移與循環指令

1)無條件的轉移

格式:GOTO1;

GOTO#10;

2)條件轉移

格式:IF[<條件式>]GOTOn

條件式:

#jEQ#k表示=

#jNE#k表示≠

#jGT#k表示>

#jLT#k表示<

#jGE#k表示≥

#jLE#k表示≤

例:IF[#1GT10]GOTO100;

N100G00691X10;

例:求1到10之和

O9500;

#1=0

#2=1

N1IF[#2GT10]GOTO2

#1=#1+#2;

#2=#2+1;

GOTO1

N2M301.循環

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

ENDm

說明:

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

不滿足時,執行DOm到ENDm的程序段

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

3)嵌套

4)EQNE時,空和「0」不同

其他條件下,空和「0」相同

例:求1到10之和

二、HNC-21M數控系統

為用戶配備了強有力的類似於高級語言的宏程序功能,用戶可以使用變量進行算術運算、邏輯運算和函數的混合運算,此外宏程序還提供了循環語句、分支語句和子程序調用語句,利於編制各種複雜的零件加工程序,減少乃至免除手工編程時進行繁瑣的數值計算,以及精簡程序量。

1、宏變量及常量

1.宏變量

#0~#49當前局部變量

#50~#199全局變量

#200~#2490層局部變量

#250~#2991層局部變量

#300~#3492層局部變量

#350~#3993層局部變量

#400~#4494層局部變量

#450~#4995層局部變量

#500~#5496層局部變量

#550~#5997層局部變量

#600~#699刀具長度寄存器H0~H99

#700~#799刀具半逕寄存器D0~D99#800~#899刀具壽命寄存器

2、常量

PI:圓周率π

TRUE:條件成立(真)

FALSE:條件不成立(假)

運算符與表達式

①算術運算符:+,-,*,/

②條件運算符

EQ(=),NE(≠),GT(>),

GE(≥),LT(<),LE(≤)

③邏輯運算符

AND,OR,NOT

④函數

SIN,COS,TAN,ATAN,ATAN2,

ABS,INT,SIGN,SQRT,EXP

⑤表達式

用運算符連接起來的常數,宏變量構成表達式。

例如:175/SQRT[2]*COS[55*PI/180];

#3*6GT14;

賦值語句

格式:宏變量=常數或表達式

把常數或表達式的值送給一個宏變量稱為賦值。

例如:#2=175/SQRT[2]*COS[55*PI/180];

#3=124.0;

條件判別語句IF,ELSE,ENDIF

格式(i):IF條件表達式

ELSE

ENDIF

格式(ii):IF條件表達式

ENDIF

循環語句WHILE,ENDW

格式:WIIILE條件表達式

ENDW

例如:車削橢圓

%(FNAUC)

O0001

N1G00X0Z150.

N2G98

N3#24=80(短軸半徑,X軸方向)

N4#26=100(長軸半徑,Z軸方向)

N5#7=0.1(Z軸取點的間隔距離)

N6#1=#26+#7(Z軸方向最大值,假設為頂點)

N7#23=3.15(Z軸方向最小值)

N8WHILE[#1GT#23]DO1

N9#1=#1-#7(計算每次Z軸的坐標值)

N10IF[#1GT#23]GOTO12

N11#1=#23(最後一次把Z軸終點坐標賦值給#1)

N12#3=2*#24*SQRT[1-[#1*#1]/[#26*#26]](X軸坐標值計算,此處按直徑編程)

N13G01X#3Z#1F100

N14END1

N15M30

%

%0001(華中系統)

N1M03S1000T0101

N2G00X20Z5

N3#21=100(長軸半徑,Z軸方向)

N4WHILE#21GT[-100]

N5#20=0.8*SQRT[100-#21*#21](計算每次X軸的坐標值)

N6G01X[#20*2]Z[#21]F100(加工橢圓)

N7#21=#21-0.05(計算每次Z軸的坐標值)

N8ENDW

N9M30

相關焦點

  • FANUC數控宏程序編程技術一本通
    本書共13章,主要內容包括:緒論、變量與表達式、變量類型、宏函數、分支與循環、子程序、宏程序調用、複雜運動的生成、參數化編程、自定義固定循環程序
  • 數控宏程序編寫技巧及應用
    宏程序簡介 在編程工作中,我們經常把能完成某一功能的一系列指令像子程序那樣存人存儲器,用一個總指令來代表它們,使用時只需給出這個總指令就能執行其功能所存人的這一系列指令稱作用戶宏程序本體,簡稱宏程序。這個總指令稱作用戶宏程序調用指令。
  • 想學透數控宏程序?這套數控宏編程教程就能滿足你!
    (以下內容摘自《跟清風學數控宏程序編程》教程)如想學習完整版,請拉到文尾加入課程從事數控的你該聽說過數控宏程序,不管是 既然宏程序這麼牛逼,那麼問題來了,很多人表示宏程序太難了,看不懂,學不會,怎麼辦呢?
  • 一文搞懂數控宏程序的編程及應用,值得收藏!
    什麼叫宏程序?在編程時,我們會把能完成某一功能的一系列指令像子程序那樣存入存儲器,用一個總指令來調用它們,使用時只需給出這個總指令就能執行其功能所存入的這一系列指令稱作用戶宏程序本體,簡稱宏程序。這個總指令稱作用戶宏程序調用指令。在編程時,編程員只要記住宏指令而不必記住宏程序。
  • 巧妙運用FANUC系統宏程序的計數功能,理解了其實宏程序也很簡單
    巧妙運用FANUC系統宏程序的計數功能,機械FANUC系統數控加工中心宏程序,巧妙運用FANUC系統宏程序的計數功能,理解了其實宏程序也很簡單;其中介紹到了一個簡單的程序如何實現多次調用,一般來說方法可能有幾種:如子程序也可以做到,控制加工次數,控制程序的運行次數等;那我們在這兒就著重介紹WHILE語句怎麼來控制,一個程序的運行次數;這個是對之前課程的一個總結,真正明白,變量的用法,語句的用法,條件表達式的用法,以及比較重要的累加的邏輯運算等等……;希望能給一些啟發
  • 學數控高級編程---宏程序啦!!!
    當然了,標示數字的不同,宏變量的意義也不同,分局部變量、公共變量、系統變量等等,就目前來說,我們使用的是局部變量,能把它用好就不錯了,基礎打好了再說!   這所謂賦值,我們可以這麼理解:我本來很窮,突然有一天有人給我100塊!那麼此時此刻,這100塊就是我的了,因為它給我了!
  • FANUC與SIEMENS數控系統的程序代碼對比
    今天帶給大家的是關於FANUC與SIEMENS數控系統的程序代碼對比:FANUC與SIEMENS,是兩種最常用的數控系統,它們有很多相似之處,但代碼表達方式卻不盡相同,本文通過各種常用編程指令的格式對比,為需要在兩種格式之間進行程序轉換的編程者提供一些應用參考,提高編程水平。
  • 學數控宏程序編程?這個價值巨大的方法送給你
    G00X30.Z2.比如說,清風之前分享的《打通編寫宏程序的任督二脈》一文,分享了星形線的數學公式編程,實踐之後,你會發現,正弦曲線方程的編程思路都一樣。 那麼三角函數,拋物線,二次方程,卡門曲線等等也一樣,甚至你還能舉一反三做出更多的程序來。
  • 利用數學方程式編寫數控宏程序,讓你牛逼起來
    點擊上方,關注我哈(文章底部可以評論,歡迎對文章進行點評和知識補充
  • 輕鬆學數控宏程序編程,零基礎小白變大神的秘密
    數控編程教學訂單 | 技術 | 乾貨 | 編程關注可加入機械行業群以下內容來自鄒軍:《2019最新版宏程序編程秘籍》(內測)中的內容,這是一套不追求有道理,只追求有用,學了就能用,用了就有效的實戰數控編程教程。
  • 削正弦曲線宏程序兩種編程方法
    應用宏程序變量編程加工可以用函數公式來描述工件的輪廓或曲面,是現代數控系統一個重要的新功能和新方法。但是,在一些地方的中小型製造企業中,數控宏程序編程的普及和應用還有待進一步提高。因而筆者根據實際加工經驗以及相關資料,總結出設定變量使用宏程序編程加工的方法。  對於如圖1所示的繞線筒曲線輪廓零件,筆者在配置FANUC0iMate—TC數控系統和華中世紀星車床數控系統(HNC-21/22T)的數控車床上分別車削正弦曲線。  1.工藝分析與工藝設計  (1)圖樣分析。如圖1所示,零件由正弦曲線和圓柱構成。
  • 鄒軍:利用數學方程式編寫數控宏程序,讓你牛逼起來(三)
    這也是我一直強調的利用宏程序來編寫數控程序,一切就不同了。那麼如何計算這麼多點位坐標? 我曾經強調過:「複雜事情簡單化,簡單事情流程化」,這種「流程化的思維」非常有價值,數控高級編程宏程序,對於一個新手確實難,但是我們可以把編程這件事變得很簡單,並且變成一個流程,比如上面我傳授的兩步方法,就可以看成一個流程。
  • FANUC 宏程序 講解 第七課 (算術 & 邏輯運算)
    點擊上方數控基地,關注我哈...(文章底部可以評論,歡迎對文章進行點評和知識補充)      大家好:公眾號:數控基地、專注網際網路數控知識分享。課程規劃:宏程序講解→ 探頭程序講解→ 防呆程序講解→ 系統程序講解→ FANUC參數講解→  UG建模/編程講解→計算機語言C#講解 → SQL資料庫講解→ Python語言講解→ 人工智慧講解→大數據採集講解。        課前,分享一句話「人生如果錯了方向,停止就是進步"。
  • 1.宏程序的基礎
    宏程序的基礎1.1 概述宏程序的分類首先我們來講一下宏程序的分類,A類和B類。首先在數控車系統比較老的時候,我們系統裡面有A類宏,A類宏格式為G65格式,現在已經基本淘汰。隨著科技發達,系統的升級優化,現在的數控系統大多支持B類宏程序,總體而言,現在B類宏是一個主流發展趨勢,所以接下來我們的實例講解都以B類宏程序為例。宏程序的概念簡單來理解宏程序是什麼?可以這樣理解,宏程序就是利用數學公式,函數等計算方式,配合數控系統中的G代碼編制出的一種程序,主要加工一些像橢圓,曲線,各類大螺距螺紋和刀具路線相識的一些零件。
  • FANUC宏程序編程必備知識
    宏程序語句:包含算術或邏輯運算(=)的程序;包含控制語句(例如,用GOTO,DO,END)的程序;包含宏程序調用指令(例如,用G65,G66,G67或其它G代碼,M代碼調用宏程序)的程序段;除宏程序以外任何程序段都為NC語句。與NC語句的不同:即使置於單段程序運行方式,工具機也不停止。
  • FANUC數控系統與其他數控系統的比較
    FANUC數控系統FANUC數控系統由日本富士通公司研製開發。該數控系統在我國得到了廣泛的應用。SIEMENS 802C銑床數控系統操作界面如圖1-18所示。圖1-18 SIEMENS 802C系統加工中心操作界面武漢華中數控系統武漢華中數控系統是我國為數不多的具有自主智慧財產權的高性能數控系統之一,是全國數控技能大賽指定使用的數控系統。
  • 鄒軍:如何把數控程序保護起來,讓別人無法修改編輯數控程序?
    點擊上方,關注我哈
  • 第一篇,宏程序在數控銑中的應用,以立銑刀倒直角為例,分享經驗
    在數控銑削加工中,如何利用立銑刀倒直角?在數控加工中對工件進行倒角,其目的大致可分為去除毛刺使之美觀、為方便裝配導向等,一般在零件的端部進行倒角。在數控加工中,一般採用倒角刀進行倒角,如圖所示,也可以採用立銑刀進行倒角,本文主要講述在數控銑削加工中,如何利用立銑刀倒直角。本文我們選取立銑刀直徑為φ10mm,以孔內倒角為例進行講解,採用宏程序控制Z值深度,從上往下進行加工,具體編程思路如下。
  • G73的宏程序:表達FANUC宏程序深度應用,深孔加工原來是這樣寫的
    深孔加工G代碼編程與宏語句的對照各變量的介紹,讓了解的更清晰、明了WHILE語句限制循環次數,附各自變量的定義WHILE語句中增加IF語句用法,為鑽孔提供間隙設置在CNC加工中心宏程序的學習過程中,通常因為缺乏相應實例或缺乏相應格式,所以造成無從下手,不知道宏程序是怎麼樣的。
  • 鄒軍:邀你一起學CNC宏程序編程(基礎篇)
    點擊上方,關注我哈