針對目前國內市場銷售的醫療免疫檢驗設備主要是來自于國外進口、價格十分昂貴等現狀,自主研發了一套全自動熒光分析儀系統,詳細介紹了其FPGA/DSP運動控制+PC+STM32嵌入式微處理單元一體化的硬件結構設計、基于C#多線程的軟件系統、雙機制通信設計及其實現;通過精簡硬件結構、合理硬件選型以及采用面向對象技術開發控制系統軟件,控制系統精度和速度得到顯著提高。最后進行了整機測試驗證,說明該控制系統在功能、性能和成本上滿足了全自動熒光分析儀的需求。
引用本文: 張梅, 林志波, 袁鵬, 姚志鋒, 胡躍明. 全自動熒光分析儀的集成研制. 生物醫學工程學雜志, 2015, 32(5): 1118-1124. doi: 10.7507/1001-5515.20150198 復制
版權信息: ?四川大學華西醫院華西期刊社《生物醫學工程學雜志》版權所有,未經授權不得轉載、改編
引言
隨著計算機科學技術的飛速發展,醫療檢驗儀器的類型不斷更新、 功能不斷完善、準確度和檢測速度也在不斷提高。臨床上,通過對患者血液、尿液所含物質的檢驗,并結合患者臨床表現,可幫助醫生對疾病進行綜合分析,從而獲得疾病診斷結果。全自動熒光分析儀就是一種用于臨床免疫項目檢驗的設備,通過它可實現醫學免疫檢測過程中的取試劑、加樣、混勻、恒溫反應、洗板、檢測、結果計算和顯示,以及廢液處理等免疫檢驗步驟的全自動化運行。該設備的使用可克服傳統手工檢測方法速度慢、精度低等缺點,不僅可提高檢驗效率,也減少了由于人為操作引起的主觀誤差,穩定了檢驗質量,越來越受到各級醫院和科研院所的青睞[1]。
本文介紹的全自動熒光分析儀是一臺集光、機、電于一體的免疫分析檢驗設備。它在工作時可以同時進行若干個檢驗項目。對于醫學免疫檢驗項目,按照檢驗過程的不同功能可將整個檢驗劃分為加樣模塊、搬運模塊、溫育振蕩模塊、洗板模塊和檢測模塊。利用這些功能模塊可實現免疫檢驗步驟的各項工作。本文正是基于檢驗過程本身的特點,通過對全自動熒光分析儀的各功能子模塊的軟硬件進行設計和分析,給出其整體設備的硬件結構、軟件框架、通信方案的設計和實現,最終實現整臺設備的集成和自動化。
1 儀器工作流程
全自動熒光分析儀的工作流程如圖 1所示。其中,機械臂負責檢測板的加/去蓋和搬運操作,加樣臂負責樣本和檢測試劑的分配操作,溫育振蕩器負責樣本溫育和振蕩混勻操作,洗板機負責檢測板的清洗操作,檢測儀負責熒光檢測和結果輸出。熒光檢測是基于熒光分析法的工作原理。
 圖1
				全自動熒光分析儀工作過程
			
												
				Figure1.
				Working process of full-automatic fluorescence analyzer
						
				圖1
				全自動熒光分析儀工作過程
			
												
				Figure1.
				Working process of full-automatic fluorescence analyzer
			
								2 硬件系統設計
根據免疫檢測的醫學特征、檢驗過程以及電氣控制系統應具有的性能特點,尤其對穩定性、安全性和精確性的要求,本文設計的全自動熒光分析儀采用FPGA/DSP運動控制+PC+STM32微處理單元一體化的硬件控制方案,其硬件組件主要包括加樣臂、機械臂、洗板機、檢測儀和STM32微處理模塊等,其實際結構簡圖如圖 2所示,系統的整體電氣連接圖如圖 3所示。
 圖2
				全自動熒光分析儀實際結構簡圖
			
												
				Figure2.
				Simplified structure diagram of automatic fluorescent analyzer
						
				圖2
				全自動熒光分析儀實際結構簡圖
			
												
				Figure2.
				Simplified structure diagram of automatic fluorescent analyzer
			
								 圖3
				系統整體電氣連接圖
			
												
				Figure3.
				Overall system electrical connection diagram
						
				圖3
				系統整體電氣連接圖
			
												
				Figure3.
				Overall system electrical connection diagram
			
								加樣臂用于實現免疫檢驗過程中樣本、試劑的注、吸等功能。其主要控制部件包括X、Y、Z三軸電機、移液電機和原點檢測模塊。X、Y、Z三軸電機分別控制加樣臂在X、Y、Z三個方向上的運動,移液電機控制吸、排液操作。基于精度的要求,通過運動控制卡和編碼器控制X、Y、Z三軸電機和移液電機實現精確控制。其硬件原理框圖如圖 4所示。
 圖4
				加樣臂硬件原理框圖
			
												
				Figure4.
				Block diagram of loading arm working principle
						
				圖4
				加樣臂硬件原理框圖
			
												
				Figure4.
				Block diagram of loading arm working principle
			
								機械臂用于實現試劑管的加/去蓋和試劑板等的搬運功能,其主要部件包括X′、Y′、Z′三軸電機、抓手電機和原點檢測模塊。X′、Y′、Z′三軸電機分別控制機械臂在X′、Y′、Z′三個方向上的運動,抓手電機控制機械臂上的抓手伸縮度。其硬件結構框架與運動控制方案與加樣臂基本一致,不再贅述。
