一篇文章了解 rs485 和 modbus 的区别,它们有什么不同? · 物联网平台-威尼斯人最新

thingskit · 2020年03月03日 · 最后由 回复于 2022年08月19日 · 631 次阅读
本帖已被设为精华帖!

在工业控制、电力通讯、智能仪表等领域,通常情况下是采用串口通信的方式进行数据交换。最初采用的方式是 rs232 接口,由于工业现场比较复杂,各种电气设备会在环境中产生比较多的电磁干扰,会导致信号传输错误。

1979 年施耐德电气制定了一个用于工业现场的总线协议 modbus 协议,现在工业中使用 rs485 通信场合很多都采用 modbus 协议,所以今天我们来了解下 rs485 通信和 modbus 通信协议。

一、rs485 介绍

在工业控制场合,rs485 总线因其接口简单,组网方便,传输距离远等特点而得到广泛应用。

rs485 和 rs232 一样都是基于串口的通讯接口,数据收发的操作是一致的,所以使用的是同样 wince 的底层驱动程序。但是它们在实际应用中通讯模式却有着很大的区别,rs485 接口为半双工数据通讯模式,而 rs232 接口为全双工数据通讯模式,数据的收发不能同时进行,为了保证数据收发的不冲突,硬件上是通过方向切换来实现的,相应也要求软件上必须将收发的过程严格地分开。

rs485 接口组成的半双工网络,一般是两线制(以前有四线制接法,只能实现点对点的通信方式,现很少采用),多采用屏蔽双绞线传输。这种接线方式为总线式拓扑结构在同一总线上最多可以挂接 32 个结点。在 rs485 通信网络中一般采用的是主从通信方式,即一个主机带多个从机。

rs485 的特性:

rs485 的电气特性:逻辑 “0” 以两线间的电压差为 (2—6)v 表示;逻辑 “1” 以两线间的电压差为 -(2—6)v 表示。接口信号电平比 rs232 降低了,就不易损坏接口电路的芯片,且该电平与 ttl 电平兼容,可方便与 ttl 电路连接。
rs485 的数据最高传输速率为 10mbps。
rs485 接口是采用平衡驱动器和差分接收器的组合,抗共模干扰能力增强,即抗噪声干扰性好。
rs485 接口的最大传输距离标准值为 4000 英尺(约 1219 米),实际上可达 3000 英尺,另外 rs232 接口在总线上只允许连接 1 个收发器,即单站能力。而 rs485 接口在总线上是允许连接多达 128 个收发器。即具有多站能力,这样用户可以利用单一的 rs485 接口方便地建立起设备网络。

二、modbus 介绍

modbus 是由 modicon(现为施耐德电气公司的一个品牌)在 1979 年发明的,是全球第一个真正用于工业现场的总线协议。

modbus 网络是一个工业通信系统,由带智能终端的可编程序控制器和计算机通过公用线路或局部专用线路连接而成。其系统结构既包括硬件、亦包括软件。它可应用于各种数据采集和过程监控。

modbus 特点:

标准、开放,用户可以免费、放心地使用 modbus 协议,不需要交纳许可证费,也不会侵犯知识产权。目前,支持 modbus 的厂家超过 400 家,支持 modbus 的产品超过 600 种。
modbus 可以支持多种电气接口,如 rs-232、rs-485 等,还可以在各种介质上传送,如双绞线、光纤、无线等。
modbus 的帧格式简单、紧凑,通俗易懂。用户使用容易,厂商开发简单。

modbus 通讯传送方式:

通讯传送分为独立的信息头,和发送的编码数据。以下的通讯传送方式定义也与 modbusrtu 通讯规约相兼容:

初始结构=≥4 字节的时间

地址码=1 字节

功能码=1 字节

数据区=n 字节

错误校检=16 位 crc 码

结束结构=≥4 字节的时间

地址码:地址码为通讯传送的第一个字节。这个字节表明由用户设定地址码的从机将接收由主机发送来的信息。并且每个从机都有具有唯一的地址码,并且响应回送均以各自的地址码开始。主机发送的地址码表明将发送到的从机地址,而从机发送的地址码表明回送的从机地址。

功能码:通讯传送的第二个字节。modbus 通讯规约定义功能号为 1 到 127。本仪表只利用其中的一部分功能码。作为主机请求发送,通过功能码告诉从机执行什么动作。作为从机响应,从机发送的功能码与从主机发送来的功能码一样,并表明从机已响应主机进行操作。如果从机发送的功能码的最高位为1(比如功能码大与此同时 127),则表明从机没有响应操作或发送出错。

数据区:数据区是根据不同的功能码而不同。数据区可以是实际数值、设置点、主机发送给从机或从机发送给主机的地址。

crc 码:二字节的错误检测码。

三、rs485 和 modbus 的区别

rs485 是一个物理接口,简单的说是硬件。

modbus 是一种国际标准的通讯协议,用于不同厂商之间的设备交换数据(一般是工业用途);所谓协议,也可以理解为上面有人说的 “语言” 吧,简单的说是软件。

一般情况下,两台设备通过 modbus 协议传输数据:

最早是用 rs232c 作为硬件接口,(也就是普通电脑上的串行通讯口(串口)); 也有用 rs422 的,也有常用的 rs485,这种接口传输距离远,在一般工业现场用的比较多。

modbus 协议又分 modbus rtu,modbus ascii 和后来发展的 modbus tcp 三种模式:其中前两种(modbus rtu,modbus ascii)所用的物理硬件接口都是串行(serial)通讯口(rs232,rs422,rs485)。

而 modbus tcp 则是为了顺应当今世界发展潮流,什么都可以用 ethernet 网或 internet 来连接,传送数据。所以又 modbus tcp 模式,该模式的硬件接口就是以太网(ethernet)口了,也就是我们电脑上一般用的网络口了。

thingskit 将本帖设为了精华贴 03月03日 15:53
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册
网站地图