Watch 窗口
Watch 窗口用于实时监控和修改目标设备中的变量数值,提供类似 IDE 调试器的变量监视功能。
功能入口
方式一:通过资源管理器
1. 在资源管理器中展开工程节点
2. 右键点击 Watch 节点
3. 选择「打开Watch窗口」
方式二:激活配置
1. 在资源管理器中双击 Watch 配置实例
2. 或右键选择「激活配置」
3. 系统自动打开 Watch 窗口
窗口特性:
- 默认位置:右侧停靠区域
- 支持:移动、浮动、关闭
使用步骤
添加变量
- 在资源管理器中展开「工程」→「Variables」节点
- 右键点击需要监控的变量
- 选择「添加到 Watch」
- 变量将出现在 Watch 窗口的数值表格中
变量要求:
- 变量必须已解析地址
- 变量必须在工程变量池中存在
实时监控
Watch 窗口启动后,会自动按照设定的刷新周期读取并显示变量值。
表格说明:
| 列名 | 功能 | 操作 |
|---|---|---|
| 变量名 | 显示变量名称或成员路径 | 只读 |
| 数值 | 显示实时数值,复杂类型显示 {...} |
实时更新 |
| 地址 | 显示变量内存地址 | 只读 |
| 写入 | 编辑要写入的值 | 双击编辑 |
工具栏功能:
- 移除:移除选中的变量
- 清空:清空所有变量
- 手动刷新:立即刷新一次变量值
- 自动刷新:勾选后按设定周期自动刷新
- 同步写入:勾选后写入操作立即生效
- IQ显示模式:选择 IQ 格式的显示方式
展开复杂数据结构:
- 点击展开箭头(▶)可展开结构体、联合体、数组等复杂类型
- 展开后显示成员变量的实时数值
- 支持多级嵌套展开
支持的复杂类型:
| 类型 | 展开行为 | 示例 |
|---|---|---|
| 结构体 | 显示所有成员变量 | g_motorConfig → speed, current, voltage |
| 联合体 | 显示所有成员变量 | g_dataUnion → intValue, floatValue |
| 数组 | 显示数组元素 | g_buffer → [0], [1], [2] |
| 指针 | 显示指针指向的地址值 | g_ptr → 0x20001234 |
写入变量
- 在 Watch 窗口的「写入」列中双击目标变量
- 输入要写入的数值
- 按 Enter 或点击其他位置确认
- 如果启用了「同步写入」,系统将立即执行写入操作
注意:写入操作需要已连接到目标设备。
获取变量地址
Watch 窗口支持获取变量的内存地址。
操作方式:
Watch窗口中获取地址:
1. 选中一个或多个变量
2. 右键点击 → 选择「获取地址」
3. 地址将自动复制到剪贴板并显示在状态栏
批量获取地址:
1. 在 Watch 窗口空白区域右键
2. 选择「获取全部地址」
3. 系统依次计算所有 Watch 变量的地址
资源管理器中获取地址:
1. 在资源管理器中展开工程节点 → Watch变量
2. 右键单个 Watch 变量 → 选择「获取地址」
3. 或右键 Watch 变量组节点 → 选择「获取全部地址」
注意事项
- 地址要求:添加变量前,确保变量已解析地址
- 设备连接:写入操作需要已连接到目标设备
- 指针变量:包含指针解引用的变量路径(如
g_ptr->member),地址需连接设备后通过 XCP 读取内存获取 - 地址同步:解析后的地址自动更新,所有引用该变量的模块(Watch、Scope、Recorder)自动获得最新地址
- 刷新模式:建议根据实际需求选择自动刷新或手动刷新模式,避免不必要的通信开销
- IQ格式:对于 IQ 格式变量,可通过工具栏的「IQ显示模式」选择合适的显示方式