STM32微處理單元采用STM32F103ZET微處理器來完成對泵、閥開關動作,溫度、液位以及TIP頭檢測等傳感器信號的采集以及溫育振蕩器模塊的控制。其中,TIP頭檢測信號通過紅外傳感采集;醫學指標要求液位檢測精度的偏差范圍不能超出20 μL,故液位信號采用基于探針式電容傳感器的動態液位探測法獲取[2]。另外,由于溫度的控制是影響溫育試驗的關鍵因素,因此采用PWM+模糊PID算法實現對溫度的控制[3]。STM32微處理單元的硬件原理框圖如圖 5所示。
 圖5
				STM32微處理單元硬件原理框圖
			
												
				Figure5.
				Hardware block diagram of STM32 micro processing unit
						
				圖5
				STM32微處理單元硬件原理框圖
			
												
				Figure5.
				Hardware block diagram of STM32 micro processing unit
			
								洗板機和檢測儀是可獨立運行的子設備,其主要功能是進行洗板和試劑檢測,可通過串口實現與PC機的通訊。它們已由合作公司獨立進行開發設計,其硬件設計在此不贅述。
3 軟件系統設計
全自動熒光分析儀系統的軟件設計,一要保證用戶與上位機能夠進行友好的人機交互;二要保證程序的運行穩定性和對多個流程(包括多軸并行運動控制、IO板通訊控制、界面刷新等)的實時控制。本文設計的全自動熒光分析儀應用軟件系統在Microsoft Visual Studio 2008開發平臺上開發完成,Windows XP操作系統下運行。軟件主要包含了人機交互界面、運動控制模塊、數據庫操作管理等。由于要控制的執行機構和動作眾多,工作時序復雜且要求嚴格,如何采用多線程機制保證多個流程控制的實時響應性能是系統設計的關鍵所在。因此,考慮采用功能強大、兼容性好、效率高的面向對象程序設計語言C#來對其進行軟件開發[4]。
3.1 多線程處理機制
適當使用多線程能顯著提高系統的性能。全自動熒光分析儀在執行相應的項目步驟時,需要請求大量數據,通過把數據輸出工作交給異步線程,主線程能更穩定、高效地執行其余任務。
由于執行項目步驟方式的差異性,本文建立了主線程(窗體UI線程)和兩個工作線程。工作線程包括:①ThreadProc1線程,主要完成加樣臂和機械臂的執行任務;②ThreadProc2線程,主要完成如IO控制板、洗板機、檢測儀等的命令類任務。主線程在啟動系統上位機軟件時就被建立,一直到關閉上位機軟件,才將主線程關閉,并釋放資源。工作線程均是在點擊“運行”按鈕后才被建立,實驗任務完成后,線程關閉,并釋放相關資源。
通過采用多線程機制合理分配程序的執行任務,系統的總體性能要明顯優于單線程程序[5]。
3.2 人機交互界面
為了達到較好的用戶體驗效果,得益于C#豐富的開發控件和優秀的開發交互性,本文設計的全自動熒光分析儀應用軟件系統的主界面如圖 6所示。該主界面按照主體功能主要分為操作區、實驗區、模塊區、查看區、用戶區等主體功能菜單選項區,各主體功能選項區又包含眾多子選項區。系統運行時可以通過甘特圖(Gantt chart)實時顯示各個檢驗項目的進度以及樣本的基本信息。
 圖6
				主界面
			
												
				Figure6.
				Main interface
						
				圖6
				主界面
			
												
				Figure6.
				Main interface
			
								對于甘特圖實時顯示界面,原始的設計思路是從數據庫獲取數據,并將刷新機制存放于C#程序的timer定時器中,這種設計方案存在以下缺點:①與數據庫頻繁交互,時間和資源消耗均較大;②由于timer定時器的資源有限,當實驗組中項目數和項目步驟數增多時,顯示界面無法進行有效刷新,出現閃屏現象。
