发布网友 发布时间:2022-04-24 17:50
共4个回答
热心网友 时间:2023-10-28 08:19
读的功能码是03,写的功能码10,都是16进制。
modbus是一个大的框架协议。具体标准不同,读写寄存器的发码格式不同。标准的modbus有两种主流,一种是modbus-ASCII另一种是modbus-RTU,第三种是modbus-TCP。
1、modbus-ASCII: RS485通讯。传输介质采用屏蔽双绞线。主要针对字符传输,它可以将ASCII码转换成16进制数发送。需要LRC(纵向冗余码)校验数据正确性。
2、modbus-RTU:RS485通讯。传输介质采用屏蔽双绞线。主要针对数据传输,它可以将IEEE754浮点数,整数等转换成16进制数发送。需要CRC-16或CRC-32(循环校验码)校验数据正确性。
3、modbus-TCP:以太网通讯。传输介质网线。可传输字符也可传输数据。因为遵循TCP协议,所以无需校验。
热心网友 时间:2023-10-28 08:19
modbus是一个大的框架协议。具体标准不同,读写寄存器的发码格式不同。标准的modbus有两种主流,一种是modbus-ASCII另一种是modbus-RTU,第三种是modbus-TCP。
modbus-ASCII: RS485通讯。传输介质采用屏蔽双绞线。主要针对字符传输,它可以将ASCII码转换成16进制数发送。需要LRC(纵向冗余码)校验数据正确性。
modbus-RTU:RS485通讯。传输介质采用屏蔽双绞线。主要针对数据传输,它可以将IEEE754浮点数,整数等转换成16进制数发送。需要CRC-16或CRC-32(循环校验码)校验数据正确性。
modbus-TCP:以太网通讯。传输介质网线。可传输字符也可传输数据。因为遵循TCP协议,所以无需校验。
读的功能码是03,写的功能码10,都是16进制。格式:站号(1bit)+功能码(1bit)+起始地址(2bit)+长度(2bit)+校验(2bit)(如果需要)。例如,RTU协议,读取站1,从7052寄存器开始读8个字。(数据长度默认为字)校验码低位在前高位在后的情况发码应为:01 03 1b 8c 00 08 83 03。校验码高位在前低位在后的情况发码应为:01 03 1b 8c 00 08 03 83。
具体CRC-16或LRC校验码的计算,我也不懂,但是可以在网上下到校验位(码)计算工具。
希望对你有帮助。
热心网友 时间:2023-10-28 08:20
旺财,有什么东西发我一份追问0.0 居然知道是我
热心网友 时间:2023-10-28 08:21
自己要编写通信协议的