0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

KRL指令如何在SUB程序中使用

机器人及PLC自动化应用 来源:机器人及PLC自动化应用 2023-05-23 10:17 次阅读

cbd971d6-f8f2-11ed-90ce-dac502259ad0.png 借助模板创建程

Cell:现有的 Cell 程序,只能被替换或者在删除 Cell 程序后重新创建。

Expert:模块由只有程序头和程序结尾的 SRC 和 DAT 文件构成。

Expert Submit :附加的 Submit 文件 (SUB) 由程序头和程序结尾构成。

Function:SRC 函数创建,在 SRC 中只创建带有 BOOL 变量的函数头。函数结尾已经存在,但必须对返回值进行编程

Modul:Modul(模块)由具有程序头、程序结尾以及基本框架 (INI 和 2 个 PTP HOME) 的 SRC 和 DAT 文件构成。

Submit:附加的 Submit 文件 (SUB) 由程序头、程序结尾以及基本框架 (DECLARATION、INI、LOOP/ENDLOOP) 构成。

几乎所有的KRL指令都可以在SUB程序中使用。 但是,以下说明是不可能的——或者只有在有限制的情况下:  机器人动作说明 机器人动作只能由机器人解释器进行解释。因此,包含运动命令的SRC程序不能作为SUB程序的子程序调用。  关于机器人运动的说明 其中包括BRAKE和所有TRIGGER语句。  以下说明允许在系统提交中使用,但不允许在扩展提交中使用:  ASYPTP  VECTORMOVEON()  VECTORMOVEOFF()  SET_TORQUE_LIMITS()  RESET_TORQUE_LIMITS() 例子: 本例中的外部轴的运动指令可以在SUB程序中使用,前提是它被分配给系统提交,而不是扩展提交。 IF (($IN[12] == TRUE) AND ( NOT $IN[13] == TRUE)) THEN ASYPTP {E2 45} ASYPTP {E3 200} ... IF ((NOT $IN[12] == TRUE) AND ($IN[13] == TRUE)) THEN ASYPTP {E2 0} ASYPTP {E3 90} 外部轴E2和E3根据特定输入进行移动。此处未使用WAIT语句或等待循环,因为它们会停止循环。 操作步骤 1.在数据列表中选中要创建该程序的文件夹。(不是在所有的文件夹中都能建立程序。) 2. 按下按钮 新。 选择模板 窗口打开。 3. 选中模板 Submit 或 Expert Submit 并用 OK 确认。 4. 输入程序名称,并用 OK 确认。 “Submit” 模板: Submit 模板用于生成具有以下结构的 SUB 文件: 1 DECLARATIONS 2 INI初始化部分。用于在启动之后只执行一次的指令。 3 4 LOOP 5 USER PLC 含有 USER PLC 折叠夹的 LOOP 指令。 USER PLC 规定用于要在后台连续运行的程序。 6 ENDLOOP 7 USER SUBROUTINE 用于自定义的子例程 “Expert Submit” 模板: Expert Submit 模板生成空的 SUB 文件。对 于该模板,所有的都必须由用户自己编程设定。 在编程时使用 LOOP 指令。提交解释器只执行不带 LOOP 指令的 SUB 程序一次。然后自动将其取消。 在 SUB 程序中几乎所有 KRL 指令均可用。但下列指令不可用:  机器人运动指令 机器人运动只能由机器人解释器解释。因此,从 SUB 程序中也无法作为子程序调用包含运动指令的 SRC 程序。  针对机器人运动的指令 其包括 BRAKE 和所有 TRIGGER。 与此完全相反,附加轴的运动指令可用在 SUB 程序中。示例: IF (($IN[12] == TRUE) AND ( NOT $IN[13] == TRUE)) THEN $VEL_EXTAX[2]=10 $ACC_EXTAX[2]=10 ASYPTP {E2 45} ... IF ((NOT $IN[12] == TRUE) AND ($IN[13] == TRUE)) THEN $VEL_EXTAX[2]=10 $ACC_EXTAX[2]=10 ASYPTP {E2 0} 附加轴 E2 根据特定的输入端运动。 在此不使用 WAIT 指令或等待循环,因其包含循环。 提交解释器可以读取访问所有系统变量,也可以写入访问许多系统变量。即使在系统变量同时被一个运动程序使用时,也可访问。 如果在 SUB 程序中更改提交解释器对其无写入访问权限的系统变量,则在启动程序时出现一个错误信息并且提交解释器停止。 在 SUB 程序中常用的系统变量:

$MODE_OP = 值
说明
#T1 机器人控制系统在运行方式 T1 下。
#T2 机器人控制系统在运行方式 T2 下。
#AUT 机器人控制系统在自动运行方式下。
$MODE_OP = 值
说明
#EX 机器人控制系统在外部自动运行方式下。
#INVALID 机器人控制系统无定义的状态。
$OV_PRO = 值
元素 数据类型 说明
值 (%) INT 程序倍率的大小

示例: 如果没有达到编程设定的速度,则将输出端 2 设定为 FALSE。

… IF (($MODE_OP == #T1) OR ($OV_PRO < 100)) THEN $OUT[2]  = FALSE ENDIF …

在SUB程序中可以调用用作子程序的程序。可以是: 其他的 SUB程序 不带机器人运动指令的 SRC程序 从程序 SPS.SUB 中可以用 CWRITE 指令和 RUN 调用程序 CELL.SRC。调用只在冷启动时有效。也可以用cwrite指令来调用其他的主程序,可成和Ringo都已用过 cbf9781e-f8f2-11ed-90ce-dac502259ad0.png sps.sub 在机器人解释器中选择 CELL.SRC 为了在运行中的运动程序和 SUB 程序之间实现二进制信息交换,可以使用机器人控制系统旗标。旗标由提交解释器设定并且由机器人解释器读取。   编辑SPS.SUB程序 SPS.SUB程序由KUKA用于控制器内部提交任务。用户特定的提交任务通常应在单独的SUB程序中进行编程。 然而,在某些情况下,用户可能需要在SPS.SUB程序中插入指令。follo翼折叠可用于以下用途: USER INIT USER PLC 用户不得修改SPS.SUB程序的其他部分。  程序SPS.SUB未被选择或已被停止。  用户组“专家” 1.在“导航器”中,选择目录R1System中的SPS.SUB程序,然后按“打开”。 2.输入更改:  在USER INIT(用户初始化)折叠框中输入初始化。该折叠位于INI折叠中。 USER INIT   ; Please insert user defined initialization commands  在USER PLC折叠中输入所有其他更改。 USER PLC     ; Make your modifications here 3.关闭程序。响应确认请求,询问是否应保存更改,方法是按“是”。 SPS.SUB程序的结构:    1  DEF  SPS ( )    2    DECLARATIONS    3    INI    4      5    LOOP    6       WAIT FOR NOT($POWER_FAIL)    7       TORQUE_MONITORING()    8      9      ATB PLC LOOP   10      USER PLC   11    ENDLOOP

3 INI折叠 这个折叠包含USER INIT折叠:在这里,用户可以输入在引导后只执行一次的语句。
5..10 LOOP语句。对于要在后台连续运行的程序。
9 一些软件选项在程序SPS.SUB中插入折叠。例如:技术包KU-KA.ArcTech Basic插入折叠ATB PLC LOOP。实际存在的折叠取决于机器人控制器上安装的选项。
10 用户PLC:在这里,用户可以输入要在LOOP中执行的指令。

审核编辑:彭静
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 程序
    +关注

    关注

    114

    文章

    3631

    浏览量

    79565
  • sub
    sub
    +关注

    关注

    0

    文章

    11

    浏览量

    2191

原文标题:KUKA:创建新的 SUB 程序V5.22

文章出处:【微信号:gh_a8b121171b08,微信公众号:机器人及PLC自动化应用】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    何在bash shell脚本中使用变量

    如果你使用编程语言编写过程序,那么一定接触过变量。而在 bash 脚本的编写时,变量也是一个很重要的概念。今天我们分享一下如何在 bash 脚本中使用变量。
    发表于 12-02 16:32 1673次阅读
    如<b class='flag-5'>何在</b>bash shell脚本<b class='flag-5'>中使</b>用变量

    何在bash中使用条件语句

    今天我们介绍一下如何在 bash 中使用条件语句。
    的头像 发表于 12-09 17:27 1858次阅读
    如<b class='flag-5'>何在</b>bash<b class='flag-5'>中使</b>用条件语句

    何在Linux中使用htop命令

    本文介绍如何在 Linux 中使用 htop 命令。
    的头像 发表于 12-04 14:45 555次阅读
    如<b class='flag-5'>何在</b>Linux<b class='flag-5'>中使</b>用htop命令

    求助:如何在STM32单片机程序中使用atoi()函数?

    何在STM32单片机程序中使用atoi()函数?
    发表于 02-05 18:39

    何在我的应用程序中使用DMA?

    。试图找出如何在我的应用程序中使用DMA,我发现SPI驱动程序已经调用DMA函数。因此,为了在我的应用程序
    发表于 10-29 09:14

    何在RISC-V中使用DSP指令

    何在RISC-V中使用DSP指令
    发表于 02-16 07:43

    何在C程序中使用汇编

    怎样在C程序中使用汇编,如何在C程序中使用汇编:方法一:在每个汇编语句前加asm即可。如:void reset_data(void) { a
    发表于 09-23 23:43 55次下载

    PMC功能指令程序控制指令

    程序控制指令: 7.SP(子程序SUB 71) 功能指令SP用于生成子程序。子程序号作为子
    发表于 09-29 13:08 0次下载
    PMC功能<b class='flag-5'>指令</b>:<b class='flag-5'>程序控制指令</b>

    数据处理指令SUB减操作指令分析

    6.3 SUB减操作指令 1.指令的编码格式 SUB(Subtract)减操作指令,从寄存器《Rn》中减去《shifter_operand》
    发表于 10-18 15:35 1次下载
    数据处理<b class='flag-5'>指令</b>之<b class='flag-5'>SUB</b>减操作<b class='flag-5'>指令</b>分析

    何在C51程序中使用参数传递与数据返回的资料说明

    本文档的主要内容详细介绍的是如何在C51程序中使用参数传递与数据返回的资料说明。
    发表于 04-17 17:27 4次下载
    如<b class='flag-5'>何在</b>C51<b class='flag-5'>程序</b><b class='flag-5'>中使</b>用参数传递与数据返回的资料说明

    程序是如何在 CPU 中运行的(二)

    在上一篇文章中《程序是如何在 CPU 中运行的(一)》笔者讲述了程序中一条一条指令以及一条一条数据是如何在 CPU 中运行的,在本文笔者将.
    发表于 02-07 11:10 1次下载
    <b class='flag-5'>程序</b>是如<b class='flag-5'>何在</b> CPU 中运行的(二)

    何在Arduino中使用LDR

    电子发烧友网站提供《如何在Arduino中使用LDR.zip》资料免费下载
    发表于 10-31 09:50 0次下载
    如<b class='flag-5'>何在</b>Arduino<b class='flag-5'>中使</b>用LDR

    何在ADAS应用程序中使用MIPI®CSI-2端口复制记录传感器数据

    何在ADAS应用程序中使用MIPI®CSI-2端口复制记录传感器数据
    发表于 11-02 08:16 1次下载
    如<b class='flag-5'>何在</b>ADAS应用<b class='flag-5'>程序</b><b class='flag-5'>中使</b>用MIPI®CSI-2端口复制记录传感器数据

    何在Arduino中使用Modbus

    电子发烧友网站提供《如何在Arduino中使用Modbus.zip》资料免费下载
    发表于 11-22 11:21 11次下载
    如<b class='flag-5'>何在</b>Arduino<b class='flag-5'>中使</b>用Modbus

    何在测试中使用ChatGPT

    Dimitar Panayotov 在 2023 年 QA Challenge Accepted 大会 上分享了他如何在测试中使用 ChatGPT。
    的头像 发表于 02-20 13:57 388次阅读