導航:首頁 > 軟體知識 > 宏程序為什麼不能走一邊

宏程序為什麼不能走一邊

發布時間:2023-05-18 09:03:09

1. 法那科宏程序兩重嵌套怎麼不能走

1 可能存在程序錯誤或邏輯問題,導致無法舉孝走到嵌套語句的執行步驟。

2 責任可能在兩重嵌套的代碼中存在語法錯誤或者邏輯錯誤,需要檢查和調試。

3 另外,可能與運行環境有關,需要檢查代碼友衫所在的編程語言和操作系統等因素。
建議通過日誌、調試工具等方式正告稿來定位問題所在,進一步找到解決辦法。

2. 西門子840D系統,宏程序咋用

這個在西門子中叫R參數,具體的用法和宏程序一樣,先要賦值,我也不是經常用,這個就是凡是能用數學表達式辯物消的幾何圖形都可以:比如說橢圓吧
r1=35 賦值長半軸35
r2=15 短半軸15
r3=0 變數的起始點
g0 x=r1+r10 y=r11 這個就是下刀點,也可以不賦值,採用具體的數值。
g1 z-5 f100 最終深度
AAA: 表示條件循環的指令,
r4=r1*cos(r3)+r10 用變數表攜知示新的變數,相當於函數。其中r10,r11表示的剛才的下刀點。
r5=r2*sin(r3)+r11
g1 x=r4 y=r5 f100 工部走新的變數。
r3=r3+1 參數賦值,計算出新的節點
if r3<=360 gotob AAA 條件跳轉。
g0 z200 抬刀
m02 程序結束。如果是圓的話只需r1=r2不過現在很少用螞悔這個了,應為計算機編程,加上有u盤或軟盤,程序也比較快,慢慢的這個已經比遺忘了。

3. 宏程序與子程序調用與區別

1.在匯編後產生的.obj文件中,子程序定義依然存在,而宏定義卻不復存在。
2.子程序調用是在執行時通過CALL指令完成的,而宏調用是在匯編時進行宏展開,被相應宏體所取代。
3.將多次調用的一段代碼定義為宏指令,與使用子程序相比,其執行速度要快(因為過程需要調用和返回),但目標代碼長。
4.宏指令的參數是在匯編時進行形實替換的,而子程序的參數是在執行時通過寄存器或堆棧等方式傳遞的。

大概想到這些,供參考

4. 數控銑削宏程序

數控銑削加工宏程序的編制與應用

在數控編程中,宏程序編程靈活、高效、快捷。宏程序不僅可以實現象子程序那樣,對編制相同加工操作的程序非常有用,還可以完成子程序無法實現的特殊功能,例如,型腔加工宏程序、固定加工循環宏程序、球面加工宏程序、錐面加工宏程序等。

一、FANUC宏程序的理論基礎

(一)FANUC宏程序的構成

1)包含變數

2)包含算術或邏輯運算(=)的程序段

3)包含控制語句(例如:GOTO,DO,END)的程序段

4)包含宏程序調用指令(G65,G66,G67或其他G代碼,M代碼調用宏程序)的程序段

(二)FANUC宏程序的變數

FANUC數控系統變數表示形式為# 後跟1~4位數字,變數有四種:

1、FANUC宏程序的變數Ⅰ

變數號

變數類型

功能

#0

空變數該變數總是空

沒有任何值能賦給該變數

2、FANUC宏程序的變數Ⅱ

變數號

變數類型

功能

#1——#33

局部變數

局部變數只能用在宏程序中存儲數據,例如運算結果。當斷電時局部變數被初始化為空,調用宏程序時自變數對局部變數賦值。

3、FANUC宏程序的變數Ⅲ

變數號

變數類型

功能

#100—#199

#500—#999

公共變數

公共變數在不同的宏程序中的意義相同當斷電時變數#100 #199初始化為空變數

#500 #999 的數據保存即使斷電也不丟失

4、FANUC宏程序的變數Ⅳ

變數號

變數類型

功能

#1000——

系統變數

系統變數用於讀和寫CNC 運行時各種數據的變化例如刀具的當前位置和補償值等

(三)刀具補償存儲器C用G10指令進行設定

H代碼的幾何補償值

G10L10P R ;

D代碼的幾何補償值

G10L12P R ;

H代碼的磨損補償值

G10L11P R ;

D代碼的磨損補償值

G10L13P R ;

P:刀具補償號

R:絕對值指令(G90)方式時的刀具補償值。增量值指令(G91)方式時的刀具補償值為該值與指定的刀具補償號的值相加。

用G10改變工件坐標系零點偏移值

格式:G10L12PpIP ;

P=0:外部工件零點偏移值

P=1:工件坐標系G54的零點偏移值

P=2:工件坐標系G55的零點偏移值

P=3:工件坐標系G56的零點偏移值

P=4:工件坐標系G57的零點偏移值

P=5:工件坐標系G58的零點偏移值

P=5:工件坐標系G59的零點偏移值

IP: 對於絕對值指令(G90),為每個軸的工件零點偏移值。

對於增量值指令(G91),為每個軸加到設定的工件零點偏移值。

(四)FANUC宏程序運算符Ⅰ

1、FANUC宏程序運算符Ⅰ

功能

格式

備注

定義

#i=#j

加法

#i=#j+#k

減法

#i =#j- #k

乘法

#i =#j*#k

除法

#i=#j/#k

2、FANUC宏程序運算符Ⅱ

功能

格式

備注

正弦

#i=SIN[#j]

角度以度指定,如90º30』表示為90.5度

反正弦

#i=ASIN[#j]

餘弦

#i=COS[#j]

反餘弦

#i=ACOS[#j]

正切

#i=TAN[#j]

反正切

#i=ATAN[#j]

3、FANUC宏程序運算符Ⅲ

功能

格式

備注

平方根

#i=SQRT[#j]

絕對值

#i=ABS[#j]

舍入

#i=ROUND[#j]

上取整

#i=FIX[#j]

下取整

#i=FUP[#j]

自然對數

#i=LN[#j]

指數函數

#i=EXP[#j]

4、FANUC宏程序運算符Ⅳ

功能

格式

備注



#i=#j OR #k

邏輯運算一位一位的按二進制數執行

異或

#i=#j XOR #k



#i=#j AND #k

從BCD轉為BIN

#i=BIN[#j]

用於與PMC的信號交換

從BIN轉為BCD

#i=BCD[#j]

(五)FANUC宏程序的轉移和循環

1、FANUC宏程序的轉移和循環Ⅰ

無條件轉移:GOTOn

(n為順序號,1——99999)

例:GOTO10為轉移到N10程序段

2、FANUC宏程序的轉移和循環Ⅱ

條件轉移:(IF語句)

IF [條件表達式] GOTOn

當指定的條件表達式滿足時,轉移到標有順序號n的程序段,如果指定的條件表達式不滿足時,執行下個程序段

3、FANUC宏程序的轉移和循環Ⅲ

條件轉移:(IF語句)

IF [條件表達式] GOTOn

如果變數#1的值大於10,轉移到順序號N20的程序段。

