Skip to content

Modbus 配置ModbusConfig

可用于Modbus 配置,睿尔曼机械臂在控制器和末端接口板上各提供一个RS485通讯接口,这些接口可通过接口配置为标准的Modbus RTU模式。在Modbus RTU模式下,用户可通过提供的接口对连接在端口上的外设进行读写操作。下面是Modbus配置ModbusConfig的详细成员函数说明,包含了方法原型、参数说明、返回值说明和使用示例。

注意

  • Modbus支持切换RTU或TCP模式,请根据需要进行配置。
  • 此外,还支持添加多个modbus-TCP主站配置。

新增Modbus TCP主站 rm_add_modbus_tcp_master()

  • 方法原型:
python
rm_add_modbus_tcp_master(self, modbus_tcp_master: rm_modbus_tcp_master_info_t) -> int:

可以跳转rm_modbus_tcp_master_info_t查阅结构体详细描述。

  • 参数说明:
名称类型说明
modbus_tcp_masterrm_modbus_tcp_master_info_tModbus TCP主站配置结构体。
  • 返回值:
    函数执行的状态码:
参数类型说明处理建议
0int成功。-
1int控制器返回false,传递参数错误或机械臂状态发生错误。- 校验JSON指令
①启用API的DEBUG日志,捕获原始JSON数据。
②检查JSON语法:确保括号、引号、逗号等格式正确(可借助JSON校验工具)。
③对照API文档,验证参数名称、数据类型及取值范围是否符合规范。
④修正问题后重新发送指令,检查控制器返回的状态码及业务数据是否正常。
- 检查机械臂状态
①查看机械臂控制器或日志中的实时报错信息(如硬件故障、超限等),根据提示复位、校准或排查硬件问题。
②修正问题后重新发送指令,检查控制器返回的状态码及业务数据是否正常。
-1int数据发送失败,通信过程中出现问题。检查网络连通性
使用ping/telnet等工具检测与控制器的通信链路是否正常。
-2int数据接收失败,通信过程中出现问题或者控制器超时没有返回。- 检查网络连通性
使用ping/telnet等工具检测与控制器的通信链路是否正常。
- 校验版本兼容性
①核对控制器固件版本是否支持当前API功能,具体版本配套关系请参考版本变更说明
②若版本过低需升级控制器或使用适配的API版本。
-3int返回值解析失败,接收到的数据格式不正确或不完整。校验版本兼容性
①核对控制器固件版本是否支持当前API功能,具体版本配套关系请参考版本变更说明
②若版本过低需升级控制器或使用适配的API版本。
-4int三代控制器不支持该接口-
  • 使用示例
python
from Robotic_Arm.rm_robot_interface import *

# 实例化RoboticArm类
arm = RoboticArm(rm_thread_mode_e.RM_TRIPLE_MODE_E)

# 创建机械臂连接,打印连接id
handle = arm.rm_create_robot_arm("192.168.1.18", 8080)
print(handle.id)

# 添加Modbus TCP主站配置
master = rm_modbus_tcp_master_info_t("test", "127.0.0.1", 502)
print(arm.rm_add_modbus_tcp_master(master))

arm.rm_delete_robot_arm()

更新Modbus TCP主站 rm_update_modbus_tcp_master()

  • 方法原型:
python
rm_update_modbus_tcp_master(self, master_name:str, modbus_tcp_master: rm_modbus_tcp_master_info_t) -> int:

可以跳转rm_modbus_tcp_master_info_t查阅结构体详细描述。

  • 参数说明:
名称类型说明
master_namestrModbus TCP主站名称。
modbus_tcp_masterrm_modbus_tcp_master_info_t要修改的Modbus TCP主站信息。
  • 返回值:
    函数执行的状态码:
参数类型说明处理建议
0int成功。-
1int控制器返回false,传递参数错误或机械臂状态发生错误。- 校验JSON指令
①启用API的DEBUG日志,捕获原始JSON数据。
②检查JSON语法:确保括号、引号、逗号等格式正确(可借助JSON校验工具)。
③对照API文档,验证参数名称、数据类型及取值范围是否符合规范。
④修正问题后重新发送指令,检查控制器返回的状态码及业务数据是否正常。
- 检查机械臂状态
①查看机械臂控制器或日志中的实时报错信息(如硬件故障、超限等),根据提示复位、校准或排查硬件问题。
②修正问题后重新发送指令,检查控制器返回的状态码及业务数据是否正常。
-1int数据发送失败,通信过程中出现问题。检查网络连通性
使用ping/telnet等工具检测与控制器的通信链路是否正常。
-2int数据接收失败,通信过程中出现问题或者控制器超时没有返回。- 检查网络连通性
使用ping/telnet等工具检测与控制器的通信链路是否正常。
- 校验版本兼容性
①核对控制器固件版本是否支持当前API功能,具体版本配套关系请参考版本变更说明
②若版本过低需升级控制器或使用适配的API版本。
-3int返回值解析失败,接收到的数据格式不正确或不完整。校验版本兼容性
①核对控制器固件版本是否支持当前API功能,具体版本配套关系请参考版本变更说明
②若版本过低需升级控制器或使用适配的API版本。
-4int三代控制器不支持该接口-
  • 使用示例
python
from Robotic_Arm.rm_robot_interface import *

# 实例化RoboticArm类
arm = RoboticArm(rm_thread_mode_e.RM_TRIPLE_MODE_E)

# 创建机械臂连接,打印连接id
handle = arm.rm_create_robot_arm("192.168.1.18", 8080)
print(handle.id)

# 修改指定Modbus TCP主站配置
master = rm_modbus_tcp_master_info_t("test_1", "127.0.0.1", 502)
print(arm.rm_update_modbus_tcp_master("test", master))

arm.rm_delete_robot_arm()

删除Modbus TCP主站 rm_delete_modbus_tcp_master()

  • 方法原型:
python
rm_delete_modbus_tcp_master(self, master_name:str) -> int:
  • 参数说明:
名称类型说明
master_namestrModbus TCP主站名称。
  • 返回值:
    函数执行的状态码:
参数类型说明处理建议
0int成功。-
1int控制器返回false,传递参数错误或机械臂状态发生错误。- 校验JSON指令
①启用API的DEBUG日志,捕获原始JSON数据。
②检查JSON语法:确保括号、引号、逗号等格式正确(可借助JSON校验工具)。
③对照API文档,验证参数名称、数据类型及取值范围是否符合规范。
④修正问题后重新发送指令,检查控制器返回的状态码及业务数据是否正常。
- 检查机械臂状态
①查看机械臂控制器或日志中的实时报错信息(如硬件故障、超限等),根据提示复位、校准或排查硬件问题。
②修正问题后重新发送指令,检查控制器返回的状态码及业务数据是否正常。
-1int数据发送失败,通信过程中出现问题。检查网络连通性
使用ping/telnet等工具检测与控制器的通信链路是否正常。
-2int数据接收失败,通信过程中出现问题或者控制器超时没有返回。- 检查网络连通性
使用ping/telnet等工具检测与控制器的通信链路是否正常。
- 校验版本兼容性
①核对控制器固件版本是否支持当前API功能,具体版本配套关系请参考版本变更说明
②若版本过低需升级控制器或使用适配的API版本。
-3int返回值解析失败,接收到的数据格式不正确或不完整。校验版本兼容性
①核对控制器固件版本是否支持当前API功能,具体版本配套关系请参考版本变更说明
②若版本过低需升级控制器或使用适配的API版本。
-4int三代控制器不支持该接口-
  • 使用示例
