技术论坛

 机械手刀库调试小结;

返回主题列表
作者 主题
隐身人
至圣

经验值: 38462
发帖数: 10306
精华帖: 72
楼主    2019-03-06 08:02:10
主题:机械手刀库调试小结; 精华帖 



 最近升级一台德国老设备,链条式刀库,小谈一下:

随机找刀、机械手换刀控制

基本原理:

1. Txx代码激活刀库控制固定循环-MGZ。MGZ根据编程刀具号计算出该刀具所在的刀套位置,以及就近找刀的方向。位置和方向通过辅助功能H1(带符号的符点数)送到PLC。由PLC程序控制刀库按就近方向转动到编程刀具所在的位置,等待换刀。

2. M06启动换刀固定循环-TOOL。TOOL控制各坐标加入换刀位置,并启动机械手换刀动作。换刀完成后,激活刀具参数。

3. 边界条件:在程序参测试(V33000001.7=1)生效时,刀库和机械化手无换刀动作且编程的刀具参数生效。目的是在仿真时,刀库和机械手无动作,但刀具参数生效,以便仿真时可以检测软限位。

编程约定:  Txx  ; 刀具号(控制刀库加入准备位置等待换刀)

M06 ; 激活机械手换刀动作并且激活刀具参数;


注:1.  Txx 和M06不能编在同一程序段内

2. 固定循环TOOL中,所有位移程序段应加G153(段有效)取消基本偏移。

3. 三个换刀过程:

装刀:主轴无刀,Txx / M06 直接安装编程刀具

换刀:主轴有刀,交换编程刀具和主轴刀具

还刀:主轴有刀,编程T0,将主轴刀具还回刀库

4. 主轴准停角度利用PLC符点参数 MD14514[0]: $MN_USER_DATA_FLOAT[0]

其换刀过程是靠宏程序来实现的,换刀程序如下:

%_N_MGZ_SPF

;$PATH=/_N_CST_DIR

PROC MGZ SAVE DISPLOF

;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

; 前提条件:

; 初始化后, 刀具号与刀套号相等: 刀套号1 安装刀具T1

; 并且主轴刀套上无刀.

; - - - - - - - - - - - - - - - - - - - - - - - - - 

; 参数说明:

; _TM[0]:   当前刀库刀套号

; _TM[1]:   编程刀具所在的刀套号

; _TM[3]:   主轴刀套上安装的刀具号

; _TM[5]:   1=程序测试标记

; _TM[6]:   程序测试时主轴上的刀具号

; _ZSFR[0]: 刀位差

; $C_T:     编程刀具号

; $PTOOLNO: 主轴刀套内的刀具号

; 刀具数据:

; $TC_DP1[刀具号 ,1]: 刀具类型

; $TC_DP3[刀具号 ,1]: 刀具几何参数-刀具长度1

; $TC_DP6[刀具号 ,1]: 刀具几何参数-刀具半径

; $TC_DP12[刀具号,1]: 刀具磨损- 长度1 方向

; $TC_DP15[刀具号,1]: 刀具磨损- 半径  方向

; $TC_DP24[刀具号,1]: 刀具尺寸0:正常 1: 过大

;                     在该子程序中表示空刀套

; $TC_DP25[刀具号,1]: 刀套号

; - - - - - - - - - - - - - - - - - - - - - - - - - 

; 程序结果:

; 通过辅助功能 H1 向 PLC发送编程刀具所在的刀套号以及

; 刀库的旋转方向 (方向通过 H1 的符号表示)

; 特殊情况:

; 在程序仿真和程序测试状态下无刀库和换刀动作. 为使程

; 序仿真时的刀具参数可以起作用, 本固定循环记录仿真前

; 主轴的有效刀具号, 在仿真结束时恢复主轴刀具, 然后再

; 进行换刀.

;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

_TM[10]=0                      ;跳转标志初始化

IF ((_TM[5]==0)AND($P_ISTEST==1)) GOTOF _SIMU1

IF ((_TM[5]==1)AND($P_ISTEST==1)) GOTOF _SIMU2

IF ((_TM[5]==1)AND($P_ISTEST==0)) GOTOF _E_SIM

_ZSFR[1]=$MN_USER_DATA_INT[0]  ;刀库最大刀位数

