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

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

3天内不再提示

ModBus协议是什么以及作用

电子工程师 来源:张飞实战电子 作者:蔡琰老师 2021-08-13 15:57 次阅读

ModBus是什么?干什么用的?我们一起来了解下吧。

作为一些大型工业商,其实需要不同厂商提供的控制设备来组成一个工业网路,有了网络是不是需要监控啊?就像你的汽车一样,其实有一个总的控制系统在监控着油箱,行驶安全等等很多信息,所以才呈现给我们一个安全的驾驶体验。那么开发总的控制系统如果那么多的设备都各自有一套通信方案,开发难度可想而知了吧?这个时候就需要有一个标准了,那么这个modbus就是自动控制业界的标准,其实可以理解为我们交互的一个标准协议。这样对开发进度提升了,对通信安全提升了,还方便多个链路之间的通信,集中监控也更加方便了。

既然是通信的标准,也就是规范了通信的应用层。根据这个标准我们各自去进行工作就好了。

这个协议定义了一个控制器能认识的使用的消息结构,而不管是经过何种网络进行通信的。

我们看到网络中每种设备(PLC、HMI、控制面板、驱动程序、动作控制、输入/输出设备)都能使用modbus协议来启动远程操作。

通常我们在串行通信中用到modbus都是主从结构,总线上有一个主节点,一个或多个从节点。从节点地址是唯一的,通信模式是主节点发起请求,子节点没有收到来自主节点的请求时,从不会发送数据,子节点之间从不会互相通信。主节点在同一时刻只会发起一个modbus事物处理。

我们说到这种协议是主从协议模式,主节点可以广播给所有节点请求,这就是广播模式,这种模式就是从节点不需要应答,接收到处理就可以了,地址0是专门用于表示广播数据的。

还有一种是单播模式,就是主节点以特定地址访问子节点,子节点接到并处理完请求后,子节点向主节点返回一个应答。

那我们一起看下协议描述:

首先我们看两个概念,ADU:应用数据单元;PDU:协议数据单元。可以理解为PDU就是我们的应用层协议解析需要的。

其实简单来看就是这样的一个结构,地址域只针对于从节点而言,也有规定(0是广播地址,1~247是从节点地址,248-255预留)其实就是一个字节的分配了。

那么功能码就是指明要执行的动作。

功能码后面的数据域就很容易理解了,是表示含有请求和响应参数的数据域。数据域虽然给了长度范围,也可以是没有的,功能码就能代表操作了。

后面还有一个校验,就是做过通信的都知道校验是必须要的。否则怎么确保数据的正确性。

对于ADU的长度也是有限制的,最大ADU是256个字节,具体在什么物理层上通信对于PDU就有区别了,比如RS232/RS485 ADU = 地址域(1字节)+ PDU(253字节)+CRC(2字节)=256字节;还支持以太网口,也就是在TCP/IP协议层上封装了一层modbus协议,这样应用范围更广了。那么TCP MODBUS ADU = 249字节 + MBAP(7字节) =256字节。

到这里我们就可以知道了协议结构、协议模型、协议规则。简单来说就是主机是老大,它说了算,它想设置或者读取哪个从机,从机才能做出响应,所以说从机是被动的。当广播发送的时候无需应答,这就是定义的规则,有了规则做事就方便多了啊。

具体的还详细做了主机的处理模型,从机的处理模型,所有正常的和异常的处理都在规则里面了,是不是很贴心。基本上把逻辑关系都考虑到了,只要按照逻辑关系图去写程序就好了。那么对于解析而言,主要还是对于功能码和数据域的值了。也就是到了上层应用了。

对于串行传输还有两种模式,RTU模式和ASCII模式。

我们先来了解一下RTU模式

对于报文格式就是上面这样的,子节点收到信息先解析是否是自己节点,然后对校验做出比对处理。然后就是上层的功能码和数据的处理了。除了数据解析还有一个超时处理,总不能一直接收吧,有个超时的要求,两个字节之间间隔大于1.5个字符时间,报文帧就被认为不完整应该被接收节点丢弃。两帧数据之间也有时间间隔要求,最小间隔是3.5个字符时间。

这个模式也是我们在工业控制中通用的模式,协议紧凑。

还有一个ASCII模式

我们都知道ASCII码是一个字符一个字符发送的,也就是表示0-9,A-F;那么就是说一个字符表示四位二进制,也就是我们前面说的一个字节需要两个ASCII字符表示,所以这个相对RTU模式时序要求不高,自然应用场合也是有区别的。

跟RTU不同的是还增加了一个起始字符和结束字符,校验方式是LRC校验方式,校验不包含起始字符和结束字符的。对比而言,我们看到是一个字节由两个字符表示的。字符间隔最大可以达到1S,相对宽松。

结构清晰了,规则有了就是可以去解析了,主要还是对功能码和数据域的规则解析了,不同的功能码要处理什么功能的数据区,这个都是要根据规则去解析处理。

解析这种标准协议首先就是要分好层,逻辑关系要处理清楚,模块处理要结合实际应用映射关系,对于从节点有接收有应答,就是一个完整的闭环。你对modbus了解了吗?

