EdgeGateway 快速开始手册-表达式 Modbus 报文格式

表达式

使用raw表示原值

支持 + - * / % 运算和()等常规运算

支持比较运算符(>= <= > < == !=)和逻辑运算符(&& ||)

支持条件运算符(?:)

Modbus 报文格式

Modbus TCP 示例:主站请求读取从站 (ID=1) 的保持寄存器 (功能码 03),起始地址为 0,读取 10 个寄存器。

请求报文 (Request):

复制代码
00 01 00 00 00 06 01 03 00 00 00 0A
  • 00 01: 事务元标识

  • 00 00: 协议标识

  • 00 06: 长度 (后面的 PDU 01 03 00 00 00 0A共 6 个字节)

  • 01: 单元标识符 (从站地址)

  • 03: 功能码 (Read Holding Registers)

  • 00 00: 起始地址 (0)

  • 00 0A: 寄存器数量 (10)

响应报文 (Response):

假设所有寄存器的值都是 0,响应应为:

复制代码
00 01 00 00 00 07 01 03 14 00 00 ... (20个字节的0)
  • 00 07: 长度 (后面的 PDU 01 03 14 ...共 7 个字节)

  • 03: 功能码 (与请求一致)

  • 14: 字节数 (10个寄存器 * 2字节/寄存器 = 20字节,即 0x14)

  • 00 00 ...: 寄存器的数据 (每个寄存器2字节)

Modbus RTU 示例:主站请求读取从站 (ID=1) 的保持寄存器 (功能码 03),起始地址为 0,读取 10 个寄存器。

请求报文 (Request):

复制代码
01 03 00 00 00 0A C5 CD
  • 01: 从站地址

  • 03: 功能码 (Read Holding Registers)

  • 00 00: 起始地址 (0)

  • 00 0A: 寄存器数量 (10)

  • C5 CD: CRC16 校验码 (由 01 03 00 00 00 0A计算得出)

响应报文 (Response):

假设所有寄存器的值都是 0,响应应为:

01 03 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 XX XX(最后的 XX XX是 CRC)

  • 01: 从站地址

  • 03: 功能码

  • 14: 字节数 (20字节)

  • 00 00 ...: 20个字节的0 (10个寄存器的数据)

  • XX XX: CRC16 校验码

相关推荐
moMo9 小时前
从“你好”到 1024 维坐标:大模型怎么识字
人工智能
ShallWeL10 小时前
【机器学习】(2)—— 线性回归:损失函数
人工智能·机器学习
美团技术团队10 小时前
ICML 2026 | 美团技术团队学术论文精选
人工智能
moMo10 小时前
你的每一次对话,都是第一次
人工智能
不加辣椒10 小时前
第13章 检索增强提示工程
人工智能
小爷毛毛_卓寿杰10 小时前
我把 397B 的「Agentic 大脑」塞进了 Xinference,一键部署 Nex-N2
人工智能·架构·github
smallYoung10 小时前
Vibe Coding 笔记-中
人工智能
米小虾11 小时前
DSpark:让大模型"写得更快"的秘密武器
人工智能·deepseek
JavaGuide11 小时前
比 iTerm2 更适合 Claude Code/Codex 的终端,我换成 Ghostty 了
人工智能·后端
threerocks11 小时前
神级 Skill,作品个个儿爆,我开源了长期自用的手绘风格库
人工智能·aigc