為解決以上問題,本文采取了新的設計方案,通過定義全局靜態變量,將顯示數據動態保存在內存中,并將刷新機制放在線程timer定時器中,既減少了與數據庫的交互時間又充分利用系統資源。
3.3 運動控制程序實現
運動控制程序主要是采用固高科技公司的GTS系列運動控制卡(基于FPGA/DSP)對加樣臂和機械臂進行軟件開發。在Windows XP系統下,將運動控制卡與C#編程相對應的動態鏈接庫gts.dll文件和gts.cs文件拷貝到對應工程目錄下,然后將gts.cs文件包含在該工程項目中,通過調用文件中集成的驅動函數并利用C#基于對話框方式編寫運動控制卡控制程序實現運動控制。
相比于常用的基于PLC[6]、基于PC-based[7]和基于總線[8]的多軸控制系統,采用GTS運動控制卡進行運動控制具有以下優點:①采用PCI總線接口,可實現高速數據傳輸,為精確控制提供了前提保證。②其核心由DSP和FPGA組成,可以實現高性能的控制計算。③可編寫運動程序(下載到運動控制器上執行的程序)實現脫機工作,從而將主機從繁瑣的運動邏輯管理中解放出來。④I/O資源豐富。
由于運動控制卡對加樣臂和機械臂上的步進電機進行的控制均是開環控制,即上位機通過運動控制卡發送運動命令,步進電機接收到運動命令后執行相應的動作(即轉動),動作完成即表示整個響應過程結束,程序的實時性無法保證。為了保證程序的實時性,本文在進行這部分程序設計時采用系統預判的控制策略,即上位機發出運動命令后(實際是一定的脈沖數),程序根據先驗公式自行計算命令所需完成時限,以此預估下位機完成動作命令的時間,并以此作為下一指令開始的依據。
先驗公式如下所示:
| $ T = KP + \Delta T $ | 
其中,T為命令預期完成時間,K為比例系數,P為命令脈沖數,ΔT為緩沖時間。該公式是通過測試相應步進電機在一定脈沖數下的步進量,再做數學統計獲得,具體過程不贅述。
另外,由于機械臂和加樣臂均在同一有限的區域內運動,極可能因運動命令不恰當發生相互碰撞或與其他硬件碰撞以致設備損壞。為此,本文采用一種運動保護和運動互鎖機制。
運動保護的主要實現思想是:考慮到機械結構的限制,每當加樣臂(或機械臂)從一個位置(x,y,z)運動到另一位置(x′,y′,z′)時,首先將Z軸電機運動到預設的安全高度,然后X、Y軸電機運動,待其運動到位后,方可Z軸電機運動,這樣確保機械運動的安全性。
運動互鎖的主要實現思想是:考慮到加樣臂和機械臂實際可運動范圍比較有限,故限定在任意時刻,加樣臂和機械臂最多只能有一個處于運動狀態,其余的將保持在各自的原點位置。具體通過在程序設計時預置一個互鎖信號量和兩個優先級參量實現,其中,優先級參量的數值根據具體醫學檢驗步驟給出。若加樣臂和機械臂同時申請運動權限,此時信號量處于解鎖狀態,則系統根據其優先級參量的大小決定誰具有運動權限;若加樣臂和機械臂中的某一個處于運動狀態,則鎖定信號量,此時若另一個申請運動權限(無論其優先級多高)將被系統拒絕,只能保持等待狀態直至運動權限釋放。
3.4 數據庫模塊設計
全自動熒光分析儀控制系統處理的數據比較多,合理地設計數據表對于修改和維護數據庫、修改數據、檢索數據、開發程序,使數據在數據表之間順利進行傳遞等方面十分重要。該系統數據庫主要由三部分數據組成:①保存用戶界面輸入的數據;②運行過程中產生的數據;③下位機上傳的數據。
針對項目信息管理模塊涉及的數據表包括:項目步驟表,實驗項目表,實驗項目組表,其實體E-R圖如圖 7所示。
 圖7
				項目信息管理模塊實體E-R圖
			
												
				Figure7.
				Entity E-R diagram of project information management module
						
				圖7
				項目信息管理模塊實體E-R圖
			
												
				Figure7.
				Entity E-R diagram of project information management module
			
								對于數據庫的操作部分(增、刪、改、查),主要采用C#中的ADO.NET數據庫訪問技術實現[9]。通常情況下,數據源是數據庫,但它同樣也能夠是文本文件、Excel表格或者XML文件。ADO.NET類庫主要包含:Connection類,Command對象,DataReader類,Dataset對象,DataAdapter類。通過實例化這些類可以很方便地進行數據庫基本操作,從而縮短系統開發周期。
4 雙機制通信方案設計及實現
系統的通信設計主要是指PC機與下位機(洗板機、檢測儀、IO控制板)之間的通信,通過多串口卡來實現,采用半雙工通訊方式。大部分的通信由PC機啟動,下位機在接收到數據后確認是否被“點名”。若被“點名”,則根據接收數據的結果返回確認信息(ACK/NAK或者DATA);上位機對NAK確認信息或者超時尚未返回信息進行優先處理(重傳第二次),若三次未成功則產生報警并記錄。PC機向下位機發送數據的具體通信流程如圖 8所示。PC機接收下位機返回數據時采用兩種接收機制。對于STM32微處理單元的返回信息,由于其實時性要求較高(如液位信息、溫度信息等),系統采用基于事件觸發的機制,即一有反饋信息立刻處理;對于洗板機和檢測儀的返回信息(如洗板任務完成、檢測報告等),由于實時性要求不高,采用輪詢機制,即系統按一定的周期循環讀取串口緩沖區的數據。接收數據的具體通信流程圖如圖 9所示。
 圖8
				發送數據具體通信流程圖
			
												
				Figure8.
				Communication flow char of data sending
						
				圖8
				發送數據具體通信流程圖
			
												
				Figure8.
				Communication flow char of data sending
			
								 圖9
				接收數據具體通信流程圖
			
												
				Figure9.
				Communication flow char of data receiving
						
				圖9
				接收數據具體通信流程圖
			
												
				Figure9.
				Communication flow char of data receiving
			
								5 全自動熒光分析儀性能測試
設備研發之前的預期技術指標包括樣本最大容量、可測項目數、加樣范圍、移液量準確度、溫度控制精度、振蕩時間與誤差等。為了測試系統性能是否達到了預期的性能指標要求,本文主要針對設備的移液精度、溫育振蕩器的溫度控制和振蕩時間進行了整機的系統聯調測試,并采用測試樣本進行性能測試。
5.1 軟件系統主要功能界面
 圖10
				定位校準界面
			
												
				Figure10.
				Calibration interface
						
				圖10
				定位校準界面
			
												
				Figure10.
				Calibration interface
			
								 圖11
				項目編輯界面
			
												
				Figure11.
				Project edit interface
						
				圖11
				項目編輯界面
			
												
				Figure11.
				Project edit interface
			
								 圖12
				項目步驟參數設置界面
			
												
				Figure12.
				Project step parameters setting interface
						
				圖12
				項目步驟參數設置界面
			
												
				Figure12.
				Project step parameters setting interface
			
								5.2 移液量精確度測試
