数控铣床/加工中心上编写的宏程序一般用于圆周或平行四边形矩阵孔系加工、圆锥曲线轨迹加工、特殊曲线轨迹加工、斜面加工、圆台面加工、倒角倒圆加工等。
说明:
1)很多时候,虽然在宏程序里编写了足够大的F值,但由于步距值设置的数值大小不同,机床在单位距离/角度内对步距值大小所产生的数据的计算量不同,步距值越小则计算量越大,导致机床反应迟滞;同时,过小的步距值使机床电动机在加速还未到达指定的速度时,就已进入下一个步距值的计算,也导致机床实际运行的F值和指定的F值有较大差异。因此,下面的许多F值仅供参考,读者可依不同情况自行设定。
2)为了便于描述,对下面程序中的数据均未使用“ROUND”语句,如需用“ROUND”语句,读者可以自行添加。
3)为了便于描述,程序中大多未对空值做出判断,如需要,可以用多句类似“IF[#1 EQ#0]GOTOn”式的语句跳转到循环体外、M99前面或后面“Nn#3000=(…)”的报警信息上。
4)将诸如描述“IF[#3 EQ#5]…”语句改为由“IF[ABS[#3-#5]LT 0.001]…”语句来描述,差值的大小可依变量个数和计算次数的多少略有不同。
5)数据更新的位置对自变量末值的影响:如果没有IF…THEN条件转折语句对自变量终止前最后一次步距值的限制,即使步距值能被自变量的变化量整除,数据更新这段程序所在的位置对自变量的末值仍然有影响,主要是看数据更新的位置是在表达式和由数据更新产生的执行切削或计算的程序段的前面还是后面,如下所示。其中应用较为常见的是前6种句式对应自变量的两种定义域。
①以下三种语句,自变量的定义域相同,#1∈[30.0,360.0]。
②以下三种语句,自变量的定义域相同,#1∈[52.0,360.0]。
(续)
③以下三种语句,自变量的定义域相同,#1∈[30.0,338.0]。
④以下三种语句,自变量的定义域相同,#1∈[52.0,382.0]。
以第一种情况的①为例做一下解释:
#1=30.0;自变量初始值
#2=360.0;自变量终止值
WHILE[#·1·LE#2]DO 1;(www.xing528.com)
…(<表达式>)
…(切削)
#1=#·1·+22.0;
END 1;
注意:这里打了着重号的两个“#·1·”,上面“WHILE[…]DO m”语句中的“#·1·”的末值被作为数据更新程序段“=”右边的旧数据参与运算。步距值22.0能被自变量的变化量330.0整除,所以#··1 的末值就是终止值360.0,当进行“#1=#·1·+22.0;”运算时,“=”左边的“#1”被赋值为382.0,已超出#1的定义域,循环结束。
因此,请根据不同情况选择使用合理的表达语句!
6)若#1为自变量初始值,#2为自变量终止值,#3为步距值(或为下一次数据的变化量),则下面所有的逻辑关系语句:
#1=#1±#3;
IF[#1#2]THEN#1=#2;
(程序中的比较算符“_”根据“±”符号的不同,可以是GE或GT,LE或LT)
也可以编写为:
IF[[#2-#1]_#3]THEN#1=#2-#3;(或IF[[#1-#2]_#3]THEN#1=#2+#3;)
#1=#1±#3;
(程序中的比较算符“_”根据“±”符号的不同,可以是LE或LT,GE或GT)
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。