!-------------------------------------------------
! 程序名:CAM_COMP_MAIN
! 功能:视觉补偿抓取主程序
! 作者:根据需求编写
! 日期:2025-12-08
!-------------------------------------------------
! 1. 初始化与准备
R100 = 0 ! 清除补偿成功标志
UFRAME_NUM = 1 ! 使用工件用户坐标系 (根据实际情况设置)
UTOOL_NUM = 1 ! 使用正确的工具坐标系 (根据实际情况设置)
! 2. 移动至拍照等待位置 (安全点)
J P1 100% FINE
! 3. 触发视觉系统拍照 (通过DO信号)
DO1 = ON ! 发送拍照触发信号给相机
WAIT DI1 = ON ! 等待相机返回"拍照完成"信号 (DI1)
DO1 = OFF ! 复位触发信号
! 4. 等待并接收视觉补偿数据 (假设通过GI信号组传入)
! 这里假设视觉系统将处理好的X, Y, Z, R偏移量通过GI11-GI14发送
WAIT GI11 > 0 OR GI11 < 0 TIMEOUT LBLTIMEOUT_ERR ! 等待X方向有数据
! 5. 数据转换与存储到PR寄存器
! 5.1 将GI值(整数)转换为浮点数的毫米/度单位,存入R寄存器
R201 = GI11 * 0.01 ! X补偿,假设比例因子是0.01mm/计数
R202 = GI12 * 0.01 ! Y补偿
R203 = GI13 * 0.01 ! Z补偿
R204 = GI14 * 0.1 ! Rz旋转补偿,假设比例因子是0.1度/计数
! 5.2 将补偿值写入位置寄存器PR100(作为偏移量使用)
PR100, 1 = R201 ! X
PR100, 2 = R202 ! Y
PR100, 3 = R203 ! Z
PR100, 4 = 0 ! W (通常不用)
PR100, 5 = 0 ! P (通常不用)
PR100, 6 = R204 ! R
R100 = 1 ! 置位补偿数据就绪标志
! 6. 执行视觉补偿抓取
! 6.1 移动至抓取点上方 (安全点)
L P2 800mm/sec FINE
! 6.2 使用Offset指令,将PR100中的补偿值附加到基准抓取点P3上
L P3 250mm/sec FINE Offset, PR100
! 6.3 执行抓取动作 (闭合手爪)
DO2 = ON
WAIT 0.5(sec)
! 6.4 抬升至安全点
L P2 500mm/sec FINE
! 6.5 后续放置等逻辑...
! ...

! 7. 程序正常结束
R100 = 0
END
!-------------------------------------------------
! 错误处理标签
!-------------------------------------------------
LBLTIMEOUT_ERR
! 视觉数据接收超时处理
UALM1 = ON ! 触发用户报警
R100 = 0
HALT
注意发那科机器人组输出最大16位,也就是最大数是65535,相机坐标给PLC需要除以100