ModBus的学习

ModBus相关知识点

一.基本概念

1.Modbus基本概念

​ Modbus通信协议由Modicon公司(现在的施耐德电气Schneider Electric)于1979年为可编程逻辑控制(即PLC)通信而发表。目前,Modbus已经成为工业领域通信协议的业界标准,并且现在是工业电子设备之间常用的连接方式。Modbus作为目前工业领域应用最广泛的协议,与其他通信协议相比,有以下特点:

1.Modbus协议标准开放、公开发表且无版权要求。

2.Modbus协议支持多种电气接口,包括RS232、RS485、TCP/IP等,还可以在各种介质上传输,如双绞线、光纤、红外、无线等。

3.Modbus协议消息帧格式简单、紧凑、通俗易懂。

​ 简单来说,Modbus就是一种用于工业上的通信协议,三个特点概括一下就是免费+简单+方便修改。正是因为这三个优点,Modbus才被广泛应用于工业控制系统。

​ Modbus通信协议是一种主从式串行异步半双工通信协议,采用主从式通信结构,可以使一个主站对多个从站进行双向通信,主站可以单独和从站通信,也可以广播式和所有的从站通信。Modbus主站(Master)负责从其他设备(Slave)请求信息。 标准Modbus网络中有一个Modbus主站。具体如下图所示:

在这里插入图片描述

​ 主设备向从设备请求信息,最多大约可达到240个 . 每个从设备都有自己唯一的从设备地址标识Slave Address)。除了从从设备请求信息之外,主设备还可以写入从设备的内部寄存器

串行通信是指以二进制的位(bit)为单位的数据传输方式,每次只传送一个bit位,串行通信中,接收方和发送方的传送率应该相同,这叫同步。按同步方式的不同,可以分为同步传送和异步传送。

异步传送是指在数据传送过程中,发送方可以随时传送字符,2个字符之间的时间间隔是不固定的,接收端必须时刻做好接收的准备,但在传送一个字符(也叫一帧)的时候,所有的bit位是连续发送的。异步传送简单可靠,成本低,传输效率低,多数用于工业控制系统中。

半双工通信我自己画了一张图来解释:

在这里插入图片描述

​ 半双工通信最好的例子就是对讲机,甲在对乙发送的时候,乙只能接收,同理乙向甲发送的时候,甲也只能接收。

Modbus的缺点:

​ 1.Modbus是在1970年末为可编程逻辑控制器通信开发的,这些有限的数据类型在那个时代是可以被PLC理解的,大型二进制对象数据是不支持的。
​ 2.对节点而言,没有一个标准的方法找到数据对象的描述信息,举个例子,确定一个寄存器数据是否表示一个介于30-175度之间的温度。
3.由于Modbus是一个主/从协议,没有办法要求设备“报告异常”(构建在以太网的TCP/IP协议之上,被称为open-mbus除外)- 主节点必须循环的询问每个节点设备,并查找数据中的变化。在带宽可能比较宝贵的应用中,这种方式在应用中消耗带宽和网络时间,例如在低速率的无线链路上。
​ 4.Modbus在一个数据链路上只能处理247个地址,这种情况限制了可以连接到主控站点的设备数量(再一次指出以太网TCP/IP除外)。
​ 5.Modbus传输在远端通讯设备之间缓冲数据的方式进行,有对通信一定是连续的限制,避免了传输中的缓冲区漏洞的问题。
​ 6.Modbus协议自身提供针对未经授权的命令或截取数据没有安全性。

2.应用场景

​ Modbus是专为工业开发的协议,所以主要用于工业场合,当然也可以用于基础设施,如:住宅、商业中心、机场、水处理、电厂等。Modbus RTU协议紧凑,可以使用RS232/RS485、无线、等介质,用于速度要求不高的场合,如:楼宇、工业现场、管道输送、远程泵站等;ModbusASCII协议比较宽松,时序要求不高,可以用于条形码阅读器、打印机、仪器仪表读取等;ModbusTCP速度很高,可以用于实时控制、时钟对时、全局数据、发送邮件、故障设备替换、网络管理、用户网页制定和浏览、固件更新等多种服务。

3.三种通信模式

​ Modbus的三种通信模式对应了常见的三种Modbus协议,虽然根据我的了解,Modbus协议主要可以分为四种,但是我们主要学习的是三种,如下图所示。其中Modbus ASCll、Modbus TCP、Modbus RTU就是我们需要学习的。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YluS6GXG-1641956191580)(ModBus.assets/4.png)]

​ 工业控制领域是Modbus的主要应用领域,具体如下图:

在这里插入图片描述

(1) Modbus ASCll

​ 当设备设置为使用ASCII(美国信息交换标准代码)模式在Modbus串行线上进行通信时,消息中的每个8位字节将作为两个ASCII 4位字符发送。当物理通信链路或设备的功能不允许符合RTU计时器管理要求时,使用此模式。所以此模式的效率不如RTU,因为每个字节需要两个字符。示例:字节0x7D编码为两个字符:0x35和0x42(在ASCII表中为0x37 =‘7’,而0x44 =‘D’)。ASCll的主要优点是允许字符之间的间隔长达1s,也不会出现错误,但是响应时间过长,有时候不满足工业控制系统的要求。ASCll使用的是LRC校验方式。

(2) Modbus RTU

​ Modbus RTU是一种紧凑的,采用二进制表示数据的方式;因为使用二进制编码和CRC错误检查的结合使得Modbus RTU适用于工业应用,因为它比ASCII字符的替代方案更有效地传输。 在Modbus RTU与ASCII之间进行选择时,如果考虑性能,则RTU是首选。RTU的主要优点是在相同的波特率下其传输的字符密度高于ASCll模式,每个字符必须连续传输,如果传输过程中有错误,那整个传输就会失败;如果在发送帧信息的期间,出现大于1.5个字符的静止时间则信息会出现错误。RTU使用的是CRC校验方式。

(3) Modbus TCP

​ Modbus TCP 是在TCP/IP网络上运行的Modbus的实现,旨在允许Modbus ASCII / RTU协议在基于TCP / IP的网络上传输。Modbus / TCP将Modbus消息嵌入TCP / IP帧内。尽管实现起来非常简单,但是与网络相关的特性增加了一些挑战。例如,由于Modbus主机期望并要求在一定时间范围内对其轮询做出响应,因此必须考虑TCP / IP网络的不确定性(和其他方面)。Modbus ASCII和Modbus TCP之间的主要区别在于,Modbus ASCII所需的LRC错误检查由IP层执行。

​ 下面这张图是TCP和RTU数据帧的区别。

在这里插入图片描述

事务处理标识 协议标识 长度 单元标识符
2字节 0000(2字节) 2字节 1字节

​ - 事务处理标识 :

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值