仪器网(yiqi.com)欢迎您!

| 注册 登录
网站首页-资讯-专题- 微头条-话题-产品- 品牌库-搜索-供应商- 展会-招标-采购- 社区-知识-技术-资料库-方案-产品库- 视频

问答社区

modbus RTU模式的通信问题

wjiaoliqiantao 2013-04-08 23:05:15 326  浏览
  • 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月突出贡献榜

推荐主页

最新话题