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

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

3天内不再提示

什么是Modbus?Modbus能做什么?

冬至子 来源:物联网诸子东 作者:诸子东 2023-08-10 15:56 次阅读

我们先不要直接讲Modbus协议,先聊聊家常,然后趁Modbus不注意,再去学它,就容易记住了。

Modbus协议,是1979年,Modicon公司发明的。而Modicon,也可以说就是现在的施耐德了。

别的设备支持不支持Modbus不知道,施耐德PLC肯定可以支持Modbus协议。

那时候网络,计算机都还不发达,设备之间的通信,主要还是基于串口。

那Modbus协议发明主要是用来干嘛的呢。

那我们就先看Modicon是干嘛的。

Modicon公司是搞PLC的。那PLC又是什么呢。

接地气地讲,PLC是一种控制器,内部可编程。反正就是工业领域生产非常重要的东西。

像PLC,传感器等,就会有各种各样的数据,比如,门的开和关,灯的亮和灭,温度,湿度,流量,产量计数,压力,速度,位移等,各种各样的数据。

往现在来说,你手机上有个APP,APP上有个按钮,你一操作,你家的灯就开了。

在当时来看,一台控制器怎么知道另一台控制器的数据呢。

总不能这么唐突的去要数据吧。

好,如果只是灯的开关,可以用一根电线将两个控制器接起来,十个开关就接十根线。

只要这根线有电,说明灯是亮的,线没有电,灯就是灭的。

图片

但温度呢,总不能让一个控制器靠近另一个控制器,你摸一下我烫不烫,冷不冷,渴不渴?

还有压力值呢,总不能让一个控制器去踩压着另一个控制器的背,官人,你看这脚力合适不合适?

这不是有串口么,能不能把这些数据,都通过这个串口来传输呢。

发明一种协议,然后可以在串口上进行数据交互,

图片

真的是好办法呀,这样一来,对于主控制器来说,省事多了,就这么办吧。

发明协议要有仪式感,我们总得给它起个名字吧。我们先开个会讨论一下吧。

“要不我们就直接叫它Modicon Modbus吧”

“系不系傻,Modbus这个名字就是我们发明的,怎么能叫Modicon Modbus呢,再重新讨论”

“首先这个是一种总线协议,肯定得以bus结尾吧。”

“嗯,没错,那就以bus结尾吧”

“叫Modicon-bus如何?”

“不行,得有我们老外的风格,这名字一看就很中式。”

“取名字的前半部分?叫Modibus协议?”

“莫弟拔丝?读着有点绕口吧。”

“Modbus呢,莫得拔丝,好写又好记。”

“同意”

“同意”

“Good”

“大拇指,大拇指,大拇指”。

于是,伟大的Modbus协议的名字诞生了。

那这个协议要怎么用呢。

现在摆在面前有两个设备,一个是主设备,一个是从控制器,主设备和从控制器通过串口接在一起了,所有的数据都在从控制器上了。

是从控制器主动把数据发给主设备呢,还是主设备来要数据呢。

如果是从控制器主动发数据,但是好像不知道主设备到底要啥数据呢。

要不就设计为,由主设备主动发起请求来要数据。从控制器收到命令之后,再把相应的数据返回。

所以, Modbus协议,就设计为一种基于主站主动请求的协议了

这样所有的数据需求,全部为主设备进行管理和规划,什么时候读什么数据。

就这样,有了Modbus协议之后,就解决了各控制器之间的数据交互问题。包括之后的HMI,电脑等设备,也都可以通过Modbus协议与PLC, 控制器进行数据读取交互。

刚发明Modbus的时候,那时候主要还是使用串口通信。网络还没有完善的年代,想找一个支持以太网的PLC几乎不现实。

当然,后面随着TCP/IP的发展,工业的进步,出现了网络通信。Modbus也可以在以太网上通信了,在以太网上的通信,我们一般叫它Modbus TCP。

既然有TCP,就会有人问,那我能不能走UDP呢。

于是,Modbus UDP也就有了。

其实Modbus TCP和Modbus UDP的报文格式是一样的。只不过一个走的是TCP,一个走的是UDP。

那串口的Modbus 叫什么名字呢。

一般来说,串口的Modbus 协议叫Modbus RTU协议。

RTU,也就是 Remote Terminal Unit。远程终端单元。

要知道,在上个世纪80年代,对于远程的概念,可不是像我们这样天南地北的距离。

两个设备,超过一米,都能叫远程了。

大概的意思就是,我人在门口,我能通过HMI或者主控制器,对房间里的温度,灯等进行监测和控制,就属于远程操作了。

毕竟每一个事物的存在,都是有它的背景和依据的。

那为什么串口的协议,还会有Modbus ASCII协议呢。

这个我有点编不下去了,容我想一想。

