Skip to content

4.Modbus RTU通讯协议控制

4.1 寄存器地址说明

机械爪支持标准Modbus RTU协议,默认波特率2Mbps,机械爪ID为0x08。目前支持的功能码有:0x03/0x06/0x10。

  • 0x03: 读取寄存器
  • 0x06: 写单个寄存器
  • 0x10: 写多个寄存器

读取:

通讯地址说明
0x0000运行状态
0x0001速度(r/min)
0x0002电流百分比
0x0003电流
0x0004指令位置
0x0006电机位置
0x0008位置误差
0x000F当前报警代码

写入:

通讯地址说明设定范围单位出厂设定
0x0100机械爪使能0-1;0
0x010A控制模式0-2;0:开合模式,1:位置模式。0
0x0303速度指令0-4000r/min1000
0x0505夹取检测阈值30-1000.01A50
0x0506保持电流限幅(力)10-1000.01A50
0x0508跌落检测阈值500-2000r/min1000
0x0601通讯波特率0: 4800 1: 9600 2: 192008: 9216009: 1M10: 1.5M11: 2Mbps11
0x0700位置命令高位0-0xFFFF-0
0x0701位置命令低位0-0xFFFF-0
0x0702位置反馈高位0-0xFFFF-只读
0x0703位置反馈低位0-0xFFFF-只读

运动状态(0x0000)

位1:000:停止状态位3:200:未使能
01:运动状态10:使能状态
10:夹取状态
11: 机械爪有错误

4.2读取保持寄存器

读取保持寄存器
请求指令格式
Modbus RTU 数据机械爪 ID1 Byte0x08
功能码1 Byte0x03
寄存器起始地址2 BytesAddress
寄存器数量2 BytesN*
Modbus CRC 162 BytesCRC*
响应指令格式
Modbus RTU 数据机械爪 ID1 Byte0x08
功能码1 Byte0x03
字节数1 ByteN*x2
寄存器值N*x2 BytesValue
Modbus CRC162 BytesCRC*

注: N* = 寄存器数量
Address= 寄存器起始地址(见下面列表)
CRC* = 循环冗余校验

寄存器:

寄存器起始地址寄存器值
获取机械爪状态0x00002 Bytes未使能状态: 0x0000 使能中状态: 0x0004 使能完成状态: 0x0008 停止状态: 0x0008 运动状态: 0x0009 夹取状态: 0x000A 报错状态: 0x000B
获取机械爪错误0x000F2 Bytes有错误: 其他返回值都代表有错误(除0以外)无错误: 0x0000

4.3 写入寄存器

写入寄存器
请求指令格式
Modbus RTU 数据机械爪 ID1 Byte0x08
功能码1 Byte0x10
寄存器起始地址2 BytesAddress
寄存器数量2 BytesN*
字节数1 ByteN*x2
寄存器N*x2 BytesValue
Modbus CRC 162 BytesCRC*
响应指令格式
Modbus RTU 数据机械爪 ID1 Byte0x08
功能码1 Byte0x10
寄存器起始地址2 BytesAddress
寄存器数量2 BytesN*
Modbus CRC 162 BytesCRC*

注: N* = 寄存器数量 Address= 寄存器起始地址(见下面列表) CRC* = 循环冗余校验

寄存器:

寄存器起始地址寄存器值
使能/关闭机械爪0x01002 Bytes使能: 0x0001 停用: 0x0000
设置机械爪位置0x07004 Bytes打开机械爪: 0x0000 0x0082 闭合机械爪: 0x0000 0x0032
设置机械爪速度0x03032 Bytes0x0000-0x0BB8 单位: r/min
清除机械爪错误0x000F2 Bytes0x0000

4.4 Modbus RTU示例

使用Modbus RTU控制BIO机械爪G2开合,模式1。

  1. 设置机械爪模式1。地址:0x010A, 最后两位为CRC: 6D AD,断电后仍生效。
发:08 06 11 0A 00 01 6D AD
收:08 06 11 0A 00 01 6D AD
  1. 使能机械爪。地址:0x0100。
发:08 06 01 00 00 01 49 6F
收:08 06 01 00 00 01 49 6F
  1. 打开机械爪,位置150,速度3000,力50。
设置速度3000
发:08 06 03 03 0b b8 7E 55
收:08 06 03 03 0b b8 7E 55

设置力50(百分比)
发:08 06 05 06 00 32 E8 4B
收:08 06 05 06 00 32 E8 4B

打开机械爪G2到150, 发送的位置需要做转换:(150-70)*3.75=(OCT)100=(HEX)01 2c
发:08 10 07 00 00 02 04 00 00 01 2c FB 4E
收:08 10 07 00 00 02 40 25
  1. 关闭机械爪,位置71。
发:08 10 07 00 00 02 04 00 00 00 00 FB 03
收:08 10 07 00 00 02 40 25
  1. 读取机械爪位置。
机械爪位置71
发:08 03 07 02 00 02 64 26
收:08 03 04 00 00 00 00 63 33
  1. 读取报警代码。地址:0x000F
发:08 03 00 0F 00 01 B4 90
收:08 03 02 00 00 64 45