仪器社区

modbus RTU模式的通信问题

wjiaoliqiantao 2013-04-08
modbus RTU模式的通信通讯格式要求 地址 功能码 数据 CRC校验 数据长度 1个字节 1个字节 N个字节 2个字节 如发送的数据... modbus RTU模式的通信通讯格式要求 地址 功能码 数据 CRC校验 数据长度 1个字节 1个字节 N个字节 2个字节 如发送的数据为: 03 01 00 00 10 校验高位校验低位 我的问题是: 1、我理解地址03使用1个字节数据长度表示,是用1个字节表示0,再使用一个字节表示3,但再就使用了两个字节的数据长度了,和通讯要求的格式不符。还有一种理解就是使用1个字节的直接表示03,其而进制码为000000011,如果地址是20,其二进制码为00010100,但这种理解出现个疑问,很多设备同时支持ASCII或RTU两种方式,当发送RTU的地址和ASCII方式的起始符相同时如都为03,接受方怎么判断他是RTU发送的地址,还是ASCII起始符。 2、RTU方式判断帧消息结束时是3.5字符时间,我想知道在物理层如何判断的,如消息发送完后,在物理层485双绞上,其电压持续3.5字符长度+15V即判断消息发送完成或是其电压持续3.5字符长度-15V判断消息发送完成。还是双绞线上为其他状态来判断消息完成。485通讯线上没有通讯时A、 B线状态是什么。 请教各位了?
评论
全部评论
木鱼来了aCh2i
1、RTU模式时地址(03,十六进制)长度是1个字节,ASCII模式时地址长度是2个字节(30、33,ASCII码)。设备即使支持ASCII、RTU两种方式,但在设备调试时必须选定一种模式,这样设备就根据选定的模式,区分是RTU数据帧还是ASCII数据帧而相应地处理。
2、RTU模式要求帧消息的间隔时间大于等于3.5字符时间,这是在应用层上处理的,物理层上的电平变化只是根据应用层的动作随之变化。我们知道,串口通讯的核心是通用异步接收/发送装置(UART),它需要发/收双方指定相同的波特率/数据位/校验位/停止位等通讯参数,才可以正确解调出一个字节数据。若一个RTU数据帧有很多个字节,UART就是一个一个字节地连续解调并存到缓冲区中。若发送方发送2个数据帧的间隔很短,接收方的UART就可能无法判断而当成一个数据帧,所以要求间隔时间不小于3.5字符时间。
18 0 2018-04-12 0条评论 回复
卷毛96
楼主理解错误!
地址03使用1个字节数据长度表示 0x03,十六进制数 一个字节 表示的数从0-255(无符号)

其他,没有看完

建议楼主先去百度文库 里搜相关文档看看
16 0 2013-04-09 0条评论 回复
您可能感兴趣的社区主题
加载中...
发布 评论