蒲公英 - 制药技术的传播者 GMP理论的实践者

搜索
查看: 6068|回复: 17
收起左侧

[生产信息化] 【原创】中药提取控制系统数据库二次开发

[复制链接]
药徒
发表于 2014-11-3 08:39:35 | 显示全部楼层 |阅读模式

欢迎您注册蒲公英

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 蒲公英 于 2014-11-3 09:43 编辑

    【说明】本文是应化工与医药工程杂志的要求,写了一篇关于中药提取系统自动化数据库方面的东西,可能比较偏门,感兴趣的、看得懂的可能不会太多,权当交流,给有兴趣或者有此方面工作需要的朋友借鉴参考。如有问题,欢迎与作者交流!
     现代中药生产工艺主要包括提取、过滤、浓缩、醇沉、分离、层析、收膏、干燥等过程,以及配套的乙醇回收等几个工序组成。建立中药生产控制系统可以从产品的源头上解决中药产品工艺和成分的均一、稳定要求,更好地与国家GMP规范相融合、有利于保证产品质量。
1  现代中药生产控制系统简介
现代中药生产工艺繁琐、参数变量大,特别是原材料成分和企业工艺的控制制约了不少先进企业的发展,对生产过程的计算机控制与管理提出了迫切要求。现代中药生产中,提取是非常关键的起始阶段,一般采用批量生产方式,批量生产过程要求生产线具有良好的操作柔性,即在同一生产线上按批量生产单一或经清洗后满足多种不同产品的生产。本文所述的中药生产控制系统采用OPTO22公司的PAC控制系统,对提取、过滤、浓缩、沉淀、分离等工序进行了自动化设计,取得了良好的效果。
2  应用需求分析
由于本控制系统采用OPTO22公司的PAC控制系统,因此使用了OPTO22集成的组态软件进行了组态,实现了使用图形界面进行现场设备的监测与控制,实现了生产操作的自动化。同时,在进行工艺总结或生产过程回顾时,需要查看生产过程数据,进行统计和分析,由于集成的ioDisplay组态软件历史数据存储功能简陋,只能保存为文本文档,对于存储以后的查询,十分不便,因此主要依靠人工填写的生产记录来追溯历史过程。人工填写的生产记录,记录点少,间隔时间长,仅靠少量的数据不足以对整改生产过程做全面的评估、分析。由此以来,控制系统迫切的需要增加控制点数据记录功能。
3  技术方案设计
3.1  需求目标分解、
根据数据处理过程,大致分为三步,首先将原始数据“读出来”,然后将数据“存进去”,最后再将数据“取出来”。要将数据从控制系统中“读出来”,关键是实现PAC数据通讯。“存进去”即数据存进数据库中,“取出来”即数据从数据库中取出来,这两步的关键是实现数据库操作。最后“取出来”功能,还涉及表格、趋势图的自动生成。
总结分解的目标如下:
(1)实现PAC控制系统数据通讯
(2)实现数据存、取等数据库操作
(3)数据查询及数据呈现
3.2  拟定分解目标实现方案
    要实现“读出来”、“存进去”和“取出来”三个过程,首先需要选择软件开发平台。本着轻量级化,软硬件需求环境低的原则,选择使用Visual Basic [1]6.0开发平台。然后需要选择数据库平台,要同时满足轻量级化和C/S(客户端/服务器)架构,架设一个数据库服务器可满足多个操作员站访问,选择使用SQL Server[2] 2000数据库。
下面针对每个分解目标拟定实现方案。
3.2.1实现PAC控制系统数据通讯
要实现PAC控制系统的通讯,主要有两种途径。第一是从PAC硬件中读取数据,这需要开发硬件驱动,费事费力。第二是从上位机软件中读取数据,这里要用到IoProject组态软件关键的OPC接口,下面简要介绍一下OPC接口。
OPC[3]OLEObject Linking and Embedding,对象链接和嵌入)for Process Control 的缩写,它是基于微软的COM(组件对象模型)、DCOM(分布式组件对象模型)技术,为实现控制系统开放互通的一项标准。OPC在硬件供应商和软件开发人员之间搭上了一座桥梁,它提供了一种机制从数据源提供数据并且以一种标准的方式将这些数据传送的任意客户端应用软件[4]OPC也为实现控制网络与信息网络之间的信息交互提供了较为方便的途径,见图1
      无标题.png
      
1  OPC
接口示意图

          Fig.1 Diagram of OPCinterface
