<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 醫(yī)療電子 > 設(shè)計(jì)應(yīng)用 > PLC控制在中藥智能配藥系統(tǒng)中的應(yīng)用

          PLC控制在中藥智能配藥系統(tǒng)中的應(yīng)用

          作者: 時(shí)間:2012-04-20 來源:網(wǎng)絡(luò) 收藏

          1.2 工作步驟

          中有各種電機(jī)?限位?定位用傳感器以及與真空氣泵連接的電磁閥,可以完成取空藥袋?打開空藥袋及封裝?輸送藥袋等功能,其工作時(shí)序見圖5。

          1.3 程序?qū)崿F(xiàn)

          利用OMRON的編程軟件CX-Programmer完成梯形圖的編寫,程序包括如下六個(gè)模塊:

          (1)初始化模塊,其功能是將的內(nèi)存單元初始化,進(jìn)行電氣部分的歸零操作,目的是為配藥進(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ù)庫與伺服電機(jī)結(jié)構(gòu)中已定義的方式分別轉(zhuǎn)變?yōu)橄滤幹绷麟姍C(jī)位置和轉(zhuǎn)動(dòng)圈數(shù),并發(fā)送到集成電路板,完成下藥操作;

          (4)反饋模塊,其功能是接收來自集成電路板的直流電機(jī)轉(zhuǎn)動(dòng)停止(即規(guī)定重量下藥動(dòng)作完成)的反饋信號(hào);

          (5)控制模塊,其功能是在確定下藥過程完成后,驅(qū)動(dòng)機(jī)械手完成取空藥袋?打開空藥袋?定位及集藥等任務(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)系,使得在一次多貼藥配藥過程中,下一貼藥的下藥?取空藥袋動(dòng)作與上一貼藥的封口?傳輸動(dòng)作并行進(jìn)行,縮短了配藥時(shí)間?

          2 上位機(jī)軟件控制系統(tǒng)

          上位機(jī)軟件控制系統(tǒng)包括藥品信息數(shù)據(jù)庫和人機(jī)對(duì)話界面,前者主要存儲(chǔ)醫(yī)院的藥品信息,包括名稱?數(shù)量??jī)r(jià)格?藥性?有效期等;后者則與數(shù)據(jù)庫建立連接,可以實(shí)現(xiàn)查詢?開處方?藥品管理?處方管理?打?。恳壕э@示等功能?其流程圖如圖6所示。

          2.1 工控組態(tài)軟件FIX32

          FIX32是美國(guó) Intellution公司開發(fā)的基于視窗的大型應(yīng)用軟件,包含動(dòng)態(tài)顯示?報(bào)警?趨勢(shì)?控制策略?控制網(wǎng)絡(luò)通信等組件?在本系統(tǒng)中,應(yīng)用FIX32編寫了主界面和系統(tǒng)運(yùn)行的動(dòng)態(tài)模擬顯示程序?

          (1)主界面是上位機(jī)與下位機(jī)之間的連接橋梁,其功能是與VB編寫的界面建立聯(lián)系,激活配藥控制界面和藥品管理界面?

          (2)系統(tǒng)運(yùn)行動(dòng)態(tài)模擬顯示的實(shí)現(xiàn)方式是首先在FIX32的DRAW模式下畫出整個(gè)配藥系統(tǒng)的模擬圖,包括靜止物體及各種動(dòng)作顯示,設(shè)定限位與故障反饋警報(bào);然后在FIX32中對(duì)I/O點(diǎn)進(jìn)行組態(tài),并在數(shù)據(jù)庫中建立各藥罐?各動(dòng)作I/O類型及其在下位機(jī)中的地址?這樣,當(dāng)PLC中的程序開始運(yùn)行時(shí),相應(yīng)地址中的模擬量或開關(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)模擬畫面中實(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ù)庫取得聯(lián)系,將需要的藥品名?數(shù)量?貼數(shù)等通過FIX32傳入下位機(jī)中,完成取藥操作?其中,在數(shù)據(jù)庫中的藥品名采用拼音查詢,數(shù)量與貼數(shù)則可多次修改?同時(shí),VB還要向液晶屏輸出患者及處方信息,并完成處方打?。?p>在取藥模塊中進(jìn)行了取藥任務(wù)優(yōu)化處理算法的設(shè)計(jì),其目的是在醫(yī)生開藥順序任意的情況下完成最短時(shí)間的配藥過程?由于機(jī)械手在X?Y軸伺服電機(jī)的控制下的勻速行走速度為1m/s,因此時(shí)間最短即為行走路線最短,這個(gè)問題等價(jià)于典型的旅行商(TSP)問題?在本系統(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)過簡(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ù)庫中貨存藥品的所有信息?

          對(duì)散裝中藥實(shí)現(xiàn)定量配置的中藥智能配藥系統(tǒng)在控制方法上有多種創(chuàng)新,具有良好的人機(jī)界面,能在足夠短的時(shí)間內(nèi)對(duì)指定藥方完成配藥?該系統(tǒng)通過了上海市科委主持的專家鑒定,達(dá)到國(guó)內(nèi)領(lǐng)先?國(guó)際先進(jìn)的水平,在運(yùn)行中情況良好,可靠性和安全性都得到了驗(yàn)證?

          更多醫(yī)療電子信息請(qǐng)關(guān)注:21ic醫(yī)療電子

          伺服電機(jī)相關(guān)文章:伺服電機(jī)工作原理


          電容式接近開關(guān)相關(guān)文章:電容式接近開關(guān)原理

          上一頁 1 2 下一頁

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();