首页 百科知识 类宏功能应用

类宏功能应用

时间:2022-10-17 百科知识 版权反馈
【摘要】:用户宏功能是提高数控机床性能的一种特殊功能。公共变量是在主程序和主程序调用的各用户宏程序内公用的变量。系统变量的序号与系统的某种状态有严格的对应关系。当变量值为“1”时,说明接点闭合;当变量值为“0”时,表明接点断开。用宏程序和子程序功能顺序加工圆周等分孔。为了方便编制程序,采用粗微分方法忽略插补误差来加工。

7.1.1 A类宏功能应用

用户宏功能是提高数控机床性能的一种特殊功能。使用中,通常把能完成某一功能的一系列指令像子程序一样存入存储器,然后用一个总指令代表它们,使用时只需给出这个总指令就能执行其功能。

用户宏功能主体是一系列指令,相当于子程序体。既可以由机床生产厂提供,也可以由机床用户自己编制

宏指令是代表一系列指令的总指令,相当于子程序调用指令。

用户宏功能的最大特点是,可以对变量进行运算,使程序应用更加灵活、方便。

用户宏功能有A、B两类。

1.变量

在常规的主程序和子程序内,总是将一个具体的数值赋给一个地址。为了使程序更具通用性、更加灵活,在宏程序中设置了变量,即将变量赋给一个地址。

(1)变量的表示

变量可以用“#”号和跟随其后的变量序号来表示:#i(i=1,2,3…)

例:#5,#109,#501。

(2)变量的引用

将跟随在一个地址后的数值用一个变量来代替,即引入了变量。

例:对于F#103,若#103=50时,则为F50;

对于Z-#110,若#110=100时,则Z为−100;

对于G#130,若#130=3时,则为G03。

(3)变量的类型

0MC系统的变量分为公共变量和系统变量两类。

1)公共变量

公共变量是在主程序和主程序调用的各用户宏程序内公用的变量。也就是说,在一个宏指令中的#i与在另一个宏指令中的#i是相同的。

公共变量的序号为:#100~#131;#500~#531。其中#100~#131公共变量在电源断电后即清零,重新开机时被设置为“0”;#500~#531公共变量即使断电后,它们的值也保持不变,因此也称为保持型变量。

2)系统变量

系统变量定义为:有固定用途的变量,它的值决定系统的状态。系统变量包括刀具偏置变量、接口的输入/输出信号变量、位置信息变量等。

系统变量的序号与系统的某种状态有严格的对应关系。例如,刀具偏置变量序号为#01~#99,这些值可以用变量替换的方法加以改变,在序号1~99中,不用作刀偏量的变量可用作保持型公共变量#500~#531。

接口输入信号#1000~#1015,#1032。通过阅读这些系统变量,可以知道各输入口的情况。当变量值为“1”时,说明接点闭合;当变量值为“0”时,表明接点断开。这些变量的数值不能被替换。阅读变量#1032,所有输入信号一次读入。

2.宏指令G65

宏指令G65可以实现丰富的宏功能,包括算术运算、逻辑运算等处理功能。

一般形式:G65 Hm P#i Q#j R#k

式中:

m——宏程序功能,数值范围01~99;

#I——运算结果存放处的变量名;

#j——被操作的第一个变量,也可以是一个常数;

#k——被操作的第二个变量,也可以是一个常数。

例如,当程序功能为加法运算时:

程序 P#100 Q#101 R#102…… 含义为#100=#101+#102

程序 P#100 Q-#101 R#102…… 含义为#100= −#101+#102

程序 P#100 Q#101 R15…… 含义为#100=#101+15

3.宏功能指令

(1)算术运算指令见表7-1。

表7-1 算术运算指令

img434

1)变量的定义和替换 #I=#j

编程格式 G65 H01 P#i Q#j

例:G65 H01 P#101 Q1005;(#101=1005)

G65 H01 P#101 Q-#112;(#101=-#112)

2)加法 #i=#j+#k

编程格式 G65 H02 P#i Q#j R#k

例:G65 H02 P#101 Q#102 R#103;(#101=#102+#103)

3)减法 #i=#j-#k

编程格式 G65 H03 P#i Q#j R#k

例:G65 H03 P#101 Q#102 R#103;(#101=#102-#103)

