布瑞特单圈绝对值旋转编码器串口数据读取

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

布瑞特单圈绝对值旋转编码器串口数据读取

数据手册: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)]
该绝对式编码器共有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)]

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
本文章已经生成可运行项目
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值