浮云落笔

浮云落笔

首页
瞬间
反馈
浮云落笔

浮云落笔

首页 瞬间 反馈
  1. 首页
  2. 默认分类
  3. dgus数据解析

dgus数据解析

  • 默认分类
  • 发布于 2026-05-15
  • 103 次阅读
flor
flor

📦 不同控件的帧格式

DGUS 帧结构是 固定头 + 可变数据,控件不同,数据长度也不同:

5A A5 [长度] [命令] [地址2字节] [数据区...变长]

🔢 三类常用控件对比

控件 命令 方向 帧格式 数据量
按键返回 83 屏→STC 5A A5 06 83 VP VP 01 KEY KEY 固定1字
变量图标 82 STC→屏 5A A5 05 82 VP VP VAL VAL 固定1字
写多变量 82 STC→屏 5A A5 07 82 VP VP 02 V1 V1 V2 V2 N字可变

数据量 = buf[2] - 1(总长减去命令字节1)

举例:

按键返回: buf[2]=06 → 数据量=5 → 地址(2) + 字数(1) + 数据(2) = 5 ✓
写单变量: buf[2]=05 → 数据量=4 → 地址(2) + 数据(2) = 4 ✓
写双变量: buf[2]=07 → 数据量=6 → 地址(2) + 数据(2) + 数据(2) = 6 ✓

📐 怎么知道某个控件占多少字节?

看 DGUS Tool 里的控件属性面板:

DGUS Tool → 选中控件 → 右侧属性栏:

  ┌─────────────────────┐
  │ 变量地址:  0x2001    │  ← 地址
  │ 变量类型:  unsigned int │  ← 1字
  │ 键值:      0x0002    │  ← 返回的数据内容
  └─────────────────────┘
变量类型 字节数 说明
unsigned char 1字节 (半字) 少见
unsigned int 2字节 (1字) 最常用
unsigned long 4字节 (2字) 大数值
string N字节 文本

🧠 不用死记,规律很简单

buf[2] = 从命令到帧尾的总字节数

总长度 = buf[2]  = 1(命令) + 2(地址) + 字数(1,仅83) + N×2(数据)

83 固定公式: buf[2] = 1 + 2 + 1 + (字数 × 2)
                       命令 地址 字计数  数据

82 固定公式: buf[2] = 1 + 2 + (字数 × 2)
                       命令 地址  数据

你配置 DGUS Tool 时,变量类型选的就是字数,工具会自动按这个协议发帧——你只需要在 STC 端按上面公式解析即可。

目录
湘ICP备2025147565号-1
gongan beian 湘公网安备43102602000213号