c#modbus tcp通讯助手开源_从Modbus开始说现场总线

如需获得更多信息,文末点击“了解更多”

从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。

2c3ea91de766fc79aed766331ef7bb1c.png

不同厂家的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号,从设备是没有响应的。基本上通过这些方法,一定能找到原因。

从Modbus开始说现场总线(四)串行Modbus通讯从PLC发明之初一直用到现在,不论是因为其简单易用还是工业现场技术更新“比较慢”,都必然可以看到现场总线的快速发展。如果也要给现场总线划分一个年代的话,我觉得可以简单的分成三代。

第一代就是以Modbus为代表的串行通讯协议,除了Modbus之外,还有西门子的MPI,罗克韦尔(AB)的DF1,DH-485,TE的unitelway等这些串行主从式通讯总线,硬件基本都是基于RS-232/422/485。

第二代是Modbus Plus,Profibus DP/PA,ControlNet,DeviceNet等仍然是基于RS485的硬件基础,但为了满足工业通讯的确定时延要求开发的令牌总线网。同是还有ASI,CanOpen等现场总线。

第三代就是延续这些应用层协议(TCP-Modbus,ProfiNet,Ethernet/IP等)的工业以太网了,当然这个时代也出现无线通讯作为有限链接的补充。

现场总线的使用都要涉及至少两个方面:通讯总线硬件的连接和通讯服务(软件)的配置及调用,这也是各类总线最大的不同支持。

基于RS485的各种总线,在现场经常会碰到终端电阻匹配等问题,这里以Profibus DP为例介绍一下。Modbus Plus也是类似的做法。

一般说法:在通讯中终端电阻是为了消除在通信电缆中的信号反射。在通信过程中,有两种原因因导致信号反射:阻抗不连续和阻抗不匹配。阻抗不连续,信号在传输线末端突然遇到电缆阻抗很小甚至没有,信号在这个地方就会引起反射。这种信号反射的原理,与光从一种媒质进入另一种媒质要引起反射是相似的。消除这种反射的方法,就必须在电缆的末端跨接一个与电缆的特性阻抗同样大小的终端电阻,使电缆的阻抗连续。

由于信号在电缆上的传输是双向的,因此,在通讯电缆的另一端可跨接一个同样大小的终端电阻。引起信号反射的另个原因是数据收发器与传输电缆之间的阻抗不匹配。这种原因引起的反射,主要表现在通讯线路处在空闲方式时,整个网络数据混乱。要减弱反射信号对通讯线路的影响,通常采用噪声抑制和加偏置电阻的方法。在实际应用中,对于比较小的反射信号,为简单方便,经常采用加偏置电阻(也叫上/下拉电阻)和/或终端电阻的方法。

一个正规的RS-485网络(比如MPI,DP)应使用终端电阻和偏置电阻。在网络连接线非常短、临时或实验室测试时也可以不使用终端和偏置电阻。

终端电阻:在线型网络两端(相距最远的两个通信端口上),并联在一对通信线上的电阻。根据传输线理论,终端电阻可以吸收网络上的反射波,有效地增强信号强度。两个终端电阻并联后的值应当基本等于传输线在通信频率上的特性阻抗。

偏置电阻:偏置电阻用于在电气情况复杂时确保A、B信号的相对关系,保证“0”、“1”信号的可靠性。

西门子的PROFIBUS网络连接器已经内置了终端和偏置电阻,通过一个开关方便地接通或断开。网络终端的插头,其终端电阻开关必须放在“ON”的位置;中间站点的插头其终端电阻开关应放在“OFF”位置。

终端和偏置电阻的值完全符合西门子通信端口和PROFIBUS电缆的要求。合上网络中网络插头的终端电阻开关,可以非常方便地切断插头后面的部分网络的信号传输。

与其他设备通信时(采用PROFIBUS电缆),对方的通信端口可能不是D-SUB9针型的,或者引脚定义完全不同。如西门子的MM4x0变频器,RS-485通信口采用端子接线形式,这种情况下需要另外连接终端电阻,西门子可以提供一个比较规整的外接电阻。对于其他设备,可以参照《S7-200系统手册》上的技术数据制作。

西门子网络插头中的终端电阻、偏置电阻的大小与西门子PROFIBUS电缆的特性阻抗相匹配,强烈建议用户配套使用西门子的PROFIBUS电缆和网络插头。可以避免许多麻烦,但在现场碰到问题是,也不要迷信原装产品,可以根据情况调整。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值