还剩1页未读,继续阅读
文本内容:
Modbus协议使用常见问题分析Modbus协议最初由Modicon公司开发出来,是针对plc设备设计的基于串行总线的主从模式的应用层总线设备协议Mo dbusTCP是封装在TCP包内的Modbus协议,虽然有一些变化,但是根本上还是主从模式 随着嵌入式技术的发展,国内很多系统的控制和采集单元部分为公司自主研发,一般建议这些公司的串行通讯协议采用Modbus协议,很多用户在modbus协议存在着理解错误,现在分析如下
一、modbus的保持和输入寄存器是以word(16bit)为单位的 常见问题
二、寄存器最小地址为1,而报文起始地址为0 在数据报文中,所有的modbus地址都是从0开始的也就是首次出现的数据项在报文中的地址为0比如
1.在控制器中,“线圈1”在Modbus报文的地址域中的地址为0000
2.线圈127的十六进制报文地址为007E hex(十进制的126)
4.保持寄存器40108的报文地址为006B hex十进制107) 总之,Modbus地址一般指4****(保持寄存器/输出寄存器)和3****(输入寄存器),这时应用层面的 数据报文包括设备地址+功能码+起始地址+寄存器个数+校验位其中,起始地址是从0开始的 设备地址功能码起始地址寄存器个数校验 110300000002-- 常见问题
2、分析报文时,直接将报文起始地址当作应用层寄存器地址
3、Modbus的写寄存器命令的不同 常用Modbus寄存器有线圈(Coil)、输入(Input)、保持寄存器(Holding Registers)和输入寄存器(Input Registers) 从Modbus设备角度看,输入是上位机采集Modbus设备的信息,也就是这些寄存器是只读的,所以,Modbus协议没有写输入(Input)和输入寄存器(Input Registers)的命令 线圈(Coil)是状态量,对应Modbus设备的开关量输出(DO),保持寄存器(Holding Registers)是模拟量,对应Modbus设备模拟量输出(AO),这些寄存器需要Modbus设备的上位机进行设置,也就是为可以写的寄存器 在...。