跳转到内容

高级程序节点

高级程序节点可以实现循环、判断、调用、多线程等功能,提高编程效率,减少程序出错的概率,使程序更加灵活方便。

线程

【线程】命令,创建多线程,即创建可以与主程序并行的程序。线程可用于控制与机械臂无关的其他外部设备。

注意

  1. 线程 节点下可以添加 设置等待赋值 等与运动无关的节点。
  2. 如果 线程 节点下添加 移动路点 等与运动相关的节点,将可能导致机器人运行冲突,引发其他安全风险。
  3. 建议尽量避免多线程的使用。若必须使用多线程,请注意主线程和辅线程的并行逻辑和时序匹配。

设置

  • 无限循环:勾选后,线程内的程序可以无限循环运行,直到停止程序。

子程序

【子程序】命令,创建子程序,子程序又称子工程。常与【调用】节点搭配使用。

子程序的特点:

  • 子程序可以是控制程序也可以是被控程序。

  • 子程序中包含的程序数据,仅为当主程序中的子程序被激活时的数据。

  • 子程序可以通过【调用】节点在多个程序中的多个位置调用运行。

    注意

    子程序被调用时,需先在【子程序】节点中编写或单击 加载已写好的程序,再使用【调用】节点调用子程序。

设置

  • :重命名子程序在主程序中的名称。

  • :加载程序文件。

  • 保存为:将子程序作为单独的文件在磁盘中保存。

  • 清除:清除子程序内打开的文件。

  • 保持子程序文件与此程序一起更新:勾选后,在打开的子程序中的修改将自动保存到该子程序文件中。

    注意

    该项仅在已保存为文件的子程序中可选。

调用

【调用】命令,调用子程序。当程序执行到此节点时,会跳转到调用的子程序中运行。

循环

【循环】命令,创建循环程序块。

设置

  • 一直循环:勾选后,程序块内的节点将无限循环运行。

  • 循环 N 次:勾选后,设置“循环次数”,N 为循环次数,程序块内的节点将循环运行 N 次。程序会创建一个专用循环变量(如图所示的 循环_0),此变量可在循环内部的表达式中使用。进入循环后,循环变量从 0 开始计数,直至 N1,结束循环。

  • 当表达式为真时循环:勾选后,设置表达式,程序运行到该节点时,先判断表达式是否为真:如果表达式判断为真,进入该循环,运行程序块内的节点;如果表达式判断为假,跳过此循环。

    • 连续检查表达式:勾选后,在执行循环程序块期间,持续检查表达式,一旦表达式判断为假随时跳出【循环】程序块。

跳出循环

设置跳出方式

  • 跳出循环:直接跳出循环,程序运行 循环 节点的下一个程序节点。
  • 跳至下次循环:跳出本次循环,立即进入下一次循环。如果 循环 节点不需要变量或表达式判断,则直接进入下一次循环。如果 循环 节点需要变量或表达式判断,则先进行判断,如果判断为真,进入下一次循环;如果判断为假,结束循环。

如果/否则如果/否则

【如果】命令,创建条件判断程序块。

【否则如果】命令,在 如果 节点下创建条件判断程序块。

【否则】命令,在 如果否则如果 节点下创建程序块。

1. 设置

如果 设置:

  • 如果 界面单击表达式 f(x),编辑条件表达式。

  • 连续检查表达式:勾选后,在执行 如果 程序块期间,持续检查条件表达式,一旦条件表达式判断为假,随时跳出 如果 程序块。

否则如果 设置:

  • 否则如果 界面单击表达式 f(x),编辑条件表达式。

  • 连续检查表达式:勾选后,在执行 否则如果 程序块期间,持续检查条件表达式,一旦条件表达式判断为假,随时跳出 否则如果 程序块。

2. 应用

  • 如果:如果 如果 的条件为真,则执行 如果 程序块。
  • 如果……否则……:如果 如果 条件为真,则将执行此 如果 节点内的程序;否则执行 否则 节点内的程序。
  • 如果……否则如果……否则……:如果 如果 条件为真,则将执行此 如果 节点内的程序;否则判断 否则如果 条件是否为真。若 否则如果 条件为真,则将执行 否则如果 节点内的程序,否则执行 否则 节点内的程序。
示例:

设置一个初始变量 变量_0。程序开始运行,运行至 路点_0。判断 变量_0 是否小于等于 2,如果 变量_0 小于等于 2,运行备注为 “向左” 的 关节运动。如果 变量_0 大于 2,判断 变量_0 是否小于等于 5,如果 变量_0 大于 2 且小于等于 5,运行备注为 “向右” 的 关节运动。如果 变量_0 大于 5,运行备注为 “向上” 的 关节运动

