问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

KUKA外部自动配置(上)

创作时间:
作者:
@小白创作中心

KUKA外部自动配置(上)

引用
CSDN
1.
https://blog.csdn.net/weixin_56773716/article/details/143079934

本文详细介绍了KUKA机器人外部自动配置的相关内容,包括基本流程、示教器操作、倍福PC操作以及具体的配置步骤。文章内容详尽,涵盖了从启动到监控的完整过程,并提供了具体的代码示例和信号配置说明。对于从事机器人自动化控制的技术人员来说,具有较高的参考价值。

1. 基本流程

1.1 示教器操作(KUKA SmartPAD)

示教器用于切换模式、配置机械臂的状态和确认机械臂的操作权限。对于外部自动模式,示教器需要进行以下步骤操作:

  1. 启动和登录
  • 打开KUKA SmartPAD并登录管理员账户。
  • 确认机械臂已经启动并且处于待机状态。
  1. 切换到外部自动模式
  • 按下示教器上的“模式切换”按钮,选择外部自动模式(EXT模式)。此时,系统会将控制权移交给外部的控制器(如倍福PC)。
  1. 配置安全设置
  • 确保所有的安全设置和急停按钮功能正常,外部控制信号已配置好。这些安全设置可以通过示教器菜单中的安全设置选项进行检查。
  1. 启用驱动器
  • 按下启用驱动器按钮(通常是一个绿色的按钮),激活机械臂的运动驱动系统。此操作仅在外部自动模式选择后进行。
  1. 监控系统状态
  • 在外部自动模式下,示教器将主要用于监控机械臂的运行状态,包括报警、错误或状态信息。尽管操作由外部PC控制,但示教器仍可用于查看关节角度、状态日志等。

1.2 倍福PC操作(基于TwinCAT等控制软件)

倍福PC主要用于控制机械臂的外部信号、程序执行和逻辑控制。具体操作如下:

  1. 启动倍福PC和TwinCAT系统
  • 打开倍福PC并启动TwinCAT等控制软件。确保系统处于运行模式(RUN),并与KUKA机械臂的控制器建立通信。
  1. 建立通信
  • 确保倍福PC与KUKA控制器通过工业以太网(EtherCAT)或其他通讯协议连接。通信协议应该已经预先设置好,包括IP地址和端口号。
  1. 加载并配置PLC程序
  • 在TwinCAT中,加载控制KUKA机械臂的PLC程序。这些程序包含了运动逻辑和控制指令。
  • 配置好外部I/O信号,如启动信号、急停信号、机械臂准备好状态信号等,确保倍福PC能够接收来自KUKA控制器的反馈信号。
  1. 启动外部自动程序
  • 在TwinCAT的PLC界面中,启动已经编写的控制程序。这些程序应包含对机械臂的运动指令、路径规划以及传感器反馈的处理。
  • 通过倍福PC,向KUKA机械臂发送“启动”信号(EXT_START),此信号由倍福PC控制的PLC程序触发,以启动外部自动模式下的机械臂操作。
  1. 实时监控与调试
  • 使用倍福PC的调试和监控功能,实时查看机械臂的运动状态、传感器反馈和PLC逻辑执行情况。
  • 监控运行过程中的错误或异常信息,并根据需要进行程序调整或逻辑修改。

2. 示教器操作具体配置

2.1 配置外部自动输入端

通过示教器进入外部自动输入输出的配置页面:

输入端需要配置以下十个信号:

  • PGNO_TYPE- 程序号类型:
  • 此变量确定了以何种格式来读取上级控制系统传送的程序编号。
  • 值 说明 实例
  • 1 以二进制数值读取。上级控制系统以二进制数值形式传递程序号。 00100110程序号是38
  • 2 以BCD 值读取。上级控制系统以BCD 值的形式传递程序号。 00100110程序号是26
  • 3 以N 选 1读取。上级控制系统以N 选 1的形式传递程序号。 00000100程序号是3