4)乘法 #i=#j×#k

编程格式 G65 H04 P#i Q#j R#k

例:G65 H04 P#101 Q#102 R#103;(#101=#102×#103)

5)除法 #i=#j / #k

编程格式 G65 H05 P#i Q#j R#k

例:G65 H05 P#101 Q#102 R#103;(#101=#102/#103)

6)平方根 #i=img435

编程格式 G65 H21 P#i Q#j

例:G65 H21 P#101 Q#102;(#101=img436

7)绝对值 #i=│#j│

编程格式 G65 H22 P#i Q#j

例:G65 H22 P#101 Q#102;(#101=│#102│)

8)复合平方根1 #i=img437

编程格式 G65 H27 P#i Q#j R#k

例:G65 H27 P#101 Q#102 R#103;(#101=img438

9)复合平方根2 #i=img439

编程格式 G65 H28 P#i Q#j R#k

例:G65 H28 P#101 Q#102 R#103(#101=img440

(2)逻辑运算指令见表7-2。

表7-2 逻辑运算指令

img441

1)逻辑或 #I=#j OR #k

编程格式 G65 H11 P#i Q#j R#k

例 G65 H11 P#101 Q#102 R#103;(#101=#102 OR 103)

2)逻辑与 #i=#j AND #k

编程格式 G65 H12 P#i Q#j R#k

例 G65 H12 P#101 Q#102 R#103;(#101=#102 AND #103)

(3)三角函数指令见表7-3。

表7-3 三角函数指令

img442

1)正弦函数 #i=#j×SIN(#k)

编程格式 G65 H31 P#i Q#j R#k(单位:度)

例:G65 H31 P#101 Q#102 R#103;(#101=#102×SIN(#103))

2)余弦函数 #i=#j×COS(#k)

编程格式 G65 H32 P#i Q#j R#k(单位:度)

例:G65 H32 P#101 Q#102 R#103;(#101=#102×COS(#103))

3)正切函数 #i=#j×TAN#k

编程格式 G65 H33 P#i Q#j R#k(单位:度)

例:G65 H33 P#101 Q#102 R#103;(#101=#102×TAN(#103))

4)反正切 #i=ATAN(#j/#k)

编程格式 G65 H34 P#i Q#j R#k(单位:度,0°≤ #j ≤360°)

例:G65 H34 P#101 Q#102 R#103;(#101=ATAN(#102/#103))

(4)控制类指令(见表7-4)

表7-4 控制类指令

img443

1)无条件转移

编程格式 G65 H80 Pn(n为程序段号)

例:G65 H80 P120;(转移到N120)

2)条件转移1 #j EQ #k(=)

编程格式 G65 H81 Pn Q#j R#k(n为程序段号)

例:G65 H81 P1000 Q#101 R#102

当#101=#102,转移到N1000程序段;若#101≠ #102,执行下一程序段。

3)条件转移2 #j NE #k(≠)

编程格式 G65 H82 Pn Q#j R#k(n为程序段号)

例:G65 H82 P1000 Q#101 R#102

当#101≠ #102,转移到N1000程序段;若#101=#102,执行下一程序段。

4)条件转移3 #j GT #k(> )

编程格式 G65 H83 Pn Q#j R#k(n为程序段号)

例:G65 H83 P1000 Q#101 R#102

当#101 > #102,转移到N1000程序段;若#101 ≤#102,执行下一程序段。

5)条件转移4 #j LT #k(<)

编程格式 G65 H84 Pn Q#j R#k(n为程序段号)

例:G65 H84 P1000 Q#101 R#102

当#101 < #102,转移到N1000;若#101 ≥ #102,执行下一程序段。

6)条件转移5 #j GE #k(≥)

编程格式 G65 H85 Pn Q#j R#k(n为程序段号)

例:G65 H85 P1000 Q#101 R#102

当#101≥ #102,转移到N1000;若#101<#102,执行下一程序段。

7)条件转移6 #j LE #k(≤)

编程格式 G65 H86 Pn Q#j Q#k(n为程序段号)

例:G65 H86 P1000 Q#101 R#102

当#101≤#102,转移到N1000;若#101>#102,执行下一程序段。

4.使用注意

为保证宏程序的正常运行,在使用用户宏程序的过程中,应注意以下几点:

