C-Focus自动对焦系统LabVIEW控制应用笔记
来源:Mad City Labs《Application Note: Controlling the C-Focus™ system with LabVIEW》(8 页文本型 PDF,2011 版权),随共聚焦项目 MCL 位移台驱动包附带。是 Nano-Drive 生态中 C-Focus 硬件漂移补偿系统的操作手册级资料,配套 API 见 Madlib1.8-NanoDrive位移台API手册。
C-Focus 系统是什么
C-Focus = 外部光学传感器反馈环 + MCL 闭环物镜纳米定位器(Nano-F 系列),用于消除显微镜的焦点漂移(focus drift)。原理:外部光学传感器持续测量物镜与样品之间的相对距离,漂移一旦出现即由 Nano-F 物镜定位器实时补偿。
软件与初始化要点
- 控制软件是 LabVIEW 编写的 VI,需 LabVIEW Run Time Engine:32 位系统用 RTE 8.6.1,64 位系统用 RTE 9.0。
- 装物镜后先做 offset 校准:上电后0V 模拟输入且不插 USB 线时进行(细则在 C-Focus 手册)。
- 操作铁律:放样品/调焦之前,必须先把定位器移到中程(按控制器面板红键,或 VI 里指令到 50 µm)。否则锁定后漂移补偿范围(±50 µm)不够,可能撞坏物镜或样品。
- 光学传感器没对准则 focus-lock 无法啮合(Positioning 模式仍可动,属误导性正常假象)。
两种操作模式
Positioning 模式(定位)
- 启动 VI 默认进入,且自动解除 focus lock。
- 绝对位置指令,单位 µm,上限=校准证书上的标定值。
- Z-stack:起点/终点/步数/每步驻留时间(ms),步长自动算;起点>终点即负向 stack。
- 驻留时间 <15ms 可能来不及整定,导致采图错位;驻留应大于系统阶跃响应时间。
- 显示速率:Read Rate 慢档 30ms/点、快档 5ms/点。
Constant Focus 模式(恒焦锁定)
- 以当前位置啮合 focus lock,约 5 秒完成,啮合期间 VI 无响应;控制器 LED 闪烁绿=啮合中,常绿=锁定。
- 啮合瞬间记录内部传感器位置作参考,光学传感器读数复位为 0 µm。
- 锁定状态下仍可相对移动:给光学反馈环注入 offset,既补偿漂移又保持期望位移。输入为相对值,最小增量 5 nm(自动取整到 5 nm 倍数),负值加负号。
- 锁定态 Z-stack:步数/步长/驻留时间,起止自动算;负步长即负向 stack。锁定态 stack 比 Positioning 模式慢(多一层外部光学反馈环)。
- 锁定态图形显示:蓝点=外部光学传感器实测位置,绿线=目标焦点位——可直接读出显微镜系统的振动/振荡幅度,是诊断振动噪声的实用工具。
故障排查要点(摘核心)
| 现象 | 处置 |
|---|---|
| VI 无法初始化句柄 | 驱动/RTE 版本不对;或别的程序占了 USB 句柄 → 拔插 USB 释放 |
| 无法啮合 focus lock | 传感器未对准(Positioning 仍可用,别被迷惑) |
| 啮合后不久脱锁、面板常红 LED | 漂移补偿越界 → 先回中程(保住 ±50 µm 补偿余量);传感器安装/对准不良会发错误补偿指令 |
| 面板 LED 与 VI 状态不同步 | 在 VI 运行时用面板键切换了模式 → 重启 VI 重新同步 |
| 用了 C-Focus 图像还是会失焦 | C-Focus 只补它那个计量环内的漂移;气流、热源、环外热膨胀、折射率变化、样品自身漂移/振动不在补偿范围 → 需恒温罩等手段 |
API 函数清单(C-Focus VI 用到的 MCL USB 调用)
MCL_InitHandleOrGetExisting、MCL_ReleaseHandle、MCL_SingleWriteN、MCL_SingleReadN、MCL_CFocusSetFocusMode、MCL_CFocusStep、MCL_ReadEncoderZ —— 其中 MCL_CFocusSetFocusMode/MCL_CFocusStep 是 C-Focus 专用调用,自研软件若要走 C-Focus 恒焦,从这两个函数入手(对照 Madlib1.8-NanoDrive位移台API手册)。
对共聚焦项目的意义
- 本项目共聚焦软件若要集成 MCL C-Focus 恒焦功能,本笔记的 USB 调用清单 + 两种模式语义(绝对定位 vs 相对 offset 注入)就是最小接口面。
- “中程启动”和”±50 µm 补偿余量”是软件层面应做防护栏的地方(上电自动回中、锁定前位置合法性检查)。
- LabVIEW RTE 8.6.1/9.0 是 2011 年的版本约束,自研替代路线建议直接走 Madlib C API 而非 LabVIEW VI。