凯恩帝数控公众号曾对于如何用宏程序实现雕刻机刀库换刀做过介绍,文章是通过宏程序+系统PLC共同实现刀库换刀,感兴趣的朋友可以点击下方链接阅读学习:
看完凯恩帝数控公众号里面的上述文章后,文章结尾有个疑问就是是否可以用宏来实现刀库换刀。针对提出的问题我们要介绍是更方便的一种实现刀库换刀方便,方便原因是可以不借助PLC仅用宏程序直接实现刀库换刀,对于不会编写梯图人来说很是方便,简介如下:
换刀主程序示例:
% |
O0001 |
T1 M6 |
T2M6 |
T3 M6 |
T4 M6 |
T5 M6 |
T6 M6 |
T7 M6 |
% |
变量定义示例:
宏变量号 | 变量注释 | 宏变量号 | 变量注释 |
#900 | 总刀数 | #912 | 未定义 |
#901 | 主轴有无刀 | #913 | 未定义 |
#902 | 换刀标志 | #914 | 未定义 |
#903 | Z向抬高值 | #915 | 1号刀X机床坐标 |
#904 | XY速度 | #916 | 1号刀Y机床坐标 |
#905 | Z速度 | #917 | 1号刀Z机床坐标 |
#906 | Y轴出刀和还刀速度 | …… | 2-21号刀X/Y/Z机床坐标 |
#907 | 刀库推出功能 | #978 | 22号刀X机床坐标 |
#908 | 换刀预停止位置 | #979 | 22号刀Y机床坐标 |
#909 | 换刀完成后的刀号 | #980 | 22号刀Z机床坐标 |
#910 | 换刀前Z向安全位置设定 | ||
#911 | 暂停时间设定 |
-
-
刀调用子程序O9006:
-
程序 | 注解 |
% | |
O9006 | |
#100=1 | 开始判断#900及以后变量是否赋值 为空报警 |
N2 IF[[ISNULL[#[899+#100]]]EQ1]GOTO1 | |
#100=#100+1 | |
IF[#100LE[#900*3+15]]GOTO2 | 结束判断#900及以后变量是否赋值判断 |
IF[[#4119LT1]OR[#4119GT#900]]GOTO3 | 指令刀号不合理 跳转N3 |
IF[[#4119EQ#909]&&[#902EQ1]]GOTO260 | 首次调试将位置页面显示刀号输入至#909 指令刀号等于目标刀号跳转 |
G90 G49 G15 | |
M5 | |
M19 | |
#500=#4119 | #500读取当前刀号 |
IF[#901EQ0]GOTO200 | 主轴无刀,跳转 |
#902=0 | 清空换刀标志 |
G90 G53 G1 Z#913 F#904 | 换刀前回到安全Z机床坐标位置#913 默认0 位置依据实际可自定义 |
N61 IF[#907EQ1] GOTO75 | 刀库有推出功能,跳转至75 |
IF[[#901EQ0]&&[#902EQ0]]GOTO200 | |
N70 G53 G01 X# [915+3*[#909-1]] Y[#[916+3*[#909-1]]+#908] F#904 | 计算当前刀还刀XY坐标 |
N71 IF[#907==0] GOTO 80 | 如果刀库无推出功能,跳转至80 |
N75 G53 G01 X# [915+3*[#909-1]] F#904 | 有推出功能时,X定位 |
N80 G53 G01 Z# [917+3*[#909-1]] F#905 | 执行Z轴还刀定位 |
N81 IF[#907==1] GOTO 86 | 刀库有推出功能,跳转至86 |
N85 G53 G01 Y# [916+3*[#909-1]] F#906 | 刀库无推出功能,Y轴移动到还刀位置 |
N86 IF[#907EQ0] GOTO 100 | 刀库无推出功能,跳转至100 |
N90 #1132=4 | 梯图中将F14.2作为输出直接触发刀库推出Y |
G4 X#911 | #911 暂停时间设定 单位秒 默认0.5 |
N100 #1132=1 | 松刀 梯图中只需将F14.0作为条件直接触发松刀输出Y即可 |
G4 X#911 ; | |
N105 #901=0 | 主轴无刀置位 |
N106 G91 G01 Z#903 | 主轴抬起 |
GOTO4 ; | |
N200 #902=0 ; | |
#1132=1 | 松刀 梯图中只需将F14.0作为条件直接触发松刀输出Y即可 为主轴抓刀做准备 |
N4 IF[#907==0] GOTO 2000 | 刀库无推出功能,跳转至2000 |
N2001 G90 G01 G53 X# [915+3*[#4119-1]] F#904 | X轴移动到取刀位置 |
N2002 IF[#907==1] GOTO 201 | 刀库有推出功能,跳转至201 |
N2000 G90 G01 G53 X# [915+3*[#4119-1]] | |
G90 G01 G53Y# [916+3*[#4119-1]] F#904 | XY轴移动到取刀位置 |
N201 G53 G01 Z# [917+3*[#4119-1]] F#905 | 主轴下落扣刀 |
N210 #1132=2 | 拉刀 梯图中将F14.1作为条件直接触发拉刀输出Y |
G4 X#911 | |
N215 IF[#907==0] GOTO 230 | 刀库无推出功能,跳转至230 |
N220 #1132=8 | 梯图中将F14.2作为输出直接触发刀库拉回Y |
N225 IF[#907==1] GOTO 205 | 刀库有推出功能,跳转至205 |
N230 G53 Y[#[916+3*[#4119-1]]+#908] F#906 | Y轴移动,将刀具取出 |
G4 X#911 ; | |
N205 #909=#4119 | #909目标刀号,换刀完成后更新 |
#901=1 | 主轴有刀置位 |
#902=1 | 换刀完成置位 |
G90 G53 G1 Z#913 F#904 | 换刀前回到安全Z机床坐标位置#913 默认0 位置依据实际可自定义 |
N260 M99 ; | 换刀结束 |
N1 ERR[1,”#900及之后变量未赋值,请按变量下方汉字提示正确赋值”] ; | 触发报警 |
N3 ERR[3,”指令刀具号不合理”] ; | 触发报警 |
N4 ERR[4,”#901赋值错误,首次调试赋值为0,有刀时赋值为1″] ; | 触发报警 |
% |
当将程序输入系统,正式换刀前还需要对梯图做简单处理,处理就是切断当刀库没有用时出现的T代码错误报警,以及短接换刀完成标志使得G26.3换刀时候一直为1
以上程序均可通过网盘加载直接输入系统就可使用,长按下方链接地址,选择“选择复制”,再点击“打开”即可下载:
https://pan.baidu.com/s/1hUP6MfDbXj0CalKbnPva6A
问答社区 发起问答 报警查询 技术文章 维修服务 资料下载 加交流群 申请 VIP
本文转载来自【公众号:knd1993】,仅供大家学习交流,如侵权请联系站长删文。