modbus RTU模式的通信问题
-
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线状态是什么。 请教各位了? 展开
全部评论(2条)
-
- 卷毛96 2013-04-09 00:00:00
- 楼主理解错误! 地址03使用1个字节数据长度表示 0x03,十六进制数 一个字节 表示的数从0-255(无符号) 其他,没有看完 建议楼主先去百度文库 里搜相关文档看看
-
赞(16)
回复(0)
-
- 木鱼来了aCh2i 2018-04-12 18:55:34
- 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)
热门问答
- modbus RTU模式的通信问题
- 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线状态是什么。 请教各位了? 展开
2013-04-08 23:05:15
356
2
- modbus rtu串口通信
- 公司买了一个温度巡检仪,功能有限,我想通过自己做的软件来增强巡检仪的功能,但对串口通信编程知之甚少。现通过监控原程序得到以下数据:write requests: 01 03 00 01 00 01 D5 CA 01 01 00 50 00 20 3D C3 01 03 00 60 00 10 44 18 read requests: 01 03... 公司买了一个温度巡检仪,功能有限,我想通过自己做的软件来增强巡检仪的功能,但对串口通信编程知之甚少。现通过监控原程序得到以下数据:write requests: 01 03 00 01 00 01 D5 CA 01 01 00 50 00 20 3D C3 01 03 00 60 00 10 44 18 read requests: 01 03 02 00 02 39 85 01 01 04 00 00 00 00 FB D1 01 03 20 4E 20 4E 20 4E 20 4E 20 4E 20 4E 20 4E 20 4E 20 4E 20 4E 20 4E 20 4E 20 4E 20 4E 20 4E 20 4E 20 AE 38 从中能不能翻译出什么东西?? 后来我又根据已有资料及网上相关程序编写了以下通讯程序: Private Sub Command1_Click() '发请求 Dim btSend(23) As Byte btSend(0) = &H1 '目标站号 btSend(1) = &H3 '功能码 btSend(2) = &H0 'I0.0地址(0000)高字节 btSend(3) = &H1 'i0.0地址(0000)低字节 btSend(4) = &H0 '读取个数高字节 btSend(5) = &H1 '读取个数低字节 btSend(6) = &HD5 btSend(7) = &HCA btSend(8) = &H1 btSend(9) = &H1 btSend(10) = &H0 btSend(11) = &H50 btSend(12) = &H0 btSend(13) = &H20 btSend(14) = &H3D btSend(15) = &HC3 btSend(16) = &H1 btSend(17) = &H3 btSend(18) = &H0 btSend(19) = &H60 btSend(20) = &H0 btSend(21) = &H10 btSend(22) = &H44 btSend(23) = &H18 ComK3.Output = CVar(btSend) Dim btReceive As Variant With ComK3 Do DoEvents Loop Until .InBufferCount = 5 .InputLen = 30 btReceive = .Input Text1.Text = Hex$(btReceive(1)) Text2.Text = Hex$(btReceive(2)) Text3.Text = Hex$(btReceive(3)) Text4.Text = Hex$(btReceive(4)) ' Text5.Text = Hex$(btReceive(5)) 'Text6.Text = Hex$(btReceive(6)) ' Text7.Text = Hex$(btReceive(7)) ' Text8.Text = Hex$(btReceive(8)) ' Text9.Text = Hex$(btReceive(9)) ' Text10.Text = Hex$(btReceive(10)) ' Text11.Text = Hex$(btReceive(11)) ' Text12.Text = Hex$(btReceive(12)) ' Text13.Text = Hex$(btReceive(13)) ' Text14.Text = Hex$(btReceive(14)) ' Text15.Text = Hex$(btReceive(15)) ' Text16.Text = Hex$(btReceive(16)) ' End If End With End Sub Private Sub Form_Load() With ComK3 .CommPort = 1 .Settings = "9600,N,8,2" .InputMode = comInputModeBinary '二进制收发 .InBufferSize = 512 .OutBufferSize = 512 If (Not .PortOpen) Then .PortOpen = True End With End Sub 能收到4个乱码,应该是错误标示,原程序待CRC验证,我验证不出,所以先删除了。期望大侠们帮我修改下程序 展开
2009-07-05 16:19:26
407
2
- modbus rtu通信的一些问题
- 问题一:相关资料上说modbus rtu通信数据中每个字节包括” 1个起始位、8个数据位、 1个奇偶校验位、1~2个停止位“,加起来每个字节就有12位了。不是一个字节只有8位的吗? 问题二:无符号十六位二进制数据乘以100,再除以256,这个运算是起到什么作用呢?
2013-01-29 03:23:16
417
2
- 求助三菱FX2N PLC Modbus rtu 通信问题
2017-12-13 00:43:29
390
1
- 求助三菱FX2N PLC Modbus rtu 通信问题
2018-12-06 17:26:32
403
0
- Modbus RTU通讯问题
- 物理连接结构:主设备ADAM5510,通讯端口【ADAM5090 (RS232)】 连接【RS232/RS485转换】并联从设备1、2。标准Modbus RTU协议。主设备发指令读取从设备寄存器地址。只有1有响应,2无响应,断开1则2有响应 用电脑替换主设备,分别发指令至1、2均有正确回应。何... 物理连接结构:主设备ADAM5510,通讯端口【ADAM5090 (RS232)】 连接【RS232/RS485转换】并联从设备1、2。标准Modbus RTU协议。主设备发指令读取从设备寄存器地址。只有1有响应,2无响应,断开1则2有响应 用电脑替换主设备,分别发指令至1、2均有正确回应。何解??? 如何实现主设备正常与多个从设备通讯? 展开
2011-09-05 09:04:46
490
2
- 两个不同PLC之间通过rs485(modbus RTU)通信的问题
- 我们实验用了ABB ac500 pm592 ,与别人西门子的s7-200通过RS485进行通信,我是主,他做从 我用了AC500的cpu的com1,接的是2,3口, 两边的com设置都是9600波特率,8数据位,偶校验,1停止位 主PLC程序如下: BLINK1(ENABLE:=TRUE , TIMELOW:=T... 我们实验用了ABB ac500 pm592 ,与别人西门子的s7-200通过RS485进行通信,我是主,他做从 我用了AC500的cpu的com1,接的是2,3口, 两边的com设置都是9600波特率,8数据位,偶校验,1停止位 主PLC程序如下: BLINK1(ENABLE:=TRUE , TIMELOW:=T#1s , TIMEHIGH:=T#1s , OUT=> ); COM_MOD_MAST_receive3( EN:=BLINK1.OUT , COM:=1 ,(*接口编号*) SLAVE:= 2,(*从站IP地址,变压器作为MODBUS_RTU从站*) FCT:=03,(*读N个字*) TIMEOUT:=1000, ADDR:=40001,(*要读取的从站寄存器首地址MODBUS*) NB:=41 ,(*要读取从站的数据个数,对于位存取NB中规定位的个数,对于字和双字存取,在NB中规定字的个数*) DATA :=ADR(ETH_REC_DATA2) ,(*主站存储区首地址,从从站读取的数据放在该地址*) DONE=> , ERR=> , ERNO=>); xx:=COM_MOD_MAST_receive3.ERNO; IF COM_MOD_MAST_receive3.DONE=TRUE AND COM_MOD_MAST_receive3.ERR=FALSE THEN read3_success_num:=read3_success_num+1; IF read3_success_num>5000 THEN read3_success_num:=0; END_IF; END_IF; 但是程序一直没有收到数据,不知道是哪里错了 能否给予解答? 有没有相关的说明文件给予参考 展开
2017-09-29 20:36:06
728
2
- 关于Modbus ASCII 和RTU 模式下数据位长度的问题
- ASCII 模式和RTU模式对数据位数都有要求,请问不按照标准协议要求的数据位来配置串口,是不是不正确的? 我们用的是stm32,只支持数据长度为8或9,而ASCII模式中要求数据位长度为7···· 另外,在旧代码中,RTU模式中,数据位长度配置的是9,与标准协议中的... ASCII 模式和RTU模式对数据位数都有要求,请问不按照标准协议要求的数据位来配置串口,是不是不正确的? 我们用的是stm32,只支持数据长度为8或9,而ASCII模式中要求数据位长度为7···· 另外,在旧代码中,RTU模式中,数据位长度配置的是9,与标准协议中的8不符合···· Z后,在RTU模式,关于字符时间计算问题,当波特率大于一定值时,字符时间是个定值,请问这个定值具体是多少根据什么确定?可以不用标准协议上的推荐值吗? 困惑,请高人解答 展开
2011-03-30 12:33:46
580
1
- modbus rtu通信有16位数据位的吗
2015-08-16 04:27:59
393
1
- modbus协议RTU模式校验码怎么计算
2016-01-30 03:44:18
467
1
- modbus协议RTU模式校验码怎么计算
2016-01-25 04:46:33
596
1
- MODBUS RTU 规约对时问题
- 我们做了一套变电站监控装置,如何实现主从的对时?也就是时钟对时。谢谢
2018-11-15 23:32:42
418
0
- s7-1200进行modbus RTU 通信需要什么硬件
2014-03-05 22:37:38
295
2
- 如何使Wonderware intouch建立modbus rtu通信
2017-09-26 03:23:52
436
1
- 如何使Wonderware intouch建立modbus rtu通信
2018-11-25 01:36:13
295
0
- 如何使Wonderware intouch建立modbus rtu通信
2017-08-10 12:55:47
341
1
- modbus通信RTU和ASCII两种传输方式的区别?
2012-12-05 14:35:01
422
2
- 为什么modbus会有RTU和ASC两种模式
2018-11-11 00:59:29
358
0
- MODBUS ASCII和RTU两种模式的区别,优缺点
2017-07-21 17:52:42
513
3
- MODBUS ASCII和RTU两种模式的区别,优缺点
2017-12-14 04:52:35
553
1
12月突出贡献榜
推荐主页
最新话题
-
- #八一建军节——科技铸盾,仪器护航#
- 如何选择到合适的磷青铜绞线?磷青铜绞线的质量...如何选择到合适的磷青铜绞线?磷青铜绞线的质量解析和如何选择到合适的绞线?磷青铜绞线是一种特殊的铜合金导线,由铜、锡和磷等元素组成,具有很好的机械性能、电气性能和耐腐蚀性。磷青铜绞线基本定义与特性:磷青铜是铜与锡、磷的合金,质地坚硬,可制弹簧。典型成分为铜(90%)、锡(6-9%)及磷(0.03-0.6%)锡元素提升合金的强度和耐腐蚀性,磷则细化晶粒、增强耐磨性铸造性能。耐磨性:表面氧化层使其在特殊环境下耐腐蚀,使用寿命长导电性:保持铜很好导电性能的同时有化电子传输路径非铁磁性:不含铁元素,避免在强磁场环境中产生额外能量损耗弹性:受到外力作用时能迅速恢复原状
- 八一建军节 铁血铸军魂













参与评论
登录后参与评论