您好,我需要您的帮助,我目前正在与arduino一起进行emodbus项目,我想将电能表的数据读取到arduino板上的串行监视器,
例如,我将arduino的以下框架发送到仪表以恢复张力值:01 03 00 12 00 02 64 0E
作为回应,从柜台收到的arduino卡,我收到以下信息:01 03 04 43 54 19 9A 25 9C
该值必须为:212.1
我的问题是我无法在串行监视器上显示我如何使用arduino代码解码此帧以获得真实值
阅读有关modbus library的信息
帧格式(这从评论中回答了我的问题-您应该知道的)
一个Modbus“框架”由一个应用数据单元(ADU)组成,封装协议数据单元(PDU):[10]
ADU = Address + PDU + Error check, PDU = Function code + Data.
Modbus数据帧中值的字节顺序最重要多字节值的一个字节先于其他字节发送。全部Modbus变体使用以下帧格式之一。[1] Modbus RTU框架格式(主要用于异步串行数据行,例如RS-485 / EIA-485)名称长度(位)功能起始28至少3½静音字符时间(标记条件)地址8站地址功能8表示功能代码。例如,阅读线圈/保持寄存器数据n×8数据+长度将被填充取决于消息类型CRC 16循环冗余校验结束28帧之间的静音时间至少为3½个字符时间
[使用库或从其构建积木之前read the issues first。对于emodbus go here的应用程序:查看文件emodbus.h和emodbus.cpp以及etools.h和etools.cpp