首页 > 编程知识 正文

如何看懂宏程序(宏程序一把刀走四个坐标)

时间:2023-05-04 12:57:22 阅读:91131 作者:104

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,而不是2。从这里可以看到,如果程序中有相同的变量#,后面的#号将代替前面的#号。

例如#1=2

# #1=3

最后的结果#1的值应该等于3。 所以后面的代替前面。

(4)变量的可取范围

1 .局部变量(#1-#33 ) )。

局部变量是什么? 局部变量可以理解为在局部或单个程序中有效。 停电后,系统会自动清零。

2 .通用变量(#100-#199,#500-#999 )。

公共变量和局部变量的区别在于,局部变量是局部变量还是在单个程序中有效。 另一方面,通用变量意味着,如果某个程序同时具有主程序和子程序,则如果主程序已经分配了值,则无需在子程序中重新分配值即可共享。 #100-#199和#500-#999的区别在于,前者切断电源进行清除,而后者不清除则一直保存在系统内部。 例如:

# # 500=谭先生

# #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 .正切) ) )。

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

2 .我叫2.sin(kkdfh )

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

3.COS (土里土气的美人) )。

例如#1=COS[15]

4 .东盟、东盟、东盟(反三角) )。

5.SQRT (数学中卡方的含义和数学中的根号相同) )。

例如,#1=SQRT[9]时,#1的值为3

)7)宏程序的一般符号和含义

大于GT )的

GE (以上) () ) ) ) ) ) ) ) ) )。

LT (小于)

LE (以下简称) ) ) ) )。

EQ )等于

NE (不等于)。

ABS (绝对值) )

和(和) )。

或(或) )。

)8)常用语法和应用

1 .无条件地使用goton(n表示数值) (注) ) (注) ) ) (注) ) ) ) ) (注) (注) ) (注) ) ) (注) ) )

例如,GOTO01这个片段意味着,当在程序中执行到这个片段时,它将无条件地跳转到该片段中的n-1处,然后执行n-1之后的片段。

3秒500克99

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系列,广数,三菱系统为例。西门子,宝源,新代等系统以说明书为准!!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。