本系列文章PGNO_TYPE信号一般取值为1,即以二进制的编码形式传递程序号。

  • PGNO_LENGTH- 程序号长度:

  • 此变量确定了上级控制系统传送的程序编号的位宽。 值域: 1 … 16。

  • PGNO_PARITY- 程序号的奇偶位:

  • 上级控制系统传递奇偶位的输入端,没有特殊要求一般不设置校验。

  • 输入端 函数

  • 负值 奇校验

  • 0 无分析

  • 正值 偶校验

  • PGNO_VALID- 程序号有效:

  • 上级控制系统传送读取程序号指令的输入端,可以理解为传输程序号的时使能信号的形式。

  • 输入端 函数

  • 负值 在信号的脉冲下降沿应用编号。

  • 0 在线路EXT_START处随着信号的脉冲上升沿应用编号

  • 正值 在信号的脉冲上升沿应用编号。

  • $EXT_START- 外部启动:

  • 设定了该输入端后,输入/输出接口激活时将启动或继续一个程序 (一般为 CELL.SRC),该信号是个脉冲上升沿。

  • $MOVE_ENABLE- 运行开通:

  • 该信号确定了上级控制系统对机器人驱动器使能控制。

  • 信号 功能

  • TRUE 可手动运行和执行程序

  • FALSE 停住所有驱动装置并锁住所有激活的指令

  • $CONF_MESS- 确认信息提示:

  • 通过给该信号使能,当故障原因排除后,上级控制系统将确认机器人的故障信息。

  • $DRIVES_ON- 驱动装置接通:

  • 通过该信号给机器人伺服驱动装置上电,该信号触发至少持续20ms的高脉冲则上级控制系统会接通机器人驱动装置。

  • $DRIVES_OFF- 驱动装置关闭:

  • 如果在该输入端持续施加至少持续20 ms的低脉冲 ,则上级控制系统会关断机器人驱动装置。

  • $I_O_ACT -外部接口激活:

  • 示教器选择了外部自动运行这一运行方式并且输入端 $I_O_ACT 为 TRUE (一般 始终设为 $IN[1025])后,输出端$I_O_ACTCONF - 外部自动运行激活为 TRUE。

2.2 配置外部自动输出端

输出信号总共4个菜单:

  • $ALARM_STOP - 紧急停止

  • 该信号在机器人自身急停和外部急停下触发时,会发出一个报警停机控制信号。

  • $USER_SAF - 操作人员防护装置 / 防护门

  • 该信号在外部自动模式时,防护装置(如安全门、卷帘门)被打开的时候,机器人会发出一个用户安全停止控制信号。

  • $PERI_RDY- 驱动装置处于待机状态

  • 通过设定此输出信号,机器人控制系统通知上级控制系统,机器人驱动装置已接通。

  • $STOPMESS- 停止信息

  • 该输出信号由机器人控制系统来设定,以向上级控制器显示出现了一条要求停住机器人的信息提示。

  • 例如,当按下紧急停止按键或运行开通、操作人员防护装置被打开等情况出现时,机器人会发出该信号。

  • $I_O_ACTCONF- 外部自动运行激活

  • 选择了外部自动运行这一运行方式并且输入端 $I_O_ACT 为 TRUE (默认为 $IN[1025])后,输出端为 TRUE。

  • $PRO_ACT- 程序激活/正在运行

  • 当机器人程序(CELL.SRC)启动运行后,始终给该输出端赋值。

  • $PGNO_REQ- 程序号问询

  • 该输出端信号变化时,要求上级控制器传送一个程序号。如果PGNO_TYPE值为3,则PGNO_REQ不被分析。

  • $APPL_RUN- 应用程序在运行中

  • 该信号是机器人通知上级控制器正在处理有关程序(CELL.SRC中的程序)。

  • $IN_HOME- 机器人位于起始位置 (HOME)

  • 该输出信号告知PLC,机器人正位于其起始位置(HOME)。

  • $ON_PATH- 机器人位于轨迹上

  • 只要机器人位于编程设定的轨迹上,此输出信号即被赋值。

  • $NEAR_POSRET 在路径附近

  • 精度可更改,默认 200MM。

  • $T1, T1 模式下即输出该信号

  • $T2, T2 模式下输出该信号

  • $AUT 内部自动模式下输出该信号

  • $ EXTERN 外部自动模式下输出该信号

