前言:一篇好文章的诞生,需要你不断地搜集资料、整理思路,本站小编为你收集了丰富的制药机械行业现状主题范文,仅供参考,欢迎阅读并收藏。
关键词:灌装线;随线检测;SQLite;多线程;图形设备接口
中图分类号:TP302 文献标识码: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 概述
目前,我国生产制药机械的企业已经发展到800余家,全行业年工业生产总值超过100亿元人民币,产品除充分满足国内中西药厂、动物药厂及保健品厂需求外,还远销30多个国家和地区[1]。我国制药装备行业的生产企业数、产品品种规格、产量均已位居世界首位,成为名副其实的制药装备大国。但就我国制药机械的整体水平来看,技术上还局限于仿制、改进及组合阶段,与国际先进国家和地区相比差距还很大,没有达到创新或超过世界同类产品的水平。
随着我国GMP的日趋规范,人们对药品质量提出了更高的要求,推动制药机械行业新装备向可靠、准确方向发展。然而,在药品生产的质量检测校验过程中,国内大都停留在人工目检或抽样称重的水平。在粉针生产过程中,每个目检员每分钟至少检查120 瓶,而人工检测受情绪等因素的影响,很难确保目检的可靠性。而目检的代价比较高,以八针安瓿联动线生产为例,灯检工段的人数约10人左右,其运行费用10年就达200万,而且目检的可靠性与现期提倡的FDA的cGMP要求不符。有的是采用抽检方法,但该方法并不能准确反映每个成品的实际情况。另外,对无菌制品来说,一旦人工抽检取样离开了 100 级层流区域,意味着抽检物就要报费。所以挖掘随线检测的设备实现对药品质量的实时监测,从源头上保证药品质量的可靠性并降低生产成本,具有很大的潜在市场[2,3]。
2 系统介绍
药品灌装动态称重系统如图1所示。
药品灌装动态称重系统主要由称重传感器、信号采集与处理系统、上位机处理系统(PC)、PLC、机械手、人机接口设备等部分组成。为了减小空瓶重量的差异带来的误差,在灌装前先获取空瓶的重量。最终的称重结果是满瓶的重量减去对应空瓶的重量。药瓶随灌装线按箭头方向传动,每4瓶一组。在PLC的控制下,机械手抓取药瓶到相应的称重位置称重,称重结果通过485总线传送到主机板,然后由主机板通过COM口传送到上位机,经过上位机的处理后显示灌装重量,灌装量超标时需要发出声、光报警,并通知PLC控制机械手取走不合格的灌装药瓶。为了保证灌装线的不间断工作,提高灌装线效率,系统安置了四块分机板,分为两组,交替工作。其中,一号和二号分机板用于称量空瓶重量,三号和四号分机板用于称量已灌装药瓶重量。一号和四号分机板为一组,二号和三号分机板为一组。
3 系统功能分析
系统软件主要实现的功能如下:
1)与下位机主机板以及PLC的通讯;
2)良好的用户交互界面;
3)数据库的设计;
4)满足用户的需求。
系统软件需要实现的功能主要是通过COM口与下位机通讯,将重量信息存储到数据库中,并实时显示测量结果并提供相应的查询、统计、打印等功能。从用户的角度来看,该系统需要实现的功能如图2所示。
图2 系统用例图
该系统的特点是数据量不大,但实时性要求较高,必须保证长时间工作的情况下系统稳定可靠,操作简单。系统的主要功能应包括:空瓶与满瓶的称重数据通过COM口传输到上位机,上位机接收到数据后,根据数据包中的机位号和行号处理数据。如果是空瓶数据,直接存储到数据表中;如果是满瓶数据,则检索出对应的空瓶数据,计算药品净重,并根据该药品的罐装标准判断罐装是否合格,判断结果用“红绿灯”的形式直观显示于人机界面,同时向PLC发送判断结果,及时控制机械臂抓走不合格的药瓶。另外,系统还要对用户、配方进行管理,检测上位机与下位机的通信情况,提供历史数据记录,对传感器进行标定等。
系统采用目前比较流行的轻型数据库SQLite3,它小巧、快速、稳定,支持SQL语句、跨平台,支持数据库大小至2TB,操作简单[9]。系统以集成开发环境Visual Studio 2005中集成的Visual C#编程语言作为前台开发工具,它提供了较方便的串口通信控件SerialPort,以及强大的生成报表工具Crystalreports[4]。
针对以上的要求,该系统采用模块化的设计方法进行系统设计。将整个系统分为若干功能模块,方便系统的开发和维护。系统软件的主要功能结果如图3所示。
图3 系统功能图
1)系统登录模块:为保证系统的安全性,设计了该模块。
2)系统设置模块:在系统开始工作前需要设置灌装线上的当前灌装药品,进而确定灌装标准;并需要设置与主机板、PLC通信的串口信息。
3)实时数据模块:这是系统的主模块,用于动态更新称重信息。根据当前灌装药品的灌装标准判断当前药品是否合格,并用指示灯显示给用户,同时采用图形设备接口同步显示称重波形图,方便用户观察,并动态更新合格率及生产量。
4)系统自检模块:实现分机板与上位机程序的握手应答,确保分机板与主机板、上位机之间的硬件线路连接正常。
5)系统标定模块:称重传感器存在一定的蠕变,并受环境等因素的影响,需要在不定期的对传感器进行标定,以确保传感器称重系数的准确性。
6)历史查询模块:实现根据灌装时间及药品信息对历史数据的查询,并提供相应的数据导出、打印等功能。
7)用户管理模块:为了保证系统的安全性,这里限定了某些用户的配方管理权限和用户管理权限。
8)配方管理模块:方便用户对配方的修改、删除、添加、查找等。
4 系统通讯协议
系统与下位机主板及PLC之间需要传送大量的数据,所以这里简单的定义了它们之间通讯协议。
1)称重结果的数据 每个数据包含6个字节,格式如表1所示。
起始位:FF——正常数据,FE——延时数据;
机位号:00~0F,对应图1中的16个称重传感器;
行号:00~FF,由于满瓶与空瓶的称重结果并非同时传送到上位机,所以需要记录对应空瓶与满瓶数据的个数。某个数据的丢失,将会造成整个将检测系统后续检测数据的错位。为了避免这种情况的发生,该数据由下位机传送给上位机系统;
表 1 称重结果数据格式
高位数据:称重结果的高8位数据;
低位数据:称重结果的低8位数据;
检验位:在工业现场,为了防止外界的干扰引起的传输错误,这里添加了检验位,提高数据的正确性。
由于数据量较大,这里采用多线程的方式处理数据,提高系统的实时性。称重数据的处理流程图如图4所示。
2)系统自检协议 开始自检时,系统循环向下位机一次发送BX(B0~BF),如果下位机接收到数据后在6ms以内返回BX,则表示该位置的分机板与主板、上位机之间的通信正常,可以进行测量,否则提示用户检查硬件电路的连接是否正常。其流程图如图5所示。
3)系统标定协议 开始标定后,系统向主机板发送DX(D0~DF),主机板接收到数据后返回FFFF,然后发送该位置处的称重结果,标定结束时系统向主机板发送EX(E0~EF),主机板接收到该信息后返回FDFD,表示标定结束。
5 SQLite数据库在系统中的应用
数据库负责整个系统的数据存储管理工作,是上位机系统的重要组成部分。SQLite是一种开源的嵌入式数据库,使用方便,易于维护。该数据库不需要安装及管理配置,整个数据库存储在一个单一的文件中
,支持大多数编程语言及诸多主流操作系统。相比于流行的MSSQL、Oracle等大型商业数据库,SQLite不需要独立运行数据库驱动程序,而采用程序驱动,即将Sqlite直接整合到应用程序中,应用程序只要调用对应的API函数即可实现数据的存取,其不但体积小,仅有几百K,而且数据存储性能优异,存取速度比Mysql快1~2倍,操作简单、运行可靠[5,6,7]。在Visual C#语言中使用时,只需要将System.Data.Sqlite.dll文件添加到引用,便可以操作该数据库,如封装Sqlite类。下面的程序实现数据库文件的创建与打开。
string ConnStr = "Data Source = ./ws_SCU.db";
SQLiteConnection myCon = new SQLiteConnection(ConnStr);
myCon.Open();
该数据库可以直接操作数据库文件,如果该数据库文件不存在,则创建该文件。如上面的程序,若当前文件夹不存在ws_SCU,则先创建该文件。另外,Sqlite支持Transaction事务,批量执行多条SQL语句,提高存取速度[7-8]。
6 结束语
药品灌装线动态称重系统克服人工抽检或目检造成的效率低、不可靠等缺点,有效的提高灌装线的检测效率,进而提高其生产效率。系统在.net上搭建综合应用平台,采用轻型嵌入式数据库SQLite实现大量数据的频繁存储。实践证明.net与SQLite接合在实现工业自动化方面具有良好的工程实用性及应用前景。
参考文献:
[1] 何慧斌.中国制药装备行业竞争战略研究[J].科技管理研究,2004(3).
[2] 赵争胜.从近两年全国制药博览会情况看我国制药机械发展现状[J].中成药,2002,3(24).
[3] 田耀华.我国制药装备缓慢发展原因[J].制药机械,2004(5).
[4] 陈然.基于.NET的订单驱动进销存管理系统[J].计算机技术与发展,2011(4).
[5] 陈晓东,曹奇英.嵌入式数据库SQLite的远程可视化维护管理工具的设计与实现[J].计算机应用与软件,2011(8).
[6] 戴昱.SQLite的SQL语句高速缓存技术[J].计算机系统应用,2012(1).
[7] 路旋.嵌入式数据库管理系统Sqlite的设计与实现[D].西安:西安电子科技大学,2009.