发布时间: 2026-01-21
3.6.5 高级任务点
1. 循环
“循环”节点可以配置其子节点任务的循环方式,如图 3-101所示。
图 3-101: 循环
循环方式有:
- 始终循环:该任务一直循环;
- 循环 N 次:定义循环次数;循环运行指定次数时,任务将创建一个专用循环变量,此变量用于统计循环次数。
- 当表达式为真时循环:当表达式为真时,子节点的任务将一直循环执行。
注意: 1. 若勾选“不断检查表达式”,则在循环过程中,只要表达式不为真,则立即跳出循环,往下执行。 2. 循环节点的循环模式为表达式时,支持“后测试循环 (do while)”。若勾选“后测试循环 (do while)”,则会先执行一次循环,再判断条件是否满足。 3. “不断检查表达式”和“后测试循环 (do while)”互斥,不能同时勾选。
2. 子任务
“子任务”节点下,用户可直接编辑子节点,也可加载已有的任务文件。创建子任务节点后,用户可在主任务节点下进行调用。
子任务节点加载任务文件时,只有主任务下的节点会被添加至子任务节点下。
提醒 1. 加载的任务文件中不能存在子任务节点,若存在子任务节点,任务文件加载不成功且机器人出现提示,用户需移除任务文件中所有的子任务节点,保存修改后再尝试添加子任务。 2. 同一个任务文件中,可以有多个子任务节点,但子任务节点加载的文件不能相同。
(1) 创建子任务
创建子任务方法如下: * 选择“机器人主任务”节点或其后的同级节点,再点击“高级 > 子任务”,插入子任务节点; * 在主任务里的任意节点,点击“高级 > 子任务”后,在“调用”节点下,选择“新建”。
(2) 编辑子任务
用户可直接编辑子节点,也可加载已有的任务文件。
加载任务文件的操作步骤如下: 1. 点击“加载子任务”,在弹出窗口选择任务文件。 2. 再进行以下编辑: * 保存子任务:保存修改后的子任务文件。 * 清空子任务:删除加载的任务文件,并删除子任务下的对应节点。 * 注意:“清空子任务”只在加载任务文件的情况下才有效。
若勾选“对此任务不断更新子任务文件”,主任务保存时,加载的子任务文件也将更新。
提醒 “对此任务不断更新子任务文件”只在加载任务文件的情况下才有效。
若勾选“隐藏子任务树”,子任务下的节点将不显示。
(3) 调用子任务
在任务树中,用户可以调用子任务。调用的子任务可以是已保存的,也可以是直接新建的子任务。 1. 在主任务下的任意节点下,选择“任务 > 高级 > 子任务”。 2. 点击任务树中的“调用”,点击“新建”或选择已存在的子任务文件,如图 3-102所示。
图 3-102: 调用子任务
- 点击子任务节点,编辑子任务。
运行至“调用”节点时,会进入对应的子任务节点。子任务运行结束后,继续运行主任务。
3. 赋值
将某一数值赋给某个变量的过程,称为赋值。如图 3-103所示。通过赋值指令创建的变量为局部变量,可对局部变量进行初始化设置。
图 3-103: 赋值
用户可在下拉列表中选择变量,若要重命名变量,点击编辑按钮,在文本键盘中输入新名称(文本键盘支持输入中文)。若想取消输入,点击右上方“ESC”键取消输入。在该界面中,用户可通过勾选“对表达式中的引用对象进行深度复制”前面的复选框来进行节点的深拷贝,如不勾选,则表示对节点进行浅拷贝。当深拷贝复杂数据时,其拷贝的新数据不会随源数据的改变而改变,而浅拷贝复杂数据时,一旦源数据发生变化,拷贝的新数据也会随之发生变化。
将确定的数值赋给变量的语句叫做赋值语句。
赋值语句来源为: * 表达式:自定义赋值语句,可使用 I/O、变量、位姿或脚本函数来指定赋值语句; * 操作员:用户需在弹窗中进行操作后,任务继续运行。 * 是或否:弹窗中选择是或否,两次“取消”取消输入; * 整数:输入整数,点击取消按钮两次可取消输入; * 十进制数:输入十进制数,点击取消按钮两次可取消输入; * 文本字符串:输入字符串,点击右上方“ESC”键两次取消输入。
4. If
If 和 If…Else 语句结构可以根据表达式来执行相应的分支。 1. 选择“任务 > 高级 > If”。 2. 点击任务树中的“If”,修改表达式,如图 3-104所示。
图 3-104: If
- 在空位节点上,编辑 If 节点里的节点。
若表达式为真,则将执行 If 里的节点。一个 If 语句至多有一个 Else 语句。 使用“添加 ElseIf”和“移除 ElseIf”添加或移除 Elself 表达式。
若勾选“不断检查表达式”,运行 If 的子节点时,仍会一直检查表达式是否满足触发条件。若检查到不满足,立刻跳出当前 If 分支,继续往后运行任务。
5. 脚本
“脚本”的下拉列表提供以下选项,如图 3-105所示。 * “代码行”允许用户使用表达式编辑器编写单行代码; * “文件”允许用户加载本地已有的脚本文件;或者直接编辑脚本内容并保存。 脚本文件的详细内容请参见脚本手册。
图 3-105: 脚本
6. 事件
“事件”节点可用于监控表达式,表达式为真时,“事件”里的子节点将会被执行。表达式通常可包含:信号,任务变量等,因此,“事件”节点常用于监控输入信号或变量,并在满足条件时执行子节点。如图 3-106所示。
图 3-106: 事件
注意: 1. 多个事件同时满足条件时,优先执行排序靠前的事件,剩余事件无论是否满足条件都不会被执行。 2. 勾选“上升沿模式”时,事件条件由 false 变为 true 时才会触发执行。建议不要同时触发多个事件,避免执行逻辑过于复杂,难以达到预期执行流程。
7. 线程
线程是随主任务一起运行的并行任务,是机器人任务的一个并行进程,主要用于控制外部机器,不建议用来控制机器人本体的移动,因此,“线程”节点主要用于执行 I/O 动作,等待信号以及设置变量等,如图 3-107所示。
图 3-107: 线程
8. 开关
每个“开关”节点可以包含多个“情况”节点和一个“默认情况”节点。 运行到“开关”节点,任务先判断表达式的值。若与情况的值相匹配,则执行对应的情况节点,若都不匹配,则执行默认情况或者全部不执行,如图 3-108所示。
图 3-108: 开关
用户可先填写情况的值,再点击添加“情况“节点。
9. 计时器
计时器用来测量时间。测量的时间出现在变量中,如图 3-109所示。
图 3-109: 计时器
其中,计时节点解释如下: * 启动:计时器开始计时; * 停止:计时器停止计时。测量的时间可通过“监控 > 变量”界面进行查看; * 重置:将当前计时器的变量值复位。
10. 原点
用户可以将机器人运行到在“配置 > 通用 > 原点”中定义的原点位置,点击“来源”下拉框,可以选择“激活的原点”或“安全原点”,如图 3-110所示。安全原点的设置请参考第 1. 小节,安全 I/O 的设置请参考第 4. 小节,运动方式的详细信息请参考第 2. 小节。
图 3-110: 原点