2022.10.28实训笔记

87 阅读2分钟

1.物理层协议
物理层采用 UART 转TTL 通信接口。
波特率为 9600,8 位数据位,1位停止位,无校验。

2.应用层协议 应用层采用Modbus-RTU协议进行通信,目前只支持0X03(读保持寄存器)、0x04(读输入寄存器)、0X06(写单个寄存器)0×41(校准)、0x42(电能清零)等功能码。其中0×41功能码仅限于内部使用(地址只能是0xF8),用作出厂校准和返厂维修等场合,在功能码之后增加16位的密码,密码默认为0x3721。从机的编址范围为0x01~0xF7,地址0x00作为广播地址从机不需回复主机,地址0xF8作为通用地址,该地址只能用在单从机的环境中,可以用作校准等操作。

主机读取测量结果命令(8个字节)

从机地址+0x04+寄存器地址高字节+寄存器地址低字节+寄存器数量高字节+寄存器数量低字节+CRC高字节+CRC低字节

从机回复如下命令的格式

正确:从机地址+0x04+字节数+寄存器1数据高字节+寄存器1数据低字节+...+CRC校验高字节+CRC低字节

错误:从机地址+0x84+异常吗+CRC校验高字节+CRC低

image.png

每个寄存器两个字节,内容如下 image.png

命令举例

image.png

通过单片机USART2转发给USART1,结果如下:

上位机发:F8 04 00 00 00 0A 64 64

F8 04 为固定,从寄存器地址00开始,0A表示要接收10个寄存器,共20个字节,校验码为 64 64

下位机收:F8 04 14 08 ED 00 00 00 00 00 00 00 00 00 00 00 00 01 F4 00 00 00 00 FC CD F8 04 为固定,14表示要接收20个字节,不包括校验码,校验码为 FC CD 08 ED 表示电压为228.5V 01 F4 表示频率为50Hz

使用官方上位机模拟接受指令

image.png

接收模拟指令根据电流并绘图

image.png