PLC控制在中藥智能配藥系統(tǒng)中的應(yīng)用
中藥智能配藥系統(tǒng)工作的過(guò)程是:首先通過(guò)醫(yī)院內(nèi)部局域網(wǎng)將在終端電腦上開(kāi)出的處方傳至藥房配藥主控計(jì)算機(jī),然后由主控計(jì)算機(jī)在查詢藥品數(shù)據(jù)庫(kù)的基礎(chǔ)上形成配藥指令并下達(dá)給配藥機(jī)器,完成配藥過(guò)程?同時(shí),主控計(jì)算機(jī)在配藥機(jī)器終端的液晶顯示屏上顯示患者信息,并驅(qū)動(dòng)打印機(jī)輸出處方的綜合信息,將處方綜合信息連同配藥機(jī)器輸出的配好的分帖包裝中藥一起交付患者使用?
中藥智能配藥系統(tǒng)的控制系統(tǒng)可分為機(jī)電控制系統(tǒng)和上位機(jī)軟件控制系統(tǒng),其結(jié)構(gòu)框圖如圖1所示。
1 機(jī)電控制系統(tǒng)
機(jī)電控制系統(tǒng)為分層分布式結(jié)構(gòu),采用上位機(jī)+下位機(jī)+集成電路板的技術(shù)進(jìn)行綜合控制?其電路系統(tǒng)結(jié)構(gòu)框圖如圖2所示?具體介紹如下:
(1)上位機(jī)使用PC機(jī),負(fù)責(zé)管理級(jí)和監(jiān)控調(diào)度級(jí)的控制?上位機(jī)不采用工控機(jī)的原因是因系統(tǒng)對(duì)于界面?數(shù)據(jù)庫(kù)處理及網(wǎng)絡(luò)聯(lián)系等均有較高的要求?上位機(jī)的主要功能是將人機(jī)界面輸入的二進(jìn)制編碼信息通過(guò)RS-232串口傳送給下位機(jī),并對(duì)下位機(jī)的工作狀況進(jìn)行實(shí)時(shí)監(jiān)控,完成藥方打印和液晶顯示?另外,它與藥品管理信息系統(tǒng)之間的信息交互,是通過(guò)醫(yī)院內(nèi)部的局域網(wǎng)來(lái)進(jìn)行并采用TCP/IP協(xié)議實(shí)現(xiàn)的。
(2)下位機(jī)負(fù)責(zé)設(shè)備級(jí)控制?其功能是接收并解碼上位機(jī)發(fā)送的二進(jìn)制配藥信息,然后根據(jù)配藥信息選定所需藥品,驅(qū)動(dòng)相應(yīng)集成電路板進(jìn)行下藥控制,并驅(qū)動(dòng)機(jī)械手進(jìn)行定位?取出藥品?包裝成袋,連同打印藥方一起交付患者?下位機(jī)之所以采用PLC而沒(méi)有選擇價(jià)格相對(duì)低廉的單片機(jī),原因之一是為了滿足中藥配藥機(jī)對(duì)高速運(yùn)作的要求,X軸導(dǎo)軌和Y軸導(dǎo)軌均采用伺服電機(jī)驅(qū)動(dòng),而單片機(jī)對(duì)伺服電機(jī)的控制能力相對(duì)較差,很難做到精確控制;原因之二是中藥智能配藥系統(tǒng)對(duì)可靠性的要求很高,而單片機(jī)的穩(wěn)定性與PLC相比要差一些,且容易受到外界電磁的干擾?
(3)下藥直流電動(dòng)機(jī)的控制采用以ALTERA公司的ACEX1KACEX1K芯片為核心的集成電路板來(lái)完成?在該芯片中集成了在Max+plus II開(kāi)發(fā)系統(tǒng)中用VHDL語(yǔ)言編寫(xiě)的控制?計(jì)數(shù)和定時(shí)功能?該電路板的功能是接收從PLC發(fā)來(lái)的命令和藥品質(zhì)量數(shù),控制電動(dòng)機(jī)的轉(zhuǎn)數(shù),在0.07g/轉(zhuǎn)的精度下完成規(guī)定重量的下藥?由于本系統(tǒng)使用了多達(dá)420個(gè)下藥直流電機(jī),因此采用可減少I/O點(diǎn)數(shù)及PLC布線的集成電路板?該系統(tǒng)的所有下藥電機(jī)由28塊集成電路板分別控制,每塊集成電路板控制的下藥部分相對(duì)獨(dú)立?這樣,檢查和維修不受位置限制,具有較高的可靠性和性價(jià)比。
1.1 PLC控制
1.1.1 PLC配置
本系統(tǒng)PLC配置采用OMRON公司的C200HEC200HE型PLC,并在其基礎(chǔ)上擴(kuò)展了一個(gè)16點(diǎn)繼電器型開(kāi)關(guān)量輸出模塊C200H-OC225?一個(gè)32點(diǎn)晶體管型開(kāi)關(guān)量輸出模塊C200H-OD215?兩個(gè)16點(diǎn)開(kāi)關(guān)量輸入模塊C200H-ID212和一個(gè)四軸位置控制模塊C200HE-NC413?各模塊的作用為:
(1)兩個(gè)輸入模塊用來(lái)接收配藥機(jī)器中各種接觸器的位置反饋或動(dòng)作的故障反饋,對(duì)其配置無(wú)特別要求;
(2)兩個(gè)輸出模塊發(fā)出指令,用來(lái)操作配藥機(jī)器?繼電器型開(kāi)關(guān)量輸出模塊驅(qū)動(dòng)電流大,但不能頻繁動(dòng)作,因此用來(lái)控制所有電磁閥和各種直流電機(jī)?步進(jìn)電機(jī);晶體管型開(kāi)關(guān)量輸出模塊則正好相反,且其輸出為T(mén)TL電平,具有可以與其它集成電路接口的優(yōu)點(diǎn),用來(lái)驅(qū)動(dòng)集成電路完成下藥操作?
(3)四軸位置控制模塊用來(lái)控制四軸(X?Y?Z?U)互相獨(dú)立的兩個(gè)伺服電機(jī)和三個(gè)步進(jìn)電機(jī)?在X?Y軸上分別配置了兩個(gè)伺服電機(jī),而三個(gè)步進(jìn)電機(jī)由于工作時(shí)間互相錯(cuò)開(kāi),全部配置在U軸上?另外,X?Y軸上各有左右限位開(kāi)關(guān)和原點(diǎn)接近開(kāi)關(guān)3個(gè),Z軸有原點(diǎn)接近開(kāi)關(guān)1個(gè),這樣,共7個(gè)接近開(kāi)關(guān)接到C200HENC413上?該模塊以不超過(guò)10ms的響應(yīng)時(shí)間從PLC內(nèi)存取得命令,在500kp/s的高頻脈沖下與PLC內(nèi)存數(shù)據(jù)建立映射關(guān)系,完成通過(guò)修改內(nèi)存數(shù)據(jù)定位伺服電機(jī)和步進(jìn)電機(jī)的位置以及通過(guò)內(nèi)存數(shù)據(jù)反饋伺服電機(jī)和步進(jìn)電機(jī)的位置情況的功能?
1.1.2 伺服電機(jī)控制電路
在本系統(tǒng)中,配置了兩個(gè)OMRON公司的SMARTSTEP A伺服系統(tǒng),對(duì)X?Y軸完成定位操作,具體控制電路如圖3所示?其中包括四軸位置控制模塊C200HE-NC413?通用控制電纜R88A-CPU002S?伺服驅(qū)動(dòng)器R7D-AP04H?伺服電機(jī)R7M-A40030-BS1(為帶制動(dòng)器的帶鍵直軸圓柱形電機(jī))?圖中,CN1代表伺服驅(qū)動(dòng)器,CN2代表與伺服電機(jī)同軸的分辨率為2000脈沖/轉(zhuǎn)的光學(xué)增量型編碼器用連接器,它可以完成從驅(qū)動(dòng)器到伺服電機(jī)的具有位置反饋和速度反饋的閉環(huán)控制?在伺服電機(jī)中,M代表電機(jī)本身,E代表編碼器,B代表動(dòng)力制動(dòng)器?由于固定脈沖代表固定距離,因此當(dāng)伺服電機(jī)接收到控制系統(tǒng)發(fā)出的若干條脈沖指令后,就可以完成預(yù)定的定位?在本系統(tǒng)中,設(shè)置電機(jī)的分辨率為5000脈沖/轉(zhuǎn)(0.072度/步),伺服電機(jī)連接的同軸減速器比例為3:1,其帶動(dòng)導(dǎo)軌移動(dòng)的速率為60mm/轉(zhuǎn)?因此,伺服電機(jī)帶動(dòng)導(dǎo)軌移動(dòng)的速率為20mm/5000脈沖?伺服電機(jī)控制電路的控制原理為:位置控制單元從設(shè)備處得到各種控制信號(hào),并根據(jù)不同藥罐間的距離與20mm/5000脈沖的數(shù)據(jù)大致算出映射到四軸位置控制模塊NC413NC413在PLC中的脈沖數(shù)據(jù);然后通過(guò)通用控制電纜輸出高速脈沖給伺服驅(qū)動(dòng)器,由其驅(qū)動(dòng)伺服電機(jī),使之根據(jù)誤差反饋?zhàn)詣?dòng)微調(diào)該數(shù)據(jù),最終達(dá)到精確定位的目的。
1.1.3 步進(jìn)電機(jī)控制電路 步進(jìn)電機(jī)驅(qū)動(dòng)器與C200HE-NC413的連線類似于圖3中伺服電機(jī)驅(qū)動(dòng)器與C200HE-NC413的連線,而步進(jìn)電機(jī)驅(qū)動(dòng)器與步進(jìn)電機(jī)間的連線則如圖4所示?本系統(tǒng)中控制機(jī)械手?jǐn)[動(dòng)的步進(jìn)電機(jī)采用STONE公司的86BYG250B,驅(qū)動(dòng)器采用STONE公司的混合式步進(jìn)電機(jī)驅(qū)動(dòng)器SH20806CSH20806C;控制送袋與推袋的兩個(gè)步進(jìn)電機(jī)采用SANYO公司的103H548103H548,驅(qū)動(dòng)器采用STEP公司的四相混合式步進(jìn)電機(jī)細(xì)分驅(qū)動(dòng)器ST4HB03XST4HB03X?步進(jìn)電機(jī)的控制類型為不具有位置反饋功能的開(kāi)環(huán)控制,控制方法為在確定運(yùn)動(dòng)起點(diǎn)與終點(diǎn)的基礎(chǔ)上,將位移或角度改變以200脈沖/轉(zhuǎn)(0.18度/步)為分辨率轉(zhuǎn)變?yōu)槊}沖數(shù),寫(xiě)入映射在NC413NC413中的內(nèi)存位置,從而控制步進(jìn)電機(jī)完成定位。
1.2 系統(tǒng)工作步驟
系統(tǒng)中有各種電機(jī)?限位?定位用傳感器以及與真空氣泵連接的電磁閥,可以完成取空藥袋?打開(kāi)空藥袋及封裝?輸送藥袋等功能,其工作時(shí)序見(jiàn)圖5。
1.3 PLC程序?qū)崿F(xiàn)
利用OMRON的編程軟件CX-Programmer完成梯形圖的編寫(xiě),程序包括如下六個(gè)模塊:
(1)初始化模塊,其功能是將PLC的內(nèi)存單元初始化,進(jìn)行電氣部分的歸零操作,目的是為配藥系統(tǒng)進(jìn)行運(yùn)轉(zhuǎn)做好準(zhǔn)備,防止誤操作對(duì)系統(tǒng)造成不可挽回的破壞;
(2)接收模塊,其功能是接收上位機(jī)界面中輸入的二進(jìn)制編碼的信息(包括藥品種類?數(shù)量?貼數(shù)等),存入預(yù)先定義的內(nèi)存單元;
(3)發(fā)送模塊,其功能是將藥品種類?數(shù)量等按照數(shù)據(jù)庫(kù)與伺服電機(jī)結(jié)構(gòu)中已定義的方式分別轉(zhuǎn)變?yōu)橄滤幹绷麟姍C(jī)位置和轉(zhuǎn)動(dòng)圈數(shù),并發(fā)送到集成電路板,完成下藥操作;
(4)反饋模塊,其功能是接收來(lái)自集成電路板的直流電機(jī)轉(zhuǎn)動(dòng)停止(即規(guī)定重量下藥動(dòng)作完成)的反饋信號(hào);
(5)控制模塊,其功能是在確定下藥過(guò)程完成后,驅(qū)動(dòng)機(jī)械手完成取空藥袋?打開(kāi)空藥袋?定位及集藥等任務(wù),并驅(qū)動(dòng)藥袋封口裝置動(dòng)作,觸發(fā)直流電動(dòng)機(jī)帶動(dòng)皮帶轉(zhuǎn)動(dòng),送出藥品;(6)故障處理模塊,其功能是接收各處傳感器反饋的接近或故障信號(hào),隨時(shí)停止系統(tǒng)的配藥動(dòng)作,以進(jìn)行故障處理?
此外,在發(fā)送模塊和控制模塊中建立時(shí)間聯(lián)系,使得在一次多貼藥配藥過(guò)程中,下一貼藥的下藥?取空藥袋動(dòng)作與上一貼藥的封口?傳輸動(dòng)作并行進(jìn)行,縮短了配藥時(shí)間?
2 上位機(jī)軟件控制系統(tǒng)
上位機(jī)軟件控制系統(tǒng)包括藥品信息數(shù)據(jù)庫(kù)和人機(jī)對(duì)話界面,前者主要存儲(chǔ)醫(yī)院的藥品信息,包括名稱?數(shù)量??jī)r(jià)格?藥性?有效期等;后者則與數(shù)據(jù)庫(kù)建立連接,可以實(shí)現(xiàn)查詢?開(kāi)處方?藥品管理?處方管理?打印?液晶顯示等功能?其流程圖如圖6所示。
2.1 工控組態(tài)軟件FIX32
FIX32是美國(guó) Intellution公司開(kāi)發(fā)的基于視窗的大型應(yīng)用軟件,包含動(dòng)態(tài)顯示?報(bào)警?趨勢(shì)?控制策略?控制網(wǎng)絡(luò)通信等組件?在本系統(tǒng)中,應(yīng)用FIX32編寫(xiě)了主界面和系統(tǒng)運(yùn)行的動(dòng)態(tài)模擬顯示程序?
(1)主界面是上位機(jī)與下位機(jī)之間的連接橋梁,其功能是與VB編寫(xiě)的界面建立聯(lián)系,激活配藥控制界面和藥品管理界面?
(2)系統(tǒng)運(yùn)行動(dòng)態(tài)模擬顯示的實(shí)現(xiàn)方式是首先在FIX32的DRAW模式下畫(huà)出整個(gè)配藥系統(tǒng)的模擬圖,包括靜止物體及各種動(dòng)作顯示,設(shè)定限位與故障反饋警報(bào);然后在FIX32中對(duì)I/O點(diǎn)進(jìn)行組態(tài),并在數(shù)據(jù)庫(kù)中建立各藥罐?各動(dòng)作I/O類型及其在下位機(jī)PLC中的地址?這樣,當(dāng)PLC中的程序開(kāi)始運(yùn)行時(shí),相應(yīng)地址中的模擬量或開(kāi)關(guān)量便發(fā)生變化?這種變化可在配藥系統(tǒng)動(dòng)作的同時(shí)顯示到動(dòng)態(tài)模擬界面,使動(dòng)態(tài)模擬同步進(jìn)行?在配藥系統(tǒng)封閉運(yùn)行的情況下,其作用之一是可以從動(dòng)態(tài)模擬畫(huà)面中實(shí)時(shí)觀察到系統(tǒng)的運(yùn)作情況,之二是可在系統(tǒng)發(fā)生可反饋性故障時(shí)在第一時(shí)間得到提示,快速完成對(duì)故障的調(diào)整?
2.2 界面編輯軟件VB
該部分軟件包括取藥與加藥兩個(gè)模塊,均具有權(quán)限控制功能,用戶需輸入密碼,可保證系統(tǒng)的安全性?VB界面框架圖如圖7所示。
取藥模塊的主要任務(wù)是與ACCESS數(shù)據(jù)庫(kù)取得聯(lián)系,將需要的藥品名?數(shù)量?貼數(shù)等通過(guò)FIX32傳入下位機(jī)中,完成取藥操作?其中,在數(shù)據(jù)庫(kù)中的藥品名采用拼音查詢,數(shù)量與貼數(shù)則可多次修改?同時(shí),VB還要向液晶屏輸出患者及處方信息,并完成處方打?。?/p>
在取藥模塊中進(jìn)行了取藥任務(wù)優(yōu)化處理算法的設(shè)計(jì),其目的是在醫(yī)生開(kāi)藥順序任意的情況下完成最短時(shí)間的配藥過(guò)程?由于機(jī)械手在X?Y軸伺服電機(jī)的控制下的勻速行走速度為1m/s,因此時(shí)間最短即為行走路線最短,這個(gè)問(wèn)題等價(jià)于典型的旅行商(TSP)問(wèn)題?在本系統(tǒng)中,420個(gè)藥罐分為前后兩面各14行等距排列,每一面中又分左右兩側(cè)各7行,每行15個(gè)?此外,藥罐位置每單位Y軸坐標(biāo)與三個(gè)單位X軸坐標(biāo)相同,且機(jī)械手對(duì)前后兩面的取藥由步進(jìn)電機(jī)擺動(dòng)控制?經(jīng)過(guò)簡(jiǎn)單計(jì)算可以確定本系統(tǒng)中實(shí)際節(jié)點(diǎn)應(yīng)為66個(gè)?采用新的禁忌遺傳算法在VB中編程,該算法對(duì)多節(jié)點(diǎn)系統(tǒng)設(shè)置禁忌步長(zhǎng)和松弛步長(zhǎng)?引入張弛效應(yīng),與傳統(tǒng)遺傳算法相比,減小了可行解空間,提高了收斂速度?
加藥模塊為藥品管理員專用,主要任務(wù)是從界面中修改數(shù)據(jù)庫(kù)中貨存藥品的所有信息?
對(duì)散裝中藥實(shí)現(xiàn)定量配置的中藥智能配藥系統(tǒng)在控制方法上有多種創(chuàng)新,具有良好的人機(jī)界面,能在足夠短的時(shí)間內(nèi)對(duì)指定藥方完成配藥?該系統(tǒng)通過(guò)了上海市科委主持的專家鑒定,達(dá)到國(guó)內(nèi)領(lǐng)先?國(guó)際先進(jìn)的水平,在運(yùn)行中情況良好,可靠性和安全性都得到了驗(yàn)證?
更多醫(yī)療電子信息請(qǐng)關(guān)注:21ic醫(yī)療電子