4.6 등록정보
개요
레지스터 모듈은 호스트 컴퓨터가 컨트롤러 레지스터에서 읽고 쓸 수 있는 통합 게이트웨이를 제공하여 여러 레지스터 유형에 대한 작업을 지원합니다.
핵심 기능
- 숫자 레지스터 읽기 및 쓰기 지원(R)
- 모션 레지스터 읽기 및 쓰기 지원(MR)
- 문자열 레지스터 읽기 및 쓰기 지원(SR)
- 포즈 레지스터 읽기 및 쓰기 지원(PR)
- Modbus 레지스터 읽기 및 쓰기 지원(MH 보유 레지스터, MI 입력 레지스터)
사용 사례
- 프로그램 런타임 중 매개변수 전달
- 로봇 상태 정보 동기화
- 외부 시스템과 구성 데이터 공유
- 로봇과 외부 장치 간의 대화형 제어 구현
4.6.1 R 숫자 레지스터 작업
4.6.1.1 R 레지스터 값 읽기
| 메서드 이름 | register.read_R( index : int, with_meta : bool = False) -> tuple[float |등록, StatusCodeEnum] |
|---|---|
| 설명 | R 숫자 레지스터의 값을 읽습니다. |
| 요청 매개변수 | index : int R 읽을 레지스터 번호 with_meta : bool 레지스터 메타데이터 반환 여부(name/comment) |
| 반환 값 | float: R 레지스터 숫자값( with_meta=False ) 레지스터: 레지스터 객체( with_meta=True ) StatusCodeEnum: 연산 실행 결과 읽기 |
| 호환 로봇 소프트웨어 버전 | 협업(Copper): v7.6.0.1+ 산업용(Bronze): v7.6.0.0+ |
4.6.1.2 R 레지스터 값 쓰기
| 메서드 이름 | register.write_R( index : int, value : float) -> StatusCodeEnum register.write_R( register : Register) -> StatusCodeEnum |
|---|---|
| 설명 | R 숫자 레지스터의 값을 씁니다. |
| 요청 매개변수 | index : 쓸 int R 레지스터 번호 value : 쓸 R 레지스터 숫자 값 register : 레지스터 객체 (id/name/comment/value) |
| 반환 값 | StatusCodeEnum: 쓰기 작업 실행 결과 |
| 호환 로봇 소프트웨어 버전 | 협업(Copper): v7.6.0.1+ 산업용(Bronze): v7.6.0.0+ |
4.6.1.3 R 레지스터 삭제
| 메서드 이름 | register.delete_R( index : int) -> StatusCodeEnum |
|---|---|
| 설명 | 지정된 R 숫자 레지스터를 삭제합니다. |
| 요청 매개변수 | index : 삭제할 int R 레지스터 번호 |
| 반환 값 | StatusCodeEnum: 작업 실행 결과 삭제 |
| 호환 로봇 소프트웨어 버전 | 협업(Copper): v7.5.0.0+ 산업용(Bronze): v7.5.0.0+ |
예제 코드
py
#!python
"""
Copyright © 2016 Agilebot Robotics Ltd. All rights reserved.
Instruction: R寄存器读写示例 / Example of reading and writing the R register
"""
from Agilebot import Arm, Register, 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 connected successfully")
else:
print(f"机器人连接失败,错误代码 / Robot connection failed, error code: {ret.errmsg}")
arm.disconnect()
exit(1)
# [ZH] 添加R寄存器
# [EN] Add R register
ret = arm.register.write_R(5, 8.6)
if ret == StatusCodeEnum.OK:
print("写入R寄存器成功 / Write R register successful")
else:
print(f"写入R寄存器失败,错误代码 / Write R register failed, error code: {ret.errmsg}")
arm.disconnect()
exit(1)
# [ZH] 读取R寄存器
# [EN] Read R register
res, ret = arm.register.read_R(5)
if ret == StatusCodeEnum.OK:
print("读取R寄存器成功 / Read R register successful")
else:
print(f"读取R寄存器失败,错误代码 / Read R register failed, error code: {ret.errmsg}")
arm.disconnect()
exit(1)
# [ZH] 打印结果
# [EN] Print the result
print(f"R寄存器值 / R register value: {res}")
# [ZH] 使用Register对象写入R寄存器
# [EN] Write R register with Register object
reg = Register()
reg.id = 5
reg.value = 8.6
reg.name = "R5"
reg.comment = "example"
ret = arm.register.write_R(reg)
if ret == StatusCodeEnum.OK:
print("使用Register写入R寄存器成功 / Write R register with Register successful")
else:
print(f"使用Register写入R寄存器失败,错误代码 / Write R register with Register failed, error code: {ret.errmsg}")
arm.disconnect()
exit(1)
# [ZH] 读取R寄存器元信息
# [EN] Read R register meta info
reg_meta, ret = arm.register.read_R(5, with_meta=True)
if ret == StatusCodeEnum.OK:
print("读取R寄存器元信息成功 / Read R register meta successful")
print(f"名称 / Name: {reg_meta.name}, 注释 / Comment: {reg_meta.comment}")
else:
print(f"读取R寄存器元信息失败,错误代码 / Read R register meta failed, error code: {ret.errmsg}")
arm.disconnect()
exit(1)
# [ZH] 删除R寄存器
# [EN] Delete R register
ret = arm.register.delete_R(5)
if ret == StatusCodeEnum.OK:
print("删除R寄存器成功 / Delete R register successful")
else:
print(f"删除R寄存器失败,错误代码 / Delete R register failed, error code: {ret.errmsg}")
arm.disconnect()
exit(1)
# [ZH] 断开捷勃特机器人连接
# [EN] Disconnect from the Agilebot robot
arm.disconnect()
print("机器人断开连接成功 / Robot disconnected successfully")4.6.2 MR 모션 레지스터 작업
4.6.2.1 MR 레지스터 값 읽기
| 메서드 이름 | register.read_MR( index : int, with_meta : bool = False) -> tuple[int |모션레지스터, StatusCodeEnum] |
|---|---|
| 설명 | MR 모션 레지스터의 값을 읽습니다. |
| 요청 매개변수 | index : int MR 읽을 레지스터 번호 with_meta : bool 레지스터 메타데이터 반환 여부(name/comment) |
| 반환 값 | int: MR 레지스터 숫자값( with_meta=False ) MotionRegister: 레지스터 객체( with_meta=True ) StatusCodeEnum: 연산 실행 결과 읽기 |
| 호환 로봇 소프트웨어 버전 | 협업(Copper): v7.6.0.1+ 산업용(Bronze): v7.6.0.0+ |
4.6.2.2 MR 레지스터 값 쓰기
| 메서드 이름 | register.write_MR( index : int, value : int) -> StatusCodeEnum register.write_MR( register : MotionRegister) -> StatusCodeEnum |
|---|---|
| 설명 | MR 모션 레지스터의 값을 씁니다. |
| 요청 매개변수 | index : 쓸 int MR 레지스터 번호 value : int MR 쓸 레지스터 숫자 값 register : MotionRegister 객체(id/name/comment/value) |
| 반환 값 | StatusCodeEnum: 쓰기 작업 실행 결과 |
| 호환 로봇 소프트웨어 버전 | 협업(Copper): v7.6.0.1+ 산업용(Bronze): v7.6.0.0+ |
4.6.2.3 MR 등록 삭제
| 메서드 이름 | register.delete_MR( index : int) -> StatusCodeEnum |
|---|---|
| 설명 | 지정된 MR 모션 레지스터를 삭제합니다. |
| 요청 매개변수 | index : int MR 삭제할 레지스터 번호 |
| 반환 값 | StatusCodeEnum: 작업 실행 결과 삭제 |
| 호환 로봇 소프트웨어 버전 | 협업(Copper): v7.5.0.0+ 산업용(Bronze): v7.5.0.0+ |
예제 코드
py
#!python
"""
Copyright © 2016 Agilebot Robotics Ltd. All rights reserved.
Instruction: MR寄存器读写示例 / Example of reading and writing MR Registers
"""
from Agilebot import Arm, MotionRegister, 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 connected successfully")
else:
print(f"机器人连接失败,错误代码 / Robot connection failed, error code: {ret.errmsg}")
arm.disconnect()
exit(1)
# [ZH] 添加MR寄存器
# [EN] Add MR register
ret = arm.register.write_MR(5, 8)
if ret == StatusCodeEnum.OK:
print("写入MR寄存器成功 / Write MR register successful")
else:
print(f"写入MR寄存器失败,错误代码 / Write MR register failed, error code: {ret.errmsg}")
arm.disconnect()
exit(1)
# [ZH] 读取MR寄存器
# [EN] Read MR register
res, ret = arm.register.read_MR(5)
if ret == StatusCodeEnum.OK:
print("读取MR寄存器成功 / Read MR register successful")
else:
print(f"读取MR寄存器失败,错误代码 / Read MR register failed, error code: {ret.errmsg}")
arm.disconnect()
exit(1)
# [ZH] 打印结果
# [EN] Print the result
print(f"MR寄存器值 / MR register value: {res}")
# [ZH] 使用MotionRegister对象写入MR寄存器
# [EN] Write MR register with MotionRegister object
reg = MotionRegister()
reg.id = 5
reg.value = 8
reg.name = "MR5"
reg.comment = "example"
ret = arm.register.write_MR(reg)
if ret == StatusCodeEnum.OK:
print("使用MotionRegister写入MR寄存器成功 / Write MR register with MotionRegister successful")
else:
print(
f"使用MotionRegister写入MR寄存器失败,错误代码 / Write MR register with MotionRegister failed, error code: {ret.errmsg}"
)
arm.disconnect()
exit(1)
# [ZH] 读取MR寄存器元信息
# [EN] Read MR register meta info
reg_meta, ret = arm.register.read_MR(5, with_meta=True)
if ret == StatusCodeEnum.OK:
print("读取MR寄存器元信息成功 / Read MR register meta successful")
print(f"名称 / Name: {reg_meta.name}, 注释 / Comment: {reg_meta.comment}")
else:
print(f"读取MR寄存器元信息失败,错误代码 / Read MR register meta failed, error code: {ret.errmsg}")
arm.disconnect()
exit(1)
# [ZH] 删除MR寄存器
# [EN] Delete MR register
ret = arm.register.delete_MR(5)
if ret == StatusCodeEnum.OK:
print("删除MR寄存器成功 / Delete MR register successful")
else:
print(f"删除MR寄存器失败,错误代码 / Delete MR register failed, error code: {ret.errmsg}")
arm.disconnect()
exit(1)
# [ZH] 断开捷勃特机器人连接
# [EN] Disconnect from the Agilebot robot
arm.disconnect()
print("机器人断开连接成功 / Robot disconnected successfully")4.6.3 SR 문자열 레지스터 작업
4.6.3.1 SR 레지스터 값 읽기
| 메서드 이름 | register.read_SR( index : int, with_meta : bool = False) -> tuple[str |문자열 레지스터, StatusCodeEnum] |
|---|---|
| 설명 | SR 문자열 레지스터의 값을 읽습니다. |
| 요청 매개변수 | index : int SR 읽을 레지스터 번호 with_meta : bool 레지스터 메타데이터 반환 여부(name/comment) |
| 반환 값 | str: SR 레지스터 문자열 값( with_meta=False ) StringRegister: 레지스터 객체( with_meta=True ) StatusCodeEnum: 연산 실행 결과 읽기 |
| 호환 로봇 소프트웨어 버전 | 협업(Copper): v7.6.0.1+ 산업용(Bronze): v7.6.0.0+ |
4.6.3.2 SR 레지스터 값 쓰기
| 메서드 이름 | register.write_SR( index : int, value : str) -> StatusCodeEnum register.write_SR( register : StringRegister) -> StatusCodeEnum |
|---|---|
| 설명 | SR 문자열 레지스터의 값을 씁니다. |
| 요청 매개변수 | index : 쓸 int SR 레지스터 번호 value : str SR 쓸 레지스터 문자열 값 register : StringRegister 객체(id/name/comment/value) |
| 반환 값 | StatusCodeEnum: 쓰기 작업 실행 결과 |
| 호환 로봇 소프트웨어 버전 | 협업(Copper): v7.6.0.1+ 산업용(Bronze): v7.6.0.0+ |
4.6.3.3 SR 등록 삭제
| 메서드 이름 | register.delete_SR( index : int) -> StatusCodeEnum |
|---|---|
| 설명 | 지정된 SR 문자열 레지스터를 삭제합니다. |
| 요청 매개변수 | index : int SR 삭제할 레지스터 번호 |
| 반환 값 | StatusCodeEnum: 작업 실행 결과 삭제 |
| 호환 로봇 소프트웨어 버전 | 협업(Copper): v7.5.0.0+ 산업용(Bronze): v7.5.0.0+ |
예제 코드
py
#!python
"""
Copyright © 2016 Agilebot Robotics Ltd. All rights reserved.
Instruction: SR寄存器读写示例 / Example of reading and writing SR registers
"""
from Agilebot import Arm, StatusCodeEnum, StringRegister
# [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 connected successfully")
else:
print(f"机器人连接失败,错误代码 / Robot connection failed, error code: {ret.errmsg}")
arm.disconnect()
exit(1)
# [ZH] 添加SR寄存器
# [EN] Add SR register
ret = arm.register.write_SR(5, "pytest")
if ret == StatusCodeEnum.OK:
print("写入SR寄存器成功 / Write SR register successful")
else:
print(f"写入SR寄存器失败,错误代码 / Write SR register failed, error code: {ret.errmsg}")
arm.disconnect()
exit(1)
# [ZH] 读取SR寄存器
# [EN] Read SR register
res, ret = arm.register.read_SR(5)
if ret == StatusCodeEnum.OK:
print("读取SR寄存器成功 / Read SR register successful")
else:
print(f"读取SR寄存器失败,错误代码 / Read SR register failed, error code: {ret.errmsg}")
arm.disconnect()
exit(1)
# [ZH] 打印结果
# [EN] Print the result
print(f"SR寄存器值 / SR register value: {res}")
# [ZH] 使用StringRegister对象写入SR寄存器
# [EN] Write SR register with StringRegister object
reg = StringRegister()
reg.id = 5
reg.value = "pytest"
reg.name = "SR5"
reg.comment = "example"
ret = arm.register.write_SR(reg)
if ret == StatusCodeEnum.OK:
print("使用StringRegister写入SR寄存器成功 / Write SR register with StringRegister successful")
else:
print(
f"使用StringRegister写入SR寄存器失败,错误代码 / Write SR register with StringRegister failed, error code: {ret.errmsg}"
)
arm.disconnect()
exit(1)
# [ZH] 读取SR寄存器元信息
# [EN] Read SR register meta info
reg_meta, ret = arm.register.read_SR(5, with_meta=True)
if ret == StatusCodeEnum.OK:
print("读取SR寄存器元信息成功 / Read SR register meta successful")
print(f"名称 / Name: {reg_meta.name}, 注释 / Comment: {reg_meta.comment}")
else:
print(f"读取SR寄存器元信息失败,错误代码 / Read SR register meta failed, error code: {ret.errmsg}")
arm.disconnect()
exit(1)
# [ZH] 删除SR寄存器
# [EN] Delete SR register
ret = arm.register.delete_SR(5)
if ret == StatusCodeEnum.OK:
print("删除SR寄存器成功 / Delete SR register successful")
else:
print(f"删除SR寄存器失败,错误代码 / Delete SR register failed, error code: {ret.errmsg}")
arm.disconnect()
exit(1)
# [ZH] 断开捷勃特机器人连接
# [EN] Disconnect from the Agilebot robot
arm.disconnect()
print("机器人断开连接成功 / Robot disconnected successfully")4.6.4 PR 포즈 레지스터 작업
4.6.4.1 PR 레지스터 값 읽기
| 메서드 이름 | register.read_PR( index : int, with_meta : bool = False) -> tuple[PoseRegister, StatusCodeEnum] |
|---|---|
| 설명 | PR 포즈 레지스터의 값을 읽습니다. |
| 요청 매개변수 | index : int PR 읽을 레지스터 번호 with_meta : bool 레지스터 메타데이터 반환 여부(name/comment) |
| 반환 값 | PoseRegister: PR 포즈 데이터 등록( with_meta=True 인 경우 이름/comment 포함) StatusCodeEnum: 작업 실행 결과 읽기 |
| 호환 로봇 소프트웨어 버전 | 협업(Copper): v7.6.0.1+ 산업용(Bronze): v7.6.0.0+ |
4.6.4.2 PR 레지스터 값 쓰기
| 메서드 이름 | register.write_PR( value : PoseRegister, with_meta : bool = False) -> StatusCodeEnum |
|---|---|
| 설명 | PR 포즈 레지스터의 값을 씁니다. |
| 요청 매개변수 | value : PoseRegister PR 쓸 포즈 데이터를 등록합니다. with_meta : bool 이름 쓸지 여부/comment |
| 반환 값 | StatusCodeEnum: 쓰기 작업 실행 결과 |
| 호환 로봇 소프트웨어 버전 | 협업(Copper): v7.6.0.1+ 산업용(Bronze): v7.6.0.0+ |
4.6.4.3 PR 등록 삭제
| 메서드 이름 | register.delete_PR( index : int) -> StatusCodeEnum |
|---|---|
| 설명 | 지정된 PR 포즈 레지스터를 삭제합니다. |
| 요청 매개변수 | index : int PR 삭제할 레지스터 번호 |
| 반환 값 | StatusCodeEnum: 작업 실행 결과 삭제 |
| 호환 로봇 소프트웨어 버전 | 협업(Copper): v7.5.0.0+ 산업용(Bronze): v7.5.0.0+ |
예제 코드
py
#!python
"""
Copyright © 2016 Agilebot Robotics Ltd. All rights reserved.
Instruction: PR寄存器读写示例 / Example of reading and writing to the PR register
"""
from Agilebot import Arm, PoseRegister, PoseType, Posture, StatusCodeEnum
# [ZH] 初始化捷勃特机器人
# [EN] Initialize Agilebot robot
arm = Arm()
# [ZH] 连接捷勃特机器人
# [EN] Connect to Agilebot robot
ret = arm.connect("10.27.1.254")
# [ZH] 检查是否连接成功
# [EN] Check if connection is successful
if ret == StatusCodeEnum.OK:
print("机器人连接成功 / Robot connected successfully")
else:
print(f"机器人连接失败,错误代码 / Robot connection failed, error code: {ret.errmsg}")
arm.disconnect()
exit(1)
# [ZH] 添加PR寄存器
# [EN] Add PR register
# [ZH] 创建位姿
# [EN] Create pose
pose_register = PoseRegister()
posture = Posture()
posture.arm_back_front = 1
pose_register.poseRegisterData.cartData.posture = posture
pose_register.id = 5
pose_register.poseRegisterData.pt = PoseType.CART
pose_register.poseRegisterData.cartData.position.x = 100
pose_register.poseRegisterData.cartData.position.y = 200
pose_register.poseRegisterData.cartData.position.z = 300
ret = arm.register.write_PR(pose_register)
if ret == StatusCodeEnum.OK:
print("写入PR寄存器成功 / Write PR register successful")
else:
print(f"写入PR寄存器失败,错误代码 / Write PR register failed, error code: {ret.errmsg}")
arm.disconnect()
exit(1)
# [ZH] 读取PR寄存器
# [EN] Read PR register
res, ret = arm.register.read_PR(5)
if ret == StatusCodeEnum.OK:
print("读取PR寄存器成功 / Read PR register successful")
else:
print(f"读取PR寄存器失败,错误代码 / Read PR register failed, error code: {ret.errmsg}")
arm.disconnect()
exit(1)
# [ZH] 打印结果
# [EN] Print result
print(
f"位姿寄存器ID / Pose register ID: {res.id}\n"
f"位姿类型 / Pose type: {res.poseRegisterData.pt}\n"
f"X / X: {res.poseRegisterData.cartData.position.x}\n"
f"Y / Y: {res.poseRegisterData.cartData.position.y}\n"
f"Z / Z: {res.poseRegisterData.cartData.position.z}\n"
f"C / C: {res.poseRegisterData.cartData.position.c}\n"
f"B / B: {res.poseRegisterData.cartData.position.b}\n"
f"A / A: {res.poseRegisterData.cartData.position.a}\n"
)
# [ZH] 写入PR寄存器元信息
# [EN] Write PR register meta info
pose_register.name = "PR5"
pose_register.comment = "example"
ret = arm.register.write_PR(pose_register, with_meta=True)
if ret == StatusCodeEnum.OK:
print("写入PR寄存器成功 / Write PR register successful")
else:
print(f"写入PR寄存器失败,错误代码 / Write PR register failed, error code: {ret.errmsg}")
arm.disconnect()
exit(1)
# [ZH] 读取PR寄存器元信息
# [EN] Read PR register meta info
reg_meta, ret = arm.register.read_PR(5, with_meta=True)
if ret == StatusCodeEnum.OK:
print("读取PR寄存器元信息成功 / Read PR register meta successful")
print(f"名称 / Name: {reg_meta.name}, 注释 / Comment: {reg_meta.comment}")
else:
print(f"读取PR寄存器元信息失败,错误代码 / Read PR register meta failed, error code: {ret.errmsg}")
arm.disconnect()
exit(1)
# [ZH] 删除PR寄存器
# [EN] Delete PR register
ret = arm.register.delete_PR(5)
if ret == StatusCodeEnum.OK:
print("删除PR寄存器成功 / Delete PR register successful")
else:
print(f"删除PR寄存器失败,错误代码 / Delete PR register failed, error code: {ret.errmsg}")
arm.disconnect()
exit(1)
# [ZH] 断开捷勃特机器人连接
# [EN] Disconnect from Agilebot robot
arm.disconnect()
print("机器人断开连接成功 / Robot disconnected successfully")4.6.5 Modbus 레지스터(MH 홀딩 레지스터, MI 입력 레지스터)
4.6.5.1 MH 레지스터 값 읽기
| 메서드 이름 | register.read_MH( index : int) -> tuple[int, StatusCodeEnum] |
|---|---|
| 설명 | MH 보유 레지스터의 값을 읽습니다. |
| 요청 매개변수 | index : int MH 읽을 레지스터 번호 |
| 반환 값 | int: MH 레지스터 숫자값 StatusCodeEnum: 연산 실행 결과 읽기 |
| 호환 로봇 소프트웨어 버전 | 협업(Copper): v7.6.0.0+ 산업용(Bronze): v7.6.0.0+ |
4.6.5.2 MH 레지스터 값 쓰기
| 메서드 이름 | register.write_MH( index : int, value : int) -> StatusCodeEnum |
|---|---|
| 설명 | MH 보유 레지스터의 값을 씁니다. |
| 요청 매개변수 | index : int MH 쓸 레지스터 번호 value : int MH 쓸 레지스터 숫자값 |
| 반환 값 | StatusCodeEnum: 쓰기 작업 실행 결과 |
| 호환 로봇 소프트웨어 버전 | 협업(Copper): v7.6.0.0+ 산업용(Bronze): v7.6.0.0+ |
4.6.5.3 MI 레지스터 값 읽기
| 메서드 이름 | register.read_MI( index : int) -> tuple[int, StatusCodeEnum] |
|---|---|
| 설명 | MI 입력 레지스터의 값을 읽습니다. |
| 요청 매개변수 | index : int MI 읽을 레지스터 번호 |
| 반환 값 | int: MI 레지스터 숫자값 StatusCodeEnum: 연산 실행 결과 읽기 |
| 호환 로봇 소프트웨어 버전 | 협업(Copper): v7.6.0.0+ 산업용(Bronze): v7.6.0.0+ |
4.6.5.4 MI 레지스터 값 쓰기
| 메서드 이름 | register.write_MI( index : int, value : int) -> StatusCodeEnum |
|---|---|
| 설명 | MI 입력 레지스터의 값을 씁니다. |
| 요청 매개변수 | index : int MI 쓸 레지스터 번호 value : int MI 쓸 레지스터 숫자값 |
| 반환 값 | StatusCodeEnum: 쓰기 작업 실행 결과 |
| 호환 로봇 소프트웨어 버전 | 협업(Copper): v7.6.0.0+ 산업용(Bronze): v7.6.0.0+ |
예제 코드
py
#!python
"""
Copyright © 2016 Agilebot Robotics Ltd. All rights reserved.
Instruction: MH寄存器及MI寄存器读写示例 / Example of reading and writing to the MH register and MI register
"""
from Agilebot import Arm, StatusCodeEnum
# [ZH] 初始化捷勃特机器人
# [EN] Initialize Agilebot robot
arm = Arm()
# [ZH] 连接捷勃特机器人
# [EN] Connect to Agilebot robot
ret = arm.connect("10.27.1.254")
# [ZH] 检查是否连接成功
# [EN] Check if connection is successful
if ret == StatusCodeEnum.OK:
print("机器人连接成功 / Robot connected successfully")
else:
print(f"机器人连接失败,错误代码 / Robot connection failed, error code: {ret.errmsg}")
arm.disconnect()
exit(1)
# [ZH] 读取MH寄存器
# [EN] Read MH register
res, ret = arm.register.read_MH(1)
if ret == StatusCodeEnum.OK:
print("读取MH寄存器成功 / Read MH register successful")
else:
print(f"读取MH寄存器失败,错误代码 / Read MH register failed, error code: {ret.errmsg}")
arm.disconnect()
exit(1)
# [ZH] 打印结果
# [EN] Print result
print(f"MH寄存器 / MH register: {res}")
# [ZH] 写入MH寄存器
# [EN] Write MH register
ret = arm.register.write_MH(1, 16)
if ret == StatusCodeEnum.OK:
print("写入MH寄存器成功 / Write MH register successful")
else:
print(f"写入MH寄存器失败,错误代码 / Write MH register failed, error code: {ret.errmsg}")
arm.disconnect()
exit(1)
# [ZH] 读取MI寄存器
# [EN] Read MI register
res, ret = arm.register.read_MI(1)
if ret == StatusCodeEnum.OK:
print("读取MI寄存器成功 / Read MI register successful")
else:
print(f"读取MI寄存器失败,错误代码 / Read MI register failed, error code: {ret.errmsg}")
arm.disconnect()
exit(1)
# [ZH] 打印结果
# [EN] Print result
print(f"MI寄存器 / MI register: {res}")
# [ZH] 写入MI寄存器
# [EN] Write MI register
ret = arm.register.write_MI(1, 18)
if ret == StatusCodeEnum.OK:
print("写入MI寄存器成功 / Write MI register successful")
else:
print(f"写入MI寄存器失败,错误代码 / Write MI register failed, error code: {ret.errmsg}")
arm.disconnect()
exit(1)
# [ZH] 断开捷勃特机器人连接
# [EN] Disconnect from Agilebot robot
arm.disconnect()
print("机器人断开连接成功 / Robot disconnected successfully")