一般来说,数据是由位组成的,然后由八个位组成一个字节,两个字节组成一个字。

而数据传输和存储呢,最小单元为字节。

然后串口通信,它也很特殊,如果你要发一个字节,还要加什么起始位,校验位,停止位等凑够一定条件,才能满将一个字节发送出去。少一个位都不行。

那ASCII发明的的其中一个理由是,当通信链路或者设备无法满足RTU模式时,则使用ASCII模式。

我猜测呀,可能当时某些特定用途的单片机CPU,在设计串口功能的时候,基于种种原因,要抛开起始位,校验位,停止位之后,完了,少处理了一个位,留给数据位只有7个位了。

怎么办呢,要把7个位改成8个位,芯片都推倒重新来,代价太大了。

难道这个芯片就不能用了么。有什么通信或数据只要7个位就够了的?

还真巧,还真有的,那就是ASCII数据。

ASCII,也就是我们常说的字符数据。字符嘛,大小写字母,加上一些常用字符,数量加起来少于127的。也就是用7个位就可以了。

那是不是可以发明一种ASCII通信协议,每一个数组只占7位。然后Modbus ASCII协议就出来了。

我们看一下Modbus协议大概有多少。

1.jpg

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

    关注

    2548

    文章

    50643

    浏览量

    751752
  • 单片机
    +关注

    关注

    6032

    文章

    44513

    浏览量

    632715
  • PLC控制
    +关注

    关注

    9

    文章

    251

    浏览量

    27254
  • RTU
    RTU
    +关注

    关注

    0

    文章

    404

    浏览量

    28617
  • ModBus通信
    +关注

    关注

    0

    文章

    32

    浏览量

    2545
收藏 人收藏

    评论

    相关推荐

    什么是MODBUSModbus通信协议以及行业中使用的Modbus类型。

    MODBUS
    电子学习
    发布于 :2023年02月07日 21:10:35

    Modbus协议介绍

    MODBUS
    橙群微电子
    发布于 :2023年02月21日 12:14:06

    modbus

    `问题:(1) 什么是Modbus通信协议?(2) 在LabVIEW中需要安装什么软件可以进行Modbus通信?(3) 客户经常询问的一个问题:在我的理解中Modbus的地址形式应该是40202
    发表于 04-24 14:42

    LABVIEW的MODBUS库,MODBUS学习入门必备

    LABVIEW的MODBUS库,MODBUS学习入门必备
    发表于 02-23 19:02

    Modbus测试工具 :Modbus Poll,Modbus Slave

    Modbus测试工具 :Modbus Poll,Modbus Slave
    发表于 02-25 10:38

    Modbus TCP转Modbus RTU的实现

    使用ZLSN2040、NETCOM2040实现Modbus TCP到Modbus RTU的转化。1.Modbus TCP与Modbus RTU  M
    发表于 08-10 10:04

    modbus详解

    Modbus协议使用的是主从通讯技术,即由主设备主动查询和操作从设备。一般将主控设备方所使用的协议称为Modbus Master,从设备方使用的协议称为Modbus Slave。典型的主设备包括
    发表于 11-25 23:49

    什么是Modbus协议?如何写稳定的Modbus代码?

    什么是Modbus协议?Modbus协议有哪些分类?使用Modbus时有哪些注意事项?如何写稳定的Modbus代码?
    发表于 07-02 06:54

    什么是ModBusModBus如何实现通信?

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

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

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

    请问CH32V103的CRC校验能做modbus_RTU的CRC校验吗?

    CH32V103的CRC校验能做modbus_RTU的CRC校验吗?使用要注意哪些呢?
    发表于 05-16 07:50

    Modbus on AT32 MCU

    Modbus on AT32 MCU前言本应用笔记介绍了如何将FreeMODBUS协议栈移植到AT32F43x单片机方法。本文档提供的源代码演示了使用Modbus的应用程序。单片机作为Modbus
    发表于 07-26 20:22

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

    Modbus协议是工业现场串口设备之间常用的连接方式,其中最常见的就是Modbus RTU和Modbus TCP两种。许多工厂需要将现场各种不同型号设备的数据都能够通过一个上位机软件或者设备触摸屏
    发表于 08-18 18:36

    modbus TCP和modbus RTU有什么区别?

    modbus TCP和modbus RTU有什么区别
    发表于 10-09 06:20

    什么是modbusmodbus库如何移植到ARM开发板上?如何使用测试程序?

    网络上关于modbus 介绍的文章非常多,还有专门介绍modbus 的书籍,这些资料大家都可以利用起来,但是在这一小节中,作者希望帮助大家理解modbus 的本质,modbus 到底是
    发表于 09-07 14:34 27次下载
    什么是<b class='flag-5'>modbus</b>?<b class='flag-5'>modbus</b>库如何移植到ARM开发板上?如何使用测试程序?