1. 课程导入与异常恢复工程定位
在自动化实验平台中,实验任务通常由调度系统、仪器驱动、样本处理设备、数据采集与分析模块共同完成。一次实验从任务下发到结果归档,会跨越多个软硬件边界:调度器分配实验批次,机械臂或液体处理工作站执行样本转移,温控、离心、孵育等设备按参数运行,采集程序读取信号并写入数据库。只要其中任一环节出现超时、通信中断、耗材缺失、参数越界或数据异常,整条流水线就可能停在某个中间状态。异常恢复工程要解决的,正是“实验中断之后如何安全、可控、可追溯地回到可继续执行的状态”这一问题。
需要先明确本课程的核心对象。异常恢复工程不是单纯的软件重试,也不是简单的设备重启,它关注的是实验上下文:当前批次执行到哪一步、哪些样本已经处理、哪些孔位或容器处于不可逆状态、哪些原始数据已经落盘、哪些中间产物需要废弃或保留。恢复动作必须建立在这些上下文之上,否则会出现重复加样、样本错配、数据覆盖或设备碰撞等二次事故。因此,本课程把“实验状态”与“恢复动作”作为两条主线:一条描述系统当前处于什么状态,另一条描述在该状态下允许执行什么恢复策略。
从边界上看,异常恢复工程覆盖异常检测、状态判定、恢复决策、恢复执行和恢复验证五个环节,但不替代设备本身的故障维修,也不替代实验方案的科学合理性判断。例如,当温控模块报出传感器断线时,恢复工程负责识别该异常、冻结当前批次、记录已完成的步骤,并决定是切换备用传感器、跳过该样本还是终止批次;至于传感器为什么断线、是否需要更换硬件,则属于设备维护范畴。明确这条边界,可以避免把恢复工程做成“万能兜底”,也能让恢复策略聚焦在可观测、可控制、可验证的范围内。
实验自动化流水线中的异常场景具有明显的层次性。最底层是通信与驱动异常,例如串口无响应、Modbus 超时、机械臂回零失败;中间层是执行与工艺异常,例如吸头堵塞、液面探测失败、温控超调、离心不平衡;上层是数据与逻辑异常,例如采集通道漂移、结果文件缺失、批次状态与数据库记录不一致。不同层次的异常,其可恢复性和恢复代价差异很大。通信异常往往可以通过重连和指令重发恢复;工艺异常可能需要废弃当前样本并重新取样;数据异常则可能需要回滚批次状态并重新采集。下图给出了一条典型实验流水线中异常发生位置与恢复路径的关系示意。
这张图想说明一个关键判断:异常恢复不是从零开始重跑,而是从“当前已确认的状态”出发,选择代价最小且安全的路径。以液体处理工作站为例,假设某批次共 96 个样本,执行到第 37 个样本时液面探测失败。此时系统已经完成前 36 个样本的加样,第 37 个样本可能只加了部分体积,后续样本尚未处理。恢复策略至少要考虑三点:第 37 个样本是否已接触试剂、能否废弃重取;前 36 个样本的数据是否已记录、是否需要保留;剩余 59 个样本能否从第 38 个继续。若第 37 个样本已接触试剂但体积不足,通常应将其标记为“废弃”,重新取样后从第 37 位继续,而不是从第 1 位重跑。这个例子说明,恢复决策依赖对“不可逆步骤”的准确识别。
关键挑战主要集中在四个方面。第一是状态可见性:很多设备只提供“忙/闲/故障”三态,无法直接回答“当前孔位是否已加样”。恢复工程需要通过指令回读、传感器信号、日志时间戳和数据库记录交叉验证,重建可信状态。第二是幂等性:恢复动作可能被重复触发,例如网络抖动导致重试指令发出两次,如果加样指令不具备幂等保护,就会造成双倍加样。第三是时序一致性:设备复位、数据写入、批次状态更新之间存在先后依赖,恢复顺序错误会导致状态错乱。第四是可追溯性:每一次异常、每一次恢复动作、每一次人工干预都必须留下结构化记录,否则事后无法判断结果是否可信。
为了把上述内容落到可执行层面,本课程后续会围绕一条学习路径展开:先建立实验状态模型,明确批次、样本、步骤、资源四类对象及其状态字段;再学习异常检测与分类方法,区分可自动恢复、需人工确认和必须终止的异常;然后进入恢复策略设计,包括重试、跳过、回滚、降级和切换备用资源;最后通过恢复验证与复盘,检查状态一致性、数据完整性和恢复代价。整条路径强调“先看清状态,再决定动作,最后验证结果”,而不是一上来就写重试代码。
还需要强调一点:异常恢复工程的价值不仅在于减少停机时间,更在于保证实验数据的可信度。一次未经验证的自动重试,可能让系统“看起来恢复了”,但实际产生了重复样本、错配孔位或覆盖数据。恢复工程的目标是让每一次中断都有明确的处理依据,让每一次继续都有可验证的状态基础。当恢复过程本身可观测、可记录、可复现时,自动化实验平台才真正具备长时间无人值守运行的条件。