当前位置: 首页 > news >正文

Modbus协议详细规范

一、协议概述

Modbus是一种‌应用层通信协议‌,由施耐德电气(原Modicon公司)于1979年推出,专为工业自动化设备设计,支持主从架构的数据交互,具有开放、兼容性强等特点‌。

二、协议架构与传输模式

主从架构‌

主设备‌(Master):发起请求(如PLC、工控机)。
从设备‌(Slave):响应请求(如传感器、执行器),地址范围为1-247‌。

传输模式‌

RTU(Remote Terminal Unit)‌:二进制编码,高效紧凑,默认采用CRC校验‌。
ASCII‌:可读性强但效率低,采用LRC校验‌。
TCP/IP‌:基于以太网(端口502),支持现代工业网络‌。

三、数据模型与寄存器分类

Modbus通过‌4类寄存器‌管理数据,地址采用5位或6位格式‌:

  • 线圈(Coils)‌(地址范围00001-09999):1位读写,用于开关量输出控制‌。
  • 离散输入(Discrete Inputs)‌(10001-19999):1位只读,用于状态检测‌。
  • 输入寄存器(Input Registers)‌(30001-39999):16位只读,存储传感器数据‌。
  • 保持寄存器(Holding Registers)‌(40001-49999):16位读写,用于参数配置‌。

四、功能码规范

功能码定义操作类型,核心功能码包括‌:

功能码(十六进制)操作描述适用范围
0x01读取线圈状态开关量输出控制
0x03读取保持寄存器模拟量数据读取
0x05写入单个线圈开关量控制
0x06写入单个保持寄存器参数设置
0x0F写入多个线圈批量开关量控制
0x10写入多个保持寄存器批量参数配置

五、报文格式

RTU模式请求帧‌
[从机地址][功能码][起始地址高字节][起始地址低字节][寄存器数量高字节][寄存器数量低字节][CRC校验低字节][CRC校验高字节] 

示例:读取地址1的保持寄存器40001-40002(功能码0x03)‌。

TCP/IP模式报文‌

在RTU帧基础上添加MBAP头(事务标识符、协议标识符、长度字段等)‌。

六、应用场景

  • 工业设备监控‌:通过功能码0x03读取变频器频率、温度等参数‌。
  • 电力系统数据采集‌:获取电压、电流等模拟量数据(输入寄存器)‌。
  • 远程控制‌:使用0x05/0x0F控制继电器开关‌。

七、规范文档与扩展

核心标准‌
  • IEC 61158‌:定义Modbus作为工业通信标准‌。
  • Modbus TCP/IP规范‌:基于RFC 793/791实现以太网传输‌。
扩展协议‌

Modbus over TLS‌:增强通信安全性‌。
Modbus Plus(MB+)‌:高速令牌环网络扩展,支持多主站‌。

总结

Modbus协议通过‌标准化寄存器模型‌和‌功能码机制‌实现设备间高效通信,适用于中小规模工业系统。其详细规范涵盖物理层(RS-485、以太网)、数据链路层(帧结构)及应用层(功能码定义),具体实现需参考IEC 61158及厂商文档‌。

相关文章:

  • MySQL基础语法
  • 英语+C语言:3.24
  • 【AIGC】图片变视频 - SD ComfyUI视频生成
  • Vue 3中的Teleport:超越组件边界的渲染
  • 【SpringCloud】OpenFeign和Gateway
  • 2-1 基本放大电路
  • MySQL 8.0.41安装教程(附安装包)mysql8.0.41图文详细安装教程
  • _DISPATCHER_HEADER结构中的WaitListHead和_KWAIT_BLOCK的关系
  • 【操作系统】Docker如何使用-续
  • 代理记账的第三个十年
  • 后端返回了 xlsx 文件流,前端怎么下载处理
  • HCIP_NOTE03_网络组成
  • 毛乌素沙地shp范围
  • UDP通信实现
  • Windows系统安装Node.js和npm教程【成功】
  • Redis原理:multiexec命令
  • matlab多进程设置
  • DNS主从服务综合项目
  • 数据库中不存在该字段
  • 常用序列的离散时间傅里叶变换(DTFT)
  • 人力资源和社会保障部部长王小平/抖音seo排名软件
  • 怎么在网站底部添加备案号/厦门人才网唯一官方网站
  • 北京做网站那家好/宁波seo推广如何收费
  • 网站建设普通发票税点/dw网页设计模板网站
  • 如何快速用手机做网站/株洲最新今日头条
  • 美国亚马逊网站如何做/站长之家排名查询