Skip to content

4.3 로봇 프로그램 운영 수업

개요

Execution 클래스는 다음 핵심 기능을 담당하는 로봇 프로그램 및 모션 작업에 대한 통합 예약 인터페이스를 제공합니다.

  • Start/stop/pause/resume 티치 펜던트 프로그램
  • 동시에 실행되는 작업 목록 관리
  • BAS 스크립트 및 기타 사용자 정의 워크플로우 실행

Arm과 Motion의 연결과 모션 기능을 결합한 Execution은 호스트 측에서 컨트롤러의 프로그램 흐름을 트리거하고 제어하는 ​​역할을 담당합니다.

4.3.1 지정된 프로그램 실행

메서드 이름execution.start( program_name : str) -> StatusCodeEnum
설명지정된 프로그램을 실행합니다.
요청 매개변수program_name : str 실행할 프로그램의 이름입니다.
반환 값StatusCodeEnum: 함수 실행 결과입니다.
호환 로봇 소프트웨어 버전협업(Copper): v7.5.0.0+
산업용(Bronze): v7.5.0.0+

4.3.2 현재 실행 중인 프로그램 중지

메서드 이름execution.stop( program_name : str = '') -> StatusCodeEnum
설명현재 실행 중인 프로그램을 중지하거나 로봇의 현재 동작을 중지합니다.
요청 매개변수program_name : str 프로그램 이름(기본적으로 빈 문자열, 현재 실행 중인 프로그램 또는 모션 명령을 중지함).
반환 값StatusCodeEnum: 함수 실행 결과입니다.
호환 로봇 소프트웨어 버전협업(Copper): v7.5.0.0+
산업용(Bronze): v7.5.0.0+

4.3.3 실행 중인 모든 프로그램의 세부 정보 반환

메서드 이름execution.all_running_programs() -> tuple[list, StatusCodeEnum]
설명스레드 ID, 프로그램 이름, xpath, 프로그램 상태 및 프로그램 유형을 포함하여 실행 중인 모든 프로그램에 대한 자세한 정보를 반환합니다.
요청 매개변수없음
반환 값list: 실행 중인 프로그램 세부 정보 목록으로, 각 요소에는 thread_id , program_name , xpath , program_status , program_type 등이 포함됩니다.
StatusCodeEnum: 함수 실행 결과입니다.
호환 로봇 소프트웨어 버전협업(Copper): v7.5.0.0+
산업용(Bronze): v7.5.0.0+

4.3.4 프로그램 실행 일시 중지

메서드 이름execution.pause( program_name : str = '') -> StatusCodeEnum
설명현재 실행 중인 프로그램이나 로봇의 현재 동작을 일시 정지합니다.
요청 매개변수program_name : str 프로그램 이름(기본 빈 문자열, 현재 실행 중인 프로그램 또는 모션 명령을 일시 중지함).
반환 값StatusCodeEnum: 함수 실행 결과입니다.
호환 로봇 소프트웨어 버전협업(Copper): v7.5.0.0+
산업용(Bronze): v7.5.0.0+

4.3.5 프로그램 실행 재개

메서드 이름execution.resume( program_name : str = '') -> StatusCodeEnum
설명일시정지된 상태의 프로그램을 계속 실행합니다.
요청 매개변수program_name : str 프로그램 이름(기본적으로 빈 문자열, 현재 일시 중지된 프로그램 또는 모션 명령을 다시 시작함).
반환 값StatusCodeEnum: 함수 실행 결과입니다.
호환 로봇 소프트웨어 버전협업(Copper): v7.5.0.0+
산업용(Bronze): v7.5.0.0+

예제 코드

execution/program_execution.py
py
#!python
"""
Copyright © 2016 Agilebot Robotics Ltd. All rights reserved.
Instruction: 自定义程序使用示例 / Example of custom program usage
"""

import time

from Agilebot import Arm, StatusCodeEnum

# [ZH] 初始化捷勃特机器人
# [EN] Initialize the Agilebot robot
arm = Arm()
# [ZH] 连接捷勃特机器人
# [EN] Connect to the Agilebot robot
ret = arm.connect("10.27.1.254")
# [ZH] 检查是否连接成功
# [EN] Check if the connection is successful
if ret == StatusCodeEnum.OK:
    print("机器人连接成功 / Robot connection successful")
else:
    print(f"机器人连接失败,错误代码 / Robot connection failed, error code: {ret.errmsg}")
    arm.disconnect()
    exit(1)

program_name = "test"

# [ZH] 执行程序
# [EN] Execute program
ret = arm.execution.start(program_name)
if ret == StatusCodeEnum.OK:
    print("程序启动成功 / Program start successful")
