一、RS-485与Modbus概念
RS-485和Modbus是工业自动化和控制系统中常用的两个技术,它们之间的联系主要体现在通信层面。
- RS-485是一种物理通信层的标准接口,它定义了电气特性和信号传输方法。RS-485使用差分信号传输,具有传输速度快、距离远、抗干扰能力强以及可以挂接多台设备等优势。它允许多个设备共享同一通信线路,实现多点互连,这在工业控制领域非常实用。
- Modbus则是一种国际标准的通信协议,用于在不同的设备之间交换数据。它定义了数据如何被封装、地址如何被分配、错误如何被检测以及如何进行数据的请求和响应。Modbus协议可以运行在多种物理层上,包括RS-232和RS-485等。
RS-485作为硬件层协议,只定义了0和1的逻辑,而没有解释其含义。Modbus协议则提供了一种方法来解释这些二进制代码,使得不同的设备能够根据Modbus协议的规定进行明确的交流。
在实际应用中,RS-485常常被用作Modbus协议的物理传输介质。通过RS-485接口,多个Modbus设备可以连接到同一总线上,实现数据的传输和设备的控制。这种结合使用RS-485和Modbus的方式,为工业控制中的设备监控和配置提供了一种可靠、可扩展的通信解决方案。
简而言之,RS-485提供了一种电气连接和信号传输的方式,而Modbus定义了数据交换的规则和协议。两者结合,使得工业设备能够高效、可靠地进行通信。
二、 RS-485与Modbus之间的比较
RS-485其实是一个物理接口,相当于硬件;Modbus则是一种国际标准的通讯协议,用于在不同的设备之间交换数据,所谓Modbus通讯协议,就好比我们人类的语言,相当于软件。
两台设备通过Modbus通讯协议进行数据传输,最开始使用的是RS-232C作为硬件接口,但是在工业生产中,各设备之间往往分布距离远且方位各异,而RS-485用于多点互连时非常方便,可以省掉许多信号线,所以逐渐成为了工业领域中常用的接口标准。
RS-485是物理通信层的标准接口,是一种信号传输方法,具有传输速度快、距离远、抗干扰能力强、可以挂接多台设备等优势:
-
采用差分信号正逻辑,逻辑“1”以两线间的电压差为+(26)V表示;逻辑”0“以两线间的电压差为-(26)V表示。接口信号电平降低,不易损坏接口电路的芯片, 与TTL电平兼容,可方便与TTL电路连接。
-
RS-485通讯速度快,数据最高传输速率为10Mbps,并且RS-485接口是采用平衡驱动器和差分接收器的组合,抗共模干扰能力增强。
-
RS-485的传输速率与传输距离成反比,传输速率越低,传输距离越长。RS-485总线一般最大支持32个节点,如果使用特制的485芯片,可以达到128个或者256个节点,进行组网通讯。
但是RS-485作为硬件层协议,只定义了0、1的逻辑,而没有解释其含义,这时候就需要用到软件层协议了。Modbus就是用来解释这些0101代码的含义的,只有按照Modbus协议的规定去发送代码,不同的设备之间才能进行明确的交流。
Modbus通信协议是应用于电子控制器上的一种通用语言,通过这项协议,控制器与控制器之间、控制器与设备之间可以进行通信。它已经成为一种通用的工业标准,通过它,不同厂商生产的控制设备也可以连成工业网络,进行集中监控。
此协议定义了一个控制器能认识使用的信息结构,描述了一个控制器请求访问其他设备的过程,以及如何回应来自其他设备的请求、怎样侦测错误并记录。
目前,Modbus可以通过下列三种通信方式实现:
- 1、以太网方式:对应的传输模式是Modbus TCP,通讯介质包括5类/6类网线或光纤等;
- 2、异步串行口方式:对应的传输模式是Modbus RTU、ASCII,各种通讯介质包括有线的RS-232/422/485、光纤、无线等;
- 3、高速令牌传递方式:对应的传输模式是Modbus PLUS,通讯介质包括双绞线、同轴电缆等。
工业生产中不同设备通过RS-485串联起来,组成物物相连的网络,再依靠Modbus协议接入网络,各设备之间进行互联互通,实现系统的集中监控,分散控制的功能,推动了工业自动化的发展。
三、RS485通信与Modbus协议:工业控制中的串行通信
简介:RS485通信和Modbus协议是工业控制领域中常用的串行通信方式。它们在解决信号传输问题、提高传输距离和允许多个设备连接等方面具有显著优势。本文将深入探讨这两种通信方式的工作原理和应用。
在工业控制、电力通讯和智能仪表等领域,数据交换通常采用串口通信的方式进行。为了满足各种复杂环境和远距离通信的需求,人们不断探索和发展更可靠的通信方式。RS485通信和Modbus协议便是其中的佼佼者。
一、RS485通信
RS485通信是一种基于差分信号传输的串行通信协议。相比于早期的RS232接口,RS485在信号传输、距离和连接设备数量等方面有显著提升。
差分信号传输:RS485采用差分信号传输方式,这种方式可以有效抵抗共模干扰,提高信号的稳定性和传输距离。在差分信号传输中,发送端将数据转换为正负两种状态,通过两条线(通常为A和B)进行传输。接收端通过比较这两条线的电压差来判断数据的状态。这种方式可以减少电磁干扰(EMI)对信号的影响,保证信号的可靠传输。
传输距离与连接设备数量:RS485的最大传输距离可达1200米,允许多个收发设备接在同一总线上。这为工业现场的分布式控制提供了便利。通过适当的网络拓扑结构,可以实现多节点之间的数据交换,满足各种工业应用的需求。
接口兼容性:由于RS485的信号电平较低,与TTL电平兼容,因此可以直接与微控制器等数字电路连接,无需额外的转换电路。这大大简化了硬件接口的设计和电路保护的需求。
二、Modbus协议
Modbus协议是由施耐德电气于1979年制定的一种工业现场总线协议。它定义了主从设备之间的通信规则,广泛应用于工业自动化领域。
- 通信模式:Modbus协议支持两种通信模式:Modbus RTU和Modbus ASCII。RTU模式采用二进制数据格式,传输速度快且抗干扰能力强,适合长距离传输。ASCII模式采用可读的字符格式,方便调试和读写数据。
- 主从设备:在Modbus网络中,设备分为主设备和从设备。主设备负责发起通信请求,从设备响应主设备的请求并发送数据。通过这种方式,可以实现多个从设备之间的数据交换和共享。
- 数据帧结构:Modbus协议规定了数据帧的结构,包括地址码、功能码、数据区和校验码等部分。
- 地址码标识从设备地址,
- 功能码指示要执行的操作,
- 数据区包含实际传输的数据,
- 校验码用于错误检测和校验数据的完整性。
三、RS485通信与Modbus协议的应用实例
在实际工业控制系统中,RS485通信和Modbus协议经常结合使用。通过RS485接口,多个Modbus从设备可以连接到主设备进行数据交换和控制操作。这种组合提供了高可靠性、远距离和分布式控制的能力,广泛应用于智能仪表、电力监控和过程控制等领域。
总结:
RS485通信和Modbus协议是工业控制领域中常用的串行通信方式。RS485以其可靠的差分信号传输、长距离和多设备连接能力而受到青睐;而Modbus协议则为设备之间的通信提供了规范和标准。通过结合使用RS485和Modbus协议,可以实现高效、可靠的分布式控制系统,满足各种复杂工业应用的需求。
四、RS-485 和Modbus之间的联系
RS-485是一个物理接口,简单来说,也就是硬件。RS-485属于有线传输,所以就需要硬件传输媒介,实际就是两根线就可以了,这两根线上传输的实际上是同一个信号,只是发送端把这个信号一分为二,不过在接收端会把它还原为原来的信号。
由于RS-485具备差分传输线的优势,因此能够把信号在传输过程中引入的干扰抵消掉,RS-232的接收端则不能。所以RS-485的抗干扰能力更强,可以传输信号至上千米,而RS-232只能传输十几米。RS-485/Modbus是现在流行的一种布网方式,其特点是实施简单方便 ,RS485的转换接口相对便宜,种类繁多。
什么是Modbus?
Modbus是一种国际标准的通讯协议,用于不同厂商之间的设备交换数据(一般是工业用途)。所谓协议,也可以理解为上面说的“语言”吧,属于软件。
Modbus只是通信协议的一种,就像汉语和英语一样,就是一种交流的语言,一种机器之间交流的语言。
RS-485与Modbus之间的联系
一般情况下,两台设备通过Modbus协议传输数据,最早是用RS-232作为硬件接口,(也就是普通电脑上的串行通讯口(串口));后来也有用RS-422的,以及最常用的RS-485,这种接口传输距离远,在工业现场用的比较多。
Modbus协议又分Modbus RTU,Modbus ASCII和后来发展的Modbus TCP三种模式。其中前两种所用的物理硬件接口都是串行(Serial)通讯口(RS-232、RS-422、RS-485)。
而Modbus TCP则是为了顺应当今世界的发展潮流,都可以用Ethernet网或Internet来连接,传送数据。所以又叫Modbus TCP模式,该模式的硬件接口就是以太网(Ethernet)口了,也就是我们电脑上一般用的网络口了。
五、 物联网网关协议比较:MQTT 和 Modbus
物联网 (IoT) 不只是新技术, 还是与旧技术的集成,其关键在于通信。 可用的通信方法各不相同,但是,各种不同的协议在将海量“事物”连接到互联网时发挥着重要的作用。 本文介绍了两种物联网补充协议: 用于短距离设备连接的本地协议 Modbus 以及支持物联网进行全局通信的可扩展互联网协议“消息队列遥测传输 (MQTT)”。
Modbus 是一个串行通信协议,首次出现于 1979 年,是连接行业设备实际使用的标准协议。 MQTT 早在 20 年前便已出现,但是将这两个协议结合在一起使用,能够为深度嵌入式设备提供物联网的规模和连接性。 图 1 展示了这些协议之间的一般关系,同时介绍了连接的支持解决方案:物联网网关。
图 1. 物联网 (IoT) 网关作为物联网通信的支持解决方案 我们来看一下 Modbus 和 MQTT,以了解其区别以及如何在物联网中互相补充。
Modbus
自 1979 年首次出现至今,Modbus 已经演变为一套全面的支持多种物理链接的协议集(如 RS-485)。 Modbus 的核心是一个串行通信协议,采用主从模式。 主机向从机发送请求,从机予以回复。 在标准 Modbus 网络中,有一台主机以及最多 247 台从机(但是,如果采用 2 字节寻址,则可显著提高这一界限)。
借助 RS-485,主从机之间的通信发生在指示功能码的帧中。 该功能码可识别要操作的功能,如读取独立输入;读取先进先出队列;或执行诊断函数。 然后,从机根据收到的功能码进行响应,该响应较为简单,由一组字节指示。 因此,从机可以是智能设备,也可以是只有一个传感器的简单设备。
从该描述中,您可以看到 Modbus 协议非常简单,但是其作为协议的开放性使其成为整个行业或 SCADA 系统的实际通信协议。
消息队列遥测传输
MQTT 是一个开放的轻量级机器对机器协议,专为物联网交互设计。 MQTT 网络包含一个 MQTT 经纪人 (broker),负责协调 MQTT 代理之间的交互。 代理是发布器,负责发布供用户使用的信息(参见图 2)。
占地空间少之外,MQTT 还可提供出色的通信高效性(即使通过低带宽网络进行通信)和非常少的开销(较之 HTTP 等协议)。 在 3G 网络中,MQTT 的吞吐量速度是使用 HTTP 的表述性状态转移 (REST) 的 93 倍。
MQTT发布/订阅模式的精髓
发布订阅模式(Publish-Subscribe Pattern)是一种消息传递模式,它将发送消息的客户端(发布者)与接收消息的客户端(订阅者)解耦,使得两者不需要建立直接的联系也不需要知道对方的存在。
MQTT发布/订阅模式的精髓在于由一个被称为代理(Broker)的中间角色负责所有消息的路由和分发工作,发布者将带有主题的消息发送给代理,订阅者则向代理订阅主题来接收感兴趣的消息。
- 发布者(Publisher)
负责将消息发布到主题上,发布者一次只能向一个主题发送数据,发布者发布消息时也无需关心订阅者是否在线。
- 订阅者(Subscriber)
订阅者通过订阅主题接收消息,且可一次订阅多个主题。MQTT还支持通过共享订阅的方式在多个订阅者之间实现订阅的负载均衡。
- 代理(Broker)
负责接收发布者的消息,并将消息转发至符合条件的订阅者。另外,代理也需要负责处理客户端发起的连接、断开连接、订阅、取消订阅等请求。
MQTT 可使用最少的方法指示要在特定主题上实施的操作,进而实施发布/订阅模式。 代理先连接到经纪人,然后再发布或订阅主题。 完成后,代理将从经纪人上断开连接。 MQTT 方法定义:
- 连接 - 建立与 MQTT 经纪人之间的连接。
- 断开连接 - 断开与 MQTT 经纪人之间的连接。
- 发布 - 在 MQTT 经纪人上发布主题。
- 订阅 - 从 MQTT 经纪人上订阅主题。
- 退订 - 从 MQTT 经纪人上退订主题。
图 3 展示了发布者与订阅者使用 MQTT 经纪人进行的简单交互。 如图所示,信息创建者 (producer) 连接至 MQTT 经纪人。 同样,信息消费者 (consumer) 连接至 MQTT 经纪人。 消费者订阅主题(此处定义为 /home/alarms/1/status)。 本示例主题可识别主页上针对区域 1 的警报系统的状态变化。 当创建者有信息要分享时,它会向经纪人发布一条消息,然后经纪人将会将信息分享给所有订阅该主题的用户。
图 3. 消息队列遥测传输代理之间的简单交互
- 请注意此处分享的主题结构。 它与文件系统层次结构相似,这可简化主题的结构。 这种资源层次形式也常见于协议架构中,如 REST。
- MQTT 甚至允许使用通配符的形式,以简化订阅流程。 如果用户想要获取所有警报的状态,则可直接订阅
/home/alarms/+/status,该主题可通知用户所有的警报状态变化。 整个子树还可使用主题 /home/#
进行订阅,该主题可以订阅 /home 下的所有事件。
MQTT 允许定义服务质量 (QoS)。 MQTT 中有三个等级的 QoS:
- QoS 0。 该等级表示“最多一次”交付(最佳状况)。 消息不会得到确认,因而,这是一种一劳永与的方法。
- QoS 1。 该等级表示“至少一次”交付。 用户可能不止一次获得消息,但是允许收到的人确认已经收到。
- QoS 2。 最慢但是最有保障的服务质量等级即为等级 2。 QoS 2 表示“只有一次”,并包含四个阶段的交付握手。 该等级最慢,但是最安全。
您选择的 QoS 等级将取决于数据及其交付的重要性。
MQTT协议结构
在MQTT协议中,一个MQTT数据包由:固定头(Fixed header)、可变头(Variable header)、消息体(payload)三部分构成。
固定头(Fixed header):存在于所有MQTT数据包中,表示数据包类型及数据包的分组类标识。
可变头(Variable header):存在于部分MQTT数据包中,数据包类型决定了可变头是否存在及其具体内容。
消息体(Payload):存在于部分MQTT数据包中,表示客户端收到的具体内容。
消息队列遥测传输经纪人
随着越来越多的物联网采用 MQTT 作为支持协议,您将会发现许多开源应用和产品中出现了 MQTT。 英特尔® 物联网网关解决方案则是其中一款采用 MQTT 的全面物联网解决方案。
该系列产品支持传感器、设备和云之间安全交互。 这些预验证的应用就绪型平台支持出色的可管理性、安全性和多种连接选项,如 ZigBee*、蜂窝网络、蓝牙*、USB、Wi-Fi*,当然还有 MQTT 和 Modbus 等协议。
英特尔根据市场需求提供了三个版本的英特尔® 物联网网关,分别包含不同的输入/输出选项,并针对工业和能源、交通运输以及综合产业等不同领域。 虽有不同之处,但它们无一例外都包括通用的可管理性和供应、数据和端点安全性以及运行时环境。 它们分别运行在安全且稳定的 Wind River* Linux* 上。
英特尔® 物联网网关的主要优势是 McAfee® 嵌入式控制安全技术。 McAfee® 嵌入式控制可根据策略处理设备变化,同时能够追踪所有变化,提供完整的可视性和可说明性,以便进行持续的审计跟踪。
总结
MQTT 和 Modbus 能够互相补充提高物联网的性能。 使用 Modbus 作为本地接口来管理设备,使用 MQTT 作为全局协议来扩展设备的范围,二者都起到了重要的作用。 英特尔® 物联网网关可为现在以及未来构建物联网提供一个简单、安全的方式。