python
from Robotic_Arm.rm_robot_interface import *

# 实例化RoboticArm类
arm = RoboticArm(rm_thread_mode_e.RM_TRIPLE_MODE_E)

# 创建机械臂连接,打印连接id
handle = arm.rm_create_robot_arm("192.168.1.18", 8080)
print(handle.id)

# 删除指定Modbus TCP主站配置
print(arm.rm_delete_modbus_tcp_master("test"))

arm.rm_delete_robot_arm()

查询指定Modbus TCP主站 rm_get_modbus_tcp_master()

  • 方法原型:
python
rm_get_modbus_tcp_master(self, master_name:str) -> tuple[int, dict[str, any]]:
  • 参数说明:
名称类型说明
master_namestrModbus TCP主站名称。
  • 返回值:

tuple[int,dict[str,any]]: 包含两个元素的元组。

  1. int:函数执行的状态码:

    参数类型说明处理建议
    0int成功。-
    1int控制器返回false,传递参数错误或机械臂状态发生错误。- 校验JSON指令
    ①启用API的DEBUG日志,捕获原始JSON数据。
    ②检查JSON语法:确保括号、引号、逗号等格式正确(可借助JSON校验工具)。
    ③对照API文档,验证参数名称、数据类型及取值范围是否符合规范。
    ④修正问题后重新发送指令,检查控制器返回的状态码及业务数据是否正常。
    - 检查机械臂状态
    ①查看机械臂控制器或日志中的实时报错信息(如硬件故障、超限等),根据提示复位、校准或排查硬件问题。
    ②修正问题后重新发送指令,检查控制器返回的状态码及业务数据是否正常。
    -1int数据发送失败,通信过程中出现问题。检查网络连通性
    使用ping/telnet等工具检测与控制器的通信链路是否正常。
    -2int数据接收失败,通信过程中出现问题或者控制器超时没有返回。- 检查网络连通性
    使用ping/telnet等工具检测与控制器的通信链路是否正常。
    - 校验版本兼容性
    ①核对控制器固件版本是否支持当前API功能,具体版本配套关系请参考版本变更说明
    ②若版本过低需升级控制器或使用适配的API版本。
    -3int返回值解析失败,接收到的数据格式不正确或不完整。校验版本兼容性
    ①核对控制器固件版本是否支持当前API功能,具体版本配套关系请参考版本变更说明
    ②若版本过低需升级控制器或使用适配的API版本。
    -4int三代控制器不支持该接口-
  2. dict[str,any]:指定Modbus TCP主站信息:

    参数类型说明
    -dict[str,any]返回指定Modbus TCP主站信息字典,键为rm_modbus_tcp_master_info_t结构体的字段名称。

    可以跳转rm_modbus_tcp_master_info_t查阅结构体详细描述。

  • 使用示例
python
from Robotic_Arm.rm_robot_interface import *

# 实例化RoboticArm类
arm = RoboticArm(rm_thread_mode_e.RM_TRIPLE_MODE_E)

# 创建机械臂连接,打印连接id
handle = arm.rm_create_robot_arm("192.168.1.18", 8080)
print(handle.id)

# 查询指定Modbus TCP主站配置
print(arm.rm_get_modbus_tcp_master("test"))

arm.rm_delete_robot_arm()

查询Modbus TCP主站列表 rm_get_modbus_tcp_master_list()

  • 方法原型:
python
rm_get_modbus_tcp_master_list(self, page_num: int, page_size: int, vague_search: str) -> tuple[int, dict[str, any]]:
  • 参数说明:
名称类型说明
page_numint页码。
page_sizeint每页大小。
vague_searchstr模糊搜索。
  • 返回值:
    tuple[int,dict[str,any]]: 包含两个元素的元组。
  1. int:函数执行的状态码:

    参数类型说明处理建议
    0int成功。-
    1int控制器返回false,传递参数错误或机械臂状态发生错误。- 校验JSON指令
    ①启用API的DEBUG日志,捕获原始JSON数据。
    ②检查JSON语法:确保括号、引号、逗号等格式正确(可借助JSON校验工具)。
    ③对照API文档,验证参数名称、数据类型及取值范围是否符合规范。
    ④修正问题后重新发送指令,检查控制器返回的状态码及业务数据是否正常。
    - 检查机械臂状态
    ①查看机械臂控制器或日志中的实时报错信息(如硬件故障、超限等),根据提示复位、校准或排查硬件问题。
    ②修正问题后重新发送指令,检查控制器返回的状态码及业务数据是否正常。
    -1int数据发送失败,通信过程中出现问题。检查网络连通性
    使用ping/telnet等工具检测与控制器的通信链路是否正常。
    -2int数据接收失败,通信过程中出现问题或者控制器超时没有返回。- 检查网络连通性
    使用ping/telnet等工具检测与控制器的通信链路是否正常。
    - 校验版本兼容性
    ①核对控制器固件版本是否支持当前API功能,具体版本配套关系请参考版本变更说明
    ②若版本过低需升级控制器或使用适配的API版本。
    -3int返回值解析失败,接收到的数据格式不正确或不完整。校验版本兼容性
    ①核对控制器固件版本是否支持当前API功能,具体版本配套关系请参考版本变更说明
    ②若版本过低需升级控制器或使用适配的API版本。
    -4int三代控制器不支持该接口-
  2. dict[str,any]:符合条件的Modbus TCP主站列表:

    参数类型说明
    -dict[str,any]返回符合条件的Modbus TCP主站列表字典,键为rm_modbus_tcp_master_list_t结构体的字段名称。

    可以跳转rm_modbus_tcp_master_list_t查阅结构体详细描述。

  • 使用示例
python
from Robotic_Arm.rm_robot_interface import *

# 实例化RoboticArm类
arm = RoboticArm(rm_thread_mode_e.RM_TRIPLE_MODE_E)

# 创建机械臂连接,打印连接id
handle = arm.rm_create_robot_arm("192.168.1.18", 8080)
print(handle.id)

# 查询多个Modbus TCP主站配置
print(arm.rm_get_modbus_tcp_master_list(1,10,''))

arm.rm_delete_robot_arm()

配置控制器RS485模式 rm_set_controller_rs485_mode()

  • 方法原型:
python
rm_set_controller_rs485_mode(self, mode:int, baudrate:int) -> int:
  • 参数说明:
名称类型说明
modeint0代表默认RS485串行通讯,1代表modbus-RTU主站模式,2-代表modbus-RTU从站模式。
baudrateint波特率。(当前支持9600、19200、38400、57600、115200、230400、460800)
  • 返回值:
    函数执行的状态码:
参数类型说明处理建议
0int成功。-
1int控制器返回false,传递参数错误或机械臂状态发生错误。- 校验JSON指令
①启用API的DEBUG日志,捕获原始JSON数据。
②检查JSON语法:确保括号、引号、逗号等格式正确(可借助JSON校验工具)。
③对照API文档,验证参数名称、数据类型及取值范围是否符合规范。
④修正问题后重新发送指令,检查控制器返回的状态码及业务数据是否正常。
- 检查机械臂状态
①查看机械臂控制器或日志中的实时报错信息(如硬件故障、超限等),根据提示复位、校准或排查硬件问题。
②修正问题后重新发送指令,检查控制器返回的状态码及业务数据是否正常。
-1int数据发送失败,通信过程中出现问题。检查网络连通性
使用ping/telnet等工具检测与控制器的通信链路是否正常。
-2int数据接收失败,通信过程中出现问题或者控制器超时没有返回。- 检查网络连通性
使用ping/telnet等工具检测与控制器的通信链路是否正常。
- 校验版本兼容性
①核对控制器固件版本是否支持当前API功能,具体版本配套关系请参考版本变更说明
②若版本过低需升级控制器或使用适配的API版本。
-3int返回值解析失败,接收到的数据格式不正确或不完整。校验版本兼容性
①核对控制器固件版本是否支持当前API功能,具体版本配套关系请参考版本变更说明
②若版本过低需升级控制器或使用适配的API版本。
-4int三代控制器不支持该接口-
  • 使用示例
python
from Robotic_Arm.rm_robot_interface import *

# 实例化RoboticArm类
arm = RoboticArm(rm_thread_mode_e.RM_TRIPLE_MODE_E)

# 创建机械臂连接,打印连接id
handle = arm.rm_create_robot_arm("192.168.1.18", 8080)
print(handle.id)

# 设置控制器RS485为modbus-RTU主站模式,波特率为115200
print(arm.rm_set_controller_rs485_mode(1,115200))

arm.rm_delete_robot_arm()

查询控制器RS485模式 rm_get_controller_rs485_mode_v4()

  • 方法原型:
python
rm_get_controller_rs485_mode_v4(self) -> tuple[int, dict[str, any]]:
  • 返回值:

tuple[int,dict[str,any]]: 包含两个元素的元组。

  1. int:函数执行的状态码:

    参数类型说明处理建议
    0int成功。-
    1int控制器返回false,传递参数错误或机械臂状态发生错误。- 校验JSON指令
    ①启用API的DEBUG日志,捕获原始JSON数据。
    ②检查JSON语法:确保括号、引号、逗号等格式正确(可借助JSON校验工具)。
    ③对照API文档,验证参数名称、数据类型及取值范围是否符合规范。
    ④修正问题后重新发送指令,检查控制器返回的状态码及业务数据是否正常。
    - 检查机械臂状态
    ①查看机械臂控制器或日志中的实时报错信息(如硬件故障、超限等),根据提示复位、校准或排查硬件问题。
    ②修正问题后重新发送指令,检查控制器返回的状态码及业务数据是否正常。
    -1int数据发送失败,通信过程中出现问题。检查网络连通性
    使用ping/telnet等工具检测与控制器的通信链路是否正常。
    -2int数据接收失败,通信过程中出现问题或者控制器超时没有返回。- 检查网络连通性
    使用ping/telnet等工具检测与控制器的通信链路是否正常。
    - 校验版本兼容性
    ①核对控制器固件版本是否支持当前API功能,具体版本配套关系请参考版本变更说明
    ②若版本过低需升级控制器或使用适配的API版本。
    -3int返回值解析失败,接收到的数据格式不正确或不完整。校验版本兼容性
    ①核对控制器固件版本是否支持当前API功能,具体版本配套关系请参考版本变更说明
    ②若版本过低需升级控制器或使用适配的API版本。
    -4int三代控制器不支持该接口-
  2. dict[str,any]:包含以下键值的字典:

    参数类型说明
    modeint0代表默认RS485串行通讯,1代表modbus-RTU主站模式,2-代表modbus-RTU从站模式。
    baudrateint波特率。(当前支持9600、19200、38400、57600、115200、230400、460800)
  • 使用示例
python
from Robotic_Arm.rm_robot_interface import *

# 实例化RoboticArm类
arm = RoboticArm(rm_thread_mode_e.RM_TRIPLE_MODE_E)

# 创建机械臂连接,打印连接id
handle = arm.rm_create_robot_arm("192.168.1.18", 8080)
print(handle.id)

# 查询控制器RS485模式
print(arm.rm_get_controller_rs485_mode_v4())

arm.rm_delete_robot_arm()

配置工具端RS485模式 rm_set_tool_rs485_mode()

  • 方法原型:
python
rm_set_tool_rs485_mode(self, mode:int, baudrate:int) -> int:
  • 参数说明:
名称类型说明
modeint通讯端口,0-设置工具端RS485端口为RTU主站,1-设置工具端RS485端口为灵巧手模式,2-设置工具端RS485端口为夹爪模式。
baudrateint波特率。(当前支持9600、115200、460800)
  • 返回值:
    函数执行的状态码:
参数类型说明处理建议
0int成功。-
1int控制器返回false,传递参数错误或机械臂状态发生错误。- 校验JSON指令
①启用API的DEBUG日志,捕获原始JSON数据。
②检查JSON语法:确保括号、引号、逗号等格式正确(可借助JSON校验工具)。
③对照API文档,验证参数名称、数据类型及取值范围是否符合规范。
④修正问题后重新发送指令,检查控制器返回的状态码及业务数据是否正常。
- 检查机械臂状态
①查看机械臂控制器或日志中的实时报错信息(如硬件故障、超限等),根据提示复位、校准或排查硬件问题。
②修正问题后重新发送指令,检查控制器返回的状态码及业务数据是否正常。
-1int数据发送失败,通信过程中出现问题。检查网络连通性
使用ping/telnet等工具检测与控制器的通信链路是否正常。
-2int数据接收失败,通信过程中出现问题或者控制器超时没有返回。- 检查网络连通性
使用ping/telnet等工具检测与控制器的通信链路是否正常。
- 校验版本兼容性
①核对控制器固件版本是否支持当前API功能,具体版本配套关系请参考版本变更说明
②若版本过低需升级控制器或使用适配的API版本。
-3int返回值解析失败,接收到的数据格式不正确或不完整。校验版本兼容性
①核对控制器固件版本是否支持当前API功能,具体版本配套关系请参考版本变更说明
②若版本过低需升级控制器或使用适配的API版本。
-4int三代控制器不支持该接口-
  • 使用示例
python
from Robotic_Arm.rm_robot_interface import *

# 实例化RoboticArm类
arm = RoboticArm(rm_thread_mode_e.RM_TRIPLE_MODE_E)

# 创建机械臂连接,打印连接id
handle = arm.rm_create_robot_arm("192.168.1.18", 8080)
print(handle.id)

# 设置工具端RS485端口为RTU主站,波特率为115200
print(arm.rm_set_tool_rs485_mode(0,115200))

arm.rm_delete_robot_arm()

