问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Modbus协议及其工作原理介绍

创作时间:
作者:
@小白创作中心

Modbus协议及其工作原理介绍

引用
1
来源
1.
https://www.ni.com/zh-cn/shop/seamlessly-connect-to-third-party-devices-and-supervisory-system/the-modbus-protocol-in-depth.html?srsltid=AfmBOoqIiuGLPEsbxJ0ZUYwfxUGoZiqYUvMQcMxUGxJGxIzbCT005pNv

Modbus协议是工业自动化领域常用的通信协议,广泛应用于各种自动化设备之间的数据交换。本文将深入解析Modbus协议的核心概念、工作原理以及在不同网络层上的应用,帮助读者全面了解这一重要协议。

概览

Modbus协议最早于1979年制定,最初是作为通过串行层传输数据的应用级协议。随着时间的推移,Modbus协议得到了扩展,现在可以通过串行、TCP/IP和用户数据报协议(UDP)等多种网络层实现数据传输。

Modbus协议采用主从架构,其中主设备负责发起通信请求,从设备则响应这些请求。主设备通常是人机界面(HMI)或监控和数据采集(SCADA)系统,而从设备则包括传感器、可编程逻辑控制器(PLC)或可编程自动化控制器(PAC)等。


图1. 主从网络关系

Modbus协议层

Modbus协议可以分为两个主要层次:协议数据单元(PDU)和应用数据单元(ADU)。PDU定义了协议的核心数据格式和功能,而ADU则负责在网络层上传输这些数据。

协议数据单元(PDU)

PDU由功能码和相关数据组成,功能码定义了数据的类型和操作方式。每个PDU的大小不能超过253字节。Modbus协议支持多种功能码,用于读取和写入不同类型的数据。

Modbus数据模型

Modbus协议定义了四种主要的数据存储区域:

  • 线圈(Coils):布尔型数据,可读写
  • 离散量输入(Discrete Inputs):布尔型数据,只读
  • 保持寄存器(Holding Registers):无符号双字节整型数据,可读写
  • 输入寄存器(Input Registers):无符号双字节整型数据,只读

这些数据区域的地址范围从0到65535,但编号从1开始。例如,线圈1位于地址0,保持寄存器54位于地址53。

数据寻址

为了简化数据寻址,Modbus协议引入了前缀编码方案。例如,保持寄存器的前缀是4,因此保持寄存器1的地址可以表示为40001。这种编码方式有助于区分不同数据类型的数据地址。

功能码

Modbus协议定义了多种标准功能码,用于执行不同的数据读写操作。这些功能码可以分为三类:

  • 0类代码:基本读写功能
  • 1类代码:访问所有类型数据的功能
  • 2类代码:高级或专业功能

应用数据单元(ADU)

ADU负责在网络层上传输PDU数据。Modbus协议支持多种网络层,包括串行、TCP/IP和UDP等。每种网络层都有其特定的ADU格式。

TCP/IP ADU

TCP/IP ADU包含一个Modbus应用协议(MBAP)报文头和一个PDU。MBAP报文头包含事务处理标识符、协议标识符、数据长度和单元ID等信息。

RTU ADU

RTU ADU包含地址、PDU数据和循环冗余校验(CRC)校验码。RTU格式适用于串行通信,通过静默时间来确定数据包的开始和结束。

ASCII ADU

ASCII ADU使用冒号(:)作为数据包的开始标志,回车(CR)和换行(LF)作为结束标志。数据以ASCII编码的十六进制字符传输,便于人工读取和调试。

扩展和修改

Modbus协议允许用户定义新的功能码和ADU格式,以满足特定应用需求。例如,可以使用未使用的协议字段和单元ID来扩展TCP/IP ADU的功能。

总结

Modbus协议凭借其简单性和开放性,在工业自动化领域得到了广泛应用。通过理解Modbus协议的核心概念和工作机制,工程师可以更好地设计和实现自动化系统中的设备通信。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号