外观
串口指令
本页说明 VGUS 串口指令 0x80–0x85 的帧结构与 HEX 举例。下文默认帧头为 A5 5A(可在屏参中修改)。多字节数值均为 MSB 先传。帧结构通则见 帧格式与约定。
0x80 / 0x81 — 寄存器读写
屏端有 256 字节寄存器(地址 0x00–0xFF),按字节寻址,用于硬件与系统控制。支持从起始地址起顺序读写多个寄存器。
| 项 | 0x80(写) | 0x81(读,下发) | 0x81(读,屏应答) |
|---|---|---|---|
| 指令 | 0x80 | 0x81 | 0x81 |
| 起始地址 | 1 字节,0x00–0xFF | 同左 | 同左 |
| 数据长度 | —(由写入数据字节数隐含) | 1 字节 N(读 N 个字节) | 1 字节 N + N 字节数据 |
| 数据内容 | N 字节写入值 | — | 读回的 N 字节 |
写寄存器 0x80
| 定义 | 指令帧头 | 指令长度 | 指令 | 起始地址 | 数据内容 |
|---|---|---|---|---|---|
| 长度(字节) | 2 | 1 | 1(0x80) | 1 | N |
举例: 向寄存器 0x03、0x04 连续写入 0x00、0x01:
text
发送:A5 5A 04 80 03 00 01读寄存器 0x81
下发:
| 定义 | 指令帧头 | 指令长度 | 指令 | 起始地址 | 数据长度 |
|---|---|---|---|---|---|
| 长度(字节) | 2 | 1 | 1(0x81) | 1 | 1(N) |
屏应答:
| 定义 | 指令帧头 | 指令长度 | 指令 | 起始地址 | 数据长度 | 数据内容 |
|---|---|---|---|---|---|---|
| 长度(字节) | 2 | 1 | 1(0x81) | 1 | 1(N) | N |
举例: 连续读取寄存器 0x03、0x04(N=2):
text
发送:A5 5A 03 81 03 02
返回:A5 5A 05 81 03 02 00 01功能摘要
| 指令 | 下发数据 | 说明 |
|---|---|---|
0x80 | 寄存器地址 + 写入数据 | 从指定地址写寄存器 |
0x81 | 寄存器地址 + 读取字节长度 | 从指定地址读指定字节数;屏按上表应答 |
0x82 / 0x83 — 变量存储器读写
VTx(VTc / VTb)典型机型有 **64K 字(128K 字节)变量存储器,按字(Word)**寻址,地址 0x0000–0xFFFF。规划地址时以目标机型说明书为准。
- 起始地址:2 字节字地址
- 数据长度 N:以字为单位
- 数据内容:每个字 2 字节,共 2N 字节
- 支持顺序读写多个字单元
变量显示格式由配置文件预先下载到屏;运行时用本指令更新/读取数值即可。若控件启用了描述指针,也可用本指令按「基址 + 偏移」读写显示格式区。
写变量存储器 0x82
| 定义 | 指令帧头 | 指令长度 | 指令 | 起始地址 | 数据内容 |
|---|---|---|---|---|---|
| 长度(字节) | 2 | 1 | 1(0x82) | 2 | 2N |
举例 1: 向字地址 0x0003 写入 0x0001:
text
发送:A5 5A 05 82 00 03 00 01举例 2: 从 0x0003 起连续写两字:0x0001、0x0002:
text
发送:A5 5A 07 82 00 03 00 01 00 02读变量存储器 0x83
下发:
| 定义 | 指令帧头 | 指令长度 | 指令 | 起始地址 | 数据长度 |
|---|---|---|---|---|---|
| 长度(字节) | 2 | 1 | 1(0x83) | 2 | 1(N,字个数) |
N 取值范围约 0x00–0x7D(以目标机型说明书为准)。
屏应答:
| 定义 | 指令帧头 | 指令长度 | 指令 | 起始地址 | 数据长度 | 数据内容 |
|---|---|---|---|---|---|---|
| 长度(字节) | 2 | 1 | 1(0x83) | 2 | 1(N) | 2N |
举例: 连续读取字地址 0x0003、0x0004(N=2):
text
发送:A5 5A 04 83 00 03 02
返回:A5 5A 08 83 00 03 02 00 01 FF FF(返回中 00 01、FF FF 为两字数据示例。)
功能摘要
| 指令 | 下发数据 | 说明 |
|---|---|---|
0x82 | 变量字地址 + 写入的字数据 | 从指定字地址起写入 |
0x83 | 变量字地址 + 读取字长度 N | 从指定字地址起读 N 个字;屏应答地址 + N + 2N 字节数据 |
地址规划参见 地址地图、核心概念。向文本类控件写入字符串时,字节序列随控件 编码方式(GB2312 / UNICODE / UTF8 等)变化,对照帧见 字库相关 FAQ。
0x84 — 写曲线缓冲区
用于配合**实时曲线(趋势图)**控件。屏端有独立的 8K Word 曲线缓冲区,可存最多 8 条曲线;缓冲数据为 16 位无符号数,不占用变量存储器空间,也无变量地址。
| 定义 | 指令帧头 | 指令长度 | 指令 | 曲线通道 | 曲线数据 |
|---|---|---|---|---|---|
| 长度(字节) | 2 | 1 | 1(0x84) | 1(CH_Mode) | 2n(每点 1 Word) |
CH_Mode
| 位 | bit0 | bit1 | bit2 | bit3 | bit4 | bit5 | bit6 | bit7 |
|---|---|---|---|---|---|---|---|---|
| 通道 | CH0 | CH1 | CH2 | CH3 | CH4 | CH5 | CH6 | CH7 |
- 某位为
1表示本帧包含该通道数据;为0则不含 - 可同时置位多条通道
- 数据按低通道在前交错排列。例如
CH_Mode = 0x83(10000011B)表示每组为:CH0 + CH1 + CH7,再下一组同样顺序
屏收到 0x84 后,新数据靠曲线窗口右侧显示,原有曲线向左推移,超出窗口长度的部分移出。
清除曲线缓冲(寄存器 0xEB)
通过写寄存器 0xEB(Trendline_Clear)清除缓冲,再由屏自动清零该寄存器:
| 写入值 | 含义 |
|---|---|
0x55 | 清除全部 8 条曲线缓冲区 |
0x56–0x5D | 分别清除 CH0–CH7 |
VTc / VTb 均支持实时曲线与 0xEB 清除。控件侧配置见显示控件「实时曲线」说明。
0x85 — 扩展指令
0x85 后跟一字节子命令。常用子命令如下。
0x85 00 — 直接写显存
| 定义 | 指令帧头 | 指令长度 | 指令 | 数据 |
|---|---|---|---|---|
| 长度(字节) | 2 | 1 | 2(85 00) | X(2) + Y(2) + DATA0(2) + … + DATAn(2) |
X、Y:起始像素坐标DATA:像素颜色(RGB565,双字节);超过一行自动换行
注意:VTc / VTb 系列不支持该功能。
0x85 03 — 连续播放音频
| 定义 | 指令帧头 | 指令长度 | 指令 | 数据 |
|---|---|---|---|---|
| 长度(字节) | 2 | 1 | 2(85 03) | Mode(1) + NUM0(2) + … + NUMn(2) |
| 字段 | 说明 |
|---|---|
| Mode | 0 循环播放;1 顺序播放;其他值停止播放 |
| NUMx | 音频文件名编号(双字节,0x0000–0xFFFE);不存在的编号直接跳过 |
注意事项:
- 同一指令中的音频格式须一致(同为 WAV 或同为 MP3)
- WAV:须 22 kHz、单声道;本指令内音频总大小不超过 2M
- MP3:总大小无上述 2M 限制
- 典型用途:窗口/柜台数字播报(WAV)、娱乐连播(MP3)
- 音视频能力因机型而异(VTb 支持 WAV/MP3 等;VTc 不支持),以产品规格为准
其他 0x85 子命令若工程需要,请对照官方开发指南或标「待核实」。