责任编辑:haq

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

    关注

    2

    文章

    569

    浏览量

    38906
  • MODBUS
    +关注

    关注

    27

    文章

    1431

    浏览量

    75668

原文标题:白话文讲解ModBus协议

文章出处:【微信号:CanaanTech,微信公众号:嘉楠科技】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Modbus协议网关是什么?Modbus协议网关的功能

    Modbus协议网关是一种专门用于工业自动化环境中的网络设备,其主要功能是实现不同通信协议之间的转换,尤其是将基于Modbus协议的设备或系统与使用其他协议的设备、控制系统或信息系统连
    的头像 发表于 04-11 15:51 114次阅读

    modbus协议功能码分类 modbus协议功能码是什么,有什么作用

    码的分类及其作用Modbus协议功能码分类: Modbus协议定义了一系列的功能码,每个功能码都代表不同的请求类型和操作。根据Modbus规范,功能码可以分为以下几类: 读功能码(
    的头像 发表于 01-31 14:47 1297次阅读

    使用MODBUS协议的时候可以不用设置数据帧格式了吗?

    在使用MODBUS协议进行串口通讯时,通常需要设置数据帧格式。
    的头像 发表于 01-30 09:32 336次阅读

    modbus协议与485协议区别

    Modbus协议与485协议是工业通信领域中常用的两种协议,它们在不同的层面上具有不同的功能和设计理念。本文将对Modbus协议与485协议
    的头像 发表于 01-11 11:06 4828次阅读

    什么是Modbus协议

    Modbus协议是一种在工业自动化领域广泛应用的通信协议,它允许不同设备之间进行可靠的数据交换和控制。该协议最初由Modicon公司于1979年创建,旨在提供一种简单而有效的方法,使PLC(可编程
    的头像 发表于 01-09 08:00 249次阅读
    什么是<b class='flag-5'>Modbus协议</b>?

    在消防预警系统中Modbus协议和EthernetIP协议都发挥着重要的作用

    Modbus协议则在其中发挥着关键的作用。它们能够将火灾探测器、烟雾浓度传感器、温度传感器等设备的数据进行采集和传输,确保消防控制中心能够实时掌握火场情况,做出准确的判断和决策。 此外,这些协议还支持远程监控
    发表于 01-02 19:34

    实例解析Modbus协议

    Modbus协议是Modicon公司(现在的施耐德电气 Schneider Electric)于1979年为使用可编程逻辑控制器(PLC)通信而发表。Modbus已经成为工业领域通信协议的业界标准(De facto),并且现在是
    发表于 12-25 09:33 366次阅读
    实例解析<b class='flag-5'>Modbus协议</b>

    EtherCAT协议Modbus协议在风电领域

    Modbus协议还可以与其他工业自动化协议进行集成,例如Ethernet/IP、Profinet等,以实现更高效和可靠的数据传输和控制。在风电领域,EtherCAT协议Modbus协议
    的头像 发表于 12-22 15:03 187次阅读
    EtherCAT<b class='flag-5'>协议</b>和<b class='flag-5'>Modbus协议</b>在风电领域

    modbus协议应用指南

    modbus协议
    发表于 12-04 09:45 1次下载

    怎么用MODBUS协议实现开关量采集与控制采集?

    怎么用MODBUS协议实现开关量采集与控制采集
    发表于 10-23 08:17

    Modbus通讯协议是什么?

    不少人在采购工业路由器的过程中都会看到modbus协议,那么modbus协议到底是什么呢?今天就跟大家分享一下。Modbus协议作为当今工业控制领域的通用通讯协议,在无数物联网产品中得
    的头像 发表于 10-17 14:40 756次阅读
    <b class='flag-5'>Modbus</b>通讯<b class='flag-5'>协议</b>是什么?

    modbus协议中的输入寄存器可以读写吗?

    modbus协议中的输入寄存器可以读写吗
    发表于 10-13 08:03

    modbus入门教程 Modbus协议节点讲解之【EsDA应用】Modbus应用详解

    。    Modbus简介 Modbus是一种串行通信协议,由于其公开、免费、易于部署和维护的优点,被广泛应用于工业电子领域,并且已经成为工业领域通信协议的业界标准。 以往我们在使用
    的头像 发表于 07-18 11:55 2092次阅读
    <b class='flag-5'>modbus</b>入门教程 <b class='flag-5'>Modbus协议</b>节点讲解之【EsDA应用】<b class='flag-5'>Modbus</b>应用详解

    工程监测无线中继采集仪的参数读写MODBUS协议

    工程监测无线中继采集仪的参数读写MODBUS协议 无线中继采集仪支持基于地址的 MODBUS 协议、自定义的 AAB/B 协议以及字符串指令
    的头像 发表于 05-22 11:30 390次阅读
    工程监测无线中继采集仪的参数读写<b class='flag-5'>MODBUS协议</b>

    Modbus协议的理解

    系统的兼容,最好采用通用的通讯协议。   我们可以Modbus协议进行修改,使之能使用在自己的系统中。Modbus协议包括ASCII、RTU、TCP等,并没有规定物理层。此协议定义了控
    发表于 05-05 16:47