modbus初学者教程,第一章:Modbus背景介绍

第一章:Modbus背景介绍

Modbus 是一种用于工业自动化控制系统的通信协议,由 Modicon(现为施耐德电气的一部分)在 1979 年开发。它是一种主从架构的协议,广泛应用于连接电子设备以实现数据交换。以下是 Modbus 协议的背景和主要特点:

  • 起源与发展:Modbus 最初由 Modicon 为其可编程逻辑控制器 (PLC) 开发,目的是实现不同设备之间的互操作性。随着时间的推移,Modbus 成为工业领域中最广泛使用的通信协议之一。
  • 开放标准:Modbus 是一个开放的协议,任何人都可以免费使用和实现。这使得它在工业自动化领域中得到了广泛的接受和应用。
  • 多种变体:随着技术的发展,Modbus 也演变出了多个版本和变体,适应不同的通信需求和物理介质。

主要特点

  • 主从架构:Modbus 采用主从(Master/Slave)架构。一个主设备可以与多个从设备通信,从设备之间不直接通信。主设备发出命令,从设备响应。
  • 简单易用:Modbus 协议相对简单,易于实现和理解,适用于资源有限的嵌入式系统。
  • 多种传输方式
    • Modbus RTU:基于串行通信的 Modbus 变体,通常使用 RS-232 或 RS-485 作为物理层。数据以二进制形式传输,具有较高的效率和较低的通信开销。
    • Modbus ASCII:另一种基于串行通信的变体,数据以 ASCII 字符形式传输,便于调试,但效率较低。
    • Modbus TCP/IP:基于以太网的 Modbus 变体,通过 TCP/IP 协议进行传输,适用于现代网络环境。
  • 数据模型 :Modbus 定义了一种简单的数据模型,包含四种数据类型:
    • 离散输入:单个位,只读。
    • 线圈:单个位,读/写。
    • 输入寄存器:16 位寄存器,只读。
    • 保持寄存器:16 位寄存器,读/写。

应用领域

  • 工业自动化:如 PLC、SCADA 系统、传感器和执行器之间的通信。
  • 能源管理:如电表和能源管理系统的通信。
  • 楼宇自动化:如暖通空调 (HVAC) 系统、照明和安防系统的控制。

Modbus 因其开放性、简洁性和灵活性,成为工业控制和自动化领域中一种标准的通信协议。随着物联网 (IoT) 的发展,Modbus 也被广泛应用于各类智能设备和系统的互联。

Modbus协议版本

Modbus可用于串行链路或者TCP/IP以太网。

对于Modbus串行链路连接,存在两个变种,它们在协议细节上略有不同,主要区别是传输数据的字节表示上的不同。这两个变种包括RTU模式和ASCII模式。ModbusRTU模式是一种紧凑的,采用二进制表示数据的方式;而ModbusASCII模式是一种人类可读的、冗长的表示方式。这两个变种都使用串行链路通信(Serial Communication)方式,为了确保数据传输的完整性和准确性,RTU模式 下消息格式命令和数据带有循环冗余校验的校验和,而ASCII模式下消息格式采用纵向冗余校验的校验和,而且被配置为RTU模式的节点不能与配置为ASCII模式的节点通信,反之亦然。

对于通过TCP/IP(例如以太网)物理层的连接,存在多个Modbus/TCP变种,这种方式不需要校验和的计算。

Modbus通信流程概述

Modbus是一个请求/应答协议,并且提供统一的功能码用于数据传输服务。Modbus功能码是 Modbus 请求/应答 PDU(即 PROTOCOL DATA UNIT,协议 数据单元)的元素之一,所谓的PDU是Modbus协议定义的一个与基础通信层无关的简单协议数据单元。而在特定总线或网络上,Modbus协议则通过ADU(即APPLICATION DATA UNIT,应用数据单元)引入一些附加域,以实现完整而准确的数据传输。

为了寻求一种简洁的通信格式,Modbus 协议定义了PDU模型,即功能码+数据的格式;而为了适应多种传输模式,在PDU的基础上增加了必要的前缀(如地址域)和后缀(如差错校验),形成了ADU模型。

ADU与PDU之间的关系如下图所示。

主机设备(或客户端)创建Modbus应用数据单元形成查询报文,其中功能码标识了向从机设备(或服务器端)指示将执行哪种操作。功能码占用一个字节,有效的码字范围是十进制1~255(其中128~255为异常响应保留)。查询报文创建完毕,主机设备(或客户端)向从机设备(或服务器端)发送报文,从机设备(或服务器端)接收报文后,根据功能码做出相应的动作,并将响应报文返回给主机设备(或客户端),如下图所示。

如果在一个正确接收的Modbus ADU中,不出现与请求 Modbus功能有关的

差错,那么从机设备(或服务器端)将返回正常的响应报文。如果出现与请求Modbus功能有关的差错,那么响应报文的功能码域将包括一个异常码,主机设备(或客户端)能够根据异常码确定下一个执行的操作。

如下图所示,对于异常响应,从机设备(或服务器端)将返回一个与原始功能码等同的码值,但设置该原始功能码的最高有效位为逻辑1,用于通知主机设备(或客户端)。

平时调试Modbus设备,或者学习Modbus协议,推荐一款Modbus主从站模拟器:

从站下载地址:http://www.redisant.cn/mse

主站下载地址:http://www.redisant.cn/mme

相关推荐
徐某人..2 天前
基于i.MX6ULL平台的智能网关系统开发
arm开发·c++·单片机·qt·物联网·学习·arm
互联网志2 天前
加速高校科技成果转化 赋能实体经济高质量发展
大数据·人工智能·物联网
星恒讯工业路由器2 天前
星恒讯工业生产自动化解决方案
运维·物联网·自动化·智能路由器·信息与通信
互联网志2 天前
打通转化通道 赋能产业发展——高校科技成果转化的现状与破局
大数据·人工智能·物联网
推理幻觉2 天前
Claude Code 常用命令
人工智能·开发工具·cc·claude code
七夜zippoe2 天前
DolphinDB在工业物联网中的优势
物联网·wpf·工业物联网·优势·dolphindb
上海云盾第一敬业销售2 天前
物联网设备暴露面激增,WAF如何守护边缘计算安全?
物联网·安全·边缘计算
MetrixAeroCore2 天前
全球物联网卡管理平台是什么?定制化服务赋能企业出海运维
运维·物联网
物联通信量讯说2 天前
从 IoT 到 AIoT:万物互联迈向万物智联的必然演进
物联网·iot·国际物联网卡
斯普润布特2 天前
物联网-Spring+Netty 框架整合
java·物联网·netty