以上位机软件modbus poll和新时达变频器通讯为例,分析Modbus RTU协议和485电平关系。
1.主站
1.1主站发送
设置电脑端口、波特率、数据位8位、校验位无、停止位1位。
地址、功能码、起始地址、读取个数、扫描周期。
报文:Tx:02 03 2B 98 00 05 0D F1
Tx:发送
02 地址Slave ID
03 功能码40000开头为03
2B 98 起始地址2B98(HEX)=11160(DEC)
00 05 地址个数5
0D F1 CRC校验
计算F1 0D(HEX)=11110001 00001101
Modbus是低字节在前所以是0DF1
电平变化和报文对应关系。
Tx: 02 03 2B 98 00 05 0D F1
*2161 1261 12111121 4222 91 111151 11125 1113*
数据包括1个低电平起始,8位数据、1个高电平结束。
第一帧低电平标示起始位0,第二位到第九位01000000,第十位高电平结束1,标示数据10(bin)=02(HEX)。
第二帧低电平标示起始位0,第二位到第九位11000000,第十位高电平结束1,标示数据11(bin)=03(HEX)。
第三帧低电平标示起始位0,第二位到第九位11010100,第十位高电平结束1,标示数据101011(bin)=2B(HEX)。
第四帧低电平标示起始位0,第二位到第九位00011001,第十位高电平结束1,标示数据10011000(bin)=98(HEX)。
1101=0D
11110001=F1
依次类推。
注:
Modbus 是高位高字节在后,低位低字节在前。和常用数据表达方式不一样。