简单好用FANUC绝对坐标分中,1/2功能,
简单好用FANUC绝对坐标分中,1/2功能. M代码调用宏程序,像数显铣床一样简单的分中X方向分中使用步骤: 第一点直接在01号坐标系G54中X0测量(也可以G55,G56,G57,G58,G59看当前模态,只能这6个坐标系,如果是扩展坐标系将报警)
第二点在MDI模式运行M21完成分中, 自动清除00号总坐标系X方向数据
一般3轴有X,Y向两个方向分中就够了,有侧铣Z轴分中需求把Z向宏程序也加入机床
%
O9021(M21_X_1/2__G54-G59)
IF[#4014 EQ 54]THEN #1=5221
IF[#4014 EQ 54]THEN GOTO21
IF[#4014 EQ 55]THEN #1=5241
IF[#4014 EQ 55]THEN GOTO21
IF[#4014 EQ 56]THEN #1=5261
IF[#4014 EQ 56]THEN GOTO21
IF[#4014 EQ 57]THEN #1=5281
IF[#4014 EQ 57]THEN GOTO21
IF[#4014 EQ 58]THEN #1=5301
IF[#4014 EQ 58]THEN GOTO21
IF[#4014 EQ 59]THEN #1=5321
IF[#4014 EQ 59]THEN GOTO21
#3000=1 (Not selected G54-G59)
N21
#5201=0
#[#1]=[#[#1]+#5021]/2
M99
%
X轴自动分中(1/2)
No.6081设为21 相当于M21等于G65 P9021
自动清除00号坐标系X数值
#4014为坐标系G54-G59模态信息
%
O9022(M22_Y_1/2__G54-G59)
IF[#4014 EQ 54]THEN #1=5222
IF[#4014 EQ 54]THEN GOTO22
IF[#4014 EQ 55]THEN #1=5242
IF[#4014 EQ 55]THEN GOTO22
IF[#4014 EQ 56]THEN #1=5262
IF[#4014 EQ 56]THEN GOTO22
IF[#4014 EQ 57]THEN #1=5282
IF[#4014 EQ 57]THEN GOTO22
IF[#4014 EQ 58]THEN #1=5302
IF[#4014 EQ 58]THEN GOTO22
IF[#4014 EQ 59]THEN #1=5322
IF[#4014 EQ 59]THEN GOTO22
#3000=1 (Not selected G54-G59)
N22
#5202=0
#[#1]=[#[#1]+#5022]/2
M99
%
Y轴自动分中(1/2)
No.6082设为22 相当于M22等于G65 P9022
自动清除00号坐标系Y数值
#4014为坐标系G54-G59模态信息
%
O9023(M23_Z_1/2__G54-G59)
IF[#4014 EQ 54]THEN #1=5223
IF[#4014 EQ 54]THEN GOTO23
IF[#4014 EQ 55]THEN #1=5243
IF[#4014 EQ 55]THEN GOTO23
IF[#4014 EQ 56]THEN #1=5263
IF[#4014 EQ 56]THEN GOTO23
IF[#4014 EQ 57]THEN #1=5283
IF[#4014 EQ 57]THEN GOTO23
IF[#4014 EQ 58]THEN #1=5303
IF[#4014 EQ 58]THEN GOTO23
IF[#4014 EQ 59]THEN #1=5323
IF[#4014 EQ 59]THEN GOTO23
#3000=1 (Not selected G54-G59)
N23
#5203=0
#[#1]=[#[#1]+#5023]/2
M99
%
Z轴自动分中(1/2)
No.6083设为23 相当于M23等于G65 P9023
自动清除00号坐标系Z数值
#4014为坐标系G54-G59模态信息
若坐标系模态信息不在G54-G59中将报警
3202号参数#0(NE8)参数设为0,可以对8000-8999以上的程序允许编辑
3202号参数#4(NE9)参数设为0,可以对9000-9999以上的程序允许编辑
感谢楼主的无私奉献!支持支持 你这Z轴偏置清0不太好吧,一般厂都要设-10的刀棒来对刀的。 扩展坐标系宏变量:
#7001变量为G54.1 P01中X轴
#7002变量为G54.1 P01中Y轴
#7003变量为G54.1 P01中Z轴
#7021变量为G54.1 P02中X轴
……依次类推
banmao* 发表于 2022-7-31 22:20
你这Z轴偏置清0不太好吧,一般厂都要设-10的刀棒来对刀的。
Z轴分中是角度铣头加工侧面才用的上的,只有Z向分中才会清除00号总坐标中的Z. 实在不想清除删掉#5203=0这一行就可以了 qq758917784 发表于 2022-7-31 23:08
扩展坐标系宏变量:
#7001变量为G54.1 P01中X轴
#7002变量为G54.1 P01中Y轴
我还真没有注意过扩展坐标系宏变量, 这个也可以加进去. 不过我自己从来没有遇到过需要用上扩展坐标系的时后,所以不想搞那么复杂,尽量简化吧 qq758917784 发表于 2022-7-31 23:08
扩展坐标系宏变量:
#7001变量为G54.1 P01中X轴
#7002变量为G54.1 P01中Y轴
所用扩展坐标系#4014模态信息内容都为54.1 ,没有找到对应的模态变量区分是哪个扩展坐标系 学习,学习 本帖最后由 l铁匠l 于 2022-8-9 07:17 编辑
扩展坐标P的变量是#4130,除非没有扩展坐标的型号。
没必要用这么多IF,如果加上扩展坐标的话你的程序那不得吃好多内存,老的FANUC那几百k的容量哪招得住,你没发现相领的两个坐标之间的变量刚好相差20吗?
G54 X轴 #5221
G55 X轴 #5241
你可以考虑下这样编,这样所有坐标变量都可以使用了:
OXXXX
.
.
.
IF[#4014EQ54.1]GOTO10(#4014为54.1时使用的是附加坐标)
#*20]=分中后X轴的机床坐标
GOTO999
N10(附加坐标)
#*20]=分中后X轴的机床坐标
N999
M99
或者像你那样先读取了当前坐标的系统变量:
OXXXX
IF[#4014EQ54.1]GOTO10(#4014为54.1时使用的是附加坐标。)
#1=#*20]
GOTO20
N10(附加坐标)
#1=#*20]
N20
.
.
.
M99
通过系统变量识别坐标这种方式做的程序有个缺点,我还没找到方法解决。如果操作上的失误忘记了指定分中坐标。机床上一次运行的程序的坐标是一直都在变量里面的,如果这个坐标还须要使用的情况下,在没有重新指定分中要用到的坐标时会把这个坐标当作分中的坐标直接覆盖。这是程序的缺点,操机的必须要谨慎使用。
我几年前编写过类似分中程序,虽然不完美,有几个程序段起不了什么作用,上传时还有些错的,这些在我实机测试时已经改过了。
http://www.ugsnx.com/forum.php?m ... 97801&extra=&page=1
谢谢分享,不错不错
页:
[1]
2