醫學指標在精度上有嚴格的要求,當移液量超過100 μL時,要求偏差系數CV[10]值滿足|CV|≤3%。利用加樣臂分別進行了體積為100、200、300 μL的樣品量的加樣操作各10次,并利用微量注射器(精度為1 μL)測量其移液后的實際值。統計每個批次的平均值
| $ \overline v = \frac{{\sum\limits_{i = 1}^{10} {{v_i}} }}{{10}} $ | 
| $ s = \sqrt {\frac{{\sum\limits_{i = 1}^{10} {{{\left( {{v_i} - \overline v } \right)}^2}} }}{9}} $ | 
| $ CV = \frac{s}{{\overline v }} \times 100\% $ | 
其中vi為每次理論液量。
由表 1的實驗數據統計可以看出,進行注液測試時:加樣量為100、200、300 μL時的偏差系數分別為2.97%、2.22%、1.92%。以上數據基本滿足醫學指標CV值不超過3%的預期要求。
 表1
                實驗數據統計表
		 	
		 			 				Table1.
    			Statistics of experimental data
			
						表1
                實驗數據統計表
		 	
		 			 				Table1.
    			Statistics of experimental data
       		
       				5.3 溫育溫度和振蕩時間測試
生化實驗對溫度的工藝要求為36~38 ℃,本文采用PWM+模糊PID進行溫度控制,為了測試溫育的性能,本文采用該孵育模塊由室溫(25 ℃)加熱至36 ℃并保持恒溫1 h,然后直接讀取在人機界面的實時顯示數據。
實際測試結果顯示,由室溫加熱到36 ℃,耗時不到1 min,而臨床試驗中溫育振蕩這一工序則需要0.5 h到1 h不等,因此在時間上達到指標。整個加熱過程中溫度誤差在2 ℃之內,符合設計要求。
振蕩時間通過STM32進行定時控制,可實現任選振蕩時間,完全能達到時間偏差需在2 min之內的設計要求。
5.4 樣本測試
樣本采用乙型肝炎病毒核心抗體國家參考品(中國藥品生物制品檢定所),總共三批次,每批次包含:陽性參考品5份(P1~P5),陰性參考品5份(N1~N5);靈敏度參考品三組(L1~L3),每一組由同一份血清按照1∶64、1∶128、1∶256、1∶512稀釋而成;精密性參考品1份。表中IU是國際單位。測試項目包括以下幾項:
(1) 最低檢出量(稀釋度)
測定方法:
按乙型肝炎病毒核心抗體國家參考品說明書檢測L1:1∶64/1∶128/1∶256;L2:1∶64/1∶128/1∶256;L3:1∶128/1∶256/1∶512。檢測結果陽性的稀釋度為最低檢出量(參考品濃度測定值>0.9 IU/mL),其測定結果如表 2所示。
 表2
                靈敏度參考品檢測值
		 	
		 			 				Table2.
    			Tested value of the sensitivity reference standard
			
						表2
                靈敏度參考品檢測值
		 	
		 			 				Table2.
    			Tested value of the sensitivity reference standard
       		
       				以上測試結果顯示,靈敏度參考品的最低檢出量為1∶256(L1)、1∶256(L2)、1∶512(L3)。
(2) 陽性參考品檢測
測定方法:按乙型肝炎病毒核心抗體國家參考品說明書檢測5份陽性參考品(P1-P5),檢出陽性符合率(測定值≥0.9 IU/mL)。其測定結果如表 3所示。
 表3
                陽性參考品檢測值
		 	
		 			 				Table3.
    			Tested value of the positive reference standard
			
						表3
                陽性參考品檢測值
		 	
		 			 				Table3.
    			Tested value of the positive reference standard
       		
       				以上測試結果顯示,陽性參考品檢測結果沒有出現假陰性。
(3) 陰性參考品檢測
測定方法:按乙型肝炎病毒核心抗體國家參考品說明書檢測5份陰性參考品(N1-N5),檢出陰性的符合率(測定值<0.9 IU/mL)。檢測結果如表 4所示。
 表4
                陰性參考品檢測值
		 	
		 			 				Table4.
    			Tested value of the negative reference standard
			
						表4
                陰性參考品檢測值
		 	
		 			 				Table4.
    			Tested value of the negative reference standard
       		
       				以上測試結果顯示,陰性參考品檢測結果沒有出現假陽性。
(4) 精密性檢測
在同一反應板上平行測定10孔,三批試劑的CV%分別為3.06%、2.94%、2.59%。批間的CV%為2.86%。
本設備與美國PerkinElmer公司的Victor D1420系列多標記微孔板檢測儀在樣本測試中的對比數據如表 5所示(樣本稀釋濃度比為1∶64),結果顯示分析相符程度較好。
 表5
                檢測樣本濃度對比
		 	
		 			 				Table5.
    			Concentration contrast of tested samples
			
						表5
                檢測樣本濃度對比
		 	
		 			 				Table5.
    			Concentration contrast of tested samples
       		
       				6 結論
