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

线程
【线程】命令,创建多线程,即创建可以与主程序并行的程序。线程可用于控制与机械臂无关的其他外部设备。
注意
线程节点下可以添加设置、等待、赋值等与运动无关的节点。- 如果
线程节点下添加移动、路点等与运动相关的节点,将可能导致机器人运行冲突,引发其他安全风险。 - 建议尽量避免多线程的使用。若必须使用多线程,请注意主线程和辅线程的并行逻辑和时序匹配。

设置
- 无限循环:勾选后,线程内的程序可以无限循环运行,直到停止程序。
子程序
【子程序】命令,创建子程序,子程序又称子工程。常与【调用】节点搭配使用。
子程序的特点:
子程序可以是控制程序也可以是被控程序。
子程序中包含的程序数据,仅为当主程序中的子程序被激活时的数据。
子程序可以通过【调用】节点在多个程序中的多个位置调用运行。
注意
子程序被调用时,需先在【子程序】节点中编写或单击
加载已写好的程序,再使用【调用】节点调用子程序。

设置
:重命名子程序在主程序中的名称。
:加载程序文件。保存为:将子程序作为单独的文件在磁盘中保存。
清除:清除子程序内打开的文件。
保持子程序文件与此程序一起更新:勾选后,在打开的子程序中的修改将自动保存到该子程序文件中。
注意
该项仅在已保存为文件的子程序中可选。
调用
【调用】命令,调用子程序。当程序执行到此节点时,会跳转到调用的子程序中运行。

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

设置
一直循环:勾选后,程序块内的节点将无限循环运行。
循环 N 次:勾选后,设置“循环次数”,
为循环次数,程序块内的节点将循环运行 次。程序会创建一个专用循环变量(如图所示的 循环_0),此变量可在循环内部的表达式中使用。进入循环后,循环变量从 开始计数,直至 ,结束循环。 当表达式为真时循环:勾选后,设置表达式,程序运行到该节点时,先判断表达式是否为真:如果表达式判断为真,进入该循环,运行程序块内的节点;如果表达式判断为假,跳过此循环。
- 连续检查表达式:勾选后,在执行循环程序块期间,持续检查表达式,一旦表达式判断为假随时跳出【循环】程序块。
跳出循环

设置跳出方式
- 跳出循环:直接跳出循环,程序运行
循环节点的下一个程序节点。 - 跳至下次循环:跳出本次循环,立即进入下一次循环。如果
循环节点不需要变量或表达式判断,则直接进入下一次循环。如果循环节点需要变量或表达式判断,则先进行判断,如果判断为真,进入下一次循环;如果判断为假,结束循环。
如果/否则如果/否则
【如果】命令,创建条件判断程序块。
【否则如果】命令,在 如果 节点下创建条件判断程序块。
【否则】命令,在 如果 或 否则如果 节点下创建程序块。
1. 设置
如果 设置:
在
如果界面单击表达式,编辑条件表达式。 连续检查表达式:勾选后,在执行
如果程序块期间,持续检查条件表达式,一旦条件表达式判断为假,随时跳出如果程序块。
否则如果 设置:
在
否则如果界面单击表达式,编辑条件表达式。 连续检查表达式:勾选后,在执行
否则如果程序块期间,持续检查条件表达式,一旦条件表达式判断为假,随时跳出否则如果程序块。
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】即可标定机械臂待机点,机械臂将在此位置等待工件到来。
- 编写机械臂运动程序,实现对移动工件的准确抓取、装配或检测。检测到工件时,自动执行本分支程序。
- 在传送带跟踪程序信息页启用【保留工件队列】并选择【继续未完成的跟踪动作】后,程序树出现此模块,程序重启后,将执行该分支自定义逻辑,接续处理未完成跟踪的工件。
- 在传送带跟踪配置页启用【停止动作】,程序树出现【停止动作】分支;超出跟踪限制(工作空间、跟踪能力耗尽)时,自动执行该分支自定义收尾动作。
