仮想変数 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 を返す。