自定义协议控制方法
USB-485模块接线:
连接夹爪端的 24V,GND, 485_A(T/R+,485+) , 485_B(T/R-,485-)共 4 根线,电源为24V直流稳压电源,将模块的 USB 插口插入到电脑的 USB 接口
485A 接入 485 转 USB 模块 A+;
485B 接入 485 转 USB 模块 B-;
24V 接入 24V 直流稳压电源正极;
GND 接入 24V 直流稳压电源负极
串口调试助手调试:
用户可用UartAssist串口调试助手,参考下图发送相应的夹爪指令,CRC校验码无需填写,UartAssist串口调试助手会自动生成。
夹爪串口默认配置
- 夹爪 ID:14
- 波特率:115200
- 数据位:8
- 停止位:1
- 校验位:无校验位
协议使用说明
夹爪采用自定义协议,一条指令由帧头(2byte),长度(1byte),地址码 ID(1byte),功能码(1byte),寄存器地址(2byte),寄存器数据(2byte),校验码(2byte),我们以读取夹爪角度为例
帧头 | 长度 | ID | 功能码 | 寄存器地址 | 寄存器数据/参数 | CRC-16MODBUS校验码 |
---|---|---|---|---|---|---|
Fe Fe | 08 | 0e | 03 | 00 0C | 00 00 | B1 C0 |
帧头:254 254
长度:指令长度 08
ID: 0E,可以在设备中修改,默认 ID 为 14 ,0E 代表夹爪当前 ID 为 14
功能码:识别指令是设置还是获取功能,06(对寄存器进行写操作)/03(对寄存器进行读操作)。
寄存器地址:00 0c 夹爪功能对应寄存器地址
寄存器参数:00 00,读取指令中不需要参数,可以给 00 00,在设置指令中为参数对夹爪地址写入数据。
CRC 校验:B1 C0,保证终端设备不去响应那些在传输过程中发生改变的数据,保证系统的安全性和效率,CRC 校验采用 16 位的循环余方法 。将帧头,长度,功能码,寄存器地址,寄存器参数所有16进制直接进行校验得到 B1 C0 校验码。
命令总览
读取固件主版本号
指令:fe fe 08 0e 03 00 01 00 00 72 51
功能码:03 读操作
参数:无
返回:fe fe 08 0e 03 00 01 00 01 B2 90
标注:数据返回 00 01,返回版本号为 1
读取固件次版本号
指令:FE FE 08 0E 03 00 02 00 00 72 A1
功能码:03 读操作
参数:无
返回:FE FE 08 0E 03 00 02 00 01 B2 60
标注:数据返回 00 01,表示返回版本号为 1
设置/读取设备 ID 号
设置
指令:FE FE 08 0E 06 00 03 00 0E 76 BD
功能码:06 写操作
参数:00 0E,ID 设置范围(1-254)
返回:FE FE 08 0E 06 00 03 00 01 72 FD
标注:成功返回 00 01,失败返回 00 00,设备 ID 修改后,指令中的 ID 也需要修改 成一样才可以通信
读取
指令:FE FE 08 0E 03 00 04 00 00 73 41
功能码:03 读操作
参数:无
返回:FE FE 08 0E 03 00 04 00 0E B7 C0
标注:数据返回 00 0E,表示当前夹爪 ID 号
设置/读取 485 波特率
设置
指令:FE FE 08 0E 06 00 05 00 00 73 1D
功能码:06 写操作
参数:参数 00 00,0-115200,1-1000000,2-57600,3-19200,4-9600,5-4800, 如设置为 1000000,参数改为 00 01
返回:FE FE 08 0E 06 00 05 00 01 72 FD
标注:成功返回 00 01,失败返回 00 00
读取
指令:FE FE 08 0E 03 00 06 00 00 B3 E0
功能码:03 读操作
参数:无
返回:FE FE 08 0E 03 00 06 00 00 B3 E0
标注:返回数据 00 00,与设值参数对应波特率的值
设置夹爪使能状态
指令:FE FE 08 0E 06 00 0A 00 00 B0 EC
功能码:06 写操作
参数:00 00, 00 表示断使能, 00 01 表示使能
返回:FE FE 08 0E 06 00 0A 00 01 70 2D
标注:成功返回 00 01,失败返回 00 00
设置/读取夹爪角度
设置
指令:FE FE 08 0E 06 00 0B 00 64 9B BC
功能码:06 写操作
参数:参数 00 64,设置角度为全开
返回:FE FE 08 0E 06 00 0B 00 01 B0 7C
标注:成功返回 00 01,失败返回 00 00
读取
指令:FE FE 08 0E 03 00 0C 00 00 B1 C0
功能码:03 读操作
参数:无
返回:FE FE 08 0E 03 00 0C 00 64 5A C1
标注:返回数据 00 64,表示当前角度为 100,全开状态
设置夹爪零位
指令:FE FE 08 0E 06 00 0D 00 00 71 5D
功能码: 06 写操作
参数:无
返回:FE FE 08 0E 06 00 0D 00 01 B1 9C
标注:成功返回 00 01,失败返回 00 00
注意:设置零位时夹爪会自行运动,若运动过程中有物体阻碍会导致设置失败,设置前请检查夹爪周围是否有阻碍物
读取夹爪夹持状态
指令:FE FE 08 0E 03 00 0E 00 00 71 61
功能码:03 读操作
参数:无
返回:FE FE 08 0E 03 00 0E 00 01 B1 A0
标注:00 01,返回数据 0为正在运动 ,1为停止运动,未检测到夹到物,2为停止运动,检测到夹住物体,3为检测到夹住物体,物体掉落
设置/读取夹爪 P 值
设置
指令:FE FE 08 0E 06 00 0F 00 64 5A FD
功能码:06 写操作
参数:参数 00 64,设置 P 值为 100,设置范围(1-150)
返回:FE FE 08 0E 06 00 0F 00 01 71 3D
标注:成功返回 00 01,失败返回 00 00
读取
指令:FE FE 08 0E 03 00 10 00 00 77 01 功能码:03 读操作 参数:无 返回:FE FE 08 0E 03 00 10 00 64 9C 00 标注:返回数据 00 64,表示当前 P 值为 100
设置/读取夹爪 D 值
设置
指令:FE FE 08 0E 06 00 11 00 64 5C 9D
功能码:06 写操作
参数:参数 00 64,设置 D 值为 100,设置范围(1-150)
返回:FE FE 08 0E 06 00 11 00 01 77 5D
标注:成功返回 00 01,失败返回 00 00
若夹爪出现抖动,可适当增大 D 值
读取
指令:FE FE 08 0E 03 00 12 00 00 B7 A0
功能码:03 读操作
参数:无
返回:FE FE 08 0E 03 00 12 00 64 5C A1
标注:返回数据 00 64,表示当前 D 值为 100
设置/读取夹爪 I 值
设置
指令:FE FE 08 0E 06 00 13 00 00 77 3D
功能码:06 写操作
参数:参数 00 00,设置 I 值为 0,设置范围(1-150)
返回:FE FE 08 0E 06 00 13 00 01 B7 FC
标注:成功返回 00 01,失败返回 00 00
读取
指令:FE FE 08 0E 03 00 14 00 00 B6 40
功能码:03 读操作
参数:无
返回:FE FE 08 0E 03 00 14 00 00 B6 40
标注:返回数据 00 00,表示当前 I 值为 0
设置/读取夹爪顺时针可运行误差
设置
指令:FE FE 08 0E 06 00 15 00 01 B6 1C
功能码:06 写操作
参数:参数 00 01,设置值为 1,设置范围(0-16)
返回:FE FE 08 0E 06 00 15 00 01 B6 1C
标注:成功返回 00 01,失败返回 00 00
读取
指令:FE FE 08 0E 03 00 16 00 00 76 E1
功能码:03 读操作
参数:无
返回:FE FE 08 0E 03 00 16 00 01 B6 20
标注:返回数据 00 01,表示当前值为 1
设置/读取夹爪顺时针可运行误差
设置
指令:FE FE 08 0E 06 00 17 00 01 76 BD
功能码:06 写操作
参数:参数 00 01,设置值为 1,设置范围(0-16)
返回:FE FE 08 0E 06 00 17 00 01 76 BD
标注:成功返回 00 01,失败返回 00 00
读取
指令:FE FE 08 0E 03 00 18 00 00 B5 80
功能码:03 读操作
参数:无
返回:FE FE 08 0E 03 00 18 00 01 75 41
标注:返回数据 00 01,表示当前值为 1
设置/读取夹爪最小启动力
设置
指令:FE FE 08 0E 06 00 19 00 18 7F 1D
功能码: 06 写操作
参数:00 18
返回:FE FE 08 0E 06 00 19 00 01 B5 DC
标注:成功返回 00 01,失败返回 00 00
读取
指令:FE FE 08 0E 03 00 1A 00 00 75 21
功能码:03 读操作
参数:无
返回:FE FE 08 0E 03 00 1A 00 18 7F 21
标注:返回数据 00 18,表示当前值为 24
设置/读取扭矩
设置
指令:FE FE 08 0E 06 00 1B 00 64 F8 BC
功能码: 06 写操作
参数:00 64 设置扭力为 100,参数范围(0-100)
返回:FE FE 08 0E 06 00 1B 00 01 75 7D
标注:成功返回 00 01,失败返回 00 00
读取
指令:FE FE 08 0E 03 00 1C 00 00 74 C1
功能码:03 读操作
参数:无
返回:FE FE 08 0E 03 00 1C 01 2C 39 C1
标注:返回数据 01 2C,表示当前值为 300,扭力越大电流也会增大,夹爪力度 也会增大
io 输出设置
指令:FE FE 08 0E 06 00 1D 00 10 78 5D
功能码:06 写操作
参数:00 10 设置 IO 输出为 10,参数范围(00,01,10,11)
返回:FE FE 08 0E 06 00 1D 00 01 74 9D
标注:成功返回 00 01,失败返回 00 00
设置 io 张开角度
设置
指令:FE FE 08 0E 06 00 1E 00 32 61 2D
功能码: 06 写操作
参数:00 32 设置 IO 张开角度为 50,参数范围(0-100)
返回:FE FE 08 0E 06 00 1E 00 01 74 6D
标注:成功返回 00 01,失败返回 00 00
读取 指令:FE FE 08 0E 03 00 22 00 00 B8 A0
功能码:03 读操作
参数:无
返回:FE FE 08 0E 03 00 22 00 32 6D 21
标注:00 32 数据返回为 50 度
设置 io 闭合角度
设置 指令:FE FE 08 0E 06 00 1F 00 00 74 FD
功能码: 06 写操作
参数:00 32 设置 IO 闭合角度为 0,参数范围(0-100)
返回:FE FE 08 0E 06 00 1F 00 01 B4 3C
标注:成功返回 00 01,失败返回 00 00
读取
指令:FE FE 08 0E 03 00 23 00 00 78 F1
功能码:03 读操作
参数:无
返回:FE FE 08 0E 03 00 23 00 00 78 F1
标注:00 00 数据返回为 0 度
设置/读取夹爪速度
设置
指令:FE FE 08 0E 06 00 20 00 32 AD 4C
功能码: 06 写操作
参数:00 32 设置速度为 50,参数范围(1-100)
返回:FE FE 08 0E 06 00 20 00 01 B8 0C
标注:成功返回 00 01,失败返回 00 00
读取
指令:FE FE 08 0E 03 00 21 00 00 B8 50
功能码:03 读操作
参数:无
返回:FE FE 08 0E 03 00 21 00 32 6D D1
标注:00 32 数据返回为 50
设置绝对角度
指令:FE FE 08 0E 06 00 24 00 64 52 8D
功能码: 06 写操作
参数:00 64 设置绝对角度为 100,参数范围(0-100)
返回:FE FE 08 0E 06 00 24 00 01 79 4D
标注:成功返回 00 01,失败返回 00 00
由于响应时间长,用户一直发送这个指令将会被放入队列中逐条指令执行, 绝对角度会等待夹爪运动到指定位置后才返回指令,如果运动过程中有物体阻 碍运动使得夹爪无法运动到指定位置等待超时后返回失败指令
暂停运动
指令:FE FE 08 0E 06 00 25 00 00 79 DD
功能码: 06 写操作
参数:无
返回:FE FE 08 0E 06 00 25 00 01 B9 1C
标注:成功返回 00 01,失败返回 00 00
暂停运动作用于设置绝对角度,发送该指令后将不会从队列中执行绝对角度 指令
恢复运动
指令:FE FE 08 0E 06 00 26 00 00 79 2D
功能码: 06 写操作
参数:无
返回:FE FE 08 0E 06 00 26 00 01 B9 EC
标注:成功返回 00 01,失败返回 00 00
恢复运动作用于设置绝对角度,该指令可以恢复绝对角度队列执行
停止运动
指令:FE FE 08 0E 06 00 27 00 00 B9 7C
功能码: 06 写操作
参数:无
返回:FE FE 08 0E 06 00 27 00 01 79 BD
标注:成功返回 00 01,失败返回 00 00
停止运动作用于绝对角度,该指令会清除绝对指令队列
获取当前队列的数据量
指令:FE FE 08 0E 03 00 28 00 00 BA 80
功能码:03 读操作
参数:无
返回:FE FE 08 0E 03 00 28 00 00 BA 80
标注:00 00,表示绝对角度队列中的指令个数为 0
该指令作用于设置绝对角度,该指令可以获取绝对角度队列中的指令个数
设置舵机虚位数值
设置
指令:FE FE 08 0E 06 00 29 00 08 BC 1C
功能码: 06 写操作
参数:00 08 设置夹爪位置误差范围,参数范围(0-254)
返回:FE FE 08 0E 06 00 29 00 01 BA DC
标注:成功返回 00 01,失败返回 00 00
读取
指令:FE FE 08 0E 03 00 2A 00 00 7A 21
功能码:03 读操作
参数:无
返回:FE FE 08 0E 03 00 2A 00 08 BC 20
标注:00 08 数据返回 8
默认数值为 8,虚位设置越大,夹爪位置判定精准度也会相应降低
设置/读取夹持电流
设置
指令:FE FE 08 0E 06 00 2B 00 FE 3A 3D
功能码: 06 写操作
参数:00 FE 设置夹持电流为 254,参数范围(0-254)
返回:FE FE 08 0E 06 00 2B 00 01 7A 7D
标注:成功返回 00 01,失败返回 00 00
读取
指令:FE FE 08 0E 03 00 2C 00 00 7B C1
功能码:03 读操作
参数:无
返回:FE FE 08 0E 03 00 2C 00 FE FB 40
标注:00 FE 数据返回 254,设置扭矩时夹持物体电流会随之适配,这条指令可 以自行设置夹持电流