仮想変数 P/I/F/IO

基本

P1、I1、F1 は共通 I/F 上の変数名である。UR Controller 内部変数ではない。

UR 実装では RobotVarManager により JSON へ保存する。

P1
    ↓
RobotVarManager
    ↓
JSON

属性アクセス

robot.P1 = [300, 0, 200, 0, 180, 0]
print(robot.P1)

robot.I1 = 10
robot.F1 = 1.5

get_var() / set_var()

robot.get_var("P1")
robot.set_var("P1", [300, 0, 200, 0, 180, 0])

robot.get_var("P", 1)
robot.set_var("P", 1, [300, 0, 200, 0, 180, 0])

P 変数

robot.set_P(1, [300, 0, 200, 0, 180, 0])
pose = robot.get_P(1)

P は 6 要素の mm / degree rotation-vector である。

teach()

robot.teach("P1")
robot.teach("J1")

teach("P1") は現在 TCP pose を P1 に保存する。

teach("J1") は現在関節角を J1 に保存する。

これは上位の共通 I/F としての教示であり、UR Controller へ P1 レジスタを書いているわけではない。

I / F

robot.set_I(1, 100)
robot.get_I(1)

robot.set_F(1, 1.25)
robot.get_F(1)

IO

IO は仮想変数ではなく、実 IO へ転送される。

robot.IO0 = True
print(robot.IO0)

内部では set_IO() / get_IO() が呼ばれる。

is_empty_position()

robot.is_empty_position("P1")

P 変数が未登録なら True を返す。