本文所設計的全自動熒光分析儀系統具有良好的人機交互體驗,能夠協調各個功能模塊完成整體的檢驗項目,經過系統的性能測試,驗證了所開發的設備能夠滿足其移液精度和溫度控制要求,整體運行穩定。
該全自動熒光分析儀的研發對打破國外在免疫檢驗醫療設備領域的技術壟斷具有較大地現實意義,將在一定程度上推動我國免疫檢測行業的發展。
引言
隨著計算機科學技術的飛速發展,醫療檢驗儀器的類型不斷更新、 功能不斷完善、準確度和檢測速度也在不斷提高。臨床上,通過對患者血液、尿液所含物質的檢驗,并結合患者臨床表現,可幫助醫生對疾病進行綜合分析,從而獲得疾病診斷結果。全自動熒光分析儀就是一種用于臨床免疫項目檢驗的設備,通過它可實現醫學免疫檢測過程中的取試劑、加樣、混勻、恒溫反應、洗板、檢測、結果計算和顯示,以及廢液處理等免疫檢驗步驟的全自動化運行。該設備的使用可克服傳統手工檢測方法速度慢、精度低等缺點,不僅可提高檢驗效率,也減少了由于人為操作引起的主觀誤差,穩定了檢驗質量,越來越受到各級醫院和科研院所的青睞[1]。
本文介紹的全自動熒光分析儀是一臺集光、機、電于一體的免疫分析檢驗設備。它在工作時可以同時進行若干個檢驗項目。對于醫學免疫檢驗項目,按照檢驗過程的不同功能可將整個檢驗劃分為加樣模塊、搬運模塊、溫育振蕩模塊、洗板模塊和檢測模塊。利用這些功能模塊可實現免疫檢驗步驟的各項工作。本文正是基于檢驗過程本身的特點,通過對全自動熒光分析儀的各功能子模塊的軟硬件進行設計和分析,給出其整體設備的硬件結構、軟件框架、通信方案的設計和實現,最終實現整臺設備的集成和自動化。
1 儀器工作流程
全自動熒光分析儀的工作流程如圖 1所示。其中,機械臂負責檢測板的加/去蓋和搬運操作,加樣臂負責樣本和檢測試劑的分配操作,溫育振蕩器負責樣本溫育和振蕩混勻操作,洗板機負責檢測板的清洗操作,檢測儀負責熒光檢測和結果輸出。熒光檢測是基于熒光分析法的工作原理。
 圖1
				全自動熒光分析儀工作過程
			
												
				Figure1.
				Working process of full-automatic fluorescence analyzer
						
				圖1
				全自動熒光分析儀工作過程
			
												
				Figure1.
				Working process of full-automatic fluorescence analyzer
			
								2 硬件系統設計
根據免疫檢測的醫學特征、檢驗過程以及電氣控制系統應具有的性能特點,尤其對穩定性、安全性和精確性的要求,本文設計的全自動熒光分析儀采用FPGA/DSP運動控制+PC+STM32微處理單元一體化的硬件控制方案,其硬件組件主要包括加樣臂、機械臂、洗板機、檢測儀和STM32微處理模塊等,其實際結構簡圖如圖 2所示,系統的整體電氣連接圖如圖 3所示。
 圖2
				全自動熒光分析儀實際結構簡圖
			
												
				Figure2.
				Simplified structure diagram of automatic fluorescent analyzer
						
				圖2
				全自動熒光分析儀實際結構簡圖
			
												
				Figure2.
				Simplified structure diagram of automatic fluorescent analyzer
			
								 圖3
				系統整體電氣連接圖
			
												
				Figure3.
				Overall system electrical connection diagram
						
				圖3
				系統整體電氣連接圖
			
												
				Figure3.
				Overall system electrical connection diagram
			
								加樣臂用于實現免疫檢驗過程中樣本、試劑的注、吸等功能。其主要控制部件包括X、Y、Z三軸電機、移液電機和原點檢測模塊。X、Y、Z三軸電機分別控制加樣臂在X、Y、Z三個方向上的運動,移液電機控制吸、排液操作。基于精度的要求,通過運動控制卡和編碼器控制X、Y、Z三軸電機和移液電機實現精確控制。其硬件原理框圖如圖 4所示。
 圖4
				加樣臂硬件原理框圖
			
												
				Figure4.
				Block diagram of loading arm working principle
						
				圖4
				加樣臂硬件原理框圖
			
												
				Figure4.
				Block diagram of loading arm working principle
			
								機械臂用于實現試劑管的加/去蓋和試劑板等的搬運功能,其主要部件包括X′、Y′、Z′三軸電機、抓手電機和原點檢測模塊。X′、Y′、Z′三軸電機分別控制機械臂在X′、Y′、Z′三個方向上的運動,抓手電機控制機械臂上的抓手伸縮度。其硬件結構框架與運動控制方案與加樣臂基本一致,不再贅述。
STM32微處理單元采用STM32F103ZET微處理器來完成對泵、閥開關動作,溫度、液位以及TIP頭檢測等傳感器信號的采集以及溫育振蕩器模塊的控制。其中,TIP頭檢測信號通過紅外傳感采集;醫學指標要求液位檢測精度的偏差范圍不能超出20 μL,故液位信號采用基于探針式電容傳感器的動態液位探測法獲取[2]。另外,由于溫度的控制是影響溫育試驗的關鍵因素,因此采用PWM+模糊PID算法實現對溫度的控制[3]。STM32微處理單元的硬件原理框圖如圖 5所示。
 圖5
				STM32微處理單元硬件原理框圖
			
												
				Figure5.
				Hardware block diagram of STM32 micro processing unit
						
				圖5
				STM32微處理單元硬件原理框圖
			
												
				Figure5.
				Hardware block diagram of STM32 micro processing unit
			
								洗板機和檢測儀是可獨立運行的子設備,其主要功能是進行洗板和試劑檢測,可通過串口實現與PC機的通訊。它們已由合作公司獨立進行開發設計,其硬件設計在此不贅述。
