变量地址解析
变量地址解析功能用于自动计算复杂变量(特别是包含指针的变量结构)的实际地址,支持递归解析多级指针变量,确保DAQ数据采集前所有变量地址已正确解析。
功能入口
- 自动触发:启动DAQ数据采集时,系统会自动检查并解析所有需要地址计算的变量
- 手动触发:在工程观察窗口中,右键点击变量,选择"获取地址"菜单项
使用步骤
1. 启动DAQ前的自动解析
- 添加变量到DAQ观察列表
- 点击"启动DAQ"按钮
- 系统自动执行地址解析流程:
- 检查变量是否需要地址计算(包含指针的变量)
- 通过XCP协议异步获取指针的实际值
- 递归计算完整的变量地址
- 所有变量解析完成后,启动DAQ数据采集
2. 手动获取变量地址
- 在工程观察窗口中找到目标变量
- 右键点击变量
- 选择"获取地址"菜单项
- 系统计算并显示变量的完整地址
注意事项
DAQ运行时限制
- DAQ启动后无法获取地址:DAQ运行时,右键菜单中的"获取地址"选项将被禁用(显示为灰色)
- 原因:避免地址解析与数据采集产生冲突,保证DAQ数据采集的稳定性和实时性
- 恢复条件:DAQ停止运行后,"获取地址"功能自动恢复可用
地址解析失败的情况
当遇到以下情况时,系统会自动处理:
| 场景 | 系统处理方式 |
|---|---|
| NULL指针 | 在Output窗口提示"变量 xxx 的指针为NULL,无法继续解析地址",并标记该变量解析失败 |
| XCP通信失败/超时 | 打印错误日志,在Output窗口给出告警信息,剔除无地址的变量 |
| 部分变量解析失败 | 保留解析成功的变量,剔除失败的变量,在Output窗口列出失败变量,继续启动DAQ |
解析时机
- 地址解析仅在DAQ启动前执行
- DAQ启动后不再执行获取地址的动作
- 如有待解析地址的变量,系统会在Output窗口给出告警信息并剔除该变量
性能约束
- 地址解析是异步过程,不会阻塞UI界面
- 指针值获取超时时间为5秒
- 一次只请求一个指针值,避免并发冲突