(1)由G65规定的H码不影响偏移量的任何选择。

(2)如果用于各算术运算的Q或R未被指定,则作为0处理。

(3)在分支转移目标地址中,如果序号为正值,则检索过程是先向大程序号查找,如果序号为负值,则检索过程是先向小程序号查找。

(4)转移目标序号可以是变量。

5.用户宏程序应用举例

【例7-1】用宏程序和子程序功能顺序加工圆周等分孔。设圆心在O点,它在机床坐标系中的坐标为(X0,Y0),在半径为r的圆周上均匀地钻几个等分孔,起始角度为α,孔数为n。以零件上表面为Z向零点,见图7-1。

使用以下保持型变量:

#502:半径r;

#503:起始角度α;

img444

图7-1 等分孔计算方法

#504:孔数n,当n>0时,按逆时针方向加工,当n<0时,按顺时针方向加工;

#505:孔底Z坐标值;

#506:R平面Z坐标值;

#507:F进给量。

使用以下变量进行操作运算:

#100:表示第i步钻第i孔的计数器;

#101:计数器的最终值(为n 的绝对值);

#102:第i个孔的角度位置θi的值;

#103:第i个孔的X坐标值;

#104:第i个孔的Y坐标值;

用用户宏程序编制的钻孔子程序如下:

img445

调用上述子程序的主程序如下:

O0010

img446

设置G54:X= −400,Y= −100,Z= −50。变量#500~#507可在程序中赋值,也可由MDI方式设定。

【例7-2】根据以下数据,用用户宏程序功能加工圆周等分孔。

如图7-2所示,在半径为50mm的圆周上均匀地钻8个ф10的等分孔,第一个孔的起始点角度为30o,设圆心为O点,以零件的上表面为Z向零点。首先在MDI方式中,设定以下变量的值:

img447

图7-2 等分孔应用举例

#502:半径r为50;

#503:起始角度α为30;

#504:孔数n为8;

#505:孔底Z坐标值为-20;

#506:R平面Z坐标值为5;

#507:F进给量为50。

加工程序为:

O6100

N10 G54 G90 G00 X0 Y0 Z20

N20 M98 P9010

N30 G00 G90 X0 Y0

N40 Z20

N50 M30

设置G54:X= −400,Y= −100,Z= −50

【例7-3】应用宏功能指令加工空间曲线

img448

图7-3 空间曲线

有一空间曲线槽,由两条正弦曲线Y=35sinX和Z=5sinX迭加而成,刀具中心轨迹如图7-3所示。槽底为r=5mm的圆弧。为了方便编制程序,采用粗微分方法忽略插补误差来加工。以角度X为变量,取相邻两点间的X向距离相等,间距为0.5°,然后用正弦曲线方程Y=35sinX和Z=5sinX分别计算出各点对应的Y值和Z值,进行空间直线插补,以空间直线来逼近空间曲线。加工时采用球头铣刀(r=5mm)在一平面实体零件上铣削出这一空间曲线槽。加工坐标系设置见图7-4。

img449

图7-4 曲线槽的加工坐标系及走刀路线图

设置保持型变量:

#500:Z向每次切入量为2mm;设置时输入“2000”;

#501:Y=35sinX的幅值为35mm,设置时输入“35000”;

#502:Z=5sinX的幅值为5mm,设置时输入“5000”;

#503:X的步距为0.5°时的终点值360°;设置时输入“360”。

设置操作型变量:

#100:X当前值,为度(°);

#110:Y坐标当前值,为mm;

#120:Z=5sinX的值,为mm;

#130:Z向每次进刀后的初始值,为mm;

#140:Z坐标当前值,为mm。

子程序O 0004:

img450

主程序O0005:

img451

在子程序O 0004中,N100~N130为计算当前点的X、Y和Z坐标。N140是按计算出的坐标值切削一段空间直线,用直线逼近空间曲线。N150为空间曲线结束的终点判别,以X=360°为终点,若没有到达,则返回N100再计算下一点坐标;若已到达,则结束子程序。

在主程序O 0005中,N60为调用三次O 0004子程序,每调用一次,Z坐标向负方向进2mm,分三次切出槽深。加工的走刀路线图见图7-4所示。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