3 軟件系統設計
全自動熒光分析儀系統的軟件設計,一要保證用戶與上位機能夠進行友好的人機交互;二要保證程序的運行穩定性和對多個流程(包括多軸并行運動控制、IO板通訊控制、界面刷新等)的實時控制。本文設計的全自動熒光分析儀應用軟件系統在Microsoft Visual Studio 2008開發平臺上開發完成,Windows XP操作系統下運行。軟件主要包含了人機交互界面、運動控制模塊、數據庫操作管理等。由于要控制的執行機構和動作眾多,工作時序復雜且要求嚴格,如何采用多線程機制保證多個流程控制的實時響應性能是系統設計的關鍵所在。因此,考慮采用功能強大、兼容性好、效率高的面向對象程序設計語言C#來對其進行軟件開發[4]。
3.1 多線程處理機制
適當使用多線程能顯著提高系統的性能。全自動熒光分析儀在執行相應的項目步驟時,需要請求大量數據,通過把數據輸出工作交給異步線程,主線程能更穩定、高效地執行其余任務。
由于執行項目步驟方式的差異性,本文建立了主線程(窗體UI線程)和兩個工作線程。工作線程包括:①ThreadProc1線程,主要完成加樣臂和機械臂的執行任務;②ThreadProc2線程,主要完成如IO控制板、洗板機、檢測儀等的命令類任務。主線程在啟動系統上位機軟件時就被建立,一直到關閉上位機軟件,才將主線程關閉,并釋放資源。工作線程均是在點擊“運行”按鈕后才被建立,實驗任務完成后,線程關閉,并釋放相關資源。
通過采用多線程機制合理分配程序的執行任務,系統的總體性能要明顯優于單線程程序[5]。
3.2 人機交互界面
為了達到較好的用戶體驗效果,得益于C#豐富的開發控件和優秀的開發交互性,本文設計的全自動熒光分析儀應用軟件系統的主界面如圖 6所示。該主界面按照主體功能主要分為操作區、實驗區、模塊區、查看區、用戶區等主體功能菜單選項區,各主體功能選項區又包含眾多子選項區。系統運行時可以通過甘特圖(Gantt chart)實時顯示各個檢驗項目的進度以及樣本的基本信息。
 圖6
				主界面
			
												
				Figure6.
				Main interface
						
				圖6
				主界面
			
												
				Figure6.
				Main interface
			
								對于甘特圖實時顯示界面,原始的設計思路是從數據庫獲取數據,并將刷新機制存放于C#程序的timer定時器中,這種設計方案存在以下缺點:①與數據庫頻繁交互,時間和資源消耗均較大;②由于timer定時器的資源有限,當實驗組中項目數和項目步驟數增多時,顯示界面無法進行有效刷新,出現閃屏現象。
為解決以上問題,本文采取了新的設計方案,通過定義全局靜態變量,將顯示數據動態保存在內存中,并將刷新機制放在線程timer定時器中,既減少了與數據庫的交互時間又充分利用系統資源。
3.3 運動控制程序實現
運動控制程序主要是采用固高科技公司的GTS系列運動控制卡(基于FPGA/DSP)對加樣臂和機械臂進行軟件開發。在Windows XP系統下,將運動控制卡與C#編程相對應的動態鏈接庫gts.dll文件和gts.cs文件拷貝到對應工程目錄下,然后將gts.cs文件包含在該工程項目中,通過調用文件中集成的驅動函數并利用C#基于對話框方式編寫運動控制卡控制程序實現運動控制。
相比于常用的基于PLC[6]、基于PC-based[7]和基于總線[8]的多軸控制系統,采用GTS運動控制卡進行運動控制具有以下優點:①采用PCI總線接口,可實現高速數據傳輸,為精確控制提供了前提保證。②其核心由DSP和FPGA組成,可以實現高性能的控制計算。③可編寫運動程序(下載到運動控制器上執行的程序)實現脫機工作,從而將主機從繁瑣的運動邏輯管理中解放出來。④I/O資源豐富。
由于運動控制卡對加樣臂和機械臂上的步進電機進行的控制均是開環控制,即上位機通過運動控制卡發送運動命令,步進電機接收到運動命令后執行相應的動作(即轉動),動作完成即表示整個響應過程結束,程序的實時性無法保證。為了保證程序的實時性,本文在進行這部分程序設計時采用系統預判的控制策略,即上位機發出運動命令后(實際是一定的脈沖數),程序根據先驗公式自行計算命令所需完成時限,以此預估下位機完成動作命令的時間,并以此作為下一指令開始的依據。
先驗公式如下所示:
| $ T = KP + \Delta T $ | 
其中,T為命令預期完成時間,K為比例系數,P為命令脈沖數,ΔT為緩沖時間。該公式是通過測試相應步進電機在一定脈沖數下的步進量,再做數學統計獲得,具體過程不贅述。
另外,由于機械臂和加樣臂均在同一有限的區域內運動,極可能因運動命令不恰當發生相互碰撞或與其他硬件碰撞以致設備損壞。為此,本文采用一種運動保護和運動互鎖機制。
運動保護的主要實現思想是:考慮到機械結構的限制,每當加樣臂(或機械臂)從一個位置(x,y,z)運動到另一位置(x′,y′,z′)時,首先將Z軸電機運動到預設的安全高度,然后X、Y軸電機運動,待其運動到位后,方可Z軸電機運動,這樣確保機械運動的安全性。
運動互鎖的主要實現思想是:考慮到加樣臂和機械臂實際可運動范圍比較有限,故限定在任意時刻,加樣臂和機械臂最多只能有一個處于運動狀態,其余的將保持在各自的原點位置。具體通過在程序設計時預置一個互鎖信號量和兩個優先級參量實現,其中,優先級參量的數值根據具體醫學檢驗步驟給出。若加樣臂和機械臂同時申請運動權限,此時信號量處于解鎖狀態,則系統根據其優先級參量的大小決定誰具有運動權限;若加樣臂和機械臂中的某一個處于運動狀態,則鎖定信號量,此時若另一個申請運動權限(無論其優先級多高)將被系統拒絕,只能保持等待狀態直至運動權限釋放。
3.4 數據庫模塊設計
全自動熒光分析儀控制系統處理的數據比較多,合理地設計數據表對于修改和維護數據庫、修改數據、檢索數據、開發程序,使數據在數據表之間順利進行傳遞等方面十分重要。該系統數據庫主要由三部分數據組成:①保存用戶界面輸入的數據;②運行過程中產生的數據;③下位機上傳的數據。
針對項目信息管理模塊涉及的數據表包括:項目步驟表,實驗項目表,實驗項目組表,其實體E-R圖如圖 7所示。
 圖7
				項目信息管理模塊實體E-R圖
			
												
				Figure7.
				Entity E-R diagram of project information management module
						
				圖7
				項目信息管理模塊實體E-R圖
			
												
				Figure7.
				Entity E-R diagram of project information management module
			
								對于數據庫的操作部分(增、刪、改、查),主要采用C#中的ADO.NET數據庫訪問技術實現[9]。通常情況下,數據源是數據庫,但它同樣也能夠是文本文件、Excel表格或者XML文件。ADO.NET類庫主要包含:Connection類,Command對象,DataReader類,Dataset對象,DataAdapter類。通過實例化這些類可以很方便地進行數據庫基本操作,從而縮短系統開發周期。
