4.3.6 赋值

【赋值】命令,创建程序变量并赋值,可将表达式的值赋给所选变量,或者将机器操作员输入的值赋给所选变量。

设置赋值类型

  • 表达式:设置变量为表达式,也可以创建新的变量。

    • 同步:勾选后,可使变量在正确的时间点赋值。
  • 操作员:设置输入变量的类型,当程序运行到该节点时,需要操作员手动输入变量赋值。

    • 操作员信息:添加操作员提示信息,帮助操作员输入正确的变量。

同步/变量同步

在机器人运行过程中存在两个指针,提前运行指针(Advanced Pointer)与主指针(Main Pointer)。主指针与机器人的实际运动关联,能反应机器人程序的实际运动情况;提前运行指针为脚本解释的指针,可预知后续的运动指令,用于交融等计算。

“同步/变量同步” 功能指的是将主指针与提前运行指针同步。 在程序执行过程中,系统会先按照代码顺序依次解释运行,如果是变量赋值代码,则在解释后立即执行赋值操作,如果是运动指令,则完成解释后将其放入运动队列等待运行。

以下两个伪代码示例分别显示当 “同步” 功能开启或关闭时,代码的状态:

  1. 关闭 “同步” 功能:a=0 完成解释后立即执行变量赋值操作,然后 ... 完成解释后进入运动队列等待运行。接下来轮到 a=1,系统解释完成后立即执行变量赋值操作。随后解释 moveJ(a),此时系统先获取 a 的值解释 moveJ(a),再将其放入运动队列中等待。由于解释 moveJ(a) 时,a=1 已完成解释和赋值操作,所以 moveJ(a) 获取的 a 值为 1
  2. 开启 “同步” 功能:a... 依次解释,a=0 完成变量赋值操作,... 进入运动队列等待运行。然后 a=1 在解释时,会增加 INST[] 算法,此时 a=1 不会立即执行赋值操作,而是先放入运动队列中等待,只有当运动队列运行到该指令时才将 1 赋值给 a。接下来系统继续解释 moveJ(a),由于运动队列尚未处理 a=1,因此解释 moveJ(a) 时获取的 a 值为 0
不同步 同步
a=0
....
a=1
moveJ(a) -- a=1
a=0
....
INST[[ a=1 ]]
moveJ(a) -- a=0

注释:其中 a=0a=1 为变量赋值指令,INST[] 为同步功能的算法,moveJ(a) 代表需要使用变量 a 值的关节运动,... 为其他包含运动的指令。

results matching ""

    No results matching ""