Demo演示(python):
ModbusRTU示例 1. 项目介绍
本项目是一个使用睿尔曼Python开发包完成配置通讯端口ModbusRTU模式、写单圈数据、读单圈数据、写单个寄存器、读保存寄存器、关闭通讯端口 Modbus RTU 模式。
2. 代码结构
RMDemo_ModbusRTU/
│
├── README.md <- 项目的核心文档
├── requirements.txt <- 项目的依赖列表
├── setup.py <- 项目的安装脚本
│
├── src/ <- 项目的源代码
│ ├── main.py <- 程序的主入口
│ └── core/ <- 核心功能或业务逻辑代码
│ └── demo_modbus_rtu.py <- 完成配置通讯端口ModbusRTU模式、写单圈数据、读单圈数据、写单个寄存器、读保存寄存器、关闭通讯端口 Modbus RTU 模式。
└── Robotic_Arm/ <- 睿尔曼机械臂二次开发包
3.项目下载
通过链接下载 RM_API2
到本地:开发包下载,进入RM_API2\Demo\RMDemo_Python
目录,可找到RMDemo_ModbusRTU。
4. 环境配置
在Windows和Linux环境下运行时需要的环境和依赖项:
项目 | Linux | Windows |
---|---|---|
系统架构 | x86架构 | - |
python | 3.9以上 | 3.9以上 |
特定依赖 | - | - |
Linux环境配置
参考python官网-linux下载安装python3.9。
进入项目目录后打开终端运行以下指令安装依赖:
pip install -r requirements.txt
Windows环境配置
参考python官网-Windows下载安装python3.9。
进入项目目录后打开终端运行以下指令安装依赖:
pip install -r requirements.txt
5. 注意事项
该Demo以RM65-B型号机械臂为例,请根据实际情况修改代码中的数据。
6. 使用指南
6.1 快速运行
按照以下步骤快速运行代码:
配置机械臂IP地址:打开
demo_modbus_rtu.py
文件,在main
函数中修改RobotArmController
类的初始化参数为当前机械臂的IP地址,默认IP地址为"192.168.1.18"
。python# Create a robot arm controller instance and connect to the robot arm robot_controller = RobotArmController("192.168.1.18", 8080, 3)
命令行运行:在终端进入
RMDemo_ModbusRTU
目录,输入以下命令运行Python脚本:bashpython ./src/main.py
运行结果:运行成功后,终端会显示机械臂的运行状态。
运行脚本后,输出结果如下所示:
current api version: 0.2.9
Successfully connected to the robot arm: 1
API Version: 0.2.9
Successfully set the Modbus mode
Successfully wrote the single coil
Successfully read the coils, data: [1]
Successfully wrote the single register
Successfully read the holding registers, data: [180]
Successfully closed the Modbus mode
Successfully disconnected from the robot arm
6.2 代码说明
下面是 demo_modbus_rtu.py
文件的主要功能:
连接机械臂
pythonrobot_controller = RobotArmController("192.168.1.18", 8080, 3)
连接到指定IP和端口的机械臂。
获取API版本
pythonprint("\nAPI Version: ", rm_api_version(), "\n")
获取并显示API版本。
配置Modbus RTU模式
pythonrobot_controller.set_modbus_mode()
写单圈数据
pythonrobot_controller.write_single_coil(1)
读单圈数据
pythonrobot_controller.read_coils()
写单个寄存器
pythonrobot_controller.write_single_register(180)
读保存寄存器
pythonrobot_controller.read_holding_registers()
关闭Modbus RTU模式
pythonrobot_controller.close_modbus_mode()
断开机械臂连接
pythonrobot_controller.disconnect()
7. 许可证信息
- 本项目遵循MIT许可证。
8. 控制器和末端接口图
控制器IO接口图
其中,线缆定义如下表所示。
序号 | 初代线缆线序 | 二代线缆线序 | 定义 | 说明 | 线号(仅二代线缆) | 备注 |
---|---|---|---|---|---|---|
1 | 粉色加棕色 | 黑条棕/棕色 | VOUT | 对外输出正 | 线号1 | 12V/24V |
2 | 灰色加紫色 | 灰色/紫色 | P_IO_GND | 对外输出负 | 线号2 | |
3 | 黄色 | 黄色 | 485A | 线号3 | ||
4 | 黄绿色 | 黑条黄 | 485B | 线号4 | ||
5 | 紫白 | 黑条白 | IO1 | 数字输入/输出双项通道 | 线号5 | |
6 | 红白 | 白条红 | IO2 | 数字输入/输出双项通道 | 线号6 | |
7 | 绿白 | 黑条绿 | IO3 | 数字输入/输出双项通道 | 线号7 | |
8 | 黄白 | 白条黑 | IO4 | 数字输入/输出双项通道 | 线号8 | |
9 | 蓝白 | 黑条橙 | OUT_P_IN | 外部输入数字电源 | 线号9 | 0~24V |
10 | 浅蓝 | 黑条蓝 | OUT_P_OUT | 外部输出数字电源 | 线号10 | 0~24V |
11 | 深蓝 | 蓝色 | OUT_P_GND | 外部数字地 | 线号11 | |
12 | 绿 | 绿色 | FDCAN_A | CAN_H | 线号12 | |
13 | 红 | 红色 | FDCAN_B | CAN_L | 线号13 | |
14 | 白 | 白色 | 空 | 预留 | 线号14 | |
15 | 黑 | 黑色 | 空 | 预留 | 线号15 | |
16 | 橙 | 橙色 | 空 | 预留 | 线号16 |
说明
数字量输入输出的电压值由接入的参考电压决定,机械臂16芯扩展接口线缆仅提供了12V和24V电源电压。数字量输入输出若需要输出其他电压值,则需要从外部对OUT_P_OUT+、PUT_P_GND引脚引入参考电压。
末端IO接口图
末端工具接口通过1个6芯航插对外连接,航插引脚及定义如下所示。
针脚编号 | 接线颜色 | 功能 |
---|---|---|
1 | 黄 | RS485_A |
2 | 白 | RS485_B |
3 | 红 | 数字接口 1(DI1/DO1) |
4 | 黑 | 数字接口 2(DI2/DO2) |
5 | 绿 | 电源GND |
6 | 蓝 | 电源输出:0 V/5 V/12 V/24 V,可进行程序控制 |
说明
上表中的复用功能通过程序指令进行切换。出厂时默认引脚3和引脚4为数字输入通道(DI1和DI2),引脚6的电源输出为0V(可通过程序设置)。