modbus RTU模式的通信问题

pyqy2k2022-10-04 11:39:541条回答

modbus RTU模式的通信问题
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线状态是什么.

已提交,审核后显示!提交回复

共1条回复
tdh8566 共回答了20个问题 | 采纳率70%
1、RTU模式时地址(03,十六进制)长度是1个字节,ASCII模式时地址长度是2个字节(30、33,ASCII码).设备即使支持ASCII、RTU两种方式,但在设备调试时必须选定一种模式,这样设备就根据选定的模式,区分是RTU数据帧还是ASCII数据帧而相应地处理.
2、RTU模式要求帧消息的间隔时间大于等于3.5字符时间,这是在应用层上处理的,物理层上的电平变化只是根据应用层的动作随之变化.我们知道,串口通讯的核心是通用异步接收/发送装置(UART),它需要发/收双方指定相同的波特率/数据位/校验位/停止位等通讯参数,才可以正确解调出一个字节数据.若一个RTU数据帧有很多个字节,UART就是一个一个字节地连续解调并存到缓冲区中.若发送方发送2个数据帧的间隔很短,接收方的UART就可能无法判断而当成一个数据帧,所以要求间隔时间不小于3.5字符时间.
1年前

相关推荐

西门子200的modbus地址对应
西门子200的modbus地址对应
我想请问一下在plc200中使用的V16.0;v16.1;v16.2:v17.0;v17.2;它们对应的modbus地址是多少?
谢谢.最好更给一下计算的公式什么的.我只知道v16对应40009.主要是后面的位不知道怎么对应?
1230509251年前1
51890718 共回答了23个问题 | 采纳率82.6%
如果是200之间的MODBUS通讯,系统手册有介绍地址对应关系.如果和第三方通讯要知道该设备地址代表的意思.
modbus 下面帧各代表什么意思啊
modbus 下面帧各代表什么意思啊
read ts>01 03 64 05 00 00 A5 00 00 00 04 00 00 00 00 00 C0 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80
00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80
00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80
00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80
00 80 00 00 10 11 11 00 11 00 00 00 00 4C 69
要是把read ts>01 03 64 05 00 00 A5 00 00 00 04 00 00 00 00 00 C0 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80
00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80
00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80
00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80
00 80 00 00 10 11 11 00 11 00 00 00 00 4C 69
这个数据结合起来又要怎么去理解呢?然后那些功能码之类那些又要怎么解释呀!有没有高手啊!教教我啊!谢谢哦!
郑源源1年前1
天字号外 共回答了12个问题 | 采纳率91.7%
地址1,从寄存器4 0051开始读取50个寄存器.
地址1,应答读保持寄存器,100个字节数据,从05开始到4C前为数据,具体表示什么查说明书,或者点表等文件,
后两个字节均为校验码
CRC校验码是怎样生成的,或者说是怎样计算出来的?百度了一下,都没怎么看懂,有谁可以教我吗?我要做一个modbus的通讯
CRC校验码是怎样生成的,或者说是怎样计算出来的?百度了一下,都没怎么看懂,有谁可以教我吗?我要做一个modbus的通讯要用到,一时没弄懂,
zz云起1年前1
cc5208 共回答了15个问题 | 采纳率100%
一只蜘蛛网触到了我的前额.
那一刻,
并非十分纯正.
痛苦的另一种方式,一次冒险,
为么然后我得背诵我的课文,我的声音低低的
我在马上,到影子里
MODBUS通信问题MODBUS-MSG块中,SLAVE这个功能项内的从站地址范围是1到247,是不是在这个范围内随意确
MODBUS通信问题
MODBUS-MSG块中,SLAVE这个功能项内的从站地址范围是1到247,是不是在这个范围内随意确定,还是有规则,需要在硬件连接以后从电脑上面看.
Court这个功能项内,说明是写通讯的数据个数(字或位),字是1到120个字也就是1到1920个位,我想问,这个功能项里面,我如果是填的1,那么代表是一个位还是一个字呢.
wearebloaacom1年前1
lilyspy 共回答了21个问题 | 采纳率95.2%
Slave值范围是1至247,说明从站的地址可以是1-247中的任意值,主站和从站通讯时知道从站的站地址即可.
第二个问题代表的是1个字.
modbus和RS485的关系是什么?
tt只想你笑1年前1
千河 共回答了18个问题 | 采纳率100%
RS485属于有线传输,所以就要硬件传输媒介,实际就是两根线就可以了,在这两根线上传输的实际是同一个信号,只是发送端把这个信号一分为二,不过在接收端会把它还原为原来的信号,这样做的好处还要得和RS232来比较;RS232也需要两根线,更多的时候还要加上地线,所以是三根线,地线咱不管它,其余的两根只有一根线传输的数据信号,而另一根传输的时钟,也就是信号原来什么样发送端就怎样发送出来,同样接收端也做同样的处理.所以485的接收端可以把信号在传输过程中引入的干扰就可以抵消掉,而232的接收端不能,所以485的抗干扰能力强可以传输信号上千米,而232只能传输十几米.
至于MODBUS只是通信协议的一种,就像汉语和英语一样,就是一种交流的语言,一种机器之间交流的语言.那么在交流之前肯定要有沟通的桥梁吧,那就是传输媒介485或232或其他电气规则,同一种协议可以用不同的传输媒介方式如485或232但是同一传输线路上不能同时存在两种协议.