4 雙機制通信方案設計及實現
系統的通信設計主要是指PC機與下位機(洗板機、檢測儀、IO控制板)之間的通信,通過多串口卡來實現,采用半雙工通訊方式。大部分的通信由PC機啟動,下位機在接收到數據后確認是否被“點名”。若被“點名”,則根據接收數據的結果返回確認信息(ACK/NAK或者DATA);上位機對NAK確認信息或者超時尚未返回信息進行優先處理(重傳第二次),若三次未成功則產生報警并記錄。PC機向下位機發送數據的具體通信流程如圖 8所示。PC機接收下位機返回數據時采用兩種接收機制。對于STM32微處理單元的返回信息,由于其實時性要求較高(如液位信息、溫度信息等),系統采用基于事件觸發的機制,即一有反饋信息立刻處理;對于洗板機和檢測儀的返回信息(如洗板任務完成、檢測報告等),由于實時性要求不高,采用輪詢機制,即系統按一定的周期循環讀取串口緩沖區的數據。接收數據的具體通信流程圖如圖 9所示。
 圖8
				發送數據具體通信流程圖
			
												
				Figure8.
				Communication flow char of data sending
						
				圖8
				發送數據具體通信流程圖
			
												
				Figure8.
				Communication flow char of data sending
			
								 圖9
				接收數據具體通信流程圖
			
												
				Figure9.
				Communication flow char of data receiving
						
				圖9
				接收數據具體通信流程圖
			
												
				Figure9.
				Communication flow char of data receiving
			
								5 全自動熒光分析儀性能測試
設備研發之前的預期技術指標包括樣本最大容量、可測項目數、加樣范圍、移液量準確度、溫度控制精度、振蕩時間與誤差等。為了測試系統性能是否達到了預期的性能指標要求,本文主要針對設備的移液精度、溫育振蕩器的溫度控制和振蕩時間進行了整機的系統聯調測試,并采用測試樣本進行性能測試。
5.1 軟件系統主要功能界面
 圖10
				定位校準界面
			
												
				Figure10.
				Calibration interface
						
				圖10
				定位校準界面
			
												
				Figure10.
				Calibration interface
			
								 圖11
				項目編輯界面
			
												
				Figure11.
				Project edit interface
						
				圖11
				項目編輯界面
			
												
				Figure11.
				Project edit interface
			
								 圖12
				項目步驟參數設置界面
			
												
				Figure12.
				Project step parameters setting interface
						
				圖12
				項目步驟參數設置界面
			
												
				Figure12.
				Project step parameters setting interface
			
								5.2 移液量精確度測試
