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

描述

sub 借助模板创建程

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都已用过 sub 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中执行的指令。

   

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分