2.3 CELL程序的结构和功能

CELL程序是KUKA机械臂在外部自动模式下运行的重要组成部分,负责执行各种任务并确保与PLC的有效交互。

  • 初始化部分

  • 在程序开始时,通常会有初始化代码,用于设置必要的变量和状态,例如:

  • 设置运动参数(速度、加速度等)

  • 初始化IO信号

  • 设定安全状态

  • 主控制循环

  • 程序的主体通常是一个控制循环,该循环根据接收到的外部信号执行不同的操作。主要包括:

  • 监测PLC发来的信号

  • 根据外部输入信号控制机械臂的运动状态(如启动、停止、运动到指定位置等)

  • 信号处理

  • CELL程序中需要处理多种信号,包括但不限于:

  • sEXT_START: 启动信号

  • sDRIVERS_OFF: 关闭驱动器信号

  • PGNO_REQ: 程序号请求信号

  • sPGNO_VALID: 程序号有效信号

  • SMOVE_ENABLE: 移动使能信号

  • 任务执行部分

  • 根据PLC信号的状态,CELL程序会执行相应的动作,比如:

  • 移动到指定位置

  • 执行特定的操作(如夹持、放置等)

  • 监控任务状态并反馈给PLC

  • 异常处理

  • 在程序中,通常会添加异常处理机制,用于检测和应对各种潜在的错误情况,例如:

  • 检测信号丢失或超时

  • 根据情况采取相应的措施(如停机、报警等)

  • 结束部分

  • 程序结束时,会进行必要的收尾工作,例如清理状态、关闭驱动器、发送完成信号等。

在RAPID编程语言中,注释通常以分号(;)开始,RAPID解释器会忽略注释内容。

; CELL程序定义
; 这是外部自动模式下的主控程序,用于管理外部控制系统发送的程序号。
DEF Cell()
; 外部程序示例声明
;EXT EXAMPLE1()
;EXT EXAMPLE2()
;EXT EXAMPLE3()
; 初始化部分
INIT
  ; 初始化基础技术包
  BASICTECH INI
  ; 检查机器人是否在HOME位置
  CHECK HOME
  ; 以100%的速度移动到HOME位置
  PTP HOME Vel=100% DEFAULT
  ; 初始化外部自动模式
  AUTOEXT INI