分支/条件/默认

【分支】命令,创建多重分支,可根据变量的值控制程序的流程。可设置是否在程序树中添加 默认 程序块。“同步” 请参考赋值中关于 "同步" 的介绍。

【条件】命令,在 分支 下创建 条件 程序块。

条件 节点只能在 分支 节点下插入。

应用

  • 分支……条件……默认……:通过判断条件运行不同的 条件 程序块。用户可在 分支 界面输入选择判断条件表达式,在 条件 界面输入可匹配的值。当程序运行 分支 节点时,先计算 分支 节点的表达式的数值,然后与 分支 下的 条件 的数值依次比较:如果在所有 条件 中匹配到相同的数值,则执行该 条件 程序块;如果没有匹配到满足条件的 条件 数值,则执行该 分支 下的 默认 程序块。
    • 一个 分支 可以有 0 个到多个 条件 程序块。
    • 一个 分支 可以有 0 个到 1 个 默认 程序块,勾选 分支 中的 “添加默认条件” 即可添加 默认 程序块。
示例:

设置一个初始变量 变量_0。进入程序,运行至 路点_0。判断 变量_0 是否等于 0,如果 变量_0 等于 0,运行备注为 “右” 的 关节运动;如果 变量_0 不等于 0,判断 变量_0 是否等于 1,如果 变量_0 等于 1,运行备注为 “左” 的 关节运动。如果 变量_0 既不等于 0 也不等于 1,运行备注为 “高” 的 关节运动

传送带跟踪

传送带跟踪程序信息页

【传送带跟踪】功能,通过相机激光传感器实时追踪传送带运动,同步调整机械臂动作,实现对移动工件的准确抓取、装配或检测。

  • 【选择传送带】:选择当前要跟踪的具体传送带设备。

    说明:

    选择传送带时请确保目标传送带在【配置】界面已启用。

  • 跟踪目标:

    • 新的工件:程序运行时,放弃已经捕获跟踪信息的工件,等待新工件,对下一工件执行后续操作。
    • 上一工件(单工件多次跟踪):程序运行时对已经捕获跟踪信息的工件执行后续操作。
  • 待机点:

    • 启用:勾选后,机械臂将在跟踪间隙回到预设待机位置,等待下一工件,避免姿态碰撞或姿态混乱。
    • 多工件连续跟踪时,忽略待机点:勾选后机械臂会跳过返回待机点的步骤,直接衔接下一个工件的跟踪,提升效率。
  • 停止动作:

    • 启用:超出跟踪限制(工作空间、跟踪能力耗尽)时,机械臂会执行预设的停止动作,将位姿恢复为预设位姿。
    • 多工件连续跟踪时,忽略停止动作:超出跟踪限制(工作空间、跟踪能力耗尽)时,机械臂将保持姿态直接停在当前位置。
  • 程序启动时:

    • 清空工件队列:程序重启时,完全重置跟踪任务列表。
    • 保留工件队列:
      • 继续未完成的跟踪动作:程序重启后,会继续处理之前未完成的工件队列,不会丢失已捕捉跟踪信息的工件。
      • 放弃未完成的跟踪动作:程序重启后,保留工件队列的前提下清空之前的跟踪任务队列,只处理新进入的工件。
    • 询问:程序重启时,不会自动决定是继续或清空工件队列,而是暂停并发出信号,等待操作员决策后再启动。

    说明:

    工件队列:系统通过相机激光传感器实时检测到的,等待机械臂执行后续操作的工件清单。

传送带跟踪程序编程页

启用【传送带跟踪】后,编程界面自动适配功能,系统预置程序框架,可直接在对应模块编写程序。

  1. 在传送带跟踪配置页启用【待机点】,程序树中将自动生成【路点_1】节点,单击【路点_1】即可标定机械臂待机点,机械臂将在此位置等待工件到来。
  2. 编写机械臂运动程序,实现对移动工件的准确抓取、装配或检测。检测到工件时,自动执行本分支程序。
  3. 在传送带跟踪程序信息页启用【保留工件队列】并选择【继续未完成的跟踪动作】后,程序树出现此模块,程序重启后,将执行该分支自定义逻辑,接续处理未完成跟踪的工件。
  4. 在传送带跟踪配置页启用【停止动作】,程序树出现【停止动作】分支;超出跟踪限制(工作空间、跟踪能力耗尽)时,自动执行该分支自定义收尾动作。