else:
    print(f"程序启动失败,错误代码 / Program start failed, error code: {ret.errmsg}")
    arm.disconnect()
    exit(1)

# [ZH] 获取所有正在运行的程序
# [EN] Get all running programs
programs_list, ret = arm.execution.all_running_programs()
if ret == StatusCodeEnum.OK:
    print("获取运行程序列表成功 / Get running programs list successful")
else:
    print(f"获取运行程序列表失败,错误代码 / Get running programs list failed, error code: {ret.errmsg}")
    arm.disconnect()
    exit(1)
for program in programs_list:
    print(f"正在运行的程序名:{program}")

time.sleep(2)

# [ZH] 暂停程序
# [EN] Pause program
ret = arm.execution.pause(program_name)
if ret == StatusCodeEnum.OK:
    print("程序暂停成功 / Program pause successful")
else:
    print(f"程序暂停失败,错误代码 / Program pause failed, error code: {ret.errmsg}")
    arm.disconnect()
    exit(1)

time.sleep(2)

# [ZH] 恢复程序
# [EN] Resume program
ret = arm.execution.resume(program_name)
if ret == StatusCodeEnum.OK:
    print("程序恢复成功 / Program resume successful")
else:
    print(f"程序恢复失败,错误代码 / Program resume failed, error code: {ret.errmsg}")
    arm.disconnect()
    exit(1)

time.sleep(2)

# [ZH] 停止程序
# [EN] Stop program
ret = arm.execution.stop(program_name)
if ret == StatusCodeEnum.OK:
    print("程序停止成功 / Program stop successful")
else:
    print(f"程序停止失败,错误代码 / Program stop failed, error code: {ret.errmsg}")
    arm.disconnect()
    exit(1)

# [ZH] 断开捷勃特机器人连接
# [EN] Disconnect from the Agilebot robot
arm.disconnect()
print("机器人断开连接成功 / Robot disconnected successfully")

4.3.6 BAS 스크립트 프로그램 실행

메서드 이름execution.execute_bas_script( bas_script : BasScript |목록[str]) -> StatusCodeEnum
설명사용자 정의 BAS 스크립트 프로그램을 실행합니다.
요청 매개변수bas_script : BasScript 또는 list[str] 사용자 정의 BAS 스크립트 프로그램입니다.
반환 값StatusCodeEnum: 함수 실행 결과입니다.
메모BAS 스크립트 프로그램의 일시 중지, 재개 및 중지 방법은 일반 프로그램과 동일합니다.
호환 로봇 소프트웨어 버전협업(Copper): v7.5.2.0+
산업용(Bronze): v7.6.0.0+
execution/bas_script_execution.py
py
#!python
"""
Copyright © 2016 Agilebot Robotics Ltd. All rights reserved.
Instruction: Bas脚本创建和使用示例 / Example of Bas script creation and usage
"""

from Agilebot import *

# [ZH] 初始化Arm类
# [EN] Initialize the Arm class
arm = Arm()
# [ZH] 连接控制器
# [EN] Connect to the controller
ret = arm.connect("10.27.1.254")
if ret == StatusCodeEnum.OK:
    print("机器人连接成功 / Robot connected successfully")
else:
    print(f"机器人连接失败,错误代码 / Robot connection failed, error code: {ret.errmsg}")
    arm.disconnect()
    exit(1)

# [ZH] 创建BasScript对象
# [EN] Create BasScript object
bs = BasScript(name="bas_test")
ret = bs.assign_value(AssignType.R, 1, OtherType.VALUE, 10)
ret = bs.move_joint(
    pose_type=MovePoseType.PR,
    pose_index=1,
    speed_type=SpeedType.VALUE,
    speed_value=100,
    smooth_type=SmoothType.SMOOTH_DISTANCE,
    smooth_distance=200.5,
)
ret = bs.wait_time(ValueType.VALUE, 10)
if ret == StatusCodeEnum.OK:
    print("创建BasScript对象成功 / Create BasScript object successfully")
else:
    print(f"创建BasScript对象失败,错误代码 / Create BasScript object failed, error code: {ret.errmsg}")
    arm.disconnect()
    exit(1)

# [ZH] 执行脚本
# [EN] Execute script
ret = arm.execution.execute_bas_script(bs)
if ret == StatusCodeEnum.OK:
    print("执行脚本成功 / Execute script successfully")
else:
    print(f"执行脚本失败,错误代码 / Execute script failed, error code: {ret.errmsg}")
    arm.disconnect()
    exit(1)


# [ZH] 结束后断开机器人连接
# [EN] Disconnect from the robot after completion
arm.disconnect()
print("机器人断开连接成功 / Robot disconnected successfully")