查询工具端RS485模式 rm_get_tool_rs485_mode_v4()

  • 方法原型:
python
rm_get_tool_rs485_mode_v4(self) -> tuple[int, dict[str, any]]:
  • 返回值:

tuple[int,dict[str,any]]: 包含两个元素的元组。

  1. int:函数执行的状态码:

    参数类型说明处理建议
    0int成功。-
    1int控制器返回false,传递参数错误或机械臂状态发生错误。- 校验JSON指令
    ①启用API的DEBUG日志,捕获原始JSON数据。
    ②检查JSON语法:确保括号、引号、逗号等格式正确(可借助JSON校验工具)。
    ③对照API文档,验证参数名称、数据类型及取值范围是否符合规范。
    ④修正问题后重新发送指令,检查控制器返回的状态码及业务数据是否正常。
    - 检查机械臂状态
    ①查看机械臂控制器或日志中的实时报错信息(如硬件故障、超限等),根据提示复位、校准或排查硬件问题。
    ②修正问题后重新发送指令,检查控制器返回的状态码及业务数据是否正常。
    -1int数据发送失败,通信过程中出现问题。检查网络连通性
    使用ping/telnet等工具检测与控制器的通信链路是否正常。
    -2int数据接收失败,通信过程中出现问题或者控制器超时没有返回。- 检查网络连通性
    使用ping/telnet等工具检测与控制器的通信链路是否正常。
    - 校验版本兼容性
    ①核对控制器固件版本是否支持当前API功能,具体版本配套关系请参考版本变更说明
    ②若版本过低需升级控制器或使用适配的API版本。
    -3int返回值解析失败,接收到的数据格式不正确或不完整。校验版本兼容性
    ①核对控制器固件版本是否支持当前API功能,具体版本配套关系请参考版本变更说明
    ②若版本过低需升级控制器或使用适配的API版本。
    -4int三代控制器不支持该接口-
  2. dict[str,any]:包含以下键值的字典:

    参数类型说明
    modeint通讯端口,0-设置工具端RS485端口为RTU主站,1-设置工具端RS485端口为灵巧手模式,2-设置工具端RS485端口为夹爪模式。
    baudrateint波特率。(当前支持9600、115200、460800)
  • 使用示例
python
from Robotic_Arm.rm_robot_interface import *

# 实例化RoboticArm类
arm = RoboticArm(rm_thread_mode_e.RM_TRIPLE_MODE_E)

# 创建机械臂连接,打印连接id
handle = arm.rm_create_robot_arm("192.168.1.18", 8080)
print(handle.id)

# 查询工具端RS485模式
print(arm.rm_get_tool_rs485_mode_v4())

arm.rm_delete_robot_arm()

Modbus RTU协议读线圈 rm_read_modbus_rtu_coils()

  • 方法原型:
python
rm_read_modbus_rtu_coils(self, param:rm_modbus_rtu_read_params_t) -> tuple[int, list[int]]:

可以跳转rm_modbus_rtu_read_params_t查阅结构体详细描述。

  • 参数说明:
名称类型说明
paramrm_modbus_rtu_read_params_tModbus RTU读取参数结构体。
  • 返回值:

tuple[int,list[int]]: 包含两个元素的元组。

  1. int:函数执行的状态码:

    参数类型说明处理建议
    0int成功。-
    1int控制器返回false,传递参数错误或机械臂状态发生错误。- 校验JSON指令
    ①启用API的DEBUG日志,捕获原始JSON数据。
    ②检查JSON语法:确保括号、引号、逗号等格式正确(可借助JSON校验工具)。
    ③对照API文档,验证参数名称、数据类型及取值范围是否符合规范。
    ④修正问题后重新发送指令,检查控制器返回的状态码及业务数据是否正常。
    - 检查机械臂状态
    ①查看机械臂控制器或日志中的实时报错信息(如硬件故障、超限等),根据提示复位、校准或排查硬件问题。
    ②修正问题后重新发送指令,检查控制器返回的状态码及业务数据是否正常。
    -1int数据发送失败,通信过程中出现问题。检查网络连通性
    使用ping/telnet等工具检测与控制器的通信链路是否正常。
    -2int数据接收失败,通信过程中出现问题或者控制器超时没有返回。- 检查网络连通性
    使用ping/telnet等工具检测与控制器的通信链路是否正常。
    - 校验版本兼容性
    ①核对控制器固件版本是否支持当前API功能,具体版本配套关系请参考版本变更说明
    ②若版本过低需升级控制器或使用适配的API版本。
    -3int返回值解析失败,接收到的数据格式不正确或不完整。校验版本兼容性
    ①核对控制器固件版本是否支持当前API功能,具体版本配套关系请参考版本变更说明
    ②若版本过低需升级控制器或使用适配的API版本。
    -4int三代控制器不支持该接口-
  2. list[int]:读线圈数据:

    参数类型说明
    -int返回读线圈数据,数组大小为param.num。
  • 使用示例
python
from Robotic_Arm.rm_robot_interface import *

# 实例化RoboticArm类
arm = RoboticArm(rm_thread_mode_e.RM_TRIPLE_MODE_E)

# 创建机械臂连接,打印连接id
handle = arm.rm_create_robot_arm("192.168.1.18", 8080)
print(handle.id)

# Modbus RTU读线圈
param = rm_modbus_rtu_read_params_t(10, 1, 0, 10)
print(arm.rm_read_modbus_rtu_coils(param))

arm.rm_delete_robot_arm()

Modbus RTU协议写线圈 rm_write_modbus_rtu_coils()

  • 方法原型:
python
rm_write_modbus_rtu_coils(self, param:rm_modbus_rtu_write_params_t) -> int:

可以跳转rm_modbus_rtu_write_params_t查阅结构体详细描述。

  • 参数说明:
名称类型说明
paramrm_modbus_rtu_write_params_tModbus RTU写入参数结构体。
  • 返回值:
    函数执行的状态码:
参数类型说明处理建议
0int成功。-
1int控制器返回false,传递参数错误或机械臂状态发生错误。- 校验JSON指令
①启用API的DEBUG日志,捕获原始JSON数据。
②检查JSON语法:确保括号、引号、逗号等格式正确(可借助JSON校验工具)。
③对照API文档,验证参数名称、数据类型及取值范围是否符合规范。
④修正问题后重新发送指令,检查控制器返回的状态码及业务数据是否正常。
- 检查机械臂状态
①查看机械臂控制器或日志中的实时报错信息(如硬件故障、超限等),根据提示复位、校准或排查硬件问题。
②修正问题后重新发送指令,检查控制器返回的状态码及业务数据是否正常。
-1int数据发送失败,通信过程中出现问题。检查网络连通性
使用ping/telnet等工具检测与控制器的通信链路是否正常。
-2int数据接收失败,通信过程中出现问题或者控制器超时没有返回。- 检查网络连通性
使用ping/telnet等工具检测与控制器的通信链路是否正常。
- 校验版本兼容性
①核对控制器固件版本是否支持当前API功能,具体版本配套关系请参考版本变更说明
②若版本过低需升级控制器或使用适配的API版本。
-3int返回值解析失败,接收到的数据格式不正确或不完整。校验版本兼容性
①核对控制器固件版本是否支持当前API功能,具体版本配套关系请参考版本变更说明
②若版本过低需升级控制器或使用适配的API版本。
-4int三代控制器不支持该接口-
  • 使用示例
