2. 自动加载实验环境

任务目标

编写一个INCA自动化脚本,实现以下功能:

  1. 连接INCA并加载指定数据库(如 DemoProject);
  2. 自动加载目标实验环境(Experiment),例如 Basic_Experiment;
  3. 检查加载是否成功,并输出明确的状态信息。

环境与依赖

  • Windows系统,已安装INCA 7.x或更高版本;
  • Python 3.6+,安装 pyinca 库(通过 pip install pyinca 安装);
  • INCA示例数据库 DemoProject 及其中的 Basic_Experiment 实验环境(INCA自带示例工程,若使用自定义工程,请替换对应名称)。

关键完整代码

import time
from pyinca import INCARuntime

def load_experiment(db_path, workspace_name, experiment_name):
    """
    自动加载实验环境并检查是否成功
    :param db_path: 数据库文件完整路径 (.mdf)
    :param workspace_name: 工作区名称
    :param experiment_name: 实验环境名称
    :return: bool 是否加载成功
    """
    inca = INCARuntime()
    
    try:
        # 1. 启动INCA
        inca.start()
        print("[INFO] INCA已启动")
        
        # 2. 打开数据库
        inca.open_database(db_path)
        print(f"[INFO] 数据库已打开: {db_path}")
        
        # 3. 激活工作区
        workspace = inca.get_workspace(workspace_name)
        workspace.activate()
        print(f"[INFO] 工作区已激活: {workspace_name}")
        
        # 4. 加载实验环境
        experiment = workspace.get_experiment(experiment_name)
        experiment.load()
        print(f"[INFO] 正在加载实验环境: {experiment_name}")
        
        # 5. 等待加载完成(轮询检查状态)
        for _ in range(20):  # 最多等待10秒
            if experiment.is_loaded():
                print(f"[SUCCESS] 实验环境加载成功: {experiment_name}")
                return True
            time.sleep(0.5)
        
        # 6. 超时未加载成功
        print(f"[ERROR] 实验环境加载超时: {experiment_name}")
        return False
        
    except Exception as e:
        print(f"[ERROR] 加载过程发生异常: {str(e)}")
        return False
        
    finally:
        # 注意:此处不关闭INCA,便于用户查看加载结果
        # 如需自动关闭,可调用 inca.stop()
        pass

if __name__ == "__main__":
    # 配置参数 - 请根据实际环境修改
    DB_PATH = r"C:\Program Files\INCA\7.1\DemoProject\DemoProject.mdf"
    WORKSPACE_NAME = "DemoWorkspace"
    EXPERIMENT_NAME = "Basic_Experiment"
    
    # 执行加载
    success = load_experiment(DB_PATH, WORKSPACE_NAME, EXPERIMENT_NAME)
    
    # 输出最终结果
    if success:
        print("=" * 50)
        print("验证通过:实验环境已成功加载")
        print("=" * 50)
    else:
        print("=" * 50)
        print("验证失败:请检查上述错误信息")
        print("=" * 50)

运行方式

  1. 将上述代码保存为 auto_load_experiment.py;
  2. 根据实际INCA安装路径修改 DB_PATH 变量;
  3. 确认工作区名称和实验环境名称与数据库中一致(可在INCA GUI中查看);
  4. 在命令行执行:python auto_load_experiment.py。

验证方法与判定标准

  • 成功标准:控制台输出包含 [SUCCESS] 实验环境加载成功 且最终显示 验证通过;
  • 失败排查:若输出 [ERROR],根据提示检查数据库路径、工作区名称或实验环境名称是否正确;
  • 手动确认:脚本执行后,在INCA GUI中观察目标实验环境是否处于激活状态,且测量配置已加载。

常见问题

  • INCA启动失败:确认INCA已安装且未被其他进程占用;
  • 找不到数据库:检查 DB_PATH 是否指向有效的 .mdf 文件;
  • 实验环境加载慢:若实验环境包含大量测量配置,加载时间可能超过10秒,可适当增加轮询次数。