机械手刀库的编程主要涉及PLC控制和刀库数据块的初始化。以下是一个基于三菱M70数控系统的编程示例,使用FC100功能块设置DB4参数,并初始化DB71和DB72数据块。同时,使用FB95功能块处理装刀、卸刀和刀库定位的信号。
1. 刀库数据块初始化
使用FC100功能块设置DB4参数,初始化DB71和DB72数据块。具体程序参考源文件中的FC100功能块。
```pascal
CALL FC100
```
2. 刀库接口信号PLC处理
装刀、卸刀、刀库定位
使用FB95功能块处理装刀、卸刀和刀库定位的信号。
```pascal
CALL FB95
DB140 enable := //使能信号
ChanNo := //通道号
SpLocNo := //主轴的Loc号
InterfaceNo := 1 //装载点的号
LoadingAck := //HMI刀具装载应答
UnloadAck := //HMI刀具卸载应答
RelocateAck := //HMI刀具移位应答
PositionAck := //HMI刀库移位应答
ManualLocPos := //手动刀库移位脉冲
Reset := //中断应答
SettingMagNo := //手动刷新刀库号目标位置(换刀点)
SettingLocNo := //手动刷新刀位号目标位置(换刀点)
LoadingReq := //HMI装载请求
UnloadingReq := //HMI卸载请求
RelocateReq := //HMI刀具移位请求
PositionReq := //HMI刀库移位请求
TargetLoadingMagNo := //目标刀库号
```
3. 对刀和换刀程序
对刀点定位
使用G30和G90指令进行对刀点定位。
```pascal
G30 G91 Z0.
G90 G53 G0 X24 Y25
```
判定刀长
在换刀过程中,判定刀具长度是否为0,以确保正确换刀。
```pascal
WHILE[1LE18]DO1
IF[[10000+1]NE0.]GOTO1
T1 M6
2=1+1
WHILE[2LT18]DO2
IF[[10000+2]NE0]GOTO2
T2
GOTO3
N22=2+1
END2
N3 M00
[10000+1]=5023
N11=1+1
END1
G30 G91 Z0.
M99
```
4. 刀库计数器和位置开关
刀库计数器
制作一个环形计数器,用刀库计数器信号驱动刀盘运动指令。
```pascal
环形计数器(0 ~ n - 1, 其中 n 为刀库中的刀具数),用刀库计数器信号驱动 ( 刀库计数器信号也驱动刀盘运动指令)。
这样环形计数器内的数值就表示了刀套号的实际运动位置 ( 相对于 R10700 起始的固定指标)。
必须在 PLC 程序中预先用开关信号做刀库初始化,设置当前位置刀号和主轴刀号,如图 3 所示。
```
位置开关
使用位置开关保护刀库的安全工作,通过参数在Z轴上设定位置开关,位置开关的位置区域就是Z轴的换刀点。
```pascal
可以使用 ACT 专用指令中的 1 号搜索指令,先搜索出目标刀号在刀库环形坐标系中的位置,再根据其位置判断正反转方向。
起动该指令后,其搜索
```
5. 调试和检查
机械调试
测量刀库与工作台的平行度,调整刀盘底面和机械手臂的公差值。
电气调试
进入计数器设定画面和刀号设定画面,进行相应的设置。