modbus-rtu协议控制方法
目前力控夹爪的ModBus-RTU 协议仅支持03和06功能码,力控夹爪作为ModBus-RTU从站,且03功能码的读取的寄存器长度仅为1,03功能码代表读,06功能码代表写
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 直流稳压电源负极
读取保持寄存器(功能码 0x03)
读取夹爪张开角度为例
主站请求帧格式:
从站地址 | 功能码 | 寄存器地址(高位) | 寄存器地址(低位) | 寄存器数量(高位) | 寄存器数量(低位) | CRC16校验高位 | CRC16校验低位 |
---|---|---|---|---|---|---|---|
0x0E | 0x03 | 0x00 | 0x0C | 0x00 | 0x01 | crc1 | crc2 |
从站应答帧格式: |从站地址 | 功能码 | 字节数 | 寄存器(高位) | 寄存器(低位) | CRC16校验高位 |CRC16校验低位| | -------- | ------ | -------- | -------------- | -------------- | ----- |----- | | 0x11 | 0x03 | 0x02 | 0x00 | 0x64 | crc1 | crc2|
设置保持寄存器(功能码 0x06)
设置夹爪张开角度为例 主站请求帧格式:
从站地址 | 功能码 | 起始寄存器(高位) | 起始寄存器(低位) | 数据内容(高位) | 数据内容(低位) | CRC16校验高位 | CRC16校验低位 |
---|---|---|---|---|---|---|---|
0x0E | 0x06 | 0x00 | 0x0B | 0x00 | 0x64 | crc1 | crc2 |
从站应答帧格式:
从站地址 | 功能码 | 起始寄存器(高位) | 起始寄存器(低位) | 数据内容(高位) | 数据内容(低位) | CRC16校验高位 | CRC16校验低位 |
---|---|---|---|---|---|---|---|
0x0E | 0x06 | 0x00 | 0x0B | 0x00 | 0x01 | crc1 | crc2 |
寄存器表
寄存器功能 | 寄存器地址 | 读/写权限 | 说明 |
---|---|---|---|
读取固件主版本号 | 1 | 读 | 版本号*10返回,从1.0开始。例如1.0返回10 |
读取固件次版本号 | 2 | 读 | 0-255,每次主版本号不变的情况下,提交测试次版本号+1 |
设置设备ID号 | 3 | 写 | 1 - 254 |
读取设备ID号 | 4 | 读 | 返回ID |
设置485波特率 | 5 | 写 | 0 - 115200 (默认) 1 - 1000000 2 - 57600 3 - 19200 4 - 9600 5 - 4800 |
读取485波特率 | 6 | 读 | 0 - 115200 1 - 1000000 2 - 57600 3 - 19200 4 - 9600 5 - 4800 |
设置夹爪使能状态 | 10 | 写 | 0 - 掉使能 1 - 上使能 |
设置夹爪角度 | 11 | 写 | 角度值:0-100 |
读取夹爪角度 | 12 | 读 | 角度值:0-100 |
设置夹爪零位 | 13 | 写 | 0 - 失败 1 - 成功 |
读取夹爪夹持状态 | 14 | 读 | 0 - 正在运动 1 - 停止运动,未检测到夹到物体 2 - 停止运动,检测到夹到了物体 3 - 检测到夹到物体以后,物体掉落 |
设置夹爪P值 | 15 | 写 | 值范围0-254 |
读取夹爪P值 | 16 | 读 | 值范围0-254 |
设置夹爪D值 | 17 | 写 | 值范围0-254 |
读取夹爪D值 | 18 | 读 | 值范围0-254 |
设置夹爪I值 | 19 | 写 | 值范围0-254 |
读取夹爪I值 | 20 | 读 | 值范围0-254 |
设置夹爪顺时针可运行误差 | 21 | 写 | 值范围0-16 |
读取夹爪顺时针可运行误差 | 22 | 读 | 值范围0-150 |
设置夹爪逆时针可运行误差 | 23 | 写 | 值范围0-16 |
读取夹爪逆时针可运行误差 | 24 | 读 | 值范围0-150 |
设置夹爪最小启动力 | 25 | 写 | 值范围0-254 |
读取夹爪最小启动力 | 26 | 读 | 值范围0-150 |
设置扭矩 | 27 | 写 | 值范围0-100 |
读取扭矩 | 28 | 读 | 值范围100-300 |
io输出设置 | 29 | 写 | 值范围 :0,1,16,17 |
设置io张开角度 | 30 | 写 | 角度值:0-100 |
读取io张开角度 | 31 | 写 | 角度值:0-100 |
设置夹爪速度 | 32 | 写 | 速度:1-100 |
读取夹爪默认速度 | 33 | 写 | 速度:1-100 |
读取Io张开角度 | 34 | 写 | 角度值:0-100 |
读取Io闭合角度 | 35 | 写 | 角度值:0-100 |
设置绝对角度 | 36 | 写 | 角度值:0-100 |
暂停运动 | 37 | 写 | 值:0 |
恢复运动 | 38 | 写 | 值:0 |
停止运动 | 39 | 写 | 值:0 |
获取当前队列的数据量 | 40 | 读 | 返回当前绝对控制队列中的数据量 |
设置舵机虚位数值 | 41 | 写 | 值:0-100 |
读取舵机虚位数值 | 42 | 读 | 值:0-100 |
设置夹持电流 | 43 | 读 | 值:100-300 |
读取夹持电流 | 44 | 读 | 值:1-300 |