Python APIの使い方(GUI不要)

RobotVarManager:ローカル変数

以下の例はロボット接続を必要としません。get_var() は実機から読み込まず、ローカルキャッシュを参照します。

from teaching_manager.robot_var_manager import RobotVarManager

manager = RobotVarManager(autosave=False, autoload=False)
manager.set_var("P", 10, [1, 2, 3, 4, 5, 6, -1], save=False)
print(manager.get_var("P", 10))
print(manager.get_var("P10"))
print(manager.list_vars())
manager.save("positions.json")
manager.load("positions.json")
manager.delete_var("P", 10)

set_vars("P", 10, 12, value=[...]) で範囲登録できます。get_var の未登録時の既定値は False です。 RobotVarManager.save/load はマネージャーの全変数を対象にします。TeachingModelのJSONはP変数だけを対象にします。

TeachingModel / Controller:保存先切り替え

from teaching_manager.robot_var_manager import RobotVarManager
from teaching_manager.teaching_model import TeachingModel
from teaching_manager.teaching_controller import TeachingController

manager = RobotVarManager(autosave=False, autoload=False)
model = TeachingModel(manager, "robot_positions.json", async_mode=False)
controller = TeachingController(model, device_name="OtherRobot")
controller.load_initial(0, 20)  # OtherRobot: JSONから読み込み
print(controller.model.positions)
controller.save_file("backup.json")  # 表示データを任意JSONへ保存

上記例では実機に接続していないため read_current_position() と teach_number() は呼びません。ティーチングには現在位置の取得が先に必要です。Cobottaを接続する場合は DeviceProxy(..., async_mode=False) を RobotVarManager(robot_instance=robot) に渡してください。TeachingController(..., device_name="CobottaCtrl") は内部P変数モードです。

同期モードの read_current_position() は値を返し、async_mode=True ではコルーチンを返します。P変数の実機読み書きは同期DeviceProxyを要求します。