3.2.2实现数据存、取等数据库操作
“存进去”这一需求,需要在Visual Basic 6.0开发平台与SQL Server 2000数据库中架设一座桥梁,ADO组件可以充当了这一角色,下面简要介绍一下ADO组件。
ADO (ActiveX Data ObjectsActiveX数据对象)是Microsoft提出的应用程序接口(API)用以实现访问关系或非关系数据库中的数据。Microsoft和其它数据库公司在它们的数据库和Microsoft的OLE数据库之间提供了一个“桥”程序,OLE数据库已经在使用ADO技术。
3.2.3数据查询及数据呈现
DBGrid是强大的表格工具,MSChart是功能强大的ActiveX组件,通过编写适当的代码可将查询的数据自动生成表格和趋势图。
4  技术方案的实施
4.1  实现PAC控制系统数据通讯程序开发
4.1.1 OPC接口架构
    OPC接口共有6个对象,他们是OPCServer服务器、OPCGroups组集合、OPCGroup组、OPCItems标签集合、OPCItem标签、OPCBrowser浏览器,见图2.
   
    无标题.png
      6个对象的作用,见表1
   
  
对象
  
描述
OPCServer服务器
OPC服务器的一个实例,必须在使用其他对象之前创建一个OPC服务器对象实例。它包含OPC组集合对象并创建OPC浏览器对象。
OPCGroups组集合
OPC组对象实例的容器。用于添加、清除和管理OPC组。
OPCGroup
OPC组的一个实例。自身具有各种属性,同时向OPC标签集合对象提供数据获取服务。
OPCItems标签集合
OPC标签对象实例的容器。在OPC组对象创建时自动创建。
OPCItem标签
OPC标签对象包含服务器中一个点或一个变量的定义、动态值、状态和刷新时间。
OPCBrowser浏览器
OPC浏览器对象用于查看存在于OPC服务器中点或变量的配置信息。一个OPC服务器对象中只允许存在一个OPC浏览器对象。

  1 OPC接口对象
                                                                                                                  Tab1 The object ofautomation interface
4.1.2 OPC接口运行过程
    OPC接口有特定的运行过程,见图3
   无标题.png
     4.1.3定义OPC接口对象
Dim OPCServer1 As OPCServer        ‘定义OPCServer服务器
Dim Groups1 As OPCGroups          ‘定义OPCGroups组集合
Dim WithEvents Group1 As OPCGroup  ‘定义OPCGroup组
Dim Item1 As OPCItem               ‘定义OPCItems标签
Set OPCServer1 = New OPCServer          '创建OPCServer服务器实例
OPCServer1.Connect("Opto22.OpcServer.2")  '连接Opto22控制系统
Set Groups1 = OPCServer1.OPCGroups     ‘创建OPCGroups组集合实例
Set Item1 = Group1.OPCItems.AddItem(ItemID, ClientHandle)‘创建OPCItem标签实例
4.1.4 数据获取方式
OPCServer服务器提供了同步和异步两种方法。同步的方式客户端必须等待返回的结果,效率很低,此种方式一般在故障诊断时使用。异步的方式使客户端可以在访问数据后继续下一步操作,在结果返回时,OPC服务器会通知客户端,这种方式访问效率高。
采用异步方式,我们可以利用OPCGroup组的DataChange事件,自动获取PAC控制系统数据当满足一定的条件时,OPC服务器返回结果,激发相应的事件来通知客户端程序做相应的处理,系统资源耗费较少。
事件的结构代码如下:
Event DataChange(TransactionID As Long,NumItemsAs Long, ClientHandles() As Long, ItemValues() As Variant, Qualities() As Long,TimeStamps() As Date)
至此,已经完成了与PAC控制系统的通讯。
4.2  实现数据存、取等数据库操作
4.2.1定义ADO组件对象并连接数据库
Dim Connection1 As New ADODB.Connection    ’定义Connection连接对象
Dim Recordset1 As New ADODB.Recordset       ’定义Recordset数据集对象
Dim Command1 As New ADODB.Command      ’定义Command命令对象
Connection1.ConnectionString="rovider=SQLOLEDB.1ersist Security Info=False;_
User ID=用户名;Initial Catalog=数据库;Data Source=数据源"     ’定义Connection连接对象连接字符串
Connection1.Open                            ’打开Connection连接
Command1.ActiveConnection = Connection1      ’设置Command命令使用Connection连接
4.2.2将记录时间、数值、控制点位号及生产批号存入数据库表
Dim String1 As String                         ’定义字符串
String1 = "insert into 生产数据表(记录时间,数值,控制点位号,生产批号) _
values('Str(Item1.TimeStamp)',Item1.Value,ClientHandle,curBatchId)"        ’设置insert字符串语句
Command1.CommandText = String1             ’设置Command命令为已设置完的insert字符串语句
Command1.Execute                           ’Command命令执行
4.3 数据查询及数据呈现
4.3.1数据查询主要依靠强大的select查询语句,格式如下:
Select 记录时间,数值,控制点位号 from 生产数据表where 生产批号=201401001
4.3.2数据呈现
    数据呈现的界面,见图4
