0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Modbus的实现方法有哪些?Modbus网络架构方案介绍

冬至子 来源:老李物语 作者:李广山 2023-08-11 16:53 次阅读

1.0 介绍

Modbus是由AEG-Modicon(莫迪康)公司开发的串行通信协议。它最初设计用于可编程逻辑控制器(PLC)。它是一种应用层消息传递协议,运行在开放系统互连(OSI)协议模型的第7层,提供连接在不同类型网络上的设备之间的客户端-服务器通信。

Modbus协议层如下图所示,它定义了一种通过另一设备访问和控制设备的方法,而不考虑所涉及的物理网络的类型。

图片

Modbus不需要接口,就像许多其他总线一样。用户可以选择RS-422, RS-485或20 mA电流回路。与其他总线相比,Modbus速度相对较慢,但在控制仪表制造商和用户中被广泛接受,具有决定性优势。

自1979年以来,Modbus成为工业串行总线的事实标准。Modbus没有正式的认证方式,制造商的责任是确认他们的产品与Modbus设备兼容。协议描述了一个设备访问另一个设备的方式,如何接收信息,以及如何响应查询。在出现错误的情况下,协议提供了一种向用户发送相应命令的机制。通过将Modbus协议作为数据包嵌入到其他网络的协议中,通信可以在Modbus网络上进行,也可以在其他网络(如以太网)上进行。

Modbus串行通信协议基于主/从原理,由主设备发起事务。该协议提供一个主设备和多达247个从设备。

Modbus的一些特性是固定的,一些特性是用户可以选择的。固定的特征是帧格式、帧序列、通信错误和异常条件的处理以及所执行的功能。可选择的特性是传输介质和传输特性。用户特征一旦设置,在系统运行时就不能更改。

2.0 通信栈

Modbus的实现方法如下:

  • 以太网上的传输控制协议(TCP)/互联网协议(IP)。
  • 异步串行传输在不同的媒质,如:EIA/TIA-232E, EIA-422, EIA/TIA-485-A; 光纤, 无线通信等.
  • Modbus Plus — 一种高速令牌传递方法。

下图,展示了使用TCP/IP、主/从和Modbus Plus物理层实现Modbus通信栈的过程。

图片

3.0 网络结构

Modbus网络架构方案如下图所示。

图片

不同的设备,如PLC、人机界面(HMI)、输入/输出(I/O)等,可以通过单独的网关连接到Modbus TCP/IP。不同的Modbus协议,即MB+上的Modbus, RS-232上的Modbus,RS-485上的Modbus通过TCP/IP发起远程通信。

4.0 通信事务

Modbus串行通信采用主/从协议。主站发起查询,从站通过向主站提供必要的数据或根据请求采取适当的操作来响应。 从站的响应如下:

  • 采取适当的行动
  • 向主站提供必要的数据/信息
  • 通知主站,必要的行动无法执行。

当从站无法按照主站的请求执行所需的操作时,将向主站发送一条错误消息(称为异常响应)。对主站的异常响应包含以下内容:

  • 响应从站的地址
  • 从站被请求执行的动作和
  • 说明行动为什么不能执行。

如果消息包含错误,从站会忽略它。在这种情况下,因为它无法收到从响应的响应,主站将查询重发给从站。

4.1. 主/从和广播通信

主站可以一个一个地对从站寻址(单播模式),也可以同时给所有从站寻址(广播模式)。从站响应单播消息,但不响应多播消息。主/从通信和广播通信方式分别如下图所示:

图片

4.2 查询响应周期

查询由主站发起,从站响应它。查询响应周期是Modbus网络中所有通信事务的基础。来自主站的查询包含四部分:设备地址、功能码、数据/消息和错误检查码。从站的响应结构与主站的响应结构相同。下图显示了查询响应周期。

图片

4.2.1 地址段

主站在其查询中发送的地址字段包含消息所指向的从站的地址。取值范围为 1到247。当从站发送它的响应时,它将自己的地址放在它的地址字段中,以便主站可以知道正确的从站正在响应。地址0指定用于广播。所有从站都读取它们,但不向来自主站的查询提供任何响应。

4.2.2 功能段

虽然不是所有设备都支持所有的功能码,但是功能码的取值范围是1 ~ 255。当功能码在查询中从主站到达从站时,从站就会知道它必须采取的操作。从站所采取的动作的例子可能包括:读取输入状态,读取寄存器内容,改变从站内的状态,操作继电器线圈等。

当从站向主站发送响应时,它重复接收到的佛南功能码。它表示从站已经理解了来自主站的查询并采取了相应的行动。如果从站无法执行指令,则生成异常响应,从站使用功能码和数据字段将异常的原因告知主站。

在生成异常响应的情况下,从站将原始功能码返回给主站,但将MSB设置为1。在这种情况下,从站的响应消息的数据字段向主站指示所发生的错误的性质。因此,主站可以基于此采取适当的操作。主站所采取的行动可能是重复原始消息,或尝试诊断问题,或设置警报等。

4.2.3 数据段

查询中从站接收到的数据字段通常包括寄存器值、寄存器地址或寄存器范围。有些功能不需要数据字段,此时,来自主站的查询中不包含d数据字段。

如果没有发生错误,则从站使用响应的数据字段将数据传递回主主站。当错误发生时,从站的数据字段传递更多的信息,告知主站所检测到的错误的性质。

Modbus本身不编码数据,因此可以采用许多编码方案。用户可以就网络通讯协议做出选择。

4.2.4 错误校验段

错误校验字段允许主站确认从从站接收到的消息的完整性。所采用的错误校验方法取决于所选择的传输模式。在远程终端单元(RTU)模式下,可以采用循环冗余检查(CRC),或者,对ASCII模式的传输采用LRC。

接收设备收到完整消息后,计算错误校验值,并与收到的消息中的错误校验值进行比较。如果两者一致,则没有发生错误并采取相应的行动。如果两个值不一致,接收到的消息将被拒绝。

5.0 协议说明:PDU 和 ADU

Modbus可以在不同类型的总线和网络上实现,但Modbus部分协议数据单元(PDU)必须包含该总线和网络中。PDU由两个字段组成:功能码和数据。

两种最常见的Modbus实现类型是以太网(TCP/IP)和串行通信,串行通信通可以是RS232RS422RS485。最常见的Modbus串行协议是Modbus-RTU。无论用于特定应用程序的协议类型是什么,特定于应用程序的寻址和错误校验都附加到PDU上,从而产生应用程序数据单元(ADU)。如下图所示,ADU表示Modbus帧。

图片

6.0 传输模式

在Modbus网络中传输串行数据有两种传输方式:RTU和ASCII。它们在许多方面有所不同:在消息字段中包装信息的方式、解释消息的比特内容的方式、解码消息的方式以及在给定波特率下的操作速度。

不同的模式不能同时使用,用户可以为特定的应用程序选择特定的模式。RTU模式比ASCII模式更快、更健壮。因此,在消息传输方面,它比ASCII形式有更多的应用

RTU传输模式有时被称为Modbus-B, ASCII传输模式被称为Modbus-A。ASCII模式下的典型消息长度大约是等效RTU消息长度的两倍。 在ASCII传输模式下,消息中的每个字节以两个ASCII字符的形式传输,在RTU传输模式下,消息中的每个字节以一个包含两个十六进制数字的8位二进制数的形式发送。

通过将Modbus数据封装在TCP/IP报文中,Modbus报文也可以在局域网和广域网中传输。

7.0 消息分帧

对于消息的传输,在其最终传输之前构造一个帧。帧由开始字符和结束字符、单播设备地址或广播设备地址、功能码、数据和错误校验码组成。

7.1 ASCII 分帧

Modbus ASCII 帧由六个字段组成,如下图所示。

图片

帧以冒号(:)开头,它是ASCII字符3Ah, h表示十六进制。帧以一个end结束,它是一个回车换行符,用两个ASCII字符 0Dh和0Ah表示。中间其余四个字段用十六进制字符 0-9和A-F表示。

ASCII模式允许两个连续传输之间的间隔为1秒,而不会产生任何错误。连接到Modbus网络的所有设备持续监视冒号字符,冒号字符将代表ASCII字符的开始。如果一个特定的设备发现与它自己的地址匹配,那么它将开始解码功能代码和其他字段,并采取相应的行动。

7.2 RTU 分帧

在这种模式下,消息帧以至少3.5倍字符长度的静默时间间隔开始。消息以相同的3.5倍字符长度的时间间隔结束。在开始字段之后,接收设备将监听地址字段,以了解消息是否要发送到该设备。RTU帧格式如下图所示。整个消息帧必须在一个连续流中传输,否则将产生错误。

图片

8.0 Modbus TCP/IP

开放的Modbus TCP/IP规范于1999年引入。使用Modbus TCP/IP协议有几个优点,如简单、使用标准以太网、开放等。在单个站点上可以轻松实现超过1 kB/秒的传输速率。

Modbus TCP/IP是一种互联网协议。它是一个TCP包装过的Modbus协议。因此,Modbus设备可以通过Modbus TCP/IP进行通信。网关设备只需要从物理层(RS-232、RS-485或其他)转换到以太网,并将Modbus协议转换为Modbus TCP/IP。

下图 (a,b)显示了Modbus TCP/IP协议层以及OSI层,以及分别封装在Modbus TCP/IP框架中的Modbus帧:

图片

常规的Modbus帧包含设备地址的任意两个ASCII码(在ASCII模式下)或8位十六进制字节(在RTU模式下),这里被替换为IP地址和设备网络标识符。此外,Modbus帧中的16位校验和被Modbus TCP/IP帧中的TCP的32位CRC所取代。