python
from Robotic_Arm.rm_robot_interface import *

# 实例化RoboticArm类
arm = RoboticArm(rm_thread_mode_e.RM_TRIPLE_MODE_E)

# 创建机械臂连接,打印连接id
handle = arm.rm_create_robot_arm("192.168.1.18", 8080)
print(handle.id)

# Modbus RTU协议写线圈
param_w = rm_modbus_rtu_write_params_t(10,1,0,10,[1,1,0,0,0,0,0,0,0,0])
print(arm.rm_write_modbus_rtu_coils(param_w))

arm.rm_delete_robot_arm()

Modbus RTU协议读离散量输入 rm_read_modbus_rtu_input_status()

  • 方法原型:
python
rm_read_modbus_rtu_input_status(self, param:rm_modbus_rtu_read_params_t) -> tuple[int, list[int]]:

可以跳转rm_modbus_rtu_read_params_t查阅结构体详细描述。

  • 参数说明:
名称类型说明
paramrm_modbus_rtu_read_params_tModbus RTU读取参数结构体。
  • 返回值:
    tuple[int,list[int]]: 包含两个元素的元组。
  1. int:函数执行的状态码:

    参数类型说明处理建议
    0int成功。-
    1int控制器返回false,传递参数错误或机械臂状态发生错误。- 校验JSON指令
    ①启用API的DEBUG日志,捕获原始JSON数据。
    ②检查JSON语法:确保括号、引号、逗号等格式正确(可借助JSON校验工具)。
    ③对照API文档,验证参数名称、数据类型及取值范围是否符合规范。
    ④修正问题后重新发送指令,检查控制器返回的状态码及业务数据是否正常。
    - 检查机械臂状态
    ①查看机械臂控制器或日志中的实时报错信息(如硬件故障、超限等),根据提示复位、校准或排查硬件问题。
    ②修正问题后重新发送指令,检查控制器返回的状态码及业务数据是否正常。
    -1int数据发送失败,通信过程中出现问题。检查网络连通性
    使用ping/telnet等工具检测与控制器的通信链路是否正常。
    -2int数据接收失败,通信过程中出现问题或者控制器超时没有返回。- 检查网络连通性
    使用ping/telnet等工具检测与控制器的通信链路是否正常。
    - 校验版本兼容性
    ①核对控制器固件版本是否支持当前API功能,具体版本配套关系请参考版本变更说明
    ②若版本过低需升级控制器或使用适配的API版本。
    -3int返回值解析失败,接收到的数据格式不正确或不完整。校验版本兼容性
    ①核对控制器固件版本是否支持当前API功能,具体版本配套关系请参考版本变更说明
    ②若版本过低需升级控制器或使用适配的API版本。
    -4int三代控制器不支持该接口-
  2. list[int]:读离散量输入数据:

    参数类型说明
    -int返回读离散量输入数据,数组大小为param.num。
  • 使用示例
python
from Robotic_Arm.rm_robot_interface import *

# 实例化RoboticArm类
arm = RoboticArm(rm_thread_mode_e.RM_TRIPLE_MODE_E)

# 创建机械臂连接,打印连接id
handle = arm.rm_create_robot_arm("192.168.1.18", 8080)
print(handle.id)

# Modbus RTU读离散量输入
param = rm_modbus_rtu_read_params_t(10, 1, 0, 10)
print(arm.rm_read_modbus_rtu_input_status(param))

arm.rm_delete_robot_arm()

Modbus RTU协议读保持寄存器 rm_read_modbus_rtu_holding_registers()

  • 方法原型:
python
rm_read_modbus_rtu_holding_registers(self, param:rm_modbus_rtu_read_params_t) -> tuple[int, list[int]]:

可以跳转rm_modbus_rtu_read_params_t查阅结构体详细描述。

  • 参数说明:
名称类型说明
paramrm_modbus_rtu_read_params_tModbus RTU读取参数结构体。
  • 返回值:

tuple[int,list[int]]: 包含两个元素的元组。

  1. int:函数执行的状态码:

    参数类型说明处理建议
    0int成功。-
    1int控制器返回false,传递参数错误或机械臂状态发生错误。- 校验JSON指令
    ①启用API的DEBUG日志,捕获原始JSON数据。
    ②检查JSON语法:确保括号、引号、逗号等格式正确(可借助JSON校验工具)。
    ③对照API文档,验证参数名称、数据类型及取值范围是否符合规范。
    ④修正问题后重新发送指令,检查控制器返回的状态码及业务数据是否正常。
    - 检查机械臂状态
    ①查看机械臂控制器或日志中的实时报错信息(如硬件故障、超限等),根据提示复位、校准或排查硬件问题。
    ②修正问题后重新发送指令,检查控制器返回的状态码及业务数据是否正常。
    -1int数据发送失败,通信过程中出现问题。检查网络连通性
    使用ping/telnet等工具检测与控制器的通信链路是否正常。
    -2int数据接收失败,通信过程中出现问题或者控制器超时没有返回。- 检查网络连通性
    使用ping/telnet等工具检测与控制器的通信链路是否正常。
    - 校验版本兼容性
    ①核对控制器固件版本是否支持当前API功能,具体版本配套关系请参考版本变更说明
    ②若版本过低需升级控制器或使用适配的API版本。
    -3int返回值解析失败,接收到的数据格式不正确或不完整。校验版本兼容性
    ①核对控制器固件版本是否支持当前API功能,具体版本配套关系请参考版本变更说明
    ②若版本过低需升级控制器或使用适配的API版本。
    -4int三代控制器不支持该接口-
  2. list[int]:读保持寄存器数据:

    参数类型说明
    -int返回读保持寄存器数据,数组大小为param.num。
  • 使用示例
python
from Robotic_Arm.rm_robot_interface import *

# 实例化RoboticArm类
arm = RoboticArm(rm_thread_mode_e.RM_TRIPLE_MODE_E)

# 创建机械臂连接,打印连接id
handle = arm.rm_create_robot_arm("192.168.1.18", 8080)
print(handle.id)

# Modbus RTU读保持寄存器
param = rm_modbus_rtu_read_params_t(10, 1, 0, 10)
print(arm.rm_read_modbus_rtu_holding_registers(param))

arm.rm_delete_robot_arm()

Modbus RTU协议写保持寄存器 rm_write_modbus_rtu_registers()

  • 方法原型:
python
rm_write_modbus_rtu_registers(self, param:rm_modbus_rtu_write_params_t) -> int:

可以跳转rm_modbus_rtu_write_params_t查阅结构体详细描述。

  • 参数说明:
名称类型说明
paramrm_modbus_rtu_write_params_tModbus RTU写入参数结构体。
  • 返回值:
    函数执行的状态码:
参数类型说明处理建议
0int成功。-
1int控制器返回false,传递参数错误或机械臂状态发生错误。- 校验JSON指令
①启用API的DEBUG日志,捕获原始JSON数据。
②检查JSON语法:确保括号、引号、逗号等格式正确(可借助JSON校验工具)。
③对照API文档,验证参数名称、数据类型及取值范围是否符合规范。
④修正问题后重新发送指令,检查控制器返回的状态码及业务数据是否正常。
- 检查机械臂状态
①查看机械臂控制器或日志中的实时报错信息(如硬件故障、超限等),根据提示复位、校准或排查硬件问题。
②修正问题后重新发送指令,检查控制器返回的状态码及业务数据是否正常。
-1int数据发送失败,通信过程中出现问题。检查网络连通性
使用ping/telnet等工具检测与控制器的通信链路是否正常。
-2int数据接收失败,通信过程中出现问题或者控制器超时没有返回。- 检查网络连通性
使用ping/telnet等工具检测与控制器的通信链路是否正常。
- 校验版本兼容性
①核对控制器固件版本是否支持当前API功能,具体版本配套关系请参考版本变更说明
②若版本过低需升级控制器或使用适配的API版本。
-3int返回值解析失败,接收到的数据格式不正确或不完整。校验版本兼容性
①核对控制器固件版本是否支持当前API功能,具体版本配套关系请参考版本变更说明
②若版本过低需升级控制器或使用适配的API版本。
-4int三代控制器不支持该接口-
  • 使用示例
python
from Robotic_Arm.rm_robot_interface import *

# 实例化RoboticArm类
arm = RoboticArm(rm_thread_mode_e.RM_TRIPLE_MODE_E)

# 创建机械臂连接,打印连接id
handle = arm.rm_create_robot_arm("192.168.1.18", 8080)
print(handle.id)

# Modbus RTU协议写保持寄存器
param_w = rm_modbus_rtu_write_params_t(10,1,0,10,[1,1,0,0,0,0,0,0,0,0])
print(arm.rm_write_modbus_rtu_registers(param_w))

arm.rm_delete_robot_arm()

Modbus RTU协议读输入寄存器 rm_read_modbus_rtu_input_registers()

  • 方法原型:
python
rm_read_modbus_rtu_input_registers(self, param:rm_modbus_rtu_read_params_t) -> tuple[int, list[int]]:

可以跳转rm_modbus_rtu_read_params_t查阅结构体详细描述。

  • 参数说明:
名称类型说明
paramrm_modbus_rtu_read_params_tModbus RTU读取参数结构体。
  • 返回值:

tuple[int,list[int]]: 包含两个元素的元组。

  1. int:函数执行的状态码:

    参数类型说明处理建议
    0int成功。-
    1int控制器返回false,传递参数错误或机械臂状态发生错误。- 校验JSON指令
    ①启用API的DEBUG日志,捕获原始JSON数据。
    ②检查JSON语法:确保括号、引号、逗号等格式正确(可借助JSON校验工具)。
    ③对照API文档,验证参数名称、数据类型及取值范围是否符合规范。
    ④修正问题后重新发送指令,检查控制器返回的状态码及业务数据是否正常。
    - 检查机械臂状态
    ①查看机械臂控制器或日志中的实时报错信息(如硬件故障、超限等),根据提示复位、校准或排查硬件问题。
    ②修正问题后重新发送指令,检查控制器返回的状态码及业务数据是否正常。
    -1int数据发送失败,通信过程中出现问题。检查网络连通性
    使用ping/telnet等工具检测与控制器的通信链路是否正常。
    -2int数据接收失败,通信过程中出现问题或者控制器超时没有返回。- 检查网络连通性
    使用ping/telnet等工具检测与控制器的通信链路是否正常。
    - 校验版本兼容性
    ①核对控制器固件版本是否支持当前API功能,具体版本配套关系请参考版本变更说明
    ②若版本过低需升级控制器或使用适配的API版本。
    -3int返回值解析失败,接收到的数据格式不正确或不完整。校验版本兼容性
    ①核对控制器固件版本是否支持当前API功能,具体版本配套关系请参考版本变更说明
    ②若版本过低需升级控制器或使用适配的API版本。
    -4int三代控制器不支持该接口-
  2. list[int]:读输入寄存器数据:

    参数类型说明
    -int返回读输入寄存器数据,数组大小为param.num。
  • 使用示例
python
from Robotic_Arm.rm_robot_interface import *

# 实例化RoboticArm类
arm = RoboticArm(rm_thread_mode_e.RM_TRIPLE_MODE_E)

# 创建机械臂连接,打印连接id
handle = arm.rm_create_robot_arm("192.168.1.18", 8080)
print(handle.id)

# Modbus RTU读输入寄存器
param = rm_modbus_rtu_read_params_t(10, 1, 0, 10)
print(arm.rm_read_modbus_rtu_input_registers(param))

arm.rm_delete_robot_arm()

Modbus TCP协议读线圈 rm_read_modbus_tcp_coils()

  • 方法原型:
python
rm_read_modbus_tcp_coils(self, param:rm_modbus_tcp_read_params_t) -> tuple[int, list[int]]:

可以跳转rm_modbus_tcp_read_params_t查阅结构体详细描述。

  • 参数说明:
名称类型说明
paramrm_modbus_tcp_read_params_tModbus TCP读取参数结构体。
  • 返回值:

tuple[int,list[int]]: 包含两个元素的元组。

  1. int:函数执行的状态码:

    参数类型说明处理建议
    0int成功。-
    1int控制器返回false,传递参数错误或机械臂状态发生错误。- 校验JSON指令
    ①启用API的DEBUG日志,捕获原始JSON数据。
    ②检查JSON语法:确保括号、引号、逗号等格式正确(可借助JSON校验工具)。
    ③对照API文档,验证参数名称、数据类型及取值范围是否符合规范。
    ④修正问题后重新发送指令,检查控制器返回的状态码及业务数据是否正常。
    - 检查机械臂状态
    ①查看机械臂控制器或日志中的实时报错信息(如硬件故障、超限等),根据提示复位、校准或排查硬件问题。
    ②修正问题后重新发送指令,检查控制器返回的状态码及业务数据是否正常。
    -1int数据发送失败,通信过程中出现问题。检查网络连通性
    使用ping/telnet等工具检测与控制器的通信链路是否正常。
    -2int数据接收失败,通信过程中出现问题或者控制器超时没有返回。- 检查网络连通性
    使用ping/telnet等工具检测与控制器的通信链路是否正常。
    - 校验版本兼容性
    ①核对控制器固件版本是否支持当前API功能,具体版本配套关系请参考版本变更说明
    ②若版本过低需升级控制器或使用适配的API版本。
    -3int返回值解析失败,接收到的数据格式不正确或不完整。校验版本兼容性
    ①核对控制器固件版本是否支持当前API功能,具体版本配套关系请参考版本变更说明
    ②若版本过低需升级控制器或使用适配的API版本。
    -4int三代控制器不支持该接口-
  2. list[int]:读线圈数据:

    参数类型说明
    -int返回读线圈数据,数组大小为param.num。
  • 使用示例
