4.6 Register Information
Overview
The Register module provides a unified gateway for the host computer to read from and write to controller registers, covering numeric registers (R), motion registers (MR), string registers (SR), pose registers (PR), and Modbus registers.
Through the register interface you can batch-read, write, or delete data in any of these register types, making it easy to pass parameters, synchronize states, or share configuration with external systems while the program is running.
4.6.1 R Numeric Register Operations
4.6.1.1 Read the Value of an R Register
| Method Name | register.read_R( index : int) -> tuple[float, StatusCodeEnum] |
|---|---|
| Description | Reads the value of an R numeric register. |
| Request Parameters | index : int R register number to read |
| Return Value | float: R register numeric value StatusCodeEnum: Read operation execution result |
| Compatible robot software version | Collaborative (Copper): v7.6.0.1+ Industrial (Bronze): v7.6.0.0+ |
4.6.1.2 Write the Value of an R Register
| Method Name | register.write_R( index : int, value : float) -> StatusCodeEnum |
|---|---|
| Description | Writes the value of an R numeric register. |
| Request Parameters | index : int R register number to write value : float R register numeric value to write |
| Return Value | StatusCodeEnum: Write operation execution result |
| Compatible robot software version | Collaborative (Copper): v7.6.0.1+ Industrial (Bronze): v7.6.0.0+ |
4.6.1.3 Delete an R Register
| Method Name | register.delete_R( index : int) -> StatusCodeEnum |
|---|---|
| Description | Deletes the specified R numeric register. |
| Request Parameters | index : int R register number to delete |
| Return Value | StatusCodeEnum: Delete operation execution result |
| Compatible robot software version | Collaborative (Copper): v7.5.0.0+ Industrial (Bronze): v7.5.0.0+ |
Example Code
py
#!python
"""
Copyright © 2016 Agilebot Robotics Ltd. All rights reserved.
Instruction: R寄存器读写示例 / Example of reading and writing the R register
"""
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 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] 删除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 Motion Register Operations
4.6.2.1 Read the Value of an MR Register
| Method Name | register.read_MR( index : int) -> tuple[int, StatusCodeEnum] |
|---|---|
| Description | Reads the value of an MR motion register. |
| Request Parameters | index : int MR register number to read |
| Return Value | int: MR register numeric value StatusCodeEnum: Read operation execution result |
| Compatible robot software version | Collaborative (Copper): v7.6.0.1+ Industrial (Bronze): v7.6.0.0+ |
4.6.2.2 Write the Value of an MR Register
| Method Name | register.write_MR( index : int, value : int) -> StatusCodeEnum |
|---|---|
| Description | Writes the value of an MR motion register. |
| Request Parameters | index : int MR register number to write value : int MR register numeric value to write |
| Return Value | StatusCodeEnum: Write operation execution result |
| Compatible robot software version | Collaborative (Copper): v7.6.0.1+ Industrial (Bronze): v7.6.0.0+ |
4.6.2.3 Delete an MR Register
| Method Name | register.delete_MR( index : int) -> StatusCodeEnum |
|---|---|
| Description | Deletes the specified MR motion register. |
| Request Parameters | index : int MR register number to delete |
| Return Value | StatusCodeEnum: Delete operation execution result |
| Compatible robot software version | Collaborative (Copper): v7.5.0.0+ Industrial (Bronze): v7.5.0.0+ |
Example Code
py
#!python
"""
Copyright © 2016 Agilebot Robotics Ltd. All rights reserved.
Instruction: MR寄存器读写示例 / Example of reading and writing MR Registers
"""
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 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] 删除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 String Register Operations
4.6.3.1 Read the Value of an SR Register
| Method Name | register.read_SR( index : int) -> tuple[str, StatusCodeEnum] |
|---|---|
| Description | Reads the value of an SR string register. |
| Request Parameters | index : int SR register number to read |
| Return Value | str: SR register string value StatusCodeEnum: Read operation execution result |
| Compatible robot software version | Collaborative (Copper): v7.6.0.1+ Industrial (Bronze): v7.6.0.0+ |
4.6.3.2 Write the Value of an SR Register
| Method Name | register.write_SR( index : int, value : str) -> StatusCodeEnum |
|---|---|
| Description | Writes the value of an SR string register. |
| Request Parameters | index : int SR register number to write value : str SR register string value to write |
| Return Value | StatusCodeEnum: Write operation execution result |
| Compatible robot software version | Collaborative (Copper): v7.6.0.1+ Industrial (Bronze): v7.6.0.0+ |
4.6.3.3 Delete an SR Register
| Method Name | register.delete_SR( index : int) -> StatusCodeEnum |
|---|---|
| Description | Deletes the specified SR string register. |
| Request Parameters | index : int SR register number to delete |
| Return Value | StatusCodeEnum: Delete operation execution result |
| Compatible robot software version | Collaborative (Copper): v7.5.0.0+ Industrial (Bronze): v7.5.0.0+ |
Example Code
py
#!python
"""
Copyright © 2016 Agilebot Robotics Ltd. All rights reserved.
Instruction: SR寄存器读写示例 / Example of reading and writing SR registers
"""
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 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] 删除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 Pose Register Operations
4.6.4.1 Read the Value of a PR Register
| Method Name | register.read_PR( index : int) -> tuple[PoseRegister, StatusCodeEnum] |
|---|---|
| Description | Reads the value of a PR pose register. |
| Request Parameters | index : int PR register number to read |
| Return Value | PoseRegister: PR register pose data StatusCodeEnum: Read operation execution result |
| Compatible robot software version | Collaborative (Copper): v7.6.0.1+ Industrial (Bronze): v7.6.0.0+ |
4.6.4.2 Write the Value of a PR Register
| Method Name | register.write_PR( value : PoseRegister) -> StatusCodeEnum |
|---|---|
| Description | Writes the value of a PR pose register. |
| Request Parameters | value : PoseRegister PR register pose data to write |
| Return Value | StatusCodeEnum: Write operation execution result |
| Compatible robot software version | Collaborative (Copper): v7.6.0.1+ Industrial (Bronze): v7.6.0.0+ |
4.6.4.3 Delete a PR Register
| Method Name | register.delete_PR( index : int) -> StatusCodeEnum |
|---|---|
| Description | Deletes the specified PR pose register. |
| Request Parameters | index : int PR register number to delete |
| Return Value | StatusCodeEnum: Delete operation execution result |
| Compatible robot software version | Collaborative (Copper): v7.5.0.0+ Industrial (Bronze): v7.5.0.0+ |
Example Code
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] 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 Registers (MH Holding Registers, MI Input Registers)
4.6.5.1 Read the Value of an MH Register
| Method Name | register.read_MH( index : int) -> tuple[int, StatusCodeEnum] |
|---|---|
| Description | Reads the value of an MH holding register. |
| Request Parameters | index : int MH register number to read |
| Return Value | int: MH register numeric value StatusCodeEnum: Read operation execution result |
| Compatible robot software version | Collaborative (Copper): v7.6.0.0+ Industrial (Bronze): v7.6.0.0+ |
4.6.5.2 Write the Value of an MH Register
| Method Name | register.write_MH( index : int, value : int) -> StatusCodeEnum |
|---|---|
| Description | Writes the value of an MH holding register. |
| Request Parameters | index : int MH register number to write value : int MH register numeric value to write |
| Return Value | StatusCodeEnum: Write operation execution result |
| Compatible robot software version | Collaborative (Copper): v7.6.0.0+ Industrial (Bronze): v7.6.0.0+ |
4.6.5.3 Read the Value of an MI Register
| Method Name | register.read_MI( index : int) -> tuple[int, StatusCodeEnum] |
|---|---|
| Description | Reads the value of an MI input register. |
| Request Parameters | index : int MI register number to read |
| Return Value | int: MI register numeric value StatusCodeEnum: Read operation execution result |
| Compatible robot software version | Collaborative (Copper): v7.6.0.0+ Industrial (Bronze): v7.6.0.0+ |
4.6.5.4 Write the Value of an MI Register
| Method Name | register.write_MI( index : int, value : int) -> StatusCodeEnum |
|---|---|
| Description | Writes the value of an MI input register. |
| Request Parameters | index : int MI register number to write value : int MI register numeric value to write |
| Return Value | StatusCodeEnum: Write operation execution result |
| Compatible robot software version | Collaborative (Copper): v7.6.0.0+ Industrial (Bronze): v7.6.0.0+ |
Example Code
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")