树莓派4B与智能涡轮流量计通过RS485(modbus RTU协议)收发数据(二)(Hyperledger Fabric环境中上传数据)

本文介绍了使用树莓派4B通过RS485与智能涡轮流量计进行通信,并使用modbus RTU协议测试流量计的正常工作。接着,进行了流量计的实验前准备工作,包括查询和理解流量计数据。随后,数据处理预备工作涉及将流量计数据上传到Hyperledger Fabric环境,通过编写Python脚本和shell脚本实现数据的读取、转换和上传。最终,展示了运行结果和实验环境,成功实现了数据的实时采集和上传。
摘要由CSDN通过智能技术生成

上一篇博客配置好了树莓派端的串口通信,这次在加入涡轮流量计之前也先用PC端模拟树莓派测试一下该仪表是否能正常工作。

一、测试流量计通信

流量计说明书如下:

 并且在设备上电时以(9600,8n1格式)自动发送四个字节:

返码格式:站地址(1字节)+波特率(2字节)+格式(1字节)

8n1格式指8个数据位,无校验,1个停止位,8e1与8o1分别对应偶校验和奇校验。

将流量计与USB转485转换器及24V电源正确接线,打开PC端串口,开启电源,观察接收窗口信息(注意接收区和发送区均调成十六进制显示):

 接收到返码为“01 25 80 00”,其意义为:设备地址1,波特率9600,格式8n1

依据说明书的样例,在PC端发送以下命令:

 这一命令用于查询瞬时流量值,依据上篇学过的modbus-RTU协议,可以对该命令作如下解析:

发送:
01 03 00 00 00 02 C4 0B

01-设备地址为1
03-代表查询功能
00 00-查询的寄存器起始地址,由此得知储存瞬时流量值这一数据的寄存器起始地址为0
00 02-查询的寄存器数量,由此得知瞬时流量这一数据由2个寄存器储存
C4 0B-CRC校验码

接收:
01 03 04 00 00 00 00 FA 33

01-设备地址为1
03-查询功能
04-表示后面有4个字节的数据,因为查询了2个寄存器,所以返回2*2个字节数据
00 00 00 00-查询所得的数据
FA 33-CRC校验码

确认了流量计通讯正常后,将树莓派与流量计正确接线,在通讯实验前我事先利用CRC校验算法算好了所有将要用到的命令的校验位值,依据说明书记录的各项数据类型可以推算该数据占用的寄存器个数,例如32位无符号占用4字节,即2个寄存器,因此查询时需要从起始地址往后查两个寄存器的数据,各个数据的起始地址在说明书中均已给出。

二、流量计实验前准备工作

所有拟用到的完整命令如下:

01 03 00 00 00 02 C4 0B        //查询瞬时流量值(L/H)
01 03 00 02 00 02 65 CB        //查询累计流量(L)
01 03 00 08 00 02 45 C9        //查询累计脉冲数
01 03 17 71 00 02 91 A4        //查询仪器系数
01 06 00 06 00 01 A8 0B        //累计流量清零
01 06 00 07 00 01 F9 CB        //累计脉冲数清零

解释一下脉冲数和仪器系数,流量计工作时,内部的水流会推动里面的涡轮叶片转动,每当叶片经过磁铁时会产生感应信号,再经过放大器之类的将脉冲送到计数器里,而仪器系数就是表明多少个脉冲来表示一升水的流量,比如仪器系数1000就表示1000个脉冲1升水。

首先查询一下仪器系数(左边发送,右边接收):

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lv(●—●)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值