目标:使用树莓派4B与CANHAT扩展板读取智能插排测量的各项数据(RS485+modbus RTU),获取的数据上传到Hyperledger Fabric框架。
之前学习过了modbus RTU协议,在智能涡轮流量计的实验中应用过一次,这次用这个带485模块的智能插座再复习一次~
实验材料:
树莓派4B/8G:
CANHAT扩展板:
USB-485转换器:
RS485机柜排插:
RJ45水晶头转8PIN端子:
树莓派相关库与例程在上次实验已经安装过了,步骤可参照官网:
RS485 CAN HAT - Waveshare Wiki
一、PC端串口测试
还是先使用PC端的串口调试助手测试一下智能插座的通讯。先将设备正确接线:
这次的智能插排RS485模块接线口是水晶头而不是通常的AB端子,所以还需要一个水晶头转端子线,接线如上图的说明书所示。
调试前先看看设备的通信说明书:
可以看到一个寄存器同样也是表示2字节的数据,电量用两个寄存器表示也就是4个字节,其他数据应该都只占用一个寄存器。这次的说明书详细一些,还给出了数据转换公式。
具体各项数据存储的寄存器地址如下:
计算一下需要用到的modbus命令:
01 03 00 48 00 01 04 1C 查询电压值
01 03 00 49 00 01 55 DC 查询电流值
01 03 00 4A 00 01 A5 DC 查询有功功率
01 03 00 4B 00 02 B4 1D 查询有功总电能
01 03 00 4D 00 01 14 1D 查询功率因数
01 03 00 4E 00 02 A4 1C 查询二氧化碳排量
以查询有功总电能为例,串口调试助手发送命令后接收到如下数据: