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
326
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
374
2
- modbus rtu通信的一些问题
- 问题一:相关资料上说modbus rtu通信数据中每个字节包括” 1个起始位、8个数据位、 1个奇偶校验位、1~2个停止位“,加起来每个字节就有12位了。不是一个字节只有8位的吗? 问题二:无符号十六位二进制数据乘以100,再除以256,这个运算是起到什么作用呢?
2013-01-29 03:23:16
389
2
- 求助三菱FX2N PLC Modbus rtu 通信问题
2017-12-13 00:43:29
366
1
- 求助三菱FX2N PLC Modbus rtu 通信问题
2018-12-06 17:26:32
387
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
447
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
698
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
558
1
- modbus rtu通信有16位数据位的吗
2015-08-16 04:27:59
377
1
- modbus协议RTU模式校验码怎么计算
2016-01-30 03:44:18
439
1
- modbus协议RTU模式校验码怎么计算
2016-01-25 04:46:33
556
1
- MODBUS RTU 规约对时问题
- 我们做了一套变电站监控装置,如何实现主从的对时?也就是时钟对时。谢谢
2018-11-15 23:32:42
402
0
- s7-1200进行modbus RTU 通信需要什么硬件
2014-03-05 22:37:38
261
2
- 如何使Wonderware intouch建立modbus rtu通信
2017-09-26 03:23:52
418
1
- 如何使Wonderware intouch建立modbus rtu通信
2018-11-25 01:36:13
277
0
- 如何使Wonderware intouch建立modbus rtu通信
2017-08-10 12:55:47
317
1
- modbus通信RTU和ASCII两种传输方式的区别?
2012-12-05 14:35:01
393
2
- 为什么modbus会有RTU和ASC两种模式
2018-11-11 00:59:29
338
0
- MODBUS ASCII和RTU两种模式的区别,优缺点
2017-07-21 17:52:42
479
3
- MODBUS ASCII和RTU两种模式的区别,优缺点
2017-12-14 04:52:35
506
1
5月突出贡献榜
推荐主页
最新话题
-
- #激光粒度仪 #
- 电压击穿试验仪:藏在实验室里的“闪电制造者”...电压击穿试验仪:藏在实验室里的“闪电制造者”硬核真相:这台设备能在几秒内让绝缘材料“原地爆炸”!通过模拟极端高压环境(可达300kV以上),它用一道闪电般的电弧,揭穿材料绝缘性能的极限。魔鬼测试流程:温柔起步:以100V/s缓慢升压死亡凝视:实时监测微小漏电流致命一击:在击穿瞬间记录峰值电压(整个过程比科幻大片更刺激)安全玄机:• 防爆油箱:把击穿爆炸锁在40mm钢化玻璃后• 幽灵电压消除:放电后自动归零,防残余电击• 智能逃逸:检测到有毒气体自动启动排风反常识现象:某些纳米复合材料被击穿后会“自愈合”干燥空气的击穿电压≈3kV/mm,但SF₆气体可达89kV/mm
- 市场中的检测zeta电位的一种技术叫CF-P...市场中的检测zeta电位的一种技术叫CF-PALS,他是真的相位分析光散射吗?这种余弦拟合位相分析法,为什么叫"位相",而不是传统的“相位"?
参与评论
登录后参与评论