基于IHC染色机系统原理

2009-01-28 05:41
企业导报 2009年12期
关键词:控制算法

杨 刚

【摘要】 重点研究自动IHC染色机的工作原理、控制软件及其实现方法,控制软件包括IHC染色规程的制定、抗体与试剂的选择、玻片与试剂的自动定位、染色规程的自动运行与实时监控等功能。实验证明该染色效率有显著提高。

【关键词】 自动染色机;控制软件;控制算法

计算机技术的广泛应用,使现代医疗器械的自动化、智能化、数字化、微型化程度得到了极大的提高,更能受到市场的欢迎。全自动免疫组化染色仪具有标准化程度高、重复性好、自动化程度高、染色结果可靠、环保健康等优点,是病理工作者的好帮手。研究自动IHC染色机,就是把各种计算机技术运用于IHC(Immunohistochemistry)染色实验的精密医疗实验仪器。

一、自动IHC染色系统组成

一个完整的自动IHC染色系统由控制计算机、运动控制卡、染色主机及辅助设备组成(如图1所示)。各组成部分在系统中的作用概括如下:

(1)计算机。实验人员通过操作安装于计算机中的控制软件,编制染色规程,选择抗体与试剂,识别玻片与试剂的位置,监控染色规程的运行;控制软件通过驱动与编程接口,根据实验人员输入的染色信息生成控制指令通过PCI(Peripheral Component Interconnect)总线传送给运动控制卡,根据运动控制卡返回的状态信息进行监控。

(2)运动控制卡。系统的核心控制元件,一方面它从计算机接收控制指令,并译码成相应的控制脉冲,控制染色机的各种执行机构完成染色动作,另一方面检测染色机某些功能元件的状态,返回到计算机。

(3)染色机。自动染色的执行机构,具有自动染色所需的运动机构、控制机构、以及相关辅助机构。通过控制箱中和各种板卡接收运动控制卡的各上控制脉冲和信号,控制各机构和元件自动完成各种染色动作。

(4)辅助设备。主要包括二维条码打印机以及普通打印机,二维条码打印机通过串行接口连接到控制计算机,负责打印用于在染色过程中识别玻片和试剂的二维条码标签。普通打印机通过并口连接到控制计算机,方便实验人员打印实验结果。

二、染色动作软件实现

整个染色过程被分解为一系列的基本染色动作,包括清洗探针、冲洗玻片、吹干玻片、试剂加样等。在自动染色机的控制软件中,通过对运动控制卡编程控制,实现这些染色动作的自动执行,主要有如下过程:

(1)染色规程运行开始必须对控制系统加电,运行结束时必须将系统断电。系统加电功能的伪代码如下:

SendString(OmsHandle,“BL7;WQ”);//通过设置控制板卡用户I/O引脚7为低电平加电;OmsWait(13000);// 等待13秒;

SendAndGetString(OmsHandle,“BX;WQ”, response);//读取控制板卡用户I/O引脚状态到字符数组response;v = _tcstoul(response,0,16);// 使用库函数将response转成16进制整数并传给变量v;

