您现在所在的是:

施耐德电气论坛

回帖:5个,阅读:2031 [上一页] [1] [下一页]
5190
FreeTigerMan
文章数:555
年度积分:165
历史总积分:5190
品牌积分(施耐德):895
注册时间:2002/9/9
发站内信
发表于:2019/7/20 16:23:18
#0楼
从Modbus开始说现场总线(三)

说完了Modbus协议的基本内容,我觉得有必要简单介绍一下Modbus总线的硬件。经典的串行通讯肯定要从RS232/485/422说起,但现在我觉得RS232应该用的很少了吧。这个当年PLC调试的主力接口,最大的问题就是不支持带电插拔,也特别容易因为各种原因被烧掉,如果你的现场还有老设备使用这种9针或RJ45口,一定不要热插拔。没错,后期有些RS232口为了节省空间做成了RJ45口,插上网线是不会工作的。RS422是四线的,支持全双工,但Modbus这种“问答”式的简单协议,本身就是半双工,所以没有什么优势,现场自然就是RS485的天下了。
RS485是差分工作的,所以抗干扰能力强多了,带电插拔也一般不会出问题。随着现场变频器等设备越来越多,RS485也变得非常容易受到干扰,很多情况下需要在使用屏蔽双绞线的同时把通讯电缆单独穿管保护,终端电阻也要合理配置才能稳定工作。

一个特别的情况是TSX Premium和Micro上带的Ter口,是个非隔离的RS485,一般需要专用的电缆才能工作,但如果你手头没有,可以用标准的485接口代替,当然这个口不是Modbus协议,是Uni telway。

附件 Modbus-4.jpg

不同厂家的RS485的工作电平和阻抗有一定的差别,因为RS485的硬件接口标准本来就是个范围,并不能说哪家不合格。但在多点通讯的情况下,节点数量就会有一定的限制,典型的极限值是32,但经常碰到多过一定数量以后就无法通讯的情况,这种情况下多数是因为不同设备的输入阻抗不匹配,简单的解决办法就是不要接太多的节点,因为要调整成型产品的阻抗实在是太麻烦了,除非得到厂家的技术支持。
调试RS485的Mobus总线需要一个USB的485接口,因为现在的笔记本甚至台式机都不带串口了。使用这种USB串口的常见问题是虚拟串口的地址(或名称)问题。USB设备驱动在检测到USB串口后,还是在Windows硬件中虚拟了一个串口叫COMx。以前自带串口的笔记本的串口肯定是COM1,现在的电脑没有实体串口(COM口)了,但或许蓝牙或什么其他硬件会有虚拟串口,或者就是驱动程序为了避免冲突,主动使用一个靠后的地址,比如COM5,这种情况下使用串口调试助手的时候,就要先从windows的设备管理器里找到对应的串口地址(COMx)并和软件设置一致。串口调试助手可以监视总线上的数据,如果你发现看不出规律的话,请把通信总线的+/-或A/B调换一下,而且一定要保证通讯参数设置一致(波特率,起始位,停止位,从地址等),因为不论设置怎么错误,你都会看到一堆数据的,但只有完全设置一致时读出的数据才是对的。有的软件可以自动生成校验码,Modbus使用的是最常见的CRC校验码,有了这个功能,你可以很方便的自己发出Modbus指令帧,检查设备的响应。Modbus从设备是只有接收到正确的指令帧才会有响应的,所以,除非你用正确的参数发送了正确的指令帧,从设备是不会有响应的。一般都是先检测主设备发出了正确的查询命令,如果从设备没有响应,就用软件模拟正确的查询指令,找到从设备没有响应的原因。一般如果不是接口烧坏的话,无非就是接线错误,或者通讯参数设置不对,再就是数据地址不正确,比如从设备只在50~100 号寄存器有数据,你去查询40号或101号,从设备是没有响应的。基本上通过这些方法,一定能找到原因。
[此贴子已经被作者于2019/7/23 9:12:31编辑过]
27950
guanyumou 版主
文章数:10552
年度积分:1133
历史总积分:27950
品牌积分(施耐德):268
注册时间:2008/7/13
发站内信
2018论坛优秀版主
2018春节活动(三)
2017论坛优秀版主
2017国庆活动(二)
2017春节活动(三)
发表于:2019/7/20 20:12:32
#1楼
又见高手的干货!赞一个!
基于各种组态软件\触摸屏\PLC\单片机\变频器Modbus TCP\RTU\ASCII通信编程服务,需要请直接
联系!腾讯扣扣149034219
50
weicy007
文章数:571
年度积分:50
历史总积分:50
品牌积分(施耐德):852
注册时间:2019/4/29
发站内信
发表于:2019/7/22 17:49:55
#2楼
学习了,联机很重要。
27950
guanyumou 版主
文章数:10552
年度积分:1133
历史总积分:27950
品牌积分(施耐德):268
注册时间:2008/7/13
发站内信
2018论坛优秀版主
2018春节活动(三)
2017论坛优秀版主
2017国庆活动(二)
2017春节活动(三)
发表于:2019/7/22 17:57:17
#3楼
这个应该搞一个连载比较好!建议加精!
[此贴子已经被作者于2019/7/22 17:57:39编辑过]
基于各种组态软件\触摸屏\PLC\单片机\变频器Modbus TCP\RTU\ASCII通信编程服务,需要请直接
联系!腾讯扣扣149034219
50
姜礼鹏
文章数:8
年度积分:50
历史总积分:50
品牌积分(施耐德):1
注册时间:2019/2/14
发站内信
发表于:2019/9/3 17:48:30
#4楼
最后说的是精髓啊,我遇到过。
《一般都是先检测主设备发出了正确的查询命令,如果从设备没有响应,就用软件模拟正确的查询指令,找到从设备没有响应的原因。一般如果不是接口烧坏的话,无非就是接线错误,或者通讯参数设置不对,再就是数据地址不正确,比如从设备只在50~100 号寄存器有数据,你去查询40号或101号,从设备是没有响应的。基本上通过这些方法,一定能找到原因。》
5190
FreeTigerMan
文章数:555
年度积分:165
历史总积分:5190
品牌积分(施耐德):895
注册时间:2002/9/9
发站内信
发表于:2019/9/5 16:35:03
#5楼
回复 #4楼 姜礼鹏
哈哈,本来是写出来供大家躲坑用,但一般没遇到坑之前都印象不深,遇到坑了也不一定能想起来。。。。最后还是要在现场着急。。。所以说,经验是比较难学习的,就是要在现场折腾。。。。

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

62.4004