前言:一篇好文章的誕生,需要你不斷地搜集資料、整理思路,本站小編為你收集了豐富的制藥機械行業(yè)現(xiàn)狀主題范文,僅供參考,歡迎閱讀并收藏。
關(guān)鍵詞:灌裝線;隨線檢測;SQLite;多線程;圖形設(shè)備接口
中圖分類號:TP302 文獻標(biāo)識碼:A 文章編號:1009-3044(2013)04-0903-05
Dynamic Weighting System of Drug Filling Line Based on .NET
LI Jing, HUANG Jie
(SiChuan University, Chengdu 610065, China)
Abstract: The quality inspection process of medicine filling line is mostly in manual visual inspection or sampling insection level at home.It can’t meet the requirements of the quality of drug from people.The system uses .NET platform and lightweight database SQLite to realize intelligent line detection.SQLite can handle lots of data fastly and frequently.Multi-threads process batch data.It can improve the real-time performance obviously.The graphics device interface GDI+ draws real time coordinate chart of results dynamicly.It’s conveniently for users to observe.
Key words: filling line; detection on line; SQLite; Multi thread; GDI+
1 概述
目前,我國生產(chǎn)制藥機械的企業(yè)已經(jīng)發(fā)展到800余家,全行業(yè)年工業(yè)生產(chǎn)總值超過100億元人民幣,產(chǎn)品除充分滿足國內(nèi)中西藥廠、動物藥廠及保健品廠需求外,還遠銷30多個國家和地區(qū)[1]。我國制藥裝備行業(yè)的生產(chǎn)企業(yè)數(shù)、產(chǎn)品品種規(guī)格、產(chǎn)量均已位居世界首位,成為名副其實的制藥裝備大國。但就我國制藥機械的整體水平來看,技術(shù)上還局限于仿制、改進及組合階段,與國際先進國家和地區(qū)相比差距還很大,沒有達到創(chuàng)新或超過世界同類產(chǎn)品的水平。
隨著我國GMP的日趨規(guī)范,人們對藥品質(zhì)量提出了更高的要求,推動制藥機械行業(yè)新裝備向可靠、準(zhǔn)確方向發(fā)展。然而,在藥品生產(chǎn)的質(zhì)量檢測校驗過程中,國內(nèi)大都停留在人工目檢或抽樣稱重的水平。在粉針生產(chǎn)過程中,每個目檢員每分鐘至少檢查120 瓶,而人工檢測受情緒等因素的影響,很難確保目檢的可靠性。而目檢的代價比較高,以八針安瓿聯(lián)動線生產(chǎn)為例,燈檢工段的人數(shù)約10人左右,其運行費用10年就達200萬,而且目檢的可靠性與現(xiàn)期提倡的FDA的cGMP要求不符。有的是采用抽檢方法,但該方法并不能準(zhǔn)確反映每個成品的實際情況。另外,對無菌制品來說,一旦人工抽檢取樣離開了 100 級層流區(qū)域,意味著抽檢物就要報費。所以挖掘隨線檢測的設(shè)備實現(xiàn)對藥品質(zhì)量的實時監(jiān)測,從源頭上保證藥品質(zhì)量的可靠性并降低生產(chǎn)成本,具有很大的潛在市場[2,3]。
2 系統(tǒng)介紹
藥品灌裝動態(tài)稱重系統(tǒng)如圖1所示。
藥品灌裝動態(tài)稱重系統(tǒng)主要由稱重傳感器、信號采集與處理系統(tǒng)、上位機處理系統(tǒng)(PC)、PLC、機械手、人機接口設(shè)備等部分組成。為了減小空瓶重量的差異帶來的誤差,在灌裝前先獲取空瓶的重量。最終的稱重結(jié)果是滿瓶的重量減去對應(yīng)空瓶的重量。藥瓶隨灌裝線按箭頭方向傳動,每4瓶一組。在PLC的控制下,機械手抓取藥瓶到相應(yīng)的稱重位置稱重,稱重結(jié)果通過485總線傳送到主機板,然后由主機板通過COM口傳送到上位機,經(jīng)過上位機的處理后顯示灌裝重量,灌裝量超標(biāo)時需要發(fā)出聲、光報警,并通知PLC控制機械手取走不合格的灌裝藥瓶。為了保證灌裝線的不間斷工作,提高灌裝線效率,系統(tǒng)安置了四塊分機板,分為兩組,交替工作。其中,一號和二號分機板用于稱量空瓶重量,三號和四號分機板用于稱量已灌裝藥瓶重量。一號和四號分機板為一組,二號和三號分機板為一組。
3 系統(tǒng)功能分析
系統(tǒng)軟件主要實現(xiàn)的功能如下:
1)與下位機主機板以及PLC的通訊;
2)良好的用戶交互界面;
3)數(shù)據(jù)庫的設(shè)計;
4)滿足用戶的需求。
系統(tǒng)軟件需要實現(xiàn)的功能主要是通過COM口與下位機通訊,將重量信息存儲到數(shù)據(jù)庫中,并實時顯示測量結(jié)果并提供相應(yīng)的查詢、統(tǒng)計、打印等功能。從用戶的角度來看,該系統(tǒng)需要實現(xiàn)的功能如圖2所示。
圖2 系統(tǒng)用例圖
該系統(tǒng)的特點是數(shù)據(jù)量不大,但實時性要求較高,必須保證長時間工作的情況下系統(tǒng)穩(wěn)定可靠,操作簡單。系統(tǒng)的主要功能應(yīng)包括:空瓶與滿瓶的稱重數(shù)據(jù)通過COM口傳輸?shù)缴衔粰C,上位機接收到數(shù)據(jù)后,根據(jù)數(shù)據(jù)包中的機位號和行號處理數(shù)據(jù)。如果是空瓶數(shù)據(jù),直接存儲到數(shù)據(jù)表中;如果是滿瓶數(shù)據(jù),則檢索出對應(yīng)的空瓶數(shù)據(jù),計算藥品凈重,并根據(jù)該藥品的罐裝標(biāo)準(zhǔn)判斷罐裝是否合格,判斷結(jié)果用“紅綠燈”的形式直觀顯示于人機界面,同時向PLC發(fā)送判斷結(jié)果,及時控制機械臂抓走不合格的藥瓶。另外,系統(tǒng)還要對用戶、配方進行管理,檢測上位機與下位機的通信情況,提供歷史數(shù)據(jù)記錄,對傳感器進行標(biāo)定等。
系統(tǒng)采用目前比較流行的輕型數(shù)據(jù)庫SQLite3,它小巧、快速、穩(wěn)定,支持SQL語句、跨平臺,支持數(shù)據(jù)庫大小至2TB,操作簡單[9]。系統(tǒng)以集成開發(fā)環(huán)境Visual Studio 2005中集成的Visual C#編程語言作為前臺開發(fā)工具,它提供了較方便的串口通信控件SerialPort,以及強大的生成報表工具Crystalreports[4]。
針對以上的要求,該系統(tǒng)采用模塊化的設(shè)計方法進行系統(tǒng)設(shè)計。將整個系統(tǒng)分為若干功能模塊,方便系統(tǒng)的開發(fā)和維護。系統(tǒng)軟件的主要功能結(jié)果如圖3所示。
圖3 系統(tǒng)功能圖
1)系統(tǒng)登錄模塊:為保證系統(tǒng)的安全性,設(shè)計了該模塊。
2)系統(tǒng)設(shè)置模塊:在系統(tǒng)開始工作前需要設(shè)置灌裝線上的當(dāng)前灌裝藥品,進而確定灌裝標(biāo)準(zhǔn);并需要設(shè)置與主機板、PLC通信的串口信息。
3)實時數(shù)據(jù)模塊:這是系統(tǒng)的主模塊,用于動態(tài)更新稱重信息。根據(jù)當(dāng)前灌裝藥品的灌裝標(biāo)準(zhǔn)判斷當(dāng)前藥品是否合格,并用指示燈顯示給用戶,同時采用圖形設(shè)備接口同步顯示稱重波形圖,方便用戶觀察,并動態(tài)更新合格率及生產(chǎn)量。
4)系統(tǒng)自檢模塊:實現(xiàn)分機板與上位機程序的握手應(yīng)答,確保分機板與主機板、上位機之間的硬件線路連接正常。
5)系統(tǒng)標(biāo)定模塊:稱重傳感器存在一定的蠕變,并受環(huán)境等因素的影響,需要在不定期的對傳感器進行標(biāo)定,以確保傳感器稱重系數(shù)的準(zhǔn)確性。
6)歷史查詢模塊:實現(xiàn)根據(jù)灌裝時間及藥品信息對歷史數(shù)據(jù)的查詢,并提供相應(yīng)的數(shù)據(jù)導(dǎo)出、打印等功能。
7)用戶管理模塊:為了保證系統(tǒng)的安全性,這里限定了某些用戶的配方管理權(quán)限和用戶管理權(quán)限。
8)配方管理模塊:方便用戶對配方的修改、刪除、添加、查找等。
4 系統(tǒng)通訊協(xié)議
系統(tǒng)與下位機主板及PLC之間需要傳送大量的數(shù)據(jù),所以這里簡單的定義了它們之間通訊協(xié)議。
1)稱重結(jié)果的數(shù)據(jù) 每個數(shù)據(jù)包含6個字節(jié),格式如表1所示。
起始位:FF——正常數(shù)據(jù),F(xiàn)E——延時數(shù)據(jù);
機位號:00~0F,對應(yīng)圖1中的16個稱重傳感器;
行號:00~FF,由于滿瓶與空瓶的稱重結(jié)果并非同時傳送到上位機,所以需要記錄對應(yīng)空瓶與滿瓶數(shù)據(jù)的個數(shù)。某個數(shù)據(jù)的丟失,將會造成整個將檢測系統(tǒng)后續(xù)檢測數(shù)據(jù)的錯位。為了避免這種情況的發(fā)生,該數(shù)據(jù)由下位機傳送給上位機系統(tǒng);
表 1 稱重結(jié)果數(shù)據(jù)格式
高位數(shù)據(jù):稱重結(jié)果的高8位數(shù)據(jù);
低位數(shù)據(jù):稱重結(jié)果的低8位數(shù)據(jù);
檢驗位:在工業(yè)現(xiàn)場,為了防止外界的干擾引起的傳輸錯誤,這里添加了檢驗位,提高數(shù)據(jù)的正確性。
由于數(shù)據(jù)量較大,這里采用多線程的方式處理數(shù)據(jù),提高系統(tǒng)的實時性。稱重數(shù)據(jù)的處理流程圖如圖4所示。
2)系統(tǒng)自檢協(xié)議 開始自檢時,系統(tǒng)循環(huán)向下位機一次發(fā)送BX(B0~BF),如果下位機接收到數(shù)據(jù)后在6ms以內(nèi)返回BX,則表示該位置的分機板與主板、上位機之間的通信正常,可以進行測量,否則提示用戶檢查硬件電路的連接是否正常。其流程圖如圖5所示。
3)系統(tǒng)標(biāo)定協(xié)議 開始標(biāo)定后,系統(tǒng)向主機板發(fā)送DX(D0~DF),主機板接收到數(shù)據(jù)后返回FFFF,然后發(fā)送該位置處的稱重結(jié)果,標(biāo)定結(jié)束時系統(tǒng)向主機板發(fā)送EX(E0~EF),主機板接收到該信息后返回FDFD,表示標(biāo)定結(jié)束。
5 SQLite數(shù)據(jù)庫在系統(tǒng)中的應(yīng)用
數(shù)據(jù)庫負責(zé)整個系統(tǒng)的數(shù)據(jù)存儲管理工作,是上位機系統(tǒng)的重要組成部分。SQLite是一種開源的嵌入式數(shù)據(jù)庫,使用方便,易于維護。該數(shù)據(jù)庫不需要安裝及管理配置,整個數(shù)據(jù)庫存儲在一個單一的文件中
,支持大多數(shù)編程語言及諸多主流操作系統(tǒng)。相比于流行的MSSQL、Oracle等大型商業(yè)數(shù)據(jù)庫,SQLite不需要獨立運行數(shù)據(jù)庫驅(qū)動程序,而采用程序驅(qū)動,即將Sqlite直接整合到應(yīng)用程序中,應(yīng)用程序只要調(diào)用對應(yīng)的API函數(shù)即可實現(xiàn)數(shù)據(jù)的存取,其不但體積小,僅有幾百K,而且數(shù)據(jù)存儲性能優(yōu)異,存取速度比Mysql快1~2倍,操作簡單、運行可靠[5,6,7]。在Visual C#語言中使用時,只需要將System.Data.Sqlite.dll文件添加到引用,便可以操作該數(shù)據(jù)庫,如封裝Sqlite類。下面的程序?qū)崿F(xiàn)數(shù)據(jù)庫文件的創(chuàng)建與打開。
string ConnStr = "Data Source = ./ws_SCU.db";
SQLiteConnection myCon = new SQLiteConnection(ConnStr);
myCon.Open();
該數(shù)據(jù)庫可以直接操作數(shù)據(jù)庫文件,如果該數(shù)據(jù)庫文件不存在,則創(chuàng)建該文件。如上面的程序,若當(dāng)前文件夾不存在ws_SCU,則先創(chuàng)建該文件。另外,Sqlite支持Transaction事務(wù),批量執(zhí)行多條SQL語句,提高存取速度[7-8]。
6 結(jié)束語
藥品灌裝線動態(tài)稱重系統(tǒng)克服人工抽檢或目檢造成的效率低、不可靠等缺點,有效的提高灌裝線的檢測效率,進而提高其生產(chǎn)效率。系統(tǒng)在.net上搭建綜合應(yīng)用平臺,采用輕型嵌入式數(shù)據(jù)庫SQLite實現(xiàn)大量數(shù)據(jù)的頻繁存儲。實踐證明.net與SQLite接合在實現(xiàn)工業(yè)自動化方面具有良好的工程實用性及應(yīng)用前景。
參考文獻:
[1] 何慧斌.中國制藥裝備行業(yè)競爭戰(zhàn)略研究[J].科技管理研究,2004(3).
[2] 趙爭勝.從近兩年全國制藥博覽會情況看我國制藥機械發(fā)展現(xiàn)狀[J].中成藥,2002,3(24).
[3] 田耀華.我國制藥裝備緩慢發(fā)展原因[J].制藥機械,2004(5).
[4] 陳然.基于.NET的訂單驅(qū)動進銷存管理系統(tǒng)[J].計算機技術(shù)與發(fā)展,2011(4).
[5] 陳曉東,曹奇英.嵌入式數(shù)據(jù)庫SQLite的遠程可視化維護管理工具的設(shè)計與實現(xiàn)[J].計算機應(yīng)用與軟件,2011(8).
[6] 戴昱.SQLite的SQL語句高速緩存技術(shù)[J].計算機系統(tǒng)應(yīng)用,2012(1).
[7] 路旋.嵌入式數(shù)據(jù)庫管理系統(tǒng)Sqlite的設(shè)計與實現(xiàn)[D].西安:西安電子科技大學(xué),2009.