@[toc]
Modbus来源
1 | Modbus于1979年诞生,已经历经了40多年。 |
序号 | 读写 | 储存类型 | 储存器名称 |
---|---|---|---|
1 | 只读 | 线圈 | 输入线圈 |
2 | 读写 | 线圈 | 输出线圈 |
3 | 只读 | 寄存器 | 输入寄存器 |
4 | 读写 | 寄存器 | 保持寄存器 |
对写入输出线圈和写入保持型寄存器进行细分,分为单个写入和多个连续写入,因此前面的4种储存器可变成了8种形成,同时给每个行为取个代号,即形成了我们常说的8大功能码,如表格所示:
功能码 | 功能说明 |
---|---|
0x01 | 读取输出线圈 |
0x02 | 读取输入线圈 |
0x03 | 读取保持寄存器 |
0x04 | 读取输入寄存器 |
0x05 | 写入单个线圈 |
0x06 | 写入单个寄存器 |
0x0F | 写入多个线圈 |
0x10 | 写入多个寄存器 |
1:ModbusRTU的通用报文格式如下:
第一部分:从站地址,占1个字节
第二部分:功能码,占1个字节
第三部分:数据部分,占N个字节
第四部分:校验部分,CRC校验,占2个字节
2:ModbusASCII的通用报文格式如下:
第一部分:开始字符(:)
第二部分:从站地址,占2个字节
第三部分:功能码,占2个字节
第四部分:数据部分,占N个字节
第五部分:校验部分,LRC校验,占2个字节
第六部分:结束字符(CR LF)
3:ModbusTCP的通用报文格式如下:
第一部分:事务处理标识符,占2个字节
第二部分:协议标识符,占2个字节
第三部分:长度,占2个字节
第四部分:单元标识符,占1个字节
第五部分:功能码,占1个字节
第六部分:数据部分,占N个字节