python
from Robotic_Arm.rm_robot_interface import *

# 实例化RoboticArm类
arm = RoboticArm(rm_thread_mode_e.RM_TRIPLE_MODE_E)

# 创建机械臂连接,打印连接id
handle = arm.rm_create_robot_arm("192.168.1.18", 8080)
print(handle.id)

# Modbus TCP读线圈
param = rm_modbus_tcp_read_params_t(10,master_name=None,ip='127.0.0.1',port=502,num=10)
print(arm.rm_read_modbus_tcp_coils(param))

arm.rm_delete_robot_arm()

Modbus TCP协议写线圈 rm_write_modbus_tcp_coils()

  • 方法原型:
python
rm_write_modbus_tcp_coils(self, param:rm_modbus_tcp_write_params_t) -> int:

可以跳转rm_modbus_tcp_write_params_t查阅结构体详细描述。

  • 参数说明:
名称类型说明
paramrm_modbus_tcp_write_params_tModbus TCP写入参数结构体。
  • 返回值:

函数执行的状态码:

参数类型说明处理建议
0int成功。-
1int控制器返回false,传递参数错误或机械臂状态发生错误。- 校验JSON指令
①启用API的DEBUG日志,捕获原始JSON数据。
②检查JSON语法:确保括号、引号、逗号等格式正确(可借助JSON校验工具)。
③对照API文档,验证参数名称、数据类型及取值范围是否符合规范。
④修正问题后重新发送指令,检查控制器返回的状态码及业务数据是否正常。
- 检查机械臂状态
①查看机械臂控制器或日志中的实时报错信息(如硬件故障、超限等),根据提示复位、校准或排查硬件问题。
②修正问题后重新发送指令,检查控制器返回的状态码及业务数据是否正常。
-1int数据发送失败,通信过程中出现问题。检查网络连通性
使用ping/telnet等工具检测与控制器的通信链路是否正常。
-2int数据接收失败,通信过程中出现问题或者控制器超时没有返回。- 检查网络连通性
使用ping/telnet等工具检测与控制器的通信链路是否正常。
- 校验版本兼容性
①核对控制器固件版本是否支持当前API功能,具体版本配套关系请参考版本变更说明
②若版本过低需升级控制器或使用适配的API版本。
-3int返回值解析失败,接收到的数据格式不正确或不完整。校验版本兼容性
①核对控制器固件版本是否支持当前API功能,具体版本配套关系请参考版本变更说明
②若版本过低需升级控制器或使用适配的API版本。
-4int三代控制器不支持该接口-
  • 使用示例
python
from Robotic_Arm.rm_robot_interface import *

# 实例化RoboticArm类
arm = RoboticArm(rm_thread_mode_e.RM_TRIPLE_MODE_E)

# 创建机械臂连接,打印连接id
handle = arm.rm_create_robot_arm("192.168.1.18", 8080)
print(handle.id)

# Modbus TCP写线圈
param_w = rm_modbus_tcp_write_params_t(10,master_name='test',num=10,data=[1,1,0,0,0,0,0,0,0,0])
print(arm.rm_write_modbus_tcp_coils(param_w))

arm.rm_delete_robot_arm()

Modbus TCP协议读离散量输入 rm_read_modbus_tcp_input_status()

  • 方法原型:
python
rm_read_modbus_tcp_input_status(self, param:rm_modbus_tcp_read_params_t) -> tuple[int, list[int]]:

可以跳转rm_modbus_tcp_read_params_t查阅结构体详细描述。

  • 参数说明:
名称类型说明
paramrm_modbus_tcp_read_params_tModbus TCP读取参数结构体。
  • 返回值:

tuple[int,list[int]]: 包含两个元素的元组。

  1. int:函数执行的状态码:

    参数类型说明处理建议
    0int成功。-
    1int控制器返回false,传递参数错误或机械臂状态发生错误。- 校验JSON指令
    ①启用API的DEBUG日志,捕获原始JSON数据。
    ②检查JSON语法:确保括号、引号、逗号等格式正确(可借助JSON校验工具)。
    ③对照API文档,验证参数名称、数据类型及取值范围是否符合规范。
    ④修正问题后重新发送指令,检查控制器返回的状态码及业务数据是否正常。
    - 检查机械臂状态
    ①查看机械臂控制器或日志中的实时报错信息(如硬件故障、超限等),根据提示复位、校准或排查硬件问题。
    ②修正问题后重新发送指令,检查控制器返回的状态码及业务数据是否正常。
    -1int数据发送失败,通信过程中出现问题。检查网络连通性
    使用ping/telnet等工具检测与控制器的通信链路是否正常。
    -2int数据接收失败,通信过程中出现问题或者控制器超时没有返回。- 检查网络连通性
    使用ping/telnet等工具检测与控制器的通信链路是否正常。
    - 校验版本兼容性
    ①核对控制器固件版本是否支持当前API功能,具体版本配套关系请参考版本变更说明
    ②若版本过低需升级控制器或使用适配的API版本。
    -3int返回值解析失败,接收到的数据格式不正确或不完整。校验版本兼容性
    ①核对控制器固件版本是否支持当前API功能,具体版本配套关系请参考版本变更说明
    ②若版本过低需升级控制器或使用适配的API版本。
    -4int三代控制器不支持该接口-
  2. list[int]:读离散量输入数据:

    参数类型说明
    -int返回读离散量输入数据,数组大小为param.num。
  • 使用示例
python
from Robotic_Arm.rm_robot_interface import *

# 实例化RoboticArm类
arm = RoboticArm(rm_thread_mode_e.RM_TRIPLE_MODE_E)

# 创建机械臂连接,打印连接id
handle = arm.rm_create_robot_arm("192.168.1.18", 8080)
print(handle.id)

# Modbus TCP读离散量输入
param = rm_modbus_tcp_read_params_t(10,master_name='test',num=10)
print(arm.rm_read_modbus_tcp_input_status(param))

arm.rm_delete_robot_arm()

Modbus TCP协议读保持寄存器 rm_read_modbus_tcp_holding_registers()

  • 方法原型:
python
rm_read_modbus_tcp_holding_registers(self, param:rm_modbus_tcp_read_params_t) -> tuple[int, list[int]]:

可以跳转rm_modbus_tcp_read_params_t查阅结构体详细描述。

  • 参数说明:
名称类型说明
paramrm_modbus_tcp_read_params_tModbus TCP读取参数结构体。
  • 返回值:

