核心区分:旋转动力是夹爪自带(气动旋转缸 / 电动旋转夹爪),还是用机器人自身法兰 Rz 轴旋转。IO 只做开关量握手,不能直接输出角度数值;角度定位由夹爪本体或机器人运动指令完成。
方案一:末端旋转夹爪
夹爪本体:气动旋转气缸(固定档位:0°/90°/180°)或者电动伺服旋转夹爪(多档位 IO 编码选择角度)机器人只输出数字 DO 给夹爪电磁阀 / 夹爪控制器,DI 接收夹爪到位信号。
1)气动旋转夹爪
硬件:旋转气缸 + 2 位 / 3 位电磁阀,2 个 DO 控制正转 / 反转;2 个 DI 采集 0° 到位、180° 到位磁性开关
KRL 程序逻辑:
; DO1=旋转0度,DO2=旋转180度
OUT "Rot_0"=TRUE
WAIT FOR IN "Rot_0_OK" ;等待DI到位信号
OUT "Rot_0"=FALSE
; 切换180度
OUT "Rot_180"=TRUE
WAIT FOR IN "Rot_180_OK"
OUT "Rot_180"=FALSE
优点:接线简单、调试快;缺点:只能固定几个角度,不能任意角度。
2)电动旋转夹爪(IO 编码选多档角度,比如 0°/45°/90°/135°/180°)
夹爪驱动器支持二进制 IO 编码:2 个 DO 可以选 4 档角度,3 个 DO 选 8 档。
机器人 DO 输出编码信号(二进制),告诉夹爪目标角度;
DO 触发启动旋转;DI 反馈 “旋转到位”;
注意:IO 只是下发档位指令,角度闭环是夹爪自带伺服控制器完成,不是库卡机器人控制角度。
方案二:机器人法兰 Rz 轴旋转(不用额外旋转气缸,机器人本体旋转,任意角度)
夹爪只负责夹紧松开,旋转靠机器人 TCP 姿态 Rz 改变,IO 只做触发握手信号。
这个方案很多人混淆:不是 IO 直接控制角度,IO 是触发信号,角度写在 KRL 运动指令里。
示例 KRL:
WAIT FOR IN "Start_Rot" ;外部PLC或机器人内部IO触发
; PTP运动,工具Rz旋转90度
PTP {A1 0,A2 -90,A3 90,A4 0,A5 90,A6 0} ;关节方式
; 或者笛卡尔姿态,RZ=90度
LIN {X 100,Y 0,Z 200,A 0,B 0,C 90} C_VEL 0.2
OUT "Rot_Finish"=TRUE ;旋转完成输出到位IO
WAIT SEC 0.1
OUT "Rot_Finish"=FALSE
优点:任意角度,精度高;缺点:工件随法兰一起旋转,占用机器人姿态,有干涉风险。
方案三:机器人附加轴
如果旋转单元接入 KRC 作为附加轴,可在 KRL 里写AXIS RotAxis=90;也可以用 IO 握手触发附加轴运动,需要附加轴授权包。
IO 配置步骤
硬件接线:机器人控制柜 IO(KLI/Profinet EtherCAT 远程 IO 模块)接夹爪电磁阀 / 夹爪控制器 DI/DO;
WorkVisual 配置 IO 映射,定义信号名
Rot_0,Rot_180,Rot_0_OK;示教器测试 IO:菜单→输入输出,手动强制 DO,看 DI 反馈是否正常;
KRL 编程:IO 输出 + WAIT 等待到位信号,增加超时判断防卡死。
选型快速判断
只需要 0/90/180 固定角度,空间紧凑 → 气动旋转夹爪 + IO 开关量
需要多档任意角度、高精度 → 电动伺服旋转夹爪(IO 编码)
不需要单独旋转机构,工件随法兰转 → 机器人 Rz 姿态旋转,IO 做触发
注意
普通数字 IO 只能做开关 / 编码档位,不能直接下发 0~180 模拟量角度值;如果要连续角度,要么夹爪走 Profinet 通讯,要么机器人本体姿态运动。
一定要加WAIT FOR DI + 超时计时,防止夹爪卡滞,机器人程序一直等待。
旋转夹爪的工具坐标 TOOL 必须标定,否则旋转后 TCP 偏移。


