Harvard Apparatus PHD2000 是一台可编程注射泵。它的操作本身极简单——推。但这篇不写"怎么推",而是跟着一次真实的时间安排,看程序在哪些时刻起作用。
傍晚六点,实验开始
注射速率、总量、注射时间——这几个参数先设好。这里的第一个坑很朴素:速率的单位。不同泵用不同单位(微升每分钟、毫升每小时),设之前先确认清楚,差六十倍这种事是真会发生的。
参数设好后,程序做的第一件事是回读核对。泵这种设备一旦开始推,中途改主意代价很大——宁可开始前多确认一次。
六点半,第一段注射
程序开始推送,同时进入监控循环。这个循环不需要做太多事,但有几件必须在:
- 进度:已经推了多少、还剩多少;
- 状态:泵在正常推进,还是停住了;
- 记录:什么时候开始、什么时候结束,留个时间戳。
驱动前面板:注射参数与状态都在这里
程序框图:参数下发与状态查询的结构
"记录"这一条最容易被省掉,也最不该省。实验做完之后,别人问"这一段是从几点开始的",有记录就一句话答完,没记录就得靠回忆。
夜里十一点,第二段
这一段的参数跟第一段不一样——流速要变,总量也要变。手动做的话,这意味着人得熬到十一点去改设置。
程序做这件事没有任何难度:把两段参数写成一个序列,第一段完成之后自动切到第二段。人可以去睡觉,泵按计划走。
顺带说一个容易忽略的点:两段之间的衔接。是停一下再开始,还是不停顿地过渡?这在有些实验里是有区别的,而这个区别只能靠程序精确控制——手动切换一定会有停顿,而且停顿多久说不准。
凌晨三点,该出问题的时候
长时实验最怕的不是出错,是出错的时候没人在场,而且没人知道。
所以程序在夜间要能自己处理几件事:泵停了要能发现、通信断了要能重连、确实救不回来的时候要停下来并留下记录。第二天早上看到的应该是一条完整的时间线——几点几分发生了什么,而不是一个"我不知道"的结果。
这一层设计平常看不出价值,但实验失败的那一次,它是唯一能告诉你"到底发生了什么"的东西。
早上八点,收工
推完了,数据在,时间线完整。更重要的是——这一夜的流程是可以原样重放的。换成另一组样品,改几个参数,同样的流程再跑一遍,两次实验之间的可比性是有保证的。
注射泵的机械动作简单到没什么可讲的,但"什么时候推、推多少、中间怎么衔接、出问题怎么办"这四件事,才是实验能不能重复的关键。程序管的正是后面这四件。
如果你手上也有类似的设备或类似的活儿,不管是老仪器想连电脑、还是新系统要搭测试流程,都可以把型号和场景发给我们,我们来看看能不能用同样的思路解决。