if ((v & 01000000) != 01000000){// 判断v的第7位是否为1;// 第7位是0,加电不成功提示用户出错;}

系统断电功能的伪代码如下:

SendAndGetString(OmsHandle,“BX;WQ”,response);

v=_tcstoul(response,0,16);

if(v & 01000000)== 01000000) {// 判断v的第7位是否为1;

SendString(OmsHandle,“BH7;WT2000;WQ”);//当v第7位为1,通过设置控制板卡用户I/O引脚7为高电平关电;}

(2)运动控制。在染色规程运行前,系统首先将各个轴移动到原点位置,回原点使用专用命令“HR”,该命令需要配合硬件的原点传感器来使用,从而使驱动各个运动轴的步进电机的脉冲计数归位到0。X轴的回原点的伪代码如下:

command.Format("AX;AC%d;VL%d;VB%d;WQ",xACHome,xVLHome,xVLbase);//编辑X轴的加速度、匀速度、和起始速度设置命令字符串command;

SendString(OmsHandle, command.GetBuffer(255));// 将速度设置命令

SendString(OmsHandle,“AX;HR;ID;WQ”);//使用HR命令让X轴回到原点,当X轴回到原点时设置完成标志;

CheckDoneFlags(OMS_X_AXIS);//通过检验X轴的完成标志等待X轴回到原点。

三、自动定位多线程实现

多线程是同一个进程中同时执行多个任务,方便进行多个任务的并发控制。线程有两种:用户界面线程和工作线程。用户界面线程拥有自己的消息循环,工作线程则没有。考虑到玻片与试剂的自动定位功能需要花费一定的时间,为方便在出现意外情况下中断自动定位的执行流程,另开启一个工作线程来执行自动定位功能。当主线程开启扫描线程之后,扫描线程进入自己的执行函数。在扫描线程执行期间,主线程主要负责完成两个工作:(1)当扫描控件接收到DecodeDataAvailable事件,即条码数据获取事件,响应该事件,保存条码信息之后将条码标志置为真。条码标志是主线程与扫描扫描线程的共享对象,用于主线程通知扫描线程扫描仪在当前试剂放置处获得了条码数据,表示用户在该处放置了试剂瓶。(2)监控界面显示,一旦发现染色主机在扫描过程中出现异常状况,可立即中断扫描线程的运行。

扫描线程进入执行函数首先对染色主机进行加电,并让各个运动轴回到原点位置。这一点非常重要,如果扫描线程之前被主线程中断,各个轴需要通过回原点位置来恢复运动控制卡的寄存器状态,否则会引起运动超程等错误。在各运动轴回到原点之后,扫描线程尝试通过串行接口连接操作头部件中的条码扫描仪,如果连接失败,则提示用户检查错误,并将染色主机断电后从扫描线程返回。扫描仪连接成功后,对于试剂定位,在测定试剂容量时探针需要接触试剂,为防止不同试剂互相混合,每测定一个试剂瓶前都必须先针探针进行清洗。在玻片定位过程中,只需在整个扫描之前清洗一次探针防止探针中残留试剂滴落在玻片上。

由前文可知,每个试剂架有40个试剂放置位置(4行,10列),事先通过校准软件测得试剂架第一个放置位置的坐标(X0,Y0)以及各个放置位置之间的横向间距(SX)和纵向间距(SY),通过这些参数可计算出每个试剂放置位置的坐标(Xi,Yj),其计算公式为:Xi =X0+i*SX,Yj =Y0+j*SY。当操作头移动到该坐标处,扫描仪执行一次扫描动作后,如果用户在该位置放置了贴有识别标签的试剂瓶,扫描仪的扫描系统获取标签上的二维条码图像,经过信号整形和译码后将数据传送给主机,触发扫描控件产生DecodeDataAvailable事件。主线程捕获该事件将数据保存在条码信息变量中,将条码标志置为真。从扫描仪执行扫描动作到主线程获得条码信息,这一过程的执行时间很短,在这段时间内可将扫描线程挂起1秒以等待该过程结束,扫描结束等待结束后,判断条码标志是否被置为真,如果非真,扫描下一个位置,如果为真,则认定该坐标处存在试剂瓶,根据获取的条码信息在本次IHC实验所需试剂中查找。

如果查找成功,则使用操作头中的探针头上的液面传感器,测定液面位置ZT,根据试剂瓶的瓶底位置ZB,及试剂瓶截面积S,可计算得到试剂容量V,其计算公式为V=(ZB-ZT)*S。至此完成一个试剂位置的扫描,最后将获得的试剂的名称和容量实时显示在控制软件的监控界面上。在扫描完所有的试剂位置后,控制软件将各个运动轴移回原点位,染色主机断电,线程返回。主线程可根据扫描定位结果,计算出当前各种试剂的容量,判断是否足够实验使用,如果不足,提示用户添加。

四、染色规程自动运行技术

染色规程的自动运行是其核心,在此提出分割运行算法和迭代运行算法,经实验比较起算法效率,提出确定使用迭代运行算法的控制软件进行自动IHC染色实验能够充分提高染色的效率。分割运行算法是基于化繁为简的思想,将一个的父染色规程的分割成多个顺序连接的子染色规程。除去染色规程开始的预冲洗操作,其余的冲洗操作都是与它之前的滴加试剂操作相匹配的,根据这一特点可知,只包含一个滴加试剂操作步骤和一个冲洗操作步骤的染色规程是染色规程可分割的最小单元。

在分割运行算法中,染色规程是分割成子染色规程逐个运行的,这个先运行结束的玻片仍然处于一个未完全运行结束的子染色规程中,虽然此时染色机处于空闲等待状态,具备继续运行的条件,由于算法自身的缺陷该玻片将不会得到运行。针对这一缺陷,对分割运行算法进行改进,设计出迭代运行算法。由分割运行算法的实现可知,通过一次循环将所有的子染色规程运行结束。而迭代运行算法在允许各个子染色规程交叉运行的前提下一次循环中尽可能多地运行子染色规程,整个过程由多次循环检查运行子染色规程完成。

五、算法分析与比较

以一个包含n个玻片、m步染色规程的染色规程为例,令第i个玻片执行第j步染色操作的时间为Tij,在分割运行算法中,染色规程的运行时间为所有子染色规程的运行时间之和,每一子染色规程的运行时间取决该子染色规程中试剂反应时间最长的那个玻片。

六、结论

通过比较可以发现,在染色规程的其它设置相同的情况下,随着玻片数目与染色规程数的增加,试剂种类相应增加,各种试剂与切片的反应时间之间的差异相应增大,按迭代运行算法运行染色程序比按分割运行算法运行所节省的运行时间也越多。与分割运行算法相比,迭代运行算法在运行复杂的染色规程时充分体现出了其优越性,使用采用了迭代运行算法的控制软件进行自动IHC染色实验能够充分提高染色的工作效率。

参考文献

[1]张福勇,潘传明.计算机技术在现代医疗器械中的应用[J].网络与计算机技术应用.2002(4):15~16

[2]罗小平,胡维维,伍尚金.全自动免疫组化染色仪与人工操作的比较[J].医械临床.2007(4):59~60

[3]胡皓,周妮娜.基于Visual C++的运动控制系统开发[J].电气时代.2006(7):56~57

[4]魏仁选.PCI运动控制卡的访问方法[J].微型电脑应用.2007(11):27~29

[5]周宇,沈建新.自动 IHC染色机核心控制算法的研究与实现[J].中国制造业信息化.2008

猜你喜欢
控制算法
纺织机械手专利瞄准控制算法
电镀电流的模糊PID控制算法
基于ARM+FPGA的模块化同步控制算法研究
基于场景突变的码率控制算法
X264多线程下码率控制算法的优化
一种优化的基于ARM Cortex-M3电池组均衡控制算法应用
滑模控制算法在在线式大功率UPS高频整流器中的应用
基于梯度的CCSDS压缩码流控制算法研究
视频服务器拥塞控制算法的研究与实现
一种非圆旋转工件支撑装置控制算法