4.3.2.1Excel数据输出功能
    借助Excel强大的数据处理功能,能够快速生产各种图表,进行统计、分析,Excel输出功能很多软件都具备,且受欢迎,Excel输出关键代码如下:
    Set ExcelObject =CreateObject("Excel.Application")   ’创建Excel对象
Set ExcelObject = GetObject(,"Excel.Application")     ’激活Excel对象
    Set ExcelBook =ExcelObject.Workbooks.Add         ’在Excel中添加一个工作簿
    Set ExcelSheet = ExcelBook.ActiveSheet             ’在Excel中激活一个工作表
    ExcelSheet.Cells(1, 1) = "时间"              ’第1行第1列写入“时间”作为表头
    ExcelSheet.Cells(1, 2) = "数值"              ’第1行第2列写入“数值”作为表头
     ’定义循环,将数据库中存储的“记录时间”、“数值”输出到Excel工作表中
    Dim i As Integer            
        For i = 2 To RecordSet1.RecordCount
        ExcelSheet.Cells(i, 1) =RecordSet1.Fields.Item("记录时间")
        ExcelSheet.Cells(i, 2) =RecordSet1.Fields.Item("数值")
        RecordSet1.MoveNext
    Next i
4.3.3 表格显示功能
    Set DataGrid1.DataSource=RecordSet1    ’设置表格的数据源为查询语句返回的记录集
4.3.4趋势图显示功能
    ’设置MSChart的行关联RecordSet记录集
    MSChart1.RowCount = RecordSet1.RecordCount
    ’定义循环 ,将数据库中存储的“数值”生成趋势图
    Dim i As Integer
        For i = 1 To RecordSet1.RecordCount
        MSChart1.Row = i
        MSChart1.Data =RecordSet1.Fields.Item("数值")
        RecordSet1.MoveNext
Next i
    无标题.png
   5.开发总结
使用Visual Basic开发平台和SQL Server数据库,运用OPCADO等关键技术进行OPTO22 PAC中药生产控制系统数据库二次开发,大幅度提升了原系统历史数据管理能力,系统具备数据自动存储、查询、Excel输出、表格和趋势图自动生成功能,便于进行生产过程数据的统计分析、历史数据追溯,很大程度上,提高了产品质量,收到了良好的效果。系统轻量级化,安装文件仅四十多兆,安装环境要求低,可安装于原系统工程师站,不增加硬件投入。
                                                                  张金巍,男,高级工程师,主要从事中药生产质量管理及项目管理工作。Email : 14526641@qq.com
回复

使用道具 举报

药徒
发表于 2014-11-3 08:57:14 | 显示全部楼层
张老师,太牛啦!!!这篇基于中药提取的软件需求分析,一下子就让中药自动化的实现显得那么具有操作性和可行性。学习啦!!!

点评

多谢,有什么中药提取自动化方面的问题,欢迎一起多多讨论,相互学习  详情 回复 发表于 2014-11-4 06:52
回复

使用道具 举报

药徒
发表于 2014-11-3 08:58:08 | 显示全部楼层
中药提取自动化及对采集的数据的处理分析
回复

使用道具 举报

药徒
发表于 2014-11-3 09:07:12 | 显示全部楼层
看不懂、但感兴趣。

点评

我就喜欢多看看现在自己不懂的东西,有阅读就有提高  详情 回复 发表于 2014-11-3 10:24
回复

使用道具 举报

药徒
发表于 2014-11-3 10:24:55 | 显示全部楼层
XQW 发表于 2014-11-3 09:07
看不懂、但感兴趣。

我就喜欢多看看现在自己不懂的东西,有阅读就有提高
回复

使用道具 举报

