变量地址解析

变量地址解析功能用于自动计算复杂变量(特别是包含指针的变量结构)的实际地址,支持递归解析多级指针变量,确保DAQ数据采集前所有变量地址已正确解析。

功能入口

  • 自动触发:启动DAQ数据采集时,系统会自动检查并解析所有需要地址计算的变量
  • 手动触发:在工程观察窗口中,右键点击变量,选择"获取地址"菜单项

使用步骤

1. 启动DAQ前的自动解析

  1. 添加变量到DAQ观察列表
  2. 点击"启动DAQ"按钮
  3. 系统自动执行地址解析流程:
    - 检查变量是否需要地址计算(包含指针的变量)
    - 通过XCP协议异步获取指针的实际值
    - 递归计算完整的变量地址
    - 所有变量解析完成后,启动DAQ数据采集

2. 手动获取变量地址

  1. 在工程观察窗口中找到目标变量
  2. 右键点击变量
  3. 选择"获取地址"菜单项
  4. 系统计算并显示变量的完整地址

注意事项

DAQ运行时限制

  • DAQ启动后无法获取地址:DAQ运行时,右键菜单中的"获取地址"选项将被禁用(显示为灰色)
  • 原因:避免地址解析与数据采集产生冲突,保证DAQ数据采集的稳定性和实时性
  • 恢复条件:DAQ停止运行后,"获取地址"功能自动恢复可用

地址解析失败的情况

当遇到以下情况时,系统会自动处理:

场景 系统处理方式
NULL指针 在Output窗口提示"变量 xxx 的指针为NULL,无法继续解析地址",并标记该变量解析失败
XCP通信失败/超时 打印错误日志,在Output窗口给出告警信息,剔除无地址的变量
部分变量解析失败 保留解析成功的变量,剔除失败的变量,在Output窗口列出失败变量,继续启动DAQ

解析时机

  • 地址解析仅在DAQ启动前执行
  • DAQ启动后不再执行获取地址的动作
  • 如有待解析地址的变量,系统会在Output窗口给出告警信息并剔除该变量

性能约束

  • 地址解析是异步过程,不会阻塞UI界面
  • 指针值获取超时时间为5秒
  • 一次只请求一个指针值,避免并发冲突

相关文档