_ZSFR[2]=_ZSFR[1]/2            ;最大刀位数/2

IF $C_T==$P_TOOLNO GOTOF NOCHG1

IF $C_T>_ZSFR[1]   GOTOF NOCHG2;编程刀具> 最大刀具号

;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

_T_CHG:

IF $C_T<>0         GOTOF _T_N0

;T=0 时, 取出存储的空刀套号vvvvvvvvvvvvvvvvvvvvvvvv

_TM[1]=_TM[4]

GOTOF _T_POS

_T_N0:

MSG("编程刀具号为: T" <<$C_T)

_TM[1]=$TC_DP25[$C_T,1]

_T_POS:

;判断刀库旋转方向vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv

_ZSFR[0]=_TM[1]-_TM[0]           ;位置差

IF    _ZSFR[0]==0  GOTOF _T_STEP

IF (((_ZSFR[0]>0)AND(_ZSFR[0]<=_ZSFR[2]))OR((_ZSFR[0]<0)AND(_ZSFR[0]<-_ZSFR[2]))) GOTOF _MGZ_P

IF (((_ZSFR[0]>0)AND(_ZSFR[0]>=_ZSFR[2]))OR((_ZSFR[0]<0)AND(_ZSFR[0]>-_ZSFR[2]))) GOTOF _MGZ_N

_MGZ_P:

H1=_TM[1]

GOTOF _T_STEP

_MGZ_N:

H1=-_TM[1]

;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

_T_STEP:

;正常换刀时,T功能生效, 刀具参数在换刀后生效========

;R0=H1

T=$C_T

;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

GOTOF _END

_E_SIM:

;--------------------------------------------------

T=_TM[6]                       ;恢复主轴刀具号

M96                            ;主轴刀具参数生效

MSG("恢复主轴刀具号:"<<_TM[6])

G04 F5

_TM[5]=0                       ;清除程序测试标记

_TM[6]=0                       ;

_TM[10]=0                      ;

GOTOB _T_CHG

_SIMU1:

;仿真方式时,T功能生效, 刀具参数立即生效============

_TM[5]=1                         ;记录程序测试状态

_TM[6]=$P_TOOLNO                 ;记录主轴刀具号

_TM[10]=10                       ;无换刀动作

_SIMU2:

T=$C_T

M96

;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

GOTOF _END

NOCHG1:

_TM[10]=10                       ;无换刀动作

MSG("没有换刀: 编程刀具等于主轴刀具                  ")

G04 F2

GOTOF _END

NOCHG2:

_TM[10]=10                       ;无换刀动作

MSG("没有换刀: 编程刀号超过最大值. 循环启动继续或复位")

M00

_END:

M17



%_N_TOOL_SPF

;$PATH=/_N_CST_DIR

PROC TOOL SAVE DISPLOF

IF _TM[10]==10     GOTOF _END  ;没有找到刀具

;--------------------------------------------------

G500                           ;取消工件坐标系

D0                             ;取消刀补

; Z 轴返回固定点, 主轴准停, Mxx 启动机械手动作

M86 ;SPOS=$MN_USER_DATA_FLOAT[0] ;启动机械手换刀

;--------------------------------------------------

;

;

;

;--------------------------------------------------

IF $C_T==0         GOTOF _RE_T ;还刀

IF $P_TOOLNO==0    GOTOF _IN_T ;取刀

STOPRE

; 交换刀具 vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv

$TC_DP25[_TM[3],1]=_TM[1]      ;编程刀具所在刀套号

$TC_DP24[_TM[3],1]=0           ;清除主轴刀具标志

_TM[3]=$C_T                    ;主轴刀具套中为编程刀具

STOPRE

$TC_DP25[_TM[3],1]=_TM[4]      ;编程刀具所在刀套号

$TC_DP24[_TM[3],1]=1           ;标出在主轴上的刀具

_TM[0]=_TM[1]

MSG("换刀步骤3:  换刀完成")

G04 F1

GOTOF _T_ACT

;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

_IN_T:

; 装入刀具 vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv

_TM[3]=$C_T                    ;主轴刀具套中为编程刀具

_TM[0]=_TM[1]                  ;刷新当前刀套号

_TM[4]=_TM[1]                  ;记忆首次取刀的刀套号

