近期很多朋友都在问kuka机器人的外部自动怎么用,PLC如何才能启动机器人,所以我再次关于外部启动啰嗦一遍,会的朋友别嫌烦。
KUKA有一个固定的主程序--CELL
要想使用这个程序就必须遵守kuka的外部制动启动条件,和时序。
那今天就来说说这个外部启动。
什么是外部启动
EXT:在机器人的4个运行模式中EXT就是外部自动,当机器人打到EXT模式的时候,通过PLC跟机器人通讯,进行信号交互并且启动机器人执行命令。这被称作外部启动。
信号配置
信号配置这里我们必须知道信号的概念,下面一一列举。
输入端:
名称 | 输入值 | 解释 |
---|---|---|
PGNO_TYPE | 1 :二进制2 :BCD马3 :N选1 | 程序号类型,3种方式可选 |
REFLECT_PROG_NR | 0 :不镜像1 :镜像 | 是否镜像程序号反馈给PlC |
PGNO_LENGTH | 1 to 16 | 此变量确定了上级控制系统传送的程序编号的位宽 |
PGNO_FBIT | 输入端编号 | PGNO_FBIT = 5 外部程序编号从输入端 $IN[5] 开始 |
PGNO_PARITY | -101 | 奇偶校验,负值:奇。0:不校验正值:偶。 |
PGNO_VALID | 输入端编号 | 程序号有效 |
$EXT_START | 输入端编号 | 外部启动 |
$MOVE_ENABLE | 输入端编号 | 上级控制器对机器人允许运行信号 |
$CONF_MESS | 输入端编号 | 上级控制器对机器人故障信息确认 |
$DRIVES_OFF | 输入端编号 | 驱动装置关闭如果在此输入端上施加了持续至少 20 毫秒的低脉冲,则上级控制系统会关断机器人驱动装置。 |
---|---|---|
$DRIVES_ON | 输入端编号 | 驱动装置接通如果在此输入端上施加了持续至少 20 毫秒的高脉冲,则上级控制系统会接通机器人驱动装置。 |
$I_O_ACT | 输入端编号 | 激活接口如果该输入端为 TRUE,则接口外部自动运行已激活。默认设置:$IN[1025] |
输出端:
$RC_RDY1 | 输出端编号 | 程序启动准备就绪。 |
---|---|---|
$ALARM_STOP | 输出端编号 | 紧急状态=1 |
$USER_SAF | 输出端编号 | 安全门=1 |
$PERI_RDY | 输出端编号 | 驱动装置已准备就绪 |
$ROB_CAL | 输出端编号 | 机器人轴的零点=1 |
$I_O_ACTCONF | 输出端编号 | |
$STOPMESS | 输出端编号 | 机器人停止信息 |
PGNO_FBIT_REFL | 输出端编号 | 程序编号镜像第一位 |
$ALARM_STOP_INTERN | 输出端编号 | 内部紧急关断=1 |
$PRO_ACT | 输出端编号 | 程序激活 |
PGNO_REQ | 输出端编号 | 程序号请求 |
---|---|---|
APPL_RUN | 输出端编号 | 用户程序正在运行 |
$PRO_MOVE | 输出端编号 | |
$IN_HOME | 输出端编号 | 机器人在home位置 |
$ON_PATH | 输出端编号 | 机器人在轨迹上 |
$NEAR_POSRET | 输出端编号 | |
$ROB_STOPPED | 输出端编号 | |
$T1, $T2, $AUT,$EXT | 输出端编号 | 运行模式 |
信号交互
PLC如果想启动机器人,是需要和机器人进行一些信号交互的。
就好像是A问B,你准备好了吗,B回答好了
那么机器人和PlC也是一样的。
下图是外部启动的时序:
启动流程如下:
- KRC选定CELL程序
- PLC发给机器人MOVE_ENABLE信号为真,允许机器人运行,并且机器人在手动模式下回到HOME点,并且发送IN_HOME给PlC。
- KRC关闭安全门,解除急停,并且发送USER_SAF,ALARM_STOP
- KRC将机器人模式转到EXT
- PLC发送DRIVES_OFF为真,DRIVES_ON为真20ms,等待
- KRC机器人如果有$STOPMESS为真。
- PlC发送CONF_MESS,直到STOPMESS为假
- PlC发送EXT_START,等待PRO_ACT
- KRC发送PGNO_REQ,PlC传输程序号给机器人。 奇偶校验(PGNO_PARITY不等于0时) 程序号镜像(REFLECT_PROG_NR=1时),则机器人反馈程序号给PlC进行核对。
- KRC等待PGNO_VALID为真后,机器人执行用户程序。发送APPL_RUN为真,并且复位PGNO_REQ和停止程序号镜像
此时机器人已经成功启动
当机器人用户程序执行完成后再次回到cell时会再次进行程序号请求
当然外部启动可以有很多方式,我这里写的只是其中一种。并且每个公司有每个公司的启动标准,所以PlC一般都会写成启动模块,以方便后期的程序编写
怎么样现在你懂了外部启动了吗?