tuple[int,list[int]]: 包含两个元素的元组。

  1. int:函数执行的状态码:

    参数类型说明处理建议
    0int成功。-
    1int控制器返回false,传递参数错误或机械臂状态发生错误。- 校验JSON指令
    ①启用API的DEBUG日志,捕获原始JSON数据。
    ②检查JSON语法:确保括号、引号、逗号等格式正确(可借助JSON校验工具)。
    ③对照API文档,验证参数名称、数据类型及取值范围是否符合规范。
    ④修正问题后重新发送指令,检查控制器返回的状态码及业务数据是否正常。
    - 检查机械臂状态
    ①查看机械臂控制器或日志中的实时报错信息(如硬件故障、超限等),根据提示复位、校准或排查硬件问题。
    ②修正问题后重新发送指令,检查控制器返回的状态码及业务数据是否正常。
    -1int数据发送失败,通信过程中出现问题。检查网络连通性
    使用ping/telnet等工具检测与控制器的通信链路是否正常。
    -2int数据接收失败,通信过程中出现问题或者控制器超时没有返回。- 检查网络连通性
    使用ping/telnet等工具检测与控制器的通信链路是否正常。
    - 校验版本兼容性
    ①核对控制器固件版本是否支持当前API功能,具体版本配套关系请参考版本变更说明
    ②若版本过低需升级控制器或使用适配的API版本。
    -3int返回值解析失败,接收到的数据格式不正确或不完整。校验版本兼容性
    ①核对控制器固件版本是否支持当前API功能,具体版本配套关系请参考版本变更说明
    ②若版本过低需升级控制器或使用适配的API版本。
    -4int三代控制器不支持该接口-
  2. list[int]:读保持寄存器数据:

    参数类型说明
    -int返回读保持寄存器数据,数组大小为param.num。
  • 使用示例
python
from Robotic_Arm.rm_robot_interface import *

# 实例化RoboticArm类
arm = RoboticArm(rm_thread_mode_e.RM_TRIPLE_MODE_E)

# 创建机械臂连接,打印连接id
handle = arm.rm_create_robot_arm("192.168.1.18", 8080)
print(handle.id)

# Modbus TCP读保持寄存器
param = rm_modbus_tcp_read_params_t(10,master_name='test',num=10)
print(arm.rm_read_modbus_tcp_holding_registers(param))

arm.rm_delete_robot_arm()

Modbus TCP协议写保持寄存器 rm_write_modbus_tcp_registers()

  • 方法原型:
python
rm_write_modbus_tcp_registers(self, param:rm_modbus_tcp_write_params_t) -> int:

可以跳转rm_modbus_tcp_write_params_t查阅结构体详细描述。

  • 参数说明:
名称类型说明
paramrm_modbus_tcp_write_params_tModbus TCP写入参数结构体。
  • 返回值:
    函数执行的状态码:
参数类型说明处理建议
0int成功。-
1int控制器返回false,传递参数错误或机械臂状态发生错误。- 校验JSON指令
①启用API的DEBUG日志,捕获原始JSON数据。
②检查JSON语法:确保括号、引号、逗号等格式正确(可借助JSON校验工具)。
③对照API文档,验证参数名称、数据类型及取值范围是否符合规范。
④修正问题后重新发送指令,检查控制器返回的状态码及业务数据是否正常。
- 检查机械臂状态
①查看机械臂控制器或日志中的实时报错信息(如硬件故障、超限等),根据提示复位、校准或排查硬件问题。
②修正问题后重新发送指令,检查控制器返回的状态码及业务数据是否正常。
-1int数据发送失败,通信过程中出现问题。检查网络连通性
使用ping/telnet等工具检测与控制器的通信链路是否正常。
-2int数据接收失败,通信过程中出现问题或者控制器超时没有返回。- 检查网络连通性
使用ping/telnet等工具检测与控制器的通信链路是否正常。
- 校验版本兼容性
①核对控制器固件版本是否支持当前API功能,具体版本配套关系请参考版本变更说明
②若版本过低需升级控制器或使用适配的API版本。
-3int返回值解析失败,接收到的数据格式不正确或不完整。校验版本兼容性
①核对控制器固件版本是否支持当前API功能,具体版本配套关系请参考版本变更说明
②若版本过低需升级控制器或使用适配的API版本。
-4int三代控制器不支持该接口-
  • 使用示例
python
from Robotic_Arm.rm_robot_interface import *

# 实例化RoboticArm类
arm = RoboticArm(rm_thread_mode_e.RM_TRIPLE_MODE_E)

# 创建机械臂连接,打印连接id
handle = arm.rm_create_robot_arm("192.168.1.18", 8080)
print(handle.id)

# Modbus TCP写保持寄存器
param_w = rm_modbus_tcp_write_params_t(10,master_name='test',num=10,data=[1,1,0,0,0,0,0,0,0,0])
print(arm.rm_write_modbus_tcp_registers(param_w))

arm.rm_delete_robot_arm()

Modbus TCP协议读输入寄存器 rm_read_modbus_tcp_input_registers()

  • 方法原型:
python
rm_read_modbus_tcp_input_registers(self, param:rm_modbus_tcp_read_params_t) -> tuple[int, list[int]]:

可以跳转rm_modbus_tcp_read_params_t查阅结构体详细描述。

  • 参数说明:
名称类型说明
paramrm_modbus_tcp_read_params_tModbus TCP读取参数结构体。
  • 返回值:

tuple[int,list[int]]: 包含两个元素的元组。

  1. int:函数执行的状态码:

    参数类型说明处理建议
    0int成功。-
    1int控制器返回false,传递参数错误或机械臂状态发生错误。- 校验JSON指令
    ①启用API的DEBUG日志,捕获原始JSON数据。
    ②检查JSON语法:确保括号、引号、逗号等格式正确(可借助JSON校验工具)。
    ③对照API文档,验证参数名称、数据类型及取值范围是否符合规范。
    ④修正问题后重新发送指令,检查控制器返回的状态码及业务数据是否正常。
    - 检查机械臂状态
    ①查看机械臂控制器或日志中的实时报错信息(如硬件故障、超限等),根据提示复位、校准或排查硬件问题。
    ②修正问题后重新发送指令,检查控制器返回的状态码及业务数据是否正常。
    -1int数据发送失败,通信过程中出现问题。检查网络连通性
    使用ping/telnet等工具检测与控制器的通信链路是否正常。
    -2int数据接收失败,通信过程中出现问题或者控制器超时没有返回。- 检查网络连通性
    使用ping/telnet等工具检测与控制器的通信链路是否正常。
    - 校验版本兼容性
    ①核对控制器固件版本是否支持当前API功能,具体版本配套关系请参考版本变更说明
    ②若版本过低需升级控制器或使用适配的API版本。
    -3int返回值解析失败,接收到的数据格式不正确或不完整。校验版本兼容性
    ①核对控制器固件版本是否支持当前API功能,具体版本配套关系请参考版本变更说明
    ②若版本过低需升级控制器或使用适配的API版本。
    -4int三代控制器不支持该接口-
  2. list[int]:读输入寄存器数据:

    参数类型说明
    -int返回读输入寄存器数据,数组大小为param.num。
  • 使用示例
python
from Robotic_Arm.rm_robot_interface import *

# 实例化RoboticArm类
arm = RoboticArm(rm_thread_mode_e.RM_TRIPLE_MODE_E)

# 创建机械臂连接,打印连接id
handle = arm.rm_create_robot_arm("192.168.1.18", 8080)
print(handle.id)

# Modbus TCP读输入寄存器
param = rm_modbus_tcp_read_params_t(10,master_name='test',num=10)
print(arm.rm_read_modbus_tcp_input_registers(param))

arm.rm_delete_robot_arm()