3. 读取并显示当前标定数据
任务目标
编写一个Python脚本,通过INCA的自动化接口读取指定标定变量的当前值,并在控制台显示。本案例以标定变量 VVT_WINKEL 为例,演示完整的读取流程。
环境依赖
- INCA 7.x 或更高版本(含自动化接口)
- Python 3.6+
- 安装
pyinca库:pip install pyinca - 已打开的INCA工程,且目标标定变量已加载到工作区
关键完整代码
import pyinca
def read_calibration_value(var_name):
"""
读取指定标定变量的当前值
Args:
var_name: 标定变量名称(字符串)
Returns:
当前值(浮点数或整数)
"""
# 连接到正在运行的INCA实例
inca = pyinca.INCA()
# 获取当前激活的工作区
workspace = inca.get_workspace()
if workspace is None:
raise RuntimeError("未找到激活的工作区,请先在INCA中打开并激活工程")
# 获取工作区中的标定对象
cal_object = workspace.get_cal_object()
if cal_object is None:
raise RuntimeError("工作区中未加载标定对象")
# 读取变量当前值
value = cal_object.get_variable_value(var_name)
return value
if __name__ == "__main__":
# 目标标定变量
target_var = "VVT_WINKEL"
try:
current_value = read_calibration_value(target_var)
print(f"标定变量 {target_var} 的当前值: {current_value}")
except Exception as e:
print(f"读取失败: {e}")
运行方式
- 启动INCA并打开包含
VVT_WINKEL的工程,确保工作区已激活。 - 将上述代码保存为
read_cal_value.py。 - 在命令行执行:
python read_cal_value.py
验证方法
- 通过条件:控制台输出
标定变量 VVT_WINKEL 的当前值: [数值],且该数值与INCA界面中显示的当前值一致。 - 错误排查:若提示“未找到激活的工作区”,请检查INCA中是否已激活工作区;若提示变量不存在,请确认变量名拼写及该变量是否已加载到当前标定对象中。
常见问题
- 连接失败:确保INCA正在运行且自动化接口已启用(INCA菜单:Options → Automation Interface)。
- 变量读取类型:本代码自动适配整型和浮点型变量;若变量为数组或结构体,需改用
get_variable_array()或逐元素读取。