MODBUS规定的内容,起始符 + 设备地址 + 功能代码+ 数据+ 效验码+ 结束字符.设备地址我知道的.功能代码,比如说要读取一个D值,就写H3,请说详细一点

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/06 07:43:22
MODBUS规定的内容,起始符  + 设备地址 + 功能代码+ 数据+ 效验码+ 结束字符.设备地址我知道的.功能代码,比如说要读取一个D值,就写H3,请说详细一点

MODBUS规定的内容,起始符 + 设备地址 + 功能代码+ 数据+ 效验码+ 结束字符.设备地址我知道的.功能代码,比如说要读取一个D值,就写H3,请说详细一点
MODBUS规定的内容,
起始符  + 设备地址 + 功能代码+ 数据+ 效验码+ 结束字符.
设备地址我知道的.
功能代码,比如说要读取一个D值,就写H3,
请说详细一点

MODBUS规定的内容,起始符 + 设备地址 + 功能代码+ 数据+ 效验码+ 结束字符.设备地址我知道的.功能代码,比如说要读取一个D值,就写H3,请说详细一点
Modbus协议分ASCII,RTU和TCP三种类型.

你说的含有起始符和结束符的应该是Modbus ASCII,起始符是冒号(:)字符,ASCII码 为3AH,结束符是回车换行符,ASCII码为0DH,0AH.
而Modbus RTU通讯协议中是没有规定起始字符和结束字符的,Modbus协议中判断一帧数据的开始和结束时靠停止时间的长度来决定的.当两个字节的中间空闲时间超过4个Byte的时间,即判断这一帧结束.同样的道理,当超过4个Byte的空闲之后,下位机收到数据,此数据即判断为新的一帧数据的开始.

设备地址即为下位机的Slave Address,从站地址.

功能代码,你说的H3我没看懂~ 你是要表达03H吗? H代表16进制,03功能码是读取保持寄存器.常用的功能码还有如下一些:04H读取输入寄存器,06H读取单个寄存器,08H诊断,11H报告设备ID,16H写入多个寄存器.

数据就是你要写入的寄存器地址,写入几个寄存器以及写入的内容.如果是读操作,就只需要指定要读取的寄存器地址以及位数即可.

校验码是对数据有效性的一个校验,占两个字节,具体ASCII使用LRC校验,RTU使用CRC校验,TCP无需校验.至于校验码的算法,请百度之,有点太长了.

好了,大概就这些了,码字幸苦,如果对你有点帮助请记得采纳,谢谢!