布瑞特单圈绝对值旋转编码器串口数据读取
数据手册:http://briter.net/col.jsp?id=109 (2.1版本RS485说明书通信协议 单圈.pdf)
绝对式编码器为布瑞特BRT38-ROM16384-RT1,采用RS485通信。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WymwNSfZ-1690888823352)(C:/Users/Fengzhen/AppData/Roaming/Typora/typora-user-images/image-20230801142219392.png)]](https://i-blog.csdnimg.cn/blog_migrate/b491a755d7bcee407228326a59c65029.png)
该绝对式编码器共有5根线:红、黄、黑、绿、白

由于需要通过绝对是编码器采集数据,并通过串口上传至上位机。因此,需要使用RS485转USB模块进行转接。
1.2 MODBUS-RTU 帧格式
本编码器支持 MODBUS 的 0x03(读保持寄存器)、0x06(写单个寄存器)。
1.2.1 0x03 读保持寄存器
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dwNaHDsv-1690888823354)(C:/Users/Fengzhen/AppData/Roaming/Typora/typora-user-images/image-20230801145531134.png)]](https://i-blog.csdnimg.cn/blog_migrate/7d253e8187735615d0838b58440313f6.png)
1.2.2 0x06 写单个寄存器

1.3 寄存器定义
1.3.1 编码器寄存器


如上表可知,该编码器共有13个寄存器,每个寄存器对应着一种功能,可通过对这13个寄存器进行设置,实现特定的功能。
由1.2可知,寄存器有两种模式:读和写。支持功能码为0x03为读保持寄存器,支持功能码为0x06为写保持寄存器。
编码器通信设置:
1、 读取编码器虚拟多圈值
Tx:01 03 00 00 00 02 (C4 0B)
Rx:01 03 04 00 01 76 3B (CC 40)
主站发送:
| Tx寄存器字节 | 1(ADR) | 2(读) | 3(起始寄存器高字节) | 4(起始寄存器低字节) | 5(寄存器低字节) | 6(寄存器低字节) | 7(CRC高字节) | 8(CRC低字节) |
|---|---|---|---|---|---|---|---|---|
| 内容 | 01 | 03 | 00 | 00 | 00 | 02 | C4 | 0B |
寄存器的第3和4个字节构成寄存器的地址即0x0000
从站回送:
| Rx寄存器字节 | 1(ADR) | 2(读) | 3(字节总数) | 4、5(寄存器数据1) | 6、7(寄存器数据2) | … | M-1、M(寄存器数据M) | M+1(CRC高字节) | M+2(CRC低字节) |
|---|---|---|---|---|---|---|---|---|---|
| 内容 | 01 | 03 | 04 | 00 01 | 76 3B | CC | 40 |
注:括号内为 CRC 校验位,编码器值返回数据是 00 01 76 3B (十进制:95803)
2、设置编码器波特率
Tx:01 06 00 05 00 02 (18 0A)
Rx:01 06 00 05 00 02 (18 0A)
注:括号内为 CRC 校验位,设置的波特率为 38400 (0x02)
主站发送:
| Tx寄存器字节 | 1(ADR) | 2(写) | 3(寄存器高字节) | 4(寄存器低字节) | 5(寄存器数高字节) | 6(寄存器数低字节) | 7(CRC高字节) | 8(CRC低字节) |
|---|---|---|---|---|---|---|---|---|
| 内容 | 01 | 06 | 00 | 05 | 00 | 02 | 18 | 0A |
寄存器的第3和4个字节构成寄存器的地址即0x0005,第5和6个字节构成要发送的数据为0x0002。
当从站接收正确,从站回送:
| Rx寄存器字节 | 1(ADR) | 2(读) | 3(寄存器高字节) | 4(寄存器低字节) | 5(寄存器数高字节) | 6(寄存器数低字节) | 7(CRC高字节) | 8(CRC低字节) |
|---|---|---|---|---|---|---|---|---|
| 内容 | 01 | 06 | 00 |

本文介绍布瑞特单圈绝对值旋转编码器串口数据读取,采用RS485通信,需RS485转USB模块转接。支持MODBUS的0x03、0x06功能码,详细说明了编码器通信设置,包括读取虚拟多圈值、设置波特率等,还给出转速计算方法及完整代码的串口设置。
最低0.47元/天 解锁文章
4605

被折叠的 条评论
为什么被折叠?