; 主循环开始
LOOP
  ; 从外部控制系统获取程序号
  P00(#EXT_PGNO, #PGNO_GET, DMY[], 0)
  ; 根据接收到的程序号选择执行不同的子程序
  SWITCH PGNO
  ; 如果程序号为1,执行EXAMPLE1程序
  CASE 1
    ; 确认程序号已被接收
    P00(#EXT_PGNO, #PGNO_ACKN, DMY[], 0)
    ; 调用用户程序1
    EXAMPLE1()
  ; 如果程序号为2,执行EXAMPLE2程序
  CASE 2
    ; 确认程序号已被接收
    P00(#EXT_PGNO, #PGNO_ACKN, DMY[], 0)
    ; 调用用户程序2
    EXAMPLE2()
  ; 如果程序号为3,执行EXAMPLE3程序
  CASE 3
    ; 确认程序号已被接收
    P00(#EXT_PGNO, #PGNO_ACKN, DMY[], 0)
    ; 调用用户程序3
    EXAMPLE3()
  ; 如果程序号未定义,则发送故障信号
  DEFAULT
    ; 发送程序号故障信号
    P00(#EXT_PGNO, #PGNO_FAULT, DMY[], 0)
  ; 结束程序号选择
  ENDSWITCH
; 主循环结束
ENDLOOP
; CELL程序结束
END  
  
; CELL程序示例
DEF CELL()
    ; 初始化
    DECL INT PGNO  ; 程序号
    DECL BOOL EXT_START  ; 外部启动信号
    DECL BOOL DRIVERS_OFF  ; 驱动器关闭信号
    DECL BOOL SMOVE_ENABLE  ; 移动使能信号
    ; 初始化信号
    EXT_START = FALSE
    DRIVERS_OFF = FALSE
    SMOVE_ENABLE = TRUE
    ; 等待外部启动信号
    WAIT FOR EXT_START
    ; 使能驱动器
    IF SMOVE_ENABLE THEN
        ; 启动机器人
        ; 这里可以添加运动指令,例如移动到起始位置
        PTP {X 100, Y 100, Z 200, A 0, B 0, C 0}  ; 移动到指定位置
        ; 发送程序号请求信号
        SendPGNO_REQ()
    ENDIF
    ; 等待接收程序号
    WAIT FOR PGNO_REQ
    PGNO = GetPGNO()  ; 获取程序号
    ; 程序号有效化
    WAIT 0.5  ; 等待0.5秒
    SendPGNO_VALID(PGNO)  ; 发送程序号有效信号
    ; 主循环
    WHILE TRUE
        ; 检测外部停止信号
        IF DRIVERS_OFF THEN
            ; 停止机器人
            StopRobot()
            EXIT ; 退出循环
        ENDIF
        
        ; 执行运动操作
        PerformTask(PGNO)
    ENDWHILE
    ; 程序结束
    SetIdleState()  ; 设置空闲状态
END
  

第一种风格

  1. 程序结构:这种风格使用了
    SWITCH
    语句来根据程序号选择执行不同的子程序。它适用于有固定数量的子程序,并且每个子程序都由外部控制系统通过程序号来选择。
  2. 信号处理:使用了
    P00
    系统程序来处理外部信号,如获取程序号(

#PGNO_GET
)、确认程序号(
#PGNO_ACKN
)和发送程序号故障信号(
#PGNO_FAULT
)。
3.
循环机制:使用了一个
LOOP
...
ENDLOOP
循环来不断检查外部控制系统发送的程序号,并根据程序号执行相应的子程序。
4.
注释:代码中包含了详细的注释,有助于理解每个步骤的作用。

第二种风格

  1. 程序结构:这种风格更加详细地展示了初始化、信号声明、等待外部启动信号、使能驱动器、发送程序号请求信号、获取程序号、程序号有效化以及主循环中的运动操作。
  2. 信号声明:明确声明了用于存储程序号、外部启动信号、驱动器关闭信号和移动使能信号的变量。
  3. 条件逻辑:使用了
    IF
    语句来检查移动使能信号,并在条件满足时启动机器人和发送程序号请求信号。
  4. 等待机制:使用了
    WAIT FOR
    语句来等待外部启动信号和程序号请求信号,这有助于同步机器人与外部控制系统的动作。
  5. 错误处理:包含了对外部停止信号的检测,并在检测到停止信号时停止机器人并退出循环。
  6. 任务执行:通过调用
    PerformTask(PGNO)
    函数来执行与程序号相关的任务,这提供了一种更灵活的方式来处理不同的程序号。
  7. 程序结束处理:在程序结束时调用
    SetIdleState()
    函数来设置机器人的空闲状态。
    第一种风格则更加简洁,适用于程序号较少且固定的情况。第二种风格提供了更多的细节和控制,使得程序的执行流程更加清晰。它适用于需要更精细控制机器人与外部控制系统交互的场景。
    ** 在T1或T2模式下运行CELL.src程序,执行图3的①部分,KUKA机器人执行回HOME点,执行BCO运行,窗口显示“已达BCO”,BCO运行使KUKA机器人运行到轨迹上。
    在AUT_EXT(外部自动运行)模式下,图3的②部分指令LOOP和ENDLOOP之间循环执行程序。**

2.4 外部自动启动时序

  1. 接通驱动装置
  2. 确认报警信息
  3. 外部启动cell程序
  4. 传递程序号并处理应用程序


© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号