醫學指標在精度上有嚴格的要求,當移液量超過100 μL時,要求偏差系數CV[10]值滿足|CV|≤3%。利用加樣臂分別進行了體積為100、200、300 μL的樣品量的加樣操作各10次,并利用微量注射器(精度為1 μL)測量其移液后的實際值。統計每個批次的平均值
| $ \overline v = \frac{{\sum\limits_{i = 1}^{10} {{v_i}} }}{{10}} $ | 
| $ s = \sqrt {\frac{{\sum\limits_{i = 1}^{10} {{{\left( {{v_i} - \overline v } \right)}^2}} }}{9}} $ | 
| $ CV = \frac{s}{{\overline v }} \times 100\% $ | 
其中vi為每次理論液量。
由表 1的實驗數據統計可以看出,進行注液測試時:加樣量為100、200、300 μL時的偏差系數分別為2.97%、2.22%、1.92%。以上數據基本滿足醫學指標CV值不超過3%的預期要求。
 表1
                實驗數據統計表
		 	
		 			 				Table1.
    			Statistics of experimental data
			
						表1
                實驗數據統計表
		 	
		 			 				Table1.
    			Statistics of experimental data
       		
       				5.3 溫育溫度和振蕩時間測試
生化實驗對溫度的工藝要求為36~38 ℃,本文采用PWM+模糊PID進行溫度控制,為了測試溫育的性能,本文采用該孵育模塊由室溫(25 ℃)加熱至36 ℃并保持恒溫1 h,然后直接讀取在人機界面的實時顯示數據。
實際測試結果顯示,由室溫加熱到36 ℃,耗時不到1 min,而臨床試驗中溫育振蕩這一工序則需要0.5 h到1 h不等,因此在時間上達到指標。整個加熱過程中溫度誤差在2 ℃之內,符合設計要求。
振蕩時間通過STM32進行定時控制,可實現任選振蕩時間,完全能達到時間偏差需在2 min之內的設計要求。
5.4 樣本測試
樣本采用乙型肝炎病毒核心抗體國家參考品(中國藥品生物制品檢定所),總共三批次,每批次包含:陽性參考品5份(P1~P5),陰性參考品5份(N1~N5);靈敏度參考品三組(L1~L3),每一組由同一份血清按照1∶64、1∶128、1∶256、1∶512稀釋而成;精密性參考品1份。表中IU是國際單位。測試項目包括以下幾項:
(1) 最低檢出量(稀釋度)
測定方法:
按乙型肝炎病毒核心抗體國家參考品說明書檢測L1:1∶64/1∶128/1∶256;L2:1∶64/1∶128/1∶256;L3:1∶128/1∶256/1∶512。檢測結果陽性的稀釋度為最低檢出量(參考品濃度測定值>0.9 IU/mL),其測定結果如表 2所示。
 表2
                靈敏度參考品檢測值
		 	
		 			 				Table2.
    			Tested value of the sensitivity reference standard
			
						表2
                靈敏度參考品檢測值
		 	
		 			 				Table2.
    			Tested value of the sensitivity reference standard
       		
       				以上測試結果顯示,靈敏度參考品的最低檢出量為1∶256(L1)、1∶256(L2)、1∶512(L3)。
(2) 陽性參考品檢測
測定方法:按乙型肝炎病毒核心抗體國家參考品說明書檢測5份陽性參考品(P1-P5),檢出陽性符合率(測定值≥0.9 IU/mL)。其測定結果如表 3所示。
 表3
                陽性參考品檢測值
		 	
		 			 				Table3.
    			Tested value of the positive reference standard
			
						表3
                陽性參考品檢測值
		 	
		 			 				Table3.
    			Tested value of the positive reference standard
       		
       				以上測試結果顯示,陽性參考品檢測結果沒有出現假陰性。
(3) 陰性參考品檢測
測定方法:按乙型肝炎病毒核心抗體國家參考品說明書檢測5份陰性參考品(N1-N5),檢出陰性的符合率(測定值<0.9 IU/mL)。檢測結果如表 4所示。
 表4
                陰性參考品檢測值
		 	
		 			 				Table4.
    			Tested value of the negative reference standard
			
						表4
                陰性參考品檢測值
		 	
		 			 				Table4.
    			Tested value of the negative reference standard
       		
       				以上測試結果顯示,陰性參考品檢測結果沒有出現假陽性。
(4) 精密性檢測
在同一反應板上平行測定10孔,三批試劑的CV%分別為3.06%、2.94%、2.59%。批間的CV%為2.86%。
本設備與美國PerkinElmer公司的Victor D1420系列多標記微孔板檢測儀在樣本測試中的對比數據如表 5所示(樣本稀釋濃度比為1∶64),結果顯示分析相符程度較好。
 表5
                檢測樣本濃度對比
		 	
		 			 				Table5.
    			Concentration contrast of tested samples
			
						表5
                檢測樣本濃度對比
		 	
		 			 				Table5.
    			Concentration contrast of tested samples
       		
       				6 結論
本文所設計的全自動熒光分析儀系統具有良好的人機交互體驗,能夠協調各個功能模塊完成整體的檢驗項目,經過系統的性能測試,驗證了所開發的設備能夠滿足其移液精度和溫度控制要求,整體運行穩定。
該全自動熒光分析儀的研發對打破國外在免疫檢驗醫療設備領域的技術壟斷具有較大地現實意義,將在一定程度上推動我國免疫檢測行業的發展。
 
        

 
                 
				 
																   	
                                                                    
                                                                    
																	 
																   	
                                                                    
                                                                    
																	 
																   	
                                                                    
                                                                    
																	 
																   	
                                                                    
                                                                    
																	 
																   	
                                                                    
                                                                    
																	 
																   	
                                                                    
                                                                    
																	 
																   	
                                                                    
                                                                    
																	 
																   	
                                                                    
                                                                    
																	 
																   	
                                                                    
                                                                    
																	 
																   	
                                                                    
                                                                    
																	 
																   	
                                                                    
                                                                    
																	 
																   	
                                                                    
                                                                    
																	