$TC_DP24[_TM[3],1]=1           ;标出在主轴上的刀具

MSG("换刀步骤1:  装刀完成")

G04 F1

GOTOF _T_ACT

;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

_RE_T:

; 退还刀具 vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv

$TC_DP24[_TM[3],1]=0           ;清除空刀套的位置

_TM[0]=_TM[4]                  ;主轴刀具返回空刀套

_TM[3]=0                       ;主轴刀具套中刀具号为0

_TM[4]=0                       ;主轴刀具套中刀具号为0

MSG("换刀步骤2:  还刀完成")

G04 F1

_T_ACT: 

M96                            ;激活刀具参数

D1                             ;主轴恢复速度控制方式

_TM[0]=_TM[1]                  ;刷新当前刀套号

STOPRE

_END:

M17


%_N_INI_SPF

;$PATH=/_N_CST_DIR

PROC INI SAVE DISPLOF

_TM[11]=$MN_USER_DATA_INT[0]   ;刀库最大刀位数

_TM[0]=1                       ;当前刀套号

_TM[1]=0                       ;编程刀具所在刀套号

_TM[3]=0                       ;主轴刀套中刀具号

_TM[4]=0                       ;首次换刀的刀套号

_TM[5]=0                       ;非程序测试状态

_TM[6]=0                       ;程序测试时主轴刀具号

_TM[10]=1                      ;计数器, 换刀步骤

_INI:

$TC_DP25[_TM[10],1]=_TM[10]    ;初始化刀套号

$TC_DP24[_TM[10],1]=0          ;标出空刀套的位置

_TM[10]=_TM[10]+1 

_TM[11]=_TM[11]-1

IF _TM[11] > 0 GOTOB _INI

_TM[10]=0

M99                            ;初始化PLC刀库计数器

T0

M96                            ;激活刀具参数

M17

里面有注释,

刀库的调整可以参考这些进行,资料来源西门子调试笔记以及相关资料加实践整理;

西门子的多年使用者http://yinshenren.ys168.com/、
xue_ang
至圣

经验值: 16989
发帖数: 5834
精华帖: 0
1楼    2019-03-06 09:36:00
主题:回复:机械手刀库调试小结;

 

刀库不好调整。

菲戈
至圣

经验值: 28599
发帖数: 5906
精华帖: 61
2楼    2019-03-06 09:44:11
主题:回复:机械手刀库调试小结;


收藏了,哈哈一直没搞过车铣。

欢迎交流,QQ:2301013064 邮箱:feige6@139.com
HUANGZE75
至圣

经验值: 63227
发帖数: 12657
精华帖: 121
3楼    2019-03-06 15:04:11
主题:回复:机械手刀库调试小结;


谢谢分享,点赞啊。

阿甘致远
游侠

经验值: 347
发帖数: 17
精华帖: 0
4楼    2019-03-06 17:33:59
主题:回复:机械手刀库调试小结;

mark,学习学习

tc350
游士

经验值: 279
发帖数: 61
精华帖: 0
5楼    2019-03-06 20:57:33
主题:回复:机械手刀库调试小结;


刀库故障率比较高

千万个为什么
至圣

经验值: 10572
发帖数: 848
精华帖: 9
6楼    2019-03-07 08:04:21
主题:回复:机械手刀库调试小结;


干货,感谢分享

学如逆水行舟,不进则退! wwhoho@163.com
华山松柏
奇侠

经验值: 5622
发帖数: 541
精华帖: 3
7楼    2019-03-07 10:41:34
主题:回复:机械手刀库调试小结;


学习学习,谢谢楼主分享。

学无止境
Qin.
侠圣

经验值: 3892
发帖数: 236
精华帖: 1
8楼    2019-03-08 09:00:48
主题:回复:机械手刀库调试小结;

刀库一直是咱们的重点难点,一般的时候都不敢动,弄不明白怎么换的刀和那么多刀如何管理的,而且这东西危险,没弄好就直接撞主轴上了,值得好好学习~

Stay Hungry ,Stay Foolish .
不断攀登
至圣

经验值: 12543
发帖数: 1843
精华帖: 0
9楼    2019-03-08 18:53:35
主题:回复:机械手刀库调试小结;


感谢分享。。

邮箱 yongquancun@126.com
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。