发表于 2014-11-3 12:57:17 | 显示全部楼层
难得的技术贴,OPC做为一种标准,在工控行业应用很广了;楼主开发的应用,复用性很强。

点评

好像大多数人不识货哦  详情 回复 发表于 2014-11-6 09:16
回复

使用道具 举报

发表于 2014-11-3 20:25:26 来自手机 | 显示全部楼层
虽然看不懂,但楼主的技术水平显而易见,顶一个
回复

使用道具 举报

药徒
 楼主| 发表于 2014-11-4 06:52:20 | 显示全部楼层
缓缓 发表于 2014-11-3 08:57
张老师,太牛啦!!!这篇基于中药提取的软件需求分析,一下子就让中药自动化的实现显得那么具有操作性和可 ...

多谢,有什么中药提取自动化方面的问题,欢迎一起多多讨论,相互学习
回复

使用道具 举报

药徒
发表于 2014-11-5 08:31:02 | 显示全部楼层
如果我们可以安装该多好!

点评

如果感兴趣,我可以推荐一人,您可以与之联系,看看给您能否装一个  详情 回复 发表于 2014-11-7 07:12
找楼主给你们安装一个就好了呗  详情 回复 发表于 2014-11-5 23:34
回复

使用道具 举报

药徒
发表于 2014-11-5 23:34:05 | 显示全部楼层
晓星 发表于 2014-11-5 08:31
如果我们可以安装该多好!

找楼主给你们安装一个就好了呗
回复

使用道具 举报

药徒
发表于 2014-11-6 09:16:31 | 显示全部楼层
大富翁 发表于 2014-11-3 12:57
难得的技术贴,OPC做为一种标准,在工控行业应用很广了;楼主开发的应用,复用性很强。

好像大多数人不识货哦
回复

使用道具 举报

药徒
 楼主| 发表于 2014-11-7 07:12:07 | 显示全部楼层
晓星 发表于 2014-11-5 08:31
如果我们可以安装该多好!

如果感兴趣,我可以推荐一人,您可以与之联系,看看给您能否装一个
回复

使用道具 举报

发表于 2015-4-28 21:14:51 | 显示全部楼层
过程历史数据如果未经压缩直接存入关系数据库的话,效率会非常的低,空间利用率也不高。
回复

使用道具 举报

发表于 2015-4-29 19:49:32 | 显示全部楼层
现在有更先进的
回复

使用道具 举报

发表于 2015-5-31 16:15:31 | 显示全部楼层
谢谢分享,顶一下
回复

使用道具 举报

发表于 2015-11-15 13:10:50 | 显示全部楼层
谢谢分享,支持
回复

使用道具 举报

发表于 2016-1-24 22:25:41 | 显示全部楼层
我对例图有点疑问。难道只有vb能调用“自动化接口”,C++不行?
回复

使用道具 举报

药徒
发表于 2023-12-20 15:49:19 | 显示全部楼层
谢谢分享!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

×发帖声明
1、本站为技术交流论坛,发帖的内容具有互动属性。您在本站发布的内容:
①在无人回复的情况下,可以通过自助删帖功能随时删除(自助删帖功能关闭期间,可以联系管理员微信:8542508 处理。)
②在有人回复和讨论的情况下,主题帖和回复内容已构成一个不可分割的整体,您将不能直接删除该帖。
2、禁止发布任何涉政、涉黄赌毒及其他违反国家相关法律、法规、及本站版规的内容,详情请参阅《蒲公英论坛总版规》。
3、您在本站发表、转载的任何作品仅代表您个人观点,不代表本站观点。不要盗用有版权要求的作品,转贴请注明来源,否则文责自负。
4、请认真阅读上述条款,您发帖即代表接受上述条款。

QQ|手机版|蒲公英|ouryao|蒲公英 ( 京ICP备14042168号-1 )  增值电信业务经营许可证编号:京B2-20243455  互联网药品信息服务资格证书编号:(京)-非经营性-2024-0033

GMT+8, 2025-3-25 21:05

Powered by Discuz! X3.4运维单位:苏州豚鼠科技有限公司

Copyright © 2001-2020, Tencent Cloud.

声明:蒲公英网站所涉及的原创文章、文字内容、视频图片及首发资料,版权归作者及蒲公英网站所有,转载要在显著位置标明来源“蒲公英”;禁止任何形式的商业用途。违反上述声明的,本站及作者将追究法律责任。
快速回复 返回顶部 返回列表