将Modbus协议的主/从架构修改为Modbus TCP/IP中的客户端-服务器架构。由于TCP是面向连接的协议,对于Modbus TCP/IP中的每个查询,都会有一个响应。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 以太网
    +关注

    关注

    40

    文章

    5374

    浏览量

    171065
  • CRC校验
    +关注

    关注

    0

    文章

    84

    浏览量

    15188
  • MODBUS总线
    +关注

    关注

    0

    文章

    22

    浏览量

    10024
  • 可编程逻辑控制器

    关注

    4

    文章

    265

    浏览量

    25908
  • TCP通信
    +关注

    关注

    0

    文章

    146

    浏览量

    4215
收藏 人收藏

    评论

    相关推荐

    什么是Modbus通讯协议?Modbus通讯协议什么特点?

    。  Modbus 协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为一通用工业标准。了它,不同厂商生产的控制设备可以连成工业
    发表于 11-11 10:35

    无线ModBus实训套件应用方案

    协议,让学习者对无线网络搭建和无线网络通信协议一个清晰的概念。无线ModBus实训套件即可单独完成单片机、433M无线通信、了解ModBus
    发表于 06-24 14:15

    Modbus TCP转Modbus RTU的实现

    TCP和Mobus RTU两协议的普及,设备越来越多,要实现Modbus TCP访问Modbus RTU设备的需求日益增加。Modbus TCP具有自身的优势,因为其可以利用现有的
    发表于 08-10 10:04

    基于Modbus RTU的串口调试软件的实现

    摘 要:文中介绍Modbus RTU通讯协议的特点,阐述了该协议在VC2005编程环境下串口调试软件的具体实现方法。并编制了相关的程序,该程序采用了模块化思想,结构清晰,操作简便,
    发表于 12-18 19:18

    自动化行业的Modbus TCP和PROFINET

    (包括安全和网络架构)和罗克韦尔自动化有限公司的Logix控制平台及FactoryTalk平台一体化架构之间的桥梁。CPwE实施方案中的工业以太网交换机通过对EtherNet/IP的原
    发表于 10-22 16:51

    Labview的Modbus通信分享

    通用性和快捷性的同时带来的弊端是安装麻烦且不可灵活使用,如果遇到非标中的非标设备把你搞到头大。今天我介绍一下我平常使用的Modbus编程方式,并非标榜这种方法多好,旨在分享和交流。我
    发表于 07-02 06:57

    亚信AX58200 EtherCAT转Modbus TCP网关解决方案介绍视频

    为何需要使用EtherCAT转Modbus TCP网关解决方案Modbus TCP并非实时性的网络协议栈,资料传输的速度也比较慢;因此,可以利用此EtherCAT转
    发表于 08-23 10:56

    什么是ModBusModBus如何实现通信?

    什么是ModBusModBus如何实现通信?
    发表于 09-26 09:28

    Modbus是什么?Modbus协议哪些优点

    Modbus是什么?Modbus协议哪些优点?Modbus协议包括哪些?
    发表于 09-30 08:40

    介绍modbus与OPC调试对接方案

    本文给大家介绍一种modbus与OPC调试对接方案
    发表于 02-22 06:21

    Modbus on AT32 MCU

    相连,实现一个完整的、可测试的Modbus通信网络。AT32 硬件准备硬件主要由AT32-Comm-EV Board和AT-START Board组成。本应用指南提供的demo使用到的外设资源
    发表于 07-26 20:22

    如何快速实现Modbus RTU和Modbus TCP协议转换?

    整合起来监控管理,目前上位机大部分用的Modbus TCP协议,而现场设备有大批量使用的是Modbus RTU协议,要实现Modbus TCP访问M
    发表于 08-18 18:36

    Modbus通讯协议的几种实现方式

    版权要求,不用支付额外费用、硬件要求简单容易部署、使用广泛便于系统集成。Modbus采用半双工的通讯方式,由1个子站和多个从站组成,允许多个设备连接在同一个网络上进行通讯。   2. LabVIEW实现
    发表于 05-05 16:19

    AB PLC 与MODBUS 网络的通信The commun

    介绍了应用3100/3150-MCM 模块实现AB PLC 与MODBUS 网络通讯的方法,该方法
    发表于 06-04 10:45 49次下载

    Modbus通讯协议应用架构及案例介绍

    MODICON 公司在1979发展出来的一套通讯协定。Modbus 是由它具有标準化、探开放式架构的特性,而且广泛地被工业自动化产所使用的通讯协定。透过Modbus,SCADA 和HMI 软体可以很
    发表于 10-27 11:20 22次下载
    <b class='flag-5'>Modbus</b>通讯协议应用<b class='flag-5'>架构</b>及案例<b class='flag-5'>介绍</b>