如果條件不滿足 IF [#1 GT 10] GOTO 2

如果條件滿足

程 序

程程序序

N20 G00 G90 X100. Y20.

:

4、FANUC宏程序的轉移和循環Ⅳ

IF [條件表達式] THEN

當指定的條件表達式滿足時,執行預先決定的宏程序語句。

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

(六)FANUC宏程序的循環

FANUC宏程序循環Ⅰ

WHILE [條件表達式] Dom;

(m=1,2,3)

條件不滿足 條件滿足

ENDm

註:循環允許嵌套,最多3層,但不允許交叉;

FANUC宏程序循環Ⅱ

FANUC宏程序循環Ⅲ

(七)FANUC宏程序的條件表達式運算符

運算符

含義

EQ

等於

NE

不等於

GT

大於

GE

大於或等於

LT

小於

LE

小於或等於

(九)FANUC宏程序的調用Ⅰ

FANUC宏程序的調用Ⅰ

非模態調用G65:

格式: G65PpLl<自變數指定>

其中

p:要調用的程序號

L:調用次數(默認為1)

自變數:數據傳遞到宏程序

FANUC宏程序的調用Ⅱ

模態調用(G66):

G66PpLl<自變數指定>;

程序點

G67;(取消模態)

其中

p:要調用的程序號

L:調用次數(默認為1)

自變數:數據傳遞到宏程序

(十)FANUC宏程序的自變數指定

1、FANUC宏程序的自變數指定I

地址

變數

地址

變數

地址

變數

A

#1

I

#4

T

#20

B

#2

J

#5

U

#21

C

#3

K

#6

V

#22

D

#7

M

#13

W

#23

E

#8

Q

#17

X

#24

F

#9

R

#18

Y

#25

H

#11

S

#19

Z

#26

2、FANUC宏程序的調用II

地址

變數

地址

變數

地址

變數

A

#1

K3

#12

J7

#23

B

#2

I4

#13

K7

#24

C

J4

#14

I8

#25

I

#4

K4

#15

J8

#26

J

#5

I5

#16

K8

#27

K

#6

J5

#17

I9

#28

I2

#7

K5

#18

J9

#29

J2

#8

I6

#19

K9

#30

K2

#9

J6

#20

I10

#31

I3

#10

K6

#21

J10

#32

J3

#11

I7

#22

K10

#33

二、FANUC宏程序的應用

(一)宏程序示例(銑圓)

#1=圓心坐標X值

#2=圓心坐標Y值

#3=園孔最終Z值

#4=圓孔直徑

#5=刀具直徑

#6=[#4+#5]/4 (進刀半徑)

#7= #3+50 (進刀高度)

#8= [#1+#4]/2-#6(進刀圓弧起點X值)

#9 = #2 - #6 (進刀圓弧起點Y值)

#10= #1+#4/2 (銑圓起點X值)

#11= -#4/2 (I矢量)

#12= #2+#6(退刀圓弧Y值)

%

O100

M03S1000

G00G90G54G43H01Z100.

X#1Y#2

Z#7

G01Z#3 F100

G41D02X#8Y#9

G03X#10Y#2R#6

G03X#10Y#2I#11J0

G03X#8Y#12R#6

G01G40X#1Y#2

G00Z100.

M30

%

(二)宏程序示例(銑半圓球)

自上而下等角度水平圓弧環繞球面精加工

#1=(A)球面的圓弧半徑

#2=(B)球頭銑刀刀具半徑

#3=(C)球面的起始角度

#4= (I)球面的終止角度,#4≤90°

#17=(Q)Z坐標每次遞減量

#24=(X)球心坐標X值

#25=(Y)球心坐標Y值

#26=(Z)球心坐標Z值

%

O200

M03S1000

G00G90G541Z100.

G00X0Y0

G65P1912X Y Z A B C I Q

M30

%

O1912 (宏程序)

G52X#24Y#25Z#26

G00X0Y0Z[#1+30]

#12=#1+#2

WHILE [#3LT#4]DO1

#5 = #12*COS[#3]

#6 = #12*SIN[#3]

X[#5+#2] Y#2

G03X#5Y0R#2F1000

G02 I-#5

G03X[#5+#2]Y-#2R#2

G00Z[#7+1]

Y#2

#3 = #3 + #17

END 1

GOO Z[#1+30]

G52 X0 Y0 Z0

M99

%

注釋說明

(主程序)

調用宏程序O1912

(空格處為變數賦值)

在球心處建立局部坐標

球心與刀心連線距離

如果#3<#4,循環1繼續

任意角度刀心X坐標值

任意角度刀心Y坐標值

G00定位於下刀點

圓弧進刀

沿球面切削

圓弧退刀

提刀1

移到進刀點

角度#3每次遞增#17

循環1結束

提刀

恢復G54坐標

宏程序結束返回

(三) 宏程序示例Ⅰ

採用Φ20R4銑刀加工SR30的球,已知球心坐標為(X0Y0Z-5.)

宏程序示例Ⅱ

1、分析:銑球程序一般採用自動編程來實現,但是,利用宏程序強大的功能同樣也可以實現,而且程序更加簡潔。

2、編程思路:

銑球可以認為是多個銑圓的組合。

3、排刀分布:

有兩種方案,一是按Z向分布,二是按圓心角分布。從保證表面質量來看,最佳方案為按圓心角分布。

圓弧起點計算,從X正向開始起刀。

刀具根部R4的圓心在XZ平面的運動軌跡為與R30等距的圓R34(見圖示中紅色軌跡),刀尖點上4mm處的軌跡(即褐色軌跡)為紅色軌跡沿X正向平移6毫米,刀尖點坐標為褐色軌跡沿Z軸向下平移4mm(即綠色軌跡)。

起始角度=ARCSIN((5+4)/34)=15.349º

起始位置X值=34*COS(15.349)+6=38.787

起始位置Z值=0 (通用表達式=34*sin(15.349)-5-4)

4、變數定義:

#1為圓心角,范圍由(15.349,90)

#2為刀尖中心X值,#2=34*COS[#1]+6

#3為刀尖中心Z值,#3=34*SIN[#1]-5-4

%

O300

M03S3000;

G00G90G54Z100.;

#1=15.349

X50.Y0;

Z10.;

WHILE[#1 LE 90] DO1;

#2=34*COS[#1]+6;

#3=34*SIN[#1]-5-4;

G01Z#3F900;

X#2;

G02X#2Y0I-#2J0;

#1=#1+1;

END1;

G00Z100.;

M30;

%

(四)宏程序示例II

用Φ20R10銑刀加工輪廓處R5圓角

下面為銑外形的一段程序,採用刀具半徑補償

G00X2.5Y26.664

G01G41D01X-8.991Y2.023

G03X2.5Y-3.336I11.491J9.641

X32.969Y-.208I0.J150.

G02X44.955Y-10.952I2.031J-9.792

G03Y-49.048I199.09J-19.048

G02X33.452Y-59.88I-9.955J-.952

G03X-28.452I-30.952J-197.59

G02X-39.922Y-48.75I-1.548J9.88

G03Y-11.25I-148.823J18.75

G02X-27.969Y-.208I9.922J1.25

G03X2.5Y-3.336I30.469J146.872

X13.991Y2.023I0.J15.

G40G01X2.5Y26.664

編程思路:

利用G10指令修改刀具半徑偏置值來實現倒圓角。

G10格式為G10L12P1R ,其中,P1表示修改D01,R後為刀具半徑偏置值。

設定倒角的圓心角為變數#1,取值范圍為0-90º

設定#2為刀具半徑偏置值,取值=COS[#1]*15-5

設定#3為Z值,取值=SIN[#1]*[5+10]-5-10

%

O400

M03S3000

G00G90G54Z100.

#1=0

X2.5Y26.64

Z5.

WHILE [#1 LE 90] DO1

#2= COS[#1]*15-5

#3= SIN[#1]

*[5+10]-5-10

G10L12P1R#2

G01Z#3F900

G00X2.5Y26.664

G01G41D01X-8.991Y2.023

G03X2.5Y-3.336I11.491J9.641

X32.969Y-.208I0.J150.

G02X44.955Y-10.952I2.031

J-9.792

G03Y-49.048I199.09J-19.048

G02X33.452Y-59.88I-9.955J-.952

G03X-28.452I-30.952J-197.59

G02X-39.922Y-48.75I-1.548J9.88

G03Y-11.25I-148.823J18.75

G02X-27.969Y-.208I9.922J1.25

G03X2.5Y-3.336I30.469J146.87

X13.991Y2.023I0.J15.

G40G01X2.5Y26.664

#1=#1+5

END1

G00Z100.

M30

%

三、小結

隨著現代製造技術的發展和數控機床的日益普及,數控加工得到廣泛應用。對於加工形狀簡單的零件,計算比較簡單,程序不多,採用手工編程較容易完成。因此,在點定位加工及由直線與圓弧組成的輪廓加工中,手工編程仍廣泛應用。但對於形狀復雜的零件,特別是具有非圓曲線、列表曲線及曲面的零件,用一般的手工編程就有一定的困難,且出錯機率大,有的甚至無法編出程序。在CAD/CAM軟體普遍應用的今天,手工編程的應用空間日趨縮小。但手工編程是自動編程的基礎。宏程序的運用,其最大的特點就是將有規律的形狀或尺寸用最短的程序段表示出來,具有極好的易讀性和易修改性。

閱讀全文

與宏程序為什麼不能走一邊相關的資料

熱點內容
淘寶分類怎麼加產品 瀏覽:226
商家入駐小程序要什麼資質 瀏覽:857
音聊app里的小程序碼是多少 瀏覽:811
青島手錶市場有哪些 瀏覽:406
酒代理天龍泉多少錢 瀏覽:59
通常用數據線介面是多少 瀏覽:747
電商行業開發小程序可以做什麼 瀏覽:295
為什麼文件壓縮信息不會缺失 瀏覽:147
蝦皮如何設置第二件產品半價 瀏覽:521
貴州哪裡有食品香精市場 瀏覽:19
生意數據參謀分析師如何認證 瀏覽:929
怎麼設置我的世界村民的交易 瀏覽:122
為什麼北京證券交易所現在才建立 瀏覽:949
杭州哪個花鳥市場有賣金絲熊 瀏覽:353
臨沂花茶如何代理 瀏覽:508
如何理解三元數據 瀏覽:446
rcs能用什麼股票代理 瀏覽:536
鄒城房產信息網在哪裡看 瀏覽:282
太原中博信息產業是做什麼的 瀏覽:995
程序員的朋友圈都是什麼樣的 瀏覽:611